FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Spartacus am 29 September 2014, 14:50:29

Titel: sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 29 September 2014, 14:50:29
Hallo,
ich brauche mal einen leichten Schlag auf meinen Hinterkopf, da ich hier weiterkomme!

Es geht um eine Gartenbeleuchtung. Diese soll bei Sonnenuntergang (aber nicht vor 1700 und nicht nach 21:00) ein, und zu einer bestimmten Zeit ausgeschaltet werden soll. Das mache ich so:
define GartenLicht at *{sunset(0,"17:00","21:00")} { fhem("set lamp on-till 21:00")}

Nun soll die Beleuchtung freitags, samstags und wenn am nächsten Tag ein Feiertag ist, bis 2330 leuchten. Dabei muss der Bereich (nicht vor 1700 und nicht nach 2100) m.E. angepasst werden, sonst würde die Beleuchtung an diesen Tagen mit Sonnenuntergängen nach 2100 nicht einschalten. Außerdem soll am 01.01. erst um 0200 ausgeschaltet werden.
{
if (($wday == 5) || 
     ($wday == 6) || 
     (fhem("get Feiertag tomorrow") !~ m/none/))
{
   fhem ("set lamp on-till 23:30")
}
else
{
  fhem ("set lamp on-till 21:00")
}
}


Ich kriege die zwei Codefetzen irgendwie nicht zusammengebracht. Vielleicht geht es auch einfacher, komme aber nicht drauf!

Danke für die Unterstützung,
Spartacus
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: betateilchen am 29 September 2014, 16:11:59
anderer Ansatz...


define bla at ... {sunset irgendwas} {
  my $offTime;
  if (($wday == 5) || 
     ($wday == 6) || 
     (fhem("get Feiertag tomorrow") !~ m/none/))
  {
    $offTime = "23:30";
  } else  {
    $offTime = "21:00"
}
  CommandSet(undef, "lamp on-till $offTime");
}


Wobei ich Dir empfehlen würde, den gesamten code-Teil in eine sub() in die 99_myUtils.pm zu packen.
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 29 September 2014, 18:25:40
Hallo,
hm! Das habe ich noch nicht gerafft, oder soll ich anstelle der fixen Zeiten in meinem sunset-Befehl Variablen verwenden, die ich in einer Sub-Routine auswerte?

define GartenLicht at *{sunset(0,$minEin,$maxEin)} { fhem("set lamp on-till $offtime")}

minEin und maxEin werden dann zusammen mit offime in der SUB ermittelt, oder?
Sparatcus
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Pjg am 30 September 2014, 12:19:18
nein.
Der sunset bestimmt nur die Zeit des at. Also sozusagen die Anfangszeit. Das von bis im sunset ist nur der mögliche Rahmen dieser Zeit.
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Doggiebert am 30 September 2014, 13:27:48
Im prinzip sind's doch drei Szenarien: Werktag, Feiertag/Wochenende, Neujahr. Spricht was dagegen, hierfür 3 verschiedene at-Befehle zu definieren, die abhängig von einer Szenarien-Variable was tun oder nicht?

Disclaimer: naive Newbie-Idee, nicht dass ich schon großartig was mit at gemacht hätte...
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: betateilchen am 30 September 2014, 14:15:21
@Spartacus: vielleicht solltest Du Dich vor einer Änderung nochmal ausführlich mit der commandref zu sunrise/sunset befassen, damit Du verstehst, wie das eigentlich arbeitet.

Ich habe übrigens das Ein- und Ausschalten der Balkonbeleuchtung in zwei getrennten devices definiert. Also per sunset wird nur ein "set Licht on" gesteuert. Denn das Ausschalten hat ja von der Logik her betrachtet absolut nichts mit Sonnenauf- oder Untergang zu tun, sondern ist eine fixe Uhrzeit.

Bei mir wird beim Ausschalten nach Monat unterschieden: vom 01.04. bis 31.08 um 23 Uhr, in der restlichen Zeit um 22 Uhr. Gesteuert wird das per notify, das bei mir jede Stunde getriggert wird:


define lichtaus notify global:HOURLY {
my $off = 22;
$off++ if ($month ~~ [4..8]);
fhem( "set Licht_Balkon off" ) if ($hour == $off );
}


Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 30 September 2014, 15:54:00
Hallo zusammen,

Zitat@Spartacus: vielleicht solltest Du Dich vor einer Änderung nochmal ausführlich mit der commandref zu sunrise/sunset befassen, damit Du verstehst, wie das eigentlich arbeitet.
Ich habe es so verstanden, dass die beiden Uhrzeiten in sunset festlegen, wann ein Device frühstens und wann es spätestens eingeschaltet wird, unabhängig davon, wann der Sonnenuntergang stattfindet. Soll heissen:
wenn der Sonnenuntergang um 16:39 ist, die erste Zeit auf 18:00 festgelegt ist, wird das Device um 18:00 und nicht um 16:39 eingeschaltet.
wenn der Sonnenuntergang um 18:40 ist, schaltet das Device auch erst um 18:40 ein (>18:00 und <21:00).


