Rollotron DuoFern in openHAB

gray Venetian blind hanging on a window

UPDATE! Mittlerweile ist ja Openhab 3 erhältlich. Die unten beschriebene Lösung funktioniert nur mit Radmachers Rollotron und openHAB 2.8. Weitere Infos zur Umsetzung in dem neuen System findet ihr hier.

Leider ist es momentan so, daß es kein Binding für die Einbindung von Rademachers Rollotron DuoFern in die openHAB-Welt gibt. Jedoch gibt es die Möglichkeit,  sich das Ganze auch selbst mit einfachen Mitteln zu basteln. Voraussetzung dafür ist allerdings, daß man auf die Rückantwort der Geräte verzichten kann, denn in meiner hier gezeigten Lösung gibt es nur die Möglichkeit der Bedienung. In welchem Zustand sich die einzelnen Aktoren befinden, erkennt das System nicht. Für mich im Alltag nicht kritisch und deswegen eine nutzbares Szenario, welches ich gerne vorstelle.

Diese Lösung basiert darauf, daß man bereits den Rademacher Homepilot 2 ordnungsgemäß installiert hat und einen oder mehrere Gurtwickler (beispielsweise den RolloTron Standard DuoFern) dort angemeldet hat. Außerdem sollte euer Homepilot mit der aktuellen Firmware-Version 5 laufen.

Homepilot per Api auslesen

Wie man schön im Internet nachlesen kann, hat der Rademacher Homepilot 2 eine JSON-Api, welche weitgehend undokumentiert ist. Findige Nutzer konnten allerdings einige Befehle herausfinden.

Unter folgendem Befehl findet man alle gekoppelten Geräte:

http://HOMEPILOT-IP/v4/devices

Gebt diese Url mit der entsprechenden IP eures Homepilot in den Browser ein, und ihr bekommt die Ausgabe eurer gesamten Rademacher-Geräte mit dessen Status. Wichtig ist, daß ihr euch hier die Device-ID („did“) der gewünschten Rolläden notiert. Diese werden später benötigt, um die Geräte zu schalten.

Rollotron und openHAB verbinden

Jetzt geht es rüber zu openHAB. Erstellt in eurer Items-Datei den folgenden Eintrag:

Number Rolladen_WZ_Pos "Rolladen Wohnzimmer"

In diesem Eintrag wird für den jeweiligen Rolladen (als Beispiel hier im Wohnzimmer) zukünftig die aktuelle Position gespeichert. Diese hat den Wert 0 bei komplett geöffneten Rolladen und den Wert 100 bei komplett geschlossenen Rolladen.

Als Nächstes erstellt ihr die folgende Regel, beispielsweise als „rolladen.rules“ im entsprechenden Rules-Ordner:

rule "Rolladen Wohnzimmer"
when
Item Rolladen_WZ_Pos received update
then
val String URL = "http://HOMEPILOT-IP/devices/DID"
var Number position = Rolladen_WZ_Pos.state
var String data = '{"name": "GOTO_POS_CMD", "value": ' +position+ '}'
sendHttpPutRequest(URL, contenttype, data, 5000)
end

Diese Regel bewirkt, daß zukünftig bei Veränderung des Wertes „Rolladen_WZ_Pos“ die entsprechende Regel ausgeführt wird, und der Rolladen in die angegebene Position fährt. Wichtig ist auch hier, daß die IP-Adresse des Homepilot und die entsprechende DID noch eingetragen wird.

So, nun ist fast alles fertig. Um jetzt das Ganze noch per Hand zu bedienen, kann man in die Sitemap-Datei folgenden Eintrag hinzufügen:

Slider item=Rolladen_WZ_Pos label="Wohnzimmer" icon="rollershutter"

Mit diesem Slider könnt ihr dann nach Belieben den Rolladen hoch- und runterfahren lassen. Natürlich lassen sich auch beliebige weitere Regeln erstellen, die den Positionswert beispielsweise anhand von Uhrzeit, Helligkeit oder anderen Faktoren ändern.

In

3 Antworten

  1. Hallo, vielen Dank für diese Info! Ich habe dies exakt übernommen, bekomme aber einen Fehler:

    2020-07-20 18:27:27.024 [ERROR] [ntime.internal.engine.RuleEngineImpl] – Rule ‚Rolladen Wohnzimmer‘: The name ‚contenttype‘ cannot be resolved to an item or type; line 8, column 25, length 11

    Die Url der DID 2 geht im Browser auf – also die DID scheint zu stimmen: http://192.168.1.55/devices/2

    Haben Sie eine Idee, was das sein kann?
    Freundliche Grüße aus Südhessen!

  2. ich glaube ich habe es gefunden – Ihr Code ist nicht 100% korrekt. Mit folgender Zeile klappt es:

    sendHttpPutRequest(URL, ‚contenttype‘, data, 5000)

    –> also contenttype in Hochkommas setzen.

  3. Hallo Kai,
    erst einmal muss ich mich dafür entschuldigen, daß ich mich so spät melde: War leider etwas länger unterwegs…

    Ich habe nochmal in meinem Code nachgeschaut: Bei mir funktioniert es auch ohne die Hochkommas. Woran das liegt, kann ich leider nicht sagen. Eventuell hat es etwas mit der Version von Openhab oder vom Rollotron-Gateway zu tun.

    Viele Grüße aus Mainz,
    Henning