Hallo,
ich würde gerne ein paar "AN/AUS" Plots in der FTUI einbinden, aber wenn ich es so versuche:
Und wie müßte das ganze in der FTUI aussehen?
Wenn ich es so versuche:
[code]<div class="left nobuttons"
data-title="Steckdose Tablett"
data-type="chart"
data-height="100"
data-width="470"
data-logdevice="myDbLog"
data-logfile="HISTORY"
data-columnspec='["Steckdose_Tablet:state:0::$val=($val=~'on'?1:0)"]'
data-style='["ftui l2"]'
data-ptype='["steps"]'
data-uaxis='["primary"]'
data-legend='["An"]'
data-yunit=""
data-ytext="An"
data-minvalue="[-0.1"
data-maxvalue="1.1"
data-crosshair="true"
data-cursorgroup="1"
data-scrollgroup="1"
data-showlegend="false"
data-xticks="("OFF" 0, "ON" 1)">
</div>
[/code]klappt es nicht...
Was muss ich anders machen?
Danke
Keiner eine idee?
Danke
data-minvalue="[-0.1"
data-xticks="("OFF" 0, "ON" 1)"
Die Zeilen sind mal ganz sicher nicht korrekt.
und wie wäre es richtig?
<div class="left nobuttons"
data-title="Steckdose Tablett"
data-type="chart"
data-height="100"
data-width="470"
data-logdevice="myDbLog"
data-logfile="HISTORY"
data-columnspec='["Steckdose_Tablet:state:0::$val=($val=~'on'?1:0)"]'
data-style='["ftui l2"]'
data-ptype='["steps"]'
data-uaxis='["primary"]'
data-legend='["An"]'
data-yunit=""
data-ytext="An"
data-minvalue="0"
data-maxvalue="1.1"
data-crosshair="true"
data-cursorgroup="1"
data-scrollgroup="1"
data-showlegend="false"
data-xticks="("OFF" 0, "ON" 1)">
</div>
data-xticks ist eine Zeitangabe in Minuten. Sagt die Doku (https://github.com/knowthelist/fhem-tablet-ui#chart-widget)
Ok da hast du recht, ich hatte versucht das ganze aus dem fhem plot abzuleiten, der sieht so aus und funktioniert:
# Created by FHEM/98_SVG.pm, 2017-01-14 21:51:34
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 'Steckdose_Tablett'
set ytics ("OFF" 0, "ON" 1)
set y2tics
set grid
set ylabel "AN"
set y2label ""
set yrange [-0.1:1.1]
#myDbLog Steckdose_Tablet:state:0::$val=($val=~'on'?1:0)
plot "<IN>" using 1:2 axes x1y2 title 'AN' ls l0 lw 1 with steps
bekomme es nur nicht in der FTUI hin
Naja, schau dir einfach die Doku nochmal an. Und verwende für den Anfang so wenig Optionen wie möglich. Meistens gibt es eh Standard-Werte. data-xticks zum Beispiel kannst du mal weg lassen.
Dann fügst einfach immer eine Option dazu und siehst dann, welche nicht funktioniert.
Das hab ich ja, daraus ist ja das obenstehende entstanden, die "normalen" Plots funktionieren auch Problemlos, nur die "An/Aus" nicht
Wie sehen denn die Logzeilen des Gerätes aus?
Was meinst du mit Logzeilen? IM LOg taucht dazu nichts auf
Naja, mit irgendwas musst du deinen Plot ja füttern. Soll heißen, irgendwo her muss der die Daten bekommen, die er dann anzeigt. Also die On/Off-Werte. Und die würden mich interessieren.
Du must nicht die xticks (die sind logischerweise für die X-Achse) setzen, sondern die yticks. Hier sollte Deine Definition folgendermaßen aussehen (mal angenommen Deine Columnspec liefert 0 oder 1), weil Du das Mapping in Form von Arrays angeben musst:
data-yticks='[[0,"Off"],[1,"On"]]'
Zitat von: drhirn am 20 Februar 2017, 09:08:24
Naja, mit irgendwas musst du deinen Plot ja füttern. Soll heißen, irgendwo her muss der die Daten bekommen, die er dann anzeigt. Also die On/Off-Werte. Und die würden mich interessieren.
Hi, in DBLOG sieht das ganze so aus:
get myDbLog HISTORY INT 2017-02-21_00:00:00 2017-02-22_00:00:01 Steckdose_Tablet:state:0::$val=($val=~'on'?1:0)
2017-02-21_02:55:16 1
2017-02-21_04:05:48 0
2017-02-21_08:00:30 1
2017-02-21_09:18:37 0
2017-02-21_11:23:24 1
2017-02-21_12:30:44 0
2017-02-21_16:19:30 1
2017-02-21_17:30:05 0
2017-02-21_18:50:49 1
2017-02-21_19:59:59 0
2017-02-21_21:12:34 1
2017-02-21_21:14:02 0
#Steckdose_Tablet:state:::$val=($val=~'on'?1:0)
Das wird dann auch korrekt in FHEMWEB angezeigt,nur nicht in der FTUI,
in der FTUI sieht die definition so aus:
<div class="left nobuttons"
data-title="Steckdose Tablett"
data-type="chart"
data-height="100"
data-width="470"
data-logdevice="myDbLog"
data-logfile="HISTORY"
data-columnspec='["Steckdose_Tablet:state:0::$val=($val=~'on'?1:0)"]'
data-yticks='[[0,"Off"],[1,"On"]]'
data-style='["ftui l2"]'
data-ptype='["steps"]'
data-uaxis='["primary"]'
data-legend='["An"]'
data-yunit=""
data-ytext="An"
data-minvalue="0"
data-maxvalue="1.1"
data-crosshair="true"
data-cursorgroup="1"
data-scrollgroup="1"
data-showlegend="false"
data-xticks="auto">
</div>
Ich habe leider keine log Datenbank sondern nur Files, daher kann ich nicht wirklich testen. Bitte probier mal die folgende columnspec:
data-columnspec='["Steckdose_Tablet:state:0::$fld[1]=~\"on\"?1:0"]'
Erklärung: js kommt mit ineinander verschachtelten " oder ' nicht gut aus daher müssen die " innerhalb des Strings mit \ ausmaskiert werden. Beim Abholen der Werte aus Logfiles oder auch der logDB (hoffe ich wenigstens) ist $fld ein Array in dem die einzelnen Teile einer geholten Zeile als Array Elemente abgelegt werden (trenner für das aufteilen in die Elemente ist das Leerzeichen). Diese kann man dann verändern. $fld[1] wäre also der zweite Wert in der Zeile und somit Dein Logwert ($fld[0] wäre der Datumsstring).
Ein Beispiel wie es gehen kann ist auch noch unter:
https://wiki.fhem.de/wiki/FTUI_Widget_Chart#Fensterstatus_offen.2Fgeschlossen (https://wiki.fhem.de/wiki/FTUI_Widget_Chart#Fensterstatus_offen.2Fgeschlossen)
Hi,
hab es jetzt mal so abgeändert
<div class="left nobuttons"
data-title="Steckdose Tablett"
data-type="chart"
data-height="100"
data-width="470"
data-logdevice="myDbLog"
data-logfile="HISTORY"
data-columnspec='["Steckdose_Tablet:state:0::$fld[1]=~\"on\"?1:0"]'
data-yticks='[[0,"Off"],[1,"On"]]'
data-style='["ftui l2"]'
data-ptype='["steps"]'
data-uaxis='["primary"]'
data-legend='["An"]'
data-yunit=""
data-ytext="An"
data-minvalue="0"
data-maxvalue="1.1"
data-crosshair="true"
data-cursorgroup="1"
data-scrollgroup="1"
data-showlegend="false"
data-xticks="auto">
</div>
Aber auch damit wird nichts angezeigt in der FTUI
Ich nutze dbLog nicht, aber laut https://wiki.fhem.de/wiki/SVG-Plots_von_FileLog_auf_DbLog_umstellen#.40fld sollte man nicht doch $val stat $fld[1] nutzen? (was du am Anfang hattest)
Dazu würde ich data-device hinzufügen. Und lass alle andere Optionen weg, wie drhirn gesagt hat.
Gruß
Mach die columnspec mal genau so wie im FTUI Chart Wiki angegeben (siehe link in meiner vorherigen Antwort, das Beispiel dort ist dogar mit logDB). Alternativ kannst Du auch in Deiner Columnspec ":" statt "::" setzen.
Zitat von: eki am 30 März 2017, 12:28:41
Mach die columnspec mal genau so wie im FTUI Chart Wiki angegeben (siehe link in meiner vorherigen Antwort, das Beispiel dort ist dogar mit logDB). Alternativ kannst Du auch in Deiner Columnspec ":" statt "::" setzen.
Hi,
hab es genau so geändert wie in deinem Verlinkten Wiki Artikel
data-columnspec='["Steckdose_Tablet:state:0::$val=($val=~\\on\\x22?1:0)"]'
Aber auch damit klappt es nicht
Und auch so klappt es nicht
data-columnspec='["Steckdose_Tablet:state:0:$fld[1]=~\"on\"?1:0"]'
In dem verlinkten Wiki sieht die columnspec aber so aus (auch vorne ein \\x22):
data-columnspec='["wz_fensterstatus:state:0::$val=($val=~\\x22on\\x22?1:0)"]'
Kannst Du mal in der Browser Netzwerkanalyse schauen (aktiviert durch rechte Maustaste und "Inspect Element" oder so ähnlich auswählen und dann im erscheinenden Fenster den rechten Reiter anklicken) wie die Header der GET calls aussehen und ob da vom Server was zurück kommt?
Keiner mehr eine idee?
Hast Du die Columnspec angepasst (ohne Erfolg nehme ich an).
Ansonsten wäre es hilfreich, wenn Du die Infos, die ich genannt habe posten könntest.
In deinem dbLog Ausschnitt stehen die Zustände doch schon als 1 und 0, oder wird da auch on auf 1 zur Anzeige gebracht?
Wenn schon 0 und 1 im dbLog steht, brauchst du doch deine gezeigte columnspec nicht mehr.
Hi,
oK, hab irgendwas falsch gemacht, nachdem ich das data-columnspec='["wz_fensterstatus:state:0::$val=($val=~\\x22on\\x22?1:0)"]' an meine bedürfnisse angepasst habe klappt es nun endlich, danke für die Hilfe, daraus hat sich nur ein neues Problem ergeben, jetzt hab ich im Log diese Meldungen:
2017.10.16 06:56:39.166 1: PERL WARNING: Argument "on" isn't numeric in numeric gt (>) at ./FHEM/98_SVG.pm line 1550.
2017.10.16 06:56:39.166 1: stacktrace:
2017.10.16 06:56:39.167 1: main::__ANON__ called by ./FHEM/98_SVG.pm (1550)
2017.10.16 06:56:39.167 1: main::SVG_render called by ./FHEM/98_SVG.pm (1176)
2017.10.16 06:56:39.168 1: main::SVG_doShowLog called by ./FHEM/98_SVG.pm (1070)
2017.10.16 06:56:39.168 1: main::SVG_showLog called by ./FHEM/01_FHEMWEB.pm (892)
2017.10.16 06:56:39.168 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (549)
2017.10.16 06:56:39.169 1: main::FW_Read called by fhem.pl (3448)
2017.10.16 06:56:39.169 1: main::CallFn called by fhem.pl (692)
2017.10.16 06:56:39.170 1: PERL WARNING: Argument "off" isn't numeric in numeric gt (>) at ./FHEM/98_SVG.pm line 1550.
2017.10.16 06:56:39.170 1: stacktrace:
2017.10.16 06:56:39.170 1: main::__ANON__ called by ./FHEM/98_SVG.pm (1550)
2017.10.16 06:56:39.171 1: main::SVG_render called by ./FHEM/98_SVG.pm (1176)
2017.10.16 06:56:39.171 1: main::SVG_doShowLog called by ./FHEM/98_SVG.pm (1070)
2017.10.16 06:56:39.171 1: main::SVG_showLog called by ./FHEM/01_FHEMWEB.pm (892)
2017.10.16 06:56:39.172 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (549)
2017.10.16 06:56:39.172 1: main::FW_Read called by fhem.pl (3448)
2017.10.16 06:56:39.172 1: main::CallFn called by fhem.pl (692)
Wenn ich das richtig sehe, kommt die Warnung aus dem Teil, der die SVG Plots in FHEM macht. Das hat also erst mal nichts mit FTUI und chart zu tun. Ich verstehe nicht so ganz, an welcher Stelle der Fehler kommt. Aus meiner Sicht wird ja, wenn Du FTUI und chart nutzt, nur ein Befehl an FHEM abgesetzt (per HTTP GET) um die Daten aus den Logs zu holen. Ein SVG Plot sollte da gar nicht angestoßen werden.
Die Warnung selbst ist - zumindest für FTUI und chart - eher unkritisch, da die min/max Berechnung, die das in FHEM betrifft für FTUI gar nicht relevant ist.
Hi,
Ja die Warnung sollte unkritisch sein, allerdings stört sie natürlich im Log :-)
könntest du bitte mal den code des gesammten charts für ftui posten?
danke