Plotdarstellung für Gardena Feuchtesensor mit HM-SCI-3-FM

Begonnen von StefanV, 27 Juli 2013, 11:09:32

Vorheriges Thema - Nächstes Thema

StefanV

Hallo Zusammen,

ich habe mir einen Gardena Feuchtesensor an über einen HM-SCI-3-FM in mein FHEM integriert.
Funktioniert soweit auch ganz gut.

Folgendes Logfile wird dadurch erstellt:
2013-07-22_05:05:24 cp_Feuchtesensor trocken
2013-07-22_05:05:24 cp_Feuchtesensor contact: trocken (to HMLAN1)
2013-07-22_05:40:17 cp_Feuchtesensor feucht
2013-07-22_05:40:17 cp_Feuchtesensor contact: feucht (to HMLAN1)
2013-07-22_05:51:56 cp_Feuchtesensor trocken
2013-07-22_05:51:56 cp_Feuchtesensor contact: trocken (to HMLAN1)
2013-07-22_06:26:49 cp_Feuchtesensor feucht
2013-07-22_06:26:49 cp_Feuchtesensor contact: feucht (to HMLAN1)
2013-07-22_06:38:28 cp_Feuchtesensor trocken
2013-07-22_06:38:28 cp_Feuchtesensor contact: trocken (to HMLAN1)
2013-07-22_06:50:05 cp_Feuchtesensor feucht
2013-07-22_06:50:05 cp_Feuchtesensor contact: feucht (to HMLAN1)
2013-07-22_07:01:43 cp_Feuchtesensor trocken
2013-07-22_07:01:43 cp_Feuchtesensor contact: trocken (to HMLAN1)
2013-07-22_08:45:33 cp_Feuchtesensor feucht
2013-07-22_08:45:33 cp_Feuchtesensor contact: feucht (to HMLAN1)
2013-07-22_08:57:12 cp_Feuchtesensor trocken
2013-07-22_08:57:12 cp_Feuchtesensor contact: trocken (to HMLAN1)
2013-07-22_09:32:09 cp_Feuchtesensor feucht
2013-07-22_09:32:09 cp_Feuchtesensor contact: feucht (to HMLAN1)
2013-07-22_09:43:48 cp_Feuchtesensor trocken
2013-07-22_09:43:48 cp_Feuchtesensor contact: trocken (to HMLAN1)
2013-07-22_10:41:55 cp_Feuchtesensor feucht
2013-07-22_10:41:55 cp_Feuchtesensor contact: feucht (to HMLAN1)
2013-07-23_05:15:31 cp_Feuchtesensor trocken
2013-07-23_05:15:31 cp_Feuchtesensor contact: trocken (to HMLAN1)
2013-07-23_05:27:08 cp_Feuchtesensor feucht
2013-07-23_05:27:08 cp_Feuchtesensor contact: feucht (to HMLAN1)
2013-07-23_08:44:32 cp_Feuchtesensor trocken
2013-07-23_08:44:32 cp_Feuchtesensor contact: trocken (to HMLAN1)
2013-07-23_08:55:11 cp_Feuchtesensor feucht
2013-07-23_08:55:11 cp_Feuchtesensor contact: feucht (to HMLAN1)
2013-07-23_09:06:50 cp_Feuchtesensor trocken
2013-07-23_09:06:50 cp_Feuchtesensor contact: trocken (to HMLAN1)
2013-07-23_10:04:58 cp_Feuchtesensor feucht
2013-07-23_10:04:58 cp_Feuchtesensor contact: feucht (to HMLAN1)
2013-07-23_10:28:12 cp_Feuchtesensor trocken
2013-07-23_10:28:12 cp_Feuchtesensor contact: trocken (to HMLAN1)
2013-07-23_11:14:43 cp_Feuchtesensor feucht
2013-07-23_11:14:43 cp_Feuchtesensor contact: feucht (to HMLAN1)
2013-07-23_11:49:34 cp_Feuchtesensor trocken
2013-07-23_11:49:34 cp_Feuchtesensor contact: trocken (to HMLAN1)
2013-07-23_12:12:48 cp_Feuchtesensor feucht
2013-07-23_12:12:48 cp_Feuchtesensor contact: feucht (to HMLAN1)
2013-07-23_12:24:26 cp_Feuchtesensor trocken
2013-07-23_12:24:26 cp_Feuchtesensor contact: trocken (to HMLAN1)
2013-07-23_12:36:03 cp_Feuchtesensor feucht
2013-07-23_12:36:03 cp_Feuchtesensor contact: feucht (to HMLAN1)


