[schwere Geburt, aber gelöst] DbLog und SVG

Begonnen von andies, 02 Mai 2017, 13:51:41

Vorheriges Thema - Nächstes Thema

andies

Kann mir mal jemand bei SVG und DbLog helfen? Wenn da nur ein Eintrag in der Datenbank steht, schaffe ich das. Ich habe aber Einträge der Form
get DbLog HISTORY INT 2017-05-01_14:00:00 2017-05-02_14:00:01 sysmon:wlan0_diff:0:: sysmon:wlan0_diff:3::
2017-05-02_09:57:03 RX: 0.19 MB, TX: 0.28 MB, Total:
2017-05-02_10:00:03 RX: 0.18 MB, TX: 0.24 MB, Total:
2017-05-02_10:03:04 RX: 0.08 MB, TX: 0.08 MB, Total:

und das kriege ich dann nicht hin. Meine Definition des SVG lautet
# Created by FHEM/98_SVG.pm, 2017-05-02 13:43:42
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
set y2tics
set grid y2tics
set ylabel ""
set y2label "Traffic in MB"

#DbLog sysmon:wlan0_diff:0::
#DbLog sysmon:wlan0_diff:3::

plot "<IN>" using 1:2 axes x1y2 title 'Empfangen' ls l1 lw 2 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Gesendet' ls l0 lw 2 with lines

Und es wird und wird nichts. Ich habe inzwischen keine Idee mehr, was ich probieren soll - und leider habe ich keine vernünftige Anleitung gefunden.

Die originale Datenbank sieht so aus:
| 2017-05-02 10:00:03 | sysmon       | SYSMON   | cpu_freq: 600                                                           | cpu_freq         | 600                              |      |
| 2017-05-02 10:00:03 | sysmon       | SYSMON   | cpu_temp: 42.39                                                         | cpu_temp         | 42.39                            |      |
| 2017-05-02 10:00:03 | sysmon       | SYSMON   | fs_root: Total: 29867 MB, Used: 3012 MB, 11 %, Available: 25613 MB at / | fs_root          | Total: 29867 MB, Used: 3012 MB,  |      |
| 2017-05-02 10:00:03 | sysmon       | SYSMON   | cpu_temp_avg: 41.6                                                      | cpu_temp_avg     | 41.6                             |      |
| 2017-05-02 10:00:03 | sysmon       | SYSMON   | stat_cpu_percent: 2.69 0.00 0.25 97.00 0.04 0.00 0.02                   | stat_cpu_percent | 2.69 0.00 0.25 97.00 0.04 0.00 0 |      |
| 2017-05-02 10:00:03 | sysmon       | SYSMON   | wlan0_diff: RX: 0.18 MB, TX: 0.24 MB, Total: 0.42 MB                    | wlan0_diff       | RX: 0.18 MB, TX: 0.24 MB, Total: |      |
| 2017-05-02 10:00:03 | sysmon       | SYSMON   | fs_boot: Total: 63 MB, Used: 22 MB, 35 %, Available: 42 MB at /boot     | fs_boot          | Total: 63 MB, Used: 22 MB, 35 %, |      |
| 2017-05-02 10:00:03 | sysmon       | SYSMON   | loadavg: 0.35 0.13 0.05                                                 | loadavg          | 0.35 0.13 0.05                   |      |
| 2017-05-02 10:00:03 | sysmon       | SYSMON   | ram: Total: 859.92 MB, Used: 116.31 MB, 13.53 %, Free: 743.61 MB        | ram              | Total: 859.92 MB, Used: 116.31 M |      |
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

igami

Für Sysmon gibt es gplot files. Davon kannst du ja eines für dich umstricken.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

andies

Leider klappt genau das nicht, deshalb meine nachricht. Wenn ich den vorgegebenen File nehme, dann sieht es so grandios aus wie im Anhang ;-)

Die Daten sind in der Datenbank, aber die commandref erklärt mir nicht, was ich eigentlich tun muss. Ich verstehe, dass es da ein RegEx ist, aber nicht, wie ich den manipuliere und wo mein Fehler ist.

