FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: münster am 09 Mai 2015, 12:39:20

Titel: Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: münster am 09 Mai 2015, 12:39:20
Hallo,

Ich hätte gerne das meine Rollos dem Sonnestand folgend zur Beschattung automatisch hoch und runter fahren.

Ich habe auch schon was in der fhem.cfg gebastelt womit es klappen könnte. Als erstes habe ich die Rollos in der Ost, Süd und Westseite zusammengefasst und mit den at Befehl sollen sie dann automatisch zur gegebenen Zeit hoch und runter fahren. Das sieht schon sehr gut aus jetzt hätte ich gerne noch einen Button auf meine FHEM App womit ich die Steuerung An und Aus Schalten kann. Sprich ich weiss heute benötige ich die Beschattung nicht dann kann ich die ganze Steuerung aussetzen und wenn ich weiss heute brennt die Sonne die Steuerung wieder aktivieren.

Hier der Auszug aus meiner fhem.cfg:

################################
#Beschattung im Sommer                                    #
################################

#Westseite##############################################################
define Westseite_Haus structure Westseite_Beschattung Kind_Rollo Schlaf_Rollo WZ_RolloLinks WZ_RolloRechts
attr Westseite_Haus room Westseite
define Westseite_Beschattung_runter at *16:30:00 set Westseite_Haus 65
define Westseite_Beschattung_hoch at *19:30:00 set Westseite_Haus off

#Suedseite#############################################################
define Suedseite_Haus structure Suedseite_Beschattung Kue_Rollo
attr Suedseite_Haus room Suedseite
define Suedseite_Beschattung_runter at *12:30:00 set Suedseite_Haus 65
define Suedseite_Beschattung_hoch at *15:30:00 set Suedseite_Haus off

#Ostseite##############################################################
define Ostseite_Haus structure Ostseite_Beschattung Bad_Rollo Buero_Rollo Gaeste_WC_Rollo HWR_Rollo Volker_Rollo
attr Ostseite_Haus room Ostseite
define Ostseite_Beschattung_runter at *08:30:00 set Ostseite_Haus 65
define Ostseite_Beschattung_hoch at *11:00:00 set Ostseite_Haus off

#gibt noch Fehlermeldung################################################
#define Gesamte_Wohnung structure Alle_Rollos Bad_Rollo Buero_Rollo #Gaeste_WC_Rollo HWR_Rollo Kind_Rollo Kue_Rollo Schlaf_Rollo Volker_Rollo #WZ_RolloLinks WZ_RolloRechts
#attr Gesamte_Wohnung room Wohnung


Ich habe mal Spaßeshalber versucht alle Rollos im Haus zusammenzufassen falls mal ein Regenschauer kommt und die Fenster sind frisch geputzt nur leider funktioniert der letzte abschnitt nicht richtig und fhem stürzt nach einiger zeit und 100% Cpu Auslastung ab. Jemand eine Idee woran das liegen könnte?

Gruß Volker
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: münster am 26 Mai 2015, 17:53:59
Keiner eine Idee?  ;)
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: mchris am 26 Mai 2015, 19:20:53
Du kannst ein dummy anlegen und im at den Wert des dummys abfragen. Bei entsprechendem dummy Wert wird geschalten oder eben nicht.

Gruß, chris
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Damian am 26 Mai 2015, 20:08:43
Zitat von: münster am 26 Mai 2015, 17:53:59
Keiner eine Idee?  ;)

http://fhem.de/commandref_DE.html#DOIF

Dort nach Beschattungssteuerung suchen.

Gruß

Damian
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: münster am 27 Mai 2015, 16:34:21
Jo vielen Dank erst mal für die Hilfe.

Sollte ich es lieber mit "DOIF":

Anwendungsbeispiel: Beschattungssteuerung abhängig von der Temperatur. Der Rollladen soll runter von 11:00 Uhr bis Sonnenuntergang, wenn die Temperatur über 26 Grad ist. Temperaturschwankungen um 26 Grad werden mit Hilfe des wait-Attributes durch eine 15 minutige Verzögerung ausgeglichen.