Die zweite Zeit begrenzt das Einschalten des Devices auf die angegebene Uhrzeit.

Ist der Sonnenuntergang um 21:39, die Zeit aber auf 21:00 begrenzt, schaltet das Device erst gar nicht ein.

Wenn jetzt die Ausschaltzeit dicht an der Einschaltzeit des Sonnenuntergangs liegt, schaltet das Device im ungünstigsten Fall für nur 1min ein.
Bsp:
SU um 20:59, feste Ausschaltzeit um 21:00.

Dieses Verhalten macht m.E. aber keinen Sinn und deshalb möchte ich den zweiten Zeitparameter im sunset-Befehl dynamisch zur fixen Ausschaltzeit berechnen.
Dann könnte das irgendwie so aussehen:
define GartenLicht at *{sunset(0,"17:00","FixAus-30min<=sunset")} { fhem("set lamp on-till FixAus")}

Bei FixAus =21:00 heisst das:
wenn der SU um 20:30 ist, schaltet das device ein und um 21:00 aus.
wenn der SU um 20:31 ist, schaltet das device erst gar nicht ein.

Das soll sicher stellen, dass die Beleuchtung mindestens 30min eingeschaltet wird und nicht kurz "aufflackert"

Und jetzt kommt noch hinzu, dass die fixe Ausschaltzeit am WE anders ist, als unter der Woche, bzw. am 01.01.

Ich hoffe, ich konnte meine Vorstellung etwas deutlicher darstellen. Aber vielleicht ist mein Ansatz auch viel zu kompliziert und es geht viel einfacher...
Spartacus
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: moonsorrox am 30 September 2014, 19:04:14
Zitat von: Spartacus am 30 September 2014, 15:54:00
Aber vielleicht ist mein Ansatz auch viel zu kompliziert und es geht viel einfacher...

evtl. damit  (http://fhem.de/commandref_DE.html#DOIF)
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Pjg am 30 September 2014, 20:49:34
Ich übertrage meine Aussage noch auf Dein Beispiel.
"Von-Bis im sunset bestimmt den Rahmen der Anfangszeit."

ss 16:39 --> 18:00
ss 18:40 --> 18:40
ss 21:39 --> 21:00

Ich hoffe es ist nun klar. ;)
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 30 September 2014, 22:26:29
Hallo Pjg,
dann passt das ja! habe ich also richtig verstanden.... aber irgendwie bin ich doch total behämmert!

Wenn ich die Einschaltzeit von 1800 bis 2100 einschränken möchte, wochentags immer um 2100 abgeschaltet und die Brenndauer nicht zu kurz sein soll,
dann gibt es doch eine einfache Lösung:
define GartenLicht at *{sunset(0,"17:00","20:30")} { fhem("set lamp on-till 21:00")}

SU      MIN     MAX   FixAus
16:39  18:00  20:30   21:00 ---> 18:00 ein, 21:00 aus
18:40  18:00  20:30   21:00 ---> 18:40 ein, 21:00 aus
20:29  18:00  20:30   21:00 ---> 20:29 ein, 21:00 aus
20:59  18:00  20:30   21:00 ---> aus
21:39  21:00  20:30   21:00 ---> aus


Somit habe ich, wenn mich nicht alles täuscht, mein Ziel erreicht!
Junge, Junge! Manchmal ist es auch nicht leicht mit mir!

@moonsorrox
...das kannte ich noch nicht! Sieht vielversprechend aus und gucke ich mir mal genauer an.....

Spartacus
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Paul am 30 September 2014, 22:41:28
Zitat von: Spartacus am 30 September 2014, 22:26:29
Hallo Pjg,
dann passt das ja! habe ich also richtig verstanden....

Spartacus

Hast Du nicht!

SU      MIN     MAX   FixAus
16:39  18:00  20:30   21:00 ---> 18:00 ein, 21:00 aus
18:40  18:00  20:30   21:00 ---> 18:40 ein, 21:00 aus
20:29  18:00  20:30   21:00 ---> 20:29 ein, 21:00 aus
20:59  18:00  20:30   21:00 ---> 20:30 ein, 21:00 aus
21:39  21:00  20:30   21:00 ---> 20:30 ein, 21:00 aus



Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 30 September 2014, 23:01:57
ok!
...dann habe ich es wohl doch nicht verstanden.

In der commandref steht:

# Switch lamp1 on at real sunset, not before 18:00 and not after 21:00
    define a15 at *{sunset("REAL",0,"18:00","21:00")} set lamp1 on


schalte Lampe ein bei SU, aber nicht vor 18:00 und nicht nach 21:00
ich verstehe das so, dass er bei einem SU nach 21:00 die Funzel nicht mehr einschaltet!

Spartacus
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Paul am 30 September 2014, 23:08:36
Und genau das macht es.

Es schaltet nicht nach 21:00 sondern genau um 21:00 Uhr
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 30 September 2014, 23:12:19
...das ist aber doof! Dann funktioniert das also nicht!

