Hauptmenü

Twilight

Begonnen von Bibo, 31 Dezember 2012, 17:15:03

Vorheriges Thema - Nächstes Thema

Bibo

Hallo Zusammen,
ich habe null Ahnung vom Programmieren, schon gar nicht von pearl. Durch das Fhem Wiki und die Einsteiger-Lektüre bin ich für meine Verhältnisse aber schon weit gekommen. Vielen Dank dafür!!!

Jetzt scheint es aber ins Eingmachte (zumindest für mich!!!) zu gehen, und ich komme nicht wirklich weiter.
Im fhem wiki finde ich eine Twilight Lösung, die mir aber zu komplex ist....
Folgendes Ziel: einschalten der Gartenbeleuchtung auf Basis von Twilight mit dem Sonnenuntergang! > Ausschalten zu einer fixen Uhrzeit > 22:00Uhr

Twilight läuft mit Längen- und Breitengrad für Düsseldorf, auch die Yahoo Wetterdaten sind drin.

Ich nehme mal an, dass man mit notify und if Anweisungen jetzt weitermachen müsste..?!
also irgendwie....Define lampen_garten_An_Sonnenuntergang Notify <if sunset=true, oder light >=6 > set lampe_garten on.

Wer kann helfen, bin für jeden Codeschnipsel dankbar.

Danke & Guten Rutsch,
Bibo

chrischan

Hallo Bibo,
ich ähnlich wenig Programmierkenntnisse, gelöst habe ich es folgendermaßen:

define Aussen_sunset_an at *{sunset("REAL")} set AuStr on

Hiermit schalte ich AuStr mit Sonnenuntergang ein. Man könnte das noch verzögern, wenn gewünscht.


define Hausfront_Strahler_off at *22:00 set AuStr off

Hier wird AuStr um 22:00 Uhr ausgeschaltet.

Ich denke, dass ist das was Du möchtest.

Das kann wahrscheinlich noch besser gemacht werden, aber für mich erfüllt es den Zweck.

Hoffe es hilft.

Gruß und guten Rutsch

Chrischan

Markus

versuch das mal.
myTwilight hast du ja definiert?

die zahl 4 oder 9 ist der heligkeitswert 0 ist zb. nacht

define Sonne dummy

define SonneAus notify myTwilight:light.* {\
  if($value{myTwilight}==4){\
    fhem("set Sonne on");;\
  }\
}
define SonneAn notify myTwilight:light.* {\
  if($value{myTwilight}==9){\
    fhem("set Sonne off");;\
  }\
}
define FileLog_Sonne FileLog ./log/Sonne-%Y.log Sonne
attr FileLog_Sonne logtype text
attr FileLog_Sonne room Logs


Gruß Markus und guten rutsch
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Bibo

Hallo Chrischan,
habe ich mal eingebunden, gibt keinen Fehler. teste das dann morgen....
Frage:

[quote title=chrischan schrieb am Mo, 31 Dezember 2012 17:34

define Aussen_sunset_an at *{sunset("REAL")} set AuStr on

Hiermit schalte ich AuStr mit Sonnenuntergang ein. Man könnte das noch verzögern, wenn gewünscht.


[/quote]

Wo kommen die Werte her, auf die {sunset("REAL")} zugreift? Ist das auch die "Twilight" oder diese "SUNRISE EL"? Diese Datei finde ich in meinem FHEM überhaupt nicht! Daher bin ich überhaupt auf die Twilight gekommen, weil ich hier Breiten und Längengrade auf meinen Standort anpassen konnte.

Idee?

Gruß
Bibo

Bibo

Danke, Markus!

Was kommt nach dem Dummy? Irgendwo dahinter muss ich doch jetzt auf den Dummy zugreifen, um dann die "SET Lampe ON" zu definieren!?
Wieder über eine notify Funktion?

Danke.....und ich bin begeistert, wie das hier klappt! Tolle Sache mit dem Forum.

Zitat von: Markus schrieb am Mo, 31 Dezember 2012 18:12define Sonne dummy

define SonneAus notify myTwilight:light.* {\
  if($value{myTwilight}==4){\
    fhem("set Sonne on");;\
  }\
}
define SonneAn notify myTwilight:light.* {\
  if($value{myTwilight}==9){\
    fhem("set Sonne off");;\
  }\
}
define FileLog_Sonne FileLog ./log/Sonne-%Y.log Sonne
attr FileLog_Sonne logtype text
attr FileLog_Sonne room Logs



Markus

du kannst sonne einfach durch deinen aktor ersetzen, zb licht_wohnzimmer

grus Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

Sturi2011

Hi,

und die Lösung hat so einen weiteren Schönheitsfehler...im Hochsommer kann der errechnete Sonnenuntergang durchaus mal nach 22 Uhr erfolgen. Was dann? Lich gar nicht an? Licht die ganze Nacht an? Also entweder um 22 Uhr einen Dummy setzen und bei Sonnenaufgang zurücksetzen und diesen in die Abfrage mit einbauen oder einen zweiten Ausschaltbefehl auf einen Zeitpunk nach dem spätest möglichen Sonnenuntergang legen. Auf jeden Fall sollte so eine Funktion immer ein sicher definiertes Aus haben.

Gruß Andreas

Markus

Da hat Andreas natürlich recht, mein fhem hat noch keinen Sommer erlebt aber für die Weihnachtsbeleuchtung hat Twilight super Funktioniert.

Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

JohanK

Normalerweise dachte Ich das sunset("REAL"."60",:"22:00","24:00") so funktioniert das ein gerät anschaltet nach sunset aber nicht früher als 22:00 und nicht später als 24:00. (und wenn sunset "REAL" zwischen 2200 und 2400 liegt, wird erst bei sunset, und mit eine Verzögerung von 60 Sekunden angeschaltet).
Funktioniert erst den nächsten tag, nächster zeit wird mit +24 stdn weggeschrieben.

Johan



JohanK

edit post wäre sinnvoll :)
sunset("REAL","60","22:00","24:00")

