NEWS
Tester wanted - Zigbee Adapter 3.1
-
@asgothian werde ich gleich testen auf jeden fall kann ich jetzt schon sagen das energy_a und energy_b wieder angezeigt werden. Scheint das es funktioniert.
-
@flugschüler beim device_query oder auch so ?
-
@asgothian Nein auch so. Es scheint das alles so funktioniert wie es soll. Tolle leistung von dir muss ich sagen. Soll ich trozdem noch warten und die daten auslesen wie du oben beschrieben hast? Hab noch mal kontrolliert alle datenpunkte werden aktualisiert.
link_quality ist rot ist das ein fehler oder ist das nur so weil der empfang nicht so gut ist?
-
@flugschüler das kann ich so nicht sagen, dazu musst du dir die Meldungen anschauen. Wahrscheinlich gibt es Meldungen ohne Daten (payload = {}).
A.
-
I01: Zigbee Event of Type commandDataReport from device 0xa4c13886e50d0115, incoming event: {"type":"commandDataReport","data":{"seq":9472,"dpValues":[{"dp":110,"datatype":2,"data":{"type":"Buffer","data":[0,0,170,231]}}]},"linkquality":58,"groupID":0,"cluster":"manuSpecificTuya","meta":{"rawData":{"type":"Buffer","data":[9,111,2,0,37,110,2,0,4,0,0,170,231]},"zclTransactionSequenceNumber":111,"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0}},"endpoint_id":1} I02: 2 converters available for '2CT' 'a4c13886e50d0115' with cluster 'manuSpecificTuya' and type 'commandDataReport' I03: message received '{"linkquality":58}' from device a4c13886e50d0115 type '2CT' I04: value generated '58' from device a4c13886e50d0115 for 'Link quality' I02.1a: converter 1 : Cluster manuSpecificTuya I02.0b: data: {"seq":9472,"dpValues":[{"dp":110,"datatype":2,"data":{"type":"Buffer","data":[0,0,170,231]}}]} options: {} meta:{"deviceIEEE":"0xa4c13886e50d0115","logger":"StatesController","state":{"state":""}} result:undefined I02.2a: converter 2 : Cluster manuSpecificTuya I02.1b: data: {"seq":9472,"dpValues":[{"dp":110,"datatype":2,"data":{"type":"Buffer","data":[0,0,170,231]}}]} options: {} meta:{"deviceIEEE":"0xa4c13886e50d0115","logger":"StatesController","state":{"state":""}} result:{} I02.2c: candidates: [{},{}] => payload {} NOVAL: payload {} is empty
Aber wie gesagt das Gerät funktioniert und die datenpunkte werden angezeigt.
-
@flugschüler dann würde ich mir erst einmal keine Sorgen machen.
A.
-
@asgothian Super gemacht. Wird das Gerät in den neuen Zigbee Adapter integriert? Soll ich den Adapter jetzt über git installiert lassen?
-
@flugschüler sobald die ganzen Nebeneffekte geklärt sind geht das erst ins latest, dann ins stable.
-
@flugschüler sagte in Tester wanted - Zigbee Adapter 3.1:
Soll ich den Adapter jetzt über git installiert lassen?
Ja. Wenn irgendwann über dein bevorzugtes Repository eine Version größer als die jetzige angeboten wird kommt die dann über deine regelmäßige Systempflege auf die Kiste.
-
@thomas-braun Ihr seid die besten
-
@asgothian sagte in Tester wanted - Zigbee Adapter 3.1:
@dimaiv kannst du folgendes machen:
- die aktuelle Github version installieren
- nach dem Start eine ts0121 plug auf debug setzen
- ein Device Query machen
- Dann das Debug interface öffnen
- mit dem button 1 aus dem Screenshot die Daten aktualisieren
- in jeder Zeile bei incoming messages mit dem blauen Button 2 die Meldungen öffnen
- aus dem Dialog heraus kopieren und hier Posten ?
Danke.
A.
I01: Zigbee Event of Type readResponse from device 0x60a423fffe61dd4a, incoming event: {"type":"readResponse","data":{"tuyaBacklightMode":1},"linkquality":87,"groupID":0,"cluster":"genOnOff","meta":{"rawData":{"type":"Buffer","data":[24,8,1,1,128,0,48,1]},"zclTransactionSequenceNumber":8,"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":true,"reservedBits":0}},"endpoint_id":1} I02: 3 converters available for 'TS0121_plug' '60a423fffe61dd4a' with cluster 'genOnOff' and type 'readResponse' I03: message received '{"linkquality":87}' from device 60a423fffe61dd4a type 'TS0121_plug' I04: value generated '87' from device 60a423fffe61dd4a for 'Link quality' I02.1a: converter 1 : Cluster genOnOff I02.0b: data: {"tuyaBacklightMode":1} options: {} meta:{"deviceIEEE":"0x60a423fffe61dd4a","logger":"StatesController","state":{"state":""}} result:undefined I02.2a: converter 2 : Cluster genOnOff I02.1b: data: {"tuyaBacklightMode":1} options: {} meta:{"deviceIEEE":"0x60a423fffe61dd4a","logger":"StatesController","state":{"state":""}} result:undefined I02.3a: converter 3 : Cluster genOnOff I02.2b: data: {"tuyaBacklightMode":1} options: {} meta:{"deviceIEEE":"0x60a423fffe61dd4a","logger":"StatesController","state":{"state":""}} result:{"indicator_mode":"off/on"} I02.3c: candidates: [{},{},{"indicator_mode":"off/on"}] => payload {"indicator_mode":"off/on"} I03-1: message received '{"indicator_mode":"off/on"}' from device 60a423fffe61dd4a type 'TS0121_plug' I04-1: value generated '"off/on"' from device 60a423fffe61dd4a for 'LED indicator mode'
I01: Zigbee Event of Type readResponse from device 0x60a423fffe61dd4a, incoming event: {"type":"readResponse","data":{"moesStartUpOnOff":0},"linkquality":87,"groupID":0,"cluster":"genOnOff","meta":{"rawData":{"type":"Buffer","data":[24,7,1,2,128,0,48,0]},"zclTransactionSequenceNumber":7,"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":true,"reservedBits":0}},"endpoint_id":1} I02: 3 converters available for 'TS0121_plug' '60a423fffe61dd4a' with cluster 'genOnOff' and type 'readResponse' I03: message received '{"linkquality":87}' from device 60a423fffe61dd4a type 'TS0121_plug' I04: value generated '87' from device 60a423fffe61dd4a for 'Link quality' I02.1a: converter 1 : Cluster genOnOff I02.0b: data: {"moesStartUpOnOff":0} options: {} meta:{"deviceIEEE":"0x60a423fffe61dd4a","logger":"StatesController","state":{"state":""}} result:undefined I02.2a: converter 2 : Cluster genOnOff I02.1b: data: {"moesStartUpOnOff":0} options: {} meta:{"deviceIEEE":"0x60a423fffe61dd4a","logger":"StatesController","state":{"state":""}} result:{"power_outage_memory":"off"} I02.3a: converter 3 : Cluster genOnOff I02.2b: data: {"moesStartUpOnOff":0} options: {} meta:{"deviceIEEE":"0x60a423fffe61dd4a","logger":"StatesController","state":{"state":""}} result:undefined I02.3c: candidates: [{},{"power_outage_memory":"off"},{}] => payload {"power_outage_memory":"off"} I03-1: message received '{"power_outage_memory":"off"}' from device 60a423fffe61dd4a type 'TS0121_plug' I04-1: value generated '"off"' from device 60a423fffe61dd4a for 'Recover state after power outage'
I01: Zigbee Event of Type readResponse from device 0x60a423fffe61dd4a, incoming event: {"type":"readResponse","data":{"onOff":0},"linkquality":87,"groupID":0,"cluster":"genOnOff","meta":{"rawData":{"type":"Buffer","data":[24,6,1,0,0,0,16,0]},"zclTransactionSequenceNumber":6,"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":true,"reservedBits":0}},"endpoint_id":1} I02: 3 converters available for 'TS0121_plug' '60a423fffe61dd4a' with cluster 'genOnOff' and type 'readResponse' I03: message received '{"linkquality":87}' from device 60a423fffe61dd4a type 'TS0121_plug' I04: value generated '87' from device 60a423fffe61dd4a for 'Link quality' I02.1a: converter 1 : Cluster genOnOff I02.0b: data: {"onOff":0} options: {} meta:{"deviceIEEE":"0x60a423fffe61dd4a","logger":"StatesController","state":{"state":""}} result:{"state":"OFF"} I02.2a: converter 2 : Cluster genOnOff I02.1b: data: {"onOff":0} options: {} meta:{"deviceIEEE":"0x60a423fffe61dd4a","logger":"StatesController","state":{"state":""}} result:undefined I02.3a: converter 3 : Cluster genOnOff I02.2b: data: {"onOff":0} options: {} meta:{"deviceIEEE":"0x60a423fffe61dd4a","logger":"StatesController","state":{"state":""}} result:undefined I02.3c: candidates: [{"state":"OFF"},{},{}] => payload {"state":"OFF"} I03-1: message received '{"state":"OFF"}' from device 60a423fffe61dd4a type 'TS0121_plug' I04-1: value generated 'false' from device 60a423fffe61dd4a for 'On/off state of the switch'
P.S.: ich glaube, die weiteren Daten bei diesen Steckdosen wurden immer gepoolt, und jetzt passiert es nicht.
-
@asgothian
Was mir noch aufgefallen:Mit 3.1.2 kann ich über:
sendToZigbee { "id": "zigbee.0.842e14fffedb8ae5", "ep": "1", "cid": "haElectricalMeasurement", "cmd": "read", "cmdType": "foundation", "zclData": { "activePower": {} } }
Die weiteren Daten abrufen.
Mit 3.1.3 von jetzt funktioniert es nicht.
Das sind 2 absolut gleiche Steckdosen, unterschiedliche Installationen.
-
@dimaiv sagte in Tester wanted - Zigbee Adapter 3.1:
P.S.: ich glaube, die weiteren Daten bei diesen Steckdosen wurden immer gepoolt, und jetzt passiert es nicht.
Sind die Meldungen nach einem Device_query, oder kommen die normal so ?
@dimaiv sagte in Tester wanted - Zigbee Adapter 3.1:
Was mir noch aufgefallen:
Mit 3.1.2 kann ich über:
sendToZigbee { "id": "zigbee.0.842e14fffedb8ae5", "ep": "1", "cid": "haElectricalMeasurement", "cmd": "read", "cmdType": "foundation", "zclData": { "activePower": {} } }
Die weiteren Daten abrufen.
Mit 3.1.3 von jetzt funktioniert es nicht.Danke für den Hinweis - ich hab im Hintergrund einiges Optimiert.
A.
-
@asgothian sagte in Tester wanted - Zigbee Adapter 3.1:
Sind die Meldungen nach einem Device_query, oder kommen die normal so ?
A.
Die Meldungen sind nach einem Device_query, aber auch normal kommen nur die.
-
@dimaiv Ok, danke. Da scheint ein Konverter geändert - da muss ich im Detail graben, und Dir eine extra version machen. Wird aber etwas dauern.
A.
-
@asgothian Zumindest der Developer Tab sollte jetzt wieder funktionieren.
Kannst du versuchen was passiert wenn du damit versuchst die Daten abzurufen ? Ob dann eine Meldung rein kommt ?
Interessant ist was genau an Antwort auf den Read Request rein kommt, wenn überhaupt etwas.
A.
-
@asgothian sagte in Tester wanted - Zigbee Adapter 3.1:
@asgothian Zumindest der Developer Tab sollte jetzt wieder funktionieren.
Kannst du versuchen was passiert wenn du damit versuchst die Daten abzurufen ? Ob dann eine Meldung rein kommt ?
Interessant ist was genau an Antwort auf den Read Request rein kommt, wenn überhaupt etwas.
A.
Über Entwikler Tab funktioniert jetzt:
I01: Zigbee Event of Type readResponse from device 0x60a423fffe61dd4a, incoming event: {"type":"readResponse","data":{"activePower":0},"linkquality":51,"groupID":0,"cluster":"haElectricalMeasurement","meta":{"rawData":{"type":"Buffer","data":[24,8,1,11,5,0,41,0,0]},"zclTransactionSequenceNumber":8,"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":true,"reservedBits":0}},"endpoint_id":1} I02: 1 converter available for 'TS0121_plug' '60a423fffe61dd4a' with cluster 'haElectricalMeasurement' and type 'readResponse' I03: message received '{"linkquality":51}' from device 60a423fffe61dd4a type 'TS0121_plug' I04: value generated '51' from device 60a423fffe61dd4a for 'Link quality' I02.1a: converter 1 : Cluster haElectricalMeasurement I02.0b: data: {"activePower":0} options: {} meta:{"deviceIEEE":"0x60a423fffe61dd4a","logger":"StatesController","state":{"state":""}} result:{"power":0} I02.1c: candidates: [{"power":0}] => payload {"power":0} I03-1: message received '{"power":0}' from device 60a423fffe61dd4a type 'TS0121_plug' I04-1: value generated '0' from device 60a423fffe61dd4a for 'Load power'
Uber die Scripte stürzt aber der Adapter ab mit folgender Meldung:
2025-09-21 21:40:50.830 - info: javascript.0 (942) script.js.Plug_abfragen: start JavaScript (Blockly) 2025-09-21 21:40:50.842 - info: javascript.0 (942) script.js.Plug_abfragen: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 2025-09-21 21:40:55.849 - error: zigbee.0 (282446) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). 2025-09-21 21:40:55.851 - error: zigbee.0 (282446) unhandled promise rejection: Cannot read properties of undefined (reading 'replace') 2025-09-21 21:40:56.167 - error: zigbee.0 (282446) TypeError: Cannot read properties of undefined (reading 'replace') at Developer.sendToZigbee (/opt/iobroker/node_modules/iobroker.zigbee/lib/developer.js:90:45) at Developer.onMessage (/opt/iobroker/node_modules/iobroker.zigbee/lib/developer.js:49:26) at Zigbee.emit (node:events:536:35) at Zigbee.emit (node:domain:489:12) at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11040:34) at Immediate. (file:///opt/iobroker/node_modules/@iobroker/db-states-redis/src/lib/states/statesInRedisClient.ts:365:37) at processImmediate (node:internal/timers:483:21) 2025-09-21 21:40:56.168 - error: zigbee.0 (282446) Cannot read properties of undefined (reading 'replace') 2025-09-21 21:40:56.193 - info: zigbee.0 (282446) Halting zigbee adapter. Restart delay is at least 30 seconds. 2025-09-21 21:40:56.193 - info: zigbee.0 (282446) cleaning everything up... 2025-09-21 21:40:56.196 - info: zigbee.0 (282446) Saved local configuration data 2025-09-21 21:40:56.227 - warn: zigbee.0 (282446) ELEVATED:I03 (2e22) message received '{"available":false}' from device 60a423fffe61dd4a type 'TS0121_plug' 2025-09-21 21:40:56.228 - warn: zigbee.0 (282446) ELEVATED:I04 (2e22) value generated 'false' from device 60a423fffe61dd4a for 'Available' 2025-09-21 21:40:56.229 - warn: zigbee.0 (282446) ELEVATED:I03 (2e22) message received '{"linkquality":0}' from device 60a423fffe61dd4a type 'TS0121_plug' 2025-09-21 21:40:56.230 - warn: zigbee.0 (282446) ELEVATED:I04 (2e22) value generated '0' from device 60a423fffe61dd4a for 'Link quality' 2025-09-21 21:40:56.586 - info: zigbee.0 (282446) Closing Zigbee network, 0 seconds remaining 2025-09-21 21:40:57.195 - warn: zigbee.0 (282446) Terminated (UNCAUGHT_EXCEPTION): Without reason 2025-09-21 21:40:57.783 - error: host.GartenIoB Caught by controller[1]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason: 2025-09-21 21:40:57.784 - error: host.GartenIoB Caught by controller[2]: TypeError: Cannot read properties of undefined (reading 'replace') 2025-09-21 21:40:57.784 - error: host.GartenIoB Caught by controller[2]: at Developer.sendToZigbee (/opt/iobroker/node_modules/iobroker.zigbee/lib/developer.js:90:45) 2025-09-21 21:40:57.784 - error: host.GartenIoB Caught by controller[2]: at Developer.onMessage (/opt/iobroker/node_modules/iobroker.zigbee/lib/developer.js:49:26) 2025-09-21 21:40:57.784 - error: host.GartenIoB Caught by controller[2]: at Zigbee.emit (node:events:536:35) 2025-09-21 21:40:57.785 - error: host.GartenIoB Caught by controller[2]: at Zigbee.emit (node:domain:489:12) 2025-09-21 21:40:57.785 - error: host.GartenIoB Caught by controller[2]: at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:11040:34) 2025-09-21 21:40:57.785 - error: host.GartenIoB Caught by controller[2]: at Immediate. (file:///opt/iobroker/node_modules/@iobroker/db-states-redis/src/lib/states/statesInRedisClient.ts:365:37) 2025-09-21 21:40:57.785 - error: host.GartenIoB Caught by controller[2]: at processImmediate (node:internal/timers:483:21) 2025-09-21 21:40:57.785 - error: host.GartenIoB instance system.adapter.zigbee.0 terminated with code 6 (UNCAUGHT_EXCEPTION) 2025-09-21 21:40:57.785 - info: host.GartenIoB Restart adapter system.adapter.zigbee.0 because enabled 2025-09-21 21:41:01.905 - info: javascript.0 (942) script.js.Plug_abfragen: Stopping script
Blockly=>JS:
var Intervall; // Beschreibe diese Funktion … async function Power() { sendTo('zigbee.0', 'sendToZigbee', { 'parameter': { "id": "zigbee.0.60a423fffe61dd4a", "ep": "1", "cid": "haElectricalMeasurement", "cmd": "read", "cmdType": "foundation", "zclData": { "activePower": {} } }, }); } Intervall = setInterval(async () => { await Power(); }, 5000);
Mit 3.1.2 funktionieren beide Variante.
-
@dimaiv Danke fürs Testen - ich schau mir das morgen an
-
@dimaiv sagte in Tester wanted - Zigbee Adapter 3.1:
sendTo('zigbee.0', 'sendToZigbee', { 'parameter': { "id": "zigbee.0.60a423fffe61dd4a", "ep": "1", "cid": "haElectricalMeasurement", "cmd": "read", "cmdType": "foundation", "zclData": { "activePower": {} } }, });
Diese Methode die Funktion aufzurufen ist auf Dauer instabil - sie basiert darauf das interne Funktionen nicht geändert werden. Bitte teste, ob mit einer der 3.X Versionen der folgende Payload in
send_payload
das gewünschte Ergebnis bringt. Dieses ist als Ersatz für das 'sendToZigbee' implementiert worden{ "read": { "cluster": "haElectricalMeasurement", "attributes": [ "activePower" ] } }
Nachtrag:
bist du sicher das dieser Code in 3.0.5 wirklich geht ?
var Intervall; // Beschreibe diese Funktion … async function Power() { sendTo('zigbee.0', 'sendToZigbee', { 'parameter': { "id": "zigbee.0.60a423fffe61dd4a", "ep": "1", "cid": "haElectricalMeasurement", "cmd": "read", "cmdType": "foundation", "zclData": { "activePower": {} } }, }); } Intervall = setInterval(async () => { await Power(); }, 5000);
Hintergrund - es gab eine Anpassung am Blockly SendTo Block. Wo der vorher den Code
sendTo('zigbee.0', 'sendToZigbee', {"id": "zigbee.0.00be44fffeab0b87", "ep": "1", "cid": "haElectricalMeasurement", "cmd": "read", "cmdType": "foundation", "zclData": { "activePower": {} } }, );
als Standard erzeugt hat, macht er jetzt
sendTo('zigbee.0', 'sendToZigbee', { 'parameter': { "id": "zigbee.0.60a423fffe61dd4a", "ep": "1", "cid": "haElectricalMeasurement", "cmd": "read", "cmdType": "foundation", "zclData": { "activePower": {} } }, });
mit dem Standard Block. Um die alte Version zurück zu bekommen muss man den Namen der Variable im Block löschen.
Blockly Skript zum importieren als Beispiel:
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="sendto_custom" id="+%Nw$~nnCWC@TlZQZ~]8" x="212" y="138"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="parameter"></mutation> <field name="INSTANCE">zigbee.0</field> <field name="COMMAND">sendToZigbee</field> <field name="LOG"></field> <field name="WITH_STATEMENT">FALSE</field> <value name="ARG0"> <shadow type="text" id="](`*pMFJEuOLTeBJ5hZF"> <field name="TEXT">{"id": "zigbee.0.00be44fffeab0b87", "ep": "1", "cid": "haElectricalMeasurement", "cmd": "read", "cmdType": "foundation", "zclData": { "activePower": {} } }</field> </shadow> </value> <next> <block type="sendto_custom" id="1o#t?S/@4Z_1R7G/YxW3"> <mutation xmlns="http://www.w3.org/1999/xhtml" items=""></mutation> <field name="INSTANCE">zigbee.0</field> <field name="COMMAND">sendToZigbee</field> <field name="LOG"></field> <field name="WITH_STATEMENT">FALSE</field> <value name="ARG0"> <shadow type="text" id="O`S)U?JPvg=x#CYYZI*r"> <field name="TEXT">{"id": "zigbee.0.00be44fffeab0b87", "ep": "1", "cid": "haElectricalMeasurement", "cmd": "read", "cmdType": "foundation", "zclData": { "activePower": {} } }</field> </shadow> </value> </block> </next> </block> </xml>
-
@asgothian
Deine Blockly ist absolut identisch mit dem was ich oben gepostet habe, nur bei mir ist SendTo in eine funktion gepackt und anderes exportiert.
Aber es macht nix, beide Varianten bringen 3.1.3 zum Absturz, und mit 3.1.2 aus latest funktionieren einwandfrei.
Aber, das ist jetz auch egal, weil, Variante über send_payload funktioniert auch bei 3.1.3 , und ist einfacher einzurichten bei mehreren Steckdosen.Hoffentlich, muss man es ab jetzt, nich dauerhaft benutzen und überall einrichten , und es wird, wie vorher, von alleine über Converter (Pooling) funktionieren .
P.S.: Problem mit send_payload bei SWV bin ich auch betroffen, aber ich verfolge es auf Git. Falls hier was zum testen gibt, oder du das Ventil zum debuggen haben möchtest/muss, sag Bescheid.