Rolladensteuerung mit "at"

Begonnen von curryman, 27 Februar 2017, 21:48:38

Vorheriges Thema - Nächstes Thema

curryman

Ich habe mich nun seit ein paar Tagen mit FHEM beschäftigt und bin somit Anfänger, komme aber eigentlich ganz gut zurecht. Ich betreibe FHEM auf einem Raspberry Pi B unter archlinux. Auch hier keine wirklichen Probleme.

Die Einrichtung meiner vorhandenen DuoFern Rollladen war ebenfalls einfach und problemlos. Nur habe ich einen Funktionswunsch welcher sich scheinbar nicht zu einfach verwirklichen lässt.
Aber zuerst den ersten Schritt. Ich möchte, dass die Rollläden im Schlafzimmer Dämmerungsgesteuert, nicht vor einer bestimmten Zeit aber spätestens zu einer bestimmten Zeit, hochfahren. Hierzu habe ich twilight ausgewählt was auch gut funktioniert.
An den Wochenenden würde ich aber gerne die Rollläden geschlossen haben und diese dann manuell öffnen wenn ich aufgestanden bin. Auch das ist mit if und $we einfach zu realisieren. Die Kommandozeile sieht dann wie folgt aus:

  define morgens_schlafzimmer at *{twilight("T","sr_civil","6:30","9:00")} { if (!($we)) { fhem("set DUOFERN_XXXXXX up"); } }

Nun nähern wir uns dem Problem. Sollte ich am Wochenende nicht zu hause sein würde der Rollladen den ganzen Tag geschlossen bleiben. Natürlich könnte ich generell um 11:00 den Rollladen jeden Tag öffnen lassen, was eine aus meiner Sicht zwar funktionieren würde, aber nicht wirklich elegant wäre, weil dazu ein zweites Kommando nötig wäre.
Ich dachte da eher an ein else welches dann am Wochenende den Rolladen hochfahren lassen würde. Aber dazu müsste ein Konstrukt wie

  else { fhem("at 11:00 set DUOFERN_XXXXXX up")}

möglich sein. Die Struktur von at ist nun mal define <name> at <timespec|datespec> <command> und at allein geht nicht.

Jetzt die Frage, gibt es ein reines Kommando welches veranlasst, dass zu einer bestimmten Zeit eine Aktion ausgeführt wird ohne etwas zu definieren, was im else Zweig, wie von mir angedacht, verwendet werden könnte?






Otto123

Hi,

ein define at ... -> https://fhem.de/commandref_DE.html#at
setzt ein einmaliges at, das ist schon genau das was Du willst. Du musst eben nur define im Befehl verwenden.

Eventuell gibt es elegantere Konstrukte.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

curryman

Vielen Dank für die schnelle Antwort. Ich fürchte so einfach ist es nicht.
Zum einem wäre dann die Doku falsch sie verlangt klar define <name> at <timespec|datespec> <command>

Da probieren über studieren geht der folgende Versuch:

define at 11:00:00 set DUOFERN_492132 up  ==> Unknown module 11:00:00 ==> War irgendwie zu erwarten

define x at 11:00:00 set DUOFERN_492132 up  ==> o.k. war auch zu erwarten

Wie befürchtet, leider keine Lösung, dennoch vielen Dank.



Otto123

Naja mein define .... war kein kompletter Code  :-X

Und warum ist define <name> at keine Lösung?

Ein einmaliges at wird nicht gespeichert, das kannst Du jeden Tag wieder so definieren.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wuppi68

Zitat von: curryman am 27 Februar 2017, 22:24:48
Vielen Dank für die schnelle Antwort. Ich fürchte so einfach ist es nicht.
Zum einem wäre dann die Doku falsch sie verlangt klar define <name> at <timespec|datespec> <command>

Da probieren über studieren geht der folgende Versuch:

define at 11:00:00 set DUOFERN_492132 up  ==> Unknown module 11:00:00 ==> War irgendwie zu erwarten

define x at 11:00:00 set DUOFERN_492132 up  ==> o.k. war auch zu erwarten

Wie befürchtet, leider keine Lösung, dennoch vielen Dank.

define RolloImmerAufUm11 at *11:00:00 set DUOFERN_492132 up

so würde ich es machen
FHEM unter Proxmox als VM

Otto123

Zitat von: Wuppi68 am 28 Februar 2017, 09:16:45

define RolloImmerAufUm11 at *11:00:00 set DUOFERN_492132 up

so würde ich es machen
Aber so wird es doch ein "jedem Tag" at, das wollte er ja nicht. Ich würde den Stern weglassen.
{ if (!($we)) fhem("set DUOFERN_XXXXXX up") else  fhem("define RolloAufUm11 at 11:00 set DUOFERN_XXXXXX up")}

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

