hobbyquaker / node-red-contrib-zigbee

Node-RED Nodes for ZigBee Devices 🐝
MIT License
86 stars 15 forks source link

lidl zigbee bewässerungscomputer #155

Closed tromanski closed 2 years ago

tromanski commented 3 years ago

Hallo Zusammen,

ich habe heute einen cc2531 Stick an meine Redmatic angeschlossen und konfiguriert. Scheint auch soweit zu funktionieren. Nun versuche ich meinen Lidl Zigbee Bewässerungscomputer (https://www.lidl.de/p/parkside-smarter-bewasserungscomputer-zigbee-smart-home/p100325201) zu verbinden. Als Device wird das Gerät in der Geräteliste angezeigt, jedoch bekomme ich folgende Debug Meldung: Received message from unsupported device with Zigbee model 'TS0601' Die zweite Meldung lautet: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html

Kann mir jemand einen Hinweis geben, wie dieses Gerät verwendet werden könnte?

Ich danke euch im Voraus

jokakilla commented 3 years ago

Hi, node-red-contrib-zigbee nutzt die zigbee-herdsman-converts von Koenkk. Dort kam die Unterstützung für das Gerät erst ende Juni rein. Siehe: https://github.com/Koenkk/zigbee-herdsman-converters/commit/ee05bb1ee3d271313d801445c6ec9b2f6bc60aaa#diff-9f95626d459809420576fa9d9e45a723238c91c0b9c2d86a9ff3573d3559e3ab

Da es seit März kein Update der Abhängigkeit auf die neusten zigbee-herdsman-converters gab lässt sich das Gerät über die Converter aktuell nicht nutzen. Evtl. kannst du es direkt mit Commands versuchen.

Ich hab mir schon sorgen gemacht weil man von hobbyquaker seit März quasi nix gehört hat. Hier -> https://github.com/hobbyquaker/node-red-contrib-zigbee/issues/154 versuche ich gerade selbst die Abhängigkeiten zu aktualisieren. Es ist allerdings nicht mit einer neuen Versionsnummer getan weil sich offenbar ein bisschen was an der Schnittstelle zwischen node-red-contrib-zigbee und zigbee-herdsman-converters geändert hat.

Ich hab leider nicht so sehr viel Hardware zum Testen aber in meiner Umgebung funktionierte es schon ganz gut, sodass ich evtl. morgen Abend einen Pull Request stellen kann. Vielleicht meldet sich Hobbyquaker dann ja noch und kann das Update integrieren.

tromanski commented 3 years ago

Hi, danke für die Hinweise und deine Mühe die Abhängigkeiten zu aktualisieren! Bin sehr gespannt auf das Update von Hobbyquaker. Bis dahin würde ich gerne den Umweg, wie von dir vorgeschlagen, über Commands machen. Ich habe im "Commands"-Node etwas zusammengeklickt, bin mir aber nicht so sicher was ich genau eintragen soll. Bei meinem Versuch kommt folgender Fehler (siehe Bild). Kannst du etwas damit anfangen und mir eventuell einen Hinweis geben, was ich ändern muss?

image

jokakilla commented 3 years ago

Mit dem Command Node habe ich auch noch nichts weiter gemacht. Ein Read für den aktuellen Zustand habe ich so hin bekommen: grafik

Das Write klappt aber irgendwie nicht. Kommt immer die Meldung das Attribut sei Read-Only. grafik

tromanski commented 3 years ago

Hallo jokakilla, leider funktionieren bei mir weder "read" noch "write". Kannst du mit der Meldung etwas anfangen? image

Gibt es schon Fortschritte bei deinem Pull Request?

jokakilla commented 3 years ago

Gestellt habe ich ihn schon. Jetzt muss er nur noch für gut genug befunden und integriert werden ;)

https://github.com/hobbyquaker/node-red-contrib-zigbee/pull/157

Ich hoffe jemand pflegt das Projekt weiter. In den letzten Monaten war es hier verdammt ruhig.

jokakilla commented 3 years ago

Hast Du bei deinem controller rtscts auf true gesetzt? Den Hinweis hatte ich hier gelesen -> https://github.com/Koenkk/zigbee2mqtt/issues/2500

