FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: myfhem41113 am 04 November 2013, 09:24:25

Titel: SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: myfhem41113 am 04 November 2013, 09:24:25
Hallo @all,
wie kann ich die aktuellen Werte für SUNSET/SUNRISE abfragen und diese in einem Raum z.B. "Wetter" anzeigen ?

Danke schonmal für die Hilfe  :D
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: betateilchen am 04 November 2013, 09:40:20
mit sunrise()

gib doch mal in die Kommandozeile (im Frontend) { sunrise() } ein, dann sollte eine Zeit ausgegeben werden.
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: bugster_de am 04 November 2013, 10:46:43
so:

fhem.cfg:
# ****************************************************************************
#   Variablen fuer Sonnenauf- und Untergang
# ****************************************************************************
define Sonnenaufgang dummy
attr Sonnenaufgang eventMap /on:Activ/off:Inactiv/
attr Sonnenaufgang fm_order 8
attr Sonnenaufgang group Vorhersage
attr Sonnenaufgang room Haus,Garten

define Sonnenuntergang dummy
attr Sonnenuntergang eventMap /on:Activ/off:Inactiv/
attr Sonnenuntergang fm_order 8
attr Sonnenuntergang group Vorhersage
attr Sonnenuntergang room Haus,Garten

define Sun_RiseSet_Timer at *02:20:15 { WT_Set_SunsetSunrise();; }
attr Sun_RiseSet_Timer group Wetter
attr Sun_RiseSet_Timer room _Zeit


und in der 99_Utils.pm
# ------------------------------------------------------------------------
#  Function to update the Sunset / Sunrise Display
#  Usage: ($success) = myUtils_Get_Sunset( );
# ------------------------------------------------------------------------
sub WT_Set_SunsetSunrise( ) {

    my $buf = sunrise_abs( 0 );
    fhem( "set Sonnenaufgang $buf" );
   
    $buf = sunset_abs( 0);
    fhem( "set Sonnenuntergang $buf" );
   
    return( true );
}
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: betateilchen am 04 November 2013, 11:02:26
da brauchts aber keine eigene Funktion dafür, um einen Funktionswert in einen dummy zu schreiben...

Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: myfhem41113 am 04 November 2013, 11:49:19
@betateilchen:

{ sunrise() }


Ergibt:  30:23:22

@bugster_de:
Damit bin ich erschlagen. Geht das einfacher ?
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: betateilchen am 04 November 2013, 13:08:12
Zitat von: myfhem41113 am 04 November 2013, 11:49:19Ergibt:  30:23:22

Perfekt. Siehste, so einfach geht das :)

Zitat von: myfhem41113 am 04 November 2013, 11:49:19Damit bin ich erschlagen. Geht das einfacher ?

Klar geht das einfacher. Du brauchst zwei dummy-Definitionen, um die Werte zu speichern:
define Sonnenaufgang dummy
define Sonnenuntergang dummy


