Drei Kurven in einem Plot

Begonnen von stgeran, 12 Oktober 2013, 23:10:56

Vorheriges Thema - Nächstes Thema

Puschel74

Hallo,

danke für die Antowrt andre aber ein

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 '<L1>'

set ytics ("Off" 0, "On" 1)
set y2tics ("Off" 0, "On" 1)
set yrange [-0.1:1.1]
set y2range [-0.1:1.1]
set ylabel "Status"
set y2label "Status"

#DbLog <SPEC1>:data::

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


in der fs20db.gplot brachte nur einen leeren Plot hervor.
Also nichtmal die Linie bei off.

Grüße
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.

justme1968

du musst die on/off aus dem log noch auf 0/1 mappen etwa so:<SPEC1>:data:::$val=~s/(on|off).*/$1eq"on"?1:0/eg

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

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

Puschel74

Hallo,

Zitat<SPEC1>:data:::$val=~s/(on|off).*/$1eq"on"?1:0/eg

Autsch - auf sowas muss man erstmal kommen.
Aber klappt leider auch nicht - Plot bleibt leer.

Ich dachte in meiner "jugendlichen" Naivität das

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

nach on sucht - als Ergebnis eine 1 an plot liefert sonst eine 0 und das

set ytics ("Off" 0, "On" 1)
set y2tics ("Off" 0, "On" 1)


aus einer 0 im Plot ein OFF macht und eine 1 ein ON.

Grüße
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.

justme1968

Zitat von: Puschel74 am 18 Oktober 2013, 21:06:51
Hallo,

Autsch - auf sowas muss man erstmal kommen.
oder in der commandref nachschauen :)

ZitatAber klappt leider auch nicht - Plot bleibt leer.

Ich dachte in meiner "jugendlichen" Naivität das

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

nach on sucht - als Ergebnis eine 1 an plot liefert sonst eine 0 und das

der teil ist noch aus gplot zeiten und wird nur zum teil ausgewertet. das mapping z.b. genau nicht.

Zitatset ytics ("Off" 0, "On" 1)
set y2tics ("Off" 0, "On" 1)


aus einer 0 im Plot ein OFF macht und eine 1 ein ON.
das ist nur für die achsen beschriftung da. sonst für nichts.

also schritt für schritt:
- zuerst nachschauen was wirklich in der db steht: sqlite <dein db file> und dann select * from HISTORY where DEVICE="<dein fs20 device>"; oder entsprechend für mysql.

da muss als READING data auftauchen uns als VALUE etwas mit on oder off.

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

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

Puschel74

Hallo,

Zitatselect * from HISTORY where DEVICE="EG_Eingang_Licht_innen";

liefert als state Aus und Ein-for-timer 30  8)

Stimmt ja auch - ich schalte das Licht meist mit Timer ein  :o

Dann werd ich deine Tipps nochmal versuchen. Diesmal mit Ein-for-timer 30.

Grüße
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.

justme1968

dann musst du beim mappen im plotfile natürlich ein und aus statt on und off verwenden.

das -for-timer wird schon abgefangen.

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

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

Puschel74

#21
Hallo,

Zitatdas -for-timer wird schon abgefangen.

was die Sache schon ungemein erleichtert.

Danke nochmal für die Hilfe andre.

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 '<L1>'

set ytics ("Aus" 0, "Ein" 1)
set y2tics ("Aus" 0, "Ein" 1)
set yrange [-0.1:1.1]
set y2range [-0.1:1.1]
set ylabel "Status"
set y2label "Status"

#DbLog <SPEC1>:state:::$val=~s/(Ein|Aus).*/$1eq"Ein"?1:0/eg

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


So klappts auch mit dem Plot.

Grüße

Edith: Mal schauen ob ichs auch für on/off und dim hinbekomme.
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.

justme1968

wirklich state und nicht data?

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

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

Puschel74

Hallo,

Zitatwirklich state und nicht data?

Jep. state
Mit data bekomm ich nur einen leeren Plot geliefert und die select-Abfrage hat auch state geliefert.

Grüße
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.

justme1968

seltsam...

aber wenn es geht ist ja alles gut.

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

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

Puschel74

#25
Hallo,

so sehen zumindest die Plots aus:

(http://screenshot018.jpg)

Nur der OG_Flur_Licht lässt sich auch mit einem

#DbLog <SPEC1>:state:::$val=~s/(Ein|Aus|dim).*/$1eq"Ein"?1:0/eg

nicht überreden - klar kann aiúch nicht da ja Ein auf 1 und der Rest auf 0 gemapped wird.
Als state habe ich dort dim100% und dim81%.
Wenn ich
#DbLog <SPEC1>:state:::$val=~s/(Ein|Aus|dim).*/$1eq"dim"?1:0/eg
eintrage wird natürlich alles mit dim auf 1 gemapped und die restlichen Plots bringen wieder nur Aus.

Ist es möglich (wird sicher sein nur wie??) das ich bei FS20-Dimmer so einen "ähnlichen" Plot mache wie bei den FHT80-actuator?
Also den Prozentwert zwischen 0 und 100 und Aus = 0 und dim100% und Ein = 100.
Die fs20db.gplot aber so allgemein gehalten bleibt das ich auch Geräte plotten kann die nur Ein und Aus liefern?

Danke für die Hilfe.

Grüße

Edith: Das
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 '<L1>'

set ytics ("Aus" 0, "Ein" 100)
set y2tics ("Aus" 0, "Ein" 100)
set yrange [-0.1:100.1]
set y2range [-0.1:100.1]
set ylabel "Status"
set y2label "Status"

#DbLog <SPEC1>:state:::$val=~s/(Ein|Aus|dim).*/$1eq"Ein"?100:0/eg

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

klappt auch nicht.
Irgendwo habe ich noch einen gewaltigen Denkfehler  :-\
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.

justme1968

#26
ich würde zweistufig vorgehen:

- per eventMap dim0 auf aus und dim100 auf ein mappen. etwa so:attr <device> eventMap
/dim0%:Aus/dim100%:Ein/


- dann die $val bestimmung drei stufig machen:$val=~s/(Ein|Aus|dim).*/$1eq"Ein"?1:($1eq"dim"?0.5:0)/eg

wenn du mit der regex beim suchen spielst kannst du vermutlich sogar die dim werte genau bestimmen und nicht alles was gedimmt ist auf 0.5 setzen.

gruss
  andre

edit: idee für die dim level:$val=~s/(Ein|Aus|dim(\d*)).*/$1eq"Ein"?1:($1eq"dim"?$2/100:0)/eg
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Puschel74

Hallo,

das

$val=~s/(Ein|Aus|dim(\d*)).*/$1eq"Ein"?1:($1eq"dim"?$2/100:0)/eg

brachte das

Zitat2013.10.21 19:30:36 3: DbLog: Error in inline function: <$val=~s/(Ein|Aus|dim(\d*)).*/$1eq"Ein"?1:($1eq"dim"?$2/100:0)/eg>, Error: syntax error at (eval 338384) line 1, near "s/(Ein|Aus|dim(\d*)).*/$1eq"Ein"?1:($1eq"dim"?$2/100"

Ich habe erstmal aber auch nur ein einfaches
$val=~s/(Ein|Aus|dim).*/$1eq"Aus"?0:1/eg
am Start was mir wenigstens anstelle des Dimmwertes eine 1 bringt im Plot.

Grüße
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.

justme1968

der parser kommt mit den / für geteilt durch durcheinander.

wenn du noch lust hast versuch mal das hier:
$val=~s/(Ein|Aus|dim(\d*)).*/$1eq"Ein"?1:($1eq"dim"?$2*0.01:0)/eg;

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

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

Puschel74

Hallo,

danke nochmal für deine unermüdliche Unterstützung andre  :)

Leider hat
$val=~s/(Ein|Aus|dim(\d*)).*/$1eq"Ein"?1:($1eq"dim"?$2*0.01:0)/eg;
(in meiner Verzweiflung auch mit und ohne ; am Ende versucht) nicht geklappt.

Und auch mein versuchtes
$val=~s/(Ein|Aus|dim).*/$1eq"Ein"?1:($1eq"dim"?$2*0.01:0)/eg;
sowie
$val=~s/(Ein|Aus|dim).*/$1eq"Ein"?1:$1eq"dim"?$2*0.01:0/eg;
und auch
$val=~s/(Ein|Aus|dim(\d*)).*/$1eq"Ein"?1:$1eq"dim"?$2*0.01:0/eg;
hat nicht gefruchtet.

Ein und dim wurde bei beiden ignoriert und der Plot zeigt nur eine schöne Linie bei Aus.

Grüße
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.