define di_shutters DOIF ([sensor:temperature] > 26 and [11:00-{sunset_abs()}] (set shutters down) DOELSE (set shutters up)
attr di_shutters wait 900:900



oder mit "THRESHOLD"

Beispiele für Beschattungssteuerung:

Beispiel für einfache Beschattung im Sommer:

Zwischen 12:00 und 20:00 Uhr (potenzielle Sonnengefahr auf der Südseite) wird der Rolladen auf 30 % heruntergefahren,
wenn die Raumtemperatur über 23 Grad ist und die Sonne scheint. Im Winter, wenn die Zimmertemperatur niedriger ist (< 23),
will man von der Sonnenenergie profitieren und den Rollladen oben lassen.

define TH_shutter_room THRESHOLD T_room AND sun:state:on shutter_room|set @ 30||2
define di_shutter DOIF ([12:00-20:00]) (set TH_shutter desired 23) DOELSE (set TH_shutter desired 30)


realisieren ? Woher weiß FHEM beim THRESHOLD Beispiel das "sun:state:on" ist also die sonne scheint?

Gruß Volker
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Damian am 27 Mai 2015, 18:16:58
Zitat von: münster am 27 Mai 2015, 16:34:21
Jo vielen Dank erst mal für die Hilfe.

Sollte ich es lieber mit "DOIF":

Anwendungsbeispiel: Beschattungssteuerung abhängig von der Temperatur. Der Rollladen soll runter von 11:00 Uhr bis Sonnenuntergang, wenn die Temperatur über 26 Grad ist. Temperaturschwankungen um 26 Grad werden mit Hilfe des wait-Attributes durch eine 15 minutige Verzögerung ausgeglichen.

define di_shutters DOIF ([sensor:temperature] > 26 and [11:00-{sunset_abs()}] (set shutters down) DOELSE (set shutters up)
attr di_shutters wait 900:900



oder mit "THRESHOLD"

Beispiele für Beschattungssteuerung:

Beispiel für einfache Beschattung im Sommer:

Zwischen 12:00 und 20:00 Uhr (potenzielle Sonnengefahr auf der Südseite) wird der Rolladen auf 30 % heruntergefahren,
wenn die Raumtemperatur über 23 Grad ist und die Sonne scheint. Im Winter, wenn die Zimmertemperatur niedriger ist (< 23),
will man von der Sonnenenergie profitieren und den Rollladen oben lassen.

define TH_shutter_room THRESHOLD T_room AND sun:state:on shutter_room|set @ 30||2
define di_shutter DOIF ([12:00-20:00]) (set TH_shutter desired 23) DOELSE (set TH_shutter desired 30)


realisieren ? Woher weiß FHEM beim THRESHOLD Beispiel das "sun:state:on" ist also die sonne scheint?

Gruß Volker

DOIF ist wesentlich flexibler als THRESHOLD. Beim THRESHOLD-Beispiel wird dein Device namens "sun" vorausgesetzt, welches den Zustand "on" hat, wenn die Sonne scheint.

Gruß

Damian
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: münster am 27 Mai 2015, 18:58:40
Das wäre meine erste Überlegung:

define Westseite_Haus_Beschattung DOIF ([sensor:temperature] > 26 and [09:00-12:00] (set Westseite_Haus 35) DOELSE (set Westseite_Haus on)
attr Westseite_Haus_Beschattung wait 900:900 


muss ich hier noch etwas ändern?: "[sensor:temperature]" mein Thermometer  heisst: "Thermometer_au"

Gruß Volker
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Damian am 27 Mai 2015, 21:21:51
Zitat von: münster am 27 Mai 2015, 18:58:40
Das wäre meine erste Überlegung:

define Westseite_Haus_Beschattung DOIF ([sensor:temperature] > 26 and [09:00-12:00] (set Westseite_Haus 35) DOELSE (set Westseite_Haus on)
attr Westseite_Haus_Beschattung wait 900:900 


muss ich hier noch etwas ändern?: "[sensor:temperature]" mein Thermometer  heisst: "Thermometer_au"

Gruß Volker

Dann musst du den natürlich statt "sensor" dort eintragen, ansonsten solltest du dir eine halbe Stunde Zeit nehmen und dir die Dokumentation zu DOIF durchlesen, um das Konzept des Moduls zu verstehen, wenn du es benutzen willst.

Gruß

Damian


Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: dieda am 27 Mai 2015, 22:12:11
Nur mal so ein Gedanke, da könnte man doch noch Twighlight mit einbauen. Dann geht der Laden nur noch in der Zeit von x bis y runter, wenn die Raumtemperatur über 26 Grad ist und die Sonne scheint.
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Mumpitz am 27 Mai 2015, 22:51:01
Die andere Möglichkeit ist, dass du es so machst wie ich. Ich habe einen dummy Namens Auto_Beschattung. Wenn der auf On ist dann fahren die Rollläden in der definierten Zeit runter. Das aber nur wenn das Wetter das nötig macht. Die Wetterdaten beziehe ich von Yahoo mit dem Wettermodul.
Besser geht es in meine Augen fast nicht... So entfallen deine ein und ausschalten der Beschattubg!

Hier der Link zu meiner Lösung:
http://forum.fhem.de/index.php/topic,12548.msg297398.html#msg297398

Gruß
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: t_enocean am 28 Mai 2015, 14:54:04
ZitatDas aber nur wenn das Wetter das nötig macht. Die Wetterdaten beziehe ich von Yahoo mit dem Wettermodul.

Ich habe zusätzlich auch openweather konfiguriert, bin aber mit den Vorhersagen nicht immer glücklich.

Sinnvoll finde ich aber auch das Twilight Modul. Ich steuere damit mit azimuth und elevation bei Sonne den Rolladen. Z.B. für den Rollladen im Westen sobald azimuth >  220 ist. Wenn im Winter die Sonne tief steht (elevation) geht der Rolladen nicht runter, da will man die Sonne ja im Zimmer haben.
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: dieda am 28 Mai 2015, 15:22:29
Zitat von: t_enocean am 28 Mai 2015, 14:54:04
Ich habe zusätzlich auch openweather konfiguriert, bin aber mit den Vorhersagen nicht immer glücklich.

Sinnvoll finde ich aber auch das Twilight Modul. Ich steuere damit mit azimuth und elevation bei Sonne den Rolladen. Z.B. für den Rollladen im Westen sobald azimuth >  220 ist. Wenn im Winter die Sonne tief steht (elevation) geht der Rolladen nicht runter, da will man die Sonne ja im Zimmer haben.

Die Sache mit Azimuth interessiert mich. Twighlight liefert mir ja nicht alles was ich brauche. Wenn ich da noch die Himmelsrichtung des Fensters mit einbeziehen könnte... Das ändert sich ja leider auch immer im Laufe der Monate.
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: t_enocean am 28 Mai 2015, 19:18:32
Doch Twighlight liefert auch Winkel und Höhe.

Einfach bei xxxx und yyyy die eigenen Koordinaten eingeben. Mit stateFormat wird noch die Ausgabe von Sonnenauf/untergang/Winkel und Höhe formatiert.

define Sonne Twilight 47.xxxx 9.yyyy
attr Sonne stateFormat SA: sr <br/>SU: ss <br/>Winkel:azimuth °<br/> Höhe: elevation °


Und dann z.B. so

define DI_OG_R_Sz_Sonne_zu DOIF ([15:00-21:00] and [Sonne:azimuth] > 225 and [Sonne:elevation] < 50) (...)
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: dieda am 28 Mai 2015, 20:29:19
Danke, dass mit dem StateFormat muss ich mir dann noch anschauen.
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Otto123 am 01 Juli 2015, 12:27:57
Zitat von: Damian am 26 Mai 2015, 20:08:43
http://fhem.de/commandref_DE.html#DOIF

Dort nach Beschattungssteuerung suchen.

Gruß

Damian
Hallo Damian,

sag mal, fehlt in Deinem Beispiel in der Commandref nicht eine Klammer zu?
Zitatdefine di_shutters DOIF ([sensor:temperature] > 26 and [11:00-{sunset_abs()}] (set shutters down) DOELSE (set shutters up)
Also so:
Zitatdefine di_shutters DOIF ([sensor:temperature] > 26 and [11:00-{sunset_abs()}]) (set shutters down) DOELSE (set shutters up)

Bin ich zufällig drauf gestossen ...

Gruß Otto
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Damian am 01 Juli 2015, 12:33:06
Zitat von: Otto123 am 01 Juli 2015, 12:27:57
Hallo Damian,

sag mal, fehlt in Deinem Beispiel in der Commandref nicht eine Klammer zu?Also so:
Bin ich zufällig drauf gestossen ...

Gruß Otto

Das wird wohl so sein. Es wird dann beim nächsten Update aktualisiert.

Gruß

Damian
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Prof. Dr. Peter Henning am 01 Juli 2015, 12:54:10
Wieso zufällig ? Die Syntax ist ganz logisch aufgebaut, da muss man nicht per trial and error vorgehen.

LG
pah
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Otto123 am 01 Juli 2015, 13:25:57
Hallo pah,

mein zufällig bezog sich darauf, dass ich nicht die Commandref systematisch nach Fehlern absuche. Und auch nicht das Beispiel per Cut&Paste ausprobiert habe.  :D
Sondern gerade Anregungen zur Beschattung auf den Schirm geholt habe und ich schon dachte ich hatte Syntax verstanden. Habe ich ja auch  8)

Grüße aus der Sonne
Otto
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Damian am 01 Juli 2015, 15:35:18
Zitat von: Otto123 am 01 Juli 2015, 13:25:57
Grüße aus der Sonne
Otto

Bei diesem Wetter ist Beschattung offenbar ein aktuelles Thema  :)

Gruß

Damian
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Otto123 am 01 Juli 2015, 22:45:49
Zitat von: Damian am 01 Juli 2015, 15:35:18
Bei diesem Wetter ist Beschattung offenbar ein aktuelles Thema  :)
Hallo Damian,

soll ich Dir was sagen!? Ich habe das Thema seit mindestens einem halben Jahr auf dem Schirm - aber eben nicht weit genug vorn!  ::)
Ich habe im Herbst meine Lösung von der Homematic CCU1 auf FHEM umgebaut, da hatte ich die Beschattung auch gelöst. Naja, dann war erst mal Winter  8)