Diesen Werten musst Du einmal pro Tag (vorzugsweise nachts, vor Sonnenaufgang, die korrekten Werte zuweisen:

define Sun_RiseSet_Timer at *02:20:15 { fhem("set Sonnenaufgang sunrise()"); fhem("set Sonnenuntergang sunset()"); }

Das wars schon.

Die beiden dummy-"Devices" solltest Du dann problemlos im floorplan darstellen können.
Vielleicht könnte man sogar direkt die Funktionsergebnisse im floorplan darstellen, aber von floorplan hab ich keine Ahnung, da ich den nicht nutze.
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: myfhem41113 am 04 November 2013, 14:51:33
Okay. Habe jetzt folgenden Code in meiner fhem.cfg

#Sonnenauf-/untergang
define Sonnenaufgang dummy
define Sonnenuntergang dummy
define Sun_RiseSet_Timer at *02:20:15 { fhem("set Sonnenaufgang sunrise()"); fhem("set Sonnenuntergang sunset()"); }
attr Sun_RiseSet_Timer room Wetter



Mache ich dann die Anzeige mit ?

attr  Sonnenaufgang room Wetter
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: betateilchen am 04 November 2013, 14:53:35
Weiss ich nicht, ich weiss doch nicht, was dein room "Wetter" für eine Funktion hat/haben soll?

Auf jeden Fall sollten in den beiden dummy-Devices die korrekten Uhrzeiten für Sonnenauf- und -untergang stehen. (zumindest ab morgen früh)
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Puschel74 am 04 November 2013, 18:07:36
Hallo,

ZitatErgibt:  30:23:22

Du musst nur 24:00:00 abziehen um den tatsächlichen Sonnenaufgang zu erhalten.
Beim Sonnenuntergang jetzt natürlich ebenso.
Wenn das at aber, wie von betateilchen vorgeschlagen, erst morgen früh um 02:20:15 auslöst hast du in Sonnenaufgang und Sonnenuntergang die "richtige" Uhrzeit stehen.

Grüße
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: bugster_de am 05 November 2013, 09:39:09
Zitat von: betateilchen am 04 November 2013, 11:02:26
da brauchts aber keine eigene Funktion dafür, um einen Funktionswert in einen dummy zu schreiben...
Das ist schon klar. Ich habe aber die Erfahrung gemacht, dass inline Perl Code in der FHEM.cfg irgendwann dazu neigt, sehr groß zu werden. Das erhöht dann die Lesbarkeit der *.cfg Dateien nicht gerade. Für diese einfache Variante ist das sicherlich Overkill, aber da Symetrie der Ausweg der Phantasielosen ist, mache ich es halt immer gleich: Perl Code kommt in eine 99_*.pm Datei :-)
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: myfhem41113 am 05 November 2013, 14:56:15
Ähm, wie komme ich jetzt an die Werte von Sonnenauf-/untergang dummy ?  :-[
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: bugster_de am 05 November 2013, 18:08:05
was eminst Du mit wie komme ich daran? Einfach das FHEM Frontend aufmachen, in den Raum gehen, in dem die Werte angezeigt werden und sich dann daran erfreuen?

attr  Sonnenaufgang room Wetter
Wenn Du das so umgesetzt hast, dann ist der Raum "Wetter" der richtige. da findet sich das dann
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: krk_0812 am 06 November 2013, 08:44:52
Hallo,
ich wollte die Abfrage auch einbauen, erhalte aber eine Fehlermeldung, sobald ich die Zeile, wie vorgeschlagen, in die fhem.cfg einfügen will:
define Sun_RiseSet_Timer at *02:20:15 { fhem("set Sonnenaufgang sunrise()"); fhem("set Sonnenuntergang sunset()"); }

Unknown command fhem("set, try help. Unknown command }, try help.

Ws ist da falsch?
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: ph1959de am 06 November 2013, 09:31:11
@krk_0812: wenn Du das in die fhem.cfg einträgst, musst Du die Semikolon verdoppeln. So wie's da steht müsstest Du es über das Webinterface in die at-Details eintragen.

Gruß, Peter
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: krk_0812 am 07 November 2013, 10:28:37
Einen schönen guten Morgen,

leider hat die Funktion "SUNRISE/SUNSET" bei mir heute Nacht keine Funktion entwickelt, ich finde auch keinen Log-file, in dem etwas steht.

# Sonnenauf- und Untergang
define Sonnenaufgang dummy
attr Sonnenaufgang room Esszimmer
define Sonnenuntergang dummy
attr Sonnenuntergang room Esszimmer
define Sun_RiseSet_Timer at *02:20:15 { fhem("set Sonnenaufgang sunrise()");;  fhem("set Sonnenuntergang sunset()")}
attr Sun_RiseSet_Timer room Esszimmer
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Puschel74 am 07 November 2013, 17:04:27
Hallo,

Zitatleider hat die Funktion "SUNRISE/SUNSET" bei mir heute Nacht keine Funktion entwickelt

Macht sie auch nicht sondern schreibt dir in die beiden Dummys auch nur die Uhrzeiten  ;D

Zitatich finde auch keinen Log-file, in dem etwas steht

Kann auch nicht da kein Logfile definiert wurde.

Du hast aber im Raum Esszimmer die beiden Dummys Sonnenaufgang und Sonnenuntergang.
Diese sollten so aussehen wie in meinem Screenshot.

Grüße
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: krk_0812 am 07 November 2013, 17:27:25
Danke!
Leider habe ich nur leere Klammern!
siehe Bild
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Puschel74 am 07 November 2013, 17:39:21
Hallo,

hatte ich erst auch.
Daher habe ich den Umweg über Variablen genommen.

*01:05:00 {
my $Sonnenaufgang = sunrise();
my $Sonnenuntergang = sunset();
fhem("set Sonnenaufgang $Sonnenaufgang");
fhem("set Sonnenuntergang $Sonnenuntergang");
}


Grüße

P.S.: Bevor Nachfragen kommen. Der Code ist aus dem DEF des at kopiert. Am besten auch dort einfügen.
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: betateilchen am 07 November 2013, 17:40:08
ja, Du hast eben den Dummies den Text "sunrise()" und "sunset()" zugewiesen.

Sorry, das war mein Fehler bei der Erstellung des at weiter oben.

Verwende bitte diese Version:

define Sun_RiseSet_Timer at *02:20:15 { my $s = sunrise(); fhem("set Sonnenaufgang $s"); $s = sunset(); fhem("set Sonnenuntergang $s"); }
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: krk_0812 am 08 November 2013, 17:55:02
Ich mag ja irgendwo auf der Leitung stehen, aber wenn ich Eure Zeilen über das Web-Interface eingebe, erhalte ich nur Fehlermeldungen:

define Sun_RiseSet_Timer at *02:20:15 { my $s = sunrise(); fhem("set Sonnenaufgang $s"); $s = sunset(); fhem("set Sonnenuntergang $s"); }

ergibt leider nur . . .

Unknown command fhem("set, try help.
Unknown command $s, try help.
Unknown command fhem("set, try help.
Unknown command }, try help.
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Puschel74 am 08 November 2013, 17:59:37
Hallo,

in der FHEM-Befehlszeile gibts du nun erstmal ein

delete Sun_RiseSet_Timer

ein.
Danach ein
Zitatdefine Sun_RiseSet_Timer at *02:20:15 {

Nun hast du im Raum "Unsorted" bei at einen Eintrag
ZitatSun_RiseSet_Timer
Diesen anklicken.
Nun kannst du das DEF anklicken und betateilchens Code (oder auch meinen - der ist nur wie immer etwas länger und komplizierter) eingeben.
siehe Screenshot.

Grüße

PS.: Bei mir heisst das at Sonnenauf_untergang_set
Also nicht irritieren lassen  :D
PPS.: Bei betateilchens Code musst du natürlich den Anfang bis at weglassen
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: ph1959de am 08 November 2013, 18:08:15
oder gleich im Befehlsfeld:
define Sun_RiseSet_Timer at *02:20:15 { my $s = sunrise();; fhem("set Sonnenaufgang $s");; $s = sunset();; fhem("set Sonnenuntergang $s");; }

Befehlsfeld oder .cfg -> doppeltes Semikolon

Gerade ausprobiert - funktioniert.
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Puschel74 am 08 November 2013, 18:28:38
Hallo,

ZitatBefehlsfeld oder .cfg -> doppeltes Semikolon

Stimmt. Da ist noch was.
Da ich aber notify und at nur über das DEF bearbeite brauch ich mir, zum Glück bzw. dank Rudi, keine Gedanken über den "Zeichenschutz" machen.

Bei "Einzeilern" ist das noch nicht das Problem aber bei Mehrzeiler (geht das über die Befehlszeile überhaupt  :o) müssen dann bestimmte Zeilen noch mit \ abgeschlossen werden.
Und das erspart man sich schön wenn man das DEF bearbeitet.

Grüße
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: krk_0812 am 08 November 2013, 18:58:54
Hallo Puschel74,

ich danke Dir --> es läuft!
Irgendwie ein Problem, wenn man die Syntax generell nicht kennt. Ich habe gestern wie ein Geisteskranker versucht mehrere Aktoren mit einem Befehl zu schalten. Ist eigentlich gut erklärt, alles hat funktioniert, was in der Reference erklärt ist. Allein nur die Aufsummerierung von Aktoren ging nicht. Mein Fehler, oder eventuell der Fehler in der Reference war, das ich z. B. bei "set Lamp1,Lamp2, Lamp3 on" jeweils nach dem Komma ein Leerzeichen hatte. Schon war's vorbei. Wenn man sich den Text in der Reference ansieht (siehe Anhang) sieht es aus wie ein Leerzeichen. Wenn man es rauskopiert, ist kein Leerzeichen drin. Das sind tolle Fußangeln!

Ein schönes Wochenende
Gruß Manfred
set lamp1,lamp2,lamp3 on
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Puschel74 am 08 November 2013, 19:04:53
Hallo,

Zitatsieht es aus wie ein Leerzeichen.

So untereinander gestellt eher nicht  8)

Beim lamp on sieht man das Leerzeichen.
Bei lamp1,lamp2 direkt drunter sieht man das das Leerzeichen durch das Komma ersetzt und kein weiteres Leerzeichen eingefügt wurde.

Aber egal.
Es klappt ja jetzt.

Grüße
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Bartimaus am 07 Februar 2014, 13:50:02
Woher weiss FHEM denn wo man wohnt ? In Köln hat man schliesslich andere Sonnenaufgang/Untergangszeiten wie in Stettin. Dh irgendwo sollte man doch auch den Standort in Form von Geookoordinaten definieren, oder ?
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Wernieman am 07 Februar 2014, 14:02:52
Tip: Siehe Doku:
http://fhem.de/commandref.html#SUNRISE_EL (http://fhem.de/commandref.html#SUNRISE_EL)
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: bendim am 25 September 2014, 01:47:47
Für die Anfänger unter euch (wie ich 8) ), habe ich ein kurzes Tutorial erstellt.

https://maker-tutorials.com/uhrzeit-des-sonnenaufgang-sonnenuntergang-in-fhem-anzeigen/ (https://maker-tutorials.com/uhrzeit-des-sonnenaufgang-sonnenuntergang-in-fhem-anzeigen/)
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Hollo am 25 September 2014, 13:23:36
Da hänge ich mich doch gleich mal mit einer Frage dran...

Wie kann ich mit diesen Zeiten rechnen und dann für unterschiedliche Aktionen nutzen?

Bisher habe ich eine "Beleuchtung", die schon mit "einsetzender" Dunkelheit angeht...
define Abendlicht_AN at *{sunset(-600,"15:00","22:01")} { fhem("set Blumenlampe,wz_Fensterbank on") if ($hour < 22)}
und bei Dunkelheit werden die Wohnzimmer-Terassen-Rolläden bei meinen Eltern angesteuert.
define eg_Rolladen_Dunkelheit at *{sunset("17:00","22:00")} { fhem("set eg_Jalousie on-for-timer 2") }

Schön wären jetzt halt die beiden Dummies 1x zu definieren und dann in den gewünschten at mit Vorlaufzeit oder Verzögerung, frühestem und spätestem Zeitpunkt zu kombinieren.

Geht das überhaupt?
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: moonsorrox am 25 September 2014, 13:31:07
ich habe da auch etwas und verstehe es bis heute nicht, siehe Screenshot
(da ich in Fhem gerade erst abgefragt habe zeigt er die Sonnenaufgang Zeit zwar richtig an aber eben nicht die Uhrzeit)

nun zu den Zeiten die untere Anzeige, da ist genau mein Ort definiert und die Zeiten hier in Fhem sind auch meine genauen Koordinaten in global angegeben...!
attr global latitude 52.500
attr global longitude 9.625


ich kann da alles mögliche angeben ob nun REAL, CIVIL, NAUTIC usw. auf diese Zeit SU 19.14 komme ich niemals...!
Aber, ich habe raus bekommen das man auf der Webseite dort noch als Zenit "Bürgerlich" eingeben kann und dann stimmt es... 8)
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: bendim am 25 September 2014, 14:31:44
@holo willst du die schreibweise damit vereinfachen?

@moonsorro also bei mir stimmt es. Vergleich mal die Zeiten von FHEM mit dieser Website http://galupki.de/kalender/sunmoon.php (http://galupki.de/kalender/sunmoon.php).

Bürgerlich = CIVIL

Die merkwürdige Zeit für den Sonnenaufgang kommt zustande, da du Abfrage für Sonnenaufgang nach dem heutigen Sonnenaufgang gemacht hast. Er zeigt dir quasi schon die für den nächsten Tag an.
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: LuckyDay am 25 September 2014, 14:34:39
@ moonsorrox

hab mal deine Geodaten genommen bei Horizon hab ich -1 genommen
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: moonsorrox am 25 September 2014, 15:00:19
Zitat von: bendim am 25 September 2014, 14:31:44
Bürgerlich = CIVIL

Die merkwürdige Zeit für den Sonnenaufgang kommt zustande, da du Abfrage für Sonnenaufgang nach dem heutigen Sonnenaufgang gemacht hast. Er zeigt dir quasi schon die für den nächsten Tag an.
ich weiß ;) deshalb ja mein Zusatz oben damit niemand verwirrt ist  ;)
(da ich in Fhem gerade erst abgefragt habe zeigt er die Sonnenaufgang Zeit zwar richtig an aber eben nicht die Uhrzeit)

