FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Wettermodule => Thema gestartet von: h_distler am 12 April 2018, 09:08:45

Titel: Proplanta: Anzeige Sonnenstunden
Beitrag von: h_distler am 12 April 2018, 09:08:45
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
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: Otto123 am 12 April 2018, 09:21:32
Moin hanselmann,

ein userreadings mit ((sunset-sunrise) * fc0_sun/100)

Ich würde auf min verzichten  :D

Gruß Otto
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: Xell1984 am 16 April 2018, 20:14:34
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?

Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag 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}
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: Xell1984 am 16 April 2018, 20:38:37
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.
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: Otto123 am 16 April 2018, 21:15:03
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())
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: Xell1984 am 17 April 2018, 08:59:33
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.
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: fini am 21 April 2018, 08:00:59
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}
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: Otto123 am 21 April 2018, 10:58:30
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
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: satprofi am 28 April 2018, 18:45:17
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
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: moonsorrox am 13 Mai 2018, 00:24:12
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.
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: stefanpf am 13 Mai 2018, 04:48:19
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}
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: moonsorrox am 13 Mai 2018, 12:37:28
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
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: Jewe am 14 Oktober 2019, 23:00:14
Hier gibt es eine funktionierende Lösung :

https://forum.fhem.de/index.php/topic,104521.msg983902.html#msg983902
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: moonsorrox am 15 Oktober 2019, 23:34:52
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
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: Jewe am 15 Oktober 2019, 23:56:26
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.... :-(
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag 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.

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
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: moonsorrox am 16 Oktober 2019, 12:39:43
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
Titel: Antw:Proplanta: Anzeige Sonnenstunden
Beitrag von: Jewe am 18 Oktober 2019, 10:41:11
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