Aber dank DOIF war das heute eigentlich in wenigen Minuten umgesetzt. Der erste Schnellschuss für Ost, Süd und Westseite:

define di_Beschattung1 DOIF ([8:15 - 12:00]) ((set RolloGZR,RolloB.*,RolloAK 35)) DOELSE ((set RolloGZR,RolloB.*,RolloAK auf))
define di_Beschattung2 DOIF ([10:00 - 14:00]) (set RolloKUL 40) DOELSE (set RolloKUL auf)
define di_Beschattung3 DOIF ([12:00 - 18:00]) ((set RolloKUR,RolloWZL,RolloAZLL 40)) DOELSE ((set RolloKUR,RolloWZL,RolloAZLL auf))
define di_Beschattung4 DOIF ([14:00 - 18:00]) (set RolloWZR 40) DOELSE (set RolloWZR auf)

Die zweite Stufe mit Temperatur:

([SensorAussen:temperature] > 20 and [8:15 - 12:00])
([SensorAussen:temperature] > 21 and [10:00 - 14:00])
([SensorAussen:temperature] > 23 and [12:00 - 18:00])
([SensorAussen:temperature] > 24 and [14:00 - 18:00])

Ohne großartig Wetter und Licht einzubeziehen. Lief nach diesem Schema gut so, die letzten Jahre.  8)
Mal schauen, mit FHEM habe ich ja mehr Möglichkeiten.

Gruß Otto
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Bartimaus am 02 Juli 2015, 07:02:21
Ob bei uns zuhause die Sonne scheint, ermmitle ich durch den Differenzwert von zwei Aussensensoren. Einer ist im Schatten platziert, der andere "in der Sonne".
Ist der Wert > 4 Grad, gehe ich davon aus, das die Sonne scheint.

Damit habe ich die erste Bedingung erfüllt. Weiterhin frage ich via Twilight den Azimuth der Sonne ab, um die Beschattung der Fenster auf Süd und Westseite des Hauses getrennt zu steuern.

Last but not least sollte die Aussentemperatur über der Innentemperatur liegen. Nicht das ich im Winter die wärmende Sonne aussperre.

Alles schön verpackt in einem DOIF.
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Starkstrombastler am 02 Juli 2015, 08:00:24
@Bartimaus

Ich würde mich als DOIF-Anfänger über ein Posting des Codes freuen.
Danke
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Bartimaus am 02 Juli 2015, 09:26:04
Bitte:

(([myT:azimuth] > 120 and [myT:azimuth] < 234) <- Fenster Südseite
and [RolloSeite:state] eq "on" <- Zustandsabfrage des Rollos, "on" = oben
and [myT:elevation] > 40 <- Abfrage der Sonnenhöhe, im Winter ist der Wert max 20, verhindert auch das die Rollos sich nachts bewegen...
and [TempDiff:state:d] > 4  <- Wert wird in einem anderen DOIF ermittelt
and [Dach:temperature] > 25 <- Abfrage des Aussensenors
and [BeschattungEinAus:state] eq "on") <- Dummy mit dem ich entscheiden kann ob ich beschatten will oder nicht
(set RolloSeite off-for-timer
DOELSEIF ([myT:azimuth] > 234
and [RolloSeite:state] eq "off-for-timer 8"
and [BeschattungEinAus:state] eq "on")
(set RolloSeite on)
DOELSEIF ([RolloSeite:state] eq "off-for-timer 8"
and [TempDiff:state:d] < 4
and [BeschattungEinAus:state] eq "on")
(set RolloSeite on)


Das geht bestimmt eleganter, aber ich bin kein Programmierer.....
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Otto123 am 02 Juli 2015, 10:55:08
Zitat von: Bartimaus am 02 Juli 2015, 07:02:21
Ob bei uns zuhause die Sonne scheint, ermmitle ich durch den Differenzwert von zwei Aussensensoren. Einer ist im Schatten platziert, der andere "in der Sonne".
Ist der Wert > 4 Grad, gehe ich davon aus, das die Sonne scheint.
Geht auch :) - Ich fand mal die Lösung mit dem HM-WDS30-OT2-SM (einen Fühler mit Alu/weiß umwickelt den andern schwarz) sehr pfiffig. Ist unterm Strich auch ein zusätzlicher Sensor, aber als Bausatz preiswerter. Und man muss nicht rechnen 8)
ZitatLast but not least sollte die Aussentemperatur über der Innentemperatur liegen. Nicht das ich im Winter die wärmende Sonne aussperre.
Wobei das früh beim mir nicht zu realisieren ist. Um acht ist es draußen noch kälter aber ich will trotzdem vorbereitend beschatten. Ich nehme das ganze einfach nur im Sommer in Betrieb.

Grüß aus der Sonne  8)
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Bartimaus am 02 Juli 2015, 11:18:59
Durch diesen pfiffigen Sensor bin ich auf meine "Lösung" gekommen.

Rechnen mach DOIF für mich. Wert A - Wert B. Fertsch.

Weil die WetterWerte aus Twilight waren für mich zu ungenau.

Solange die Sonne bei uns nicht aufs Fenster scheint, brauch ich nicht zu beschatten. Da ist mir das einfallende Licht wichtiger.
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Otto123 am 02 Juli 2015, 12:14:42
Zitat von: Bartimaus am 02 Juli 2015, 11:18:59
Solange die Sonne bei uns nicht aufs Fenster scheint, brauch ich nicht zu beschatten. Da ist mir das einfallende Licht wichtiger.
Ich schließe die Rollos nur soweit (40 %) dass keine Sonne mehr reinscheint. Die Pflanzen haben dadurch genug Licht. Außerdem habe ich fast im gesamten Haus auch freie Sicht nach Norden.
Ich habe also auch genug Licht  8) 
Zitatand [BeschattungEinAus:state] eq "on") <- Dummy mit dem ich entscheiden kann ob ich beschatten will oder nicht
Den muss ich noch einbauen :)
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: dieda am 02 Juli 2015, 14:19:20
Meine Heizkörperventil senden mir die Raumtemperatur, dann noch das Twighlightmodul mit Azimuth und Wetter. Fertig.
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Thoffi1978 am 03 Juli 2015, 13:11:24
Hallo,
ich habe das ganze mal Erweitert und "eigentlich" klappt das auch.
Ich habe folgenden Code:
([Aussentemperatur:state] > 23 and [Tageshoechsttemperatur:state] > 28 and [Helligkeit:state] > 2000 and ([13:05 - 17:00])) (set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ 40) DOELSE (set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ on)
Wenn ich den Befehl
set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ 40
oder anstatt 40 mit on in fhem ausführe, reagieren alle Jalousien.
Im DOIF bekomme ich aber folgende Fehlermeldung:
set Jalo_SchlafZi: no value specified Jalo_Bad: Unknown command Jalo_Bad, try help. Jalo_WZ 40: Unknown command Jalo_WZ, try help.
Hier ein Auszug aus dem EventLog:


Events (Filter:.*):
2015-07-03 13:05:00 DOIF di_Beschattung_seite cmd_nr: 1
2015-07-03 13:05:00 DOIF di_Beschattung_seite cmd_event: timer_1
2015-07-03 13:05:00 DOIF di_Beschattung_seite error: set Jalo_SchlafZi: no value specified Jalo_Bad: Unknown command Jalo_Bad, try help. Jalo_WZ 40: Unknown command Jalo_WZ, try help.
2015-07-03 13:05:00 DOIF di_Beschattung_seite cmd_1
Woran kann diese Fehlermeldung liegen?

Vielen Dank
Hoffi
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Otto123 am 03 Juli 2015, 13:20:03
Wenn Du im DOIF  sowas machen willst
(set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ 40) DOELSE (set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ on)
Musst Du extra Klammern setzen
((set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ 40)) DOELSE ((set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ on))
wegen der Kommas ....

Der commandref Leser 8)

Grüße aus der Sonne
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Thoffi1978 am 03 Juli 2015, 13:25:39
Es funktioniert  :)

Vielen Dank
Das mit den Klammern holt mich irgendwie immer wieder ein..