civil funktionierte aber eben nicht, hatte es probiert und es kam auch eine andere Zeit heraus, deshalb wohl wie es fhem-hm-knecht geschrieben hat

Zitat von: fhem-hm-knecht am 25 September 2014, 14:34:39
@ moonsorrox

hab mal deine Geodaten genommen bei Horizon hab ich -1 genommen

das hatte ich nicht probiert  8)
auf der Webseite dort reichte die Eingabe von Bürgerlich 96° was wohl nicht gleich bedeutend mit "civil" ist, denn wie geschrieben hatte ich es probiert... mit "CIVIL" obwohl dies eben bürgerlich ist...
Naja egal es verwirrt nur.. ;)
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Hollo am 27 September 2014, 12:51:10
Zitat von: bendim am 25 September 2014, 14:31:44
@holo willst du die schreibweise damit vereinfachen?...
Generell schon.  ;D
Also 1x Sonnenauf-/untergang definieren und dann überall wo man das benötigt nur die Variable mit verwursten.
Also z.B. nur die Vorlaufzeit per Variable anpassen. Ich dachte, dass wäre vielleicht einfacher und übersichtlicher.
Da ich die Zeit dann aber wieder über Perlkommandos manipulieren müsste, ist das wohl nicht wirklich einfacher!?

