РЕКЛАМА НА ФОРУМХАУС Подскажите пожалуйста, есть OpenHab2 на RPi c mqtt брокером, есть ардуино с Ethernet шилдом, ардуина периодически публикует показания с датчика температуры, как реализовать чтобы при отключении ардуины, не оставались старые данные в OH, а было видно, что связь потеряна?
можно timestamp в показания температуры добавить, но опять же фиксировать предыдущие показания по timestamp из разночтений по времени. Но тогда в общем-то достаточно просто версии показаний
Это делает брокер - публикует топики LWT при отключении клиента. В LWT обычно пишется "offline". Почитайте описание протокола MQTT - там все понятно.
когда разбирался с телеграм ботом - то по форуму опенхаба - у народа за кордоном все пашет. Мне он в логе говорил - таймаут соединения (на той строке где коннект). И в итоге решил что смысла в общем-то именно в телеграм-боте мало (ну только полезно что фотку может с камеры прислать сразу) - но в принципе уведомление в приложение тоже вполне норм. Так что, у кого то есть несколько работающих камер с openhab?
Нет, это просто сообщение с флагом retain. Его рассылает брокер после потери соединения с клиентом. Эти сообщения должен поддерживать любой брокер. Библиотеки клиента вообще не при чем. Служебные сообщения В качестве служебных сообщений используются в основном два типа сообщений Birth Message - которое сообщает миру что "я родился и живой" и Last Will and Testament (LWT) которое сообщает, что "после этого сообщения считать меня мертвым". Ну плюс еще используется Keep Alive сообщения, которые сообщают брокеру что "я все еще живой" и стандартно посылаются каждые 60 секунд. Если брокер не получил это сообщение от клиента, то он принудительно пингует его, чтобы выяснить, живой ли тот, и если выясняется что он неживой, то брокер публикует за клиента LWT сообщение, чтобы все узнали что тот скончался. Соответственно получение брокером Birth Message от устройства, переводит устройство в понимании брокера в режим ONLINE, а после того как брокер получает от устройства LWT сообщение или когда сам принимает решения что тот скончался проверив устройство на доступность, то переводит статус устройства в режим OFFLINE.
брокер поддерживает, к этому вопросов нет. Но вот основная mqtt библиотека ардуины pubsubclient поддерживает только QoS 0 и это уж точно не гарантирует доставку сообщений. Если смотреть библиотеки для codesys так там вообще понятия LWT может не быть.
Еще раз. К QoS это тоже не имеет отношения. При коннекте клиент сообщает брокеру, какое сообщение отправить всем, если он скоропостижно отвалится. Это называется Last Will and Testament (LWT) (последняя воля и завещание). Сообщение хранится на брокере. И это сообщение отправляет брокер, когда "понимает", что соединение с этим клиентом утеряно (т.е. перестали приходить регулярные сообщения KeepAlive от него), тем самым извещая всех остальных, что этот клиент (датчик, устройство и т. п.) уже не в сети. Брокер. Вместо устройства. Кстати, вот кусок документации от pubsubclient про то, как нужно коннектиться к брокеру, чтобы потом он мог выступать "душеприказчиком" устройства: https://pubsubclient.knolleary.net/api.html#connect4
Тут была информация о прикручивание зонта к ОН через нодеред. Был бы признателен за код ноде ред по работе с апи зонт.
Спасибо в курсе. Пока что неделю она крутится на почти ноунэйм карте, хотя первая SD именитого производителя отказала почти сразу. Но для обучения сойдет (основной сетап 1.8 под виндами продолжает крутиться), а потом буду думать о надежном переходнике с SATA на USB, они как я понял тоже слабое звено. Вопрос по OH2.4: я довольно быстро подключил его к шлюзу Xiaomi средствами Paper UI (items, things). и возник вопрос, а где эти настройки фиксируются? я ожидал что будут созданы файлы ".items" в этом расшаренном ресурсе: ..\openHAB-share\openhab2-conf\items - но там пусто. т. е. интерактивная модель и файлоконфигурационная существуют независимо?
Thing и Item, которые создаются через Paper UI, хранятся в отдельной папке /var/lib/openhab2/jsondb/org.eclipse.smarthome.core.items.Items.json, например для айтемов. И формат этих файлов отличается от тех, которые создаются в ручном режиме. Вроде как это формат jsondb. Вот несколько ссылок, может будут полезными: https://community.openhab.org/t/location-for-items-and-thing-created-on-paperui/64304 https://community.openhab.org/t/were-are-my-files-please/58230 https://community.openhab.org/t/storage-of-items-authored-in-paperui/29427
Добрый день! Ребят, пытаюсь настроить голосовое управление без настройки самого Google Assistant. Реально ли! При использовании приложения на андроид от OH нажимаю на микрофон (в правом верхнем углу), говорю команду. Эта команда отображается в логах (events.log) "Item 'VoiceCommand' received command включить". Пытаюсь отловить это в правилах, но ничего не происходит. rule "voice" when Item VoiceCommand received command then logWarn("myLog", "TEST_VOICE") TestButtom. sendCommand (ON) end Сильно не пинайте, только начал изучать OH2.
Пару лет назад экспериментировал. Все отлично работало. В Items нужно прописать переменную String VoiceCommand /*управление голосом*/ отдельно правило Код: rule "Voice control" when Item VoiceCommand received command then var String command = VoiceCommand.state.toString.toLowerCase logInfo("Voice.Rec","VoiceCommand received "+command) if (command.contains("режим") && command.contains("день")) { myMode.sendCommand(0) } else if (command.contains("режим")&& command.contains("ночь")) { myMode.sendCommand(2) } else if (command.contains("гости")&& command.contains("едут")) { myMode.sendCommand(1) } else if (command.contains("ворота")&& command.contains("открыть")) { Owen_Switch1.sendCommand(ON) } else if (command.contains("ворота")&& command.contains("закрыть")) { Owen_Switch1.sendCommand(OFF) } end Может еще чего забыл - типа в сервисе включить распознавалку.