Danke
Hoffi
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: MrMaxy am 03 Juli 2015, 21:33:33
Meiner Meinung nach kann man eine solche Beschattung nur mit einem Sonnensensor realisieren.
Leider gibt es keinen solchen Sensor der mit FHEM kompatibel ist.
Und auf Nachfrage bei eq-3 scheint es auch so, dass keiner daran interessiert ist.
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Bartimaus am 03 Juli 2015, 21:42:12
Das ist Dein gutes Recht auf Deine Meinung.
Aber meine Steuerung funzt tadellos, und IMO besser als nur mit Sensor, da ich mehrere Parameter zur Steuerung heranziehen kann :)
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: dieda am 03 Juli 2015, 22:59:30
Selbst mit dem Beschattungssensor ziehe ich mehrere Kriterien zu rate.
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Thoffi1978 am 03 Juli 2015, 23:11:02
Ich hab noch eine Frage.

Wenn ich die DEF ändere schaltet die Jalousie sobald ein State eingelesen wird.
Unabhängig von der Uhrzeit.
Ist in meiner DEF etwas falsch?
([Aussentemperatur:state] > 23 and [Tageshoechsttemperatur:state] > 28 and [Helligkeit:state] > 2000 and [13:45 - 17:00]) ((set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ 40)) DOELSE ((set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ on))

Hoffi
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: dieda am 03 Juli 2015, 23:29:09
Probier mal:
Zitat([Aussentemperatur:state] > 23 and [Tageshoechsttemperatur:state] > 28 and [Helligkeit:state] > 2000 and [?13:45 - 17:00]) ((set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ 40)) DOELSE ((set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ on))
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Damian am 03 Juli 2015, 23:38:07
Zitat von: Thoffi1978 am 03 Juli 2015, 23:11:02
Ich hab noch eine Frage.

Wenn ich die DEF ändere schaltet die Jalousie sobald ein State eingelesen wird.
Unabhängig von der Uhrzeit.
Ist in meiner DEF etwas falsch?
([Aussentemperatur:state] > 23 and [Tageshoechsttemperatur:state] > 28 and [Helligkeit:state] > 2000 and [13:45 - 17:00]) ((set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ 40)) DOELSE ((set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ on))

Hoffi
Durch Änderung der Definition wird das Modul initialisiert (der letzte Zustand wird gelöscht). Damit führt das nächste Event zu einer Ausführung eines Zweiges, der zutrifft, da ein Zustandswechsel stattfindet (da der letzte Zustand gelöscht wurde) - das ist normal und funktioniert wie programmiert.

Gruß

Damian

Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Thoffi1978 am 03 Juli 2015, 23:49:35
vielen Dank für die Antworten.

@dieda: das mit dem ? bewirkt keine Änderung

@Damian: es ist doch aber eine Uhrzeit angegeben, wieso wird diese beim Init "übersehen"?
                 Kann man das ändern so das in der Uhrzeit nur geschaltet wird?
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: dieda am 03 Juli 2015, 23:52:00
@Damian: Brauche ich dann das Fragezeichen vor der Zeitangabe? Ich hatte es so verstanden, dass das Fragezeichen immer dann gebraucht wird, wenn ein Wert innerhalb der Zeitangabe wahr werden kann, aber nicht grundsätzlich zum Anfang oder Ende.

Beipspiel: Ich gebe an, wenn zwischen 10-12 der Sonnenstand genau zwischen 90-135 Grad ist, dann ist die Bedingung wahr, dass ändert sich jeden Tag und so kann es am einen Tag 10:02 sein am nächsten schon einen Tick später.
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Damian am 04 Juli 2015, 08:27:37
Zitat von: dieda am 03 Juli 2015, 23:52:00
@Damian: Brauche ich dann das Fragezeichen vor der Zeitangabe? Ich hatte es so verstanden, dass das Fragezeichen immer dann gebraucht wird, wenn ein Wert innerhalb der Zeitangabe wahr werden kann, aber nicht grundsätzlich zum Anfang oder Ende.

Beipspiel: Ich gebe an, wenn zwischen 10-12 der Sonnenstand genau zwischen 90-135 Grad ist, dann ist die Bedingung wahr, dass ändert sich jeden Tag und so kann es am einen Tag 10:02 sein am nächsten schon einen Tick später.

In der Commandref steht:

ZitatZeitsteuerung mit Zeitintervallen

Zeitintervalle werden im Format angegeben: [<begin>-<end>], für <begin> bzw. <end> wird das gleiche Zeitformat verwendet, wie bei einzelnen Zeitangaben. Getriggert wird das Modul zum Zeitpunkt <begin> und zum Zeitpunkt <end>. Soll ein Zeitintervall ohne Zeittrigger lediglich zur Abfrage dienen, so muss hinter der eckigen Klammer ein Fragezeichen angegeben werden (siehe Beispiele weiter unten). Das Zeitintervall ist als logischer Ausdruck ab dem Zeitpunkt <begin> wahr und ab dem Zeitpunkt <end> nicht mehr wahr.

Also ist ein Zeitintervall immer von bis wahr, ohne Fragezeichen wird das Modul zum Anfang und zum Ende des Zeitraum zusätzlich getriggert. Das ist alles. Alles was dann passiert, ist logische Folgerung dessen.

Wenn sich ein Zeitintervall "verschieben soll", dann muss man statt fester Zeiten Zeitfunktionen angeben, die die jeweilige Zeit berechnen.

Wenn man dagegen punktuell nur zu einem bestimmten Zeitpunkt das Modul triggern will, dann muss man nur einen Zeitpunkt angeben wie bei at und kein Zeitintervall.

Gruß

