[gelöst]Durch andFHEM: Wann kommt es in fhem.save zum setstate dewpoint Eintrag?

Begonnen von Patrik.S, 26 Januar 2015, 21:12:37

Vorheriges Thema - Nächstes Thema

Patrik.S

Hintergrund: Durch einen Erweiterungswunsch in andFHEM sehe ich die Temp, rel. LF und nun auch den Taupunkt in einem Graphen.
Dazu ist aber ein "setstate [....] dewpoint" Eintrag nötig in der fhem.save.

Matthias hatte dazu geschrieben:
"Graphen werden in Abhängigkeit von erkannten Attributen gesetzt. Ist kein dewpoint Attribut gesetzt, dann gibt es auch keinen dewpoint-Graphen. Deswegen wirst du wohl auch nicht überall Dewpoint als Button angezeigt bekommen."

Der Weg dahin war / ist mir aber nicht verständlich, denn FHEM hat nur für einen der drei Sensoren von selbst irgendwann mal in die fhem.save einen Eintrag geschrieben:
setstate CUL_WS_KriechKeller <Datum> <Uhrzeit> dewpoint <Wert>
Was ich da beim Ausprobieren gemacht habe, um das zu schaffen? Keine Ahnung....

Bis ich verstanden habe, was Matthias da meinte, hatte ich also nur für den einen Sensor die drei Werte in einem Graphen.
Dann habe ich von Hand in die fhem.save für die beiden anderen Sensoren einen Eintrag gesetzt und somit dem System etwas vorgemacht, aber andFHEM zeigt mir nun brav für alle Sensoren alle drei Werte in einem Graphen an.

Damit ich sehe, das es Dummyeinträge sind, sind auch das Datum und die Werte bei allen drei gleich:
setstate CUL_WS_Aussen 2014-07-19 00:00:00 dewpoint 0.0
setstate CUL_WS_KellerTreppe 2014-07-19 00:00:00 dewpoint 0.0
setstate CUL_WS_KriechKeller 2014-07-19 00:00:00 dewpoint 0.0

In den drei FileLog Dateien werden jedenfalls alle drei Werte reingeschrieben und über das FHEM WebIF und auch andFHEM kann ich mir das alle schön anzeigen lassen.

---> Was muss ich an meiner Konfiguration ändern, damit FHEM selbstständig das setstate dewpoint ausführt?


Meine Konfiguration mit den wichtigen Anteilen:
------------------------------------------------------------------
[......]

attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global userattr custom_graph1 custom_graph2 custom_graph3 devStateIcon devStateStyle icon sortby webCmd

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog

define eventTypes eventTypes ./log/eventTypes.txt

define CUL1 CUL /dev/ttyACM0@9600 1234

# Berechnet den Taupunkt aufgrund von Temperatur und Luftfeuchte
# Versuch #1
#define dew_KellerTreppe dewpoint dewpoint CUL_WS_KellerTreppe T H D
#define dew_Aussen dewpoint dewpoint CUL_WS_Aussen T H D
#define dew_KriechKeller dewpoint dewpoint CUL_WS_KriechKeller T H D
# Versuch #2
define dew_state dewpoint dewpoint .* T H D

# -----  Definiton of Kellertreppe
define CUL_WS_KellerTreppe CUL_WS 1
attr CUL_WS_KellerTreppe room CUL_WS

define FileLog_CUL_WS_KellerTreppe FileLog ./log/CUL_WS_KellerTreppe-%Y.log CUL_WS_KellerTreppe:T:.*
attr FileLog_CUL_WS_KellerTreppe custom_graph1 8:D:@°C@Taupunkt
attr FileLog_CUL_WS_KellerTreppe logtype temp4hum6:Temp/Hum,text
attr FileLog_CUL_WS_KellerTreppe room CUL_WS

