+3
Completed
Доступ к каналам системы в локальной сети (протокол HTTP)
Начиная с версий прошивок для контроллеров 0.6.0.6 и наносервера 1.0.6.7 - добавлена возможность доступа к каналам системы посредством API на базе протокола HTTP.
Описание: http://f1m.userecho.com/topics/90-dostup-po-protokolu-http-v-lokalnoj-seti-sostoyanie-kanalov-api/
Customer support service by UserEcho
Добрый день, как отправлять данные понятно, а вот как принимать данные датчиков не совсем.
Принимать можно периодически считывая или сообщить на какой порт передавать данные - команда 3.
Я так понимаю наносервер не передает данные о состоянии датчиков, планируется ли в дальнейшем это исправить? Планируется ли добавить в "Конфигуратор" в "Сценарии" возможность прописывать свою строку GET запроса?
Совсем все поняли не так. Вы сообщаете системе(контроллеру) командой 3 порт приёма своей системы. На этот адрес и порт, указанный в команде 3, при изменении значения канала будет отправлено сообщение, формат описан в статье.
Все правильно понял :). С управлением "Наносервер 1M NS1010" и конусом проблем нет, все включается, выключается, меняется статус. Далее: при попытке указать порт для наносервера получаем:
Status Code: 404 value=1 (from cache) Идем смотреть API
В случае ошибки:
Ответ: HTTP/1.1 404 value=<код ошибки>
Коды ошибок:
1 - неверный код команды
Т.е. "Наносервер 1M NS1010" не может отсылать данные о состоянии датчиков, верно?
Далее устанавливаем порт для "Конус"
получаем ответ:
Status Code: 200 value=80
Отлично порт установлен. Включаем сниффер, срабатывает датчик движения, смотрим с трех разных портов на установленный ip адрес и порт отсылается информация, ok. Я так понимаю "Конус" при сработке отправляет GET запрос формата "?channel=<id канала>&value=<значение канала>" Правильно я понимаю?
Далее.
1. Нужно обработать запрос, хотелось бы для этого выделить отдельный PHP файл например nano.php (вот тут я может немного не понимаю), а не использовать index.php основной системы т.е. формат запроса по идее должен быть такой "nano.php?channel=<id канала>&value=<значение канала>"
2. Температурный датчик конуса шлет при изменении value=199 вместо температуры, что тоже не правильно.
В статье в сравнительной таблице указано какие команды поддерживаются. 1М Core пока данный функционал не поддерживает. Наносервер 3 команду поддержит в следующем обновлении.
1. Сообщения абстрагировано от системы, обработчиком может быть простая программа на любом языке и платформе.
Поэтому обрабатывать необходимо так как позволяет Ваша платформа.
2. В системе все числа целочисленные. Поэтому температура имеет значение *10.
В статье в сравнительной таблице указано какие команды поддерживаются. 1М Core пока данный функционал не поддерживает. Наносервер 3 команду поддержит в следующем обновлении.
Когда планируется поддержка наносервера?
Тестируем, думаем до конца недели.
Добрый день, когда планируется поддержка наносервера?
Поддержка добавлена...
После перезагрузки конуса данные перестают идти на внешний порт.
Да все правильно, адрес и порт не сохраняется, в следующей версии исправим.
А что теперь мешает в палитру добавить примитивы в виде температуры влажности или еще бог весть каких значений для передачи в систему значений от самодельных датчиков? Для авторизации можно использовать такие же ключи как и при активации. Прописывать их в прошивке той же ESP. Ну или поддержка MySensors сразу вам 100500 юзверей бы обеспечила. Система то у вас мега четкой стала после выхода ядра и конусов.
Спасибо! Мы работаем над этим направлением.
Добрый день, планируется ли передача данных при смене состояния флагов, кнопок? И еще хотелось бы отправлять произвольный GET запрос со сценариев.
Добрый день! Флаги и кнопки проверим. Произвольный формат HTTP запроса, пока не рассматриваем. Его реализация будет рассмотрена после выхода обновленного кабинета. Ориентировочно до конца года.
"...Флаги и кнопки проверим..."
Добрый день, когда планируете?
До конца недели.
Обновили прошивку наносервера.
такой вопрос, делаю запрос на состояние канала, запрос такой
getURL('http://192.168.1.42:8080/command=1&channel=2956'); //управление через get $data=getURL('http://192.168.1.42:8080/command=1&channel=value'); //чтение состояния и показаний яерез get setGlobal('test.1_m',$data); //запись показаний в свойство но ни чего не возвращается, где я косячу?