Передача данных через COM в MajorDoMo

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Ответить
Аватара пользователя
helios
Сообщения: 8
Зарегистрирован: Пт дек 18, 2020 8:57 pm
Благодарил (а): 4 раза
Поблагодарили: 0

Передача данных через COM в MajorDoMo

Сообщение helios » Пт дек 18, 2020 9:23 pm

Здравствуйте уважаемые! Мучаюсь никак не пойму как заслать данные о температуре с датчика температуры, подключенного к ардуине, на сервер через COM...
Нашёл скетч для ардуино https://kb.mjdm.ru/kod-proshivki-arduin ... majordomo/ согласно этому руководству https://kb.mjdm.ru/arduino-bez-ethernetshield/
Как отправлять HTTP запросы через COM от ардуинки на сервер MajorDoMo? Нашёл HTTP-ссылки для работы с MajorDoMo
https://kb.mjdm.ru/http-ssilki-dlya-raboti-s-majordomo/
Но как ими пользоваться не пойму. Может не туда смотрю?
К примеру происходит отправка запроса

Код: Выделить всё

GET /objects/?object=sensorGarage&op=m&m=statusChanged&status=1
реагируя на событие изменения открытия двери, но из чего выстраивать подобный запрос не ясно. Хотелось бы отправлять значение температуры через подобный запрос. Прошу вашей помощи
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: Передача данных через COM в MajorDoMo

Сообщение xor » Сб дек 19, 2020 12:51 am

helios писал(а):
Пт дек 18, 2020 9:23 pm
Здравствуйте уважаемые! Мучаюсь никак не пойму как заслать данные о температуре с датчика температуры, подключенного к ардуине, на сервер через COM...
Нашёл скетч для ардуино https://kb.mjdm.ru/kod-proshivki-arduin ... majordomo/ согласно этому руководству https://kb.mjdm.ru/arduino-bez-ethernetshield/
Как отправлять HTTP запросы через COM от ардуинки на сервер MajorDoMo? Нашёл HTTP-ссылки для работы с MajorDoMo
https://kb.mjdm.ru/http-ssilki-dlya-raboti-s-majordomo/
Но как ими пользоваться не пойму. Может не туда смотрю?
К примеру происходит отправка запроса

Код: Выделить всё

GET /objects/?object=sensorGarage&op=m&m=statusChanged&status=1
реагируя на событие изменения открытия двери, но из чего выстраивать подобный запрос не ясно. Хотелось бы отправлять значение температуры через подобный запрос. Прошу вашей помощи
кроме скетча, там прога предлагается к использованию - ArduinoGW, нет?
Аватара пользователя
helios
Сообщения: 8
Зарегистрирован: Пт дек 18, 2020 8:57 pm
Благодарил (а): 4 раза
Поблагодарили: 0

Re: Передача данных через COM в MajorDoMo

Сообщение helios » Сб дек 19, 2020 7:43 pm

xor писал(а):
Сб дек 19, 2020 12:51 am
helios писал(а):
Пт дек 18, 2020 9:23 pm
Здравствуйте уважаемые! Мучаюсь никак не пойму как заслать данные о температуре с датчика температуры, подключенного к ардуине, на сервер через COM...
Нашёл скетч для ардуино https://kb.mjdm.ru/kod-proshivki-arduin ... majordomo/ согласно этому руководству https://kb.mjdm.ru/arduino-bez-ethernetshield/
Как отправлять HTTP запросы через COM от ардуинки на сервер MajorDoMo? Нашёл HTTP-ссылки для работы с MajorDoMo
https://kb.mjdm.ru/http-ssilki-dlya-raboti-s-majordomo/
Но как ими пользоваться не пойму. Может не туда смотрю?
К примеру происходит отправка запроса

Код: Выделить всё