Gruß,
Hollo
Titel: AW SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Michael am 05 Oktober 2014, 11:39:40
Moin

So nun ich wieder.  :o

Und wie bekomme ich es hin, das ich nur Stunden und Minuten angezeigt bekomme?  ::)

define Sun_RiseSet_Timer at *02:20:15 { my $s = sunrise();; fhem("set Sonnenaufgang $s"); $s = sunset();; fhem("set Sonnenuntergang $s");; }


Edit 23.11.2014 :
Habe lange gebraucht, aber das ist für mich  :) die Lösung:
Im Sonnenaufgang dummy
attr userReadings e_state {substr((ReadingsVal( "Sonnenaufgang", "state","")),0,5)} hinzugefügt
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Michael am 08 Oktober 2014, 17:58:08
Moin

Zweiter Anlauf.

Da Ihr mir auf meine vorherige Frage nicht Helfen konntet.

Ist mir was neues Eingefallen.  ::)

Ich möchte gern die beiden Uhrzeiten voneinander Abziehen,
nur leider habe ich keine Lösung gefunden.

So geht es wohl nicht?

Dies habe ich in der 99_myUtils.pm stehen.

sub taglang()
{
  my $sa = ReadingsVal("Sonnenaufgang","state",0);
  my $su = ReadingsVal("Sonnenuntergang","state",0);

  my $sun = $su - $sa;

  return $sun;

}


