NEWS
Test Adapter Z-Wave 2 (v1.4.x / 1.5.0 / 1.6.x)
-
@Chris_78 sagte in Test Adapter Z-Wave 2 (v1.4.x):
Aus meiner Sicht verhält sich ioBroker hier richtig
Nein das ist inkonsistent. Normale Datenpunkte haben die bewusste Möglichkeit, keinen Wert (d.h.
null
) zu haben. Dass es in Aliassen nicht geht, ist meiner Meinung nach ein Bug.
Java kennt auch nullable Datentypen (ähnlich wie C#): https://stackoverflow.com/questions/14321175/how-to-write-nullable-int-in-java -
@AlCalzone said in Test Adapter Z-Wave 2 (v1.4.x):
@Chris_78 sagte in Test Adapter Z-Wave 2 (v1.4.x):
Aus meiner Sicht verhält sich ioBroker hier richtig
Nein das ist inkonsistent. Normale Datenpunkte haben die bewusste Möglichkeit, keinen Wert (d.h.
null
) zu haben. Dass es in Aliassen nicht geht, ist meiner Meinung nach ein Bug.
Java kennt auch nullable Datentypen (ähnlich wie C#): https://stackoverflow.com/questions/14321175/how-to-write-nullable-int-in-javaDie Möglichkeit beim initieren besteht unter gewissen Umständen. Meines Wissens kann der Null Wert aber nicht aus einem Zahlentyp gelesen werden. Die Aliassen sind ja "Kopien" bzw.
lesen die Werte ja aus den verknüpften Datenpunkten. Beim Auslesen des originalen Datenpunkt müsste das "Null" zur "0" (im Alias Datenpunkt) werden.
Aber wie gesagt ich bin in der Richtung schon ein wenig eingerostet -
@Chris_78 sagte in Test Adapter Z-Wave 2 (v1.4.x):
Meines Wissens kann der Null Wert aber nicht aus einem Zahlentyp gelesen werden.
Doch! Probiere es einfach mal in nem Skript aus:
getState("dp.mit.nullwert").val
ist dann=== null
. -
Da ich sowieso irgendwie noch die manuelle Steuerung am Schalter abfangen musste, damit sich die TargetPosition für HomeKit anpasst - damit der richtige Status angezeigt wird - fängt das Skript jetzt auch gleich noch die Interviews der Shutter ab und setzt die TargetPosition, wenn kein Stromverbrauch, auf den Wert der CurrentPosition.
Das Blockly-Skript ist ein ziemlicher Brain-Fuck geworden - da ich nicht für jeden, der 13 Shutter, ein eigenes Skript schreiben wollten! Trotz alledem, wollte ich es abschließend hier noch posten:
-
Aliases, ordentlich sortiert und identisch - wichtig sind für das Skript PositionCurrent, PositionTarget und ConsumptionCurrent:
-
Aufzählung des Aliases CurrentPosition der Rollläden
-
Blockly-Skript
blockly-rolllaeden-brainfuck.txt
Gruß Nico
-
-
FYI: Dass der alias für einen null-Wert 0 ist, ist ein Bug und wird im nächsten JS-Controller behoben.
-
@AlCalzone said in Test Adapter Z-Wave 2 (v1.4.x):
FYI: Dass der alias für einen null-Wert 0 ist, ist ein Bug und wird im nächsten JS-Controller behoben.
Danke für die Info. Wieder was gelernt.
-
Ich hätte noch mal eine Frage bzgl. Alias-Werten. Bin mir nicht ganz sicher, ob die Frage zum Adapter gehört oder
eher ein allgemeines Alias Topic ist...Ich habe mir u.a. für die Z-Wave Geräte Alias-Punkte angelegt:
z.B.{ "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1592986261338, "common": { "name": "Buero Schalter Licht", "role": "variable", "desc": "per Script erstellt", "type": "number", "write": true, "read": true, "alias": { "id": { "read": "zwave2.0.Node_004.Multilevel_Switch.currentValue", "write": "zwave2.0.Node_004.Multilevel_Switch.targetValue" } } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "alias.0.Buero.Licht", "type": "state" }
Das ganze funktioniert soweit gut. Einziges Problem ist, falls ich ioBroker oder den Adapter neu starte sind die Alias-Datenpunkte nicht mehr
befüllt (somit passen die angezeigten Vis-Werte/Statis natürlich nicht mehr). Erst wenn ich den jeweiligen targetValue nutze wird der Wert wieder im Alias
korrekt angezeigt.
Aktuell behelfe ich mir mit einem Skript, dass ich nach Neustart einmal ausführe
(setzt vom jeweiligen Datenpunkt den currentValue in den targetValue):
z.B.Danach sind die Alias-Werte korrekt "befüllt".
Kann man die Alias-Punkte evtl. optimieren/korrigieren? Allerdings besteht das Problem nur mit den ZWave Alias-Werten.
Die Alias-Werte von meinen Shellies (per Mosquitto angebunden) haben diese Problematik nicht. Diese werden initial sofort befüllt.Kann man evtl. etwas am Adapter machen? Oder gibt es bereits eine Möglichkeit?
-
@Chris_78 sagte in Test Adapter Z-Wave 2 (v1.4.x):
Kann man evtl. etwas am Adapter machen? Oder gibt es bereits eine Möglichkeit?
Siehe meine Diskussion mit Nico. Ich überlege, einen leeren targetValue automatisch auf den currentValue zu setzen. Damit dürfte das Problem weg sein.
-
@AlCalzone
Hallo mir ist ein Problem mit dem Smart Implant von Fibaro aufgefallen. Ich habe zwei One wire Temperatursensoren angehängt die Werte werden auch korrekt übertragen nach dem Interview, aber dann nicht mehr aktualisiert. Wenn man erneut Interviewt werden die Werte aktualisiert und bleiben dann wieder gleich.MfG Stefan
-
@FalconSBG Schau mal bitte unter Verknüpfungen, ob dort Root-Endpoint eingestellt ist. Wenn ja, wechsle mal auf Root-Gerät und schaue ob sich die Situation verändert.
-
@AlCalzone Habs umgestellt leider ändert sich an der Situation nichts. Werte werden erst bei einem neu interview geändert. Und dadurch wird auch wieder auf Root-Endpoint in Node 24 umgestellt.
-
@FalconSBG Ist der denn richtig konfiguriert? Standardmäßig sind die nämlich aus:
-
AlCalzone sagte in Test Adapter Z-Wave 2 (v1.4.x):
- ja, bin nur gerade mit einem etwas größeren Umbau beschäftigt
@AlCalzone Wie läufts bei dir? Bist du mit deinem Umbau durch?
Gruß Nico
-
@_nico Ne, das wird noch etwas dauern...
Konzept für einfache Controller-Kommandos und Kommando-Warteschlange
Implementierung für einfache Controller-Kommandos in Testumgebung
Konzept für Kommandos an andere Nodes
Implementierung für Kommandos an andere Nodes
Tests am realen SystemFalls es jemand genauer wissen will: Ich baue die Kommando-Logik um auf eine (bzw. mehrere verknüpfte) State Machines, damit der Treiber zu jeder Zeit ein definiertes Verhalten hat, ohne dass ich irgendeine komplexe Interaktion übersehe und er einfach stecken bleibt.
Positiver Effekt: Ich kann automatische Tests für jede Interaktion schreiben - das ging vorher nicht.
Negativer Effekt: Das ist ein ziemlicher Brainfuck.... Hier mal ein Ausschnitt der aktuellen Planung:
-
@AlCalzone Hallo ja war noch auf null gestellt und ich musste wieder auf Root Endpoint zurückschallten aber nun funktioniert es. Danke für die Hilfe.
-
@AlCalzone sagte in Test Adapter Z-Wave 2 (v1.4.x):
@_nico Ne, das wird noch etwas dauern...
Konzept für einfache Controller-Kommandos und Kommando-Warteschlange
Implementierung für einfache Controller-Kommandos in Testumgebung
Konzept für Kommandos an andere Nodes
Implementierung für Kommandos an andere Nodes
Tests am realen SystemFalls es jemand genauer wissen will: Ich baue die Kommando-Logik um auf eine (bzw. mehrere verknüpfte) State Machines, damit der Treiber zu jeder Zeit ein definiertes Verhalten hat, ohne dass ich irgendeine komplexe Interaktion übersehe und er einfach stecken bleibt.
Positiver Effekt: Ich kann automatische Tests für jede Interaktion schreiben - das ging vorher nicht.
Negativer Effekt: Das ist ein ziemlicher Brainfuck.... Hier mal ein Ausschnitt der aktuellen Planung:
Oha, na dann, viel Erfolg und frohes Schaffen!
-
@AlCalzone sieht nach einer Lebensaufgabe aus
-
Sers @AlCalzone,
gestern war an einem Devolo Bewegungsmelder (Node_047) die Batterie leer und ich habe diese daraufhin ausgetauscht. Danach hat der BWM sämtliche von mir geänderte Parameter vergessen. Normal?
Außerdem werden einige Parameter mit dem Wert "-1" angezeigt. Änderungen werden nicht korrekt übernommen. Irgendwas ist da Faul. Auch ein Neustart des Adapters und ein erneutes Interview hat daran nichts geändert.
Im Screenshot ist auch die Node_049, auch ein Devolo BWM, so war es bis zum Tausch von der Batterie bei der 47 auch. Wenn ich die Parameter alle identisch setze, reagiert der BWM garnicht mehr. Wie gesagt, irgendwas stimmt nicht.
Gruß Nico
-
@_nico Die Anleitung spricht von einem Test-Mode. Hast du den beim Tausch ggf. ausversehen aktiviert?
https://www.cd-jackson.com/zwave_device_uploads/290/Devolo-home-Control-Motion.pdfAnsonsten berichtet der Melder tatsächlich den Wert -1 für die Config-Parameter. In der Anleitung finde ich diesen Wert aber nur beim Basic Set Level als erlaubt.
-
ist es möglich die erneuten Interviews mit einem Blockly Skript zu starten ?
Ich habe zwei Module die mache alle 24 bis 48 Stunden probleme nach eine neuen Interview laufen Sie wieder sauber das würde ich gerne automatisieren...
Gruss