define weblink_CUL_WS_KellerTreppe SVG FileLog_CUL_WS_KellerTreppe:temp4hum6:CURRENT
attr weblink_CUL_WS_KellerTreppe label "CUL_WS_KellerTreppe Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr weblink_CUL_WS_KellerTreppe room Plots

# -----  Definiton of Aussen
define CUL_WS_Aussen CUL_WS 2
attr CUL_WS_Aussen room CUL_WS

define FileLog_CUL_WS_Aussen FileLog ./log/CUL_WS_Aussen-%Y.log CUL_WS_Aussen:T:.*
attr FileLog_CUL_WS_Aussen custom_graph2 8:D:@°C@Taupunkt
attr FileLog_CUL_WS_Aussen logtype temp4hum6:Temp/Hum,text
attr FileLog_CUL_WS_Aussen room CUL_WS

define weblink_CUL_WS_Aussen SVG FileLog_CUL_WS_Aussen:temp4hum6:CURRENT
attr weblink_CUL_WS_Aussen label "CUL_WS_Aussen Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr weblink_CUL_WS_Aussen room Plots

# -----  Definiton of KriechKeller
define CUL_WS_KriechKeller CUL_WS 3
attr CUL_WS_KriechKeller room CUL_WS

define FileLog_CUL_WS_KriechKeller FileLog ./log/CUL_WS_KriechKeller-%Y.log CUL_WS_KriechKeller:T:.*
attr FileLog_CUL_WS_KriechKeller custom_graph3 8:D:@°C@Taupunkt
attr FileLog_CUL_WS_KriechKeller logtype temp4hum6:Temp/Hum,text
attr FileLog_CUL_WS_KriechKeller room CUL_WS

define weblink_CUL_WS_KriechKeller SVG FileLog_CUL_WS_KriechKeller:temp4hum6:CURRENT
attr weblink_CUL_WS_KriechKeller label "CUL_WS_KriechKeller Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr weblink_CUL_WS_KriechKeller room Plots
# -----  End


strauch

Brauchst du dewpoint als reading oder als state?
Je nachdem halt mit THD oder nur .*

Dein 2. Versuch sollt eigtl. Klappen.
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Patrik.S

"reading oder als state"?
-->Laut FHEM DevelopmentGuidelines (Fhem-Spache<---->Deutsch Wörterbuch;-) benötige ich die drei Werte dann wohl für beides?!?

Für die Aufzeichnung der Historie ins FileLog sollen die Readings fortlaufend weggeschrieben werden.
Im WebIF werden die drei Kurven schon immer angezeigt aber andFHEM zeigt mir nur alle drei zusammen an, wenn auch die setstate Einträge da sind.
Da ich aber auch mit den aktuellen Werte demnächst die Kellerlüfter schalten werde (Taupunktdifferenz drinnen&draußen > XYZ), benötige ich wohl auch den aktuellen State, um darauf aufbauend die Lüfter schalten zu können.

stromer-12

Da hattest sicherlich deine Konfiguration beim Testen per "save" gesichert.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

LuckyDay

Zitatdefine dew_state dewpoint dewpoint .* T H D
damit wird dem STATE sofern orginal T: H: noch das D:  angehängt hast du ja zum loggen bereits

Damit erzeugst du das dewpoint reading in jedem Device die das reading
measured-temp und humidity haben

define dew_all dewpoint dewpoint .* measured-temp humidity dewpoint

Patrik.S

Auch wenn ich den Perl Code anders verstanden habe, aber durch rumprobieren habe ich nun eine funktionierende Variante hinbekommen.

Ich MUSS diese Definition benutzen, um weiterhin im Logfile die zusätzliche Spalte D zu bekommen:
define dew_values dewpoint dewpoint .* T H D

Und diese Definition ist nur zusätzlich nötig:
define dew_states dewpoint dewpoint .*

um das interne Attribut gesetzt zu bekommen, wodurch andFHEM alle drei Spalten auswerten kann.