SUNSET/SUNRISE abfragen und anzeigen

Begonnen von myfhem41113, 04 November 2013, 09:24:25

Vorheriges Thema - Nächstes Thema

bendim

@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.

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.

LuckyDay

@ moonsorrox

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

moonsorrox

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.. ;)
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Hollo

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
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

Michael

#34
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
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

Michael

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) );;}
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

Dangermouse

#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
FHEM auf Synology-NAS via Docker
piVCCU
HM-LAN & SCC 868 (MAX!) als Funkschnittstelle

Michael

#37
@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 nach gesehen und
      es passt halb weg's.
      Mit vier Minuten Tage differenz kann man leben.  ;)
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

Kakaomonster

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
FHEM auf Raspi m.12cm Antenne, BBB als Server für Zusatz (apache,php,sql)
1 USB CUL/RAW (ReadAnswer):  V 1.61
2 MAX Thermostate, 1 MAX Wanthermostast
1 FHT8V Thermostat, Schaltaktoren,Bewegungsmelder, Wandtatser Elro & IT
1 HMT 360, 4 7"Tablets, FB 7490

betateilchen

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 ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Kakaomonster

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
FHEM auf Raspi m.12cm Antenne, BBB als Server für Zusatz (apache,php,sql)
1 USB CUL/RAW (ReadAnswer):  V 1.61
2 MAX Thermostate, 1 MAX Wanthermostast
1 FHT8V Thermostat, Schaltaktoren,Bewegungsmelder, Wandtatser Elro & IT
1 HMT 360, 4 7"Tablets, FB 7490