NEWS
Rollo über hq widget steuern
-
@marv085
Bei fhem bin ich leider raus -
Ist es nicht möglich über diese Werte einfach eine Logik als Skript zu erstellen um den Rollo zu steuern?
Hab mir das irgendwie so vorgestellt, dass wenn im Widget der Rolladen auf/zu gestellt wird, eben der Wert für on/off gesetzt wird. Wenn ein Zwischenwert gewählt wird z.B. 20% dann eben off for timer - Zeitwert. Allerdings müsste ich dann ja mit diesem Widget unterschiedliche ObejctID's ansteuern und da ist mir nicht klar ob und wie das gehen könnte?
-
In vis habe ich ja in der Ansicht zwei Buttons "oben" , "unten" und auch die Möglichkeit eine Zwischenposition anzuwählen.
Kann damit nur eine einzelne Objekt ID angesteuert werden? Und ist es dann nicht möglich ein "Dummy" Objekt anzulegen mit welchem ich dann über ein Skript die unterschiedlichen Positionen steuern kann? -
@marv085
Solange du uns nicht sagst, wie das Rollo in fhem gesteuert (auf zwischenpositionen) wird, ist das alles nur raten! -
@Homoran ich kann auch in FHEM keine fixe Zwischenposition angeben. Folgendes hab ich jetzt gemacht:
-Dummy Objekt "Roll_Ess_Pos2
-Dieses im Widget als Objekt angegeben
-getestet wie lange der Rolladen insgesamt zum öffnen/schließen benötigt (24 sek.)Und folgendes Script im IOBroker unter Skripte erstellt:
on({id: 'fhem.0.RolloEss.Roll_Ess_Pos', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (parseFloat((obj.state ? obj.state.val : "")) == 0) { setState("fhem.0.RolloEss.off"/*RolloEss off*/, ((obj.state ? obj.state.val : "") == true)); } if (parseFloat((obj.state ? obj.state.val : "")) == 100) { setState("fhem.0.RolloEss.on"/*RolloEss on*/, ((obj.state ? obj.state.val : "") == true)); } if (parseFloat((obj.state ? obj.state.val : "")) != 0 && parseFloat((obj.state ? obj.state.val : "")) != 100) { if (parseFloat((obj.oldState ? obj.oldState.val : "")) > parseFloat((obj.state ? obj.state.val : ""))) { setState("fhem.0.RolloEss.off-for-timer"/*RolloEss off-for-timer*/, parseFloat((24 * (((obj.oldState ? obj.oldState.val : "") - (obj.state ? obj.state.val : "")) / 100)))); } if (parseFloat((obj.oldState ? obj.oldState.val : "")) < parseFloat((obj.state ? obj.state.val : ""))) { setState("fhem.0.RolloEss.on-for-timer"/*RolloEss on-for-timer*/, parseFloat((24 * (((obj.state ? obj.state.val : "") - (obj.oldState ? obj.oldState.val : "")) / 100)))); } } });
Soweit funktioniert jetzt auch alles, nun nur noch meine Frage kann ich das Skript auch direkt im Widget unter dem Reiter Script einfügen? Und wenn ja, hat es vorteile ein Script im Widget zu definieren oder macht es keinen unterschied?
-
@marv085 sagte:
kann ich das Skript auch direkt im Widget unter dem Reiter Script einfügen?
Nein, es werden Funktionen des Javascript-Adapters verwendet.
-
Ok danke, soweit funktioniert jetzt auch alles.
-
@marv085
Das kennst du?
https://fhem.de/commandref.html#SOMFYdefineGruß LausiD
-
Ok dann muss ich vermutlich in fhem nochmal nachjustieren. Denn "pos" hat bisher nicht funktioniert... So könnte ich mir natürlich das Skript im Iobroker sparen. Danke!
-
@marv085 sagte in Rollo über hq widget steuern:
Denn "pos" hat bisher nicht funktioniert...
in FHEM oder in ioBroker?
kann sein, dass der State in ioB über die Objekte "nur" nicht beschreibbar ist
-
Ne auch in fhem nicht. Muss vermutlich die Attribute usw. nochmal korrekt setzen. Werde das gleich heute Abend nochmal testen.
-
@marv085
Grundsätzlich gehen im ioBroker auch nur die Funktionen die in FHEM möglich sind.
Auf die Schnelle gesagt musst du in FHEM die 4 Attribute drive-down-time und drive-up-time mit einer Zeit anlegen. Danach sollte pos in FHEM und ioBroker funktionieren.
Gruß
LausiD -
Hallo @marv085, genauso was habe ich gesucht!
Wo (Fhem/IOBroker) und wie hast Du das Dummy Objekt Roll_Ess_pos2 angelegt?
Ich vermute mal Du hast ein Objekt im IOBroker angelegt.Der Name ist Roll_Ess_Pos2, aber was für einen Typ brauche? Datenpunkt, Kanal oder Gerät?
Datenpunkt würde ich ausschließen, bleibt also Kanal oder Gerät. Was ist den richtig? -
Ich war falsch angemeldet..... Frage bleibt
-
@keihuli das Objekt ist als Datenpunkt im Iobroker angelegt. Ich benötigte ja nur einen Wert mit dem ich dann die einzelnen Objekte (On, Off,In for timer...) steuern kann. Der richtige Weg für den somfy Rollo in Fhem ist allerdings wie zuvor beschrieben, wenn die Attribute in Fhem richtig definiert wurden benötigt man im Iobroker kein Skript, sondern kann das ganze über den "pos" Wert steuern. (Auch über das HQ shutter Widget)
-
Hmmm, Danke.
Mit der Position des Rollos kann ich jetzt im Widget steuern.... Leider funktioniert das generell auf und ab noch nicht... Morgen ist auch noch ein Tag...Achso ich nutze kein Somfy sonder es ist das gute alte FS20....
Gruß
-
@marv085
Geht die Steuerung mit pos nach Anlage der 4 zusätzlichen Attribute ? Ich habe leider kein Somfy zum TestenWenn du Zeit und Lust hast wäre es cool wenn du den FHEM Adapter über github zum Test aktualisierst...
Danke und Gruß
LausiD -
Bin die Woche geschäftlich unterwegs. Aber kann ich am Wochenende machen.