choenig

Hi,

OT: Ein kleiner Tipp bezüglich der DuoFern Rolladen:

verwende "dawn" anstelle von "up" (und "dusk" anstelle von "down"):


fhem("set DUOFERN_XXXXXX dawn")


Das hat den Vorteil, dass Du die Dämmerungsfunktionen im Aktor abschalten kannst für einzelne Rolladen und so z.B. dafür sorgen kannst, dass sie Abends nicht runter oder morgens nicht hochgehen sollen.

LG
Christian

curryman

Vielen Dank für die vielen Anregungen. Sorry das mit dem "define at" hatte ich falsch verstanden. Aber ich denke den Vorschlag mit  fhem("define RolloAufUm11 at 11:00 set DUOFERN_XXXXXX up") werde ich übernehmen. Ich glaube ich muss mich erst daran gewöhnen mit "vielen" Definitionen zu arbeiten. Aber ich hatte ja erst ne knappe Woche mit FHEM.

Das mit dem "dawn" und "dusk" erschließt sich mir jetzt nicht so. Denn mit "twilight" bin ich soweit zufrieden. Oder übersehe ich hier etwas.

Ich habe nicht vor Sensoren usw. von Rademacher einzusetzen, mein Plan war eher mit günstigen aber guten Sensoren, Schaltern usw. zu arbeiten. Auch Selbstbau ist kein Problem, zumal ich hier auf durchaus reichhaltige Erfahrung zurückgreifen kann und mir die entsprechenden Projekte hier im Forum ansehen werde.




choenig

Hi,

Zitat von: curryman am 28 Februar 2017, 20:42:50
Das mit dem "dawn" und "dusk" erschließt sich mir jetzt nicht so. Denn mit "twilight" bin ich soweit zufrieden. Oder übersehe ich hier etwas.

Ich habe nicht vor Sensoren usw. von Rademacher einzusetzen, mein Plan war eher mit günstigen aber guten Sensoren, Schaltern usw. zu arbeiten.

Das eine hat mit dem anderen nichts zu tun. Du musst keine zusätzlichen Sensoren von Rademacher einsetzen, um die dusk- und dawn-Funktionalität zu nutzen.

Ich weiss nicht, welche Aktoren Du hast. Wenn Du nur die Funk-Rolladenmotoren hast, macht es vermutlich wenig unterschied, ob Du up oder dawn verwendest. Hast Du jedoch Aktoren, die Buttons zum aktivieren/deaktiviern der Automatiken im Aktor haben (Morgendämmerung, Abenddämmerung, Sonnenfunktion, Zeitfunktion), kannst du das über den Aktor deaktivieren und dann ignoriert er die Aufrufe von dawn einfach, ein up würde den Rolladen aber hochfahren.

Über ein
set Rolladen dawnAutomatic off
kannst Du dann auch einzelne Rolläden aus der morgendlichen Automatik (temporär) herausnehmen.

Zusammengefasst: Die Aktoren haben halt selber schon eine Möglichkeit, Automatiken zu aktivieren und zu deaktivieren, ganz unabhängig von FHEM und von anderen Rademacher Sensoren. Und wenn Du für die Automatisierung in FHEM eher dusk statt down und dawn statt up verwendest, bekommst die dieses Extrakontrolle geschenkt.

Ein Beispiel aus meinem Setup: Ich habe einen Rolladenmotor an der Terrassentür. Der dort angebrachte Homematik-Fenstersensor deaktiviert beim öffnen der Tür die Automatik im Rademacher Aktor (set RolladenTuer manualMode on). Beim Schliessen der Tür wird wieder (set RolladenTuer manualMode off) gemacht. Das sorgt dafür, dass alle Befehle, die über die Automatik-Funktionen abgesetzt werden, ignoriert werden (dusk, dawn, up timer, down timer, position 25 timer, rain, wind, ...). Und so geht der Rolladen nie runter, wenn die Tür geöffnet ist.

Puh, alle Klarheiten beseitigt?

LG
Christian :)

curryman

Jepp, alles klar. Aktuell habe ich nur DuoFern Rollladenmotore womit es für mich, wie schon angemerkt, "noch" keinen Sinn macht. Aber die Anregung mit der Terrassentür ist sehr gut, da ich aktuell diese nicht via FHEM steuere sondern über die Fernbedienung von Rademacher. Da meine Frau zum Rauchen raus geht schließt sie den Rollladen mit der Fernbedienung. Ich würde es schon gerne auch automatisieren aber es wäre ziemlich ungünstig für mich würde dann der Rollladen runter fahren wenn sie auf der Terrasse ist.
Mit deinem Vorschlag werde ich das sicher vermeiden könne und so auch mögliche Beziehungsprobleme  ;)