FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: masterpete23 am 21 Januar 2019, 15:30:52

Titel: MQTT logt "Warning" beim direkten anschalten per brightness
Beitrag von: masterpete23 am 21 Januar 2019, 15:30:52
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
Titel: Antw:MQTT logt "Warning" beim direkten anschalten per brightness
Beitrag von: rudolfkoenig am 21 Januar 2019, 21:59:33
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.
Titel: Antw:MQTT logt "Warning" beim direkten anschalten per brightness
Beitrag von: masterpete23 am 22 Januar 2019, 07:53:56
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.
Titel: Antw:MQTT logt "Warning" beim direkten anschalten per brightness
Beitrag von: rudolfkoenig am 22 Januar 2019, 12:14:23
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?
Titel: Antw:MQTT logt "Warning" beim direkten anschalten per brightness
Beitrag von: Beta-User am 22 Januar 2019, 12:26:50
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.
Titel: Antw:MQTT logt "Warning" beim direkten anschalten per brightness
Beitrag von: rudolfkoenig am 22 Januar 2019, 12:48:25
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.
Titel: Antw:MQTT logt "Warning" beim direkten anschalten per brightness
Beitrag von: masterpete23 am 24 Januar 2019, 12:57:34
Jetzt habt ihr mich verwirrt.
Was soll/muss ich noch durchführen :) ?
Titel: Antw:MQTT logt "Warning" beim direkten anschalten per brightness
Beitrag von: Beta-User am 24 Januar 2019, 13:19:59
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.
Titel: Antw:MQTT logt "Warning" beim direkten anschalten per brightness
Beitrag von: masterpete23 am 24 Januar 2019, 16:57:09
Danke.
Habe nach dem Update dieses Warning nicht mehr.
Auch habe ich die readinglist angepasst - was bringt mir das?
Titel: Antw:MQTT logt "Warning" beim direkten anschalten per brightness
Beitrag 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> .*).

Titel: Antw:MQTT logt &quot;Warning&quot; beim direkten anschalten per brightness
Beitrag von: KernSani am 24 Januar 2019, 17:51:16
Die sub für das DevStateIcon nutzt readinsVal, sollte man vielleicht durch ReadingsNum ersetzen.


Kurz, weil mobil
Titel: Antw:MQTT logt "Warning" beim direkten anschalten per brightness
Beitrag von: rudolfkoenig am 24 Januar 2019, 17:58:06
Kurz, weil an mobil: seit svn 18363 (2019-01-21) nicht mehr.
Titel: Antw:MQTT logt "Warning" beim direkten anschalten per brightness
Beitrag von: masterpete23 am 25 Januar 2019, 09:28:06
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> .*).