Ja, Rolläden sind ein bisschen komplizierter, weil man ja eben nicht den gewünschten Zustand angeben (wie bei einem Dimmer, % Helligkeit) kann, sondern nur Fahrbefehle (auf, ab, stop)
Aber die P44 hat intern einen (ziemlich aufwendigen) Mechanismus, der aus den Szeneneinstellungen für Position und Lamellenwinkel Fahrbefehle ausrechnet. Diese kann man auch über die external device API anfordern, was dann die Implementation vereinfacht. Das geht über die "move"-Eigenschaft der init-message (s. auch Doku dazu hier:
{
"message": "init",
"output": "shadow",
"kind": "jalousie",
"name": "Mein Rolladen",
"colorclass": 2,
"group": 2,
"move": true,
}
Das "move":true
bewirkt, dass die Device-Implementation keine Kanal-Sollstellungen (channel-message) bekommt, sondern eben Fahrbefehle (move-message), s. Details hier.
Die Implementation muss sich also nur um die Umsetzung dieser move-message in Shelly-Befehle kümmern, etwa so:
// Konfiguration
// - IP des Shelly
var shellyip = "162.168.xxx.xxx"
// Verarbeiten von Schaltbefehlen, die von der P44/dS/matter-Seite kommen
on (message()) as m {
// P44 meldet eine Änderung am Gerätestatus, wegen "move":true in der initmessage
// sind das immer *move-messages*:
if (m.message=="move" && m.index==0) {
// Neuer Fahrbefehl: direction: 0=stop, -1=ab, 1=auf
geturl(format('http://%s/roller/0?go=%s', shellyip, if(m.direction==0, 'stop', if(m.direction<0, "close", "open"))))
}
}
Ich habe selber gerade keinen Jalousie-Shelly zum Testen, aber so sollte das funktionieren.
Da es auf diese Weise keinerlei Rückmeldungen gibt, müssen die Fahrzeiten der Rolladens oder der Jalousie bekannt sein, damit die Rolladenlogik die richtigen Fahrbefehle in den richtigen Zeitabständen absetzen kann.
Standardmässig ist eine Öffnungszeit von 54 Sekunden (von ganz geschlossen bis ganz offen) und eine Schliesszeit von 51 Sekunden (etwas weniger, weil der Motor weniger belastet ist beim Ausrollen) eingestellt, das passt so ca. auf viele Standardfälle.
Diese zwei Zeiten lassen sich aber einstellen: Mit gedrückter Cmd(Mac)- bzw. Ctrl(PC)-Taste auf den "i"-Button des Schattengeräts in der Geräteliste clicken. Es öffnet sich der "property tree". Darin die "outputSettings" aufklappen mit Click auf das blaue Dreieck.
Neben openTime
und closeTime
gibts noch angleOpenTime
/angleCloseTime
, das sind die Zeiten für das Umklappen der Lamellen von Offen auf Geschlossen und umgekehrt.
Ändern lassen sich diese Werte mit Cmd(Mac)- bzw. Ctrl(PC)-click auf den Wert, es öffnet sich jeweils ein Fenster mit einem vorbereiteten Schreibbefehl, wo nur noch der Platzhalter _new_value_
durch den neuen Wert ersetzt werden muss und dann der Knopf "Send JSON to vDC API" gedrückt.
Aber 8-ung: mit dem Tweaking-Window kann man auch Dinge verstellen, die nachher den Betrieb stören, also nicht einfach wild ausprobieren… 😉