Damian
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: hexenmeister am 04 Juli 2015, 11:16:08
Zitat von: MrMaxy am 03 Juli 2015, 21:33:33
Meiner Meinung nach kann man eine solche Beschattung nur mit einem Sonnensensor realisieren.
Leider gibt es keinen solchen Sensor der mit FHEM kompatibel ist.
Und auf Nachfrage bei eq-3 scheint es auch so, dass keiner daran interessiert ist.
Suche im Forum nach den (selbstbau) Außensensoren von Dirk. Die eignen sich prima, um die Sonneneinstrahlung zu messen (in Lux) und sind HM-kompatibel. Zusammen mit der Außentemperatur, Berechnung der Sonnen-Azimuth und -Elevation (Twilight-Modul), Kenntniss der Lage des Hauses und Fenstergrößen und paar weiteren Parametern funktioniert die Beschattung wunderbar und für alle Fenster individuell.
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: HPSU_Mic am 04 Juli 2015, 13:35:58
Hallo All,

ich habe mich auch ein paar Tage damit beschäftigt, meine Lösung benutzt das Weather Modul, welches im nachfolgenden Code Wetter heißt und stündlich abgefragt wird:
Nachfolgender Code ist die Definition eines einzigen DOIFs für ein direkt nach Osten ausgerichtetes Fenster und besteht aus 5 Teilen.
Teil 1: Wochentags, wenn die Sonne bei -3° vor Sonnenaufgang steht, frühestens um 6:15, jeweils zufällig + max. 5 Minuten oder am
           Wochenende, wenn die Sonne bei -3° vor Sonnenaufgang steht, frühestens um 8:30, jeweils zufällig + max. 5 Minuten,
           Rolladen hoch.
Teil 2: Wochentags, wenn die Sonne bei 12° nach Sonnenaufgang steht und Wetter:heiter (Code gleich 34), frühestens um 6:20 bis 13:00, jeweils zufällig + max. 5 Minuten
           Wochenende, wenn die Sonne bei 12° nach Sonnenaufgang steht und Wetter:heiter (Code gleich 34), frühestens um 8:35 bis 13:00, jeweils zufällig + max. 5 Minuten,
           Rolladen auf Beschattungsposition (fehlt hier noch mangels richtigem Aktor)
Teil 3: Wochentags, wenn die Sonne bei 12° nach Sonnenaufgang steht und Wetter:Nicht heiter (Code ungleich 34), frühestens um 6:20 bis 13:00, jeweils zufällig + max. 5 Minuten
           Wochenende, wenn die Sonne bei 12° nach Sonnenaufgang steht und Wetter:Nicht heiter (Code ungleich 34), frühestens um 8:35 bis 13:00, jeweils zufällig + max. 5 Minuten,
           Rolladen hoch
Teil 4: Um 13:05, jeweils zufällig + max. 5 Minuten
           Rolladen hoch.
Teil 5: Wenn die Sonne bei -5° nach Sonnenuntergang steht, jeweils zufällig + max. 5 Minuten
           Rolladen runter.

Ganz wichtig: Attribut Do Always, sonst funktionieren Teil 2 und 3 nicht, bei Änderung von Wetter:code.



define Rol.OG.AZ.Ost.DOIF
(([{time_random_offset(sunrise("HORIZON=-3°", 0,"06:15"),300)}|8]
    or [{time_random_offset(sunrise("HORIZON=-3°",0,"08:30"),300)}|7])) (set Rol.OG.AZ.Ost off) DOELSEIF
(([{time_random_offset(sunrise("HORIZON=12°", 0,"06:20"),300)}-{time_random_offset("13:00",300)}|8]
    or [{time_random_offset(sunrise("HORIZON=12°",0,"08:35"),300)}-{time_random_offset("13:00",300)}|7])
    and [Wetter:code] != 34) (set Rol.OG.AZ.Ost off) DOELSEIF
(([{time_random_offset(sunrise("HORIZON=12°", 0,"06:20"),300)}-{time_random_offset("13:00",300)}|8]
    or [{time_random_offset(sunrise("HORIZON=12°",0,"08:35"),300)}-{time_random_offset("13:00",300)}|7])
    and [Wetter:code] == 34) (set Rol.OG.AZ.Ost on) DOELSEIF
([{time_random_offset("13:05",300)}]) (set Rol.OG.AZ.Ost off) DOELSEIF
([{time_random_offset(sunset("HORIZON=-5°"),300)}]) (set Rol.OG.AZ.Ost on)
attr Rol.OG.AZ.Ost.DOIF do always

sub
time_random_offset
{
  # Eingangs-Zeitstempel in Variable holen
  my ($timestamp) = shift;

  # Maximalen Zeitoffset (in Sekunden) in Variable speichern
  my ($maxoffset) = shift;

  # Zeitstempel in das interne Format konvertieren: 17:30:09 ==> 17.5025
  # Stunden werden als ganze Zahlen gespeichert, minuten als 1/60 und sekunden als 1/3600
  my ($t) = hms2h($timestamp);

  $t += rand()  * $maxoffset / 3600;

  # Zurück in HH:MM:SS konvertieren.
  return h2hms_fmt($t);
};




Die sub time_random_offset in 99_myUtils.pm speichern (Hab ich irgendwo gefunden...).


Damit bin ich eigentlich bislang gut zufrieden...

Viele Grüße

