FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: betateilchen am 23 Mai 2014, 23:46:06

Titel: Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: betateilchen am 23 Mai 2014, 23:46:06
(http://up.picr.de/18378981tu.jpg)

Definition des SVG plots:



Internals:
   CFGFN
   DEF        sunDummyLog:SVG_sunDummy:CURRENT
   GPLOTFILE  SVG_sunDummy
   LOGDEVICE  sunDummyLog
   LOGFILE    CURRENT
   NAME       SVG_sunDummy
   NR         276
   STATE      initialized
   TYPE       SVG
Attributes:
   fixedrange year
   room       19 Balkon
   title      {"".dec2hms($data{min1})." - ".dec2hms($data{max1})." - ".dec2hms($data{min2})." - ".dec2hms($data{max2})}


(http://up.picr.de/18378995ne.jpg)

zugehörige gplot-Datei:



# Created by FHEM/98_SVG.pm, 2014-05-18 23:36:13
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid ytics
set ylabel "Sonnenaufgang"
set y2label "Sonnenuntergang"
set yrange [4:10]
set y2range [16:22]

#FileLog 4:sunDummy.sunrise\x3a::time2dec($fld[3])
#FileLog 4:sunDummy.sunset\x3a::time2dec($fld[3])
#FileLog 4:sunDummy.sunset\x3a::time2dec($fld[3])

plot "<IN>" using 1:2 axes x1y1 title 'Sonnenaufgang' ls l6fill lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Sonnenuntergang' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title ' ' ls l4fill lw 1 with lines



Die beiden benutzten Funktionen time2dec und dec2hms dienen dazu, Uhrzeiten als Dezimalwerte zu verwenden (und umgekehrt) um sie auf der y-Achse plotten zu können. 05:30:00 Uhr wird dadurch zu 5,5 (und umgekehrt für die Anzeige der Titelzeile) Diese Funktionen muss man sich selbst programmieren und z.B. in die 99_myUtils.pm einbauen.

Die Titelzeile des plots bezeichnet

- frühester bisher erfasster Sonnenaufgang
- spätester bisher erfasster Sonnenaufgang
- frühester bisher erfasster Sonnenuntergang
- spätester bisher erfasster Sonnenuntergang

Eine Spielerei - aber ich wollte einfach mal wissen, ob es überhaupt irgendwie geht. Läuft noch nicht allzulange, deshalb ist bei meinem fixedrange=year noch nicht so arg viel zu sehen. Wird aber bestimmt eine interessante Grafik, wenn die Daten mal ein paar Monate länger gesammelt werden.
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: DrBytebreaker am 24 Mai 2014, 09:27:19
Kannst du nem Perl-Problemfall - wie z. B. mir - das 99_utils.pm "Zubehör" posten?  ;)
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: justme1968 am 24 Mai 2014, 09:46:50
das wird vermutlich sehr ähnlich ausschauen wie die lightmanager astro funktion.

http://cms.jbmedia.de/images/stories/lmpro_new/4_big.jpg

und wieder mal
zeigt sich das mit fhem alles geht und vor allem tolle namen fehlen.
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: betateilchen am 24 Mai 2014, 10:54:14
Zitat von: DrBytebreaker am 24 Mai 2014, 09:27:19
Kannst du nem Perl-Problemfall - wie z. B. mir - das 99_utils.pm "Zubehör" posten?  ;)

Eigentlich wollte ich die Leute ja zum Selberdenken motivieren. Das ist Mathematik, Grundschule, 3.Klasse



sub time2dec($){
  my ($h,$m,$s) = split(":", shift);
  $m = 0 if(!$m);
  $s = 0 if(!$s);
  my $t  = $m * 60;
     $t += $s;
     $t /= 3600;
     $t += $h;
  return ($t)
}

sub dec2hms($){
  my ($t) = @_;
  my $h = int($t);
  my $r = ($t - $h)*3600;
  my $m = int($r/60);
  my $s = $r - $m*60;
  return sprintf("%02d:%02d:%02d",$h,$m,$s);
}

Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: CQuadrat am 27 Mai 2014, 11:32:13
Hallo Betateilchen,

so aus Interesse mal gefragt:
Wie ist den Dein dummy-Device "sunDummy" denn definiert? Wenn ich das Beispiel hier richtig interpretiere, dann sind in diesem Dummy sowohl Sonnenuntergang ("sunset") als auch Sonnenaufgang ("sunrise") gespeichert  :o

Ich dachte bisher, dass ein dummy-Device nur einen Wert abspeichern kann ???
Ich habe z.B. je einen dummy für Sonnenauf- und Untergang angelegt.


Viele Grüße

Christoph
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: marvin78 am 27 Mai 2014, 11:33:56
Wieso sollte das so sein? Du kannst doch mit setreading (und/oder UserReadings) beliebig viele Readings im dummy unterbringen (wie übrigens in jedem anderen Device auch).
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: CQuadrat am 27 Mai 2014, 11:41:51
Bingo. Das hatte ich gar nicht auf meinem Radar.
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: topfi am 29 Mai 2014, 21:17:16
Nicht hauen: Wie generiert man solche Readings und das passende Logfile mit den täglichen sunrise/sunset-Zeiten?

