NEWS
Fibaro Rollershutter v3 Level_1 wert verstellt sich automatisch
-
Guten Tag und Hallo liebe Forengemeinde,
ich bin derzeit leider etwas am verzweifeln.
Ich habe mir 7 der neuen Fibaro Rollershutter v3 zugelegt.
Diese funktionieren auch an sich so wie sie sollen.
Nun ist mir aber aufgefallen, dass unter Multilevel das Attribut Level_1, welches ja die Position angibt, zwei Werte enthält.
Zwischen diesen lässt sich hin und her wechseln indem man in das Feld klickt, in dem der Wert steht.
Meine Frage ist nun, wo der zweite Wert herkommt. Dieser macht mir nämlich in meinen Skripts ungemein Probleme.
Könnte es sein, dass ich in der Konfiguration noch etwas anpassen muss?Mit freundlichen Grüßen
der Henrik
-
@mcmxb Erzeuge mal in einem Testskript ein Log vom Datenpunkt "Level_1" (JS-Version 4.1.13)
log(getState('....Level_1').val);
Enthält er vielleicht ein Array ?
-
Ich habe einen FGR 223 bei mir auch nicht zum Laufen bekommen. Level_1 hat immer komische Werte angezeigt. Ich bin dann auf die Vorgängerversion zurück.
Siehe auch https://github.com/OpenZWave/open-zwave/issues/1705
-
das gleiche habe ich mit einem qubino.. es liegt nicht an dem fibaro.. da ist irgendwas mit der bestätigung nicht richtig im openzwave
-
@paul53 Level_1 enthält im log nur einen Typ Number wie es scheint.
Skriptauszug:
console.log("Log start");
log(getState('....SWITCH_MULTILEVEL.Level_1').val);
console.log("Log end");Ausgabe:
21:28:29.094 info javascript.0 script.js.scripts.Shutter_Control: Log start
21:28:29.094 info javascript.0 script.js.scripts.Shutter_Control: 30
21:28:29.094 info javascript.0 script.js.scripts.Shutter_Control: Log endEin Array ist leider jedenfalls nicht.
-
Ich habe mir eine für mich funktionierende Lösung skripten können.
Ich steuere die Shutter derzeit über- Alexa
- den Schalter an der Wand
- und meine eigene Ionic App (steht noch am Anfang)
Für die App und Alexa habe ich ein Dummy-Objekt angelegt, dessen Werte ich weiter reiche an Level_1.
Zunächst also ein on({id: 'dummy.value', change: 'any'} mit dem ich dann Level_1 = dummy.value.val setze.
Umgekehrt, sprich wenn der Wandschalter betätigt und Level_1 direkt geschaltet wird, nutze ich
on({id: 'Level_1 'any'} und gebe die Änderung so an dummy.value weiter.
VORSICHT! - Hier entsteht eine Endlosschleife, auf die reagiert werden muss.
Die Werte in Level_1 sind in meinem Fall berechenbar. Es steht immer zunächst der aktuelle Wert drin, dieser ändert sich manchmal auf den zuvor geschalteten Wert.Falls Interesse an der Lösung besteht, kann ich das Skript auch irgendwie zur Verfügung stellen.
Bis dahin werde ich das Skript weiter testen/optimieren. Ich bin damit selber nicht 100% glücklich, da es recht umständlich ist, es erfüllt aber vorläufig seinen Zweck. -
@arteck
Danke für den Hinweis.
Ich habe eine für mich vorübergehend erträgliche Lösung gefunden. (siehe Antwort oben). -
@mcmxb sagte:
VORSICHT! - Hier entsteht eine Endlosschleife
Der kann man durch Auswertung der Quelle entgegenwirken.
on({id: 'dummy.value', change: 'ne', fromNe: 'system.adapter.javascript.' + instance},
-
@mcmxb
Gerne. Immer her damit... -
@paul53 sagte in Fibaro Rollershutter v3 Level_1 wert verstellt sich automatisch:
Der kann man durch Auswertung der Quelle entgegenwirken.
on({id: 'dummy.value', change: 'ne', fromNe: 'system.adapter.javascript.' + instance},
Könntest Du das bitte etwas erläutern was da passiert?
-
@eumats Wenn der eigene Datenpunkt "dummy.value" durch ein Skript aktualisiert wird, wird nicht getriggert und somit die Endlosschleife verhindert.
-
Ich bin mir nicht sicher ob die Funktion wirklich das tut, was ich möchte.
Was passieren soll:- Skript : Update (durch Alexa oder App) von dummy.value -> Level_1 wird geändert auf dummy.value. Diese Änderung soll aber nicht zur Folge haben, dass 2. Skript ausgeführt wird (würde aber ja passieren, da Change auf Level_1 stattfindet).
- Skript : Update (durch Wandschalter) von Level_1 -> dummy.value wid geändert auf Level_01. Diese Änderung soll aber nicht zur Folge haben, dass 1. Skript ausgeführt wird (würde ja passieren, da Change auf dummy.value stattfindet )