Binärsignale im SVG darstellen?

Begonnen von speedschmidt, 28 November 2015, 11:26:05

Vorheriges Thema - Nächstes Thema

speedschmidt

Hallo zusammen,

die Cracks werden jetzt wieder die Augen rollen. Ich habe mich - nachdem ich schon einiges selber versucht habe - schon im Wiki und im Forum durchgeackert aber keine Lösung für meine Aufgabe gefunden:
Welche Einstellungen muss ich im SVGPlot-Editor vornehmen um binäre Signale darstellen zu können (on/off; Ein/Aus etc). Ich möchte parallel zur Raumtemperatur den Status des Heizventils darstellen (unten:off oder Aus; oben:on oder Ein).

Für Eure konstruktive Hilfe mit Code- oder Einstellungsbeispielen bedanke ich mich schon jetzt.

Schmitti

speedschmidt

High,

die Comandref hatte ich vergessen durch zu ackern, da steht was - ich probiere das mal.

Schmitti

speedschmidt

High nochmal,

nee das wird nichts:
Ich trage im Editor ein:
Bei Tics as : ("on" 1, "off" 0)
Spalte1 --> Ventil (Beschreibung)
Spalte2 --> 3 (lasse ich mal so)
Spalte3 --> FileLog_AZRMHeizung (Rückmeldung vom Heizungsaktor)
Spalte4 --> AZRMHeizung.* (AZRMHeizung.on oder.off hatte ich auch schon mal probiert)
Spalte7 --> left (die anderen Analogwerte sind rechts)
Farbe und stichstärke sind erst mal untergeordnet.

hat jemand so was schon mal erfolgreich realisiert, Analog- und Binärwerte im SVG zu mischen. Geht das überhaupt?

Schmitti

Puschel74

Klappt einwandfrei:

Auszug aus dem GPlot-File:
#DbLog <SPEC1>:temperature::
#DbLog <SPEC2>:temperature::
#DbLog <SPEC3>:state:::$val=~s/(Ein|Aus|dim)(\d*).*/$1eq"Ein"?1:($1eq"dim"?$2*0.01:0)/eg
#DbLog <SPEC4>:state:::$val=~s/(on|off).*/$1eq"on"?1.05:0.05/eg
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

speedschmidt

High,

besten dank aber ich kriegs nicht hin:

hier mal meine Svg*.cfg

# Created by FHEM/98_SVG.pm, 2015-11-28 12:09:19
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 'Arbeitszimmer Raumtemperatur'
set ytics ("on" 1, "off" 0)
set y2tics
set grid
set ylabel "Innen"
set y2label "Aussen"

#FileLog_AZIstTemperatur 3:AZIstTemperatur.*::
#FileLog_Aussentemperatur 3:Aussentemperatur.*::
#FileLog_AZSollwert 3:AZSollwert.*::
#FileLog_AZRMHeizung 3:AZRMHeizung.*::

plot "<IN>" using 1:2 axes x1y2 title 'Innen' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Aussen' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Sollwert' ls l1 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Ventil' ls l0 lw 1 with lines


ich hatte mir gedacht, dass ich aus

#FileLog_AZRMHeizung 3:AZRMHeizung.*::

das mache

#FileLog_AZRMHeizung 3:AZRMHeizung.*:::$val=~s/(on|off).*/$1eq"on"?1.05:0.05/eg


Aber das haut nicht hin. Das hängt aber nicht damit zuammen, dass deine Werte aus der DbLog und meine aus FileLog kommen?

Schmitti

stromer-12

#5
Doch da gibt es einen Unterschied:

Bei FileLog bekommst du deinen Wert mit $fld[x] zum bearbeiten, bei DbLog mit $val
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

speedschmidt

High,

und so sieht das dann fertig aus (habe mir das am Beispiel aus einer vorgefertigten SCG-Plot-Datei erarbeitet):


# Created by FHEM/98_SVG.pm, 2015-11-28 13:55:23
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 'Arbeitszimmer Raumtemperatur'
set ytics ("on" 1, "off" 0)
set y2tics
set grid ytics
set ylabel "Heizen"
set y2label "Innen+Aussen"
set yrange [-0.1:1.1]

#FileLog_AZIstTemperatur 3:AZIstTemperatur.*::
#FileLog_Aussentemperatur 3:Aussentemperatur.*::
#FileLog_AZSollwert 3:AZSollwert.*::
#FileLog_AZHeizen 3:::$fld[2]=~"on"?1:0

plot "<IN>" using 1:2 axes x1y2 title 'Innen' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Aussen' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Sollwert' ls l1 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Heizen' ls l6fill lw 1 with steps


Die Außentemperatur habe ich inzwischen noch rausgenommen, damit 's mit der Skalierung besser passt. Ich habe zwar noch nicht jedes Argument kapiert, aber das kommt schon noch.

Schmitti

krikan

Wie man so etwas mit dem Ploteditor erstellt, findet man unter http://www.fhemwiki.de/wiki/Plots_erzeugen und den dort verlinkten Beispielen zu Plots mit Status