Michael
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Otto123 am 04 Juli 2015, 15:15:54
Zitat von: MrMaxy am 03 Juli 2015, 21:33:33
Meiner Meinung nach kann man eine solche Beschattung nur mit einem Sonnensensor realisieren.
Leider gibt es keinen solchen Sensor der mit FHEM kompatibel ist.
Und auf Nachfrage bei eq-3 scheint es auch so, dass keiner daran interessiert ist.
Du willst wissen wieviel Sonne scheint? Man kann auch übertreiben :)
Ansonsten so wie schon geschrieben:
ZitatIch fand mal die Lösung mit dem HM-WDS30-OT2-SM (einen Fühler mit Alu/weiß umwickelt den andern schwarz) sehr pfiffig.
Gruß Otto
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Prof. Dr. Peter Henning am 04 Juli 2015, 19:01:46
@HPSU_Mic: Vollkommener Unsinn, so etwas als FHEM-Skript zu schreiben. Das sollte man als ordentliches Perl-Unterprogramm in 99_myUtils haben.

LG

pah
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: MrMaxy am 07 Juli 2015, 08:53:24
Zitat von: Otto123 am 04 Juli 2015, 15:15:54
Du willst wissen wieviel Sonne scheint? Man kann auch übertreiben :)
Ansonsten so wie schon geschrieben:Gruß Otto

In der Tat!
Anhand der Intensität der Einstrahlung können die Rollladen ganz exakt heruntergefahren werden. Dabei werden sie natürlich nie ganz geschlossen. Immer nur so weit, dass der eingestellte Schwellwert unterschritten ist - der Sensor also "beschattet" wird. nach einer Weile (ca. 15 Minuten), fährt der Rollladen etwas hoch, um zu messen, wie hoch die aktuelle Intensität ist. Ist sie niedriger als der Schwellwert, fährt der Rollladen hoch, ist die Intensität gleich, oder höher, fährt er wieder ein Stück herunter.
So einfach ist das - finde ich.
Ich kann mich nicht so ganz mit der Idee anfreunden, die Rollläden nur nach dem Stand der Sonne oder einer Temperatur zu steuern. Zumal hier auch noch mehrere Sensoren benötigt werden.
Zur Zeit habe ich eine Rollladensteuerung (mit Sonnensensor) von Berker installiert. Das funktioniert hervorragend.
Allerdings würde ich es viele lieber mit Homematic, o.Ä. realisieren, da ich die gesamte Rollladensteuerung dann einbinden könnte.
Dafür fehlt mir leider der besagte Sonnensensor, der alles so viel leichter machen würde.

Vielleicht könnt ihr mich aber hier auch von einer anderen Lösung überzeugen.

Grüße!  :)
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: hexenmeister am 07 Juli 2015, 09:13:07
Zitat von: MrMaxy am 07 Juli 2015, 08:53:24
[...] nach einer Weile (ca. 15 Minuten), fährt der Rollladen etwas hoch, um zu messen, wie hoch die aktuelle Intensität ist. Ist sie niedriger als der Schwellwert, fährt der Rollladen hoch, ist die Intensität gleich, oder höher, fährt er wieder ein Stück herunter.

Das würde mich wahnsinnig machen  :o
Besser mit Außenlichtsensoren.
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: MrMaxy am 07 Juli 2015, 09:27:21
Zitat von: hexenmeister am 07 Juli 2015, 09:13:07
Das würde mich wahnsinnig machen  :o
Besser mit Außenlichtsensoren.
Aber der Sonnensensor, welcher in Form eine Saugnapfes, an der Fensterscheibe befestigt wird, ist doch nichts anderes als ein Lichtsensor!
Und das mit den ca. 15 Minuten "Nachschauen", ist halb so wild. Dauert keine 3 Sekunden.
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: hexenmeister am 07 Juli 2015, 09:47:00
Zitat von: MrMaxy am 07 Juli 2015, 09:27:21
Aber der Sonnensensor, welcher in Form eine Saugnapfes, an der Fensterscheibe befestigt wird, ist doch nichts anderes als ein Lichtsensor!
Und das mit den ca. 15 Minuten "Nachschauen", ist halb so wild. Dauert keine 3 Sekunden.
Mit "Außensensor" meine ich einen Sensor, dar "Außen" ist ;) Da muss man die Rolladen nicht hoch fahren.
Das ist das schöne an FHEM, dass man zentral alles Kombinieren und zum Steuern nutzen kann. Ich habe in jedem Raum (unter anderem) einen Lichtsensor und auch zwei Stück draußen.

Davon abgesehen, für die Motoren ist das auch nicht förderlich, alle 15 Min kurz anzulaufen.


Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: MrMaxy am 07 Juli 2015, 11:30:31
Zitat von: hexenmeister am 07 Juli 2015, 09:47:00
Ich habe in jedem Raum (unter anderem) einen Lichtsensor und auch zwei Stück draußen.
Kannst du mir dann bitte mal sagen, welche Lichtsensoren (innen und außen) du verwendest?

Was die Rollladenmotoren angeht, machen die das schon seit vielen Jahren. Bisher gab es nie Probleme.  :)
Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: hexenmeister am 07 Juli 2015, 13:19:11
Ich verwende HomeMatic-kompatible Sensoren von Dirk (findest Du hier im Forum) innen und außen. Liefern Lichtstärke, Temperatur und Luftfeuchte.
Zusätzlich habe ich eigenentwickelte Sensoren im Haus, auf Basis MySensors-System: http://s6z.de/cms/index.php/homeautomation/mysensors/67-up-sensor-pir-temp-hum-lux-in-eigenbau

Von HomeMatic gibt es auch Bewegungsmelder, die auch Lichtintensität mitliefern, die sing ganz gut, aber erlauben kaum eine Unterscheidung zw. "helle Sonne" (normal sonniger Tag 5000-8000 Lux) und "richtig helle Sonne" (so wie letzte Zeit, 15000 Lux und mehr).

