Wetterstation Werte einzeln darstellen

Begonnen von DL3AD, 29 Dezember 2013, 14:43:18

Vorheriges Thema - Nächstes Thema

DL3AD

Hallo,

ich komme nicht weiter - quäle mich schon siet 4 Tagen  :-[

habe eine HM Wetterstation definiert

define Wetterstation CUL_HM 1FCC48
attr Wetterstation .devInfo 3F0100
attr Wetterstation .stc 70
attr Wetterstation actCycle 000:10
attr Wetterstation actStatus unknown
attr Wetterstation expert 2_full
attr Wetterstation firmware 1.4
attr Wetterstation model HM-WDS100-C6-O
attr Wetterstation peerIDs
attr Wetterstation room CUL_HM
attr Wetterstation serialNr KEQ0241402
attr Wetterstation subType THSensor
define FileLog_Wetterstation FileLog ./log/Wetterstation-%Y.log Wetterstation
attr FileLog_Wetterstation logtype text
attr FileLog_Wetterstation room CUL_HM
define ActionDetector CUL_HM 000000
attr ActionDetector actCycle 600
attr ActionDetector event-on-change-reading .*
attr ActionDetector room CUL_HM
define FileLog_ActionDetector FileLog ./log/ActionDetector-%Y.log ActionDetector
attr FileLog_ActionDetector logtype text
attr FileLog_ActionDetector room CUL_HM


Die Werte werden dann so dargestellt

Wetterstation T: 6.8 H: 88 W: 16.9 R: 4.13 IR: 0 WD: 30 WDR: 67.5 S: 246 B: 19

Die readings sehen so aus

Readings
Activity unknown 2013-12-29 14:30:35
brightness 34 2013-12-29 14:39:41
humidity 88 2013-12-29 14:39:41
isRaining 0 2013-12-29 14:39:41
rain 4.13 2013-12-29 14:39:41
state T: 7 H: 88 W: 13.3 R: 4.13 IR: 0 WD: 180 WDR: 67.5 S: 248 B: 34 2013-12-29 14:39:41
sunshine 248 2013-12-29 14:39:41
temperature 7 2013-12-29 14:39:41
windDirRange 67.5 2013-12-29 14:39:41
windDirection 180 2013-12-29 14:39:41
windSpeed 13.3 2013-12-29 14:39:41

Nun möchte ich die Werte einzeln haben - dazu habe ich dann einen dummy angelegt

define Wettertemp dummy
attr Wettertemp room CUL_HM


und mit einem notify wollte ich dann z.B. die Temperatur einzeln darstellen

define WettertempNotify notify Wetterstation:temperature set Wettertemp $EVTPART1

aber dass funktioniert leider nicht.

Wer kann mir da weiterhelfen ?

Gruß Frank

justme1968

warum möchtest du dir werte einzeln?

wenn es dir um die darstellung geht schau dir mal readingsGroup an.

kopien in dummys sind keine gute lösung.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

DL3AD

#2
... weil ich sie einzeln einer EIB Gruppenadresse zuordnen will um sie dann auf den Bus zu schicken.
Den dummy nutze ich nur zu Testzwecken.

EDIT: Sooo ich habe die Lösung  ;D

define WettertempNotify notify Wetterstation:temperature.* set Wettertemp $EVTPART1

Die Lösung war .* hinter dem Reading anzugeben !!!! - so eine sch...ße, dat steht auch nirgens drin  >:(

Gruß Frank

martinp876

Hallo Frank,

erst einmal schließe ich mich Andre an - zumindest sehe ich den Vorteil nicht, oder es ist mir nicht klar - wo du hin willst.

Aber die Aufgabe würde ich folgendermaßen lösen:

du kannst ein notify für jedes Reading machen oder nur das state notify abfangen(da ist alles drin) und die dummys füllen. Zweiteres sollte deutlich schöner und schneller sein.

define Wetter_Temp dummy
define Wetter_Hum dummy
define Wetter_Bright dummy
attr Wetter_Temp  room CUL_HM,wetter,dummy
attr Wetter_Hum  room CUL_HM,wetter,dummy
attr Wetter_Bright  room CUL_HM,wetter,dummy
attr FileLog_Wetterstation room CUL_HM,wetter,sensor


# in room kannst du eine Liste von Räumen eingeben und damit fix im web-interface Gruppen definieren. Ist für den Ablauf aber wurscht, soll nur ein Tip sein


define WettertempNotify notify Wetterstation:.*T:{\
my($T,$H,$W,$R,$IR,$WD,$WDR,$S,$B) = ($1,$2,$3,$4,$5,$6,$7,$8,$9) \
    if ($EVTPART1 =~ m/T: (.*) H: (.*) W: (.*) R: (.*) IR: (.*) WD: (.*) WDR: (.*) S: (.*) B: (.*)/);;\
fhem "set Wetter_Temp $T;;"\
fhem "set Wetter_Hum $H;;"\
fhem "set Wetter_Bright $B;;"\
Log 1,"writing weatherData $EVTPART1 ";;\
}


die anderen Werte kannst du sicher selbst ergänzen - das log ist nur zum testen - schreibt ins generelle Logfile

Gruss Martin









DL3AD

Hallo Martin,

danke für deine ausführliche Antwort.

das mit dem dummy war nur zum testen.
Ich nutze fhem nur als Gateway um die Wetterdaten aufbereitet an einzelne Gruppenadressen des EIB Busses zu übergeben.
Die Räume sind egal wiel das Webinterface nicht genutzt wird.
Eibd läuft übers Lan und funktioniert auch.
Die ganzen Logs will ich dann auch abschalten - dass geschied dann im EIB.

Gruß Frank

DL3AD

Hallo Martin,

ich habe deine Progammzeilen zum testen mal ohne Änderung übernommen - aber die Werte werden nicht in die Dummys geschrieben  :-[

Gruß Frank

martinp876

define WettertempNotify notify Wetterstation:.*T:{\
my($T,$H,$W,$R,$IR,$WD,$WDR,$S,$B) = ($1,$2,$3,$4,$5,$6,$7,$8,$9) \
    if ($EVTPART1 =~ m/T: (.*) H: (.*) W: (.*) R: (.*) IR: (.*) WD: (.*) WDR: (.*) S: (.*) B: (.*)/);;\
fhem "set Wetter_Temp $T";;\
fhem "set Wetter_Hum $H";;\
fhem "set Wetter_Bright $B";;\
Log 1,"writing weatherData $EVTPART1 ";;\
}