Und so wollte ich die Zeit in einen Dummy packen.

define updateTageslaenge at *00:00:10 {my $sun =  $defs{tageslaenge};;\
  readingsSingleUpdate($sun,"state", taglang(), 1) if( defined($sun) );;}
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Dangermouse am 25 Januar 2015, 17:52:36
Nun muß ich aber noch mal eine Verständnisfrage loswerden  ;D

wenn ich nun mit { sunrise() } 31:42:12  ausgeben bekomme dann ist der Sonnenaufgang um 7:42 und 12 Sekunden (sooo genau muß es meinem Geschmack ja nicht sein  ;D ;D ;D).
Nun meine Verwirrung: wieso muß ich da 24 Stunden von abziehen und wie wirkt sich eine Veränderung der Zeit unter at aus?
Gilt diese ausgegebene Zeit für den jetzigen oder den kommenden Tag?

Und nach einigem "basteln": kann es sein daß die Werte in den Dummys wirklich erst zu dem Zeitpunkt unter at eingetragen werden, ich also zu recht bei der Definition (fhem.cfg oder Befehlszeile) dann hinter den Dummys drei ? habe?
Kann es auch sein daß im Code von betateilchen der Wert $s zwei mal vergeben wird und die sich gegenseitig beißen?

@Michael: deine Idee mit der Sonnenscheindauer finde ich gut, bist du da schon etwas weiter? (entschuldige, wenn ich dir nicht weiter helfen kann, so firm bin ich wie man wahrscheinlich merkt im Code-Erstellen noch nicht :-/


Liebe Grüße
Thorsten
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Michael am 26 Januar 2015, 17:46:55
@Dangermouse

Zitat@Michael: deine Idee mit der Sonnenscheindauer finde ich gut, bist du da schon etwas weiter? (entschuldige, wenn ich dir nicht weiter helfen kann, so firm bin ich wie man wahrscheinlich merkt im Code-Erstellen noch nicht :-/
Das macht nichts, ich bin auch reiner Anfänger was Linux, Perl und Fhem angeht.  :(

Da ich dieses eine mal keine Hilfe bekam, habe ich mich auf eine lange Suche gemacht.
Das kam dabei herraus.

1.) Das Modul Date::Calc installiert.
2.) In die 99_myUtils.pm

use Date::Calc qw(:all);

### 5 ###
sub civilsunrise()
{
my $src = substr(sunrise_abs("HORIZON=0"),0,5);

return $src
}

### 6 ###
sub civilsunset()
{
my $ssc = substr(sunset_abs("HORIZON=0"),0,5);

return $ssc
}

### 7 ###
sub tageslaenge()
{
my @Z3 = "";
#Sonnenauf,-untergangszeiten
my $hour1 = substr((ReadingsVal("KS300","civil-sunrise","")),0,2);
my $min1  = substr((ReadingsVal("KS300","civil-sunrise","")),3,2);
my $sec1  = substr((ReadingsVal("KS300","civil-sunrise","")),6,2);
my $hour2 = substr((ReadingsVal("KS300","civil-sunset","")),0,2);
my $min2  = substr((ReadingsVal("KS300","civil-sunset","")),3,2);
my $sec2  = substr((ReadingsVal("KS300","civil-sunset","")),6,2);
#Zeiten zusammen stellen
my @SA = (2015, 1, 13, $hour1, $min1, $sec1);
my @SU = (2015, 1, 13, $hour2, $min2, $sec2);
#Differenz Berechnen
@Z3 = Delta_DHMS(@SA, @SU);
#Auf zwei Stellen festlegen
$Z3[1] = sprintf ('%.02d', $Z3[1]);
$Z3[2] = sprintf ('%.02d', $Z3[2]);
#Rückgabe Std:Min
return "$Z3[1]:$Z3[2]";
}

3.) Und in Fhem folgendes angelegt:
### 3. Sonnenaufgang ###
define updateSonnenaufgang at *00:00:05 {my $src =  $defs{KS300};;\
  readingsSingleUpdate($src,"civil-sunrise", civilsunrise(), 1) if( defined($src) );;}