Plot ist wie folgt definiert:
### Plot Feuchtesensor
define wl_cp_Feuchtesensor weblink fileplot fl_cp_Feuchtesensor:gardenstate:CURRENT
attr wl_cp_Feuchtesensor room Garten
attr wl_cp_Feuchtesensor sortby 03
attr wl_cp_Feuchtesensor title "Feuchtesensor"


Definition gardenstate:
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 ("trocken" 0, "feucht" 1)
set y2tics ("trocken" 0, "feucht" 1)
set yrange [-0.1:1.1]
set y2range [-0.1:1.1]
set ylabel "Status"
set y2label "Status"

#FileLog 3::0:$fld[2]=~"on"?1:0

plot "< awk '{print $1, $3~/on/? 1 : 0; }' <IN>"\
        using 1:2 notitle with steps


Das führt dann zu folgendem Plot Ergebnis:

(siehe Anhang / see attachement)


Wie man gut sehen kann fehlt die untere Verbindungslienie, wenn der Sensor im Status Trocken ist...

Habt Ihr einen Tipp für mich wie ich diese Linie dargestellt bekomme?

Danke und Gruß, Stefan.
FHEM auf FritzBox 7390
Cuno für FS20, HMLAN für HomeMatic
EM 1000-WZ, S300TH
FS20ST-4, FS20 AS4-2
HM-LC-Bl1PBU-FM

rudolfkoenig

> #FileLog 3::0:$fld[2]=~"on"?1:0

Pruef mal in welchen Zeilen Deines Logs "on" vorkommt.

StefanV

Hallo Rudi,

Dein Wink mit dem Zaunpfahl hat die richtigen Hirnregionen aktiviert, Danke :-)
Hab es mal so geändert...
#FileLog 3::0:$fld[3]=~"feucht"?1:0

und funktioniert...


(siehe Anhang / see attachement)


Jetzt muss ich nur noch schauen wir ich mit den häufigen Statuswechseln umgehe.

Danke, Stefan.
FHEM auf FritzBox 7390
Cuno für FS20, HMLAN für HomeMatic
EM 1000-WZ, S300TH
FS20ST-4, FS20 AS4-2
HM-LC-Bl1PBU-FM

mmatt

Zitat von: StefanV schrieb am Sa, 27 Juli 2013 13:24Jetzt muss ich nur noch schauen wir ich mit den häufigen Statuswechseln umgehe.

Bitte lass mich (uns) das Wissen, wie Du das lösen wirst.
Habe vor, das gleiche nachzumachen.

Also, Du machst die Arbeit. Ich muss nur noch abkupfern :-)

Gruss Martin
- FHEM 5.5 auf RPI REV.2
- CUL V3 868MHz
- CUL_HM: HM-LC-Dim1TPBU-FM/HM-LC-Swl1PBU-FM/HM-LC-Sw1-BA-PCB/HB-UW-Sen-THPL-O/HM-SEN-MDIR-SM

StefanV

Ich habe mir überlegt einmal am Tag zu Wässern, sofern der Sensor Trockenheit anzeigt.
Ich denke entweder morgens in der Frühe oder spät am Abend, mal sehen.

Ich denke es wird darauf hinauslaufen, dass ich prüfe ob der Status des Sensors aktuell "trocken" ist,
oder wenn der Status wieder "feucht" ist, ob er in einer Zeit davor (sagen wir mal 2 Stunden) auf "trocken" war.

Daraus ergibt sich halt, dass es auch in den letzten 2 Stunden geregnet haben kann und der Garten
dadurch auch Wasser bekommen hat.

Das Problem des Gardena Sensors erscheint mir das der Übergang von Feucht zu Trocken nicht scharf definiert ist.

Der Sensor ermittelt ob Feucht oder Trocken ist anhand der Abkühlzeit der Messspitze.
Die Messspitze wird auf +5 Grad über der Umgebungstemperatur aufgewärmt und dann die Zeit gemessen,
die benötigt wird um wieder abzukühlen.

Genau ist das hier beschrieben:
http://knowhow.amazers.net/space/dev/projects/hardware/GardenaBodenfeuchteSensorFS20Modul

Vielleicht muss ich aber nur ein wenig weiter testen, und einfach den Wert (Trocken/Feucht) am 1188 Sensor
etwas verändern, mal sehen. Bin selber noch in der Testphase.
Die letzten 4 Tage war der Stauts auf jeden Fall stabil Feucht,
da es hier im Westen von NRW immer wieder mal ergiebig geregnet hat.
Jetzt muss nur mal wieder Trocken werden, damit ich schauen kann wie sich der Übergang von Feucht zu trocken darstellt.