Nun gut! Jetzt bin ich erst einmal aufgeschmissen...
Spartacus
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Puschel74 am 01 Oktober 2014, 06:14:14
Moin,

lest doch nochmal drüber:

define GartenLicht at *{sunset(0,"17:00","20:30")} { fhem("set lamp on-till 21:00")}
Es wird SPÄTESTENS um 20:30 ein geschaltet und um 21 Uhr wieder aus.

Grüße
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 01 Oktober 2014, 13:07:59
Hallo zusammen,
ihr habt recht! ich habe es ausprobiert. Mit diesem Code:
define GartenLicht at *{sunset(0,"18:00","20:30")} { fhem("set lamp on-till 21:00")}
wird das Device so geschaltet:
SU      MIN     MAX   FixAus
16:39  18:00  20:30   21:00 ---> 18:00 ein, 21:00 aus
18:40  18:00  20:30   21:00 ---> 18:40 ein, 21:00 aus
20:29  18:00  20:30   21:00 ---> 20:29 ein, 21:00 aus
20:59  18:00  20:30   21:00 ---> 20:30 ein, 21:00 aus
21:39  21:00  20:30   21:00 ---> 20:30 ein, 21:00 aus

Das macht aber für mich keinen Sinn, wenn es draußen noch "hell" ist, brauche ich keine Gartenbeleuchtung.

Aber wie kriege ich das jetzt hin?
SU      MIN     MAX   FixAus
16:39  18:00  20:30   21:00 ---> 18:00 ein, 21:00 aus
18:40  18:00  20:30   21:00 ---> 18:40 ein, 21:00 aus
20:29  18:00  20:30   21:00 ---> 20:29 ein, 21:00 aus
20:59  18:00  20:30   21:00 ---> bleibt aus
21:39  21:00  20:30   21:00 ---> bleibt aus


Spartacus
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Paul am 01 Oktober 2014, 14:19:42
Setze das attr des ats um 20:29 auf disable
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 01 Oktober 2014, 14:50:41
...an das "disable" habe ich auch schon gedacht, aber so einfach ist es nicht, da ich ja noch unterschiedliche Fälle betrachten muss (werktags, vor Feiertagen, Neujahr).

Bsp:
SU um 20:28, Lampe schaltet ein
Und wenn ich nun , wie im Bsp. den at um 20:29 auf "disable" setze, dann schaltet die Funzel um 21:00 auch nicht mehr aus, da der Befehl m.E. auch auf "disabled" gesetzt wird.
Auf die Schnelle fällt mir dazu nichts ein...muss noch mal in Ruhe darüber nachdenken....

Christian
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Paul am 01 Oktober 2014, 15:27:51
??? Um 20:29 hat die Lampe doch bereits den Befehl bekommen um 21:00 Uhr aus zuschalten
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 01 Oktober 2014, 15:38:09
ok!
Das heisst, fhem merkt sich das!
das ist natürlich wieder gut!
Ich probiere es einfach mal aus und melde mich mit dem Ergebnis.

Besten Dank,
Christian
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Puschel74 am 01 Oktober 2014, 15:56:44
Hallo,

wenn es dir draussen noch zu hell ist für die Beleuchtung ...
Dann setz doch die früheste Einschaltzeit einfach später  ???

Also anstelle von 18:00 einfach 19:30 dann wird auch nicht vor 19:30 eingeschalten.

Grüße
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Damian am 01 Oktober 2014, 18:13:40
Was hältst du von:

define di_garten DOIF ([{sunset(0,"18:00","20:30")}-21:00] and [twilight:twilight_weather] <30)(set lamp on) DOELSE (set lamp off)

Hier geht die Lampe nur zwischen 18:00 und 20:30 an, wenn es dunkel genug ist. Wenn du keine eigene Helligkeitsmessung vornehmen kannst, dann kannst du dir mit dem twilight-Modul behelfen, siehe Beispiel. Und "set lamp off " wird natürlich um 21:00 Uhr nur dann gesendet, wenn vorher die Lampe auch eingeschaltet wurde.

Gruß

Damian
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 01 Oktober 2014, 19:47:42
Hallo zusammen,
vielen Dank für die vielen Tipps. Ich werde das alles mal ausprobieren!

@ Damian:
Das muss ich mir mal in Ruhe ansehen. So auf Anhieb kann ich noch nicht nachvollziehen, was da gerade passiert...

Vielen Dank und Gruß,
Spartacus
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 01 Oktober 2014, 22:14:32
Hallo,
das DOIF Modul ist sehr mächtig! Ich habe zwar noch nicht alles verstanden, aber ich konnte zumindest die Zeile von Damian so halbwegs nachvollziehen.
Bin erst über das "-21:00" gestolpert, aber es ist als Zeitinterval zwischen sunset und 21:00 zu sehen...

Allerdings habe ich ein Problem mit dem twilight. Da komme ich nicht mit klar! welche Bedeutung hat das reading "twilight_weather" und der wert 30? In meiner "myTwilight"-Definition, ist das Reading immer "0". Was besagt dieser Wert im Zusammenhang mit der Dunkelheit und wie muss ich den wert manipulieren um hier die richtige "Dunkelheit" auszuwählen? Konnte das mit Hilfe der Commandref nicht klären, bzw. habe ich es nicht verstanden.