### 4. Sonnenuntergang ###
define updateSonnenuntergang at *00:00:07 {my $ssc =  $defs{KS300};;\
  readingsSingleUpdate($ssc,"civil-sunset", civilsunset(), 1) if( defined($ssc) );;}

### 5. Tageslänge ###
define updateTageslaenge at *00:00:09 {my $Z3 =  $defs{KS300};;\
  readingsSingleUpdate($Z3,"civil-day", tageslaenge(), 1) if( defined($Z3) );;}


Nun bekomme ich es bei meiner Wetterstadion (KS300) mit Angezeigt.
Das sollte auch mit einen Dummy klappen.
Und zwar wird um 00:00:05 (Sonnenaufgang), 00:00:07 (Sonnenuntergang) und um 00:00:09 die Tageslänge berechnet.

Die Profis hier haben bitte Verständnis für das was Ich gemacht habe.  :)

PS. Habe gerade mal im Netz hier http://www.sonnenverlauf.de (http://www.sonnenverlauf.de/) nach gesehen und
      es passt halb weg's.
      Mit vier Minuten Tage differenz kann man leben.  ;)
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Kakaomonster am 12 Februar 2015, 12:35:14
Hallo zusammen,

mal eine vielleicht dumme Frage da ich evtl falsch liege, aber warum definiert den Sonnenauf- bzw Untergang niemand so?

