NEWS
Test Adapter Z-Wave 2 (v1.8.x)
-
@Domoe
Deine Datei:"manufacturerId": "0x0148", "devices": [ { "productType": "0x0005", "productId": "0x0001" } ],
Meine Datei:
"manufacturerId": "0x0148", "devices": [ { "productType": "0x0005", "productId": "0x0001" } ],
Ich sehe keinen Unterschied. Meiner hat lediglich den internationalen Namen.
-
v1.8.1 ist auf dem Weg - Changelog oben.
-
Hallo,
gäbe es evtl. die Möglichkeit einen Ordner für eigene Konfigurationsdateien zu erstellen welcher immer beim Neuladen des Adapters wieder eingelesen wird? -
@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