GET /objects/?object=sensorGarage&op=m&m=statusChanged&status=1
реагируя на событие изменения открытия двери, но из чего выстраивать подобный запрос не ясно. Хотелось бы отправлять значение температуры через подобный запрос. Прошу вашей помощи
кроме скетча, там прога предлагается к использованию - ArduinoGW, нет?
Всё верно) Там даже гиперссылка есть "Help", которая перенаправляет на эту страницу https://mjdm.ru/Main/ArduinoDirect, но увы там только написано The page "Main/ArduinoDirect" doesn't exist.
Но суть даже не в том как пользоваться программой ArduinoGW, а как пользоваться сервером MajorDoMo, а вернее каким образом выстраивать сообщения для передачи их через Arduino по COM порту и привязывать полученные значения температуры к свойству объекта тем самым его изменяя.
Например, пользуясь протоколом MQTT, понятно как при помощи подписок на определенного рода сообщения (или на все сообщения) "вытаскивать" из определенных сообщений данные с датчиков температуры и менять соответственно значения о температуре уже на сервере путём привязки к объекту и его свойству (например свойства TempValue объекта BedRoomTemperatureSensor).
Т.е. интересен сам процесс построения сообщения-HTML_запроса, которое уже изменит значение нужного свойства.
Вернёмся обратно к сообщению, переданному от Arduino на сервер через COM порт

Код: Выделить всё

GET /objects/?object=sensorGarage&op=m&m=statusChanged&status=1
Я так понял, что обращаясь к объекту

Код: Выделить всё

sensorGarage 
изменяется свойство благодаря команде

Код: Выделить всё

statusChanged
, но вот зачем и что они делают не понятно. Прошу простить если, что то не так понял, ведь поэтому и спрашиваю каким образом пользоваться той же ардуинкой и датчиком температуры подключенному к ней, не имея Ethernet шилда, а имея только COM порт от самой ардуинки. Может быть еще какими то методами можно передать данные от ардуинки на сервер MajorDoMo помимо MQTT. Прошу помощи!
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: Передача данных через COM в MajorDoMo

Сообщение xor » Сб дек 19, 2020 9:46 pm

helios писал(а):
Сб дек 19, 2020 7:43 pm
Т.е. интересен сам процесс построения сообщения-HTML_запроса, которое уже изменит значение нужного свойства.
Вернёмся обратно к сообщению, переданному от Arduino на сервер через COM порт

Код: Выделить всё

GET /objects/?object=sensorGarage&op=m&m=statusChanged&status=1
Я так понял, что обращаясь к объекту

Код: Выделить всё

sensorGarage 
изменяется свойство благодаря команде

Код: Выделить всё

statusChanged
, но вот зачем и что они делают не понятно. Прошу простить если, что то не так понял, ведь поэтому и спрашиваю каким образом пользоваться той же ардуинкой и датчиком температуры подключенному к ней, не имея Ethernet шилда, а имея только COM порт от самой ардуинки. Может быть еще какими то методами можно передать данные от ардуинки на сервер MajorDoMo помимо MQTT. Прошу помощи!
?object=sensorGarage&op=m&m=statusChanged&status=1
разбейте строку гет-запроса по разделителям ? и &

object=sensorGarage => имя объекта
op=m => операнд - метод
m=statusChanged => имя метода
status=1 => параметры метода - имя и значение

в итоге это эквивалентно записи

Код: Выделить всё

callMethod("sensorGarage.statusChanged",array("status"=>1));
За это сообщение автора xor поблагодарил:
helios (Пт дек 25, 2020 6:53 am)
Рейтинг: 1.16%
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: Передача данных через COM в MajorDoMo

Сообщение xor » Пн дек 21, 2020 4:28 am

вот, кстати, прога для винды
Вложения
arduino_gw.zip
(361.79 КБ) 96 скачиваний
Аватара пользователя
helios
Сообщения: 8
Зарегистрирован: Пт дек 18, 2020 8:57 pm
Благодарил (а): 4 раза
Поблагодарили: 0

Re: Передача данных через COM в MajorDoMo

Сообщение helios » Вт дек 22, 2020 8:03 pm

xor писал(а):
Сб дек 19, 2020 9:46 pm
?object=sensorGarage&op=m&m=statusChanged&status=1
разбейте строку гет-запроса по разделителям ? и &

object=sensorGarage => имя объекта
op=m => операнд - метод
m=statusChanged => имя метода
status=1 => параметры метода - имя и значение

в итоге это эквивалентно записи

Код: Выделить всё

callMethod("sensorGarage.statusChanged",array("status"=>1));
Благодарю за пояснения! Разобрался)

Вот они оказывается где разъяснения еще были https://kb.mjdm.ru/intagracia-storonnih ... majordomo/
Вдруг кому понадобится типа такого же чайника новичка как я
Ответить