PS Hier der Code der Datei
# SYSMON
#
# Network-Traffic ETH0 (DbLog)
#

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 ylabel "Traffic RX / TX"
set y2label "Traffic Total"
set grid
set ytics
set y2tics
set format y "%.2f"
set format y2 "%.2f"

#DbLog <SPEC1>:wlan0_diff:::$val=~s/^RX..([\d.]*).*/$1/eg
#DbLog <SPEC1>:wlan0_diff:::$val=~s/.*TX..([\d.]*).*/$1/eg
#DbLog <SPEC1>:wlan0_diff:::$val=~s/.*Total..([\d.]*).*/$1/eg

plot \
   "< awk '/wlan0_diff:/ {print $1, $4}' <IN>" \
   using 1:2 ls l0 axes x1y1 title 'RX' lw 1 with lines \
   "< awk '/wlan0_diff:/ {print $1, $4}' <IN>" \
   using 1:2 ls l1 axes x1y1 title 'TX' lw 1 with lines \
   "< awk '/wlan0_diff:/ {print $1, $4}' <IN>" \
   using 1:2 ls l2 axes x1y2 title 'Total' lw 1 with lines \
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Muschelpuster

Mir erschließt sich noch nicht so ganz, warum man dazu in den Files rumfummeln muss. Einfach auf der GUI das Plot aufrufen, entspannt die Einstellungen zusammenklicken und fertig.
Ok, vielleicht mache ich es mir zu einfach, klappt aber wunderbar  8)

vereinfachte Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

andies

Habe ich gemacht - ohne Ergebnis. Daraufhin bin ich dann in die Datei gegangen. Auch ohne Ergebnis :-(


Gesendet von iPhone mit Tapatalk Pro
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Muschelpuster

Ok, mir erschließt sich erst einmal, warum es nicht geht: Sysmon schreibt mehrere Informationen in eine Zeile, das kann SVG nicht darstellen. Daher auch die regulären Ausdrücke. Finde ich ja hochgradig unsauber, aber sei es erst einmal drum.
Ich probier das gerade mal aus, finde das Feature interessant, weiß nur noch nicht, ob ich meine DB damit zumüllen will ...

interessierte Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

nesges

Zitat von: andies am 02 Mai 2017, 16:31:08
Die Daten sind in der Datenbank, aber die commandref erklärt mir nicht, was ich eigentlich tun muss

Du erklärst uns auch nicht, was du überhaupt tun willst :) In wlan0_diff steht kein plotbarer Wert (dein Beispiel "RX: 0.18 MB, TX: 0.24 MB, Total:") und in deinem gplot-File experimentierst du mit unterschiedlichen Defaultwerten (einmal 0, einmal 3). Da werde ich nicht schlau draus. Aber schau dir mal in  https://fhem.de/commandref.html#DbLog unter Get die column_spec an. Das ist das, was du auch im gplot-File notierst.

andies

Zitat von: nesges am 02 Mai 2017, 17:35:45
In wlan0_diff steht kein plotbarer Wert (dein Beispiel "RX: 0.18 MB, TX: 0.24 MB, Total:")
Korrekt. Daher muss (in diesem Beispiel) die Zahl 0.18 extrahiert werden, damit man sie zeichnen kann.

Zitat von: nesges am 02 Mai 2017, 17:35:45
und in deinem gplot-File experimentierst du mit unterschiedlichen Defaultwerten (einmal 0, einmal 3). Da werde ich nicht schlau draus.
Das waren meine ersten hilflosen Versuche. Jetzt habe ich ja ein wenig dazugelernt, danke für den Link. Ich nehme jetzt
#DbLog DbLog:wlan0_diff:::$val=~s/^RX..([\d.]*).*/$1/eg

plot \
   "< awk '/wlan0_diff:/ {print $1}' <IN>" \
   using 1:2 ls l0 axes x1y1 title 'RX' lw 1 with lines

und eigentlich passt das (den Code habe ich aus der Datei, die ursprünglich sysmon beigefügt war): Auf RX folgen zwei Zeichen, die uninteressant sind, dann kommt eine Zahl (bestehend aus digit und .), die zudem erfasst wird und dann geht es mit irgendwas weiter.

