Probleme mit meinem ersten Plot

Begonnen von betonmoewe, 23 August 2016, 19:24:45

Vorheriges Thema - Nächstes Thema

betonmoewe

Hi,

ich versuche gerade, meine erste Plot Ausgabe zu erzeugen ... leider nur mit bescheidenem Erfolg :(

Vorgeschichte: ich kämpfe mit dem Problem der richtigen Pflanzenbewässerung. Um hier einen Schritt weiter zu kommen hatte ich mit einen Gardena Feuchtemesser zugelegt (Chirp kannte ich noch nich) und diesen mittels Adurino + Funk + mySensors an meinen FHEM Server angebunden. So weit so gut und funktionabel. Der Sensor gibt immer eine Statusmeldung bei Zustandsänderung zurück (Der Gardena Sensor misst die Feuchtigkeit und schaltet die Anbindung entweder auf hochohmig (Feuchteschwellwert überschritten) oder auf ohne Widerstand). Dies wird als Schalter abgefragt und mitttels mySensors übermittelt. Zustand "feucht" setzt in fhem das entsprechende Attribut auf on, Zustand "trocken" auf off. Es wird auch alles schön in das Log eingetragen. Ich bekomme es nur nicht hin, daraus eine saubere Grafik zu machen :(
Zum einen bekomme ich es nicht richtig hin, dass die Anzeige in die "Jetztzeit" "verlängert wird, d.h. z.B. um 14:00 geht es von trocken auf feucht, ich sehe den Plot um 18:00, ich hätte gerne, das die Grafik dann auch um 18:00 feucht anzeigt, da ja noch kein Statuswechsel stattfand.
Zum anderen würde ich die Grafik so haben, dass bei feucht ("off") der Balken auf 1 steht (also sichtbar ist) und bei trocken ("on") auf 0 steht. Es wird bei mir immer num umgekehrt angezeigt. Vielleicht kann mir ja ein/e Ploterfahrene/r hier weiterhelfen...

Gardena-2016.log:
2016-08-22_21:35:06 MYSENSOR_100 tripped3: off
2016-08-22_21:35:26 MYSENSOR_100 tripped3: on
2016-08-22_21:35:47 MYSENSOR_100 tripped3: off
2016-08-23_08:41:06 MYSENSOR_100 tripped3: on
2016-08-23_08:41:14 MYSENSOR_100 tripped3: off
2016-08-23_13:04:57 MYSENSOR_100 tripped3: on
2016-08-23_15:08:41 MYSENSOR_100 tripped3: off
2016-08-23_15:09:14 MYSENSOR_100 tripped3: on
2016-08-23_15:09:53 MYSENSOR_100 tripped3: off
2016-08-23_15:10:07 MYSENSOR_100 tripped3: on
------------------------------
SVG_FileLog_Gardena_1.gplot:
#Created by FHEM/98_SVG.pm, 2016-08-23 16:19:54
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 'Gardena Feuchtesensor'
set ytics ("trocken" 0,"feucht" 1)
set y2tics ("trocken" 0,"feucht" 1)
set grid
set ylabel ""
set y2label ""
set yrange [0:1]
set y2range [0:1]

#logProxy FileLog:FileLog_Gardena,predict:3:MYSENSOR_100.*::$fld[3]=~"on"?1:0

plot "<IN>" using 1:2 axes x1y1 title 'Bodenfeuchte' ls l1fill lw 2 with bars
--------------------------
fhem.cfg:
...
define lp logProxy
attr WEB endPlotNow 1
attr WEBphone endPlotNow 1
attr WEBtablet endPlotNow 1
...
define FileLog_Gardena FileLog ./log/Gardena-%Y.log MYSENSOR_100|MYSENSOR_Gardena:tripped3:.*
define SVG_FileLog_Gardena_1 SVG lp:SVG_FileLog_Gardena_1:CURRENT
-------------------------
Bild des Plots siehe Anhang.

z.B.: Zwischen ca. 21:35 und 8:41 war der Boden "feucht" (Sensor auf off). Hier hätte ich gerne, das der binäre Graf dies als vollen Balken anzeigen würde und nicht als 0. Auch verstehe ich nicht, warum ab 17:00 wieder ein Balken da ist obwohl es keinen Logeintrag gibt

Für jeden Hinweis wäre ich sehr dankbar ...

Gruß
Die Betonmöwe


KernSani

Zum ersten Problem: Es gibt irgendwo im Wiki ein "addlog", das dir in regelmäßigen Abständen das Log fortschreibt auch wenn es keine Ststusänderung gab. Wegen dem Plot kann ich später nochmal gucken. Ich glaube ich hab sowas in der Art...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Mr. Flash

Hallo Betonmöve,

bei mir sieht die relevante Zeile so aus:


#logProxy FileLog:FileLog_Tuer,predict,extend=86400:3:eg.fl.tuer::$fld[2]=~"open"?2:$fld[2]=~"closed"?0:undef


Damit wird der Plot immer bis zur aktuellen Zeit weitergezeichnet (nur am ersten jeden Monats spinnt die Anzeige, ich weiß noch nicht warum). Bei Dir müsstest Du schreiben:

#logProxy FileLog:FileLog_Gardena,predict,extend=86400:3:MYSENSOR_100.*::$fld[3]=~"off"?1:0


Wofür hast Du die "y2"-Definitionen in der gplot-Datei? Doch wohl nur, damit die Achsbeschriftung auf beiden Seiten steht, oder?

Grüße,
Nik
RPi 4; Bullseye; FHEM 6.3; S.USV basic; BME280; TSL25911.
HM: CFG-LAN,CFG-USB-2,CC-RT-DN,Dis-(EP-)WM55,ES-PMSw1-Pl,ES-TX-WM,LC-Dim1T-FM,LC-Sw1-FM,LC-Sw2-FM,MOD-RPI-PCB,OU-CFM-Pl,RC-Dis-H-x-EU,SCI-3-FM,Sec-MDIR-2,-RHS,-SD,-SC-2,-SCo,-Sir-WM,-TiS,-WDS-2,TC-IT-WM-W-EU,WDS10-TH-O,WDS30-OT2-SM.
Shelly's.

betonmoewe

Hi,

ich bin jetzt einen kleinen Schritt weiter  :D! mit Hilfe der richtigen Einstellung für predict bei logProxy (Danke Mr. Flash!) habe ich jetzt einen Plot, der auch immer zur aktuellen Zeit den letzten Eintrag wiederholt.
Leider habe ich aber immer noch ein Problem mit der Darstellung. Derzeit ist nur die Punktdarstellung zu gebrauchen  :( . Ich finde einfach keine funktionierende Einstellung, um mein Wunschbild zu erzeugen:

Ich habe ja binäre Werte. Ich hätte jetzt gerne, dass mit dem ersten Wert (z.B. 0) angefangen wird eine Linie zu zeichnen aber statt diese dann ansteigend zum 2ten Wert zu ziehen, soll die Line die ganze Zeit bei 0 bleiben und erst mit der Wertänderung auf 1 sofort auch auf 1 springen, dort dann bleiben und bei der nächsten 0 wieder nach unten springen. Noch schöner wäre es, wenn dann der Bereich unterhalb gefüllt wäre.

Vielleicht kann mir ja noch jemand mit Plot Erfahrung auf die Sprünge helfen ...

Die
Betonmöwe

betonmoewe

#4
hat sich erledigt "steps" war das Zauberwort. Ich bin zwar der Meinung dies schon ohne Erfolg ausprobiert zu haben, aber jetzt geht es auf einmal ...

Jetzt ergibt sich aber noch eine neue Herausforderung: gibt es eigentlich eine Möglichkeit, beim Plot Werte auszublenden (schneller Wechsel in zu kurzer Zeit) ?

Grüße

Die Betonmöwe