define Sonnenauf at *{sunrise("REAL",0,"4:00","08:00")} set Sonnenauf on
attr Sonnenauf room 40_System

define Sonnenunter at *{sunset("REAL",0,"16:00","22:00")} set Sonnenunter on
attr Sonnenunter room 40_System


Das

set Sonnenauf on und
set Sonnenunter on

gibt es bei mir nicht, daher wird auch nichts gesvhaltet, aber ich kann immer den nächsten Sonnenauf - bzw Untergang ablesen. Oder habe ich das Thema hier fehlverstanden?

Grüsse, Ralf
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: betateilchen am 12 Februar 2015, 16:34:31
Zitat von: Kakaomonster am 12 Februar 2015, 12:35:14
mal eine vielleicht dumme Frage da ich evtl falsch liege, aber warum definiert den Sonnenauf- bzw Untergang niemand so?

Ich mach  das so - weil ich fhem verstanden habe ;)

Zitat von: Kakaomonster am 12 Februar 2015, 12:35:14
Das ... gibt es bei mir nicht, daher wird auch nichts gesvhaltet, aber ich kann immer den nächsten Sonnenauf - bzw Untergang ablesen.

Dann mach doch einfach folgendes:



define Sonnenauf at *{sunrise("REAL",0,"4:00","08:00")} {}
attr Sonnenauf room 40_System

define Sonnenunter at *{sunset("REAL",0,"16:00","22:00")} {}
attr Sonnenunter room 40_System



dann verschwinden sogar die Fehlermeldungen im Logfile ;)
Titel: Antw:SUNSET/SUNRISE abfragen und anzeigen
Beitrag von: Kakaomonster am 12 Februar 2015, 16:40:03
Sorry betateilchen, so habe ich es auch. Das andere hatte ich aus einer alten test datei mit sammelsorium kopiert. Bin erst später dahinter gekommen wie ich das set weg bekomme :-)

Habs vielleicht noch nicht vollständig verstanden, lerne aber immer noch und gerne dazu :-)

Daher frage ich einfach nochmal, gibt es einen besonderen Grund, warum es hier anders und nicht so einfach gezeigt wurde? Möchte schliesslich fehler abschaffen bzw in Zukunft vermeiden :-)

Grüsse, Ralf