Hauptmenü

Sunset und Sunrise

Begonnen von Puschel74, 06 März 2012, 17:32:45

Vorheriges Thema - Nächstes Thema

Mr. P

                                                       

Achso ja... Nachdem now einmal vorne und bei der anderen Bedingung hinten
steht, muss beide Male gt stehen (immer diese Kleinigkeiten). :-)

Greetz,
   Gerhard
Am 07.03.2012 17:58 schrieb "puschel74" :

> Also erstmal eines vorweg
>
> Jan-Hinrich und Gerhard - ihr seid beide mit eurer Logik richtig
> gelegen ;-)
> || anstelle von &&
> und Jan-Hinrich
> beidemale gt anstelle von lt && gt.
> Mit
> if(sunrise_abs(1800) gt $now || $now gt sunset_abs(7200)) {\
> bleibt um 17:50 das Licht aus und mit
> if(sunrise_abs(1800) gt $now || $now gt sunset_abs(-1800)) {\
> geht das Licht an.
>
> Danke nochmal für Eure Hilfe - dir natürlich auch nochmal danke Rudi.
>
> Grüße
>
> On 7 Mrz., 17:34, Jan-Hinrich Fessel wrote:
> > Hej,
> > Am 07.03.2012 um 17:12 schrieb Gerhard Pfeffer:
> >
> > > Hej,
> >
> > > bin nicht der Fitteste mit Perl, aber was mir gerade noch aufgefallen
> ist: sollte statt dem && nicht ein || stehen? && wuerde wohl nur gelten,
> wenn Perl tagesuebergreifend "denkt". :-)
> >
> > Das hatte ich schon an anderer Stelle angemerkt ;-)
> > Gerhard:
> >
> > > if(sunrise_abs(1800) lt $now && $now gt sunset_abs(-1800)) {\
> >
> > Wenn der Sonnenaufgang mehr als 1800 Sekunden zurückliegt und es später
> als 1800 Sekunden bis zum Sonnenuntergang ist, dann mach was.  Dann geht
> abends was, morgens aber nicht.
> > Rudi:> > >> if(sunrise_abs(1800) lt $now && $now lt sunset_abs(-1800)) {\
> >
> > Wenn der Sonnenaufgang mehr als 1800 Sekunden zurückliegt und es noch
> mindestens 1800 Sekunden bis zum Sonnenuntergang ist, dann mach was.  Dann
> geht tagsüber was.
> >
> > Ich würde
> > if(sunrise_abs(1800) gt $now || $now gt sunset_abs(-1800)) {\
> > denken.  Also vor Sonnenaufgang(+1800) oder nach Sonnenuntergang(-1800)
> soll was getan werden dürfen.
> > Kann natürlich sein, das ich das falsch verstehe.  Mit der Logik ist das
> ja nicht immer so einfach.
> >
> > Grüße
> >         Oskar
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Greetz,
   Mr. P

Guest

Originally posted by: <email address deleted>

On Tuesday, March 6, 2012 8:10:08 PM UTC+1, Rudolf Koenig wrote:
>
> > Ich versuch jetzt mal
>
> Da kann man nicht mehr tatenlos zuschauen :) Wie waers mit:
>
> my $now=sprintf("%%02d:%%02d",$hour,$min);;\
> if(sunrise_abs(1800) lt $now && $now lt sunset_abs(-1800)) {\
>  ...\
> }
>
>
> Evtl kann man aber auch in 99_SUNRISE_EL.pm $altit anpassen, und
>   if(isday()) {\
>     ...\
>   }
> verwenden. Oder auf die Anpassung ganz verzichten :)
>

Auch ich habe offenbar ein Definitionsproblem mit sunrise(). Folgendes
schlägt fehl:

{if (!$we) {fhem("define WZ_Rollladen_hoch at *{sunrise(0,"06:00","08:00")}
set Rollo_wz on")} else {fhem("define WZ_Rollladen_hoch at *07:45:00 set
Rollo_wz on")}}

Die  zugehörige Fehlermeldung aus dem fhem-log-File lautet:

Number found where operator expected at (eval 303) line 1, near ""define WZ_Rollladen_hoch at *{sunrise(0,"06"
   (Missing operator before 06?)
String found where operator expected at (eval 303) line 1, near "00",""
   (Missing operator before ","?)
Number found where operator expected at (eval 303) line 1, near "","08"
   (Missing operator before 08?)
String found where operator expected at (eval 303) line 1, near "00")} set Rollo_wz on""
   (Missing operator before ")} set Rollo_wz on"?)
2012.03.07 19:16:51 3: Please define WZ_Rollladen_hoch first

Trennt man die einzelnen Zweige innerhalb der if-Anweisung auf und verwendet diese einzeln, kommt es zu keiner Fehlermeldung.

Weiterhin beschäftigt mich die Frage, ob die 99_SUNRISE_EL.pm noch irgendwie in die fhem.cfg eingebunden werden muss,
da eine Änderung der Variable *$altit* in der 99_SUNRISE_EL.pm auf welchen Wert auch immer keine Veränderung an den Zeiten bewirkt.


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> Auch ich habe offenbar ein Definitionsproblem mit sunrise(). Folgendes
> schlägt fehl:

Klar, " in " ist nicht klug. Entweder mit \ schuetzen, oder abwechselnd " und '
verwenden. Wobei man wissen sollte, dass Variablen in ' Strings nicht ersetzt
werden. Das Kamel laesst gruessen :)

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

On Thursday, March 8, 2012 9:23:18 AM UTC+1, Rudolf Koenig wrote:
>
> > Auch ich habe offenbar ein Definitionsproblem mit sunrise(). Folgendes
> > schl�gt fehl:
>
> Klar, " in " ist nicht klug. Entweder mit \ schuetzen, oder abwechselnd "
> und '
> verwenden.
>
Tut mir leid, aber ich verstehe nicht, was hier mit "in" gemeint ist und
auch nicht
was bzw. wie ich was mit \ schützen oder wo ich ein "und" verwenden sollte.

Die Anweisung verwende ich derzeit so, dass ich auf die beiden Argument
"06:00","08:00"
verzichtet habe (*sunrise(0)*).
Dann habe ich zwar keine Fehlermeldung mehr, aber die Funktionalität ist,
wie ich gerade bemerkt habe,
genau anders herum wie von mir erwartet.
Eigentlich soll Wochentags das Rollo zum Sonnenaufgang, bzw. zwischen sechs
und acht Uhr aufgehen und
am Wochenenende um 7:45 Uhr.
Heute morgen ging es jedoch erst um 7:45 Uhr auf. Was am Wochenende ist,
habe ich nich nicht probieren können.
Entferne ich jedoch das "!" vor $we, wird die frühere Zeit angezeigt.

> Wobei man wissen sollte, dass Variablen in ' Strings nicht ersetzt
> werden. Das Kamel laesst gruessen :)

Soweit ich das sehe, habe ich auch keine Variablen innerhalb von Strings
verwendet, lediglich Funktionen mit Argumenten.

Was nach wie vor offen bleibt ist, dass eine Änderung von* $altit* in der99_SUNRISE_EL.pm keine Auswirkungen
auf die Schaltzeiten hat.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Ich glaube Rudolf meinte damit, dass Du es anstatt mit "
{if (!$we) {fhem("define WZ_Rollladen_hoch at
*{sunrise(0,"06:00","08:00")}

mit ' ausprobieren kannst
{if (!$we) {fhem("define WZ_Rollladen_hoch at
*{sunrise(0,'06:00','08:00')}

Mit den Hochkommas habe ich auch schon meine Probleme gehabt. :D


LG Jörg

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Dr. Boris Neubert

                                             

Am 08.03.2012 18:30, schrieb Hubert Melzer:
>
> Klar, " in " ist nicht klug. Entweder mit \ schuetzen, oder
> abwechselnd " und '
>
>     verwenden.
>
> Tut mir leid, aber ich verstehe nicht, was hier mit "in" gemeint ist
> und auch nicht
> was bzw. wie ich was mit \ schützen oder wo ich ein "und" verwenden
> sollte.

Rudi schreibt: Gänsefüßchen in Gänsefüßchen ist nicht klug. Entweder mit
Backslash schützen oder abwechselnd Gänsefüßchen und Hochkomma verwenden.

Mit Backslash schützen:   Du machst aus " dann \".

Empfehlung: Rainer Krienke, Programmieren in Perl, Hanser, ISBN
3-446-22013-5
>
> Was nach wie vor offen bleibt ist, dass eine Änderung von/$altit/in
> der99_SUNRISE_EL.pm keine Auswirkungen
> auf dieSchaltzeiten hat.
>
Modul neu geladen?

Grüße
Boris

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Guest

Originally posted by: <email address deleted>

On Thursday, March 8, 2012 7:19:50 PM UTC+1, Boris wrote:
>
>  Am 08.03.2012 18:30, schrieb Hubert Melzer:
>
>
> Klar, " in " ist nicht klug. Entweder mit \ schuetzen, oder abwechselnd "
> und '
>
>> verwenden.
>>  
> Tut mir leid, aber ich verstehe nicht, was hier mit "in" gemeint ist und
> auch nicht
> was bzw. wie ich was mit \ schützen oder wo ich ein "und" verwenden sollte.
>  
>
> Rudi schreibt: Gänsefüßchen in Gänsefüßchen ist nicht klug. Entweder mit
> Backslash schützen oder abwechselnd Gänsefüßchen und Hochkomma verwenden.
>
> Mit Backslash schützen:   Du machst aus " dann \".
>
> Empfehlung: Rainer Krienke, Programmieren in Perl, Hanser, ISBN
> 3-446-22013-5
>
>
> Was nach wie vor offen bleibt ist, dass eine Änderung von* $altit* in der99_SUNRISE_EL.pm keine Auswirkungen
> auf die Schaltzeiten hat.
>  
>  Modul neu geladen?
>
> Ja, auch danach gibt es keine Änderung!

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Dr. Boris Neubert

                                             

Am 08.03.2012 19:37, schrieb Hubert Melzer:
>     Modul neu geladen?
>
> Ja, auch danach gibt es keine Änderung!

Debug das doch mal bitte. Der Befehl

{ sunrise(0,'06:00','08:00') }

gibt Dir die Uhrzeit des Beginns der zivilen Dämmerung aus ($altit= -6).
Bei mir:

30:16:26


30 Uhr heißt hier morgen um 6 Uhr. Wenn ich $altit ändere und

reload 99_SUNRISE_EL.pm

eingebe, bekomme ich eine andere Zeit => bei mir funktioniert das. Und
bei Dir?


Grüße
Boris

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Guest

Originally posted by: <email address deleted>

On Thursday, March 8, 2012 7:47:19 PM UTC+1, Boris wrote:
>
> Am 08.03.2012 19:37, schrieb Hubert Melzer:
> >     Modul neu geladen?
> >
> > Ja, auch danach gibt es keine Änderung!
>
> Debug das doch mal bitte. Der Befehl
>
> { sunrise(0,'06:00','08:00') }
>
> gibt Dir die Uhrzeit des Beginns der zivilen Dämmerung aus ($altit= -6).
> Bei mir:
>
> 30:16:26
>
>
> 30 Uhr heißt hier morgen um 6 Uhr. Wenn ich $altit ändere und
>
> reload 99_SUNRISE_EL.pm
>
> eingebe, bekomme ich eine andere Zeit => bei mir funktioniert das. Und
> bei Dir?
>
 
Wenn ich das so mache bekomme ich auch eine andere Zeit.
Die Zeitangabe bei den at-Befehlen ändert sich jedoch nicht.
Danke Hubert

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Dr. Boris Neubert

                                             

Am 08.03.2012 20:51, schrieb Hubert Melzer:
> Die Zeitangabe bei den at-Befehlen ändert sich jedoch nicht.
Wie sehen die at-Befehle aus? Ich könnte Dir besser helfen, wenn Du mehr
Kontext liefertest.

Grüße
Boris

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Guest

Originally posted by: <email address deleted>

On Thursday, March 8, 2012 9:02:15 PM UTC+1, Boris wrote:
>
> Am 08.03.2012 20:51, schrieb Hubert Melzer:
> > Die Zeitangabe bei den at-Befehlen ändert sich jedoch nicht.
> Wie sehen die at-Befehle aus? Ich könnte Dir besser helfen, wenn Du mehr
> Kontext liefertest.
>
> Grüße
> Boris
>

Hallo Boris,

die Zeit ändert sich, wie ich jetzt bemerkt, habe schon, wenn auch nicht
sofort.
Nach welcher Zeit eine Aktualisierung erfolgt oder was der Auslöser einer
solchen ist,
habe ich noch nicht ermittel können.

Gruß Hubert

 

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Alle Hinweise beherzigt. Nun funktioniert es zwar grundsätzlich, aber
dennoch nicht wie erwartet.
So wie die Definition jetz aussieht, sollte am Wochenende, ($we =1), das
Rollo um 07:45 hoch gehen,
in der Woche dann im Ergebnis von sunrise().
Bei mir ist es gerade umgekehrt.
Kann mir das jemand erklären?

{if ($we == 1) \
    {fhem("define WZ_Rollladen_hoch at *07:45:00 set Rollo_wz on ")}\
else\
    {fhem("define WZ_Rollladen_hoch at *{sunrise(0,'06:00','08:00')} set
Rollo_wz on")} \
}

Gruß Hubert

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Zrrronggg!

                                                     

Probier doch mal anstatt auf ($we == 1) zu testen nur {if ($we)
{fhem(" bla... zu verwenden. Das müsste eigentlich reichen und liefert
bei mir die richtigen Ergebnisse.

(Um 7:45 am WE aufstehen? Ist ja schrecklich.)



On 12 Mrz., 22:15, Hubert Melzer wrote:
> Alle Hinweise beherzigt. Nun funktioniert es zwar grundsätzlich, aber
> dennoch nicht wie erwartet.
> So wie die Definition jetz aussieht, sollte am Wochenende, ($we =1), das
> Rollo um 07:45 hoch gehen,
> in der Woche dann im Ergebnis von sunrise().
> Bei mir ist es gerade umgekehrt.
> Kann mir das jemand erklären?
>
> {if ($we == 1) \
>     {fhem("define WZ_Rollladen_hoch at *07:45:00 set Rollo_wz on ")}\
> else\
>     {fhem("define WZ_Rollladen_hoch at *{sunrise(0,'06:00','08:00')} set
> Rollo_wz on")} \
>
> }
>
> Gruß Hubert

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

borsti67

                                                 

Hallo Hubert,

warum machst Du immer wieder ein DEFINE? Jedes davon erzeugt einen
täglich wiederholten Aufruf - wozu, wenn Du doch eh jeden Tag aufs neue
testest, ob Wochenende ist?
Außerdem: Da fehlen doch auch noch ein paar Zeilen drum herum, wann
genau (bzw. unter welchen Umständen) wird denn dieses Codeschnipsel
überhaupt ausgeführt?

Gruß
Torsten

Am 12.03.2012 22:15, schrieb Hubert Melzer:
> Alle Hinweise beherzigt. Nun funktioniert es zwar grundsätzlich, aber
> dennoch nicht wie erwartet.
> So wie die Definition jetz aussieht, sollte am Wochenende, ($we =1), das
> Rollo um 07:45 hoch gehen,
> in der Woche dann im Ergebnis von sunrise().
> Bei mir ist es gerade umgekehrt.
> Kann mir das jemand erklären?
>
> {if ($we == 1) \
> {fhem("define WZ_Rollladen_hoch at *07:45:00 set Rollo_wz on ")}\
> else\
> {fhem("define WZ_Rollladen_hoch at *{sunrise(0,'06:00','08:00')} set
> Rollo_wz on")} \
> }
>
> Gruß Hubert
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
cu/2
Borsti
---
FHEM 5.8 auf Synology DS211j (bis 11/17) | FHEM 6.0 auf Raspi Zero W (bis 11/20) | FHEM 6.2 als VM in Synology DS1815+ (ab 11/20)

Guest

Originally posted by: <email address deleted>

Hallo Torsten,

was das Script machen soll, hatte ich bereits eingangs geschrieben,
nähmlich unterscheidliche Zeiten zu generieren, abhängig davon, ob
nun Wochenende ist oder eben nicht. Das setzt nun mal auch zwei Wege
voraus.
Wo man nun das oder die DEFINE hinschreibt, ob innerhalb von if...else...
oder
außerhalb, ist wahrscheinlich Geschmacksache.
Allerdings muss ich gestehem, dass ich nicht genau weiss, was du wirklich
meinst,
auch nicht, wass da noch fehlen soll.

Die Anregung von Zrrronggg! muss ich noch ausprobieren, sitze z. Zt. nicht
an der FB
und Fernzugriff ist ja immer noch nicht möglich.

Gruß Hubert

Am Dienstag, 13. März 2012 10:58:03 UTC+1 schrieb Borsti67:
>
> Hallo Hubert,
>
> warum machst Du immer wieder ein DEFINE? Jedes davon erzeugt einen
> täglich wiederholten Aufruf - wozu, wenn Du doch eh jeden Tag aufs neue
> testest, ob Wochenende ist?
> Außerdem: Da fehlen doch auch noch ein paar Zeilen drum herum, wann
> genau (bzw. unter welchen Umständen) wird denn dieses Codeschnipsel
> überhaupt ausgeführt?
>
> Gruß
> Torsten
>
> Am 12.03.2012 22:15, schrieb Hubert Melzer:
> > Alle Hinweise beherzigt. Nun funktioniert es zwar grundsätzlich, aber
> > dennoch nicht wie erwartet.
> > So wie die Definition jetz aussieht, sollte am Wochenende, ($we =1), das
> > Rollo um 07:45 hoch gehen,
> > in der Woche dann im Ergebnis von sunrise().
> > Bei mir ist es gerade umgekehrt.
> > Kann mir das jemand erklären?
> >
> > {if ($we == 1) \
> > {fhem("define WZ_Rollladen_hoch at *07:45:00 set Rollo_wz on ")}\
> > else\
> > {fhem("define WZ_Rollladen_hoch at *{sunrise(0,'06:00','08:00')} set
> > Rollo_wz on")} \
> > }
> >
> > Gruß Hubert
> >
> > --
> > To unsubscribe from this group, send email to
> > fhem-users+unsubscribe@googlegroups.com
>
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com