Klar könnte ich eine Tabelle für alle Ewigkeit ausrechnen, schließlich ändert sich das (hoffentlich  :o) in den nächsten hundert Jahren nicht mehr. Aber mir geht es um ein besseres Verständnis von FHEM.
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: Puschel74 am 30 Mai 2014, 22:36:18
Hallo,

ich wäre auch dankbar für ein kleine Hilfestellung wie das mit DbLog aussehen würde.
Die Definition für den weblink bekomm ich ja hin aber wie muss die Umrechnung im gplot angestossen werden  ???

#DbLog <SPEC1>:time2dec(state)
klappt so leider nicht  :(

Reading ist vorhanden:
Aus myDbLog:
Zitat2014-05-29_01:06:00 04:59:13
Dummy siehe Screenshot.

Für einen sanften Tritt wäre ich mal wieder dankbar  :-[

Als label steht auch nur HISTORY  ??? erledigt

Grüße

Edith: Hier noch das define des weblink:
efine wl_Sonnenaufuntergang SVG myDbLog:sonnenaufuntergang:HISTORY
attr wl_Sonnenaufuntergang fixedrange year
attr wl_Sonnenaufuntergang label {"".dec2hms($data{min1})." - ".dec2hms($data{max1})." - ".dec2hms($data{min2})." - ".dec2hms($data{max2})}
attr wl_Sonnenaufuntergang plotfunction Sonnenaufgang Sonnenuntergang


Edith1: Ich nähere mich langsam an  8)
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: stromer-12 am 30 Mai 2014, 23:18:08
#DbLog myTwilight:sr:::$val=time2dec($val)
#DbLog myTwilight:ss:::$val=time2dec($val)
#DbLog myTwilight:ss:::$val=time2dec($val)
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: Puschel74 am 30 Mai 2014, 23:24:24
Hallo,

crazy - vielen Dank.

Das klappt schonmal wunderbar  ;D

Grüße

Edith: Komm mal in meine Gegend - ein Bierchen steht im Kühlschrank für dich  8)
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: Pnemenz am 07 Juni 2014, 21:55:01
Zitat von: marvin78 am 27 Mai 2014, 11:33:56
Wieso sollte das so sein? Du kannst doch mit setreading (und/oder UserReadings) beliebig viele Readings im dummy unterbringen (wie übrigens in jedem anderen Device auch).
Ich versuche das jetzt schon einige Zeit aber es klappt bei mir nicht. Wenn ich mit setreading versuche die Uhrzeit in einen Dummy zu schreiben:
define sonnenzeit dummy
setreading sonnenzeit aufgang {sunrise_abs()}

dann hab ich folgendes Ergebnis (siehe Anhang)
ich hab es schon mit allen möglichen Varianten versucht. komm aber auf keinen grünen Zweig  >:(.

Peter
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: betateilchen am 07 Juni 2014, 22:35:39
Du solltest vielleicht einfach fhem-Befehle nicht mit perl-Funktionen mischen. Das funktioniert nämlich nicht.
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: hexenmeister am 08 Juni 2014, 00:56:59
Cool!
habe nachgebaut und auch was dabei gelernt ;) Danke!
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: Pnemenz am 08 Juni 2014, 07:01:06
Zitat von: betateilchen am 07 Juni 2014, 22:35:39
Du solltest vielleicht einfach fhem-Befehle nicht mit perl-Funktionen mischen. Das funktioniert nämlich nicht.
auch das hab ich versucht:
setreading sonne aufgang sunrise_abs()
mit dem selben Erfolg.