Die Beschattung läuft ungefähr nach folgendem Muster ab:

- wenn Zeit nach 22:00 oder vor 10:00 -> nichts unternehmen (Nachtruhe)
- wenn in letzten 15 Minuten eine automatische Beschattung aktiviert oder deaktiviert wurde -> nicht tun (keine 'hektische' Aktionen)
- wenn in letzten 15 Minuten Bewegung im Raum erkannt wurde -> nichts tun (das System soll sich unauffälllig verhalten -> höherer WAF)
- ... noch paar kleinere Prüfufen, wie manuelle Übersteuerung etc.
- wenn
   -- die Position der Sonne (azimuth) und die Lage der jeweiligen Fenster so sind,
      dass Sonne ins Fenster scheint und Sonnenhöhe (elevation) so ist, dass sie länger als ein bestimmter Wert 'hereinragt'
   -- wenn draußen: Licht > 15000 Lux und Temperatur > 23°C
   => dann fahre Rollos in Schatten-Position, es sei denn, die Rollos sind bereits tiefer geschlossen
- wenn die Parameter aus dem letzten Schritt (min einer davon) um einen bestimmten Wert unterschritten sind => Rollos wieder öffnen

Titel: Antw:Automatische Beschattung Rollos nach Uhrzeit
Beitrag von: Thoffi1978 am 23 Juni 2017, 15:27:28
Hallo,
jetzt, wo es doch wieder warme Tage gibt, fällt mir auf, das meine Schaltung doch nicht so läuft.

Wieso werden die Jalousien heruntergefahren? Bis auf die Helligkeit ist keine weitere Bedingung wahr.
Hier einmal mein Code:
([Aussentemperatur:temperature] => 23 and [Temp_Schlafzi:temperature] => 24 and [Helligkeit:state] > 1700 and [?13:45 - 18:30]) ((set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ_Seite 40)) DOELSE ((set Jalo_SchlafZi:FILTER=pct=40,Jalo_Bad:FILTER=pct=40,Jalo_WZ_Seite:FILTER=pct=40 on))
um 13:55Uhr wurden die Jalousien runter gefahren. Unwahrscheinlich, das es im SchlafZi wärmer war, doch warum werden die jetzt nicht hoch gefahren? Alles ist Kühler.
Anbei die List vom DoIf:
Internals:
   DEF        ([Aussentemperatur:temperature] => 23 and [Temp_Schlafzi:temperature] => 24 and [Helligkeit:state] > 1700 and [?13:45 - 18:30]) ((set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ_Seite  40)) DOELSE ((set Jalo_SchlafZi:FILTER=pct=40,Jalo_Bad:FILTER=pct=40,Jalo_WZ_Seite:FILTER=pct=40  on))
   NAME       di_Beschattung_seite
   NR         179
   NTFY_ORDER 50-di_Beschattung_seite
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2017-06-23 15:24:42   Device          Helligkeit
     2017-06-23 13:55:39   cmd             1
     2017-06-23 13:55:39   cmd_event       Aussentemperatur
     2017-06-23 13:55:39   cmd_nr          1
     2017-06-23 15:24:05   e_Aussentemperatur_temperature 20.0
     2017-06-23 15:24:42   e_Helligkeit_state 2269.0
     2017-06-23 15:21:57   e_Temp_Schlafzi_temperature 22.6
     2017-06-23 13:55:39   state           cmd_1
     2017-06-22 18:30:00   timer_01_c01    23.06.2017 13:45:00
     2017-06-22 18:30:00   timer_02_c01    23.06.2017 18:30:00
     2017-06-23 13:55:39   wait_timer      no timer
   Condition:
     0          ReadingValDoIf($hash,'Aussentemperatur','temperature') => 23 and ReadingValDoIf($hash,'Temp_Schlafzi','temperature') => 24 and ReadingValDoIf($hash,'Helligkeit','state') > 1700 and DOIF_time($hash,0,1,$wday,$hms)
   Days:
   Devices:
     0           Aussentemperatur Temp_Schlafzi Helligkeit
     all         Aussentemperatur Temp_Schlafzi Helligkeit
   Do:
     0:
       0          (set Jalo_SchlafZi,Jalo_Bad,Jalo_WZ_Seite  40)
     1:
       0          (set Jalo_SchlafZi:FILTER=pct=40,Jalo_Bad:FILTER=pct=40,Jalo_WZ_Seite:FILTER=pct=40  on)
   Helper:
     event      2269.0
     globalinit 1
     last_timer 2
     sleepdevice Aussentemperatur
     sleepsubtimer -1
     sleeptimer -1
     timerdev   Helligkeit
     timerevent 2269.0
     triggerDev Helligkeit
     timerevents:
       2269.0
     timereventsState:
       state: 2269.0
     triggerEvents:
       2269.0
     triggerEventsState:
       state: 2269.0
   Internals:
   Interval:
     0          -1
     1          0
   Itimer:
   Localtime:
     0          1498218300
     1          1498235400
   Readings:
     0           Aussentemperatur:temperature Temp_Schlafzi:temperature Helligkeit:state
     all         Aussentemperatur:temperature Temp_Schlafzi:temperature Helligkeit:state
   Realtime:
     0          13:45:00
     1          18:30:00
   Regexp:
     0:
     All:
   State:
     State:
   Time:
     0          13:45:00
     1          18:30:00
   Timecond:
     0          0
     1          0
   Timer:
     0          0
     1          0
   Timers:
   Trigger:
   Triggertime:
     1498235400:
       localtime  1498235400
       Hash:
Attributes:
   group      Jalousien_seite
   room       Jalousien Di´s
   wait       600:1200


Vielen Dank
Torsten