Bei mir hat gerade folgendes mit einem CC2531 funktioniert

grafik

Lederhaut commented 3 years ago

Hallo jokakilla, gute Arbeit! Vielen Dank.

Ich habe gestern auch meinen Parkside Zigbee Bewässerer bekommen, und ihn gleich mal in Node-RED (RedMatic) implementiert, leider kam ich zum selben Problem (unsupported device).

Jetzt mal zu deinem PR +157, könnte ich das node-red-contrib-zigbee mit der Änderung selbst bauen und auf meiner CCU3 einspielen? Wie geht denn sowas?

jokakilla commented 3 years ago

Das habe ich gestern versucht und dabei meine gesamte RedMatic installation auf der CCU zerschossen. Trotz neu Flashen der CCU Software lässt sich jetzt nicht mal mehr RedMatic sauber installieren. Mein Versuch war nach https://github.com/rdmtc/RedMatic/wiki/Node-Installation#installation-via-npm-auf-der-kommandozeile das custom node-red-contrib-zigbee per npm zu installieren. Sinngemäß npm install git+https://github.com/jokakilla/node-red-contrib-zigbee.git. Ich kann das aber niemandem empfehlen weil die Gefahr etwas kaputt zu machen (wie man sieht) groß ist.

Das Problem ist wahrscheinlich, dass Abhängigkeiten (z.B. serial für die USB Stick Kommunikation) speziell für die CCU vorkompiliert sein müssen weshalb node-red-contrib-zigbee ja auch nicht über die Palettenverwaltung sondern über das Redmatic Menü installiert wird.

Bei mir läuft jetzt eine normale NodeRed Instanz auf dem Heimserver statt der CCU und node-red-contrib-ccu verbindet sich nicht über localhost sondern zur CCU. Auf einem standard x86 NodeRed ließ sich meine Version per "npm install git+https://github.com/jokakilla/node-red-contrib-zigbee.git" installieren. Da für mich der Code noch recht neu ist kann ich ohne ein Review von jemandem der ihn besser kennt (z.B. hobbyquaker) nicht guten Gewissens empfehlen es jetzt schon produktiv zu nutzen.

Der einzig saubere Weg für ein Update ist die Änderungen nach Prüfung in das offizielle Repo zu integrieren und auch in die npm Paketverwaltung hochzuladen. Damit erscheint das Update offiziell im RedMatic Menü. Das kann imho nur hobbyquaker.

Auf jeden Fall läuft die Version mit den Änderungen aus PR https://github.com/hobbyquaker/node-red-contrib-zigbee/pull/157 jetzt hier produktiv mit 47 Geräten sodass ggf. Fehler noch auffallen und behoben werden können. Mit einer normalen x86 NodeRed Installationen kann auch gerne getestet werden.

Lederhaut commented 3 years ago

Hallole nochmal, ich hab etwas macguyvert und mit ssh auf meine ccu3 eingeloggt und folgende Dateien modifiziert:

/usr/local/addons/redmatic/lib/node_modules/node-red-contrib-zigbee/node_modules/zigbee-herdsman-converters/devices.js

am Ende der Lidl section bei Zeile 16800 eingefügt:

    {
        fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_htnnfasr'}],
        model: 'PSBZS A1',
        vendor: 'Lidl',
        description: 'Parkside smart watering timer',
        fromZigbee: [fz.ignore_basic_report],
        toZigbee: [tz.on_off, tz.lidl_watering_timer],
        onEvent: tuya.onEventSetTime,
        configure: async (device, coordinatorEndpoint, logger) => {},
        exposes: [e.switch(), exposes.numeric('timer', ea.SET).withValueMin(1)
            .withUnit('min').withDescription('Auto off after specific time.')],
    },

/usr/local/addons/redmatic/lib/node_modules/node-red-contrib-zigbee/node_modules/zigbee-herdsman-converters/lib/tuya.js

hinter Silvercrest Attributen in Zeile 326

    lidlTimer: 5,

/usr/local/addons/redmatic/lib/node_modules/node-red-contrib-zigbee/node_modules/zigbee-herdsman-converters/converters/toZigbee.js

