Danke @Will_71
Es ist gemerged und wird in der nächsten Version von Gladys veröffentlicht!
Diese Funktion ist in Gladys Assistant 4.38 verfügbar ![]()
Danke an @Sescandell und @Will_71 für die Entwicklungen ![]()
Hallo @pierre-gilles und @Sescandell
Ich habe den letzten PR von @Sescandell ausprobiert und habe Feedback mit dem Echtzeittest auf meinen Geräten.
Zuerst habe ich die neuen Funktionen, die zu meinen Geräten hinzugefügt wurden, aber wenn ich den Fall meines Qubino Flush Pilot für meine Heizkörper nehme, habe ich zwei Schalter.

Was stellt der zweite Schalter (8-38-0-currentValue:state) dar?
Wenn ich in der zwave JS UI nachschaue, entspricht 8-38-0-currentValue bei mir einem numerischen Wert!
Der zweite Punkt betrifft meinen Rollladen, bei dem ich einen Qubino Flush Shutter habe, der in Gladys gut erkannt wird.

Ich habe den Befehl öffnen, der meinen Rollladen schließt, und daher den Befehl schließen, der ihn öffnet. Das ist ärgerlich.
Daher habe ich die Verkabelung überprüft, falls ich den Motor vertauscht habe. Aber nein, hier gibt es kein Problem, er ist richtig angeschlossen.
Die Position mit dem Dimmer funktioniert gut auf meinen beiden Gerätetypen! ![]()
Sag mir Bescheid, falls du noch mehr Details zu meinen Geräten brauchst.
Danke für die Tests @Will_71!
Für den Rollladen habe ich in meiner zWaveJs-UI-Konfiguration Folgendes unter Output Orientation:
Soweit ich mich erinnere, habe ich diesen Wert geändert, weil meine Verkabelung invertiert ist. Kannst du mir sagen, ob:
- du auf diese Konfiguration über dein Gerät zugreifen kannst?
- sein aktueller Wert?
Falls du diese Konfiguration verfügbar hast und ihr Wert Q1 Down - Q2 UP ist
=> ich werde einfach die Zustände auf Code-Seite umkehren (und entweder meine Verkabelung ändern oder zWave anweisen, sie umzukehren, es gibt eine Option dafür, aber das ist mein Problem
).
Was den Schalter deines Heizkörpers betrifft: Wie du in deinem Screenshot von zwaveJS UI zeigst, hast du tatsächlich zwei currentValue: einen bei 8-37-0-currentValue (ein Binary Switch) und einen bei 8-38-0-currentValue (der Multilevel-Switch). Auf meiner Seite ist das Gerät, das ich teste, nicht in dieser Konfiguration:
Es gibt keinen Binary Switch, der dem MultilevelSwitch zugeordnet ist. Einer der Unterschiede: Du bist in V3, ich bin in V4. Ist das eine Allgemeinheit?.. ich weiß es nicht, ich stelle dir später weitere Fragen, um anders zu handeln…
Die Frage « was entspricht currentValue:state + der Unterschied zu zWave » ist daher legitim. Das Funktionsprinzip von Gladys besteht darin, ein Widget für eine Funktion zu haben. Für einen gleichen « zWave-Wert » (8-38-0-currentValue hier) wenn man zwei unterschiedliche Darstellungen und eine korrekte und einfache Verwaltung innerhalb von Gladys möchte, ist es vorzuziehen, zwei separate Funktionen zu haben. Wir erweitern daher über diesen PR-Fall, dass ein zWave-Wert mehreren Funktionen in Gladys entsprechen kann. Dies ermöglicht es, beispielsweise für currentValue, die Verwaltung mehrerer Funktionen zu haben: ein ON/OFF oder eine genauere Positionsverwaltung. Konkret wird ein X-38-Y-currentValue in zWave in Gladys zwei Funktionen vorschlagen:
- eine feine Verwaltung der Position, identifiziert durch
currentvalue:position(die Dimmfunktion deines Screenshots) - ein globales ON/OFF, identifiziert durch
currentvalue:state(der berühmte Schalter deines Screenshots)
Das ermöglicht es dir in der Oberfläche, zwischen einem globalen ON/OFF-Button oder einem Slider zu wählen.
Wir hätten wahrscheinlich damit arbeiten können, indem wir targetValue abgebildet haben. Aber aus Sicht von zWave sind targetValue und currentValue eng miteinander verbunden… im Laufe der Entwicklung ist dieses Modell hervorgegangen. Wenn ich mich nicht irre, ist es ähnlich dem, was die ZigBee-Integration im Fall der Rollläden tut (es gibt eine Positions- und Zustandsnotion für eine gleiche Grundfunktion).
Im Rahmen eines Geräts, das die CommandClass Binary Switch neben dem Multilevel Switch nicht implementiert, scheint es notwendig zu sein, ein schnelles ON/OFF bereitzustellen, das von der CommandClass Multilevel Switch abgeleitet ist.
Mit der letzten Version (ich denke, dass zwischen deinem Test und deiner Nachricht eine neue Version des PRs erschienen ist), wird dein Gerät dir sogar drei Schalter vorschlagen (wo das Gerät, das ich teste, sich auf zwei beschränkt):
- 1 für
8-37-currentValue: weil dein Gerät eine CommandClass Binary Switch meldet - 1 für
8-38-currentValue: in Gladys auf8-38-currentvalue:stateabgebildet. Dies ist die ON/OFF-Funktion in Gladys für den Multilevel Switch - 1 für
8-38-restorePrevious: den man in deinem zwaveJS UI-Screenshot sieht.
Dieser dritte Schalter ist die letzte Änderung des Tages. Die Version, die du getestet hast, hat die folgende Vorgabe: Wenn der Benutzer auf ON drückt => wir bitten das Gerät tatsächlich, in den letzten Zustand zurückzukehren, den es hatte. Im Szenario einer Lampe, wenn ich auf Ein schalte => es stellt die gleiche Lichtintensität wie den letzten bekannten positiven Wert wieder her (normales Verhalten des Multi-Level-Zwave-Switches nach der Spezifikation und identifiziert an einer physischen Lampe). Im Fall eines Heizkörpers nehme ich an, dass ein ON ihn « auf die letzte bekannte Stufe » zurücksetzt".
Aber « warum sollte man dieses Verhalten einschränken? Besser, dem Benutzer die Wahl zu lassen ». So bieten wir dem Benutzer drei Funktionen an:
- 1 Slider (
currentValue:position); - 1 ON/OFF, das zur letzten bekannten Position zurückkehrt (
restorePosition); - 1 ON/OFF, das ein maximales Einschalten durchführt (
currentValue:state).
Damit bleiben dem Benutzer alle Möglichkeiten.
Konkret habe ich derzeit Folgendes:
Was ergibt
(in der Realität würde ich auf einem Dashboard voraussichtlich nur zwei der drei Widgets verwenden. Aus Sicht des BENUTZERS treffe ich eine Entscheidung über das erwartete Verhalten eines ON/OFF).
Gibt das dem, was du in deinem Fall siehst, einen Sinn?
Dennoch scheint dein Gerät anders zu sein. Etwas, das mich in deinem Screenshot neugierig macht, sind die currentValue, die nicht synchronisiert zu sein scheinen. Ich habe einige Fragen zu deinem Gerät, die helfen werden, die notwendigen Änderungen für den PR zu orientieren:
- Wenn 8-37 auf
falsegesetzt wird, wird 8-38 dann auf 0 gesetzt? - Wenn 8-37 auf
falseist, ändert sich 8-37 dann intrue, wenn eine targetValue > 0 auf 8-38 gesetzt wird? Schaltet sich dein Heizkörper in diesem Szenario ein? - Wenn 8-37
trueist, ändert sich 8-37 dann infalse, wenn eine targetValue = 0 auf 8-38 gesetzt wird? Schaltet sich dein Heizkörper in diesem Szenario aus? - Wenn 8-38 auf 0 ist und 8-37 auf
false. Wenn 8-37 auftruegesetzt wird: Welche Auswirkungen hat das auf 8-38? (Achtung, den Test durchzuführen, wenn 8-38 vorher 99 oder 45 war). Schaltet sich dein Heizkörper ein? - Wenn 8-37
falseist, 8-38 größer als 0 ist, der Heizkörper ausgeschaltet ist, ändert 8-38 auf einen anderen Wert größer als 0. Was wird aus 8-37? Schaltet sich der Heizkörper ein?
Ich versuche hier, den Zusammenhang der CCs deines Geräts zu verstehen. Abhängig von deinen Antworten: Wir werden sicherstellen, dass in deiner Situation nur zwei Schalter erscheinen (der ON/OFF MAX und der ON/OFF RESTORE).
Ich habe andere Multilevel-Switch-Geräte auf meiner Seite: Ich werde sie verbinden, um zu sehen, in welchen Situationen sie sind.
Wir können dann versuchen, eingeschränktere Dinge vorzuschlagen: « keine Unterscheidung zwischen OFF/ON Max - OFF/ON restore vornehmen => und sich mit dem restore begnügen ». An diesem Punkt denke ich, dass es für den Benutzer interessant ist, Kontrolle über die ON MAX / ON Restore-Notion zu haben.
Zögere nicht, mir die Konfiguration deines Rollladens zu übermitteln, damit ich die Oeffnen/Schliessen-Werte anpassen kann.
Falls du mir auch den Tab « Debug Info » deines Heizkörpergeräts übermitteln kannst, interessiert mich das auch: Ich möchte die deviceClass überprüfen, die es ausgibt. Das Wichtigste, um den PR zu korrigieren, sind die 5 Verhaltensfragen deines Geräts.
Danke für deine Tests und deine Hilfe!
Hallo,
Ich habe einen weiteren Multilevel-Schalter bei mir zu Hause in der Version 3 gefunden:
Im Gegensatz zum Gerät von @Will_71 hat dieses, obwohl es sich um die Version 3 handelt, keinen zugehörigen Binary-Schalter. Man kann also keine Verallgemeinerung auf der Grundlage dieses Kriteriums treffen. Je nach den Antworten zum Verhalten des Geräts von Will, die in meinem vorherigen Beitrag angefragt wurden, können wir also Folgendes tun:
- entweder das Vorhandensein eines Binary-Schalters verbergen, falls vorhanden
- oder den « virtuellen » ON/OFF-Schalter des Multilevel-Schalters - den currentvalue:state - verbergen (um einen « überflüssigen » zu vermeiden)
- oder ihn so belassen
Sobald ich die Antworten habe, passe ich den PR an!
Nochmals vielen Dank,
Hallo,
Danke für deine Rückmeldung. Ich gebe dir die Antworten bis zum späten Vormittag.
Für die Klappe habe ich keinen Parameter, um die Richtung umzukehren
Was den Heizkörper betrifft, ist dieses Gerät ein bisschen anders, denn ich verwende eigentlich keine Binärschalter.
Es ist der Dimmer, der den Heizkörper steuert.
Der Heizkörper erwartet tatsächlich 6 verschiedene Befehle, um zu funktionieren, und je nach Zustand des Dimmers entspricht dies einem Befehl.
Hier ist die Entsprechung zwischen dem Wert des Dimmers und dem Befehl, der an den Heizkörper gesendet wird.
Qubino fil pilote:
- 0-10 : Vollständiger Stopp
- 11-20 : Frostschutz
- 21-30 : Eco
- 31-40 : Komfort - 2°C
- 41-50 : Komfort - 1°C
- 51-99 : Komfort
Um deine Fragen zu beantworten, wenn ich den Zustand von 8.37 ändere, ändert sich auch der Zustand von 8.38.
Wenn 8.37 = true ist, dann ist 8.38 = 99, der Maximalwert des Dimmers.
Und umgekehrt, wenn 8.37 = false ist, dann ist 8.38 = 0.
Und in jedem Fall, wenn man 8.38 ändert, steuert das meinen Heizkörper entsprechend dem Wert.
Hier sind Screenshots.
Wenn du Schalter hinzufügen möchtest, habe ich auch noch zwei weitere im Multilevel-Schalter
Und zum Schluss hier die DEBUG-INFO des Heizkörpergeräts
{
"id": 8,
"name": "Radiateur",
"loc": "Bureau",
"values": [
{
"id": "8-37-0-currentValue",
"nodeId": 8,
"toUpdate": false,
"commandClass": 37,
"commandClassName": "Binary Switch",
"endpoint": 0,
"property": "currentValue",
"propertyName": "currentValue",
"type": "boolean",
"readable": true,
"writeable": false,
"label": "Current value",
"stateless": false,
"commandClassVersion": 1,
"list": false,
"value": false,
"isCurrentValue": true,
"targetValue": "37-0-targetValue",
"lastUpdate": 1714853230143,
"newValue": false
},
{
"id": "8-37-0-targetValue",
"nodeId": 8,
"toUpdate": false,
"commandClass": 37,
"commandClassName": "Binary Switch",
"endpoint": 0,
"property": "targetValue",
"propertyName": "targetValue",
"type": "boolean",
"readable": true,
"writeable": true,
"label": "Target value",
"stateless": false,
"commandClassVersion": 1,
"list": false,
"value": false,
"lastUpdate": 1714853230140,
"newValue": false
},
{
"id": "8-38-0-currentValue",
"nodeId": 8,
"toUpdate": false,
"commandClass": 38,
"commandClassName": "Multilevel Switch",
"endpoint": 0,
"property": "currentValue",
"propertyName": "currentValue",
"type": "number",
"readable": true,
"writeable": false,
"label": "Current value",
"stateless": false,
"commandClassVersion": 3,
"min": 0,
"max": 99,
"list": false,
"value": 30,
"isCurrentValue": true,
"targetValue": "38-0-targetValue",
"lastUpdate": 1714900657808,
"newValue": 30
},
{
"id": "8-38-0-targetValue",
"nodeId": 8,
"toUpdate": false,
"commandClass": 38,
"commandClassName": "Multilevel Switch",
"endpoint": 0,
"property": "targetValue",
"propertyName": "targetValue",
"type": "number",
"readable": true,
"writeable": true,
"label": "Target value",
"stateless": false,
"commandClassVersion": 3,
"min": 0,
"max": 99,
"list": false,
"value": 30,
"lastUpdate": 1714900653764,
"newValue": 30
},
{
"id": "8-38-0-Up",
"nodeId": 8,
"toUpdate": false,
"commandClass": 38,
"commandClassName": "Multilevel Switch",
"endpoint": 0,
"property": "Up",
"propertyName": "Up",
"type": "boolean",
"readable": false,
"writeable": true,
"label": "Perform a level change (Up)",
"ccSpecific": {
"switchType": 2
},
"stateless": false,
"commandClassVersion": 3,
"list": false,
"value": true,
"lastUpdate": 1714424589362,
"newValue": true
},
{
"id": "8-38-0-Down",
"nodeId": 8,
"toUpdate": false,
"commandClass": 38,
"commandClassName": "Multilevel Switch",
"endpoint": 0,
"property": "Down",
"propertyName": "Down",
"type": "boolean",
"readable": false,
"writeable": true,
"label": "Perform a level change (Down)",
"ccSpecific": {
"switchType": 2
},
"stateless": false,
"commandClassVersion": 3,
"list": false,
"lastUpdate": 1714424589364
},
{
"id": "8-38-0-duration",
"nodeId": 8,
"toUpdate": false,
"commandClass": 38,
"commandClassName": "Multilevel Switch",
"endpoint": 0,
"property": "duration",
"propertyName": "duration",
"type": "duration",
"readable": true,
"writeable": false,
"label": "Remaining duration",
"stateless": false,
"commandClassVersion": 3,
"list": false,
"value": {
"unit": "seconds"
},
"lastUpdate": 1714424589365,
"newValue": {
"unit": "seconds"
}
},
{
"id": "8-38-0-restorePrevious",
"nodeId": 8,
"toUpdate": false,
"commandClass": 38,
"commandClassName": "Multilevel Switch",
"endpoint": 0,
"property": "restorePrevious",
"propertyName": "restorePrevious",
"type": "boolean",
"readable": false,
"writeable": true,
"label": "Restore previous value",
"stateless": false,
"commandClassVersion": 3,
"list": true,
"states": [
{
"text": "Restore",
"value": true
}
],
"value": true,
"lastUpdate": 1714853287177,
"newValue": true
},
{
"id": "8-49-0-Air temperature",
"nodeId": 8,
"toUpdate": false,
"commandClass": 49,
"commandClassName": "Multilevel Sensor",
"endpoint": 0,
"property": "Air temperature",
"propertyName": "Air temperature",
"type": "number",
"readable": true,
"writeable": false,
"label": "Air temperature",
"ccSpecific": {
"sensorType": 1,
"scale": 0
},
"stateless": false,
"commandClassVersion": 3,
"unit": "°C",
"list": false,
"value": -999.9,
"lastUpdate": 1714891799442,
"newValue": -999.9
},
{
"id": "8-112-0-1",
"nodeId": 8,
"toUpdate": false,
"commandClass": 112,
"commandClassName": "Configuration",
"endpoint": 0,
"property": 1,
"propertyName": "Input 1 switch type",
"type": "number",
"readable": true,
"writeable": true,
"label": "Input 1 switch type",
"default": 1,
"stateless": false,
"commandClassVersion": 1,
"min": 0,
"max": 1,
"list": true,
"allowManualEntry": false,
"states": [
{
"text": "mono-stable switch type (push button)",
"value": 0
},
{
"text": "bi-stable switch type",
"value": 1
}
],
"lastUpdate": 1714424589378
},
{
"id": "8-112-0-2",
"nodeId": 8,
"toUpdate": false,
"commandClass": 112,
"commandClassName": "Configuration",
"endpoint": 0,
"property": 2,
"propertyName": "Input 2 switch type",
"type": "number",
"readable": true,
"writeable": true,
"label": "Input 2 switch type",
"default": 1,
"stateless": false,
"commandClassVersion": 1,
"min": 0,
"max": 1,
"list": true,
"allowManualEntry": false,
"states": [
{
"text": "mono-stable switch type (push button)",
"value": 0
},
{
"text": "bi-stable switch type",
"value": 1
}
],
"lastUpdate": 1714424589380
},
{
"id": "8-112-0-3",
"nodeId": 8,
"toUpdate": false,
"commandClass": 112,
"commandClassName": "Configuration",
"endpoint": 0,
"property": 3,
"propertyName": "Input 3 switch type",
"type": "number",
"readable": true,
"writeable": true,
"label": "Input 3 switch type",
"default": 1,
"stateless": false,
"commandClassVersion": 1,
"min": 0,
"max": 1,
"list": true,
"allowManualEntry": false,
"states": [
{
"text": "mono-stable switch type (push button)",
"value": 0
},
{
"text": "bi-stable switch type",
"value": 1
}
],
"lastUpdate": 1714424589381
},
{
"id": "8-112-0-4",
"nodeId": 8,
"toUpdate": false,
"commandClass": 112,
"commandClassName": "Configuration",
"endpoint": 0,
"property": 4,
"propertyName": "Input 1 contact type",
"type": "number",
"readable": true,
"writeable": true,
"label": "Input 1 contact type",
"default": 0,
"stateless": false,
"commandClassVersion": 1,
"min": 0,
"max": 1,
"list": true,
"allowManualEntry": false,
"states": [
{
"text": "NO (normalerweise offen) Eingangstyp",
"value": 0
},
{
"text": "NC (normalerweise geschlossen) Eingangstyp",
"value": 1
}
],
"lastUpdate": 1714424589383
},
{
"id": "8-112-0-5",
"nodeId": 8,
"toUpdate": false,
"commandClass": 112,
"commandClassName": "Configuration",
"endpoint": 0,
"property": 5,
"propertyName": "Eingang 2 Kontakttyp",
"type": "number",
"readable": true,
"writeable": true,
"label": "Eingang 2 Kontakttyp",
"default": 0,
"stateless": false,
"commandClassVersion": 1,
"min": 0,
"max": 1,
"list": true,
"allowManualEntry": false,
"states": [
{
"text": "NO (normalerweise offen) Eingangstyp",
"value": 0
},
{
"text": "NC (normalerweise geschlossen) Eingangstyp",
"value": 1
}
],
"lastUpdate": 1714424589384
},
{
"id": "8-112-0-6",
"nodeId": 8,
"toUpdate": false,
"commandClass": 112,
"commandClassName": "Configuration",
"endpoint": 0,
"property": 6,
"propertyName": "Eingang 3 Kontakttyp",
"type": "number",
"readable": true,
"writeable": true,
"label": "Eingang 3 Kontakttyp",
"default": 0,
"stateless": false,
"commandClassVersion": 1,
"min": 0,
"max": 1,
"list": true,
"allowManualEntry": false,
"states": [
{
"text": "NO (normalerweise offen) Eingangstyp",
"value": 0
},
{
"text": "NC (normalerweise geschlossen) Eingangstyp",
"value": 1
}
],
"lastUpdate": 1714424589386
},
{
"id": "8-112-0-11",
"nodeId": 8,
"toUpdate": false,
"commandClass": 112,
"commandClassName": "Configuration",
"endpoint": 0,
"property": 11,
"propertyName": "Betriebsmodusauswahl Eingang 1",
"type": "number",
"readable": true,
"writeable": true,
"label": "Betriebsmodusauswahl Eingang 1",
"default": 1,
"stateless": false,
"commandClassVersion": 1,
"min": 0,
"max": 6,
"list": true,
"allowManualEntry": false,
"states": [
{
"text": "Taste beeinflusst ausgewählten Modus nicht",
"value": 0
},
{
"text": "Komfort",
"value": 1
},
{
"text": "Komfort-1°C",
"value": 2
},
{
"text": "Komfort-2°C",
"value": 3
},
{
"text": "Eco-Modus",
"value": 4
},
{
"text": "Frostschutz",
"value": 5
},
{
"text": "Stop",
"value": 6
}
],
"lastUpdate": 1714424589388
},
{
"id": "8-112-0-12",
"nodeId": 8,
"toUpdate": false,
"commandClass": 112,
"commandClassName": "Configuration",
"endpoint": 0,
"property": 12,
"propertyName": "Betriebsmodusauswahl Eingang 2",
"type": "number",
"readable": true,
"writeable": true,
"label": "Betriebsmodusauswahl Eingang 2",
"default": 4,
"stateless": false,
"commandClassVersion": 1,
"min": 0,
"max": 6,
"list": true,
"allowManualEntry": false,
"states": [
{
"text": "Taste beeinflusst ausgewählten Modus nicht",
"value": 0
},
{
"text": "Komfort",
"value": 1
},
{
"text": "Komfort-1°C",
"value": 2
},
{
"text": "Komfort-2°C",
"value": 3
},
{
"text": "Eco-Modus",
"value": 4
},
{
"text": "Frostschutz",
"value": 5
},
{
"text": "Stop",
"value": 6
}
],
"lastUpdate": 1714424589389
},
{
"id": "8-112-0-13",
"nodeId": 8,
"toUpdate": false,
"commandClass": 112,
"commandClassName": "Configuration",
"endpoint": 0,
"property": 13,
"propertyName": "Betriebsmodusauswahl Eingang 3",
"type": "number",
"readable": true,
"writeable": true,
"label": "Betriebsmodusauswahl Eingang 3",
"default": 5,
"stateless": false,
"commandClassVersion": 1,
"min": 0,
"max": 6,
"list": true,
"allowManualEntry": false,
"states": [
{
"text": "Taste beeinflusst ausgewählten Modus nicht",
"value": 0
},
{
"text": "Komfort",
"value": 1
},
{
"text": "Komfort-1°C",
"value": 2
},
{
"text": "Komfort-2°C",
"value": 3
},
{
"text": "Eco-Modus",
"value": 4
},
{
"text": "Frostschutz",
"value": 5
},
{
"text": "Stop",
"value": 6
}
],
"lastUpdate": 1714424589391
},
{
"id": "8-112-0-30",
"nodeId": 8,
"toUpdate": false,
"commandClass": 112,
"commandClassName": "Configuration",
"endpoint": 0,
"property": 30,
"propertyName": "Zustand nach Stromausfall",
"type": "number",
"readable": true,
"writeable": true,
"label": "Zustand nach Stromausfall",
"default": 0,
"stateless": false,
"commandClassVersion": 1,
"min": 0,
"max": 1,
"list": true,
"allowManualEntry": false,
"states": [
{
"text": "Vorheriger Zustand",
"value": 0
},
{
"text": "Immer aus",
"value": 1
}
],
"lastUpdate": 1714424589392
},
{
"id": "8-114-0-manufacturerId",
"nodeId": 8,
"toUpdate": false,
"commandClass": 114,
"commandClassName": "Herstellerspezifisch",
"endpoint": 0,
"property": "manufacturerId",
"propertyName": "manufacturerId",
"type": "number",
"readable": true,
"writeable": false,
"label": "Hersteller-ID",
"stateless": false,
"commandClassVersion": 2,
"min": 0,
"max": 65535,
"list": false,
"value": 345,
"lastUpdate": 1683240051004,
"newValue": 345
},
{
"id": "8-114-0-productType",
"nodeId": 8,
"toUpdate": false,
"commandClass": 114,
"commandClassName": "Herstellerspezifisch",
"endpoint": 0,
"property": "productType",
"propertyName": "productType",
"type": "number",
"readable": true,
"writeable": false,
"label": "Produkttyp",
"stateless": false,
"commandClassVersion": 2,
"min": 0,
"max": 65535,
"list": false,
"value": 4,
"lastUpdate": 1683240051006,
"newValue": 4
},
{
"id": "8-114-0-productId",
"nodeId": 8,
"toUpdate": false,
"commandClass": 114,
"commandClassName": "Herstellerspezifisch",
"endpoint": 0,
"property": "productId",
"propertyName": "productId",
"type": "number",
"readable": true,
"writeable": false,
"label": "Produkt-ID",
"stateless": false,
"commandClassVersion": 2,
"min": 0,
"max": 65535,
"list": false,
"value": 81,
"lastUpdate": 1683240051008,
"newValue": 81
},
{
"id": "8-134-0-libraryType",
"nodeId": 8,
"toUpdate": false,
"commandClass": 134,
"commandClassName": "Version",
"endpoint": 0,
"property": "libraryType",
"propertyName": "libraryType",
"type": "number",
"readable": true,
"writeable": false,
"label": "Bibliothekstyp",
"stateless": false,
"commandClassVersion": 2,
"list": true,
"states": [
{
"text": "Unbekannt",
"value": 0
},
{
"text": "Statischer Controller",
"value": 1
},
{
"text": "Controller",
"value": 2
},
{
"text": "Erweiterter Slave",
"value": 3
},
{
"text": "Slave",
"value": 4
},
{
"text": "Installer",
"value": 5
},
{
"text": "Routing Slave",
"value": 6
},
{
"text": "Bridge Controller",
"value": 7
},
{
"text": "Gerät unter Test",
"value": 8
},
{
"text": "N/A",
"value": 9
},
{
"text": "AV-Fernbedienung",
"value": 10
},
{
"text": "AV-Gerät",
"value": 11
}
],
"value": 3,
"lastUpdate": 1683240054168,
"newValue": 3
},
{
"id": "8-134-0-protocolVersion",
"nodeId": 8,
"toUpdate": false,
"commandClass": 134,
"commandClassName": "Version",
"endpoint": 0,
"property": "protocolVersion",
"propertyName": "protocolVersion",
"type": "string",
"readable": true,
"writeable": false,
"label": "Z-Wave-Protokollversion",
"stateless": false,
"commandClassVersion": 2,
"list": false,
"value": "5.3",
"lastUpdate": 1683240054170,
"newValue": "5.3"
},
{
"id": "8-134-0-firmwareVersions",
"nodeId": 8,
"toUpdate": false,
"commandClass": 134,
"commandClassName": "Version",
"endpoint": 0,
"property": "firmwareVersions",
"propertyName": "firmwareVersions",
"type": "string[]",
"readable": true,
"writeable": false,
"label": "Z-Wave-Chip-Firmwareversionen",
"stateless": false,
"commandClassVersion": 2,
"list": false,
"value": [
"2.0",
"1.0"
],
"lastUpdate": 1683240054172,
"newValue": [
"2.0",
"1.0"
]
},
{
"id": "8-134-0-hardwareVersion",
"nodeId": 8,
"toUpdate": false,
"commandClass": 134,
"commandClassName": "Version",
"endpoint": 0,
"property": "hardwareVersion",
"propertyName": "hardwareVersion",
"type": "number",
"readable": true,
"writeable": false,
"label": "Z-Wave-Chip-Hardwareversion",
"stateless": false,
"commandClassVersion": 2,
"list": false,
"value": 1,
"lastUpdate": 1683240054173,
"newValue": 1
},
{
"id": "8-38-0-event",
"nodeId": 8,
"toUpdate": false,
"commandClass": 38,
"commandClassName": "Multilevel-Schalter",
"endpoint": 0,
"property": "event",
"propertyName": "event",
"type": "number",
"readable": true,
"writeable": false,
"label": "Ereigniswert",
"stateless": true,
"commandClassVersion": 3,
"min": 0,
"max": 255,
"list": false,
"lastUpdate": 1714708022222
}
],
"groups": [
{
"text": "Lifeline",
"endpoint": 0,
"value": 1,
"maxNodes": 1,
"isLifeline": true,
"multiChannel": true
},
{
"text": "Multilevel",
"endpoint": 0,
"value": 2,
"maxNodes": 16,
"isLifeline": false,
"multiChannel": true
},
{
"text": "Einfach ein-/aus",
"endpoint": 0,
"value": 3,
"maxNodes": 16,
"isLifeline": false,
"multiChannel": true
},
{
"text": "Einfach ein-/aus - Eingang I2",
"endpoint": 0,
"value": 4,
"maxNodes": 16,
"isLifeline": false,
"multiChannel": true
},
{
"text": "Einfach ein-/aus - Eingang I3",
"endpoint": 0,
"value": 5,
"maxNodes": 16,
"isLifeline": false,
"multiChannel": true
},
{
"text": "Unbenannte Gruppe 6",
"endpoint": 0,
"value": 6,
"maxNodes": 16,
"isLifeline": false,
"multiChannel": true
}
],
"neighbors": [],
"ready": true,
"available": true,
"hassDevices": {},
"failed": false,
"inited": true,
"eventsQueue": [
{
"time": "2024-05-05T09:12:33.608Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel-Schalter",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:12:33.612Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel-Schalter",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:12:34.915Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel-Schalter",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:13:33.644Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel-Schalter",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:13:33.647Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel-Schalter",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:13:34.812Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel-Schalter",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:14:33.658Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel-Schalter",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:14:33.661Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel-Schalter",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:14:35.826Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel-Schalter",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:15:33.675Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel-Schalter",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:15:33.679Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel-Schalter",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:15:35.583Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:16:33.726Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:16:33.730Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:16:35.669Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:17:33.770Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:17:33.780Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:17:35.717Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:17:35.807Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:17:35.914Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:17:36.061Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:17:36.281Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:17:36.324Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:17:36.360Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:17:37.591Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:17:37.813Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:18:30.269Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 99,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:18:33.821Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:18:33.827Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 99,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:18:34.340Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:19:04.208Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 0,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:19:33.894Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:19:33.900Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 0,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:19:34.155Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:19:34.203Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:19:34.289Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:19:34.930Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:19:35.880Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:19:35.891Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:19:35.987Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:19:37.147Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 0,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:20:33.919Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:20:33.923Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 0,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:20:34.073Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:20:34.149Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:20:34.759Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:21:34.920Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:21:34.924Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:21:37.054Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:22:34.215Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:22:34.221Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:22:36.026Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:23:34.662Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:23:34.667Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:23:36.154Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:23:36.232Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:23:36.308Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:23:36.553Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:23:36.657Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:23:37.507Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:24:34.126Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:24:34.129Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:24:34.662Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:24:34.748Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:25:34.175Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:25:34.182Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:25:34.488Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:25:34.549Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:25:35.100Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:25:35.160Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:25:37.021Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:25:37.035Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:25:37.766Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:26:34.233Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:26:34.239Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:26:51.350Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 0,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:26:53.073Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "restorePrevious",
"newValue": true,
"prevValue": true,
"propertyName": "restorePrevious"
}
]
},
{
"time": "2024-05-05T09:26:53.347Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 99,
"prevValue": 0,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:26:57.811Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:26:57.817Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 99,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:26:58.327Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:27:04.933Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 10,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:27:04.941Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 10,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:27:06.318Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 10,
"prevValue": 10,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:27:08.076Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 0,
"prevValue": 10,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:27:08.079Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 0,
"prevValue": 10,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:27:08.306Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 0,
"prevValue": 0,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:27:34.251Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 0,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:27:34.257Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 0,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:27:35.262Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:28:34.300Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:28:34.304Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:28:35.943Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:28:36.054Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:28:37.209Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:28:37.585Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:28:37.626Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:28:41.009Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
},
{
"time": "2024-05-05T09:29:34.343Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"endpoint": 0,
"property": "targetValue",
"newValue": 30,
"prevValue": 30,
"propertyName": "targetValue"
}
]
},
{
"time": "2024-05-05T09:29:34.346Z",
"event": "value updated",
"args": [
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"newValue": 30,
"prevValue": 30,
"propertyName": "currentValue"
}
]
}
],
"status": "Alive",
"interviewStage": "Complete",
"priorityReturnRoute": {},
"customReturnRoute": {},
"prioritySUCReturnRoute": false,
"customSUCReturnRoutes": [],
"hexId": "0x0159 0x0004-0x0051",
"dbLink": "https://devices.zwave-js.io/?jumpTo=0x0159:0x0004:0x0051:2.0",
"manufacturerId": 345,
"productId": 81,
"productType": 4,
"deviceConfig": {
"filename": "/usr/src/app/store/.config-db/devices/0x0159/zmnhjd.json",
"isEmbedded": true,
"manufacturer": "Qubino",
"manufacturerId": 345,
"label": "ZMNHJD",
"description": "Flush Pilot",
"devices": [
{
"productType": 4,
"productId": 81
}
],
"firmwareVersion": {
"min": "0.0",
"max": "255.255"
},
"preferred": false,
"associations": {},
"paramInformation": {
"_map": {}
}
},
"productLabel": "ZMNHJD",
"productDescription": "Flush Pilot",
"manufacturer": "Qubino",
"firmwareVersion": "2.0",
"protocolVersion": 3,
"zwavePlusVersion": 1,
"zwavePlusNodeType": 0,
"zwavePlusRoleType": 5,
"nodeType": 1,
"endpointsCount": 3,
"endpoints": [
{
"index": 0,
"label": "Root Endpoint"
}
],
"isSecure": false,
"security": "None",
"supportsSecurity": false,
"supportsBeaming": true,
"isControllerNode": false,
"isListening": true,
"isFrequentListening": false,
"isRouting": true,
"keepAwake": false,
"maxDataRate": 100000,
"deviceClass": {
"basic": 4,
"generic": 17,
"specific": 1
},
"lastActive": 1714901379459,
"firmwareCapabilities": {
"firmwareUpgradable": false
},
"protocol": 0,
"deviceId": "345-81-4",
"statistics": {
"commandsTX": 8836,
"commandsRX": 18183,
"commandsDroppedRX": 0,
"commandsDroppedTX": 0,
"timeoutResponse": 482,
"rtt": 126,
"lastSeen": "2024-05-05T09:29:39.459Z",
"rssi": -66,
"lwr": {
"protocolDataRate": 2,
"repeaters": [
2,
4
],
"rssi": -65,
"repeaterRSSI": [
-65,
-44
]
},
"nlwr": {
"protocolDataRate": 2,
"repeaters": [
20,
17
],
"rssi": -69,
"repeaterRSSI": [
127,
127
]
}
},
"supportsTime": false,
"_name": "Radiateur (Bureau)",
"applicationRoute": false,
"lastReceive": 1714901320998,
"lastTransmit": 1714901379459,
"errorReceive": false,
"errorTransmit": true
}
Rollladen
Du hast eine deviceClass 17-7. Dabei handelt es sich um ein Gerät, das die genaue Position des Rollladens kennt (deutlich besser als das, was ich verwende
!). Ich weiß nicht, ob das relevant ist. Ich werde einfach die Verwaltung der Werte im Code umkehren. Meine Installation ist atypisch, ich werde das schon irgendwie hinbekommen (indem ich die Anschlüsse umkehre oder zWave bitte, das auf seiner Seite zu tun).
Danke für deine hilfreiche Datei!
Heizkörper
Nur um sicherzugehen: Das Ändern des DIMMERS auf einen Wert ungleich 0 wird den Binary Switch nicht beeinflussen? (auch wenn du auf REFRESH in der ZwaveJS UI klickst?). Es ist uns allerdings nicht möglich zu wissen, dass zwischen 0-10: das bedeutet AUS… Aus generischer Sicht muss ich mich auf > 0 stützen. (Ich werde deine Datei überprüfen, vielleicht gibt es etwas, das mir diesen Punkt anzeigt).
Danke für diese Klarstellungen, das hilft mir bei der Bearbeitung. Was ich daraus verstehe: In deinem Fall reicht es aus, den Binary Switch zu verstecken. Aber ist das eine allgemeine Regel? Ich habe dazu keine klare Meinung. Man könnte sagen, dass man aus Gründen der Benutzerfreundlichkeit die Anzahl der angezeigten Funktionen begrenzen sollte.
Ich werde das heute Nachmittag berücksichtigen. Du wirst also 3 Funktionen auf deinem Gerät haben:
- Dimmer
- ON/OFF Max
- ON/OFF Wiederherstellen
Das bleibt mit deinem Anwendungsfall sowie einem klassischen Dimmer für Licht (wie die, die ich teste) kompatibel. Ist das für dich in Ordnung?
Ich melde mich, wenn der PR aktualisiert ist.
Nochmals danke @Will_71 für dein Feedback ![]()
Wenn ich also den binären Schalter 8.37 ändere, ändert sich der Zustand des Dimmers tatsächlich auf den Extremwert, also entweder 0 oder 99. Wenn ich jedoch den Dimmer ändere, ändert sich der Zustand dieses binären Schalters nicht. Der zweite binäre Schalter ist gleich true, wenn der Dimmer größer als 0 ist. Um den Wert und die Entsprechung zu kennen, ist alles in der Dokumentation des Geräts angegeben. Daher ist es meiner Meinung nach nicht notwendig, dies in Gladys zu übersetzen. Mir kommt es so vor, als ob es mit Z-Wave schwierig ist, etwas zu definieren, das für alle Hersteller gilt.
Sehr klar, danke.
Ich sehe, was ich ändern muss. Ich melde mich am Nachmittag.
Danke ![]()
@Will_71 der PR ist aktuell.
Du solltest jetzt folgendes Verhalten haben:
- Die richtige Richtung für deine Rollläden haben
- 3 Funktionen für deinen Heizkörper sehen:
- 1 Drehregler (currentvalue:position)
- 1 Schalter (currentvalue:state): Er fungiert als EIN/AUS und setzt auf 0 - 99
- 1 Schalter (restorePrevious): Er fungiert als EIN/AUS und setzt auf 0 bei AUS und « letzter Wert » bei EIN
Ich werde es versuchen ![]()
Ich habe es gerade versucht. Okay mit der Richtung des Flügels.
Beim Heizkörper ist es auch in Ordnung.
Aber da ist noch etwas, das mich stört, du kannst sagen, dass ich nervig bin ![]()
Es geht um den restorePrevious-Schalter, den du hinzugefügt hast. Warum ist er nur für den Heizkörper da, obwohl er auch beim Flügel vorhanden ist?
Und ist es wirklich ein Ein/Aus-Schalter? In der Zwave JS UI habe ich den Eindruck nicht.
Danach verstehe ich, weil es noch nicht die passende Funktion in Gladys gibt. Man müsste sie erstellen.
Ich erkläre es mit einem Beispiel, weil die Funktionsweise zwischen Gladys und Zwave JS UI unterschiedlich ist.
In Zwave JS UI habe ich den Dimmer auf 30.
Wenn ich auf die RESTORE-Taste drücke, geht der Dimmer auf den vorherigen Wert 99.
In Gladys habe ich auch den Dimmer auf 30
Ich drücke auf die RESTORE-Taste, er geht auf FALSE und der Dimmer auch.
Wenn ich zum vorherigen Wert zurückkehren will, muss ich erneut auf die Taste drücken.
Ich bin mir nicht sicher, ob jeder versteht, dass man zweimal drücken muss, um den vorherigen Wert wiederherzustellen!
Dazu kommt, dass der Schalter sofort auf TRUE zurückkehrt, sobald sich der Dimmer ändert.
Man hat sich direkt mit @Will_71 ausgetauscht, anstatt hier den Thread zu verstopfen. Das Fazit ist: Alles ist in Ordnung.
- Bei den Rollläden: alles in Ordnung
- Bei
restorePreviousder Heizung: das Verhalten ist in Ordnung. Es ist nur so, dass sein Gerät dies nicht wirklich verwaltet. Es ist exponiert, aber es tut nichts damit (es verhält sich wie ein einfaches AN/AUS). Dennoch hatrestorePreviousfür andere Geräte seinen Sinn.
Also ist alles in Ordnung.
Man könnte restorePrevious im speziellen Fall dieser ProductId nicht exponieren. Ich habe keine klare Meinung, ob man spezifische Fälle pro Gerät verwalten soll oder nicht. In diesem speziellen Fall ist es nicht viel zu tun, und es könnte in einem zweiten Schritt erledigt werden.
Andere Möglichkeit: Man könnte sich dafür entscheiden, nicht explizit 2 AN/AUS zu exponieren. Man macht systematisch restorePrevious im Fall eines AN (das im schlimmsten Fall wie ein einfaches AN wirkt). Zur Erinnerung, der Unterschied zwischen dem klassischen AN und dem restorePrevious (typisch sichtbar im Fall eines Dimmers):
- Ein AN/AUS-Knopf, der es ermöglicht, auszuschalten / maximal einzuschalten
- Ein AN/AUS-Knopf, der es ermöglicht, auszuschalten / einzuschalten gemäß der letzten Intensität, die vorhanden war (wie physische Schalter)
Ich finde, die Wahl zu haben, ist interessant.
@pierre-gilles zögere nicht, deine Meinung zu diesem letzten Punkt zu äußern. Ansonsten: bereit zum Mergen.
Nochmals vielen Dank an @Will_71 für die Tests!
Hallo @Sescandell @Will_71,
Vielen Dank für die Arbeit an diesem PR! Ich habe gesehen, dass es viele Nachrichten gab und einige Änderungen am PR, das ist wirklich toll
Funktional sieht es sehr cool aus.
Ich habe viele Fragen an euch, ich denke, es ist klüger, diesen PR nicht in die heutige Veröffentlichung aufzunehmen, wir werden keine Zeit haben, die Punkte vor der Veröffentlichung gemeinsam zu besprechen.
Ich kümmere mich um das Forum und die Veröffentlichung und danach denke ich, dass ich ein oder zwei Stunden mit dem PR verbringen werde, um euch Feedback zu geben!
Auf jeden Fall sind die Veröffentlichungen bei Gladys so häufig, dass es in der nächsten enthalten sein wird ![]()
Nochmals vielen Dank!!
Hallo @Sescandell,
Beim nochmaligen Durchgehen des PRs fällt mir auf, dass ich wirklich sehr viele Fragen habe. Können wir uns diese Woche kurz unterhalten, wenn du Zeit hast? ![]()
Falls nicht, kann ich alles schriftlich festhalten, aber es würde uns allen Zeit sparen, wenn du mir die Änderungen mündlich per Bildschirmfreigabe erklären könntest ^^
Ich bin verfügbar:
- morgen Abend (20 Uhr?)
- Mittwochabend (20 Uhr?)
- Donnerstag und Freitag den ganzen Tag, wann immer du möchtest

Lass es mich wissen!
Danke für den Anruf @Sescandell!
Ich habe gerade dein PR mit meinem Fibaro-Öffnungssensor getestet und es funktioniert immer noch perfekt, also gute Arbeit ![]()
Ich habe dir ein paar Code-Style-Hinweise in der PR hinterlassen, nichts Ernstes:
Ich habe den PR gemäß den Anmerkungen aktualisiert.
Es ist gepusht und getestet.
Soll ich das von meiner Seite aus testen?
















