NEWS
Zigbee Bodenfeuchtesensor: Nur 1 von 3 funzt
-
Hallo,
ich habe mir drei Giex TS0601 gekauft. TS0601 scheint ein häufiger Begriff von chinesischen Produkten zu sein. Deshalb hier ein Bild:
Beim Einbinden in den Zigbee-Adapter (aktuelle Version 1.10.3) geht leider nur einer von dreien. Der erste den ich eingebunden hab hat gleich auf Anhieb funktioniert, die beiden anderen dann nicht mehr:
Hier noch das Protokoll eines nicht funktionierenden Geräts beim Einbinden. Was heisst "supported": false ?
Unter "model" steht da noch in blau:
- beim funktionierenden: TS0601_soil
- bei den nicht funktionierenden nur TS0601
Ich hab angst den ersten nochmals zu löschen und neu einzubinden, dass der dann auch nicht mehr tut. Sonst könnte ich vielleicht einen Unterschied ausmachen.
Weiss jemand Rat?
-
@delphinis click mal in den Kacheln auf das kleine (i) und poste was da steht.
A.
-
@asgothian
Das nicht funktionierende sieht so aus:
und das funktionierende so:
-
@delphinis lt herstellerinfo sind es unterschiedliche Gerätetypen:
_TZE200… UND _TZE204…
es ist denkbar das die in der Zukunft auch gehen. Aktiv kann ich da wenig helfen.A.
P.s. willkommen in der Hölle von TuYa:- was gleich aussieht ist es ggf. Nicht.
- was nicht gleich aussieht vielleicht schon.
- vieles ist nicht-Standard
A.
-
@asgothian said in Zigbee Bodenfeuchtesensor: Nur 1 von 3 funzt:
es ist denkbar das die in der Zukunft auch gehen.
meinst du damit, dass die vom Zigbee-Adapter "noch" nicht unterstützt werden?
-
@delphinis ja
-
Das gleiche Problem hatte ich bei der Deconz-Integration auch. Hier hat es aber geholfen, die DDF-Datei (spezifische Ansteuerung für bestimmte Gerätetypen) an die neue Bezeichnung anzupassen.
Will sagen, die Parameter scheinen absolut identisch zu sein.
Wie das beim Zigbee-Adapter geht weiß ich aber leider nicht.
-
@asgothian
Na dann hoffen wir mal...
damit das nicht wieder weiterer Elektroschrott wird -
@oxident sagte in Zigbee Bodenfeuchtesensor: Nur 1 von 3 funzt:
Das gleiche Problem hatte ich bei der Deconz-Integration auch. Hier hat es aber geholfen, die DDF-Datei (spezifische Ansteuerung für bestimmte Gerätetypen) an die neue Bezeichnung anzupassen.
Will sagen, die Parameter scheinen absolut identisch zu sein.
Wie das beim Zigbee-Adapter geht weiß ich aber leider nicht.
- unter node_modules die Bibliothek zigbee_herdsman_converters finden
- in dem Verzeichnis einmal unter src/devices die Datei Tuya.ts sowie unter devices die Datei Tuya.js finden
- In den Beiden Dateien den String
_TZE200_myd45weu
finden. Er sollte sich in einem Konstrukt ähnlich wie folgt befinden:
fingerprint: tuya.fingerprint('TS0601', ,['_TZE200_myd45weu'],['irgendeinandererFingerprint])
Den erweitern (in beiden Dateien) das er so aussieht:
fingerprint: tuya.fingerprint('TS0601', ,['_TZE200_myd45weu'], ['_TZE204_myd45weu'], ['irgendeinandererFingerprint])
Adapter neu starten, hoffen das es passt. Neu angelernt müssen die Geräte normalerweise nicht.
A.
p.s. Das ganze geht natürlich bei jedem Update des Zigbee-Adapters verloren. Es gibt theoretisch eine einfachere Variante - allerdings kann ich aktuell nicht sagen ob die noch geht seit der zigbee-herdsman-converter auf Typescript umgestellt wurde. Das muss ich erst nochmal testen - aber nicht bei dieser Hitze.Nachtrag: Wenn es passt dann bescheid sagen - dann kann ich die Änderung in der Bibliothek eintragen lassen. Dann kommt das in 2 bis 4 Wochen auch automatisch mit.
-
@asgothian said in Zigbee Bodenfeuchtesensor: Nur 1 von 3 funzt:
in dem Verzeichnis einmal unter src/devices die Datei Tuya.ts sowie unter devices die Datei Tuya.js finden
Danke für die Anleitung. Ich hab ein Windows system und vielleicht ist das anders strukturiert aber:
Ich finde unter zigbee_herdsman_converters mit "tuya.?s" die Datei tuya.js nur unter ..\devices (1kb) und unter ..\lib (26kb)
Auch kein "tuya.ts" file im ganzen iobroker verzeichnis.
es gibt kein src-Directory (nur unter node_modules\debug\ aber da ist nichts dergleichen drin.
Es gibt auch kein String _TZE200_myd45weu in der js-Datei sondern nur:
als einziger Eintrag.
Stattdessen gibt es zig Einträge in diversen anderen Dateien mit TZE200 aber anderen Endungen (Find in Files):
-
@delphinis sagte in Zigbee Bodenfeuchtesensor: Nur 1 von 3 funzt:
@asgothian said in Zigbee Bodenfeuchtesensor: Nur 1 von 3 funzt:
in dem Verzeichnis einmal unter src/devices die Datei Tuya.ts sowie unter devices die Datei Tuya.js finden
Danke für die Anleitung. Ich hab ein Windows system und vielleicht ist das anders strukturiert aber:
Ich finde unter zigbee_herdsman_converters mit "tuya.?s" die Datei tuya.js nur unter ..\devices (1kb) und unter ..\lib (26kb)
Auch kein "tuya.ts" file im ganzen iobroker verzeichnis.
es gibt kein src-Directory (nur unter node_modules\debug\ aber da ist nichts dergleichen drin.
Es gibt auch kein String _TZE200_myd45weu in der js-Datei sondern nur:
als einziger Eintrag.
Stattdessen gibt es zig Einträge in diversen anderen Dateien mit TZE200 aber anderen Endungen (Find in Files):
ich kann Dir anbieten das wir das gemeinsam via Discord / Anydesk heute Abend fixen. Ich muss mir anschauen wie es bei Dir aussieht.
-
@asgothian
Bei anydesk wurde ich fälschlicherweise als Geschäftskunde identifiziert und ich konnte das Problem nicht lösen. Also hab ich es deinstalliert. Discord kann ich nicht installieren, weil ich aus irgendwelchen Gründen keinen Zugriff aus dem Netz geben kann...
Ich benutze intern TightVNC, aber ich weiss nicht ob das übers Internet geht. -
@delphinis TightVNC übers internet ist ein Sicherheitsrisiko, das sollten wir nicht nutzen. Was sonst geht weiss ich nicht - ich nutze eigentlich immer entweder anydesk oder discord.
A.
-
@asgothian
Ich hab das ganze nochmals angeschaut und den String doch noch gefunden und angepasst: Die Datei ist im Screenshot auch ersichtlich.
Danke für die Hilfe!
PS: Den Zigbee-Adapter neu starten hat nicht geholfen. Aber nach Neustart des iob hat's dann getan.
-
@asgothian
Nochmal eine Frage: Ich hab gerade noch einen "Giex Smart Water Timer" bekommen und wollte den einbinden. Dieser ist bei https://www.zigbee2mqtt.io/devices/GX02.html eingetragen, wird aber nicht, oder noch nicht unterstützt. Er hat sich angemeldet, jedoch auch nur so halb und nicht funktionsfähig. Er meldet sich als "_TZE200_7ytb3h8u",
Hab versucht, ihn auch dort einzutragen. Jedoch ergab das einen neuen Wassermess-Sensor. Das war offenbar das falsche. Vermute, da braucht es einen neuen Fingerprint Eintrag, oder ich muss ihn unter dem richtigen eintragen.
Da hab ich aber nur das "Water valve" gefunden. Das kann es nicht sein, da es nur vier Parameter und eine andere Bezeichnung hat (Bezeichnung vom Gerät: TS0601 ).
Mindestens ein Parameter wie z.B. "irrigation_start_time" sollte man ja finden?
Das Gerät hat sich einmal so halb angemeldet, wurde dann aber sehr heiss und ich musste die Batterien entfernen. Mittlerweile konnte ich das Gerät reparieren, der Batteriehalter war defekt (prod. Fehler).- Gibt es da eine Lösung das Gerät an den Zigbee-Adapter zu bekommen?
- Da das Gerät unter den unterstützten Geräten ist, bin ich erstaunt, dass es kein Eintrag im tuya.js gibt. Oder wird der erst beim Anmelden übertragen?
- Kann man sich diesen Fingerprint mit den Daten von https://www.zigbee2mqtt.io selbst zusammenschustern?
-
@delphinis
Die beiden Bodenfeuchtigkeits-Sensoren konnten nun ja in den Zigbee-Adapter integriert werden. Jedoch funktionieren diese nicht richtig. Da diese ja offenbar eine neuere Version gegenüber dem allerersten haben, frage ich mich, ob der Fingerprint geändert hat, und deshalb auch die Daten vielleicht falsch sind?- Der allererste mit einer älteren Version scheint mit der Feuchtigkeit zu funktionieren. Zwar ist die Temperaturangabe selbst bei 30°C bei 24, aber das stört mich nicht, da ich auf diese Info verzichten kann. Ist aber vieleicht doch wichtig zu wissen.
- Der zweite Sensor mit der neueren Version ist meist um die 95% Feuchtigkeit, egal, ob es feucht oder trocken ist?! Temperatur auch um die 24° bei echten ca. 30°C
- Der dritte Sensor auch mit neueren Version ist meist um die 20% Feuchtigkeit, wenn ich den Boden wässere (flute) geht er auf 40%. ?! Temperatur auch um die 24° bei echten ca. 30°C
-
@delphinis Zur Diagnose bitte folgendes machen, nacheinander für jeden Sensor (damit die Daten besser lesbar sind):
- Ein Skript welches auf "msg_from_zigbee" triggert, und dann eine Warnmeldung absetzt. (Blockly Beispiel:)
- die IEEE des Sensors in
zigbee.0.info.debugmessages
eintragen (siehe Bild)
- Log filtern auf "Warnung", dann log löschen
- Warten bis ein Wert aktualisiert wird
- Im log nach einem Nachrichtsblock ähnlich diesem suchen:
2024-08-16 08:01:02.122 - warn: zigbee.0 (738) ELEVATED publishToState: message received '{"linkquality":162}' from device 000d6ffffec7e3d8 type 'LED1649C5' 2024-08-16 08:01:02.123 - warn: zigbee.0 (738) ELEVATED publishToState: value generated '162' from device 000d6ffffec7e3d8 for 'Link quality' 2024-08-16 08:01:02.134 - warn: zigbee.0 (738) ELEVATED publishToState: message received '{"state":"ON"}' from device 000d6ffffec7e3d8 type 'LED1649C5' 2024-08-16 08:01:02.135 - warn: zigbee.0 (738) ELEVATED publishToState: value generated 'true' from device 000d6ffffec7e3d8 for 'Switch state' 2024-08-16 08:01:02.147 - warn: javascript.0 (12260) script.js.Testing.LoggingExample: Msg_From_Zigbee{"type":"readResponse","data":{"onOff":1},"linkquality":162,"groupID":0,"cluster":"genOnOff","meta":{"zclTransactionSequenceNumber":170,"manufacturerCode":null,"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":true,"reservedBits":0}},"endpoint_id":1} 2024-08-16 08:01:20.640 - warn: zigbee.0 (738) ELEVATED publishToState: message received '{"linkquality":162}' from device 000d6ffffec7e3d8 type 'LED1649C5' 2024-08-16 08:01:20.641 - warn: zigbee.0 (738) ELEVATED publishToState: value generated '162' from device 000d6ffffec7e3d8 for 'Link quality' 2024-08-16 08:01:20.651 - warn: zigbee.0 (738) ELEVATED publishToState: message received '{"state":"OFF"}' from device 000d6ffffec7e3d8 type 'LED1649C5' 2024-08-16 08:01:20.651 - warn: zigbee.0 (738) ELEVATED publishToState: value generated 'false' from device 000d6ffffec7e3d8 for 'Switch state' 2024-08-16 08:01:20.661 - warn: javascript.0 (12260) script.js.Testing.LoggingExample: Msg_From_Zigbee{"type":"readResponse","data":{"onOff":0},"linkquality":162,"groupID":0,"cluster":"genOnOff","meta":{"zclTransactionSequenceNumber":176,"manufacturerCode":null,"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":true,"reservedBits":0}},"endpoint_id":1}
Dann den Anteil des Log posten in dem eine Meldung mit ELEVATED publish to state für die Feuchtigkeit auftaucht
Wichtig - ich brauche die Kombination aus der Warnmeldung für Msg_From_Zigbee und den beiden ELEVATED Meldungen (message received und publish to state)A.
- Ein Skript welches auf "msg_from_zigbee" triggert, und dann eine Warnmeldung absetzt. (Blockly Beispiel:)
-
@asgothian
Danke für deine Antwort.
Sorry für meine "dummen" Fragen:
Als erstes mal: ist das die Antwort auf meine erste Frage betreffend der Einbindung des Giex Water Timer, oder auf die zweite nach den falschen Werten?- Arbeite normalerweise mit Javascript, nicht mit Blockly. Versuchte das Blockly nachzubauen:
Da ergab sich schon mal eine Warnung bei dem Sensor der eigentlich von anfang an funktionierte:
9:41:42.774 warn
javascript.0 (2612) script.js.Eigene_Scripte.Test.ZigbeeTestBlockly: Msg_From_Zigbee{"type":"attributeReport","data":{"65506":56,"65508":0,"appVersion":72},"linkquality":80,"groupID":0,"cluster":"genBasic","meta":{"zclTransactionSequenceNumber":26,"manufacturerCode":null,"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0}},"endpoint_id":1}Aber noch kein Eintrag mit ELEVATED..
- Sorry, was ist die IEEE des Sensors genau? Ist das die Nummer, welche nach "_ TZE200_" kommt z.b.
_ TZE200_myd45weu
-> Achtung: hier im Forumseintrag filtert es die Underscores raus, musste deshalb ein leerschlag einfügen.
oder die Zigbee nummer des Sensors z.B. zigbee.0.a4c138763d011c76
Das währe aber ein 16 stelliger wert?.Das mal als ergebnis
Versuche es mittlerweile noch mit den anderen Sensoren, welche nicht so tun. Aber erst muss ich wissen, ob das was ich da tue, korrekt ist - Arbeite normalerweise mit Javascript, nicht mit Blockly. Versuchte das Blockly nachzubauen:
-
@delphinis die ieee ist der 16-Stellige wert. Es reichen meistens aber die letzten 6 stellen
Nachtrag: log Einträge bitte immer in code Tags (</>)
A.
-
@asgothian
Ok, ich hab hier mal eine solche Meldungskombination des "vermeintlich" funktionierenden Sensors:script.js.Eigene_Scripte.Test.ZigbeeTestBlockly: Msg_From_Zigbee{"type":"commandDataReport","data":{"seq":20480,"dpValues":[{"dp":3,"datatype":2,"data":{"type":"Buffer","data":[0,0,0,52]}}]},"linkquality":32,"groupID":0,"cluster":"manuSpecificTuya","meta":{"zclTransactionSequenceNumber":37,"manufacturerCode":null,"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0}},"endpoint_id":1} warn ELEVATED publishToState: message received '{"soil_moisture":52}' from device a4c138763d011c76 type 'TS0601_soil'
Aber offensichtlich gibt auch der eine Warning heraus...
Hier noch alle Meldungen aus der selben sekunde:
javascript.0 2024-08-16 10:41:56.758 warn script.js.Eigene_Scripte.Test.ZigbeeTestBlockly: Msg_From_Zigbee{"type":"commandDataReport","data":{"seq":20992,"dpValues":[{"dp":14,"datatype":4,"data":{"type":"Buffer","data":[2]}}]},"linkquality":36,"groupID":0,"cluster":"manuSpecificTuya","meta":{"zclTransactionSequenceNumber":39,"manufacturerCode":null,"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0}},"endpoint_id":1} zigbee.0 2024-08-16 10:41:56.752 warn ELEVATED publishToState: value generated '"high"' from device a4c138763d011c76 for 'State of the battery' zigbee.0 2024-08-16 10:41:56.752 warn ELEVATED publishToState: message received '{"battery_state":"high"}' from device a4c138763d011c76 type 'TS0601_soil' zigbee.0 2024-08-16 10:41:56.748 warn ELEVATED publishToState: value generated '36' from device a4c138763d011c76 for 'Link quality' zigbee.0 2024-08-16 10:41:56.748 warn ELEVATED publishToState: message received '{"linkquality":36}' from device a4c138763d011c76 type 'TS0601_soil' javascript.0 2024-08-16 10:41:56.629 warn script.js.Eigene_Scripte.Test.ZigbeeTestBlockly: Msg_From_Zigbee{"type":"commandDataReport","data":{"seq":20736,"dpValues":[{"dp":15,"datatype":2,"data":{"type":"Buffer","data":[0,0,0,70]}}]},"linkquality":32,"groupID":0,"cluster":"manuSpecificTuya","meta":{"zclTransactionSequenceNumber":38,"manufacturerCode":null,"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0}},"endpoint_id":1} zigbee.0 2024-08-16 10:41:56.630 warn ELEVATED publishToState: value generated '70' from device a4c138763d011c76 for 'Battery percent' zigbee.0 2024-08-16 10:41:56.630 warn ELEVATED publishToState: message received '{"battery":70}' from device a4c138763d011c76 type 'TS0601_soil' zigbee.0 2024-08-16 10:41:56.627 warn ELEVATED publishToState: value generated '32' from device a4c138763d011c76 for 'Link quality' zigbee.0 2024-08-16 10:41:56.627 warn ELEVATED publishToState: message received '{"linkquality":32}' from device a4c138763d011c76 type 'TS0601_soil' javascript.0 2024-08-16 10:41:56.510 warn script.js.Eigene_Scripte.Test.ZigbeeTestBlockly: Msg_From_Zigbee{"type":"commandDataReport","data":{"seq":20480,"dpValues":[{"dp":3,"datatype":2,"data":{"type":"Buffer","data":[0,0,0,52]}}]},"linkquality":32,"groupID":0,"cluster":"manuSpecificTuya","meta":{"zclTransactionSequenceNumber":37,"manufacturerCode":null,"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0}},"endpoint_id":1} zigbee.0 2024-08-16 10:41:56.510 warn ELEVATED publishToState: value generated '52' from device a4c138763d011c76 for 'Measured soil moisture value' zigbee.0 2024-08-16 10:41:56.510 warn ELEVATED publishToState: message received '{"soil_moisture":52}' from device a4c138763d011c76 type 'TS0601_soil' zigbee.0 2024-08-16 10:41:56.506 warn ELEVATED publishToState: value generated '32' from device a4c138763d011c76 for 'Link quality' zigbee.0 2024-08-16 10:41:56.506 warn ELEVATED publishToState: message received '{"linkquality":32}' from device a4c138763d011c76 type 'TS0601_soil' javascript.0 2024-08-16 10:41:56.335 warn script.js.Eigene_Scripte.Test.ZigbeeTestBlockly: Msg_From_Zigbee{"type":"commandDataReport","data":{"seq":20224,"dpValues":[{"dp":5,"datatype":2,"data":{"type":"Buffer","data":[0,0,0,26]}}]},"linkquality":36,"groupID":0,"cluster":"manuSpecificTuya","meta":{"zclTransactionSequenceNumber":36,"manufacturerCode":null,"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0}},"endpoint_id":1} zigbee.0 2024-08-16 10:41:56.335 warn ELEVATED publishToState: value generated '26' from device a4c138763d011c76 for 'Temperature' zigbee.0 2024-08-16 10:41:56.334 warn ELEVATED publishToState: message received '{"temperature":26}' from device a4c138763d011c76 type 'TS0601_soil' zigbee.0 2024-08-16 10:41:56.331 warn ELEVATED publishToState: value generated '36' from device a4c138763d011c76 for 'Link quality' zigbee.0 2024-08-16 10:41:56.331 warn ELEVATED publishToState: message received '{"linkquality":36}' from device a4c138763d011c76 type 'TS0601_soil'
Sehe mir mal die anderen an...