Anscheinend hab ich tiefliegendes Verständnisproblem vor allem mit der Syntax von FHEM. Das ist für mich inzwischen wirklich frustrierend.  :(
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: hexenmeister am 08 Juni 2014, 08:53:46
Versuche doch anders herum, also mit einem Perl-Befehl.
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: Pnemenz am 08 Juni 2014, 09:42:09
Lieber Hexenmeister und liebes betateilchen,

Zitat von: hexenmeister am 08 Juni 2014, 08:53:46
Versuche doch anders herum, also mit einem Perl-Befehl.
Zitat von: betateilchen am 07 Juni 2014, 22:35:39
Du solltest vielleicht einfach fhem-Befehle nicht mit perl-Funktionen mischen. Das funktioniert nämlich nicht.

Danke für Eure Antworten aber sie wiedersprechen sich komplett und beide Ansätze funktioniert bei mir offensichtlich nicht.

Ich habe alle erdenklichen Variante ausprobiert  mit und ohne sämtlichen Klammervarianten, mit und ohne Anführungszeichen, mit ond ohne $-Zeichen usw. Ich frage erst in Foren wenn mir wirklich nichts mehr einfällt, wie ich selber draufkommen könnte. Ich habe auch die Comandref, das HowTo und  alle anderen erdenklichen Quellen gelesen.

Trotzdem brauche ich Hilfe. Leider helfen mir Allgemeinplätze, die auf die von mir offensichtlich nciht verstandenen Quellen Verweise nicht weiter.

Vielleicht könnte einfach einer der das Problem gelöst hat mir ganz simpel die eine Zeile, die ich anscheined falsch habe  in seiner Version Posten.

Danke
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: hexenmeister am 08 Juni 2014, 10:08:37
Wenn ich hier eine fertige Lösung poste, wird Betateilchen wütend  :o

Das Problem an Deinem Befehl ist, dass an dieser Stelle die Perl-Anweisungen offensichtlich nicht interpretiert werden. Eine möglich Lösung ist, dies als ein Perl-Befehl mit einem fhem-Aufruf umzubauen. Etwa so:
{fhem("setreading sunDummy sunrise ".sunrise_abs());fhem("setreading sunDummy sunset ".sunset_abs());}
Hier wird im Perl die komplette FHEM-Anweisung fertig aufgbaut. Mit 'richtigen' Zeitangaben statt Funktionsnamen.

Jetzt muss Du nur noch dafür sorgen, dass das täglich ausgeführt wird und in einer LogDatei (-DB) landet.
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: Pnemenz am 08 Juni 2014, 11:06:29
Danke Dir. Das hilft schon viel weiter.

Ganz schaff ichs immer noch nicht.
Ich habe deine Zeile mit meinen Namen umgeformt:
{fhem("setreading sonne aufgang ".sunrise_abs());fhem("setreading sonne untergang ".sunset_abs())}
erzeugt folgende Fehlermeldung:
Unknown command {fhem("setreading, try help.
Unknown command fhem("setreading, try help.


Das hintereinander Ausführen der beiden Befehle bringt das richtige Ergebnsi.

{fhem("setreading sonne aufgang ".sunrise_abs())}
{fhem("setreading sonne untergang ".sunset_abs())}



Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: hexenmeister am 08 Juni 2014, 11:19:30
wenn Du die Befehle so eingibst (oder direkt in config schreibst), dann musst Du die Semikolons verdoppeln:

{fhem("setreading sonne aufgang ".sunrise_abs());;fhem("setreading sonne untergang ".sunset_abs())}
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: betateilchen am 08 Juni 2014, 12:04:07
bei mir werden die Werte jede Nacht um 00:02 Uhr ermittelt und in ein dummy geschrieben:



define sunMarker at *00:02:00 { CommandSetReading(undef, "sunDummy sunrise ".sunrise('REAL'));; CommandSetReading(undef, "sunDummy sunset ".sunset('REAL')); }

Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: betateilchen am 08 Juni 2014, 12:05:36
Mit sunrise_abs() und sunset_abs() sollte man nicht unbedingt arbeiten.
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: hexenmeister am 08 Juni 2014, 12:16:22
CommandSetReading aufzurufen ist sicherlich etwas effezienter, aber für einen Anfänger nicht zu verstehen.  ;)
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: betateilchen am 08 Juni 2014, 15:42:36
als ob hier im Forum nur Dinge gepostet würden, die für Anfänger verständlich sind...  8)
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: hexenmeister am 08 Juni 2014, 17:05:18
Ja schon, aber dein Post war doch eindeutig eine Anregung für Anfänger zum mitmachen (=mitdenken).
Sonst hättest du einfach die Lösung gepostet.   ;)
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: Pnemenz am 09 Juni 2014, 08:41:47
Zitat von: hexenmeister am 08 Juni 2014, 12:16:22
CommandSetReading aufzurufen ist sicherlich etwas effezienter, aber für einen Anfänger nicht zu verstehen.  ;)
vor allem wenn in der comandref nix darüber steht
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: Pnemenz am 09 Juni 2014, 08:42:18
Zitat von: betateilchen am 08 Juni 2014, 12:05:36
Mit sunrise_abs() und sunset_abs() sollte man nicht unbedingt arbeiten.
warum?
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: hexenmeister am 09 Juni 2014, 09:01:53
Zitatvor allem wenn in der comandref nix darüber steht
Wird auch nie, es ist die interne Implementierung des setreading Befehls in fhem.pl
Der Aufruf von fhem("setreading... wird letzendlich auch da landen. Beim direkten Aufruf wird quasi der Weg dahin gespart.
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: betateilchen am 09 Juni 2014, 10:40:01
Zitat von: Pnemenz am 09 Juni 2014, 08:41:47
vor allem wenn in der comandref nix darüber steht

Man sollte sich irgendwann verinnerlichen, dass in der commandref die fhem Anweisungen (commands) beschrieben sind. Die Anweisung heißt setreading und sollte auch in der commandref zu finden sein.

CommandSetReading() ist eine perl Funktion und keine fhem Anweisung. Deshalb steht darüber korrekterweise nichts in der Befehlsreferenz.

Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: franky08 am 10 Juni 2014, 00:57:21
Hab mich da gerade auch mal drann versucht, aber das Ergebnis ist etwas seltsam, siehe Screenshot:

Meine gplot:# Created by FHEM/98_SVG.pm, 2014-06-10 00:44:08
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics
set y2tics
set grid ytics
set ylabel "Sonnenaufgang"
set y2label "Sonnenuntergang"
set yrange [4:10]
set y2range [16:22]

#DbLog sunDummy:sunrise:::$val=time2dec($val)
#DbLog sunDummy:sunset:::$val=time2dec($val)
#DbLog sunDummy:sunset:::$val=time2dec($val)

plot "<IN>" using 1:2 axes x1y1 title 'Sonnenaufgang' ls l6fill lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Sonnenuntergang' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title ' ' ls l4fill lw 1 with lines


Hat da jemand einen Fingerzeig?

VG
Frank
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: hexenmeister am 10 Juni 2014, 01:23:44
Zitataber das Ergebnis ist etwas seltsam
in der Tat ;)
mache doch einen Select, wie sehen denn die Daten aus?
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: franky08 am 10 Juni 2014, 09:53:49
@hexenmeister