Bibo

Zitat von: Markus schrieb am Di, 01 Januar 2013 12:33Da hat Andreas natürlich recht, mein fhem hat noch keinen Sommer erlebt aber für die Weihnachtsbeleuchtung hat Twilight super Funktioniert.

Markus

Die 3 Tage im Sommer, an denen die Sonne nach 22:00 untergeht, schalte ich die Lampen noch "old-school" aus. Falls über ipad und Soft-Button schon als old-school gilt ;-)

Es funktioniert auf jeden Fall, habe es getestet! Markus, vielen Dank!

Ich wünsche noch einen schönen Neujahrs-Tag!

Gruß Bibo

Sturi2011

Hallo,

es ist eben die Frage ob es mit Twillight oder sunset gelöst wird. Eines begranzt die Zeiten, das andere nicht....
Und ja - Ipad ist Old-....(Von meinem IPad gesendet)

Gruß Andreas

Nilz

Moin erstmal...

Wäre dieses Beispiel zu kurz gedacht und warum macht es nicht das, was es soll ?
NETIO_Socket4 ist vorher als Schalaktor definiert und lässt sich auch schalten.

---
define MyTwilight Twilight 52.278889 8.043056 3 683477

define Sonnenuntergang notify MyTwilight:light.* {\
  if($value{MyTwilight}<4 ){\
    fhem("set NETIO_Socket4 on");;\
  }\
}
define Sonnenaufgang notify MyTwilight:light.* {\
  if($value{MyTwilight}>=4){\
    fhem("set NETIO_Socket4 off");;\
  }\
}
---

Grüße...
Nilz

ilmtuelp0815

Hi Nilz!
Da du schon auf "light" abfragst, dann setzt du vielleicht besser:

if(ReadingsVal("MyTwilight","light","4") < 4

ein.
FHEM auf FRITZ!Box 7390, SuSE 12.3 und Cubieboard2
CUL und HM-LAN
FS20: FHT80b, TFK, KSE, FMS, DU-2, ST-4, SM4, S4M, SM8

HM: HM-Sec-SD

MisterEltako

Hi!

Also ich habe es bei mir mit Twilight und einer TimeOffset-Funktion (diese stammt aus einem Post st hier im Forum).
Damit ist in diesem Beispiel das Schalten der Rollläden um 20min verschoben, aber spätestens 9:00 gehen die Rolläden auf.
Funktioniert bisher prima!!!


in Fhem.cfg:
define myTL Twilight 50.596 12.672 1 12831828
define FileLog_Twilight FileLog /usr/local/FHEM/var/log/Twilight-%Y.log myTL:light.*
attr FileLog_Twilight logtype Twilight:Plot,text
attr FileLog_Twilight room Notifys



define Rolll_Frueh at *{TimeOffset(ReadingsVal("myTL","sr","09:00:00"),+20)} {\
                       fhem("set Rollladen_EG Auf;;\
                             set Rollladen_Flur Auf;;\
                             sleep 10;;set Dimmer_Wozi off;;")}
attr Rolll_Frueh room Notifys

define Rolll_Daemm at *{TimeOffset(ReadingsVal("myTL","ss","17:30:00"),+40)} {\
                    fhem("set Rollladen_EG 1;;\
                          set Rollladen_Flur 5;;\
                          sleep 15;;set Dimmer_Wozi 50;;")}
attr Rolll_Daemm room Notifys


in myUtils.pm:
sub TimeOffset($;$)

  {
    my $PtimeOrg = shift;
    my $Poffset = shift;

    $PtimeOrg = "" unless(defined($PtimeOrg));
    $Poffset  = 0  unless(defined($Poffset));
    my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime;

    if ($PtimeOrg !~ /[0-2][0-9]:[0-5][0-9]/ or substr($PtimeOrg,0,2) >= 24) {$PtimeOrg = $hour.":".$min;}

    my $TimeP     = mktime(0,substr($PtimeOrg,3,2),substr($PtimeOrg,0,2),$mday,$month,$year,$wday,$yday,$isdst);
    my $TimePM    = $TimeP + $Poffset * 60;
    my ($Psec,$Pmin,$Phour,$Pmday,$Pmonth,$Pyear,$Pwday,$Pyday,$Pisdst) = localtime($TimePM);
    my $ReturnText = sprintf("%02d:%02d:%02d", $Phour, $Pmin, $Psec);
  }


MfG, MisterEltako
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310