Hallo zusammen,
Ich habe gestern Abend leichtsinnigerweise per ./update.sh versucht, mein zigbee2mqtt auf den neuesten Stand zu bringen. Das ist grandios gescheitert. Long story short: Beim Update wird wohl versucht, nodejs 20 zu installieren, das aber anscheinend unter Buster nicht läuft. Ich habe also auf v18 downgegraded und zigbee2mqtt neu installiert, dann die Daten inkl. configuration.yaml aus der alten Installation eingespielt. Starten wollte es aber immer noch nicht; ich musste (als Broker nutze ich fhem):
mqtt:
base_topic: zigbee2mqtt
server: mqtt://localhost
client_id: zigbee_pi
, was vorher problemlos lief, ändern in
mqtt:
base_topic: zigbee2mqtt
server: mqtt://127.0.0.1
client_id: zigbee_pi
Jetzt habe ich das Problem, dass einige aus fhem abgeschickte Befehle an die Rollladensteuerungen nicht mehr funktionieren, konkret die Positionseinstellung per pct. Der eingestellte Wert kommt plötzliche nicht mehr numerisch, sondern anscheinend als STRING in zigbee2mqtt (in dessen GUI die pct-Einstellung funktioniert) an:
2024-01-03 19:16:45MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Publish 'set' 'position' to 'Rollladen3' failed: 'Error: 'position' is not a number, got string (73)'","meta":{"friendly_name":"Rollladen3"},"type":"zigbee_publish_error"}'
Ich habe versuchsweise mal ein Modul gelöscht und neu angelernt - dasselbe Problem. Open und close funktionieren BTW normal.
Ähnliche Probleme scheinen auch andere nach dem Updaten auf 1.3x zu haben, speziell bei Leuchten. Aber eine Lösung konnte ich nicht finden.
Die Module sind in der configuration.yaml auch schlicht definiert:
'0xa4c1389ad4033e96':
friendly_name: Rollladen3
Ich bin nicht zigbee-genug um einschätzen zu können, ob das Problem auf Seiten fhem oder bei zigbee2mqtt anzugehen ist - habt Ihr Rat?
Vielen Dank & viele Grüße
Martin
Kannst Du bitte beim Setzen der Position die MQTT Nachricht mitschneiden (z.Bsp. in FHEMWEB in der MQTT2_SERVER Detailansicht, "Show MQTT traffic") und hier anhaengen?
Sind es die "" um die 73?
20:25:52.012
SENT
zigbee2mqtt/Rollladen2/set
{"position":"73"}
20:25:52.075
zigbee_pi
zigbee2mqtt/bridge/logging
{"level":"error","message":"Publish 'set' 'position' to 'Rollladen2' failed: 'Error: 'position' is not a number, got string (73)'"}
20:25:52.087
zigbee_pi
zigbee2mqtt/bridge/logging
{"level":"info","message":"MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{\"message\":\"Publish 'set' 'position' to 'Rollladen2' failed: 'Error: 'position' is not a number, got string (73)'\",\"meta\":{\"friendly_name\":\"Rollladen2\"},\"type\":\"zigbee_publish_error\"}'"}
20:25:52.102
zigbee_pi
zigbee2mqtt/bridge/log
{"message":"Publish 'set' 'position' to 'Rollladen2' failed: 'Error: 'position' is not a number, got string (73)'","meta":{"friendly_name":"Rollladen2"},"type":"zigbee_publish_error"}
Siehe hier (https://github.com/Koenkk/zigbee2mqtt/issues/19951#event-11158201689).
Die Payload die du schickst muss nicht
{"position":"73"}
sondern
{"position":73}
sein.
Kannst du einfach in der setList des jeweiligen Devices ändern (Anführungszeichen um $EVTPART1 wegmachen), also hier wohl
<READING> $DEVICETOPIC/set {"position":$EVTPART1}
Hoffe das hilft!
Vielen Dank, das hilft in der Tat! Da das vorher auch in "" akzeptiert wurde, hat sich da wohl etwas in z2m 1.3x geändert. Werde mal schauen, ob ich das im Template (zigbee2mqtt_blind_drive) ändern kann.
Viele Grüße
Martin
Template-Versuch, incl. entfernter MotorSpeed-Option (da bei diesen Modulen nicht vorhanden): https://forum.fhem.de/index.php?topic=94495.msg1298827#msg1298827