In meiner DbLog Datenbank waren noch alte sunrise Datensätze mit sunrise >24:00:00, da ich :
*00:05:00 { CommandSetReading(undef, "sunDummy sunrise ".sunrise('REAL')); CommandSetReading(undef, "sunDummy sunset ".sunset('REAL')) }
mal tagsüber aufgerufen habe und dadurch "nächster Sonnenaufgang morgen früh" >24 ausgelesen wurde.
Habe auf die Schnelle das Ganze mal mit FileLog (wie betateilchen) nachgebaut, habe z.Zt. aber noch keine Daten, da ja die erst morgen früh 00:05:00 neu eingelesen werden. Werde mich also bis morgen gedulden müssen.

VG
Frank
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: hexenmeister am 10 Juni 2014, 13:33:22
Das erklärt natürlich das Problem  :D
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: franky08 am 12 Juni 2014, 00:18:53
Jetzt, wo ich Daten über 2 Tage habe, es funktioniert. Die einzige Frage, die sich mir stellt ist: warum funktioniert der SVG Plot nur mit CURRENT und, wie vor einiger Zeit ("bitte SVG Plot´s von CURRENT auf HISTORY umstellen") NICHT??
Unterschied DbLog/FileLog?
VG
Frank
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: betateilchen am 20 Juni 2014, 19:16:55
seit vorgestern verschiebt sich hier der morgendliche Sonnenaufgang bereits wieder nach hinten...
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: CQuadrat am 26 Juni 2014, 10:34:25
Zitat von: betateilchen am 20 Juni 2014, 19:16:55
seit vorgestern verschiebt sich hier der morgendliche Sonnenaufgang bereits wieder nach hinten...

Ja, es geht wieder abwärts ::'(


Da in diesem Thread vermutlich die entsprechend interessierten Foristen unterwegs sind, eine Frage im weiteren Zusammenhang zum Sonnenauf- und untergang:

Weiß jemand, woher ich die Mondphasen bekommen kann bzw. wie ich die darstellen kann? Schön wäre auch die jeweilige Mondauf- und untergangszeit.


@betateilchen: Falls Du diese Frage hier nicht haben willst, kann ich sie auch gerne woanders (wo?) stellen.


Viele Grüße

Christoph
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: moonsorrox am 27 Juni 2014, 14:18:09
ich habe wohl auch ein paar Probleme, kann mir jemand sagen warum ich trotz übernahme der gesamten Codeschnipsel folgendes siehe Screenshot erhalte... dazu zwei Fragen
1. oben rechts wird die Zeit nicht richtig dargestellt im Titel, - frühester bisher erfasster Sonnenuntergang - spätester bisher erfasster Sonnenuntergang
2. warum sieht mein Plot Editor im linken unteren Bereich anders aus, da kann ich nicht das einstellen wie es betateilchen im Bild zeigt

die 99_myUtils.pm ist so erstellt wie im Fred oben, die Definition des SVG plots ist die gleiche sowie die zugehörige gplot-Datei.

Was mache ich noch falsch..?
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: franky08 am 27 Juni 2014, 14:34:33
@moonsorrox
Hallo, lösch mal deine Filelog Datei vom sunDummy und führe die Abfrage in der Nacht aus. Wenn du das tagsüber mal gemacht hast ist die Zeit bis zum nächsten Sonnenaufgang >24h.
Hatte damals den gleichen Fehler gemacht, als ich das getestet habe.

ZitatIn meiner DbLog Datenbank waren noch alte sunrise Datensätze mit sunrise >24:00:00, da ich :
Code: [Auswählen]
*00:05:00 { CommandSetReading(undef, "sunDummy sunrise ".sunrise('REAL')); CommandSetReading(undef, "sunDummy sunset ".sunset('REAL')) }
mal tagsüber aufgerufen habe und dadurch "nächster Sonnenaufgang morgen früh" >24 ausgelesen wurde.
Habe auf die Schnelle das Ganze mal mit FileLog (wie betateilchen) nachgebaut, habe z.Zt. aber noch keine Daten, da ja die erst morgen früh 00:05:00 neu eingelesen werden. Werde mich also bis morgen gedulden müssen.

VG
Frank
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: moonsorrox am 27 Juni 2014, 15:09:16
in der steht ja noch gar nücht drin, die is von gestern am Tage - hätte also heute in der Nacht schon ein Eintrag sein sollen, oder täusche ich mich..?
Ich denke auch wie ich auch schon gefragt habe etwas stimmt mit meinem Plot Editor nicht..!
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: franky08 am 27 Juni 2014, 15:17:55
Dann liegt der neue Eintrag unter deinem alten Plot und du siehst den nicht, glaub's, war bei mir das gleiche.
Wie das bei dem Ploteditor war, weis ich nicht mehr. Nachdem ich ein rereadcfg gemacht hatte, konnte ich dann sunrise, Sunset und das dummy im Ploteditor auswählen. Anfangs erschien das dummy device bei mir auch nicht im Editor.

