Hi,
Proplanta ist hervorragend, es tut so gut wie alles was ich will.
Ich möchte nun auch noch die Sonnenstunden anzeigen. Ich habe das Reading:
fc0_sun - relative sun shine duration today in % (between sun rise and set)
Gibt es eine Möglichkeit das direkt in Stunden:Min anzeigen zu lassen?
Gruss & Danke
hanselmann
Moin hanselmann,
ein userreadings mit ((sunset-sunrise) * fc0_sun/100)
Ich würde auf min verzichten :D
Gruß Otto
Bin hier grad durch Zufall drüber gestolpert und habe bisher nichts mit den userReadings getan.
Zitat
attr WetterProplanta userReadings Sonnenstunden {ReadingsVal((sunset-sunrise) * fc0_sun/100)}
Glaube ich bin völlig falsch. Wie müsste es eingetragen werden? Wo holt er sich sunset und sunrise denn her? Proplanta oder hat nicht. Von dem Twilight Modul?
Ist "eingebaut" ...
https://fhem.de/commandref_DE.html#SUNRISE_EL
Das UserReading hätte ich jetzt so zusammengesetzt....
attr WetterProplanta userReadings Sonnenstunden { (sunset-sunrise)* ReadingsVal("WetterProplanta", "fc0_sun", 0)/100}
Zitat von: stefanpf am 16 April 2018, 20:35:23
Ist "eingebaut" ...
https://fhem.de/commandref_DE.html#SUNRISE_EL
Das UserReading hätte ich jetzt so zusammengesetzt....
attr WetterProplanta userReadings Sonnenstunden { (sunset-sunrise)* ReadingsVal("WetterProplanta", "fc0_sun", 0)/100}
Erstmal vielen Dank!
Funktioniert, erst Fehlermeldung bekommen, dann verschwand Sie kurz danach.
Allerdings gibt er mir gerade 22 Sonnenstunden aus. Etwas viel.
Guten Abend,
mein Vorschlag war ja nur Prinzip Code nicht Copy&Paste und fertig.
ZitatSUNRISE_EL definiert eine Reihe von Perl-Subroutinen (z.B. zur Nutzung mit at):
sunrise() - absolute Zeit des nächsten Sonnenaufgangs (+ 24 h, wenn am nächsten Tag)
sunset() - absolute Zeit des nächsten Sonnenuntergangs (+ 24 h, wenn am nächsten Tag)
sunrise_rel() - relative Zeit des nächsten Sonnenaufgangs
sunset_rel() - relative Zeit des nächsten Sonnenuntergangs
sunrise_abs() - absolute Zeit des nächsten Sonnenaufgangs (ohne Stundenzuschlag)
sunset_abs() - relative Zeit des nächsten Sonnenuntergangs (ohne Stundenzuschlag)
sunrise_abs_dat() - absolute Zeit des nächsten Sonnenaufgangs an einem bestimmten Tag
sunset_abs_dat() - relative Zeit des nächsten Sonnenuntergangs an einem bestimmten Tag
isday() - Tag oder Nacht
Das Ergebnis hängt in dem jetzt gewählte Code stark vom Zeitpunkt der Berechnung ab :)
Gruß Otto
Edit: Ich merke gerade in der commandref istt offenbar auch was durcheinander. Also -> (sunset_abs() - sunrise_abs())
Vielen Dank nochmal für die Hilfe. Gibt noch genug stellen wo ich noch nicht durchblicke.
Zitat
attr WetterProplanta userReadings Sonnenstunden { (sunset_abs() - sunrise_abs())* ReadingsVal("WetterProplanta", "fc0_sun", 0)/100}
Dies Funktioniert und gibt realistische Werte zurück.
habe
attr WetterProplanta userReadings Sonnenstunden { (sunset_abs() - sunrise_abs())* ReadingsVal("WetterProplanta", "fc0_sun", 0)/100}
ausgeführt
im log steht:
2018.04.21 07:37:03 1: PERL WARNING: Argument "07:29:32" isn't numeric in subtraction (-) at (eval 1868) line 1.
2018.04.21 07:37:03 3: eval: { (sunset_abs() - sunrise_abs())* ReadingsVal("WetterProplanta", "fc0_sun", 0)/100}
2018.04.21 07:37:03 1: PERL WARNING: Argument "20:20:09" isn't numeric in subtraction (-) at (eval 1868) line 1.
2018.04.21 07:37:03 3: eval: { (sunset_abs() - sunrise_abs())* ReadingsVal("WetterProplanta", "fc0_sun", 0)/100}
Moin,
wie schon gesagt, dies gilt immer noch:
Zitat von: Otto123 am 16 April 2018, 21:15:03
mein Vorschlag war ja nur Prinzip Code nicht Copy&Paste und fertig.
...
Also -> (sunset_abs() - sunrise_abs())
Da kommt zwar etwas heraus, was das jetzt genau ist weiß ich nicht. Um es richtig zu machen müsste man die Stunden aus der formatierten Zeit (hh:mm:ss) extrahieren. -> http://perldoc.perl.org/
Gruß Otto
Hallo.
Bei Proplanta gibts ja den 24H Wert für Niederschlagsmenge, aber im Modul finde ich diese Auswertung nicht.
Habe schon die Datei um den Wert 24H erweitert, aber nichts gebracht.
Wie komme ich zu diesen Wert?
LG
gefunden, ist wert fcx_rain
wie habt ihr diese Fehler wegbekommen, seit ich das eingebaut habe kommen diese mehrmals am Tag
2018.05.12 18:55:51 3: eval: { (sunset_abs() - sunrise_abs())* ReadingsVal("Proplanta", "fc0_sun", 0)/100}
2018.05.12 18:55:51 1: PERL WARNING: Argument "21:47:41" isn't numeric in subtraction (-) at (eval 2812313) line 1.
2018.05.12 18:55:51 3: eval: { (sunset_abs() - sunrise_abs())* ReadingsVal("Proplanta", "fc0_sun", 0)/100}
2018.05.12 18:55:51 1: PERL WARNING: Argument "04:49:37" isn't numeric in subtraction (-) at (eval 2812313) line 1.
2018.05.12 17:55:51 3: eval: { (sunset_abs() - sunrise_abs())* ReadingsVal("Proplanta", "fc0_sun", 0)/100}
2018.05.12 17:55:51 1: PERL WARNING: Argument "21:47:41" isn't numeric in subtraction (-) at (eval 2761481) line 1.
2018.05.12 17:55:51 3: eval: { (sunset_abs() - sunrise_abs())* ReadingsVal("Proplanta", "fc0_sun", 0)/100}
2018.05.12 17:55:51 1: PERL WARNING: Argument "04:49:37" isn't numeric in subtraction (-) at (eval 2761481) line 1.
2018.05.12 16:55:51 3: eval: { (sunset_abs() - sunrise_abs())* ReadingsVal("Proplanta", "fc0_sun", 0)/100}
2018.05.12 16:55:51 1: PERL WARNING: Argument "21:47:41" isn't numeric in subtraction (-) at (eval 2709589) line 1.
2018.05.12 16:55:51 3: eval: { (sunset_abs() - sunrise_abs())* ReadingsVal("Proplanta", "fc0_sun", 0)/100}
2018.05.12 16:55:51 1: PERL WARNING: Argument "04:49:37" isn't numeric in subtraction (-) at (eval 2709589) line 1.
Die Warnung habe ich gar nicht gesehen 8)
Kenne mich mit Perl nicht so aus, aber man könnte z.B. mit str2time() die Uhrzeiten in Sekunden wandeln und Subtrahieren....gibt dann allerdings einen Dezimalwert zurück.
{ ( str2time( sunset_abs()) - str2time( sunrise_abs()))* ReadingsVal("WetterProplanta", "fc0_sun", 0)/100/3600}
Ok das habe ich mal so eingebaut, mal schauen ob es noch Meldungen gibt...!
nach wie vor Fehlermeldungen, hab es jetzt komplett wieder raus genommen
Hier gibt es eine funktionierende Lösung :
https://forum.fhem.de/index.php/topic,104521.msg983902.html#msg983902
da ich mich mit dem ganzen Perl gerechne nicht auskenne, habe ich das mal so übernommen, aber bei mir wird nur eine lange Zahl angezeigt.
Momentan 65755.4
Hm, ja das sit bei mir heute auch so. Im Moment weis ich auch nicht warum es 65755.4 Stunden anzeigt. Gestern waren es 12 Stunden.
Mal sehen was es in 4 min anzeigt, dann ist ein neuer Tag :-)
Edit: neuer Tag, gleiche Zahl.... :-(
Hallo moonsorrox,
in Jens seiner Formel war ein Fehler und Du musst beachten das Wetter device entsprechend (um)zu benennen.
fc0_Sonnenstunden {sprintf "%.1f", (time_str2num("2000-01-01 ".sunset_abs())-time_str2num("2000-01-01 ".sunrise_abs()))* ReadingsNum("Wetter", "fc0_sun", 0)/100/3600}
Der Fehler hat übrigens nichts mit Perl speziell zu tun, sondern nur mit den Punkt vor Strich Regeln ;D
Gruß Otto
Zitat von: Otto123 am 16 Oktober 2019, 09:26:24
Hallo moonsorrox,
in Jens seiner Formel war ein Fehler und Du musst beachten das Wetter device entsprechend (um)zu benennen.
Hi Otto, ja das mit dem Wetter war mir schon klar und habe ich auch getan, nur mit der Formel wollte ich mich nicht weiter beschäftigen ;)
Vielen Dank für das berichtigen
Hey,
so passt es nun bei mir, ohne das Warnungen kommen.
fc0_Sonnenstunden {sprintf "%.1f", ((time_str2num("2000-01-01 ".sunset_abs())-time_str2num("2000-01-01 ".sunrise_abs()))* ReadingsNum("Wetter", "fc0_sun", 0)/100/3600)}
Grüssle, Jens