MQTT logt "Warning" beim direkten anschalten per brightness

Begonnen von masterpete23, 21 Januar 2019, 15:30:52

Vorheriges Thema - Nächstes Thema

masterpete23

Hi,

ich nutze eine Ikea Bulb mit MQTT2Server und entsprechender Templates.

Wenn ich nun die Birne OFF schalte und danach per Brightnesswert "anschalte", dann geht sie an - der STATE ist aber weiter OFF und es kommt folgendes Warning:

2019.01.21 15:30:07 1: PERL WARNING: Argument "set 150" isn't numeric in numeric gt (>) at ./FHEM/10_MQTT2_DEVICE.pm line 621.

Näheres hier : https://forum.fhem.de/index.php/topic,95966.0.html

rudolfkoenig

Kannst du bitte die Ausgabe von list -r (FHEMWEB, Detail-Ansicht, Raw Definition) hier anhaengen?
Ich habe eine leichte Aenderung eingebaut, was es evtl. fixen koennte, Verfuegbar per update morgen ab 8.

masterpete23

Hi,

beim Klick auf RAW Definition bei der IKEA Bulb kommt:
Unknown command rawDef, try help.
List -r liefert:
define MQTT2_zigbee_IKEA01 MQTT2_DEVICE zigbee_IKEA01
attr MQTT2_zigbee_IKEA01 IODev m2s
attr MQTT2_zigbee_IKEA01 devStateIcon {zigbee2mqtt_devStateIcon255($name)}
attr MQTT2_zigbee_IKEA01 icon light_control
attr MQTT2_zigbee_IKEA01 model L_02a_zigbee2mqtt_bulb
attr MQTT2_zigbee_IKEA01 readingList zigbee2mqtt/IKEA01:.* { json2nameValue($EVENT, 'IKEA01_', $JSONMAP) }
attr MQTT2_zigbee_IKEA01 room MQTT2_DEVICE,Wohnzimmer
attr MQTT2_zigbee_IKEA01 setList on:noArg zigbee2mqtt/IKEA01/set {"state":"ON"}\
  off:noArg zigbee2mqtt/IKEA01/set {"state":"OFF"}\
  brightness:colorpicker,BRI,0,15,255 zigbee2mqtt/IKEA01/set {"state":"on","$EVTPART0":"$EVTPART1"}
attr MQTT2_zigbee_IKEA01 setStateList on off
attr MQTT2_zigbee_IKEA01 webCmd toggle:on:off:brightness

setstate MQTT2_zigbee_IKEA01 set_on
setstate MQTT2_zigbee_IKEA01 2019-01-21 15:50:29 IKEA01_brightness 254
setstate MQTT2_zigbee_IKEA01 2019-01-21 15:50:29 IKEA01_state ON
setstate MQTT2_zigbee_IKEA01 2019-01-18 17:00:33 associatedWith MQTT2_RASPI5
setstate MQTT2_zigbee_IKEA01 2019-01-21 15:50:28 brightness set 255
setstate MQTT2_zigbee_IKEA01 2019-01-21 15:50:26 state set_on


Soll ich noch was vorm Update testen? Sonst würde ich nachher updaten.

rudolfkoenig

Mein Patch wird wohl helfen, aber ich bin verwundert ueber den Wert des brightness Readings.
Ich gehe davon aus, dass du es nicht so manuell gesetzt hast.

Kannst du bitte "attr m2s verbose 4" setzen, und nach dem Empfang einer Nachricht vom Endgeraet die passende PUBLISH Zeile aus dem FHEM-Log hier anhaengen?

Beta-User

Kurze Anmerkungen:

Das brightness-Reading ist an sich ok und wird z.B. auch über den slider so erzeugt (wg. setStateList).

Da dieses template noch aus der Anfangszeit stammt, wird aber die readingList nicht per template erstellt, sondern von autocreate - mit den Präfixen, was in dem Fall nicht gut ist.

@masterpete:
Ändere das mal in
attr MQTT2_zigbee_IKEA01 readingList zigbee2mqtt/IKEA01:.* { json2nameValue($EVENT) }

In den templates fixe ich das bei Gelegenheit.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rudolfkoenig

ZitatDas brightness-Reading ist an sich ok und wird z.B. auch über den slider so erzeugt (wg. setStateList).
Danke fuer den Hinweis, das habe ich verdraengt.

masterpete23

Jetzt habt ihr mich verwirrt.
Was soll/muss ich noch durchführen :) ?

Beta-User

Zitat von: masterpete23 am 24 Januar 2019, 12:57:34
Jetzt habt ihr mich verwirrt.
Was soll/muss ich noch durchführen :) ?
Zum einen ein update.

Dann nachsehen, ob das gefixt wurde (die Einträge kamen vom Modul 10_MQTT2_DEVICE.pm). Ich habe das auch noch nicht verifiziert, ob das weg ist...

Weitere Empfehlung: den verkürzten json2valueName()-Code irgendwie in deine Installation bringen (geht über das aktualisierte template, hoffe ich jedenfalls). Ist nicht für das Verschwinden der Einträge notwendig, macht die Daten aber konsistent.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

masterpete23

Danke.
Habe nach dem Update dieses Warning nicht mehr.
Auch habe ich die readinglist angepasst - was bringt mir das?

Beta-User

Willst du unterschiedliche Readings haben für Sende- und Empfangsrichtung?
Vermutlich nein => ergo sollten sie auch gleich heißen...

Dann wird bei "setStateList on off" das Reading für Brightness in Senderichtung mit "set ..." aktualisiert (was das Warning verursacht hat), kommt dann die Vollzugsmeldung zurück, wird das (gleiche) Brightness-Reading dann mit dem effektiven Wert überschrieben.

Wird aber erst richtig transparent, wenn man die Zeitstempel anguckt oder die alten Readings mal löscht (deleteReading <name> .*).

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

KernSani

Die sub für das DevStateIcon nutzt readinsVal, sollte man vielleicht durch ReadingsNum ersetzen.


Kurz, weil mobil
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

rudolfkoenig

Kurz, weil an mobil: seit svn 18363 (2019-01-21) nicht mehr.

masterpete23

Klappt. Danke dir

Zitat von: Beta-User am 24 Januar 2019, 17:08:26
Willst du unterschiedliche Readings haben für Sende- und Empfangsrichtung?
Vermutlich nein => ergo sollten sie auch gleich heißen...

Dann wird bei "setStateList on off" das Reading für Brightness in Senderichtung mit "set ..." aktualisiert (was das Warning verursacht hat), kommt dann die Vollzugsmeldung zurück, wird das (gleiche) Brightness-Reading dann mit dem effektiven Wert überschrieben.

Wird aber erst richtig transparent, wenn man die Zeitstempel anguckt oder die alten Readings mal löscht (deleteReading <name> .*).