P.S. und warte bis nach Mitternacht, damit du valide Daten bekommst  ;)

VG
Frank
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: moonsorrox am 28 Juni 2014, 02:44:31
so ich habe mal ins Logfile geschaut und sehe diesen Fehler von meinem sunMarker:

Unknown command CommandSetReading(undef,, try help.
2014.06.28 00:05:00 3: sunMarker: Unknown command CommandSetReading(undef,, try help.

den sunMarker habe ich so wie hier in dem Beitrag dargestellt komplett übernommen, damit ist natürlich auch kein Eintrag im Filelog, was ist jetzt nun falsch..?
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: franky08 am 28 Juni 2014, 08:46:28
Sieht bei mir so aus, copy&paste Fehler?

Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: moonsorrox am 28 Juni 2014, 13:32:49
mal schauen jetzt meckert er nicht mehr, ich hatte den von ganz vorn hier aus dem Beitrag genommen aus der Antwort #20 von betateilchen...
er nimmt meines Wissens diese immer aus den Internals und so hatte ich es auch übernommen und sieht auch bei mir genauso aus.

Edit:// noch screenshot ran gehangen mit dem der gleiche Fehler im Log, weiß nicht was ich falsch mache

Unknown command CommandSetReading(undef,, try help.
2014.06.28 13:46:00 3: sunMarker: Unknown command {, try help.
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: franky08 am 28 Juni 2014, 13:59:21
Guck mal richtig in die Antwort 20 von betateilchen, dass ist das define aus der fhem.cfg.

P.S. Nach ))Real hast du 2 ;; das kommt so nur direkt in die fhem.cfg. In der DEF verdoppelt fhem das beim abspeichern

in der DEF so:
*00:05:00 { CommandSetReading(undef, "sunDummy sunrise ".sunrise('REAL')); CommandSetReading(undef, "sunDummy sunset ".sunset('REAL')) }
VG
Frank
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: moonsorrox am 28 Juni 2014, 15:46:09
OK, aber ich habe es ja jetzt so wie du es auch abgebildet hast drin..!  ;)

habe die Zeit mal auf 15:44 gesetzt und er zeigt mir wieder diesen blöden Fehler:

Unknown command CommandSetReading(undef,, try help.
2014.06.28 15:44:00 3: sunMarker: Unknown command {, try help.

screenshot hänge ich ran damit du siehst es ist jetzt so wie bei dir, nur eben die Zeit angepasst  ;)
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: franky08 am 28 Juni 2014, 17:03:34
@moonsoroxx
Hallo, ließ mal den Thread von Seite 1 an, wenn das, aus welchem Grund auch immer, bei dir nicht geht mit dem CommandSetReading dann mach es über 2 dummys, dass geht totsicher. Dann must du nur den Rest anpassen. Sunrise in ein dummy schreiben und sunset in dummy 2. Dann hast du erst mal die 2 Readings.
Was mich nur wundert ist, dass es bei dir mit CommandSetReading nicht gehen will  :o

VG
Frank

P.S. Bin dann erst mal arbeiten
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: stim am 10 August 2014, 01:35:53
Hey,

ich habe folgendes SVG Plot File:

# Created by FHEM/98_SVG.pm, 2014-08-10 01:28:39
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics
set y2tics
set grid ytics
set ylabel "Sonnenaufgang"
set y2label "Sonnenuntergang"
set yrange [4:10]
set y2range [16:22]

#FileLog 4:sunDummy.sunrise\x3a:::$val=time2dec($val)
#FileLog 4:sunDummy.sunset\x3a:::$val=time2dec($val)
#FileLog 4:sunDummy.sunset\x3a:::$val=time2dec($val)

plot "<IN>" using 1:2 axes x1y1 title 'Sonnenaufgang' ls l6fill lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Sonnenuntergang' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title ' ' ls l4fill lw 1 with lines


Auf der Website in SVG_Sonnenstand_1 habe ich stehen:
Bzw. in der FileLog_sunDummy:

2014-08-10_01:18:02 sunDummy sunrise: 06:16:02
2014-08-10_01:18:02 sunDummy sunset: 20:58:59

Die Funktion time2dec ist aus diesem Thread in die utils kopiert.
Wann wird die Funktion time2dec aufgerufen?

Ich bekomme keine Anzeige.

Habt ihr eine Idee

Grüße stim
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: Raven am 10 August 2014, 08:59:45
Wird bei Attribut-Verwendung von fixedrange month etwas angezeigt? Bei mir ja, aber setze ich fixedrange auf year sehe ich auch nichts.
Gab mal oben den Hinweis bzgl. CURRENT vs. HISTORY, bringt bei mir leider nichts (ich hab FileLogs).
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: stefan-kiefer am 07 Oktober 2014, 23:48:52
Hallo zusammen,

da ich blutiger FHEM-Anfänger bin und mich hier schon soweit durchgeboxt habe, stehe ich aktuell vor dem gleichen Problem, das keine Werte angezeigt werden.

Daher wollte ich mal fragen, ob noch jemand etwas zu einer möglichen Lösung schreiben kann.
Vielleicht gibt es ja doch noch eine funktionierende Zusammenfassung zu diesem Thema:-)

Vielen Dank
Stefan
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: hexenmeister am 08 Oktober 2014, 00:53:31
Eigentlich ist hier alles im Thread.
Wo genau hängst Du? Sind die Daten im Log und hast Du Plot-Probleme? Oder klappt schon mit den Daten nicht?
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: stefan-kiefer am 08 Oktober 2014, 14:13:22
Zitat von: hexenmeister am 08 Oktober 2014, 00:53:31
Eigentlich ist hier alles im Thread.
Wo genau hängst Du? Sind die Daten im Log und hast Du Plot-Probleme? Oder klappt schon mit den Daten nicht?

Um alle relevanten Infos zu meiner Konfig und den Logs hier zusammenzutragen, habe ich natürlich noch einmal alles kontrolliert. Ich war etwas stutzig, dass hier alles Infos vorhanden sein sollen. Aber das ist ja schon mal ein guter Hinweis.

Dabei habe ich festgestellt, dass die SVG-Plot-Datei von stim in Post #46 nicht mit der von betateilchen in Post #1 identisch ist. Den Unterschied in den drei #FileLog-Zeilen verstehe ich im Moment auch noch nicht. Also habe ich gerade die Datei von betateilchen genommen und muss sagen... es funktioniert ;D

Vielleicht war es gestern Abend für mich auch schon zu spät, um den Unterschied zu sehen:-)