Spartacus
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Steffen am 02 Oktober 2014, 07:06:03
Hallo!

Warum geht mit diesem Code auch gerde ebend das "AbendLicht" an??
([{sunset(0,"18:30","20:30")}-21:00] and [myTwilight:twilight_weather] <40 and [AbendLicht] eq "off" and [Doreen] eq "Anwesend" or [Steffen] eq "Anwesend") (set AbendLicht on)
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Puschel74 am 02 Oktober 2014, 07:10:41
Hallo,

was steht im Logfile?

Grüße
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Steffen am 02 Oktober 2014, 07:35:13
Zitat von: Puschel74 am 02 Oktober 2014, 07:10:41
Hallo,

was steht im Logfile?

Grüße

Das hat was mit dem "or" im Code zu tun, wenn ich ihn mit "and" ersetzte dann geht AbendLicht nicht auf on.
Aber ich dachte es müsste alle bedingungen erfüllt sein, das ist ja bei twilight und zeit nicht der Fall oder habe ich das Flasch verstanden?

Mfg Steffen
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Puschel74 am 02 Oktober 2014, 08:17:55
Hallo,

wie hier zu sehen
define di_light DOIF ([08:00] or [10:00] or [20:00]) (set switch on) DOELSEIF ([09:00] or [11:00] or [00:00]) (set switch off)
trägt or dazu bei das verschiedene Zustände zur Auslösung führen können - eben ODER-Verknüpft.

Nach meinem Verständnis wird hier
([{sunset(0,"18:30","20:30")}-21:00] and [myTwilight:twilight_weather] <40 and [AbendLicht] eq "off" and [Doreen] eq "Anwesend" or [Steffen] eq "Anwesend")
geprüft ob
(Uhrzeit UND myTwilight UND Abendlicht UND Doreen erfüllt ist) ODER Steffen Anwesend ist.
Ich hab mal Klammern gesetzt damit mein Gedankgang ersichtlich wird.

Ich gehe mal davon aus das Steffen heute morgen abwesend war und daher das Licht geschaltet hat.

Ist aber nur eine Vermutung.

Zitat von: Puschel74 am 02 Oktober 2014, 07:10:41
Hallo,
was steht im Logfile?
Grüße
Ich vermute mal im Logfile steht nichts aufschlussreiches drinnen sonst hättest du es ja gepostet.

Grüße
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Damian am 02 Oktober 2014, 08:23:54
Nicht-Programmierer sollten sich, wenn sie komplexere Abfragen vornehmen wollen, mit der Rangfolge der Bedingungen vertraut machen. Siehe auch http://fhem.de/commandref_DE.html#IF. "and" bindet z. B. stärker als "or". Wenn du eine andere Priorität haben willst, dann musst du entsprechend klammern. Bei dir wird die Lampe auf on geschaltet wenn alle and Verknüpfungen wahr sind ODER Steffen "anwesend".

Dann solltest du nicht, das was du schalten willst (hier Abendlicht) in die Bedingung setzen. Denn durch das Schalten der Lampe triggert sich das Modul selbst - du erzeugst eine Rekursion (Endlosschleife). Das Modul verwaltet die Zustände selbst und weiß ob die Lampe an ist oder nicht, dazu sollte auch das Ausschalten der Lampe ins Modul.

Ich weiß nicht genau, was du vor hattest, aber so:

([{sunset(0,"18:30","20:30")}-21:00] and [myTwilight:twilight_weather] <40 and ([Doreen] eq "Anwesend" or [Steffen] eq "Anwesend")) (set AbendLicht on) DOLESE (set AbendLicht off)

könnte es besser funktionieren.

Gruß

Damian
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 02 Oktober 2014, 08:40:34
Hi,
Kann jemand sagen, was dieses reading twilight_weather <40 bedeutet? Verstehe die Abhängigkeit  hier nicht. Was wird bei diesem Reading mit 40 verglichen? Bzw. Was sagt dieser Wert aus?

Danke,
Christian
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Damian am 02 Oktober 2014, 09:43:19
Zitat von: Spartacus am 02 Oktober 2014, 08:40:34
Hi,
Kann jemand sagen, was dieses reading twilight_weather <40 bedeutet? Verstehe die Abhängigkeit  hier nicht. Was wird bei diesem Reading mit 40 verglichen? Bzw. Was sagt dieser Wert aus?

Danke,
Christian

Die commandref schweigt sich dazu aus. Dem Namen nach würde ich auf wetterabhängige Helligkeit tippen. Was es auch immer sein mag - der Wert wird kleiner wenn es dunkler wird und umgekehrt.
Genaueres kann Autor des Moduls dazu sagen. Für die Steuerung sollte die obige Feststellung aber ausreichen. Die 30 habe ich mal aus dem Bauch genommen. Du musst bei dir einfach schauen, welchen Wert du hast, wenn deine gewünschte Dämmerung erreicht ist.

