NEWS
Test Adapter Z-Wave 2 (v1.8.x)
-
@Besserso mmn. sollten die lieber bereit gestellt werden, damit alle davon profitieren können.
-
Nabend,
ich habe nun auch mein Z-Wave Adapter auf den 2er aktualisiert.
Habe den alten Adapter dafür pausiert und den neuen aktiviert und den USB-Stick als Gerät übergeben. Mein System ist eine Synology NAS mit ioBroker im Docker - das nur am Rand.Probleme habe ich aktuell bei allen Fenstersensoren "Philio Technology Corp PST02C".
Beim Öffnen des Fensters werden nur die 2 Werte in zwave2.0.Node_023.Multilevel_Sensor aktualisiert(grün)zwave2.0.Node_023.Notification.accessControl_doorState bleibt leer
Und die im alten Adapter enthaltenen zwave.0.NODE27.ALARM.Access_Control_1 sowie zwave.0.NODE27.SENSOR_BINARY.Sensor_1 tauchen gar nicht erst auf.
Aber ich muss dazu sagen, dass die Philio Fenstersensoren schon immer gezickt haben.
^^^^^^^^^^^^^^
Beim Türschloss ASUS CFA3010 fehlt mir der zwave.0.NODE73.DOOR_LOCK.Locked_1 aus dem alten Adapter welchen ich zum öffnen/schließen genutz habe.
Der vermutlich geplante Wert zum Öffnen mit dem Zwave2 Adapter zwave2.0.Node_073.Basic.targetValue mit Werten 0-99 reagiert nicht.
Möglich aber auch dass ich hier den korrekten Schaltvalue grad nicht mehr sehe, hab schon eckige Augen...
^^^^^^^^^^^^^^
Ein Fibaro FGS223 will unter dem neuen Adapter auch nicht mehr.
Wo unter Zwave1 die zwave.0.NODE3.SWITCH_BINARY.Instance_1:_Switch_1 und zwave.0.NODE3.SWITCH_BINARY.Instance_2:_Switch_2 korrekt angezeigt und geschaltet werden
so steht im ZWave 2 nur zwave2.0.Node_003.Binary_Switch.targetValue ohne die 1/2.°°°°°°°°°°°°°°°°°°°°
Aber sonst scheinen die restlichen 50 Nodes korrekt zu schalten. Hut ab, @AlCalzone , du machst hier echt einen tollen Job, vielen Dank!
-
Hi AlCalzone,
mir ist gerade aufgefallen, dass er bei Batteriegeräte beim level keine Unit mitgibt.
Ist das so gewollt? Müsste da nicht % hinter?
Gruß
-
@Troya Kannst du mir bitte für die betroffenen Geräte ein Log machen und die hier beschriebenen Infos posten:
https://github.com/AlCalzone/ioBroker.zwave2/blob/master/docs/de/bei-problemen.md#notwendige-informationen-für-ein-issueDazu Adapter starten, abwarten bis Ruhe eingekehrt ist (alle Geräte fertig). Dann die 3 Nodes einzeln neu interviewen über die Geräte-Liste in der Adapter-Konfiguration.
@Gabe hast Recht!
-
@AlCalzone danke änderst du das?
-
@AlCalzone
Ok, war nicht einfach die Dateien aus Docker zu bekommen...10:10:48.443 Beginnt das Inverview on Node 023 - ist der Fenstersensor Philio. Während des Interviews habe ich den Button gedrückt, damit der Sensor wach wird.
10:14:37.797 Beginnt das Interview von Node 080, ist das Schloss.
10:17:59.900 Beginnt das Interview von Node 003, Ist der Fibaro FGS223.Hier die Logfiles
zwave-1108.log
f0f1c31b.values.jsonl
f0f1c31b.jsonNoch eine Frage bzw. Problem.
Ich arbeite nicht direkt über die Nodes sondern habe für jeden Wert den ich schalten möchte ein Alias erstellt. (Damit ich nicht alle Scripte ändern muss, wenn mal wieder ein Node ausfällt)
Nun gibt es bei Schaltern unter Zwave2 die Neuerung, dass es einen zwave2.0.Node_033.Binary_Switch.targetValue_001
zum schalten gibt und einen für die Rückmeldung: zwave2.0.Node_033.Binary_Switch.currentValue_001
(So verstehe ich das zumindest )
Damit bekomme ich aber Probleme mit den Alias. Grade beim Restart des Adapters wo der targetValue auf "null" steht. -
@Troya sagte in Test Adapter Z-Wave 2 (v1.8.x):
Damit bekomme ich aber Probleme mit den Alias. Grade beim Restart des Adapters wo der targetValue auf "null" steht.
Hast du das mit Version 1.8.1 auch noch?
-
@Gabe Jap, Issue ist bereits erstellt.
-
So wie es nach ersten Tests aussieht wohl ja.
Schalte ich ein Licht ein. z.B.:
alias.0.EG_Wohnzimmer.Aktor.PendellampeWohnzimmer = true
wird der entsprechend dazugehörige
zwave2.0.Node_062.Binary_Switch.targetValue_001 = true
gesetzt und logischerweise auch final der
zwave2.0.Node_062.Binary_Switch.currentValue_001 0 true
-> Die Lampe geht an.Starte ich nun den Adapter neu, bleibt currentValue erhalten. Jedoch targetValue wird leer (null).
Dadurch auch der Alias.
Besonders im Vis, wo ich den Alias ebenfalls hinter Schalter sitzen habe verwirrt das, denn physikalisch ist das Licht an, wird jedoch bei Vis als aus dargestellt wird.Entsprechend ist das auch beim physikalischen schalten des Lichtschalters:
currentValue reagiert korrekt
jedoch targetValue bleibt unverändert, wie auch der Alias und zuletzt auch die Symbole im Vis.Warum hast du denn den value in die current- und -target value aufgeteilt? Der "alte" Zwave-Adapter hatte das ja in einem value und hat anhand der Farbe angezeigt ob korrekt geschaltet wurde.
-
@Troya Kannste mir bitte mal ein Log machen, in dem man beides sieht? Eigentlich sollte
targetValue
nicht mehr gelöscht werden.Danach probier bitte mal die Option "Kompatibilität mit Schaltern verbessern".
Der Grund ist einfach erklärt:
Die Z-Wave Spezifikation kennt eine Unterscheidung zwischen Zielwert und aktuellem Wert, um z.B. bei langen Vorgängen (Rollo) rückmelden zu können, dass ein Vorgang aktiv ist und sowohl das Ziel als auch den aktuellen Wert anzuzeigen.
Die Library, die der alte Adapter genutzt hat, ist entstanden, als es diese Funktion noch nicht gab. -
@AlCalzone sagte in Test Adapter Z-Wave 2 (v1.8.x):
@Troya Kannste mir bitte mal ein Log machen, in dem man beides sieht? Eigentlich sollte
targetValue
nicht mehr gelöscht werden.Weiß nicht genau was du meinst mit "beides sieht". Ich habe jetzt nochmal folgendes gemacht:
- im "Objekte"-Reiter unter "ID" das Wort tvalue eingetragen, dadurch werden currentvalue sowie targetvalue angezeigt. Habe als Beispiel den Node 033 extra einmal geschaltet, dass beide Values eingetragen sind.
- Anschließend in der Instanz das erweitertes Logging aktiviert. Dadurch wird ja der Controller neu gestartet.
- wieder in Objekte geschaut und nach ein paar Sekunden des Neustarts blinkt currentvalue einmal grün auf und targetvalue wird entfernt.
- somit schnell zur Instanz und Zwave2 gestoppt und den Log extrahiert und hier hochgeladen, glaube aber der unterscheidet sich kaum vom ersten Log.
f0f1c31b.values.jsonl
zwave-1125.log
f0f1c31b.json
Ich habe in den Logs zwave-1252.log, sowie die beiden .jsonl Files im Notepad versucht mehr zu dem targetvalue und currentvalue herauszufinden. Aber da bin ich zu wenig Programmierer.
Man kann sich da aber recht schnell durchsuchen wenn man unseren Beispiel-Node 33 sucht.Oder habe auch mal nach targetValue gesucht und das hier steht häufig in der Datei values.jsonl:
{"k":"{\"nodeId\":76,\"commandClass\":37,\"endpoint\":0,\"property\":\"targetValue\"}"} {"k":"{\"nodeId\":68,\"commandClass\":38,\"endpoint\":0,\"property\":\"targetValue\"}"} {"k":"{\"nodeId\":62,\"commandClass\":37,\"endpoint\":1,\"property\":\"targetValue\"}"}
Sieht für mich als Laie irgendwie leer aus, denn da steht bei anderen meist zum Beispiel sowas:
{"k":"{\"nodeId\":18,\"commandClass\":49,\"endpoint\":0,\"property\":\"Formaldehyde (CH₂O) level\"}","v":67}
^^^^^
Dann habe ich im Zwave-Log noch sowas häufig gefunden:
(leider nicht für unser Beispiel-Node 033)17:42:22.544 CNTRLR [Node 017] [~] [Binary Switch] currentValue: false => true [Endpoint 0] 17:42:22.544 CNTRLR [Node 017] [+] [Binary Switch] targetValue: undefined [Endpoint 0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Danach probier bitte mal die Option "Kompatibilität mit Schaltern verbessern".
Mache ich jetzt mal, berichte dann...
Der Grund ist einfach erklärt:
Die Z-Wave Spezifikation kennt eine Unterscheidung zwischen Zielwert und aktuellem Wert, um z.B. bei langen Vorgängen (Rollo) rückmelden zu können, dass ein Vorgang aktiv ist und sowohl das Ziel als auch den aktuellen Wert anzuzeigen.
Die Library, die der alte Adapter genutzt hat, ist entstanden, als es diese Funktion noch nicht gab.Ok, glaub hab's verstanden.
Früher(ZWave1):- Rollo steht auf 50.
- Ich tippe 90 rein.
- Der Wert springt umgehend auf 50 und zählt mit jeder Rückmeldung vom Node hoch bis 90.
Heute(Zwave2.0):
- Currentvalue steht auf 50. (und theoretisch ja auch vom letzten schalten auch targetvalue)
- ich tippe targetvalue auf 90.
- currentvalue zählt mit jeder Rückmeldung vom Node hoch bis 90.
^^
^^
Für mich aber noch nicht ganz schlüssig ist, wie das mit Vis funktionieren soll:
Beispiel Lichtschalter und Glühbrine.
Bisher habe ich da wo die Lampe sitzt ein Glühbirnensymbol. Dort tippe ich drauf, Der Befehl wird gesendet, die Rückmeldung kommt und die Birne leuchtet - in Real wie auch das Symbol in Vis. Manchmal geht das Symbol in Vis blitzschnell AN-AUS-AN, weil der Node zuerst den Stand "Aus" meldet bevor geschaltet wird und "An" gemeldet wird, aber das stört kaum.Unter Zwave2 gibt's jetzt folgendes:
-
A) Setze ich dort den CurrentValue ein, dann lässt sich der nicht als Schalter nutzen - ist ja nur die Rückmeldung vom Switch.
-
B) Setze ich dort den targetValue ein, dann lässt sich der Schalter zwar schalten, aber ob das Licht real an ist wird an diesem Punkt nicht korrekt angezeigt, da ja CurrentValue die Rückmeldung gibt.
Meinem Verständnis nach bräuchte ich unter Zwave2.0 also sowie ein Symbol für den Lichtschalter(targetValue) als auch ein Symbol der Glühbirne(currentvalue)
Sehe da den Vorteil nicht.
Aus EDV-Sicht verstehe ich aber, dass ein Objekt nicht gleichzeitig Eingabe wie auch Ausgabe sein sollte, falls das der Grund ist. -
@Troya sagte in Test Adapter Z-Wave 2 (v1.8.x):
Unter Zwave2 gibt's jetzt folgendes:
A) Setze ich dort den CurrentValue ein, dann lässt sich der nicht als Schalter nutzen - ist ja nur die Rückmeldung vom Switch.
B) Setze ich dort den targetValue ein, dann lässt sich der Schalter zwar schalten, aber ob das Licht real an ist wird an diesem Punkt nicht korrekt angezeigt, da ja CurrentValue die Rückmeldung gibt.
Meinem Verständnis nach bräuchte ich unter Zwave2.0 also sowie ein Symbol für den Lichtschalter(targetValue) als auch ein Symbol der Glühbirne(currentvalue)
Sehe da den Vorteil nicht.Bei Glühbirnen ist der Vorteil auch nicht wirklich da. Denk da eher mal an ein Rollo, was 20-30 Sekunden braucht. Da kannst du sehen, wo es hinfährt und wo es gerade ist. Eine Visualisierung könnte das auch entsprechend darstellen.
Dein Ansatz mit Alias ist schon vernünftig, ich muss noch verhindern, dass targetValue gelöscht wird.
-
@AlCalzone
Bin da ganz deiner Meinung, natürlich sollten diese allen zur Verfügung stehen. Es gibt aber auch selbst programmierbare Arduino zwave devices welche bei jedem anders ausschauen. (Z-uno)
Gruß Frank -
@Besserso Oh das war mir nicht bewusst. Da würde dein Vorschlag Sinn machen. Magst du bei Github mal ein Issue aufmachen?
-
@Troya ich kann es bei mir lokal nachvollziehen - danke für deine Hilfe
-
Wie AlCalzone bereits schrieb sind Alias-Werte der richtige Weg.
Du kannst hier unterschiedliche Read/Write Werte setzen, somit brauchst du keine speziellen Widgets/Schalter in der Vis und
der aktuelle Status (z.B. einer Lampe) wird auch korrekt angezeigt.Hier mal ein Beispiel für ein Alias mit zusätzlichem Mapping von 0->false und 99-> true (kannst du aber auch weg lassen):
{ "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1596178459267, "common": { "name": "Buero Licht", "role": "value", "type": "boolean", "desc": "per Script erstellt", "read": true, "write": true, "alias": { "id": { "read": "zwave2.0.Node_004.Multilevel_Switch.currentValue", "write": "zwave2.0.Node_004.Multilevel_Switch.targetValue" }, "read": "val == '0' ? false : true", "write": "val == true ? 99 : 0" }, "states": { "false": "0", "true": "99" }, "smartName": false }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "alias.0.Buero.Buero_Licht", "type": "state" }
-
@AlCalzone sagte in Test Adapter Z-Wave 2 (v1.8.x):
Bei Glühbirnen ist der Vorteil auch nicht wirklich da. Denk da eher mal an ein Rollo, was 20-30 Sekunden braucht. Da kannst du sehen, wo es hinfährt und wo es gerade ist.
Ja, aber die 30 Sekunden lag weiß man doch eigentlich wo es hin soll. Und ob das Rollo grad bei 50% oder 80% steht ist doch eigentlich nur in seltensten Fällen wichtig (wenn das Rollo klemmt oder so).
O.k. eine Echtzeitanimation zu haben sieht natürlich klasse aus, da geb ich dir RechtAber was mir da grad einfällt und evtl. für dich interessant ist:
Ich habe ganz am Anfang meiner Zwave Steuerung drei verschiedene Unterputzaktoren für meine Rolläden gekauft um zu gucken welcher am besten funktioniert. Einmal Fibaro FGR222, sowie FGR223 und einen Permundo PSC152ZW.
Und es ist so, dass Fibaro keine Zwischenmeldung nach dem Schalten des Rollos gibt, wohl jedoch der von Permundo. D.H. es muss diese Art der Zwischenmeldung schon früher gegeben haben.Kennst du das? Sonst versuche ich davon mal ne Log zu machen.
In den Logs die ich oben bereits gepostet habe sind die Nodes wie folgt:
Fibaro FGR222 Node 012
Fibaro FGR223 Node 057
Permunde PSC152ZW Node 011Dein Ansatz mit Alias ist schon vernünftig, ich muss noch verhindern, dass targetValue gelöscht wird.
Ja, da hab ich die 1.8.1 ausprobiert, wie auch die "Kompatiblität"-Einstellung.
Also 1.8.1 ohne Kompatiblität überlebt nicht ein targetvalueWenn ich dann ohne zu schalten die Kompatiblitätseinstellung aktiviere und die Instanz neu startet bleiben die targetvalues auch leer.
Nun schalte ich via Vis als Test alle Alias im Wohnzimmer. (2x FGS223, 1x FGWP102, 1xpermundo PSC132ZW) ,so dass targetvalue true ist.
Starte ich nun den Adapter neu, so wird am Anfang bei allen drei der targetvalue entfernt. Nachdem alle anderen Nodes einmal durchgelaufen sind taucht der targetvalue aber zumindest bei den beiden FGS223 wieder auf.
Der FGWP102 und PSC132ZW bleiben jedoch leer...keine Ahnung warum...ich gucke jetzt ne Episode Serie (45 min) und schau ob sich bis dahin was getan hat -
@Troya sagte in Test Adapter Z-Wave 2 (v1.8.x):
Starte ich nun den Adapter neu, so wird am Anfang bei allen drei der targetvalue entfernt.
Jup, konnte ich reproduzieren und wird in der nächsten Version nicht mehr passieren, nachdem man einmal einen Wert da reingeschrieben hat.
Einmal Fibaro FGR222, sowie FGR223 und einen Permundo PSC152ZW.
Und es ist so, dass Fibaro keine Zwischenmeldung nach dem Schalten des Rollos gibt, wohl jedoch der von Permundo. D.H. es muss diese Art der Zwischenmeldung schon früher gegeben haben.Ich habe FGR222, die geben spätestens wenn sie wieder stehen ein Update. Manchmal auch vorher.
FGR223 tun das eigentlich auch, die wurden hier ausgiebig getestet.@Troya sagte in Test Adapter Z-Wave 2 (v1.8.x):
Und ob das Rollo grad bei 50% oder 80% steht ist doch eigentlich nur in seltensten Fällen wichtig (wenn das Rollo klemmt oder so).
An sich richtig. Nun ist es aber so, dass in Z-Wave ein Multilevel Switch für alles stehen kann, was Zwischenstufen hat. Und so ein Dimmvorgang kann theoretisch bis zu 127 Minuten dauern. Außerdem könnte der Zielwert von woanders geschaltet werden.
Das Thema wurde aber auch schon ausgiebig diskutiert. Es jetzt zu ändern, wäre ein riesiger breaking change, den ich nicht verantworten will. -
@AlCalzone sagte in Test Adapter Z-Wave 2 (v1.8.x):
@Troya sagte in Test Adapter Z-Wave 2 (v1.8.x):
Starte ich nun den Adapter neu, so wird am Anfang bei allen drei der targetvalue entfernt.
Jup, konnte ich reproduzieren und wird in der nächsten Version nicht mehr passieren, nachdem man einmal einen Wert da reingeschrieben hat.
Ansich nicht wild, ein paar Sekunden später kommt der Wert ja wieder...hat sich nur kurz was zu trinken geholt
Einmal Fibaro FGR222, sowie FGR223 und einen Permundo PSC152ZW.
Und es ist so, dass Fibaro keine Zwischenmeldung nach dem Schalten des Rollos gibt, wohl jedoch der von Permundo. D.H. es muss diese Art der Zwischenmeldung schon früher gegeben haben.Ich habe FGR222, die geben spätestens wenn sie wieder stehen ein Update. Manchmal auch vorher.
FGR223 tun das eigentlich auch, die wurden hier ausgiebig getestet.Ja, das ist richtig, die melden sich wenn Sie fertig sind, während der Permundo das alle 1-2 Sekunden macht. Ist evtl. auch ne Config-Sache...
Wird wohl wie so häufig sein: der eine User findet das toll....ein anderer stört sich an dem "Zwave-Signal-Gespamme"@Troya sagte in Test Adapter Z-Wave 2 (v1.8.x):
Und ob das Rollo grad bei 50% oder 80% steht ist doch eigentlich nur in seltensten Fällen wichtig (wenn das Rollo klemmt oder so).
An sich richtig. Nun ist es aber so, dass in Z-Wave ein Multilevel Switch für alles stehen kann, was Zwischenstufen hat. Und so ein Dimmvorgang kann theoretisch bis zu 127 Minuten dauern. Außerdem könnte der Zielwert von woanders geschaltet werden.
Das Thema wurde aber auch schon ausgiebig diskutiert. Es jetzt zu ändern, wäre ein riesiger breaking change, den ich nicht verantworten will.Du, alles gut. Ich weiß wie wichtig es ist sowas von grundauf für alle Eventualitäten zu programmieren. Als Laie von außen sieht man nichtmal ansatzweise die Tiefe von so einem Projekt. Da zieh ich auf jeden Fall den Hut vor dir!
-
@Chris_78 sagte in Test Adapter Z-Wave 2 (v1.8.x):
Wie AlCalzone bereits schrieb sind Alias-Werte der richtige Weg.
Du kannst hier unterschiedliche Read/Write Werte setzen, somit brauchst du keine speziellen Widgets/Schalter in der Vis und
der aktuelle Status (z.B. einer Lampe) wird auch korrekt angezeigt.
Das ja geil, wusste ich nicht, danke!Hier mal ein Beispiel für ein Alias mit zusätzlichem Mapping von 0->false und 99-> true (kannst du aber auch weg lassen):
Ja auch cool. Damit muss ich mich auch mal beschäftigen...
Zum Beispiel hab ich das "Problem", dass ich den "Prozentwert"(Dimmer) eines Rolladen bei Google home nutze um ihn komplett rauf zu fahren, wie etwa:
"Hey Google, dimme Rolladen auf 0 Prozent" - nicht sehr logisch...
Aber manchmal möchte ich den Rolladen auch nur auf 20% stellen, daher nur der eine Alias für beides.
Wie kann ich das mit nem zusätzlichen Mapping in einem Alias einrichten? Wohl kaum so oder?"states": { "hoch": "0", "runter": "99"},
Glaub aber nicht, dass das so einfach geht, da ich den Trait bei Google als "Brightness" angelegt hab um die Prozentwerte durchgeben zu können.
So sieht der Alias aus:
Kannst du mir den Teil aus deinem Alias erklären:
... }, "read": "val == '0' ? false : true", "write": "val == true ? 99 : 0" }, ...
Sorry, hat gar nichts mit Zwave zu tun merk ich grad
Wenn ihr wollt lösch ich das hier und mache nen neuen Beitrag auf?