Vielen Dank
Stefan
Titel: Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: justme1968 am 09 November 2014, 21:42:58
mit den inzwischen vorhandenen sunrise_abs_dat() und sunset_abs_dat() funktionen und logProxy lassen sich sonnenauf- und -untergang auch ohne die werte täglich zu loggen sondern 'live' berechnet plotten (und auch in andere plots einbauen). das ganze drum herum wie die umwandlung von uhrzeit nach dezimal und zurück ist dabei gleich geblieben.

(http://forum.fhem.de/index.php?action=dlattach;topic=26529.0;attach=21230)

mehr dazu gibt es hier: http://forum.fhem.de/index.php/topic,26529.msg217307.html#msg217307 (http://forum.fhem.de/index.php/topic,26529.msg217307.html#msg217307)

gruss
  andre

edit: die aktuelle Version ist im wiki beschrieben: http://www.fhemwiki.de/wiki/LogProxy#Sonnenauf-_und_-untergangszeiten_plotten
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: scheisserchen65 am 01 September 2015, 20:17:52
Kann mir hier jemand noch einmal helfen?

Ich komme nicht weiter, bekomme keinen Plot denn ich weiß nicht wie genau die Funktion time2dec anzuwenden ist.
Ich habe eine Bildschirmkopie des SVG-Plot-File angefügt, vielleicht gibt es ja jemanden der weiter weiß.

Gruß
Reinhard
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: jnewton957 am 06 September 2015, 13:08:21
Zitat von: scheisserchen65 am 01 September 2015, 20:17:52

Ich komme nicht weiter, bekomme keinen Plot denn ich weiß nicht wie genau die Funktion time2dec anzuwenden ist.

Die Funktion time2dec kommt in die 99_myUtils.pm.

Grüße
Jörg


# für Sonnenaufgang - untergang

sub time2dec($){
  my ($h,$m,$s) = split(":", shift);
  $m = 0 if(!$m);
  $s = 0 if(!$s);
  my $t  = $m * 60;
     $t += $s;
     $t /= 3600;
     $t += $h;
  return ($t)
}

sub dec2hms($){
  my ($t) = @_;
  my $h = int($t);
  my $r = ($t - $h)*3600;
  my $m = int($r/60);
  my $s = $r - $m*60;
  return sprintf("%02d:%02d:%02d",$h,$m,$s);
}
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: scheisserchen65 am 06 September 2015, 15:13:20
Zitat von: jnewton957 am 06 September 2015, 13:08:21
Die Funktion time2dec kommt in die 99_myUtils.pm.

Grüße
Jörg


# für Sonnenaufgang - untergang

sub time2dec($){
  my ($h,$m,$s) = split(":", shift);
  $m = 0 if(!$m);
  $s = 0 if(!$s);
  my $t  = $m * 60;
     $t += $s;
     $t /= 3600;
     $t += $h;
  return ($t)
}

sub dec2hms($){
  my ($t) = @_;
  my $h = int($t);
  my $r = ($t - $h)*3600;
  my $m = int($r/60);
  my $s = $r - $m*60;
  return sprintf("%02d:%02d:%02d",$h,$m,$s);
}


Ja, danke, das habe ich bereits gemacht.
Mein Problem ist es in der SVG-Funktion die Funktion time2dec richtig einzubinden.
Egal was ich mache, ich bekomme nur einen leeren Plot  :'(
Muss ich da in dem Feld Function $val=time2dec($val) eintragen?

Gruß
Reinhard
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: jnewton957 am 06 September 2015, 17:14:06
Deine gplot sollte dann so aussehen.

Kopiere das einfach in deine aktuelle gplot rein und speichere sie wieder ab.

Grüße

Jörg

P.S. Die Sonnenfinsternis Ende März macht einen "unschönen" Ausschlag im Plot.



# Created by FHEM/98_SVG.pm, 2014-05-18 23:36:13
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid ytics
set ylabel "Sonnenaufgang"
set y2label "Sonnenuntergang"
#set yrange [4:10]
#set yrange [5:11]
#set y2range [16:22]

set yrange [5:15]
set y2range [12:22]


#FileLog 4:sunDummy.sunrise\x3a::time2dec($fld[3])
#FileLog 4:sunDummy.sunset\x3a::time2dec($fld[3])
#FileLog 4:sunDummy.sunset\x3a::time2dec($fld[3])

plot "<IN>" using 1:2 axes x1y1 title 'Sonnenaufgang' ls l4fill lw 1 with lines,\
"<IN>" using 1:2 axes x1y2 title 'Sonnenuntergang' ls l0 lw 1 with lines,\
"<IN>" using 1:2 axes x1y2 title ' ' ls l6fill lw 1 with lines

Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: scheisserchen65 am 06 September 2015, 18:03:11
Zitat von: jnewton957 am 06 September 2015, 17:14:06
Deine gplot sollte dann so aussehen.

Kopiere das einfach in deine aktuelle gplot rein und speichere sie wieder ab.

Grüße

Jörg

P.S. Die Sonnenfinsternis Ende März macht einen "unschönen" Ausschlag im Plot.



# Created by FHEM/98_SVG.pm, 2014-05-18 23:36:13
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid ytics
set ylabel "Sonnenaufgang"
set y2label "Sonnenuntergang"
#set yrange [4:10]
#set yrange [5:11]
#set y2range [16:22]

set yrange [5:15]
set y2range [12:22]


#FileLog 4:sunDummy.sunrise\x3a::time2dec($fld[3])
#FileLog 4:sunDummy.sunset\x3a::time2dec($fld[3])
#FileLog 4:sunDummy.sunset\x3a::time2dec($fld[3])

plot "<IN>" using 1:2 axes x1y1 title 'Sonnenaufgang' ls l4fill lw 1 with lines,\
"<IN>" using 1:2 axes x1y2 title 'Sonnenuntergang' ls l0 lw 1 with lines,\
"<IN>" using 1:2 axes x1y2 title ' ' ls l6fill lw 1 with lines


Danke schön  :)
Habe zwar den Code nicht kopiert und eingefügt aber ein paar wichtige Hinweise durch Deinen Post erhalten.
Nun funktioniert es bestens.
Gruß
Reinhard
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: franky08 am 06 September 2015, 18:31:39
ZitatP.S. Die Sonnenfinsternis Ende März macht einen "unschönen" Ausschlag im Plot.