Ciao, Stefan.
FHEM auf FritzBox 7390
Cuno für FS20, HMLAN für HomeMatic
EM 1000-WZ, S300TH
FS20ST-4, FS20 AS4-2
HM-LC-Bl1PBU-FM

Tobias

Ich kann Euch nur wärmstens den Vegetronix Bodenfeuchtesensor empfehlen. mit dem Gibts diese Probleme nicht da man immer eine relativ genaue Angabe der Feuchte in Prozent hat.
Ich habe davon schon 3Stück per 1wire in Betrieb und rüste jetzt auf Funk mittels panstamps um bzw erweitere um weitere 3 Stück
Siehe hier, oberer Plot:
http://www.fhemwiki.de/wiki/Datei:Plot_Bodenfeuchtesensor_Vegetronix-VH400.jpg
Quelle
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

StefanV

Hallo,

nachdem ich das gplot file angepasst habe funktioniert zwar wie oben beschrieben die Darstellung.
Hab es mal so gemacht:
#FileLog 3::0:$fld[3]=~"trocken"?1:0

Log File:
...
2013-08-01_12:24:37 cp_Feuchtesensor contact: trocken (to HMLAN1)
2013-08-01_14:54:51 cp_Feuchtesensor feucht
2013-08-01_14:54:51 cp_Feuchtesensor contact: feucht (to HMLAN1)
2013-08-01_15:06:26 cp_Feuchtesensor trocken
2013-08-01_15:06:26 cp_Feuchtesensor contact: trocken (to HMLAN1)
2013-08-01_15:17:57 cp_Feuchtesensor feucht
2013-08-01_15:17:57 cp_Feuchtesensor contact: feucht (to HMLAN1)
2013-08-01_16:49:09 cp_Feuchtesensor trocken
2013-08-01_16:49:09 cp_Feuchtesensor contact: trocken (to HMLAN1)
2013-08-01_17:00:40 cp_Feuchtesensor feucht
2013-08-01_17:00:40 cp_Feuchtesensor contact: feucht (to HMLAN1)...


Darstellung im Plot ist auch OK:

(siehe Anhang / see attachement)


Aber sobald ich mir den Plot anzeigen lasse gibt es Fehlermeldungen im FHEM LogFile:
Use of uninitialized value $fld[3] in pattern match (m//) at (eval 147) line 1,
Use of uninitialized value $fld[3] in pattern match (m//) at (eval 149) line 1,
Use of uninitialized value $fld[3] in pattern match (m//) at (eval 151) line 1,
Use of uninitialized value $fld[3] in pattern match (m//) at (eval 153) line 1,
Use of uninitialized value $fld[3] in pattern match (m//) at (eval 155) line 1,
Use of uninitialized value $fld[3] in pattern match (m//) at (eval 157) line 1,
Use of uninitialized value $fld[3] in pattern match (m//) at (eval 159) line 1,
Use of uninitialized value $fld[3] in pattern match (m//) at (eval 161) line 1,
Use of uninitialized value $fld[3] in pattern match (m//) at (eval 163) line 1,
Use of uninitialized value $fld[3] in pattern match (m//) at (eval 165) line 1,
Use of uninitialized value $fld[3] in pattern match (m//) at (eval 167) line 1,
Use of uninitialized value $fld[3] in pattern match (m//) at (eval 169) line 1,
Use of uninitialized value $fld[3] in pattern match (m//) at (eval 171) line 1,
Use of uninitialized value $fld[3] in pattern match (m//) at (eval 173) line 1,


Ich vermute mal weil nicht alle Einträge im Sensorlog ausreichend lang sind um die 4te Stelle des Arrays mit Inhalten zu füllen.
Hab Ihr einen Tipp für mich wie das korrigieren kann?

Danke und viele Grüße, Stefan.
FHEM auf FritzBox 7390
Cuno für FS20, HMLAN für HomeMatic
EM 1000-WZ, S300TH
FS20ST-4, FS20 AS4-2
HM-LC-Bl1PBU-FM

rudolfkoenig

#FileLog 3:contact:0:$fld[3]=~"trocken"?1:0

(ungetestet)

StefanV

FHEM auf FritzBox 7390
Cuno für FS20, HMLAN für HomeMatic
EM 1000-WZ, S300TH
FS20ST-4, FS20 AS4-2
HM-LC-Bl1PBU-FM