Добрый день.
Столкнулся с не совсем правильной обработкой событий wb-zigbee2mqtt.
Zigbee кнопка Aqara при одиночном нажатии присылает текстовое значение single. Проблема в том, что в канале MQTT WB при повторных нажатиях значение single повторно не приходит, при обработке напрямую через trackMqtt все ОК
Добрый день.
Естественно, если используете whenChanged - то срабатывать будет на изменение значения топика, не на перепубликацию того же.
Обойти можно так, например:
function makeRule (ruleName, devTopick, outTopick){
defineRule(ruleName, {
whenChanged: devTopick,
then: function(newValue, devName, cellName) {
if (newValue){
log.info("Rile ",ruleName, " new ", newValue)
dev[devName][cellName]="";
}
}
})
}
makeRule("testZigbeeButton","Button_on_table/action", "");
Да, это то понятно.
Но проблема в том, что не происходит перепубликация в топике WB
last_seen - изменяется, а action - повторно не приходит
Неправда.
mosquitto_sub -v -t "/devices/Button_on_table/controls/action"
/devices/Button_on_table/controls/action single
/devices/Button_on_table/controls/action single
/devices/Button_on_table/controls/action single
/devices/Button_on_table/controls/action single
/devices/Button_on_table/controls/action single
/devices/Button_on_table/controls/action single
/devices/Button_on_table/controls/action single
/devices/Button_on_table/controls/action single
/devices/Button_on_table/controls/action single
/devices/Button_on_table/controls/action single
Согласен, так приходят:
root@wirenboard-AHUMZKW7:~# mosquitto_sub -v -t “/devices/Aqara_remote_15/controls/action”
/devices/Aqara_remote_15/controls/action single
/devices/Aqara_remote_15/controls/action single
/devices/Aqara_remote_15/controls/action single
/devices/Aqara_remote_15/controls/action single
/devices/Aqara_remote_15/controls/action single
/devices/Aqara_remote_15/controls/action single
/devices/Aqara_remote_15/controls/action single
/devices/Aqara_remote_15/controls/action single
/devices/Aqara_remote_15/controls/action single
/devices/Aqara_remote_15/controls/action single
/devices/Aqara_remote_15/controls/action single
даже по два раза, но это не проблема, решается в настройках устройства
filename.csv (352 байта)
а в истории канала нет …
История пишет тоже изменившиеся показания.
Тогда все понятно, спасибо
Соответственно описанный мной метод - позволяет и истории обрабатывать изменения.
Но если честно, то очень странно все это, т.к. есть пульт Икея и от него значения приходят постоянно даже если не меняется текстовое значение
А что именно странным кажется? whenСhanged - предназначен для обработки изменившихся значений.
whenСhanged - предназначен для обработки изменившихся значений - с этим вообще все понятно и нет вопросов
Странно про разбор сообщения от zigbee устройств
от пульта икея даже если текстовое значение не изменилось, то в истории оно все равно приходит каждый раз, а от кнопки акара - нет
Проверьте что предается. Не особо верится.
filename.csv (537 байтов)
вот что приходит от икея, все четко - last_seen и одновременно action
filename1.csv (352 байта)
а вот от акара - last_seen приходит, а action - нет
Это противоречит
Да, но вы видите что по факту в истории
Так… Еще раз, что именно работает не так, как описано в документации и как мне это воспроизвести. Если баг - то да, воспроизведем и исправим.