Das stimmt nicht, der Ausschlag kommt einzig und alleine von der Umstellung Winter-/Sommerzeit!

V.G.
Frank
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: jnewton957 am 06 September 2015, 20:47:29
Zitat von: franky08 am 06 September 2015, 18:31:39
Das stimmt nicht, der Ausschlag kommt einzig und alleine von der Umstellung Winter-/Sommerzeit!

V.G.
Frank

Hi sieht bei mir etwas anders aus.

Grüße
Jörg
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: Puschel74 am 07 September 2015, 19:02:48
Die Sonnenfinsternis wird für die Berechnung der Sonnenauf- und -untergangzeiten nicht berücksichtigt.
Sonst hätte ich Mitte Mai eine Sonnenfinsternis gehabt  ;)
Und bei mir hatte sich in dieser Nacht einfach nur der Cubie verabschiedet d.h. FHEM ist nicht gelaufen.
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: moonsorrox am 09 September 2015, 18:01:36
mal eine Frage für mich zum Verständnis, denn ich kapiere es nicht...!
Was ich also irgendwie nicht begreife, mein Plot wird aufgezeichnet und seit 3 Tagen entsteht so langsam eben dieser Plot...!

die andere hatte ich irgendwo hier aus dem Thread, diese also:
define sunMarker at *00:02:00 { CommandSetReading(undef, "sunDummy sunrise ".sunrise('REAL'));; CommandSetReading(undef, "sunDummy sunset ".sunset('REAL')) }


und die funktioniert nicht - hier füllt sich nichts im Log..!

Wie gesagt ich habs bisher nicht verstanden  :-\ :-\
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: justme1968 am 09 September 2015, 18:27:06
ihr habt aber schon gesehen das es hier: http://forum.fhem.de/index.php?topic=23912.msg217310#msg217310 eine version gibt die ohne log files auskommt und auch keine dummys oder ähnliches braucht?
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: moonsorrox am 10 September 2015, 19:44:45
Zitat von: justme1968 am 09 September 2015, 18:27:06
ihr habt aber schon gesehen das es hier: http://forum.fhem.de/index.php?topic=23912.msg217310#msg217310 eine version gibt die ohne log files auskommt und auch keine dummys oder ähnliches braucht?
nein noch nicht, dass werde ich mir mal anschauen...!  ;)
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: Puschel74 am 10 September 2015, 19:59:04
Wer liest sich schon einen 5-Seiten Thread durch  ::)
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: justme1968 am 10 September 2015, 20:32:28
achja: die endgültige version ist im wiki beschrieben: http://www.fhemwiki.de/wiki/LogProxy#Sonnenauf-_und_-untergangszeiten_plotten (http://www.fhemwiki.de/wiki/LogProxy#Sonnenauf-_und_-untergangszeiten_plotten). damit sind auch alle eigenen routinen in 99_myUtils unnötig.

