After equipping my house with an FHEM controlled heating system, I wanted to get some control how often the heating circuits get turned on day by day. Since FHEM is event based and provides plotting functionality, and additionally my pilight module loggs out every state change, everything left to do is to combine these things.
Just to resume what happened in the last articles: I build an automatic heating control system with FHEM, and I used pilight to switch the heating system on or off, room by room. Since you can use pilight for many other use cases, like toggling a bulb or your toaster, the heating system is just an example which hopefully helps understanding the following steps.
Archiving state changes
As usual when you want to plot FHEM data, you have to define a file where your state changes are written to. Let us assume that I want to save the states of my pilight switch device HeizungWozi
, then you have to enter the following code to fhem.cfg:
define FileLog_Heizung_Wozi FileLog ./log/Heizung_Wozi-%Y.log HeizungWozi
Et voila, all state changes are now stored in a file.
Creating a state change plot
Now let us create the plot. Therefore, click on the Create SVG plot link in the file log overview like seen in the picture above. Then, following panel will open:
What we have to change is:
- Grid aligned (left) – check
- Y-Axis label (left and right) – leave empty
- Tics as (“Txt” val, …) (left) – (“Off” 0, “On” 1)
- Diagram label – leave as it is
- Column – 3
- Function – $fld[2]=~”on”?1:0
- Plot Type – Steps
- Style – IOfill
The last two points are more or less optional.
Now hit Write .gplot file and you are done. You can read more about creating plots in the FHEM wiki.
I have problems creating the plot. I get a gplot file looking like this:
# Created by FHEM/98_SVG.pm, 2015-08-12 14:28:45
set terminal png transparent size crop
set output ‘.png’
set xdata time
set timefmt “%Y-%m-%d_%H:%M:%S”
set xlabel ” ”
set title ”
set ytics (“Off” 0, “On” 1)
set y2tics
set grid ytics
set ylabel “”
set y2label “”
#FileLog_Dorsensor 3:Dorsensor.*::$fld[2]=~”on”?1:0
plot “” using 1:2 axes x1y1 title ‘Line 1’ ls l0fill lw 1 with steps
by following your steps, my device is called Dorsensor and the log file looks like this:
2015-08-12_13:16:27 Dorsensor off
2015-08-12_13:23:04 Dorsensor on
…
Could you post your gplot file so I can compare.
Thank you in advance.
Mikkel
# Created by FHEM/98_SVG.pm, 2013-12-25 12:00:12 crop.png’‘
set terminal png transparent size
set output ‘
set xdata time
set timefmt “%Y-%m-%d_%H:%M:%S”
set xlabel ” ”
set title ‘
set ytics
set y2tics
set grid ytics
set ylabel “Humidity”
set y2label “Temperature”
set yrange 0:100
set y2range 0:40
#FileLog 4:Temp_Wozi.humidity\x3a::
#FileLog 4:Temp_Wozi.temperature\x3a::
plot “” using 1:2 axes x1y1 title ‘Humidity’ ls l1 lw 1 with lines,\ ” using 1:2 axes x1y2 title ‘Temperature’ ls l0 lw 1 with lines
“
Thank you for the quick reply.
Is it posible that the gplot file that you gave is for something else (temperatur/humidity log). It doesn’t seem to contain any of the things that you described in your post.