Gruß

Damian


Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 02 Oktober 2014, 11:42:57
Hallo,
ich habe noch ein Problem mit dem DOIF:

Folgendes soll realisiert werden:

((freitags oder samstags oder "wenn morgen Feiertag ist") und es dunkel genug ist) soll die Lampe bis 22:30 leuchten
(an allen anderen Tagen und wenn es dunkel genug ist) bis 21:00.
aber ich finde noch nicht einmal meinen Syntax-Error! DOIF: no right bracket: [{sunset(0
Irgendwo ist der Wurm drin...
define GartenLeuchte DOIF (([{sunset(0,"17:00","20:30")}-22:30|56] or [Feiertag:tomorrow] !~ m/none/) and [twilight:twilight_weather] <30) (set lamp on) DOELSE ([{sunset(0,"17:00","20:30")}-21:00] and [twilight:twilight_weather] <30) (set lamp on) DOELSE (set lamp off)

Feiertag ist vom Typ holiday und wird in fhem korrekt angezeigt (bei Tomorrow steht "Tag der deutschen Einheit")
Danke und Gruß,
Spartacus
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Damian am 02 Oktober 2014, 13:41:08
Zitat von: Spartacus am 02 Oktober 2014, 11:42:57
Hallo,
ich habe noch ein Problem mit dem DOIF:

Folgendes soll realisiert werden:

((freitags oder samstags oder "wenn morgen Feiertag ist") und es dunkel genug ist) soll die Lampe bis 22:30 leuchten
(an allen anderen Tagen und wenn es dunkel genug ist) bis 21:00.
aber ich finde noch nicht einmal meinen Syntax-Error! DOIF: no right bracket: [{sunset(0
Irgendwo ist der Wurm drin...
define GartenLeuchte DOIF (([{sunset(0,"17:00","20:30")}-22:30|56] or [Feiertag:tomorrow] !~ m/none/) and [twilight:twilight_weather] <30) (set lamp on) DOELSE ([{sunset(0,"17:00","20:30")}-21:00] and [twilight:twilight_weather] <30) (set lamp on) DOELSE (set lamp off)

Feiertag ist vom Typ holiday und wird in fhem korrekt angezeigt (bei Tomorrow steht "Tag der deutschen Einheit")
Danke und Gruß,
Spartacus

Die Sache mit sunset verliert durch twilight ohnehin an Bedeutung, daher reicht:

define GartenLeuchte DOIF (
([17:00-22:30|56] or
[17:00-22:30] and  [Feiertag:tomorrow] ne "none" or
[17:00-21:00|01234] and [Feiertag:tomorrow] eq "none"
) and [twilight:twilight_weather] <30)
  (set lamp on)
DOELSE
  (set lamp off)


Gruß

Damian
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 02 Oktober 2014, 14:17:42
Hi Damian,
vielen Dank für Deine Unterstützung. Jetzt muss ich nur noch die Silvester-Ausnahme einstellen und die Leuchte brennt bis Neujahr um 02:00, korrekt? Oder muss das Silvester am Anfag der DOIF stehen, damit es zuerst behandelt wird!
define GartenLeuchte DOIF (
([17:00-22:30|56] or
[17:00-22:30] and  [Feiertag:tomorrow] ne "none" or
[17:00-21:00|01234] and [Feiertag:tomorrow] eq "none" or
[17:00-02:00] and [Feiertag:today] eq "Silverster"
) and [twilight:twilight_weather] <30)
  (set lamp on)
DOELSE
  (set lamp off)


Spartacus.
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Damian am 02 Oktober 2014, 16:26:39
Zitat von: Spartacus am 02 Oktober 2014, 14:17:42
Hi Damian,
vielen Dank für Deine Unterstützung. Jetzt muss ich nur noch die Silvester-Ausnahme einstellen und die Leuchte brennt bis Neujahr um 02:00, korrekt? Oder muss das Silvester am Anfag der DOIF stehen, damit es zuerst behandelt wird!
define GartenLeuchte DOIF (
([17:00-22:30|56] or
[17:00-22:30] and  [Feiertag:tomorrow] ne "none" or
[17:00-21:00|01234] and [Feiertag:tomorrow] eq "none" or
[17:00-02:00] and [Feiertag:today] eq "Silverster"
) and [twilight:twilight_weather] <30)
  (set lamp on)
DOELSE
  (set lamp off)


Spartacus.

Die Reihenfolge ist hier unerheblich. Das sollte so funktionieren.

Gruß

Damian
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Steffen am 02 Oktober 2014, 17:31:44
Hallo!

Kurz gefragt was hat eigentlich dieses Reading zu bedeuten?


timer_1_c1 02.10.2014 19:16:27 2014-10-02 14:10:33
timer_2_c1 02.10.2014 21:00:00 2014-10-02 14:10:33


Mfg Steffen
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Damian am 02 Oktober 2014, 17:46:11
Zitat von: Steffen am 02 Oktober 2014, 17:31:44
Hallo!

Kurz gefragt was hat eigentlich dieses Reading zu bedeuten?


timer_1_c1 02.10.2014 19:16:27 2014-10-02 14:10:33
timer_2_c1 02.10.2014 21:00:00 2014-10-02 14:10:33


Mfg Steffen

Das sind die gesetzten Timer in der ersten Bedingung c1 (condition 1). Der eine schlägt um 19:16:17 Uhr zu und der andere um 21:00 Uhr. Beide werden noch heute (02.10.2014) aktiv.

Gruß

Damian
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Steffen am 02 Oktober 2014, 17:51:37
Zitat von: Damian am 02 Oktober 2014, 17:46:11
Das sind die gesetzten Timer in der ersten Bedingung c1 (condition 1). Der eine schlägt um 19:16:17 Uhr zu und der andere um 21:00 Uhr. Beide werden noch heute (02.10.2014) aktiv.

Gruß

Damian

Ok auch bei diesen Bedingungen:

([{sunset(0,"17:00","20:30")}-21:00] and [myTwilight:twilight_weather] <40 and [AbendLicht] eq "off" and ([Doreen] eq "Anwesend" or [Steffen] eq "Anwesend")) (set AbendLicht on)


Danke erstmal für deine schnelle Antwort...
Ok und ich dachte da würde schon geschaltet werden wenn, Twilight unter 40 ist?
Warum ist dann der Timer auf 19:16:17?
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Damian am 02 Oktober 2014, 17:58:12
Zitat von: Steffen am 02 Oktober 2014, 17:51:37
Ok auch bei diesen Bedingungen:

([{sunset(0,"17:00","20:30")}-21:00] and [myTwilight:twilight_weather] <40 and [AbendLicht] eq "off" and ([Doreen] eq "Anwesend" or [Steffen] eq "Anwesend")) (set AbendLicht on)


Danke erstmal für deine schnelle Antwort...
Ok und ich dachte da würde schon geschaltet werden wenn, Twilight unter 40 ist?
Warum ist dann der Timer auf 19:16:17?

ja, aber nur in dem angegebenen Intervall.

Wie ich schon geschrieben habe, macht sunset in Verbindung mit Twilight nicht unbedingt viel Sinn.

Du kannst auch


([15:00-21:00] and [myTwilight:twilight_weather] <40 and ([Doreen] eq "Anwesend" or [Steffen] eq "Anwesend")) (set AbendLicht on)


angeben, es wird eh erst geschaltet wenn es dunkel wird  ;)

Und and [AbendLicht] eq "off"  solltest du aus der Bedingung herausnehmen, sonst beißt sich die Katze in den Schwanz. Das habe ich aber vorher schon erläutert.


Gruß

Damian

Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Steffen am 02 Oktober 2014, 18:05:42
Zitat von: Damian am 02 Oktober 2014, 17:58:12

Und and [AbendLicht] eq "off"  solltest du aus der Bedingung herausnehmen, sonst beißt sich die Katze in den Schwanz. Das habe ich aber vorher schon erläutert.
Gruß

Damian

Ok, danke mit "Sunset" hatte mich eh gefragt ob es nötig wär hatte es hier im Forum nur aufgeschnappt!
Das [AbendLicht] eq "off" wollte ich aber eigentlich einbinden da mein Frau es auch per Handy Aktivieren tut und nun wusste ich nicht ob dann "AbendLicht" doppelt ausgeführt wird, weil da reagieren die Hue Lampen immer Allergisch drauf?!

Mfg Steffen
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Damian am 02 Oktober 2014, 18:10:19
Zitat von: Steffen am 02 Oktober 2014, 18:05:42
Ok, danke mit "Sunset" hatte mich eh gefragt ob es nötig wär hatte es hier im Forum nur aufgeschnappt!
Das [AbendLicht] eq "off" wollte ich aber eigentlich einbinden da mein Frau es auch per Handy Aktivieren tut und nun wusste ich nicht ob dann "AbendLicht" doppelt ausgeführt wird, weil da reagieren die Hue Lampen immer Allergisch drauf?!

Mfg Steffen

ja, dann baue besser einen Filter ein:

statt

... (set AbendLicht on)

...(set AbendLicht:FILTER=STATE!=on on)


Gruß

Damian
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 02 Oktober 2014, 18:20:09
Hi,
bei mir sieht das so aus:

( ([17:00-22:30|56] or  [17:00-22:30] and  [Feiertag:tomorrow] ne "none" or 
[17:00-21:00|01234] and [Feiertag:tomorrow] eq "none" ) and [myTwilight:twilight_weather] <30 or
[17:00-02:00] and [Feiertag:today] eq "Silverster")   
(set EnO_FMS61_B on) 
DOELSE    (set EnO_FMS61_B off)



timer_1_c1 03.10.2014 17:00:00|56 2014-10-02 17:00:00
timer_2_c1 02.10.2014 22:30:00|56 2014-10-02 16:50:49
timer_3_c1 03.10.2014 17:00:00 2014-10-02 17:00:00
timer_4_c1 02.10.2014 22:30:00 2014-10-02 16:50:49
timer_5_c1 03.10.2014 17:00:00|012342014-10-02 17:00:00
timer_6_c1 02.10.2014 21:00:00|01234 2014-10-02 16:50:49
timer_7_c1 03.10.2014 17:00:00 2014-10-02 17:00:00
timer_8_c1 03.10.2014 02:00:00 2014-10-02 16:50:49


Das würde dann ja heißen, dass Timer 2, 4 und 6 heute noch aktiv werden.
Heute gilt, Abschalten um 22:30, da morgen Feiertag ist. Das heisst, timer 6 dürfte nicht gesetzt sein, oder?
und morgen ist auch nicht Silverster (Timer 8). Da stimmt doch dann etwas nicht, oder?
Spartacus
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Damian am 02 Oktober 2014, 18:26:21
Zitat von: Spartacus am 02 Oktober 2014, 18:20:09
Hi,
bei mir sieht das so aus:

( ([17:00-22:30|56] or  [17:00-22:30] and  [Feiertag:tomorrow] ne "none" or 
[17:00-21:00|01234] and [Feiertag:tomorrow] eq "none" ) and [myTwilight:twilight_weather] <30 or
[17:00-02:00] and [Feiertag:today] eq "Silverster")   
(set EnO_FMS61_B on) 
DOELSE    (set EnO_FMS61_B off)



timer_1_c1 03.10.2014 17:00:00|56 2014-10-02 17:00:00
timer_2_c1 02.10.2014 22:30:00|56 2014-10-02 16:50:49
timer_3_c1 03.10.2014 17:00:00 2014-10-02 17:00:00
timer_4_c1 02.10.2014 22:30:00 2014-10-02 16:50:49
timer_5_c1 03.10.2014 17:00:00|012342014-10-02 17:00:00
timer_6_c1 02.10.2014 21:00:00|01234 2014-10-02 16:50:49
timer_7_c1 03.10.2014 17:00:00 2014-10-02 17:00:00
timer_8_c1 03.10.2014 02:00:00 2014-10-02 16:50:49


Das würde dann ja heißen, dass Timer 2, 4 und 6 heute noch aktiv werden.
Heute gilt, Abschalten um 22:30, da morgen Feiertag ist. Das heisst, timer 6 dürfte nicht gesetzt sein, oder?
und morgen ist auch nicht Silverster (Timer 8). Da stimmt doch dann etwas nicht, oder?
Spartacus

Gesetzter Timer heißt nicht ausführen. Es wird lediglich das Modul um diese Zeit zusätzlich getriggert. Die Entscheidung zur Ausführung wird anhand der Bedingung gemacht.

Gruß

Damian
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Damian am 02 Oktober 2014, 18:42:59
( ([17:00-22:30|56] or  [17:00-22:30] and  [Feiertag:tomorrow] ne "none" or 
[17:00-21:00|01234] and [Feiertag:tomorrow] eq "none" ) and [myTwilight:twilight_weather] <30 or
[17:00-02:00] and [Feiertag:today] eq "Silverster")   
(set EnO_FMS61_B on) 
DOELSE    (set EnO_FMS61_B off)


Das ist aber eine andere Definition als zuvor von dir gepostet. Hier ist die Silversterschaltung unabhängig von der Helligkeit.

Gruß

Damian
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 02 Oktober 2014, 18:54:36
Stimmt,
hat er etwas verschluckt bei cut&paste:
(
([17:00-22:30|56] or
[17:00-22:30] and  [Feiertag:tomorrow] ne "none" or
[17:00-21:00|01234] and [Feiertag:tomorrow] eq "none" or
[17:00-02:00] and [Feiertag:today] eq "Silverster"
) and [twilight:twilight_weather] <30) (set EnO_FMS61_B on) DOELSE (set EnO_FMS61_B off)

..so steht es in fhem.
aber die Timer sind so, wie oben gesetzt.
Silverster soll auch abhängig von der Dunkelheit sein.
Spartacus.

S
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Damian am 02 Oktober 2014, 18:58:06
Zitat von: Spartacus am 02 Oktober 2014, 18:54:36
Stimmt,
hat er etwas verschluckt bei cut&paste:
(
([17:00-22:30|56] or
[17:00-22:30] and  [Feiertag:tomorrow] ne "none" or
[17:00-21:00|01234] and [Feiertag:tomorrow] eq "none" or
[17:00-02:00] and [Feiertag:today] eq "Silverster"
) and [twilight:twilight_weather] <30) (set EnO_FMS61_B on) DOELSE (set EnO_FMS61_B off)

..so steht es in fhem.
aber die Timer sind so, wie oben gesetzt.
Silverster soll auch abhängig von der Dunkelheit sein.
Spartacus.

S

Dann ist ja alles bestens. Wenn du allerdings im Winter auch vor 17:00 Uhr die Lampe einschalten willst, wenn´s dunkel wird, dann solltest du die Anfangszeit anpassen z. B. auf 15:00 Uhr.

Gruß

Damian

Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 02 Oktober 2014, 21:09:32
Hallo Damian,
das ist OK mit 17:00, kann ich ja ggf. noch anpassen. Nur wenn es dann im Sommer ein Gewitter gibt und es dunkel wird, dann schaltet die Gartenbeleuchtung ein. Vielleicht sollte man doch den Sonnenuntergang mit reinbauen.

Es ist aber oben noch ein Fehler drin:
Feiertag:today ist offenbar kein reading, obwohl man es mit "get Feiertag today" abfragen kann. Dein DOIF schmeißt einen Fehler aus "reading does not exist"

Hier muss offenbar auf "state" (Feiertag:state) abgefragt werden. Dann klappt es (zumindest heute)  :) !
Spartacus
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 05 Oktober 2014, 19:14:49
Hallo ich noch mal!
das mit dem Twilight läuft noch nicht wirklich rund!
Heute ging der twilight_weather-Wert um 18:00 kurzzeitig auf 10 zurück. Da hat dann das Licht eingeschaltet, obwohl es gefühlt nicht sehr dunkel war. Nun, um 19:10,  ist der Wert wieder auf 48.

Wie könnte man das besser machen? Hat jemand eine Idee? oder Erfahrungen mit twilight, bzw. Sonnenuntergangs-Steuerung?

Gestern hat das übrigens prima geklappt. Deshalb hatte ich twilight_weather auf 25 gesetzt.

Gruß,
Spartacus
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Puschel74 am 05 Oktober 2014, 19:20:22
Hallo,

für eine witterungsabhängige Beleuchtungssteuerung wirst du wohl um einen Helligkeitssensor nicht umhin kommen.

Grüße
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Damian am 05 Oktober 2014, 19:29:16
Zitat von: Spartacus am 05 Oktober 2014, 19:14:49
Hallo ich noch mal!
das mit dem Twilight läuft noch nicht wirklich rund!
Heute ging der twilight_weather-Wert um 18:00 kurzzeitig auf 10 zurück. Da hat dann das Licht eingeschaltet, obwohl es gefühlt nicht sehr dunkel war. Nun, um 19:10,  ist der Wert wieder auf 48.

Wie könnte man das besser machen? Hat jemand eine Idee? oder Erfahrungen mit twilight, bzw. Sonnenuntergangs-Steuerung?

Gestern hat das übrigens prima geklappt. Deshalb hatte ich twilight_weather auf 25 gesetzt.

Gruß,
Spartacus

Du kannst für solche kurzfristigen Schwankungen eine Verzögerung einbauen. Das habe ich bei mir auch bei einer "echten" Helligkeitsmessung drin.

Mit einer Verzögerung:

attr GartenLeuchte wait 900:900

passiert bei dir nichts, wenn es Schwankungen innerhalb von 15 Minuten (900 Sekunden) gibt.

Gruß

Damian
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Spartacus am 05 Oktober 2014, 20:15:46
Hi Damian,
stimmt! Das habe ich gelesen. Das ist eine gute Idee! Das probiere ich mal aus.
Ggf. werde ich twilight aber wieder gegen "sunset" ersetzten. Ich spiele mal ein wenig rum. Aber der Tipp mit der Verzögerung ist klasse!

@ puschel:
Das mit der Helligkeitsmessung ist die Luxusvariante für mich! Den Multisensor von eltako scheue ich wegen seines Anschaffungspreises, wäre aber für mich die sauberste Lösung!

Wenn es etwas auf 1-Wire Basis gibt, wäre das auch i.O, da ich bereits 1-Wire Sensoren für die Temperaturmessung einsetzte. Ich möchte halt nicht 100 verschiedene Systeme an den pi koppeln. Es soll übersichtlich bleiben....

So eine konfuse Bastellösung  betreibe ich derzeit mit der CC2-Control von Conrad. Das läuft jetzt seit 10 Jahren ohne Störung, ist aber in die Jahre gekommen und muss jetzt weg, da ich teilweise auch selber nicht mehr nachvollziehen kann, was ich da vor 10 Jahren gebaut habe  ( ;D). Ich will jetzt ein solides System , was u.U. auch von Dritten verstanden und supportet werden kann.

Tipps sind bei mir immer herzlich willkommen....
Nochmals Danke und Gruß,
Christian.
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: Puschel74 am 05 Oktober 2014, 20:55:20
Hallo,

Zitatwas u.U. auch von Dritten verstanden und supportet werden kann.

Und dann verwendest du FHEM  :o
Ne - Scherz beiseite  :-X

Dirk hatte (oder hat) doch sowas in der Bastelecke in petto - hab ich auch irgendwo hier rumliegen aber mir fehlt leider etwas die Zeit.

Grüße
Titel: Antw:sunset in Abhängigkeit von weiteren Bedingungen einschränken
Beitrag von: moonsorrox am 05 Oktober 2014, 20:55:46
Zitat von: Spartacus am 05 Oktober 2014, 20:15:46
Tipps sind bei mir immer herzlich willkommen....
Evtl. Schaust du dir nochmal das DOIF Modul von Damian an