gruss
  andre
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: moonsorrox am 10 September 2015, 22:48:46
sieht gut aus..:! Danke ;)
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: moonsorrox am 14 September 2015, 23:44:47
hat das schon mal jemand mit einem DOIF realisiert..?

Da denke ich es muss ein "userReadings" erstellt werden so in der Art:
{ CommandSetReading(undef, "sunDummy sunrise ".sunrise('REAL')); CommandSetReading(undef, "sunDummy sunset ".sunset('REAL')) }

falls das so funktioniert, aber wie kommen die beiden Werte dann in das Filelog..?
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: UliM am 25 Oktober 2015, 09:21:18
Hi,
vielen Dank für den Hinweis und den Wiki-Beitrag.
Wäre klassse wenn jemand die plot-Definition posten könnte, die nicht die Sonnenauf- und -untergangszeiten für's ganze Jahr plottet, sondern daraus die gelbe Hinterlegung der Tageslichtstunden im Tagesplot macht.

Wird der dummy noch benötigt? Falls ja, wie gefüllt? Werden Sonnenauf- und -untergang nur in der Plotdefinition hinterlegt, oder doch noch ins log geschrieben? Wenn ja, wie?

Vielen Dank schon im Voraus :)

Gruß, Uli
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: Michael am 25 Oktober 2015, 11:05:33
Moin UliM

Ich bin kein Experte.
Habe mir was zusammen gebastelt.  :-[

1.   Habe einen Helligkeitssensor nach diesen Beitrag ( http://forum.fhem.de/index.php/topic,26335.30.html (http://forum.fhem.de/index.php/topic,26335.30.html) nachgebaut.
1a. Dieser füllt ein Dummy

2.   Dann habe ich zwei at 's für Sonnenauf,- untergang angelegt.
2a. Diese schreiben in den Dummy (1a) bei S-aufgang den wert 100, bei S-untergang den wert 0 in ein Reading.

3.  Nun lasse ich den Dummy (1a) noch in ein Log schreiben.

4. Jetzt wird das Diagramm erstellt.
    Das Ergebnis ist im Anhang zusehen.
    Was mich noch stört, ist das der gelbe Bereich im Vordergrund ist, da habe ich noch keine Lösung für gefunden.  :-[

Hoffe habe nicht vergessen.

So Ich weis, hier sind ganz andere Experten die dir weiter helfen können.  ;)
Aber wollte mal auch was Beitragen auch auf die Gefahr hin das hier ein grinsen ;D durch Forum geht.
Titel: Antw:Falls mal jemand Sonnenauf- und -untergangszeiten plotten möchte
Beitrag von: justme1968 am 25 Oktober 2015, 11:25:45
anbei ein paar ideen wie man das ohne extra dummy und log über logProxy lösen kann:

zusätzlich zur sonnenauf- und -untergangszeit die anzahl der tagesstunden plotten:
set y3label "Tagesstunden"
set y3range [8:19]

#logProxy Func:logProxy_Func2Plot($from,$to,'{logProxy_hms2dec(sunset_abs_dat($sec))-logProxy_hms2dec(sunrise_abs_dat($sec))}')

plot "<IN>" using 1:2 axes x1y4 title notitle ls l5 lw 1 with steps,\
sie screenshot unten.


die tagesstunden in einem plot gelb hinterlegen:
set y3range [0:1]

#logProxy Func:logProxy_Func2Plot($from,$to,'{logProxy_isDay($sec)}',{week=>60*30,day=>60*10,qday=>60})

plot "<IN>" using 1:2 axes x1y3 title notitle ls l4fill lw 1 with steps,\
siehe screenshot unten.

mit den folgenden beiden routinen (ab morgen eingecheckt):sub logProxy_hms2sec($){
  my ($h,$m,$s) = split(":", shift);
  $m = 0 if(!$m);
  $s = 0 if(!$s);
  my $t  = $s;
     $t += $m * 60;
     $t += $h * 60*60;
  return ($t)

sub logProxy_isDay($) {
  my ($sec) = @_;
   
  my $sr = logProxy_hms2sec(sunrise_abs_dat($sec));
  my $ss = logProxy_hms2sec(sunset_abs_dat($sec));
   
  my ($s,$m,$h) = localtime($sec);
  my $cur = logProxy_hms2sec( "$h:$m:$s" );
   
  return $cur > $sr && $cur < $ss;




inzwischen ist es nicht mehr nötig das komplette plotfile umzustellen wenn man logproxy verwenden möchte. es reicht das logproxy device zu definieren und die log proxy spezifischen zeilen im bestehende plotfile hinzuzufügen. statt dem #logProxy schlüsselwort wird dann der name des logproxy device verwendet. d.h. man kann nachträglich jeden beliebigen plot so hinterlegen.


@Michael: die einzelnen kurven werden in umgekehrter reihenfolge geplottet. d.h. die erste zeile ist der vordergrund und die nachfolgenden zeilen liegen dann immer weiter dahinter.

gruss
  andre