Ich verstehe noch nicht ganz, wieso hier substituiert wird, aber so stand das in der Originaldatei. Leider erscheint aber keine Abbildung, in der dann die 0.18 zu sehen wäre. (Ich verstehe auch nicht, was $1 und das g da soll, es gibt RX nur einmal in dem String?).

Zitat von: nesges am 02 Mai 2017, 17:35:45
Du erklärst uns auch nicht, was du überhaupt tun willst :)
Na einfach nur die empfangene und gesendete Menge in einem Diagramm anzeigen  :'( Trotzdem dank für Deine Hilfe! 
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

Ich habe was. Das hier
get DbLog - - - - sysmon:wlan0_diff:::$val=~s/RX..([\d.]*).*/$1/eg
gibt mir eine Liste mit Zahlen in FHEM. Wie kriege ich das nun in gplot hin? Es ist zum Verzweifeln >:(
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

Geschafft und danke an alle, die hier mitgemacht haben. So geht es
# Created by FHEM/98_SVG.pm, 2017-05-02 16:37:26
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
set y2tics
set grid
set ylabel "Traffic Receiv / Transm"
set y2label ""

#DbLog sysmon:wlan0_diff:::$val=~s/RX..([\d.]*).*/$1/e
#DbLog sysmon:wlan0_diff:::$val=~s/TX..([\d.]*).*/$1/e

plot \
   "< awk '/wlan0_diff:/ {print $1}' <IN>" \
   using 1:2 ls l0 axes x1y1 title 'Receiv' lw 1 with lines \
   "< awk '/wlan0_diff:/ {print $val}' <IN>" \
   using 1:2 ls l1 axes x1y1 title 'Transm' lw 1 with lines

Abr jetzt mal ehrlich: Wie soll man denn darauf kommen?! Das muss mal im Wiki erläutert werden. Ist es wirklich so, dass substituiert wird? Und kann man statt $1 eine beliebige Variablenbezeichnung nehmen? Das g konnte weg, weil ja RX und TX nur einmal vorkommen.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Muschelpuster

Zitat von: andies am 02 Mai 2017, 18:34:20Abr jetzt mal ehrlich: Wie soll man denn darauf kommen?! Das muss mal im Wiki erläutert werden.
Selbst dann bleibt das IMHO noch ein richtiges Expertending. Ich schreibe gerne Wiki, denn bei der Programmierung kann ich eh nichts beisteuern, aber bei dem Plot-Part bin ich gerade raus  :'(

Zitat von: andies am 02 Mai 2017, 18:34:20Ist es wirklich so, dass substituiert wird? Und kann man statt $1 eine beliebige Variablenbezeichnung nehmen?
$1 ist doch nicht der Variablenbezeichner, sondern IMHO der Platzhalter für die erste Klammer. Ich zerlege das mal nach meinem bescheidenen Verständnis:
$val -> Variable. die es zu befummeln gilt (also das gelieferte Value)
=~   -> wird mit regulärem Ausdruck befummelt
s    -> Substitution
/    -> Trenner innerhalb des regEx -> es folgt Suchstring
RX.. -> es wird nach RX gefolgt von 2 beliebigen Zeichen gesucht (in diesem Fall Doppelpunkt und Leerzeichen), gefolgt von
(    -> Klammer markiert, dass der geklammerte Bereich wieder verwendet werden kann, erste Klammerung = $1, zweite $2 usw.
[    -> Markierung für Zeichengruppe
\d   -> Zahlen werden gesucht
.    -> und ein Punkt wird gesucht
]    -> Zeichengruppe fertig
*    -> die Treffermenge aus der Zeichengruppe kann beliebig oft auftreten
)    -> Ende des Bereiches zur Wiederverwendung
.*   -> es können beliebige Zeichen folgen
/    -> Trenner in der regEx -> es folgt der Ersetzenstring
$1   -> Treffer aus der ersten Klammerung in suche verwenden
/    -> Trenner in regEx -> es folgen die Optionen
e    -> Option e

Aber warum verdammt nochmal muss das im plot darunter nochmal so exxessiv befummelt werden?

zerpflückte Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

LuckyDay

You made my day  ;D

"befummeln" triffts genau  ;D

Omega

Super erklärt - bis auf: was macht die Option "e" bzw. "eg", die ich auch aus vielen Beispielen kenne?

Noch ein kleiner Tipp, den ich hier auch schon mehrfach gefunden habe:
Online RegEx-Tester: https://regex101.com/#PCRE

Bei RegEx kommt nur ein Auschnitt rein (z.B. "RX..([\d.]*).*" bei TEST STRING dann "2017-05-02_09:57:03 RX: 0.19 MB, TX: 0.28 MB, Total: 0.10 MB"

Ach ja: lange gesucht habe ich auch, als es darum ging, den ermittelten Wert noch nachzubearbeiten. An den RegEx wird dann noch ;;$val=$val/1000 (oder was man sonst benötigt) drangehängt.

LG
Holger
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

Muschelpuster

Zitat von: Omega am 02 Mai 2017, 21:02:19Super erklärt - bis auf: was macht die Option "e" bzw. "eg", die ich auch aus vielen Beispielen kenne?
Verdammt, ich dachte ich kann mich da durchmogeln  ;D
Mir hat das hier ganz gut geholfen: https://de.wikibooks.org/wiki/Perl-Programmierung:_Regul%C3%A4re_Ausdr%C3%BCcke
Aber da steht e=evaluate:'Das Ersetzmuster wird als Perl-Code interpretiert und ausgeführt.' Unter evaluate hätte ich nun eher eine Syntaxprüfung verstanden. Aber schauen wir mal hier: http://www.ims.uni-stuttgart.de/institut/mitarbeiter/zinsmeis/Perl/material/uebersicht_regex.pdf 'bewertet Ersetzung als Perl-Ausdruck (nur Substitution mit s///) evaluate right sides as expression'

Die Option 'g' steht für 'Global'. Normalerweise wird die regEx-Suche mit einem Treffer beendet, mit g wird weiter gesucht und alle Vorkommen ersetzt.

Und wer erklärt uns jetzt den plot-Teil?

ergänzende Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

andies

FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Muschelpuster

#15
Also nach 1x drüber schlafen finde ich es unglücklich, den Plot als Kläranlage für die geloggte Sch... zu verwenden. Wenn man vorne in's Log gleicher sauber einfüllt, braucht man sich hinten nicht verbiegen. Den Gedanken hatte ich gestern auch schon mal, wollte aber über das mächtige Attribut valueFn vom dblog lösen, was aber wohl mit 3 Zielwerten nicht geht. Man muss 'einfach' Userreadings im sysmon schaffen und die loggen (bei mir auf eth0):attr sysmon_pi userReadings eth0_tx_diff difference {int(ReadingsVal("sysmon_pi","eth0_tx",0)/60)} ,
          eth0_rx_diff difference {int(ReadingsVal("sysmon_pi","eth0_rx",0)/60)} ,
          eth0_all_diff difference {ReadingsVal("sysmon_pi","eth0_rx_diff",0) + ReadingsVal("sysmon_pi","eth0_tx_diff",0)}
attr sysmon_pi DbLogInclude eth0_tx_diff,eth0_rx_diff,eth0_all_diff
Ich teile die Werte durch 60, da ich zum Testen minütlich logge und ja die bit/s haben will. Wenn man nun 5-minütlich loggt, teilt man eben durch 300. Um den Wert in kb/s zu haben muss man dann eben durch 60 bzw. 300 mal 1024 teilen. Dann muss man aber noch auf 2 Nachkommastellen oder so runden, sonst bekommt man zumeist den Wert 0 zurück.
Dazu ist zu sagen, dass mein dblog im Include-Mode läuft, da ich beim Umstieg auf dblog nicht die Vorteile durch Fluten der  DB mit unnötigen Werte kaputt machen wollte.
Wer jetzt aber dachte, das ist eine gute Idee, der hat seine Rechnung ohne FHEM gemacht  ;) Die Userreadings gehen beim Event kurz auf 0 und die Differenz in's Minus, bevor 1 Sekunde später die richtigen Werte geloggt werden. Also doch noch valueFn im dblog  >:( attr bdlog valueFn {if ($DEVICE eq "sysmon_pi"  && $VALUE < 1){$IGNORE=1;}}Das braucht man eh, denn bei 5-minütlichem Logging gehen die Userreadigs in den 4 Minuten dazwischen natürlich auch auf 0  ;)

Und schon kann man auf der GUI bleiben und seinen Plot ganz ohne gplot-Akrobatik bauen. Ob der Kopfstand vorher besser ist, oder nachher muss jeder selbst für sich entscheiden, oder das sysmon entsprechend weiter programmieren, damit saubere Werte in das dblog gehen.

alternative Grüße
Niels

fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

itarch

Hallo

ich teile die Meinung (siehe Zitat) von @Muschelpuster ...
ZitatWenn man vorne in's Log gleicher sauber einfüllt, braucht man sich hinten nicht verbiegen.

Allerdings führt er weiter auf
ZitatMan muss 'einfach' Userreadings im sysmon schaffen und die loggen (bei mir auf eth0)
Und das verstehe ich nicht so ganz. Heißt, das device muß bestimmte Voraussetzungen erfüllen, oder erreicht man mit userReadings Anweisung(en) mein folgendes Anliegen.

Ich habe im dblog das device Heizung (Luxtronik2.pm) definiert, welches mir bspw das Reading "Heizung.statElectricityHeatPumpTariff1" bereitstellt, welches wie folgt Value Strings in der DB ablegt "Day: 9746.8 Month: 87.028 Year: 87.028 (since...)". Ich brauch nur den Wert von "Day: ..." bzw Reading = Day und Value = <wert>.  Um den Plot umsetzen zu können habe ich das GPLOT-File anpassen müssen. Schöner wäre es wenn dies über die GUI gehen würde.  Jetzt habe ich zwar den Plot, aber muß fortfolgend das GPLOT-File manuell bearbeiten, da sonst übers GUI einmal angepasst, die manuelle Ergänzungen gelöscht werden (siehe Details hier https://forum.fhem.de/index.php/topic,79469.0.html). Dafür sollte ja - wie bereits von @Muschelpuster angemerkt - das dblog angepasst werden, aber wie?

 

Muschelpuster

hallo itarch,

Eigentlich hast Du ja schon alle Zutaten. Wenn Du nun anstelle von statElectricityHeatPumpTariff1 das Userreading statElectricityHeatPumpTariff1_log mit aufbereiteten Daten füllst, dann bist Du doch schon fast am Ziel. Und die Aufbereitung hast Du ja mit Deinem Ausdruck ~s/Day..([\d]*).*/$1/e ja auch schon gebaut. Damit musst Du doch 'nur' das Userreading betanken und dieses dann loggen.
Der Vorteil ist für mich auch, dass ich sehe was passiert. Wenn mein regulärer Ausdruck noch nicht richtig ist, sehe ich das im Userreading und sehe auch den Effekt meiner Änderungen. Dadurch ist es für mich 'einfacher', die Regexen zu basteln.

'einfache' Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

itarch

Hallo Niels

Danke !
Ich werde die Tage mal versuchen es umzusetzen, auch wenn ich es noch nicht ganz verdaut habe... Bis später

BG, itarch

itarch

... nach langem hin und her mit Perl's Suchen/Ersetzen, also kurzum ohne Erfolg
habe ich das gezielte Abgreifen (also Teile aus dem value eines reading) mitr Perl's split umgesetzt.

Demnach habe ich also für das Device: Heizung
(Typ: LUXTRONIK2)

für bspw das Reading "statElectricityHeatPumpTariff1" (hier ein value-bsp.: Day: 5980.5 Month: 226.076 Year: 226.076 (since: 2017-11-09 )
folgendes Attribut generiert um den Wert für Day zu erhalten:
ElecHeatPumpDay { (split(" ", ReadingsVal('Heizung','statElectricityHeatPumpTariff1','0')))[1] } .

Fortfolgend finde ich beim generieren eines Plots (bspw. über dblog oder Filelog) das Reading "ElecHeatPumpDay" und bin am Ziel.

Hoffe irgend jemand kann damit was anfangen.

freundliche grüße