hinter ledvance_commands in Zeile 1833

    lidl_watering_timer: {
        key: ['timer'],
        convertSet: (entity, key, value, meta) => {
            tuya.sendDataPointRaw(entity, tuya.dataPoints.lidlTimer, tuya.convertDecimalValueTo4ByteHexArray(value));
        },
    },

Danach RedMatic neu gestartet und das Gerät zurückgesetzt und neu angelernt (bin nicht sicher, ob dieser Schritt nötig war, aber sicher ist sicher).

Ich kann jetzt das Gerät ein und wieder ausschalten, sowohl mit Converter als auch Command. Den Timer (wie hier beschrieben) kann ich leider nicht stellen, da kommt leider ein Fehler ("TypeError: Cannot read property 'then' of undefined"). Das Gerät bliebt bei mir aber eingeschaltet (entgegengesetzt den Aussagen aus dem Netz mit nach 1 min automatischer Abschaltung), was aber ganz ok ist, hier könnte ich mir einen Timerflow machen und abschalten.

Meines Beispielflows zum Testen sehen so aus 2021-08-27_23-28-28

[{"id":"75479914.a136d","type":"debug","z":"75ba44fe.84aa84","name":"ParksideWatering zigbee command debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":570,"y":500,"wires":[]},{"id":"de66635d.e45888","type":"zigbee-converter","z":"75ba44fe.84aa84","shepherd":"10309ea6.4a4791","name":"ParksideWatering","topic":"zigbee/${name}","settopic":"zigbee/${name}/set","gettopic":"zigbee/${name}/get","device":"0x4321127fffecd8179","attribute":"","payload":"json","x":610,"y":560,"wires":[["ede8ece3.0a079"]]},{"id":"ede8ece3.0a079","type":"debug","z":"75ba44fe.84aa84","name":"ParksideWatering zigbee status","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":870,"y":560,"wires":[]},{"id":"36907f06.9db86","type":"change","z":"75ba44fe.84aa84","name":"topic: zigbee/valve/set","rules":[{"t":"set","p":"topic","pt":"msg","to":"zigbee/valve/set","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":540,"wires":[["de66635d.e45888","75479914.a136d"]]},{"id":"b6754d6e.b3eeb8","type":"zigbee-event","z":"75ba44fe.84aa84","shepherd":"10309ea6.4a4791","name":"event ParksideWatering","device":"0x4321127fffecd8179","events":["attributeReport","command","readResponse"],"topic":"zigbee/${ieeeAddr}/${type}/${endpoint}/${cluster}/${attribute}","payload":"json","x":120,"y":760,"wires":[["162e7a86.b7f705"]]},{"id":"162e7a86.b7f705","type":"debug","z":"75ba44fe.84aa84","name":"event ParksideWatering","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":370,"y":760,"wires":[]},{"id":"748163e2.14d504","type":"inject","z":"75ba44fe.84aa84","name":"get {\"state\":\"\"}","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"zigbee/vslvr/get","payload":"{\"state\":\"\"}","payloadType":"json","x":220,"y":680,"wires":[["de66635d.e45888"]]},{"id":"f106c0f6.56908","type":"inject","z":"75ba44fe.84aa84","name":"ON timer 30","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"state\":\"ON\",\"timer\":30}","payloadType":"json","x":110,"y":580,"wires":[["36907f06.9db86"]]},{"id":"8e1e91e9.4a67c","type":"inject","z":"75ba44fe.84aa84","name":"ON","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"state\":\"ON\"}","payloadType":"json","x":90,"y":500,"wires":[["36907f06.9db86"]]},{"id":"20a51a3d.8e2d06","type":"inject","z":"75ba44fe.84aa84","name":"timer 30","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"timer\":30}","payloadType":"json","x":100,"y":620,"wires":[["36907f06.9db86"]]},{"id":"b3ca510b.0c8d6","type":"inject","z":"75ba44fe.84aa84","name":"OFF","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"state\":\"OFF\"}","payloadType":"json","x":90,"y":540,"wires":[["36907f06.9db86"]]},{"id":"acde0fc.ee065f","type":"zigbee-command","z":"75ba44fe.84aa84","shepherd":"10309ea6.4a4791","name":"command on with timer in payload","target":"endpoint","cmdType":"command","group":"","ieeeAddr":"0x4321127fffecd8179 ParksideWatering","ep":"1","cid":"genOnOff","cmd":"on","zclData":"{\"timer\":2}","zclDataType":"json","attributesRead":"[]","attributesReadType":"json","attributesWrite":"{}","attributesWriteType":"json","manufSpec":0,"disableDefaultRsp":0,"x":160,"y":920,"wires":[["9599cd07.5605b8"]]},{"id":"1b391c25.5e906c","type":"zigbee-command","z":"75ba44fe.84aa84","shepherd":"10309ea6.4a4791","name":"command onWithTimedOff","target":"endpoint","cmdType":"command","group":"","ieeeAddr":"0x4321127fffecd8179 ParksideWatering","ep":"1","cid":"genOnOff","cmd":"onWithTimedOff","zclData":"{\"ctrlbits\":0,\"ontime\":1,\"offwaittime\":3}","zclDataType":"json","attributesRead":"[]","attributesReadType":"json","attributesWrite":"{}","attributesWriteType":"json","manufSpec":0,"disableDefaultRsp":0,"x":140,"y":960,"wires":[["9599cd07.5605b8"]]},{"id":"9599cd07.5605b8","type":"debug","z":"75ba44fe.84aa84","name":"command debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":510,"y":920,"wires":[]},{"id":"42ce43db.0e2564","type":"zigbee-command","z":"75ba44fe.84aa84","shepherd":"10309ea6.4a4791","name":"command off","target":"endpoint","cmdType":"command","group":"","ieeeAddr":"0x4321127fffecd8179 ParksideWatering","ep":"1","cid":"genOnOff","cmd":"off","zclData":"","zclDataType":"json","attributesRead":"[]","attributesReadType":"json","attributesWrite":"{}","attributesWriteType":"json","manufSpec":0,"disableDefaultRsp":0,"x":90,"y":880,"wires":[["9599cd07.5605b8"]]},{"id":"4082f4dd.39f304","type":"zigbee-command","z":"75ba44fe.84aa84","shepherd":"10309ea6.4a4791","name":"command on","target":"endpoint","cmdType":"command","group":"","ieeeAddr":"0x4321127fffecd8179 ParksideWatering","ep":"1","cid":"genOnOff","cmd":"on","zclData":"","zclDataType":"json","attributesRead":"[]","attributesReadType":"json","attributesWrite":"{}","attributesWriteType":"json","manufSpec":0,"disableDefaultRsp":0,"x":90,"y":840,"wires":[["9599cd07.5605b8"]]},{"id":"10309ea6.4a4791","type":"zigbee-shepherd","name":"herdsman","path":"/dev/ttyACM0","baudRate":"115200","rtscts":true,"channelList":[11],"led":"enabled","adapter":"zstack"}]

Ich hoffe, das hilft etwas.

P.S.: ich könnt's nicht lassen, und hab auch den RedMatic und den node-red-contrib-zigbee build versucht. Beim Vergleich der Ergebnisse mit den runtergeladenen Libs haben bei den Build leider diverse node_modules (vor allem auch node.js) gefehlt, das hab ich dann gar nicht deployt :-(

Lederhaut commented 3 years ago

Falsche Aussage:

Das Gerät bliebt bei mir aber eingeschaltet (entgegengesetzt den Aussagen aus dem Netz mit nach 1 min automatischer Abschaltung)

Das Gerät schaltet bei mir nach 30 Minuten automatisch ab. Ich hatte das mal mit der Silvercrest Zentrale verbunden, und das wohl eingestellt.

tromanski commented 2 years ago

Hallo Zusammen,

gute Nachrichten. Nachdem seit August etwas Zeit vergangen ist, habe ich einen neuen Versuch zur Eröffnung der Gartensaison gewagt. In der Zwischenzeit wurden einige Updates installiert und siehe da, der Bewässerungscomputer funktioniert ohne Modifikationen! Lediglich die maximale Bewässerungszeit muss vorher über die offizielle App eingestellt werden.