Da die Sonne nun bald wieder stärker wird (hoffen wir mal), bin ich schon eine ganze Weile am rumsuchen nach einer
Beschattungssteuerung. Am besten hat mir die über das Weather Modul gefallen. Aber so ganz steige ich da nicht durch, will es so einfach wie möglich machen, und direkt in die fhem.cfg schreiben.
Das hier habe ich gebastelt:
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");;\
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");;\
if (($Temp >= 27) && ($Sonne eq "sonnig") && (Value("FS_201b1b55")!=15) && ($hour >= 10)){\
fhem("set Rollladen 15");;\
Log 1, "Beschattungsposition wird angefahren...";;\
}elsif (($Temp<22) && (Value("Rollladen")==15)){\
fhem ("set FS_201b1b55 off");;\
Log 1,"Rollladen wird geöffnet...";;\
} elsif ($Temp=999) || ($Sonne eq "kein Wert") {\
Log 1, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";;\
}\
else {\
Log 1, "Rollladen unverändert";;\
}\
}
Beim speichern sagt mir Fhem : ERROR: Unknown command my, try help
So ganz steig ich da nicht durch, auch nach lesen der help. Kann mir jemand auf die Sprünge helfen?
Ich möchte ganz einfach einen Rolladen ab 10.00 Uhr morgens wenn bei Weather Sonne drin steht und Temperatur über 27 Grad auf off schalten. Bin mir für die weitere Überwachung nicht ganz klar was geht. Vielleicht jede Stunde eine Überprüfung ob immer noch Sonne sowie Temperatur noch über 27 drin steht, wenn nicht wieder hochfahren lassen.
Hallo SkodaSascha,
*genau* dieses Thema wurde hier schon groß und breit durch- und (mM) ausdiskutiert (vor etwas mehr als 1 Monat).
*Ich* bin jetzt aber zu faul zum suchen ;)
Hmmm ... Forensuche: "Rollo sonne temperatur" (ohne '"') ... Viel Spaß beim lesen ;) (Hint: kommt nicht gleich zu Beginn).
Gruß
Thomas
Also, soweit ich das überblicke stimmt der Code. Den Anfang hast du sicher vergessen zu kopieren, oder?
define Rollladensteuerung notify "Wetter:(fc1_low_c.*|fc1_condition.*) {\
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");;\
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");;\
if (($Temp >= 27) && ($Sonne eq "sonnig") && (Value("FS_201b1b55")!=15) && ($hour >= 10)){\
fhem("set Rollladen 15");;\
Log 1, "Beschattungsposition wird angefahren...";;\
}elsif (($Temp<22) && (Value("Rollladen")==15)){\
fhem ("set FS_201b1b55 off");;\
Log 1,"Rollladen wird geöffnet...";;\
} elsif ($Temp=999) || ($Sonne eq "kein Wert") {\
Log 1, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";;\
}\
else {\
Log 1, "Rollladen unverändert";;\
}\
}
Ansonsten würde die Fehlermeldung auf eine fehlende Klammer oder "\" oder Anführunszeichen hindeuten.
MfG, MisterEltako
Hallo Thomas, ich weiß nicht ob ich das richtige gefunden habe, abere darin ging es nicht über das Weather Modul. Aber ich weiß, es wurde schon mehrmals darüber geschrieben. Daher habe ich ja auch meine Codeschnipsel...
MisterEltako, habe die erste Zeile noch eingefügt, die Fehlermeldung habe ich aber immer noch, ist das normal ?
Was mir noch so aufgefallen ist, ich wollte das ganze ja mal vorher Testen mit anderen Temperaturen, Sonne ist auch ja auch nicht da, also auf bewölkt. In den Readings von Weather steht ja alles auf Englisch, müsste dann im Code nicht "sunny oder sun" stehen?
Hi!
In der Define Zeile hatte ich ein Anführungszeichen vor Wetter zuviel getippt.
Versuche es der Einfachkeit halber nun so und mit den Log Ergänzungen, dann siehst du im Logfile ob "sonnig" oder "sunny" kommt...
define Rollladensteuerung notify Wetter {\
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");;\
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");;\
Log 3, "Temperatur ist: $Temp und Wetterbedingung ist: $Sonne";;\
if (($Temp >= 27) && ($Sonne eq "sonnig") && (Value("FS_201b1b55")!=15) && ($hour >= 10)){\
fhem("set Rollladen 15");;\
Log 1, "Beschattungsposition wird angefahren...";;\
}elsif (($Temp<22) && (Value("Rollladen")==15)){\
fhem ("set FS_201b1b55 off");;\
Log 1,"Rollladen wird geöffnet...";;\
} elsif ($Temp=999) || ($Sonne eq "kein Wert") {\
Log 1, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";;\
}\
else {\
Log 1, "Rollladen unverändert";;\
}\
}
MfG, MisterEltako
Hi,
Zitat von: SkodaSascha schrieb am Mo, 29 April 2013 12:21ich weiß nicht ob ich das richtige gefunden habe,
Bei meinen Suchbegriffen erhalte ich mit der Forensuche 4 Ergebnisse, alle zu dem Thema "rollo abhängig von temperatur (sonnenschutz)" ...
Zitatabere darin ging es nicht über das Weather Modul.
... und spätestens ab
diesem Post sehe ich in den Codezeilen z.B.
my $sonne = (ReadingsVal("Test_Wetter","fc1_condition", "kein Wert"));
Meiner bescheidenen Meinung nach deutet "fc1_condition" doch auf das weather-Modul hin, oder?
Gruß
Thomas
Wie ist es doch so machmal, "Man sieht den Wald vor Bäumen nicht".
Ich habe den Code nun noch eine wenig angepasst, bei RSU gibt es z.B. keine Positionen. Ich werde die Loagdatei mal
im Auge behalten was passiert.
Vielen Dank
Ich habe nun permanent diese Fehlermeldung um Log:
2013.04.30 20:05:26 3: Rolladensteuerung return value: Unknown command {\ my, try help
Unknown command my, try help
Unknown command log, try help
Unknown command if, try help
Unknown command log, try help
Unknown command }elsif, try help
Hier noch einmal mein Code:
define Rolladensteuerung notify Wetter {\
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");;\
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");;\
Log 3, "Temperatur ist: $Temp und Wetterbedingung ist: $Sonne";;\
if (($Temp >= 27) && ($Sonne eq "sonnig") && ($hour >= 12)){\
fhem("set RolladenSchlafzimmer off");;\
Log 1, "Beschattungsposition wird angefahren...";;\
}elsif (($Temp<22)
fhem ("set RolladenSchlafzimmer on");;\
Log 1,"Rolladen wird geöffnet...";;\
} elsif ($Temp=999) || ($Sonne eq "kein Wert") {\
Log 1, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";;\
}\
else {\
Log 1, "Rolladen unverändert";;\
}\
}
Hi,
hast du irgendetwas von diesem Code per Cut&Paste in die fhem.cfg eingefügt? Unter welchem Betriebssystem?
Ich vermute, dass nach dem "{\" ein CarriageReturn + LineFeed steht und das geht nur bei Windows-Betriebssystemen gut, nicht aber in Fhem.
Falls meine Vermutung richtig ist, setze den Cursor an das Zeilenende, direkt hinter "{\", drücke so oft auf die <Entf>-Taste, bis die darunterliegende Zeile hochkommt und drücke dann <Return>. Speichern, testen. Gut möglich dass dann noch andere Fehler kommen, wenn da noch mehr CR+LF in dem Code drin stehen.
Falls meine Vermutung richtig ist, solltest du dir evtl. angewöhnen, die fhem.cfg nur mit einem Editor zu bearbeiten, der auch im "Unix-Like"-Format abspeichern kann wie z.B. Notepad++. Entsprechende Option setzen, abspeichern und gut ist.
Oder hast du den Code mit den "\" auf der Detailseite unter "DEF" eingetragen?
Edith fügt noch folgenden Link (//de.wikipedia.org/wiki/Zeilenumbruch#Codierung_des_Zeilenumbruchs) zur Erklärung ein.
Berichte bitte.
Danke und Gruß
Thomas
Hi!
Rot markiert sind deine Fehlerstellen:
define Rolladensteuerung notify Wetter {\
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");;\
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");;\
Log 3, "Temperatur ist: $Temp und Wetterbedingung ist: $Sonne";;\
if (($Temp >= 27) && ($Sonne eq "sonnig") && ($hour >= 12)){\
fhem("set RollladenSchlafzimmer off");;\
Log 1, "Beschattungsposition wird angefahren...";;\
}elsif ($Temp<22) {\
fhem ("set RollladenSchlafzimmer on");;\
Log 1,"Rollladen wird geöffnet...";;\
} elsif (($Temp == 999) || ($Sonne eq "kein Wert")){\
Log 1, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";;\
}\
else {\
Log 1, "Rollladen unverändert";;\
}\
}
MfG, MisterEltako.
PS: Rollladen nicht Rolladen.... ;-)
Supi, das wars schon mal mit den Fehlermeldungen. Das mit den Zeilenumbrüchen werde ich im Kopf behalten.
Nun passiert immer folgendes:
2013.05.01 07:48:22 3: Temperatur ist: 7 und Wetterbedingung ist: fair
2013.05.01 07:48:22 2: FS20 set RolladenSchlafzimmer on
2013.05.01 07:48:23 1: Rolladen wird geöffnet...
Dafür ist ja diese Zeile verantwortlich:
}elsif ($Temp<22) {\
fhem ("set RolladenSchlafzimmer on");;\
Original war diese ja:
}elsif (($Temp<30) && (Value("Rollladen")==15)){\
fhem ("set Rollladen 100");;\
Aber bei meinen RSU´s gibt es aber keine Positionen. So würde ich auch Abends wenn die Rolläden unten sein sollen immer ON schalten.
Hoffe Du kannst mir da noch einmal helfen.
PS: Rolladen...ja ja, die gute alte Rechtschreibung.
So geht es am einfachsten:
}elsif (($Temp<22) && (isday()) {\
fhem ("set RolladenSchlafzimmer on");;\
oder
}elsif (($Temp<22) && ($hour >= 6) && ($hour <= 17)) {\
fhem ("set RolladenSchlafzimmer on");;\
MfG, MisterEltako
Ich habe jetzt
}elsif (($Temp<22) && ($hour >= 6) && ($hour <= 17)) {\
genommen. Dies bedeutet doch das von 6 bis 17 Uhr dder Rolladen runterfahren soll wenn klener 22 Grad.
Oder? Ich habe jetzt im Log Wiederholungen ohne Ende:
2013.05.02 18:07:43 3: Temperatur ist: 14 und Wetterbedingung ist: wolkig
2013.05.02 18:07:43 2: FS20 set RolladenSchlafzimmer on
2013.05.02 18:07:43 1: Rolladen wird geöffnet...
2013.05.02 18:07:43 3: Temperatur ist: 14 und Wetterbedingung ist: wolkig
2013.05.02 18:07:43 2: FS20 set RolladenSchlafzimmer on
2013.05.02 18:07:43 1: Rolladen wird geöffnet...
2013.05.02 18:07:44 2: FS20 RolladenSchlafzimmer on
2013.05.02 18:07:54 2: FS20 RolladenSchlafzimmer on
2013.05.02 18:37:39 3: Temperatur ist: 14 und Wetterbedingung ist: bewölkt
2013.05.02 18:37:39 2: FS20 set RolladenSchlafzimmer on
2013.05.02 18:37:40 1: Rolladen wird geöffnet...
2013.05.02 18:37:40 3: Temperatur ist: 14 und Wetterbedingung ist: bewölkt
2013.05.02 18:37:40 2: FS20 set RolladenSchlafzimmer on
2013.05.02 18:37:40 1: Rolladen wird geöffnet...
2013.05.02 18:37:40 3: Temperatur ist: 14 und Wetterbedingung ist: bewölkt
2013.05.02 18:37:40 2: FS20 set RolladenSchlafzimmer on
2013.05.02 18:37:40 1: Rolladen wird geöffnet...
2013.05.02 18:37:40 3: Temperatur ist: 14 und Wetterbedingung ist: bewölkt
2013.05.02 18:37:40 2: FS20 set RolladenSchlafzimmer on
2013.05.02 18:37:40 1: Rolladen wird geöffnet...
2013.05.02 18:37:40 3: Temperatur ist: 14 und Wetterbedingung ist: bewölkt
2013.05.02 18:37:40 2: FS20 set RolladenSchlafzimmer on
Warum wird auch nach 17.00Uhr geschaltet? Und wie kann man die ganzen Wiederholungen vermeiden?
Also habe das gerade ausprobiert und funktioniert:
define Rolladensteuerung notify Wetter {\
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");;\
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");;\
#$Temp=14 ;;\
#$Sonne="Regen";;\
#my $hours=16;;\
Log 3, "Temperatur ist: $Temp und Wetterbedingung ist: $Sonne, Stunde: $hour";;\
if (($Temp >= 27) && ($Sonne eq "sonnig") && ($hour >= 12)){\
fhem("set RollladenSchlafzimmer off");;\
Log 1, "Beschattungsposition wird angefahren...";;\
}elsif (($Temp<22) && ($hour>= 6) && ($hour<=17)){\
fhem ("set RollladenSchlafzimmer on");;\
Log 1,"Rollladen wird geöffnet...";;\
} elsif (($Temp==999) || ($Sonne eq "kein Wert")) {\
Log 1, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";;\
} else {\
Log 1, "Rollladen unverändert";;\
}\
}
und ergänze zur Kontrolle von $hour:
Log 3, "Temperatur ist: $Temp und Wetterbedingung ist: $Sonne";;\
mit:
Log 3, "Temperatur ist: $Temp und Wetterbedingung ist: $Sonne und Stunde: $hour";;\
MfG, MisterEltako.
Nun habe ich wieder jede Minute Fehlermeldungen:
2013.05.04 05:50:59 3: Rolladensteuerung return value: Unknown command {\
my, try help
Unknown command my, try help
Hätte nicht gedacht das es doch so viele Schwierigkeiten bereitet.
Um alles besser zu verstehen, was bedeuten diese Zeilen ?
#$Temp=14 ;;\
#$Sonne="Regen";;\
#my $hours=16;;\
#$Temp=14 ;;\
#$Sonne="Regen";;\
#my $hours=16;;\
Kannst du weglöschen. Das habe ich nur eingefügt um verschiedene Werte zu testen.
Das Zeichen "#" bedeutet diese Zeile ist auskommentiert, also nicht aktiv.
Schreibe bitte testweise für:
Log 3, "Temperatur ist: $Temp und Wetterbedingung ist: $Sonne, Stunde: $hour";;\
nun:
Log 3, "Temperatur ist: $Temp und Wetterbedingung ist: $Sonne";;\
Log 3, "Stunde: $hour";;\
MfG, MisterEltako.
Nach dem Speichern dauert es eine sehr lange Zeit bis der Fehler im Log auftaucht.
2013.05.04 09:54:25 3: CUL: Possible commands: BCFiAGMRTVWXefmltux
2013.05.04 09:54:26 1: Including ./log/fhem.save
2013.05.04 10:24:27 3: Rolladensteuerung return value: Unknown command {\
my, try help
Unknown command my, try help
2013.05.04 10:24:27 3: Rolladensteuerung return value: Unknown command {\
my, try help
Kannst du bitte deine Codezeilen posten? Bei mir läuft das oben geschriebene Fehlerfrei...
MfG, MisterEltako
Aber klar doch:
define Rolladensteuerung notify Wetter {\
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");;\
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");;\
#$Temp=14 ;;\
#$Sonne="Regen";;\
#my $hours=16;;\
Log 3, "Temperatur ist: $Temp und Wetterbedingung ist: $Sonne";;\
Log 3, "Stunde: $hour";;\
if (($Temp >= 27) && ($Sonne eq "sonnig") && ($hour >= 12)){\
fhem("set RolladenSchlafzimmer off");;\
Log 1, "Beschattungsposition wird angefahren...";;\
}elsif (($Temp<22) && ($hour>= 6) && ($hour<=17)){\
fhem ("set RolladenSchlafzimmer on");;\
Log 1,"Rolladen wird geöffnet...";;\
} elsif (($Temp==999) || ($Sonne eq "kein Wert")) {\
Log 1, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";;\
} else {\
Log 1, "Rolladen unverändert";;\
}\
}
Dein Code brachte auch bei mir eine Fehlermeldung. Die Änderung auf nachfolgende Version funktioniert wieder:
define Rollladensteuerung notify Wetter {\
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");;\
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");;\
Log 3, "Temperatur ist: $Temp und Wetterbedingung ist: $Sonne";;\
Log 3, "Stunde: $hour";;\
if (($Temp >= 27) && ($Sonne eq "sonnig") && ($hour >= 12)){\
fhem("set RollladenSchlafzimmer off");;\
Log 1, "Beschattungsposition wird angefahren...";;\
}elsif (($Temp<22) && ($hour>= 6) && ($hour<=17)){\
fhem ("set RollladenSchlafzimmer on");;\
Log 1,"Rollladen wird geöffnet...";;\
} elsif (($Temp==999) || ($Sonne eq "kein Wert")) {\
Log 1, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";;\
} else {\
Log 1, "Rollladen unverändert";;\
}\
}
MfG, MisterEltako
Die Fehlermeldungen sind nun weg, nun zum Log.
Vor 6 Uhr alles gut:
2013.05.05 05:41:35 3: Temperatur ist: 9 und Wetterbedingung ist: teilweise wolkig
2013.05.05 05:41:35 3: Stunde: 5
2013.05.05 05:41:35 1: Rolladen unverändert
Nach 6 Uhr kommt immer:
2013.05.05 06:11:34 3: Temperatur ist: 9 und Wetterbedingung ist: teilweise wolkig
2013.05.05 06:11:34 3: Stunde: 6
2013.05.05 06:11:34 2: FS20 set RolladenSchlafzimmer on
2013.05.05 06:11:34 1: Rolladen wird geöffnet...
und auch geschaltet wird wenige Sekeunden später:
2013.05.05 06:11:37 3: Temperatur ist: 9 und Wetterbedingung ist: teilweise wolkig
2013.05.05 06:11:37 3: Stunde: 6
2013.05.05 06:11:37 2: FS20 set RolladenSchlafzimmer on
2013.05.05 06:11:37 1: Rolladen wird geöffnet...
2013.05.05 06:11:37 2: FS20 RolladenSchlafzimmer on
2013.05.05 06:11:46 2: FS20 RolladenSchlafzimmer on
2013.05.05 07:11:37 3: Temperatur ist: 9 und Wetterbedingung ist: teilweise wolkig
2013.05.05 07:11:37 3: Stunde: 7
2013.05.05 07:11:37 2: FS20 set RolladenSchlafzimmer on
2013.05.05 07:11:37 1: Rolladen wird geöffnet...
2013.05.05 07:11:37 2: FS20 RolladenSchlafzimmer on
2013.05.05 07:11:47 2: FS20 RolladenSchlafzimmer on
Eigentlich macht er ja genau das was er soll, nur gibt es nicht die Möglichkeit diesen Schaltvorgang nur einmal ausführen zu lassen.
Doch, du musst dir den Zustand der des Rollos merken und in den Bedingungen mit abfragen.
Kann schnell kompliziert werden.
Das stimmt, wird echt schnell kompliziert. OK, werde mal danach suchen, vielleicht finde ich ja was zum einbauen.
Du solltest versuchen den Code in die 99_Utils auslagern. Dann wird es übersichtlicher.
... Und, wenn möglich mit einem externen Editor arbeiten, dann hast du Syntax Highlighting für Perl und findest die Fehler einfacher.
sieh dir mal das Attribut event-on-change-reading an.
Beispiel:
Link (http://forum.fhem.de/index.php?topic=11632.msg76236#msg76236)
... und das Wetter nicht so oft von yahoo holen. Es ändert sich sowieso nocht so oft.
define Rollladensteuerung notify Wetter {\
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");;\
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");;\
Log 3, "Temperatur ist: $Temp und Wetterbedingung ist: $Sonne";;\
Log 3, "Stunde: $hour";;\
if (($Temp >= 27) && ($Sonne eq "sonnig") && ($hour >= 12) && (Value("RollladenSchlafzimmer") ne "off")){\
fhem("set RollladenSchlafzimmer off");;\
Log 1, "Beschattungsposition wird angefahren...";;\
}elsif (($Temp<22) && ($hour>= 6) && ($hour<=17) && (Value("RollladenSchlafzimmer") ne "on")){\
fhem ("set RollladenSchlafzimmer on");;\
Log 1,"Rollladen wird geöffnet...";;\
} elsif (($Temp==999) || ($Sonne eq "kein Wert")) {\
Log 1, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";;\
} else {\
Log 1, "Rollladen unverändert";;\
}\
}
oder in 99_myUtils:
fhem.cfg:
define Rollladensteuerung notify Wetter {Steuerung()};;
99_myUtils.pm:
sub
Steuerung (){
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");
Log 3, "Temperatur ist: $Temp und Wetterbedingung ist: $Sonne";
Log 3, "Stunde: $hour";
if (($Temp >= 27) && ($Sonne eq "sonnig") && ($hour >= 12) && (Value("RollladenSchlafzimmer") ne "off")){
fhem("set RollladenSchlafzimmer off");
Log 1, "Beschattungsposition wird angefahren...";
}elsif (($Temp<22) && ($hour>= 6) && ($hour<=17) && (Value("RollladenSchlafzimmer") ne "on")){
fhem ("set RollladenSchlafzimmer on");
Log 1,"Rollladen wird geöffnet...";
} elsif (($Temp==999) || ($Sonne eq "kein Wert")) {
Log 1, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";
} else {
Log 1, "Rollladen unverändert";
}
}
}
MfG,MisterEltako
Das hat doch schon einmal gestern gut geklappt...
Nur meiner Frau gefällt das so noch nicht ganz. Die Temperatur fällt wenn die Sonne untergegengen ist nur langsam ab, also bleibt den ganzen Abend das Rollo auf der Sonnenseite geschlossen.
Ich habe auch noch "teilweise wolkig" eingebaut, sonst wäre es gestern nicht runtergefahren.
if (($Temp >= 18) && (($Sonne eq "sonnig") || ($Sonne eq "teilweise wolkig")) && ($hour >= 12) && (Value("RolladenSchlafzimmer") ne "off")){\
Ich müßte diese Zeile:
}elsif (($Temp<15) && ($hour>= 12) && ($hour<=20) && (Value("RolladenSchlafzimmer") ne "on")){\
so Umbauen das der Rollladen hochfährt wenn es nicht "Sonnig" und nicht "teilweise wolkig" ist. Sonst würde ja bei aufkommendem schlecht Wetter, der Rollladen unten bleiben.
Sollte das Wetter aber gut bleiben möchte ich gerne eine halbe Stunde vor "sunset" den geschlossenen Rollladen wieder öffnen.
Und damit mir der Rollladen nicht in der Winterzeit wieder hochfährt, nachdem mein Helligkeitssensor schon schließen gemeldet hat, wäre eine Angabe mit "von Mai bis September" nicht schlecht.
Ich hoffe ich habe das so rübergebracht das man das versteht. Wer kann noch einmal helfen bitte?
Versuche einzubauen:
...}elsif (($Temp<15) && ($hour>= 12) && ($hour<=20) && (Value("RolladenSchlafzimmer") ne "on"))&& (($mmonth >= 5) || ($mmonth <= 9)) && (($Sonne ne "sonnig") || ($Sonne ne "teilweise wolkig")) {.....
und vor dem "else":
} elsif (($Sonne eq "sonnig") || ($Sonne eq "teilweise "wolkig")){\
fhem("define Schoenwetter at +{sunset_abs(-1800)} set RollladenSchlafzimmer on");;\
Log 3, "Es ist schoenes Wetter - Rollo 30min nach Sonnenuntergang öffnen...");;\
}else..
MfG, MisterEltako.
Ich habe es ein wenig nach meinen Wünschen noch geändert, es sieht nun so aus:
}elsif (($Sonne eq "sonnig") || ($Sonne eq "teilweise "wolkig")){\
fhem("define Schoenwetter at -{sunset_abs(-4800)} set RolladenSchlafzimmer on");;\
Log 3, "Es ist schoenes Wetter - Rollo 80min vor Sonnenuntergang öffnen...");;\
}elsif (($hour>= 12) && ($hour<=18) && (Value("RolladenSchlafzimmer") ne "on")) && (($mmonth >= 5) || ($mmonth <= 9)) && (($Sonne ne "sonnig") || ($Sonne ne "teilweise wolkig")){\
fhem ("set RolladenSchlafzimmer on");;\
Beim speichern keine Fehlermeldung, und im Log bis jetzt auch nicht. sieht das Ok so aus?
Leider doch zu früh gefreut. Nach eine halben Stunde taucht das hier im Log auf:
2013.05.06 20:10:31 1: Including ./log/fhem.save
Bareword found where operator expected at (eval 6488) line 1, near ""teilweise "wolkig"
(Missing operator before wolkig?)
String found where operator expected at (eval 6488) line 1, near "wolkig")){ fhem(""
Bareword found where operator expected at (eval 6488) line 1, near "")){ fhem("define"
(Missing operator before define?)
Bareword found where operator expected at (eval 6488) line 1, near "} set"
(Missing operator before set?)
String found where operator expected at (eval 6488) line 1, near "on"); Log 3, ""
Bareword found where operator expected at (eval 6488) line 1, near ""); Log 3, "Es"
(Missing operator before Es?)
Number found where operator expected at (eval 6488) line 1, near "Rollo 80"
(Do you need to predeclare Rollo?)
Bareword found where operator expected at (eval 6488) line 1, near "80min"
(Missing operator before min?)
2013.05.06 20:40:28 3: Rolladensteuerung return value: Unrecognized character \xC3; marked by <-- HERE after untergang <-- HERE near column 638 at (eval 6488) line 1.
das mittlere Anführungszeichen in "teilweise "wolkig" könnte das Problem verursachen!
zusätzlich muss es:
+{sunset_abs(-4800)} lauten!
}elsif (($Sonne eq "sonnig") || ($Sonne eq "teilweise wolkig")){\
fhem("define Schoenwetter at +{sunset_abs(-4800)} set RolladenSchlafzimmer on");;\
Log 3, "Es ist schoenes Wetter - Rollo 80min vor Sonnenuntergang öffnen...");;\
}elsif (($hour>= 12) && ($hour<=18) && (Value("RolladenSchlafzimmer") ne "on")) && (($mmonth >= 5) || ($mmonth <= 9)) && (($Sonne ne "sonnig") || ($Sonne ne "teilweise wolkig")){\
fhem ("set RolladenSchlafzimmer on");;\
MfG, MisterEltako
Habe noch einen Gedankenanstoss für dich, damit das ganze übersichtlicher wird:
Das ganze wie oben schon erwähnt in die 99_myUtils.pm packen und über Definition in Fhem.cfg aufrufen.
# in fhem.cfg:
define Rollladensteuerung notify Wetter {\
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");;\
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");;\
fhem("define Rollo_zu at +{sunrise_abs()} set RollladenSchlafzimmer on");;\
fhem("define Rollo_zu at +{sunset_abs()} set RollladenSchlafzimmer off");;\
Beschattungssteuerung($hour, $mmonth);;\
}
# 99_myUtils.pm:
sub
Beschattungssteuerung($$) {
# Parameter: $hour, $mmonth
my $hour = shift;
my $mmonth = shift;
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");;\
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");
if (($Temp==999) || ($Sonne eq "kein Wert")) {
Log 3, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";
return;
}
if (($hour >= 12)&& ($hour <= 21)){
if (($mmonth >= 5) && ($mmonth <= 9)){
Log 3, "Beschattungssteuerung aktiv";
if (($Temp >= 18)&& && (Value("RolladenSchlafzimmer") ne "off")){
if (($Sonne eq "sonnig")||($Sonne eq "teilweise wolkig")){
Log 3, "Beschattungsposition wird angefahren...";
Log 3, "Rollladen öffnet 80 min vor Sunset";
fhem("set RollladenSchlafzimmer off");
fhem("define Schoenwetter at +{sunset_abs(-4800)} set RollladenSchlafzimmer on");
}else{
Log 3, "nur Beschattungsposition wird angefahren...";
fhem("set RollladenSchlafzimmer off");
}
}elsif (($Temp < 18)&& (Value("RolladenSchlafzimmer") ne "on")){
Log 3, "Rollladen oeffnen - es ist zu kalt!";
fhem("set RollladenSchlafzimmer on");
}
}
}
}
Ich kann es leider erst heute Abend testen. Also kleine "Fehlerchen" sind event. noch drin.
MfG, MisterEltako.
Vielen Dank erst einmal, ich habe es jetzt mal versucht micht der 99_myUtils.pm. Werden die Daten in der Datei Original stehen benötigt, oder kann ich das alles löschen. Oder lieber drunter hängen?
Habe mit das mal angesehen, nun muss ich erst mal wieder verstehen was das alles heißt.
Es sieht aber so aus, dass:
}elsif (($Sonne eq "sonnig") || ($Sonne eq "teilweise wolkig")){\
fhem("define Schoenwetter at +{sunset_abs(-4800)} set RolladenSchlafzimmer on");;\
Log 3, "Es ist schoenes Wetter - Rollo 80min vor Sonnenuntergang öffnen...");;\
}elsif (($hour>= 12) && ($hour<=18) && (Value("RolladenSchlafzimmer") ne "on")) && (($mmonth >= 5) || ($mmonth <= 9)) && (($Sonne ne "sonnig") || ($Sonne ne "teilweise wolkig")){\
fhem ("set RolladenSchlafzimmer on");;\
und das Skript für die 99_myUtils.pm nicht ganz überein passen. Die Temperatur <18 Grad "Rollladen oeffnen - es ist zu kalt!"muss ganz weg. Es soll nur hochgefahren werden wenn nicht Sonnig und nicht teilweise wolkig, sowie das mit der Monatsangabe und Sunset, aber das ist ja drin.
Habe das unten mal probiert, beim speichern der 99_myUtils.pm kommt:
Can't modify single ref constructor in scalar assignment at ./FHEM/99_Utils.pm line 156, near ");" syntax error at ./FHEM/99_Utils.pm line 168, near "&& &&" syntax error at ./FHEM/99_Utils.pm line 186, near "}" Missing right curly or square bracket at ./FHEM/99_Utils.pm line 187, at end of line
Wäre super wenn Du da noch einmal nachsehen kannst.
Also den bisherigen Code musst du komplett aus der fhem.cfg löschen.
in die 99_myUtils.pm kopierst du:
sub
Beschattungssteuerung($$) {
# Parameter: $hour, $month
my $hour = shift;
my $month = shift;
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");
if (($Temp==999) || ($Sonne eq "kein Wert")) {
Log 3, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";
return;
}
if (($month >= 5) && ($month <= 9)){
Log 3, "Beschattungssteuerung aktiv";
if (($hour >= 12)&& ($hour <= 21)){
if (($Temp >= 18)&&(Value("RolladenSchlafzimmer") ne "off")){
if (($Sonne eq "sonnig")||($Sonne eq "teilweise wolkig")){
Log 3, "Beschattungsposition wird angefahren...";
Log 3, "Rollladen öffnet 80 min vor Sunset";
fhem("set RollladenSchlafzimmer off");
if (defined($defs{Schoenwetter})) {fhem('delete Schoenwetter')};
fhem("define Schoenwetter at +{sunset_abs(-4800)} set RollladenSchlafzimmer on");
}elsif(Value("RollladenSchlafzimmer") ne "on"){
Log 3, "nur Beschattungsposition wird aufgehoben...";
if (defined($defs{Schoenwetter})) {fhem('delete Schoenwetter')};
fhem("set RollladenSchlafzimmer on");
}
}
}
}
}
und in die fhem.cfg kopierst du:
define Rollladensteuerung notify Wetter:condition.* {\
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");;\
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");;\
fhem("define Rollo_zu at +{sunrise_abs()} set RollladenSchlafzimmer on");;\
fhem("define Rollo_zu at +{sunset_abs()} set RollladenSchlafzimmer off");;\
Beschattungssteuerung($hour, $month);;\
}
Test über: trigger Wetter sonnig
MfG, MisterEltako
Habe nun alles eingefügt und dieses hier im Log:
2013.05.08 12:26:25 3: define Rollo_zu at +{sunset_abs()} set RolladenSchlafzimmer off : Rollo_zu already defined, delete it first
2013.05.08 12:26:25 3: Beschattungssteuerung aktiv
2013.05.08 12:56:25 3: define Rollo_zu at +{sunrise_abs()} set RolladenSchlafzimmer on : Rollo_zu already defined, delete it first
2013.05.08 12:56:25 3: define Rollo_zu at +{sunset_abs()} set RolladenSchlafzimmer off : Rollo_zu already defined, delete it first
2013.05.08 12:56:25 3: Beschattungssteuerung aktiv
define Rollladensteuerung notify Wetter:condition.* {\
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");;\
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");;\
if (defined($defs{Rollo_zu})) {fhem('delete Rollo_zu')};
if (defined($defs{Rollo_auf})) {fhem('delete Rollo_auf')};
fhem("define Rollo_zu at +{sunrise_abs()} set RollladenSchlafzimmer on");;\
fhem("define Rollo_auf at +{sunset_abs()} set RollladenSchlafzimmer off");;\
Beschattungssteuerung($hour, $month);;\
}
MfG, MisterEltako.
Beim speichern bekomme ich die Fehlermeldung:
Unknown command if, try help Unknown command fhem("define, try help
Im Log steht:
2013.05.08 20:13:11 3: Rolladensteuerung return value: Missing right curly or square bracket at (eval 8635) line 2, at end of line
syntax error at (eval 8635) line 2, at EOF
Müssten diese Zeilen:
fhem("define Rollo_zu at +{sunrise_abs()} set RolladenSchlafzimmer on");;\
fhem("define Rollo_auf at +{sunset_abs()} set RolladenSchlafzimmer off");;\
nicht
fhem("define Rollo_zu at +{sunrise_abs()} set RolladenSchlafzimmer off");;\
fhem("define Rollo_auf at +{sunset_abs()} set RolladenSchlafzimmer on");;\
heißen, wenn "runterfahren" off ist bei FS20. Oder verstehe ich diese Zeile falsch?
Schon wieder Flüchtigkeitsfehler! Nun aber, oder? ;-)
define Rollladensteuerung notify Wetter:condition.* {\
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");;\
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");;\
if (defined($defs{Rollo_zu})) {fhem('delete Rollo_zu')};;\
if (defined($defs{Rollo_auf})) {fhem('delete Rollo_auf')};;\
fhem("define Rollo_auf at +{sunrise_abs()} set RollladenSchlafzimmer on");;\
fhem("define Rollo_zu at +{sunset_abs()} set RollladenSchlafzimmer off");;\
Beschattungssteuerung($hour, $month);;\
}
MfG, MisterEltako.
Hallo,
gestern hätte es laut Readings klappen müssen, leider nicht nichts passiert. Im Log steht:
2013.05.09 16:03:52 3: Beschattungssteuerung aktiv
2013.05.09 16:33:53 3: Beschattungssteuerung aktiv
2013.05.09 17:03:56 3: Beschattungssteuerung aktiv
2013.05.09 17:33:52 3: Beschattungssteuerung aktiv
2013.05.09 18:03:52 3: Beschattungssteuerung aktiv
Was mir noch aufgefallen ist,wenn ich die 99_Utils.pm "speichere" erscheint im Log:
Subroutine Utils_Initialize redefined at ./FHEM/99_Utils.pm line 11.
Subroutine time_str2num redefined at ./FHEM/99_Utils.pm line 17.
Subroutine min redefined at ./FHEM/99_Utils.pm line 25.
Subroutine max redefined at ./FHEM/99_Utils.pm line 33.
Subroutine abstime2rel redefined at ./FHEM/99_Utils.pm line 41.
Subroutine trim redefined at ./FHEM/99_Utils.pm line 62.
Subroutine ltrim redefined at ./FHEM/99_Utils.pm line 75.
Subroutine rtrim redefined at ./FHEM/99_Utils.pm line 87.
Subroutine UntoggleDirect redefined at ./FHEM/99_Utils.pm line 99.
Subroutine UntoggleIndirect redefined at ./FHEM/99_Utils.pm line 122.
Subroutine Beschattungssteuerung redefined at ./FHEM/99_Utils.pm line 151.
Muss ich zum testen "trigger Wetter sonnig" oben bei Fhem eingeben? Dort passiert dann gar nichts.
Das mit den Logeinträgen beim Speichern ist normal. Besser wäre es, wenn du eine eigene 99_myUtils anlegst, indem du 99_Utils öffnest und als 99_myUtils.pm speicherst. Dann musst du 99_myUtils öffnen, den gesamten Inhalt markieren und löschen. Dann den nachfolgenden gepostetet Teil komplett (auch die 1; ) einfügen.
Zum nicht schalten: Ich habe in meinem geposteten Code versehentlich die if-Abfrage mit Rolladen statt Rollladen geschrieben. Bitte überprüfen, ob das bei dir übereinstimmt.
package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}
#---------------------------------------------------------------------------------------------------
#---------------------------------------------------------------------------------------------------
sub
Beschattungssteuerung($$) {
# Parameter: $hour, $month
my $hour = shift;
my $month = shift;
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");
Log 3, "Readingswerte$hour, $month, $Temp, $Sonne");
if (($Temp==999) || ($Sonne eq "kein Wert")) {
Log 3, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";
return;}
if (($month >= 5) && ($month <= 9)){
Log 3, "Beschattungssteuerung aktiv";
if (($hour >= 12)&& ($hour <= 21)){
if (($Temp >= 18)&&(Value("RollladenSchlafzimmer") ne "off")){
if (($Sonne eq "sonnig")||($Sonne eq "teilweise wolkig")){
Log 3, "Beschattungsposition wird angefahren...";
Log 3, "Rollladen öffnet 80 min vor Sunset";
fhem("set RollladenSchlafzimmer off");
if (defined($defs{Schoenwetter})){fhem('delete Schoenwetter')}
fhem("define Schoenwetter at +{sunset_abs(-4800)} set RollladenSchlafzimmer on");
}elsif(Value("RollladenSchlafzimmer") ne "on"){
Log 3, "nur Beschattungsposition wird aufgehoben...";
fhem("set RollladenSchlafzimmer on");
}
}
}
}
}
1;
MfG, MisterEltako.
Was mache ich mit der alten "99_Utils.pm", Datei komplett löschen, den Inhalt komplett löschen, oder den Teil mit der Beschattungssteuerung löschen?
Beim speichern der Datei "99_myUtils.pm" bekomme ich (die 1; ist mit dabei) diese Fehler:
ERROR:
syntax error at ./FHEM/99_myUtils.pm line 23, near ""Readingswerte$hour, $month, $Temp, $Sonne")"
Ich ändere die Skipte immer in "Rolladen", ist zwar die ganz alte Schreibweise,
aber was solls. Bei mir sind alle Aktoren so gespeichert.
Log 3, "Readingswerte$hour, $month, $Temp, $Sonne");
muss natürlich:
Log 3, "Readingswerte: $hour, $month, $Temp, $Sonne";
lauten.
Auf keine Fall die Orginal 99_Utils.pm oder deren Inhalt löschen!!!!
Nur den Teil, den du in deine eigene 99_myUtils.pm transferiert hast, kannst/solltest du aus der echten 99_Utils.pm löschen.
MfG, MisterEltako
Sieht sehr gut aus:
2013.05.10 19:23:14 3: Readingswerte: 19, 5, 15, überwiegend wolkig
2013.05.10 19:23:14 3: Beschattungssteuerung aktiv
Nun hoffe ich mal auf einen schönen Tag, ob der Ablauf so ist wie ich mir das vorgestellt habe. Werde auf jeden Fall nochmal berichten...
Vielen Dank, ohne das Forum und besonderst MisterEltako hätte ich es nie gebacken bekommen.
Sehr schön :-)
Heute hatten wir mal gutes Wetter, und der Rolladen ist in die Beschattungsposition gefahren.
2013.05.15 12:07:47 3: Readingswerte: 12, 5, 20, teilweise wolkig
2013.05.15 12:07:47 3: Beschattungssteuerung aktiv
2013.05.15 12:07:47 3: Beschattungsposition wird angefahren...
2013.05.15 12:07:47 3: Rolladen öffnet 80 min vor Sunset
2013.05.15 12:07:47 2: FS20 set RolladenSchlafzimmer off
2013.05.15 12:07:48 2: FS20 RolladenSchlafzimmer off
Nun habe ich mit mal die 99_myUtils.pm angesehen. Wie kann ich in dieser Zeile noch hinzufügen, dass
wenn nicht sonnig und nicht teilweise wolkig der Rolladen auch wieder hochfährt?
fhem("define Schoenwetter at +{sunset_abs(-4800)} set RolladenSchlafzimmer on");
Wir hatten das in der fhem.cfg mal so geschrieben:
}elsif (($hour>= 12) && ($hour<=18) && (Value("RolladenSchlafzimmer") ne "on")) && (($mmonth >= 5) || ($mmonth <= 9)) && (($Sonne ne "sonnig") || ($Sonne ne "teilweise wolkig")){\
Also wenn du noch den o.g. Code von mir verwendest könnte das so lauten:
sub
Beschattungssteuerung($$) {
# Parameter: $hour, $month
my $hour = shift;
my $month = shift;
my $Temp= ReadingsVal("Wetter","fc1_low_c","999");
my $Sonne= ReadingsVal("Wetter","fc1_condition","kein Wert");
Log 3, "Readingswerte$hour, $month, $Temp, $Sonne");
if (($Temp==999) || ($Sonne eq "kein Wert")) {
Log 3, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";
return;}
if (($month >= 5) && ($month <= 9)){
Log 3, "Beschattungssteuerung aktiv";
if (($hour >= 12)&& ($hour <= 21)){
if (($Temp >= 18)&&(Value("RollladenSchlafzimmer") ne "off")){
if (($Sonne eq "sonnig")||($Sonne eq "teilweise wolkig")){
Log 3, "Beschattungsposition wird angefahren...";
Log 3, "Rollladen öffnet 80 min vor Sunset";
fhem("set RollladenSchlafzimmer off");
}elsif(Value("RollladenSchlafzimmer") ne "on"){
#wenn nicht mehr ,,sonnig" oder ,,teilweise wolkig" dann:
Log 3, " Beschattungsposition wird aufgehoben...";
fhem("set RollladenSchlafzimmer on");
};
#Beschattung egal ob sonnig oder nicht bei >18° 80min vor Sonnenuntergang
# aufgehoben
if (defined($defs{Schoenwetter})){fhem('delete Schoenwetter')};
fhem("define Schoenwetter at +{sunset_abs(-4800)} set RollladenSchlafzimmer on");
}
}
}
}
MfG, MisterEltako
Hallo Miteinander, ich habe eine Sonnenschutzvariante laufen, die meine Zwecke erfüllt und nicht so aufgebläht ist. Ich greife auch auf Yahoo zurück. Da das Yahoowetter nicht immer so angegeben ist wie die realen Bedingungen sind, erschien es mir völlig ausreichend, nicht jede mögliche Bedingung in die Auswertung einzubeziehen - d.h. man sollte nicht versuchen, eine Genauigkeit zu erzielen welche durch die Eingangsparameter nicht möglich sein kann:
define WZ_Rolare_SoSchu at *10:01 {Log 1, "Max ist ".ReadingsVal("Wetter_Borsdorf","fc1_high_c",0)}{if ((Value("Rolaautomatik") eq "Ein") && ($month> 4) && ($month< 10) &&( ReadingsVal("Wetter_Borsdorf","fc1_high_c",0)>23) && (Value("WZ_Balkon") =~ m"geschlossen")) {fhem "set WZ_Rolare SoSchu";;}}
attr WZ_Rolare_SoSchu room 001Wohnzimmer
Ich prüfe von Mai bis September um 10:01 Uhr, ob der prognostizierte Höchstwert größer als 23 Grad ist und wenn die Rolaautomatik (ein Dummy) "Ein" und die Balkontür "geschlossen" ist wird der Rolare in Sonnenschutzposition gefahren (bei mir 45%). Das Zimmer ist nicht völlig dunkel (Zimmerpflanzen), wird aber nicht aufgeheizt. Um 16 Uhr lasse ich dann den Rola ohne weitere Bedingungen wieder hochfahren. Diese Steuerung hat sich bei mir im letzten Sommer schon bewährt und läuft in einer Includedatei.
Und noch mal Danke an Mr.Eltako an die Unterstützung, die Klammern richtig zu sortieren.
Schöne Pfingsten Uwe
Hi, locodriver!
Ist sicher auch eine gute Lösung, aber ich finde das schöne an FHEM ist, das alles möglich ausprobiert werden kann und individuell verfeinert werden kann. Ich führe die Codezeilen lieber etwas ausführlicher auf, um es später ohne großes Überlegen nachvollziehen zu können. Zudem mag ich es wenn eigene Logeinträge auf Fehler im Ablauf hinweisen bzw. diese automatisch abgefangen werden.
Aber letztendlich wird jeder sein eigenes Prinzip haben. Ich finde gerade das Herumexperimentieren so spannend an FHEM im Vergleich zu anderen Hausautomationssytemen. Da kann man immer dazu lernen. Einfach abschreiben, kann doch jeder ;o).
MFG, MisterEltako
So, nachdem nun ENDLICH der Sommer gekommen ist, und auch mal die Sonne scheint, läßt sich die Steuerung unter realen Bedingungen testen.
Ich habe nun noch 2 weitere Rollläden die sich auf der Sonnenseite befinden eingefügt, und das die Zimmer ganz dunkel sind habe ich mit off-for-timer geändert. Ein wenig Licht ist schon nicht schlecht.
Um das ganze nicht ganz so dolle aufzublähen wie auch schon locodriver schrieb, habe ich das schließen bei Sonnenuntergang zu festen Zeiten geändert.
Ach so, heute sagte Yahoo Wetter den ganzen Tag "bewölkt", dabei schien hier nur die Sonne mit ein paar Wolken. Ich habe nun bewölkt auch noch mit reingenommen.
Ich hänge hier nochmal meinen Code an, mit der bitte das dort nochmal drübergesehen wird. Mit der "fhem.cfg" bin ich mir nicht so sicher ob da alles OK ist.
fhem.cfg
define Rolladensteuerung notify Wetter:condition.* {\
my $Temp= ReadingsVal("Wetter","temp_c","999");;\
my $Sonne= ReadingsVal("Wetter","condition","kein Wert");;\
if (defined($defs{Rollo_zu})) {fhem('delete Rollo_zu')};;\
if (defined($defs{Rollo_auf})) {fhem('delete Rollo_auf')};;\
fhem("define Rollo_auf at *21:00 set RolladenSchlafzimmer on;;set RolladenWohnzimmer on");;\
Beschattungssteuerung($hour, $month);;\
}
99_myUtils
sub
Beschattungssteuerung($$) {
# Parameter: $hour, $month
my $hour = shift;
my $month = shift;
my $Temp= ReadingsVal("Wetter","temp_c","999");
my $Sonne= ReadingsVal("Wetter","condition","kein Wert");
Log 3, "Readingswerte: $hour, $month, $Temp, $Sonne";
if (($Temp==999) || ($Sonne eq "kein Wert")) {
Log 3, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";
return;}
if (($month >= 5) && ($month <= 9)){
Log 3, "Beschattungssteuerung aktiv";
if (($hour >= 13)&& ($hour <= 20)){
if (($Temp >= 20)&&(Value("RolladenSchlafzimmer") ne "off-for-timer 14")){
if (($Sonne eq "sonnig")||($Sonne eq "teilweise wolkig")||($Sonne eq "bewölkt")){
Log 3, "Beschattungsposition wird angefahren...";
Log 3, "Rolladen öffnet um 21:00 Uhr";
fhem("set RolladenSchlafzimmer off-for-timer 14");
fhem("set RolladenWohnzimmer off-for-timer 14");
fhem("set RolladenKinderzimmer off-for-timer 14");
}elsif(Value("RolladenSchlafzimmer") ne "on"){
#wenn nicht mehr ,,sonnig" oder ,,teilweise wolkig oder "bewolkt" dann:
Log 3, " Beschattungsposition wird aufgehoben...";
fhem("set RolladenSchlafzimmer on");
fhem("set RolladenWohnzimmer on");
};
#Beschattung egal ob sonnig oder nicht bei >20° oder 21:00 Uhr
# aufgehoben
if (defined($defs{Schoenwetter})){fhem('delete Schoenwetter')};
}
}
}
}
1;
fhem.cfg:
define Rolladensteuerung notify Wetter:condition.* {\
fhem("define Rollo_auf at *21:00 set RolladenSchlafzimmer on;;set RolladenWohnzimmer on");;\
Beschattungssteuerung();;\
}
99_myUtils.pm
sub
Beschattungssteuerung() {
my $Temp= ReadingsVal("Wetter","temp_c","999");
my $Sonne= ReadingsVal("Wetter","condition","kein Wert");
Log 3, "Readingswerte: $Temp, $Sonne";
....u.s.w.
die Überprüfung, ob definiert brauchst du nach deinen Änderungen nicht mehr:
if (defined($defs{Rollo_zu})) {fhem('delete Rollo_zu')};;\
if (defined($defs{Rollo_auf})) {fhem('delete Rollo_auf')};;\
genauso brauchst du die Parameter nicht übergeben, da du sie ja direkt in der 99_myUtils abfragst
So mag es vielleicht funktionieren, aber für mich wäre wichtig, dass der Rollladen Sonnenstandsabhängig oder Helligkeitsabhängig schliesst. Aber erneut ausbaufähig ist der Code .... ;o)
MfG, MisterEltako
Ich habe die fhem.cfg so gespeichert, nun habe ich die Fehlermeldung:
2013.06.07 16:57:18 3: Rolladensteuerung return value: Not enough arguments for main::Beschattungssteuerung at (eval 4629) line 1, near "()"
Die Rollläden sollen um 21 Uhr öffnen, danach ist ein Helligkeitssensor dafür da um bei Dämmerung die Rollläden wieder runter zu fahren. Diser ist direkt Programmiert, bei Ausfall der Fritzbox geht es wenigstens noch Morgens hoch und Abends wieder runter.
Hier nochmal meine 99_myUtils.pm, was passt da mal wieder nicht. Ich werd noch verrückt ...
sub
Beschattungssteuerung($$) {
# Parameter: $hour, $month
my $hour = shift;
my $month = shift;
my $Temp= ReadingsVal("Wetter","temp_c","999");
my $Sonne= ReadingsVal("Wetter","condition","kein Wert");
Log 3, "Readingswerte: $hour, $month, $Temp, $Sonne";
if (($Temp==999) || ($Sonne eq "kein Wert")) {
Log 3, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";
return;}
if (($month >= 5) && ($month <= 9)){
Log 3, "Beschattungssteuerung aktiv";
if (($hour >= 13)&& ($hour <= 20)){
if (($Temp >= 20)&&(Value("RolladenSchlafzimmer") ne "off-for-timer 14")){
if (($Sonne eq "sonnig")||($Sonne eq "teilweise wolkig")||($Sonne eq "bewölkt")){
Log 3, "Beschattungsposition wird angefahren...";
Log 3, "Rolladen öffnet um 21:00 Uhr";
fhem("set RolladenSchlafzimmer off-for-timer 14");
fhem("set RolladenWohnzimmer off-for-timer 14");
fhem("set RolladenKinderzimmer off-for-timer 14");
}elsif(Value("RolladenSchlafzimmer") ne "on"){
#wenn nicht mehr ,,sonnig" oder ,,teilweise wolkig" oder "bewölkt" dann:
Log 3, " Beschattungsposition wird aufgehoben...";
fhem("set RolladenSchlafzimmer on");
fhem("set RolladenWohnzimmer on");
fhem("set RolladenKinderzimmer on");};
}
}
}
}
1;
Schau doch meinen vorigen Post nochmals an! Du musst auch den Teil in der 99_myUtils.pm ändern!
MfG, MisterEltako
Ok, hab ich mir nochmal angesehn. Du meintest den oberen Teil der geändert werden musste. Ein speichern brachte:
Global symbol "$hour" requires explicit package name at ./FHEM/99_myUtils.pm line 21. Global symbol "$month" requires explicit package name at ./FHEM/99_myUtils.pm line 21. Global symbol "$month" requires explicit package name at ./FHEM/99_myUtils.pm line 27. Global symbol "$month" requires explicit package name at ./FHEM/99_myUtils.pm line 27. Global symbol "$hour" requires explicit package name at ./FHEM/99_myUtils.pm line 29. Global symbol "$hour" requires explicit package name at ./FHEM/99_myUtils.pm line 29.
Ich hoffe ich hab das kapiert und kein blödsin gemacht.
Sorry, jetzt habe ich gepennt. Du hast je doch noch $hour und $month Vergleiche drin. Dachte, das du die auch entfernt hast.
Also so:
fhem.cfg
define Rolladensteuerung notify Wetter:condition.* {\
fhem("define Rollo_auf at *21:00 set RolladenSchlafzimmer on;;set RolladenWohnzimmer on");;\
Beschattungssteuerung($hour, $month);;\
}
99_myUtils:
sub
Beschattungssteuerung($$) {
# Parameter: $hour, $month
my $hour = shift;
my $month = shift;
my $Temp= ReadingsVal("Wetter","temp_c","999");
my $Sonne= ReadingsVal("Wetter","condition","kein Wert");
Log 3, "Readingswerte: $hour, $month, $Temp, $Sonne";
if (($Temp==999) || ($Sonne eq "kein Wert")) {
Log 3, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";
return;}
if (($month >= 5) && ($month <= 9)){
Log 3, "Beschattungssteuerung aktiv";
if (($hour >= 13)&& ($hour <= 20)){
if (($Temp >= 20)&&(Value("RolladenSchlafzimmer") ne "off-for-timer 14")){
if (($Sonne eq "sonnig")||($Sonne eq "teilweise wolkig")||($Sonne eq "bewölkt")){
Log 3, "Beschattungsposition wird angefahren...";
Log 3, "Rolladen öffnet um 21:00 Uhr";
fhem("set RolladenSchlafzimmer off-for-timer 14");
fhem("set RolladenWohnzimmer off-for-timer 14");
fhem("set RolladenKinderzimmer off-for-timer 14");
}elsif(Value("RolladenSchlafzimmer") ne "on"){
#wenn nicht mehr ,,sonnig" oder ,,teilweise wolkig oder "bewolkt" dann:
Log 3, " Beschattungsposition wird aufgehoben...";
fhem("set RolladenSchlafzimmer on");
fhem("set RolladenWohnzimmer on");
};
#Beschattung egal ob sonnig oder nicht bei >20° oder 21:00 Uhr
# aufgehoben
if (defined($defs{Schoenwetter})){fhem('delete Schoenwetter')};
}
}
}
}
1;
MfG, MisterEltako
Nun habe ich nur noch:
2013.06.08 07:09:00 3: define Rollo_auf at *21:00 set RolladenSchlafzimmer on;set RolladenWohnzimmer on : Rollo_auf already defined, delete it first
fhem.cfg
define Rolladensteuerung notify Wetter:condition.* {\
if (defined($defs{Rollo_auf})) {fhem('delete Rollo_auf')};;\
fhem("define Rollo_auf at *21:00 set RolladenSchlafzimmer on;;set RolladenWohnzimmer on");;\
Beschattungssteuerung($hour, $month);;\
}
MfG, MisterEltako
Danke, beim Speichern bekomme ich aber:
ERROR:
Please define Rollo_auf first
Ich weiß nicht ob es zusammenhängt, wenn das Wetter abgerufen wird schaltet jetzt der Rolladen Wohnzimmer auf on. Erst einmal ist es noch gar keine 13 Uhr, und warum will er hochfahren?
2013.06.08 12:05:21 3: Readingswerte: 12, 6, 21, bewölkt
2013.06.08 12:05:21 3: Beschattungssteuerung aktiv
2013.06.08 12:05:21 2: FS20 RolladenWohnzimmer on
define Rolladensteuerung notify Wetter:condition.* {\
if (defined($defs{Rollo_auf})) {fhem('delete Rollo_auf')};;\
fhem("define Rollo_auf at *21:00 {set RolladenSchlafzimmer on;;;;set RolladenWohnzimmer on")};;\
Beschattungssteuerung($hour, $month);;\
}
MfG, MisterEltako
Habe ich probiert, jetzt bekomme ich keine Readingswerte mehr. Wenn ich im Weather Modul die Werte hole, kommt im Log:
2013.06.08 21:01:36 3: Rolladensteuerung return value: Unmatched right curly bracket at (eval 4776) line 1, at end of line
syntax error at (eval 4776) line 1, near "; }"
Um 21 Uhr ist nichts passiert.
define Rolladensteuerung at +00:00:15 {\
if (defined($defs{Rollo_auf})) {\
fhem('delete Rollo_auf');;\
}\
fhem("define Rollo_auf at *21:00 {set RolladenSchlafzimmer on;;;;set RolladenWohnzimmer on}");;\
Beschattungssteuerung($hour, $month);;\
}
MfG, MisterEltako
Die Fehlermeldungen sind jetzt alle weg. Nach dem Speichern wurden 1x die Readingswerte abgerufen, danach leider nicht mehr.
2013.06.09 08:21:50 3: Readingswerte: 8, 6, 11, überwiegend wolkig
2013.06.09 08:21:51 3: Beschattungssteuerung aktiv
2013.06.09 09:51:34 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 651520
2013.06.09 10:21:34 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 651520
2013.06.09 11:06:34 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 651520
2013.06.09 11:36:34 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 651520
2013.06.09 12:36:34 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 651520
2013.06.09 13:51:34 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 651520
2013.06.09 14:51:35 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 651520
2013.06.09 17:36:33 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 651520
2013.06.09 18:06:33 1: [TWILIGHT] No Weather location found at yahoo weather for location ID: 651520
Hi!
Du musst natürlich das zum Test geänderte:
define Rolladensteuerung at +00:00:15 {\
wieder durch dein:
define Rolladensteuerung notify Wetter:condition.* {\
erstetzen...
MfG, MisterEltako.
PS: Vielleicht stellst du es doch noch etwas um, sonst wird mit jeder Wetteränderung Rollo_auf gelöscht und wieder angelegt. Macht eigentlich keinen Sinn:
define Rolladensteuerung notify Wetter:condition.* {\
if (!defined($defs{Rollo_auf})) {\
fhem("define Rollo_auf at *21:00 {set RolladenSchlafzimmer on;;;;set RolladenWohnzimmer on}");;\
}\
Beschattungssteuerung($hour, $month);;\
}
ZitatDu musst natürlich das zum Test geänderte:
define Rolladensteuerung at +00:00:15 {\
wieder durch dein:
define Rolladensteuerung notify Wetter:condition.* {\
erstetzen...
Man man, ich blicke aber auch gar nichts...
Die Readingswerte sind nun auf jeden Fall wieder da !
Heute war sehr gut zum Testen ob der Rolladen vor 21 Uhr hochfährt wenn 20 Grad unterschritten werden. Leider
ist nichts passiert, um 21 Uhr kam dann die Fehlermelung
2013.06.10 21:00:00 3: Bareword "on" not allowed while "strict subs" in use at (eval 5020) line 1.
Bareword "on" not allowed while "strict subs" in use at (eval 5020) line 1.
define Rolladensteuerung notify Wetter:condition.* {\
if (!defined($defs{Rollo_auf})) {\
fhem("define Rollo_auf at *21:00 set RolladenSchlafzimmer on;;;;set RolladenWohnzimmer on");;\
}\
Beschattungssteuerung($hour, $month);;\
}
Ein paar Klammern zuviel....
MfG, MisterEltako
Dann habe ich wiede ein
ERROR:
Please define Rollo_auf first
beim Speichern.
Geht es so?
define Rollo_auf at *21:00 set RolladenSchlafzimmer on;;;;set RolladenWohnzimmer on
define Rolladensteuerung notify Wetter:condition.* {\
Beschattungssteuerung($hour, $month);;\
}
eventuell auch Mal statt ;;;; nur ;; einsetzen (kann es gerade nicht testen)
MfG, MisterEltako.
Ich habe alle möglichen Variation probiert. Entweder gleich eine Fehlermeldung beim Speichern, oder beim ausführen um 21.00 Uhr.
ich wollte mal wissen wie das hier nun zu Ende gegangen, funktioniert die Beschattungssteuerung ohne Probleme dann würde ich sie gern mal übernehmen.?
hallo zusammen
da mittlerweilen fast jeden Tag schön Wetter ist und ich knapp vorher noch 3 HM Jalousienaktoren verbaucht habe, bin ich im Moment am basteln meiner Steuerung. Dabei habe ich diese Beispiel genommen und entsprechend für mich abgeändert.
Grundsätzlich hat das ganze heute funktioniert. Was mich allerdings extrem stört ist, dass jedesmal wenn ich die yahoo Wetter Daten hole auch der Steuerbefehl wieder neu ausgelöst wird. Das ist aus meiner Sicht nicht unbedingt nötig. Kann das irgendwie verhindert werden?
Mir ist klar, es hat mit dem event Reading zu tun. Das Problem dabei ist aber, dass sich die Temperatur ja die ganze Zeit ändert, die condition jedoch sehr selten.
Hat jemand eine Lösung?
# fhem.cfg
define n_RollladensteuerungS notify Wetter:condition.* { Beschattungssteuerung($hour, $month) }
# 99_myUtils
Beschattungssteuerung($$) {
# Parameter: $hour, $month
my $hour = shift;
my $month = shift;
my $Temp= ReadingsVal("Wetter","temp_c","999");
my $Sonne= ReadingsVal("Wetter","condition","kein Wert");
Log 3, "Readingswerte: $hour, $month, $Temp, $Sonne";
if (($Temp==999) || ($Sonne eq "kein Wert")) {
Log 3, "Yahoo-Wetter nicht erreichbar oder kein Wert geliefert";
return;}
if (($month >= 3) && ($month <= 10)){
Log 3, "Beschattungssteuerung aktiv";
if (($hour >= 10)&& ($hour <= 18)){
if (($Temp >= 10)&&(Value("Rollladen_Kind") ne "off")){
if (($Sonne eq "sonnig")||($Sonne eq "teilweise wolkig")||($Sonne eq "heiter")||($Sonne eq "bewölkt")){
Log 3, "Beschattungsposition wird angefahren...";
Log 3, "Rolladen öffnet um 17:30 Uhr";
fhem("set Rollladen_Eltern_1 30");
fhem("set Rollladen_Eltern_2 25");
fhem("set Rollladen_Kind 30");
}elsif(Value("Rollladen_Kind") ne "on"){
#wenn nicht mehr ,,sonnig" oder ,,teilweise wolkig oder "heiter" oder "bewölkt" dann:
Log 3, " Beschattungsposition wird aufgehoben...";
fhem("set Rollladen_Eltern_1 auf");
fhem("set Rollladen_Eltern_2 auf");
fhem("set Rollladen_Kind auf");
};
}
}
}
}
Das entsprechende Log dazu:
2015.04.22 12:35:51 3: CUL_HM set Rollladen_Kind 30
2015.04.22 12:35:51 3: CUL_HM set Rollladen_Eltern_2 25
2015.04.22 12:35:51 3: CUL_HM set Rollladen_Eltern_1 30
2015.04.22 12:35:51 3: Rolladen öffnet um 17:30 Uhr
2015.04.22 12:35:51 3: Beschattungsposition wird angefahren...
2015.04.22 12:35:51 3: Beschattungssteuerung aktiv
2015.04.22 12:35:51 3: Readingswerte: 12, 4, 18, heiter
2015.04.22 12:15:51 3: CUL_HM set Rollladen_Kind 30
2015.04.22 12:15:51 3: CUL_HM set Rollladen_Eltern_2 25
2015.04.22 12:15:51 3: CUL_HM set Rollladen_Eltern_1 30
2015.04.22 12:15:51 3: Rolladen öffnet um 17:30 Uhr
2015.04.22 12:15:51 3: Beschattungsposition wird angefahren...
2015.04.22 12:15:51 3: Beschattungssteuerung aktiv
2015.04.22 12:15:51 3: Readingswerte: 12, 4, 17, heiter
2015.04.22 11:55:51 3: CUL_HM set Rollladen_Kind 30
2015.04.22 11:55:51 3: CUL_HM set Rollladen_Eltern_2 25
2015.04.22 11:55:51 3: CUL_HM set Rollladen_Eltern_1 30
2015.04.22 11:55:51 3: Rolladen öffnet um 17:30 Uhr
2015.04.22 11:55:51 3: Beschattungsposition wird angefahren...
2015.04.22 11:55:51 3: Beschattungssteuerung aktiv
2015.04.22 11:55:51 3: Readingswerte: 11, 4, 17, heiter
Hallo,
nur so'ne Idee, vielleicht mit einem
attr Wetter event-on-change-reading condition
um das Notify n_RollladensteuerungS nur zu triggern, wenn sich bei Abfrage des Wetters der Wert des Readings condition ändert (und eben nicht wenn der Wert gleich bleibt).
Ansonsten fallen mir nur Dummys zum Speichern des Status der Beschattung und Erweiterung der if-Abfrage in der 99_myUtils ein oder, das würde ich machen, die komplette Beschattungssteuerung über ein DOIF abzubilden.
Viele Grüße,
Andreas
oha, jetzt bringst Du mich ins Rudern
DOIF Abfrage???
Kannst Du mir etwas auf die Sprünge helfen? wie füge ich die einzelnen Kriterien ein?
Sorry, wollte Dich jetzt nicht verwirren.
Infos zum mächtigen DOIF findest Du in der Commandref (http://fhem.de/commandref_DE.html#DOIF) (in der deutschen Version sind viele, viele Beispiele).
Probiere es einfach erstmal mit dem event-on-change Attribut.
Viele Grüße,
Andreas
Hallo, ich bins nochmals. Besten Dank für den Hinweis. Habe mir das ganze DOIF durchgelesen und steh etwas auf dem Schlauch. Ich denke den Code würde ich zusammen bringen. Was mir noch fehlt ist mein Wunsch, siehe meine 99_myUtyls, in ein DOIF zu übersetzen. Kannst Du mir kurz behilflich sein..
Nicht falsch verstehen, ich möchte nicht das du mir das DOIF schreibst. Das möchte ich learning by Doing selber machen. Sondern ich würde mich über die Umgangssprachliche Abfolge, analog meiner Sub Beschattung, freuen!
Hm.....ich hab´s mir relativ einfach gemacht......Einen Helligkeitssensor an die Scheibe gepappt. Den Wert abgelesen,bei welchem ich möchte das die Rolläden bis auf 75% herunterfahren und frage dann dies mit Doif ab. Warum so kompliziert mit der Abfrage der Uhrzeit (nachts, morgens und abends ist´s selten hell ?) ;)
Welchen Helligkeitssensor hast du im Einsatz?
hab an diesem hier anstatt des Temperturfühlers einen LDR angeschlossen.
http://www.ebay.de/itm/331250723172?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
Woher hast du den LDR?
http://www.domohaus.de/de/Rollladen/Zubehoer/Elektrisch/Helligkeitssensor-fuer-Zeitschaltuhr-Micro-Sun-1-5m::223.html
Aber den kann ich wohl kaum mit einem HMLAN abfragen, oder??
Zitat von: Mumpitz am 23 April 2015, 21:26:20
Aber den kann ich wohl kaum mit einem HMLAN abfragen, oder??
Warum nicht?
Es kommt immer drauf an was du wie umbaust.
Edith: Äh ja, ein TX25 lässt sich per se NICHT per HM-Lan auswerten ::)
Es sei den du weißt was du wo umbauen musst und welche Firmware in den Controller gehört und wie diese geflasht wird.
Zitat von: Mumpitz am 23 April 2015, 21:26:20
Aber den kann ich wohl kaum mit einem HMLAN abfragen, oder??
nö, mittels jeelink
sodeli, nach langen hin und her habe ich mich doch entschieden, den Ansatz von locodriver zu nehmen. aber irgendwie habe ich auch da folgenden Fehler:
syntax error at (eval 7503) line 1, near "}}"
2015.04.27 20:48:00 3: OG_SoSchu: syntax error at (eval 7503) line 1, near ") {"
mein at:
fhem.cfg
*20:57 {Log 3, "Heute ist ".ReadingsVal("Wetter","fc1_condition",0)}{if ((Value("Auto_Beschattung") eq "on") && ($month> 3) && ($month< 11) &&((ReadingsVal("Wetter","fc1_condition",0) eq "sonnig")||(ReadingsVal("Wetter","fc1_condition",0) eq "heiter")) {fhem "set Beschattung_OG on"}}
wo liegt der Fehler? (2057 Uhr habe ich nur zum testen genommen. der Befehl wird, wenns dann läuft, um 1030 Uhr ausgeführt...)
Habe gestern noch die halbe Nacht probiert.. Leider habe ich immer die gleiche Meldung...
Eine ) zum korrekten Abschluss des if (...) Teils und das ; zwischen {Log 3...} und {if...} fehlen.
Gerade der Hinweis auf das ; ist zur Bearbeitung über das DEF des ats im Webinterface gedacht.
Ich empfehle den Artikel Konfiguration (http://www.fhemwiki.de/wiki/Konfiguration) im Wiki und besonders den Abschnitt Syntaxhervorhebung (http://www.fhemwiki.de/wiki/Konfiguration#Syntaxhervorhebung)
Vielleicht tut ihr euch zusammen (http://forum.fhem.de/index.php/topic,36696.0.html)?
;)
Sodeli, Dank deiner Hilfe hat es endlich geklappt! Merci vielmals!
Habe den Beitrag meines Leidensgenossen ebenfalls gelesen
mann, ich krieg eine Kriese!!!! Ich dachte ich hätte es endlich geschafft und habe die Autobeschattung heute eingeschaltet: Heute ist jedoch schlechtes Wetter, sodass die Rollläden oben bleiben sollten. Doch was ist passiert? Sie sind in Sonnenschutz gefahren...
Weiss jemand warum?
fhem.cfg
define OG_SoSchu at *10:45 {Log 3, "Das Wetter ist heute".ReadingsVal("Wetter","condition",0)};;{if ((Value("Auto_Beschattung") eq "on")&&(ReadingsVal("Wetter","condition",0) eq "sonnig" || "heiter" || "teilweise wolkig" || "heiss")) { Log 3, "Beschattungsposition wird angefahren...";;;; fhem("set Beschattung_OG on");;;;}}
Logfile
2015.05.01 10:45:00 3: CUL_HM set Rollladen_Eltern_2 30
2015.05.01 10:45:00 3: CUL_HM set Rollladen_Eltern_1 25
2015.05.01 10:45:00 3: CUL_HM set Rollladen_Lean 30
2015.05.01 10:45:00 3: Beschattungsposition wird angefahren...
2015.05.01 10:45:00 3: Das Wetter ist heuteSchauer
Beschattung_OG ist ein Dummy der diesen Notify auslöst:
n_Beschattungon_OG notify Beschattung_OG:on { fhem ("set Rollladen_Lean 30");;;; fhem ("set Rollladen_Eltern_1 25");;;; fhem ("set Rollladen_Eltern_2 30");;;; fhem ("define tmp_time1 at +00:01:00 set Rollladen_Lean 31");;;; fhem ("define tmp_time2 at +00:01:00 set Rollladen_Eltern_1 26");;;; fhem ("define tmp_time3 at +00:01:00 set Rollladen_Eltern_2 31")}
danke nochmals für die Hilfe....
Soso, die "Kriese".
Ich schlage vor, mal den Anfängerguide genauer zu lesen und sich über die Unterschiede zwischen FHEM- und Perl-Kommandos zu informieren.
LG
pah
ich bin echt am verzweifeln. Habe die entsprechenden Passagen im pdf gelesen und nach mir stimmt es jetzt auch... aber eben, nur nach mir und nicht nach fhem..... :-[
aus dem DEF kopiert:
*10:32 { if (Value("Auto_Beschattung") eq "on") && ((ReadingsVal("Wetter","condition",0) eq "Sonne") || (ReadingsVal("Wetter","condition",0) eq "Nebel")) { fhem("set Beschattung_OG on")}}
Nebel habe ich genommen da es heute nebelig ist...
Die jetztige Fehlermeldung im log
syntax error at (eval 1461) line 1, near "}}"
2015.05.02 10:32:00 3: OG_SoSchu: syntax error at (eval 1461) line 1, near ") &&"
Zitat von: Mumpitz am 02 Mai 2015, 10:35:52
ich bin echt am verzweifeln. Habe die entsprechenden Passagen im pdf gelesen und nach mir stimmt es jetzt auch... aber eben, nur nach mir und nicht nach fhem..... :-[
aus dem DEF kopiert:
*10:32 { if (Value("Auto_Beschattung") eq "on") && ((ReadingsVal("Wetter","condition",0) eq "Sonne") || (ReadingsVal("Wetter","condition",0) eq "Nebel")) { fhem("set Beschattung_OG on")}}
Nebel habe ich genommen da es heute nebelig ist...
Die jetztige Fehlermeldung im log
syntax error at (eval 1461) line 1, near "}}"
2015.05.02 10:32:00 3: OG_SoSchu: syntax error at (eval 1461) line 1, near ") &&"
Gerade als Anfänger solltest du mal deine ersten Schritte mit vereinfachter Syntax ohne Perl ausprobieren, z. B.
define di_Beschattung DOIF ([10:32] and [Auto_Beschattung] eq "on" and ([Wetter:condition] eq "Sonne" or [Wetter:condition] eq "Nebel"))
(set Beschattung_OG on)
hier sind ein paar Sonderzeichen weniger, die du vergessen könntest ;)
Weitere Beispiele siehe: http://fhem.de/commandref_DE.html#DOIF
Gruß
Damian
grossartig! Tausend Dank
Werde diesen auch mal probieren und für die Westfunktion einsetzen!
Habe die Perl Variante nochmals durchstudiert und mehrere Fehler korrigiert. Jetzt scheint er zu funktionieren...
*10:51 { if ((Value("Auto_Beschattung") eq "on") && ((ReadingsVal("Wetter","condition",0) eq "sonnig") || (ReadingsVal("Wetter","condition",0) eq "heiter") || (ReadingsVal("Wetter","condition",0) eq "teilweise wolkig") || (ReadingsVal("Wetter","condition",0) eq "heiss"))) { fhem("set Beschattung_OG on")}}
juppiiiiii :-)
Hallo zusammen
so, nach etlichen Stunden lesen, suchen, mailen und probieren habe ich meine Beschattungssteuerung fertig. Selbstverständlich möchte ich es nicht unterlassen, diese hier zu posten. Sie stammt zwar von einem absoluten Newbie, aber vielleicht kann doch jemand profitieren...
also, dieses DOIF schaltet einen Dummy Namens 'Beschattung_OG', und dies nur wenn der Dummy 'Auto_Beschattung' eingeschaltet ist. Zudem erst ab der Zeit wo die Sonne auf meine Südseite scheint (ab ca. 10:45). Das DOIF wird geschaltet, wenn es entweder sonnig, heiter, teilweise wolkig oder heiss ist. Die Beschattung wird aufgehoben, sobald es die anderen Konditionen hat (siehe Code)
define di_OG_SoSchu DOIF ([Auto_Beschattung] eq "on" and [Beschattung_OG] eq "off" and \
([Wetter:condition] eq "sonnig" or [Wetter:condition] eq "heiter" or \
[Wetter:condition] eq "teilweise wolkig" or [Wetter:condition] eq "heiss") and \
[10:45 - 17:30]) (set Beschattung_OG on,set Sonos_Wohnzimmer PlayURITemp \\192.168.17.5\SonosSpeak\BeschattungOG_ein.mp3 30,\
set pushmsg msg 'fhem' 'Die automatische Beschattung im Obergeschoss wurde aktiviert') \
DOELSEIF ([Auto_Beschattung] eq "on" and [Beschattung_OG] eq "on" and \
([Wetter:condition] eq "wolkig" or [Wetter:condition] eq "Schauer" or [Wetter:condition] eq "Nebel" or \
[Wetter:condition] eq "Gewitter" or [Wetter:condition] eq "vereinzelt Gewitter" or [Wetter:condition] eq "Hagel" or \
[Wetter:condition] eq "stürmisch")) (set Beschattung_OG off)\
DOELSEIF ([17:31] and [Auto_Beschattung] eq "on" and [Beschattung_OG] eq "on") (set Beschattung_OG off)
Nun zum DOIF, welche das effektive runterfahren auslöst. Speziell daran ist, dass noch geprüft wird ob die maximale Voraussichtliche Temperatur grösser oder kleiner 25 Grad ist. Wenn die Prognose mehr als 25 hat, dann sollen die Jalousien ganz runter und nur 0.5 auf. Wenn die voraussichtliche Temperatur kleiner ist dann auf 20 % und 1 wieder auf.
define di_Beschattung_OG_on DOIF ([Beschattung_OG] eq "on" and [Wetter:fc1_high_c] < 25) \
(set Rollladen_Kind 20,set Rollladen_Eltern_1 0,set Rollladen_Eltern_2 20,\
define tmp_time1 at +00:01:00 set Rollladen_Kind 21,\
define tmp_time2 at +00:01:00 set Rollladen_Eltern_1 1,\
define tmp_time3 at +00:01:00 set Rollladen_Eltern_2 21)\
DOELSEIF ([Beschattung_OG] eq "on" and [Wetter:fc1_high_c] > 25) \
(set Rollladen_Kind 0,set Rollladen_Eltern_1 0,set Rollladen_Eltern_2 0,\
define tmp_time1 at +00:01:00 set Rollladen_Kind 0.5,\
define tmp_time2 at +00:01:00 set Rollladen_Eltern_1 0.5,\
define tmp_time3 at +00:01:00 set Rollladen_Eltern_2 0.5)
define di_Beschattung_OG_off DOIF ([Beschattung_OG] eq "off") (set Rollladen_Kind auf,set Rollladen_Eltern_1 auf,set Rollladen_Eltern_2 auf)
also, ich hoffe jemand lässt sich inspirieren. Und falls jemand Fragen oder Verbesserungsvorschläge hat, nur zu! :-)
Gruss aus der Schweiz
mumpitz
hallo zusammen
leider melde ich mich schon wieder. meine ganze Euphorie des obigen Posts ist verflogen. Der Dummy wird zwar wunderschön geschaltet auf off auf on und auch wieder zurück wenn das Wetter schlecht wird oder die bestimmt Zeit erreicht wird. Leider werden jedoch die Jalousien nicht runter gefahren. Sprich bei diesem DOIF stimmt was nicht: nur was?
anzumerken ist noch:
sobald ich eine Änderung am DOIF mache, zum Beispiel die Temperatur die unterschieden wird ob ganz geschlossen oder auf Stellung 80 von 24 auf 23 stelle, dann funktioniert das DOIF! wenn ich das dann so lasse dann funktioniert es am nächsten Tag jedoch schon wieder nicht. Der Dummy "Beschattung OG" schaltet zwar, das DOIF macht jedoch nicht. Im Log sind keine Einträge ersichtlich..
([Beschattung_OG] eq "on" and [Wetter:fc1_high_c] < 25)
(set Rollladen_Lean 20,set Rollladen_Eltern_1 0,set Rollladen_Eltern_2 20,
define tmp_time1 at +00:01:00 set Rollladen_Lean 21,
define tmp_time2 at +00:01:00 set Rollladen_Eltern_1 1,
define tmp_time3 at +00:01:00 set Rollladen_Eltern_2 21)
DOELSEIF ([Beschattung_OG] eq "on" and [Wetter:fc1_high_c] > 24)
(set Rollladen_Lean 0,set Rollladen_Eltern_1 0,set Rollladen_Eltern_2 0,
define tmp_time1 at +00:01:00 set Rollladen_Lean 0.5,
define tmp_time2 at +00:01:00 set Rollladen_Eltern_1 0.5,
define tmp_time3 at +00:01:00 set Rollladen_Eltern_2 0.5)
weiss jemand wieso???
mumpitz
Hallo Mumpitz
Hast Du auch das attr XXX do always gesetzt?
Viele Grüße sendet
Gigafix
Nein, habe ich nicht!
Habe mich Vorgänger in der Commandref schlau gemacht. Da finde ich den Hinweis:
Bei der Angabe von zyklisch sendenden Sensoren (Temperatur, Feuchtigkeit, Helligkeit usw.) wie z. B.:
define di_heating DOIF ([sens:temperature] < 20) (set heating on)
ist die Nutzung des Attributes do always nicht sinnvoll, da das entsprechende Kommando hier: "set heating on" jedes mal ausgeführt wird, wenn der Temperatursensor in regelmäßigen Abständen eine Temperatur unter 20 Grad sendet. Ohne do always wird hier dagegen erst wieder "set heating on" ausgeführt, wenn der Zustand des Moduls gewechselt hat, also die Temperatur zwischendurch größer oder gleich 20 Grad war.
Aus meiner Sicht ist das bei mir der Fall das ich es nicht setzen darf, oder???
Gesendet von iPad mit Tapatalk
Hallo Mumpitz
Ich bin zugegebenermaßen auch nicht der große DOIF Spezialist....
Deshalb schau mal hier: http://forum.fhem.de/index.php/topic,35431.msg277759.html#msg277759 (http://forum.fhem.de/index.php/topic,35431.msg277759.html#msg277759)
Da es bei Dir ja noch Bedingungen dazwischen gibt, und Du bei "wahr" werden der Bedingung schalten möchtest würde ich es zumindest mal testen.
In der Codebeschreibung ist auch folgendes Beispiel mit "do always", bei dem allerdings nur alle 60min geprüft wird:
ZitatAnwendungsbeispiel: Meldung über Frostgefahr alle 60 Minuten
define di_frost DOIF ([outdoor:temperature] < 0) (set pushmsg "danger of frost")
attr di_frost cmdpause 3600
attr di_frost do always
Ich persönlich prüfe zu einer bestimmten Zeit einmalig die Wetterbedingungen per normalem if und wenn das "wahr" wird, dann wird in die Beschattugsposition gefahren. Für meine Zwecke reicht das.
Viele Grüße sendet
Gigafix
Zitat von: locodriver am 18 Mai 2013, 15:54:58
Hallo Miteinander, ich habe eine Sonnenschutzvariante laufen, die meine Zwecke erfüllt und nicht so aufgebläht ist. Ich greife auch auf Yahoo zurück. Da das Yahoowetter nicht immer so angegeben ist wie die realen Bedingungen sind, erschien es mir völlig ausreichend, nicht jede mögliche Bedingung in die Auswertung einzubeziehen - d.h. man sollte nicht versuchen, eine Genauigkeit zu erzielen welche durch die Eingangsparameter nicht möglich sein kann:
define WZ_Rolare_SoSchu at *10:01 {Log 1, "Max ist ".ReadingsVal("Wetter_Borsdorf","fc1_high_c",0)}{if ((Value("Rolaautomatik") eq "Ein") && ($month> 4) && ($month< 10) &&( ReadingsVal("Wetter_Borsdorf","fc1_high_c",0)>23) && (Value("WZ_Balkon") =~ m"geschlossen")) {fhem "set WZ_Rolare SoSchu";;}}
attr WZ_Rolare_SoSchu room 001Wohnzimmer
Ich prüfe von Mai bis September um 10:01 Uhr, ob der prognostizierte Höchstwert größer als 23 Grad ist und wenn die Rolaautomatik (ein Dummy) "Ein" und die Balkontür "geschlossen" ist wird der Rolare in Sonnenschutzposition gefahren (bei mir 45%). Das Zimmer ist nicht völlig dunkel (Zimmerpflanzen), wird aber nicht aufgeheizt. Um 16 Uhr lasse ich dann den Rola ohne weitere Bedingungen wieder hochfahren. Diese Steuerung hat sich bei mir im letzten Sommer schon bewährt und läuft in einer Includedatei.
Und noch mal Danke an Mr.Eltako an die Unterstützung, die Klammern richtig zu sortieren.
Schöne Pfingsten Uwe
Hi Uwe, ich weiß, schon was her mit dieser eigentlich einen Zeile. Aber ich vermisse den Rest.
Da fehlt doch der Teil wo die Rollade wirklich gefahren wird, das sie wieder hochgefahren wird usw.
Mir persönlich reicht auch so eine einfache Variante.
@Christian: hast recht - das ist eines von mehreren ats gewesen. Mittlerweile habe ich alles in einem DOIF und noch etwas weiter entwickelt:
([08:00] and [UweDa] eq "Aus" and [Rolaautomatik] eq "Ein" and [WZ_Rolare] ne "Auf")(set WZ_Rolare Auf)
DOELSEIF
([09:00] and [UweDa] eq "Ein" and [Rolaautomatik] eq "Ein" and [WZ_Rolare] ne "Auf")(set WZ_Rolare Auf)
DOELSEIF
([{sunset(60,"17:00","22:00")}] and [Rolaautomatik] eq "Ein" and ($month<5 or $month>9) and [WZ_Rolare] eq "Auf" and (ReadingsVal("Wetter_Borsdorf","fc1_low_c",0)<5) and [WZ_Balkon] eq "geschlossen")(set WZ_Rolare Zu)
DOELSEIF
([10:01] and [Rolaautomatik] eq "Ein" and ($month> 4) and ($month< 10) and (ReadingsVal("Wetter_Borsdorf","fc1_high_c",0)>23) and [WZ_Balkon] eq "geschlossen")(set WZ_Rolare SoSchu)
DOELSEIF
(([16:00] or [WZ_Balkon] eq "offen") and [WZ_Rolare] ne "Auf")(set WZ_Rolare Auf)
Der letzte DOELSE-Zweig funzt aber noch nicht richtig, das liegt wohl am Zusammenspiel von HM und DOIF, die ersten beiden könnte man noch zusammenfassen oder mit den neuesten DOIF-Erweiterungen anpassen (8 bzw. 9 Uhr). Hatte aber noch keine Zeit/Lust - es funzt ja auch so...
Uwe
Mumpitz, Du schreibst dass Du einen Dummy Beschattung_OG schaltest wenn Auto_Beschattung an ist etc. Aber Beschattung_OG wird ja auch nur auf den Status abgefragt aber nicht geschalten ?
Was hat dieser Dummy Beschattung_OG für eine Aufgabe ?
Zitat von: en-trust am 10 April 2018, 12:42:48
Mumpitz, Du schreibst dass Du einen Dummy Beschattung_OG schaltest wenn Auto_Beschattung an ist etc. Aber Beschattung_OG wird ja auch nur auf den Status abgefragt aber nicht geschalten ?
Was hat dieser Dummy Beschattung_OG für eine Aufgabe ?
Der dummy hatte die Aufgabe, dass ich von Hand eingreifen konnte, falls zum Beispiel ein Gewitter aufzog...
Mittlerweile habe ich diese gepostete Lösung abgelöst durch eine die seit einem Jahr perfekt funktioniert!
Erleuchte uns !
LG
pah
Zitat von: Mumpitz am 18 April 2018, 08:03:46
Sobald ich wieder zu Hause bin!
Hallo Mumpitz, bist du wieder zu Hause? 8)
Mich würde deine aktuelle Lösung zur Beschattungssteuerung mit DOIF (?) ebenfalls interessieren.
Viele Grüße
Daniel
Hallo zusammen
Bitte entschuldigt die lange Wartzeit. Aber ich habe meinen Post während den damaligen Ferien voll vergessen!
Also, ich habe vorletztes Jahr verschiedene Varianten einer Beschattungssteuerung probiert und wurde nie richtig glücklich damit. Ich hatte dabei jeweils für jede Himmelsrichtung eigene DOIFS, welche aufgrund der Helligkeit oder der Wetterangabe von Yahoo die Rolläden fuhren oder auch nicht. Aber wie gesagt, richtig glücklich wurde ich nie. Letzten Sommer habe ich mir dann die jetzige Lösung überlegt und bin vollständig glücklich damit. Es funktioniert sehr gut!
Meine Ausgangslage:
Ein Neubau, welcher genau in gerade in Richtung Norden oder Süden steht. Da wir es Hell wollten, haben wir jede Menge Fenster. Wunderbar, aber im Sommer dafür auch unerträglich heiss.
Dazu habe ich auf der Ostseite einen Lichtsensor (Multisensor_Ost), welcher per WLAN funktioniert (Eigenbau da sehr schlechter HM Empfang dort). Der Senosr hat einen Maximalwert von 54'000 Lux.
Weiter habe ich auf der Süd und Ostseite je einen HM_Lichtsensor, welcher einen Maximalwert von knapp 90'000 lux hat.
Also, nun habe ich mir zuerst ein DOIF gebastelt, welches bestimmt, ob überhaupt Beschattet werden soll. Das gibt dann einen State on oder off, je nach dem. Er hat zudem eine Verzögerung beim aktivieren von 15min und beim deaktivieren von 40min. So fahren die Rollladen nicht gleich bei den ersten Wolken hoch und nicht bei den ersten Sonnenstrahlen wieder runter...
([HM_Lichtsensor_Sued:brightness] > 75000 or [HM_Lichtsensor_West:brightness] > 50000 or [Multisensor_Ost:lux] > 20000) ()
DOELSE ()
alias Beschattung_Notwendig
cmdState on|off
wait 900:2600
Nun, folgendes DOIF schaltet einen Dummy Beschattung_Ost auf der Ostseite, sobald di_beschattung_notwendig auf on switcht:
([Auto_Beschattung_EG] eq "on" and [Beschattungsmodus] eq "Sensoren" and [Beschattung_Ost] eq "off" and [?05:00-15:00] and [di_beschattung_notwendig] eq "on" and [?WetterProplanta:fc0_tempMax] > 15 and [Helligkeit_Twilight:compasspoint] =~ "east") (set Beschattung_Ost on)
DOELSEIF ([Auto_Beschattung_EG] eq "on" and [Beschattungsmodus] eq "Sensoren" and [Beschattung_Ost] eq "on" and [di_beschattung_notwendig] eq "off" and [?Helligkeit_Twilight:elevation] > 36.00) (set Beschattung_Ost off)
DOELSEIF ([Auto_Beschattung_EG] eq "on" and [Beschattungsmodus] eq "Sensoren" and [Beschattung_Ost] eq "on" and [Helligkeit_Twilight:compasspoint] eq "south") (set Beschattung_Ost off)
Kurze Erklärung:
Ich habe noch eingebaut, dass auf der Ostseite nur beschattet wird, wenn es wärmer als 15 Grad ist draussen. Sobald die Sonne auf South steht, hat bei mir die Ostseite keine Sonne mehr und fährt rauf.
Beim mittleren Zweig frage ich noch ab, ob die Elevation über 36 Grad ist wenn der Rolladen hochfährt. Ich habe da eben das Problem, dass mein NAchbar auf der Ostseite recht nahe ist und dadurch der Lichtsensor im Herbst dann keine Sonne mehr hat. Ich möchte aber die Beschattung unten lassen, da sonst ein ständiges rauf und runter der Rolläden...
Wenn dann die Beschattung_Ost auf on geschaltet wird, fahren die Rolladen mit diesem DOIF:
([Beschattung_Ost] eq "on" and [?Wetter:fc1_high_c] < 30) (set Rollladen_Kueche 0,set Rollladen_Esszimmer_1 0)(set Rollladen_Kueche 1)(set Rollladen_Kueche down 0.5,set Rollladen_Esszimmer_1 1)
DOELSEIF ([Beschattung_Ost] eq "on" and [?Wetter:fc1_high_c] > 29) (set Rollladen_Kueche 0,set Rollladen_Esszimmer_1 0)(set Rollladen_Kueche 0.5,set Rollladen_Esszimmer_1 0.5)
do always
wait 0,60,10:0,80
Dann das DOIF für die Südseite:
([Auto_Beschattung_OG] eq "on" and [Beschattungsmodus] eq "Sensoren" and [Beschattung_OG] eq "off" and [Helligkeit_Twilight:azimuth] > 109 and [Helligkeit_Twilight:azimuth] < 270 and [?WetterProplanta:fc0_tempMax] > 12 and [?09:00 - 18:44] and [di_beschattung_notwendig] eq "on") (set Beschattung_OG on)
DOELSEIF ([Auto_Beschattung_OG] eq "on" and [Beschattungsmodus] eq "Sensoren" and [Beschattung_OG] eq "on" and [di_beschattung_notwendig] eq "off" and [Helligkeit_Twilight:azimuth] > 139) (set Beschattung_OG off)
DOELSEIF ([Auto_Beschattung_OG] eq "on" and [Beschattungsmodus] eq "Sensoren" and [Beschattung_OG] eq "on" and ([Helligkeit_Twilight:azimuth] > 277 or [Helligkeit_Twilight:compasspoint] eq "west" or [18:45])) (set Beschattung_OG off)
mit dem Azimuth bestimme ich, bei welchem Sonnenstand (Winkel) die Rolläden fahren sollen. Spätestens wenn Sonnenstand West ist oder 18:45 Uhr wird die Beschattung wieder aufgehoben. Auch hier wird ein dummy geschaltet, nämmlich Beschattung_OG
das ist dann dieses DOIF:
([Beschattung_OG] eq "on" and [?Wetter:fc1_high_c] < 25)
(set Rollladen_Lean 20,set Rollladen_Eltern_1 0,set Rollladen_Eltern_2 20,
define tmp_time1 at +00:01:00 set Rollladen_Lean 21,
define tmp_time2 at +00:01:00 set Rollladen_Eltern_1 1,
define tmp_time3 at +00:01:00 set Rollladen_Eltern_2 21)
DOELSEIF ([Beschattung_OG] eq "on" and [?Wetter:fc1_high_c] > 24)
(set Rollladen_Lean 0,set Rollladen_Eltern_1 0,set Rollladen_Eltern_2 0,
define tmp_time1 at +00:01:00 set Rollladen_Lean 0.5,
define tmp_time2 at +00:01:00 set Rollladen_Eltern_1 0.5,
define tmp_time3 at +00:01:00 set Rollladen_Eltern_2 0.5)
do always
grad gesehen das ich hier noch mit den at arbeite. müsste ich mal noch auf die Wait attribute umstellen...
So, ich hoffe es ist alles klar? Wenn fragen sind helfe ich natürlich gerne!
Gruess aus der warmen Schweiz
mumpitz
Hallo Mumpitz,
ich bin durch meine Suche nach einer lösung für meine Beschattung auf deinen Code aufmerksam geworden und will den jetzt dann auch für mich anwenden 8) . mich würde mal interessieren wo du deinen eigenbau Senor her hast und ob deine Beschattungssteuerung immer noch so gut funktioniert?
Viele Grüße Heiko
Zitat von: Timeless68er am 09 Juni 2019, 17:48:06
Hallo Mumpitz,
ich bin durch meine Suche nach einer lösung für meine Beschattung auf deinen Code aufmerksam geworden und will den jetzt dann auch für mich anwenden 8) . mich würde mal interessieren wo du deinen eigenbau Senor her hast und ob deine Beschattungssteuerung immer noch so gut funktioniert?
Viele Grüße Heiko
Wie der Name schon sagt: Eigenbau. Ganz einfach ein Esp8266 mit espeasy und ein Lichtsensor. Beides vom arbeitsamen Mann aus China.
Und ja. Sie funktioniert immerfort zu 100% zuverlässig. Einzig ein Luxsensor von HM ging kurz nach Ablauf der Gewährleistung kaputt....
Mittlerweilen gibt es aber auch ganz gute Möglichkeiten mit den Rollo Modulen...
Gesendet von iPad mit Tapatalk
Hallo zusammen,
das Thema Beschattung ist auch für mich aktuell, jedoch bin ich den Weg über das AutoShutterControl Modul gegangen. Für mich läuft das echt prima.
Hier habe ich mal meinen Einstieg beschrieben:
https://forum.fhem.de/index.php/topic,99980.msg958252.html#msg958252 (https://forum.fhem.de/index.php/topic,99980.msg958252.html#msg958252)
Für die Aktivierung der Beschattung habe ich mich auch einer Wetterseite bedient, da ich keinen Helligkeitssensor (Brightness) habe und später einen Wert aus der Photovoltaik verwenden möchte https://forum.fhem.de/index.php/topic,101821.0.html (https://forum.fhem.de/index.php/topic,101821.0.html)
Viele Grüße
Christian