Verschiedene Automatikmodi für Rolladensteuerung

Begonnen von musicnrw, 15 Mai 2017, 15:12:21

Vorheriges Thema - Nächstes Thema

musicnrw

Hallo liebe FHEM-Gemeinde.
ich bastle gerade an einer nächsten AUsbaustufe meiner Rolladensteuerung.
Ich möchte drei verschiedene Automatik-Modi abbilden:
1) Automatik mit Astrofunktion, d.h. die Rolladen fahren entsprechend der Sonnenauf- und Untergangszeiten des jeweiligen Tages rauf oder runter die mir Twilight liefert
2) Automatik ohne Astrofunktion, d.h. die Rolladen fahren zu fest definierten Zeiten rauf bzw. runter ohne dass ich eingreife
3) Manuell, d.h. ich gebe händisch den Befehl, dass sich irgendwas bewegt, nichts passiert automatisch..logisch ;-)

Den jeweiligen Modus stelle ich ein über die Auswahl in einer Auswahlliste im Tablet UI ein. Hier kann ich zwischen den drei Automatikmodi wählen(M, AOA, AMA)
Mit dieser Auswahl beschreibe ich eine Dummy-Variable mit dem Namen "Moduswahl" die ich zuvor mit "define Moduswahl dummy" angelegt habe.

Moduswahl hat also entweder den Wert "M" oder "AOA" oder "AMA"

Folgender Code sollte meiner Meinung nach für die Umsetzung sorgen:
define 1_Rollo_buero_auto DOIF
([Moduswahl:state eq "AMA"] and [{twilight("LichtWetter","ss_civil","21:00","22:00")}]) (set 1_Rollo_buero 0)
DOELSEIF
([Moduswahl:state eq "AMA"] and [{twilight("LichtWetter","sr_civil","06:00","08:00")}|8]) (set 1_Rollo_buero 100)
DOELSEIF
([Moduswahl:state eq "AMA"] and [{twilight("LichtWetter","sr_civil","08:30","09:00")}|7]) (set 1_Rollo_buero 100)
DOELSEIF
([Moduswahl:state eq "AOA"] and [("22:00")]) (set 1_Rollo_buero 0)
DOELSEIF
([Moduswahl:state eq "AOA"] and [("06:00")|8]) (set 1_Rollo_buero 100)
DOELSEIF
([Moduswahl:state eq "AOA"] and [("09:00")|7]) (set 1_Rollo_buero 100)

   
Funktioniert das so?

Vielen Dank für Eure Hilfe!!
Thomas

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

musicnrw

Das ist ja schonmal ne klare Aussage.
Ich vergass nach konstruktiven Vorschlägen zu fragen, die meine Idee zum Laufen bringen....

amenomade

 ;) ;)
Hab ich auch vermutet.

Also, erstmal Syntax:
-  () für Konditionen oder Fhem-Befehle
-  [] fürs Lesen eines States oder Readings (muss aber nicht den Rest "eq blabla" enthalten, das gehört zur Kondition!)
- {} für Perl Kode

Dann musst Du definieren, was schalten soll: nur die Änderung des Modus, oder nur die Zeit, oder beide. Ich nehme an beide.

Und was ist der Sinn von "|8" in "{twilight("LichtWetter","sr_civil","06:00","08:00")}|8" ?

Gruß

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Amenophis86

#4
Zitat von: musicnrw am 15 Mai 2017, 15:12:21
Funktioniert das so?

1. Warum versuchst du es nicht einfach? Du kannst selten in FHEM wirklich was kaputt machen und wenn du Angst hast, dass was kaputt geht kannst du die backup Funktion vorher nutzten. Und der große Vorteil, dass dir meist ein Fehler (im Log oder direkt im Modul) ausgegeben wird, welcher dir weiter hilft zu finden was falsch ist ;)
2. Auf den ersten Blick ist deine Definition fast richtig. Genauer solltest du dir jedoch nochmal die Syntax insbesondere für die genaue Uhrzeit (https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung) und Readings generell ansehen.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Amenophis86

Zitat von: amenomade am 15 Mai 2017, 15:44:57
Und was ist der Sinn von "|8" in "{twilight("LichtWetter","sr_civil","06:00","08:00")}|8" ?

Die Unterscheidung zwsichen Wochenende/Feiertag und Arbeitstag. Das hat er richtig gemacht :)
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

amenomade

Vorschlag (nicht getestet):
define 1_Rollo_buero_auto DOIF
( [Moduswahl] eq "AMA" and [{twilight("LichtWetter","ss_civil","21:00","22:00")}]) (set 1_Rollo_buero 0)
DOELSEIF
([Moduswahl] eq "AMA" and  [{twilight("LichtWetter","sr_civil","06:00","08:00")}|8]) (set 1_Rollo_buero 100)
DOELSEIF
([Moduswahl] eq "AMA" and [{twilight("LichtWetter","sr_civil","08:30","09:00")}|7]) (set 1_Rollo_buero 100)
DOELSEIF
([Moduswahl] eq "AOA" and [22:00]) (set 1_Rollo_buero 0)
DOELSEIF
([Moduswahl] eq "AOA" and [06:00|8]) (set 1_Rollo_buero 100)
DOELSEIF
([Moduswahl] eq "AOA" and [09:00|7]) (set 1_Rollo_buero 100)


Ja, sorry für |. Ich hatte durch Mischung von (){}[]"" gedacht, Du willst irgendwelches "OR" einbauen.

Eigentlich könnten die Zeitbedingungen 2 & 3, so wie auch 5 & 6, mit "or" kombiniert werden,


Gruß
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

KernSani

Zwei Gedanken dazu:
1. Soll eine Änderung von "Moduswahl" auch triggern? Wenn nicht, dann [?Moduswahl]
2. Zwischen 08:30 und 09:00 den Sonnenaufgang noch zu berücksichtigen halte ich für relativ sinnbefreit, das dürfte für grob überschlagen 30 Tage im Jahr eine Rolle spielen, also mit Glück 4 oder 5 Wochenenden ;-)


Wenn's funktioniert (und m.E. müsste es das ) bitte auf gelöst setzen (Subject des ersten Posts ändern).
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

amenomade

Zitat von: amenomade am 15 Mai 2017, 15:44:57
Dann musst Du definieren, was schalten soll: nur die Änderung des Modus, oder nur die Zeit, oder beide. Ich nehme an beide.

;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

KernSani

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Und? Wenn's funktioniert bitte auf [Gelöst] setzen (Subject des ersten Posts ändern)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...