DbLog: Formatierungs/Zeichensatz-Problem mit DbReadingsVal

Begonnen von mele, 26 August 2019, 18:26:14

Vorheriges Thema - Nächstes Thema

mele

Hallo zusammen,

ich versuche einen Wert aus meiner DbLog in einen Dummy zu schreiben, um mit diesem weiter zu arbeiten:


{fhem "setreading Tageszeit Status ".DbReadingsVal("myDbRep","Tageszeit:state",FmtDateTime(time),"")}


Leider wird der importierte Wert "Tag" nicht erkannt. Das Format scheint nicht zu stimmen. Forumssuche und verschiedene Tests mit encode/decode waren leider erfolglos.

Um das hier zu verdeutlichen (Screenshot), habe ich den habe ich den Wert aus der DbLog in ein Reading Status geschrieben. Man erkennt die unterschiedliche Schriftart/Zeichensatz zu den state "Tag", mit dem ich arbeiten kann.

Hat jemand einen Tipp, wie ich Status im gleichen Format wie den state erhalten kann?

Vielen Dank vorab für die Hilfe und Gruß

Manuel
FHEM auf NUC/Proxmox (Rpi 2 / Rpi Zero W mit FHEM2FHEM, RFHEM)
Homematic/LaCrosse/PCA301/Shelly, Rollladen, Batterieaktor + Relais zur Schaltung Garagentor (Promatic 2), Xiaomi FlowerSens, Bewässerungssteuerung Garten und Gewächshaus, Weatherman und Landroid

DS_Starter

Hallo Manuel,

ich habe leider nicht wirklich erkennen können wo dein Problem liegt.
Meinst du dass der "Tag" im Reading Status nicht so geschrieben aussieht wie im Reading state ?

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

mele

Hallo Heiko,

hier zur Verdeutlichung:


{ReadingsVal("Tageszeit","state","") eq "Tag"} Ergebnis: 1



{ReadingsVal("Tageszeit","Status","") eq "Tag"} Ergebnis: Nichts
FHEM auf NUC/Proxmox (Rpi 2 / Rpi Zero W mit FHEM2FHEM, RFHEM)
Homematic/LaCrosse/PCA301/Shelly, Rollladen, Batterieaktor + Relais zur Schaltung Garagentor (Promatic 2), Xiaomi FlowerSens, Bewässerungssteuerung Garten und Gewächshaus, Weatherman und Landroid

DS_Starter

Ah, ich ahne etwas.
Wenn du genau hinschaust, ist die Zeile mit dem Reading "Status" höher als sie sein müsste. Hinter dem Wert "Tag" kommt vermutlich noch ein Zeilenumbruch.
Möglicherweise habe ich den in meiner Routine drin.
Ich checke das mal und melde mich wieder.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Jo, hatte tatsächlich eins drin.  ::)
Habe eine gefixte Version in mein contrib geladen (footer).
Ziehe dir das mal, reload 93_DbRep oder restart.
Dann versuch mal erneut dein Statement.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

mele

Zitat von: DS_Starter am 26 August 2019, 20:42:22
Ziehe dir das mal, reload 93_DbRep oder restart.
Dann versuch mal erneut dein Statement.

Läuft, vielen Dank!!!
FHEM auf NUC/Proxmox (Rpi 2 / Rpi Zero W mit FHEM2FHEM, RFHEM)
Homematic/LaCrosse/PCA301/Shelly, Rollladen, Batterieaktor + Relais zur Schaltung Garagentor (Promatic 2), Xiaomi FlowerSens, Bewässerungssteuerung Garten und Gewächshaus, Weatherman und Landroid

DS_Starter

Sehr schön.
Ich checke die Version ein und ist morgen früh im Regelupdate.

schönen Abend,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Frank6320

Hallo,
ich verstehe die Syntax für Datum nicht.
Ich möchte mit DbReadingsVal einen Wert für den aktuellen Tag um Mitternacht abrufen. Wie mache ich das richtig? Ich versuche es mit $today bekomme aber ständig Syntaxfehler. Wenn ich in der FHEM Kommandozeile {$today} eingebe, kommt das aktuelle Datum im gewünschten Format für DbReadingsVal.

{DbReadingsVal("Rep.Agent","LWZ_Zaehler:total_consumption_Ch1",($today,"_00:00:00"),0)}

Error evaluating test stateFormat: Global symbol "$today" requires explicit package name (did you forget to declare "my $today"?) at (eval 9747) line 1.

viele Grüße

Frank

DS_Starter

{DbReadingsVal("Rep.Agent","SMA_Energymeter:Bezug_Wirkleistung_Zaehler",$today."_00:00:00",0)}

Habe es wie oben angegeben bei mir gerade erfolgreich getestet. Wenn es so bei dir nicht gehen sollte, schaue ich heute Abend nochmal.

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Frank6320

Hallo Heiko,

du hast einen Punkt hinter das today gesetzt. Bei mir sieht das so aus:

{DbReadingsVal("Rep.Agent","LWZ_Zaehler:total_consumption_Ch1",$today."_00:00:00",0)}

Ich erhalte dann die Fehlermeldung:
rror evaluating test stateFormat: Global symbol "$today" requires explicit package name (did you forget to declare "my $today"?) at (eval 17760) line 1

viele Grüße

Frank

DS_Starter

Hallo Frank,

kommt mir etwas eigenartig vor weil die Variable $today zentral von FHEM bereitgestellt wird.
Ich habe im Modul eine kleine Änderung vorgenommen. Die Version befindet sich in meinem contrib.

Zum Download in der FHEMWEB Kommandozeile inklusive der Ausführungszeichen angeben:


"wget -qO ./FHEM/93_DbRep.pm https://svn.fhem.de/fhem/trunk/fhem/contrib/DS_Starter/93_DbRep.pm"


Und danach FHEM restarten ! Probier mal ob der Fehler dann weg ist.

Grüße,
Heiko

ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Frank6320

Hallo Heiko,
Vielen Dank für deine Hilfe.
Ich habe dein Update gezogen und fhem neugestartet. Das Verhalten ist das Gleiche.
Die Anweisung steht in einem stateformat Attribut. Muss da noch was beachtet werden?

Viele Grüße

Frank

DS_Starter

#12
Nein, ist nichts weiter zu beachten..

Gib mir mal genau was du machst damit ich es nachvollziehen kann.
Bei mir funktioniert das alles so wie ich es dir gezeigt hatte. Ist denn dein FHEM, insbesondere die fhem.pl, aktuell ?

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Frank6320

Hallo Heiko,

am Ende will ich die Stromkosten vom aktuellen Tag ausgeben. Die Anweisung funktioniert. Ich muss halt das Datum von Hand eingeben und noch verfeinern, dass es sich von allein aktualisiert.
{sprintf(
"%.2f €",(
(ReadingsVal("LWZ_Zaehler","total_consumption_Ch1",0)-DbReadingsVal("Rep.Agent","LWZ_Zaehler:total_consumption_Ch1","2019-11-07_00:00:00",0))/1000*0.2261
+
(ReadingsVal("LWZ_Zaehler","total_consumption_Ch2",0)-DbReadingsVal("Rep.Agent","LWZ_Zaehler:total_consumption_Ch2","2019-11-07_00:00:00",0))/1000*0.1927
)+5.95*12/365)}


Um das DbReadingsVal zu verstehen habe ich den Teil herausgenommen zum probieren. Im Bild die Asicht zu dem dummy.
FHEM habe ich per update geupdated.
viele Grüße
Frank

DS_Starter

Ich muß erstmal kurz weg, schaue nachher noch.
Verwende es mal so:

{  my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) =
        localtime(gettimeofday());
  $month++; $year+=1900;
  my $today = sprintf('%04d-%02d-%02d', $year,$month,$mday);
sprintf(
"%.2f €",(
(ReadingsVal("LWZ_Zaehler","total_consumption_Ch1",0)-DbReadingsVal("Rep.Agent","LWZ_Zaehler:total_consumption_Ch1",$today."_00:00:00",0))/1000*0.2261
+
(ReadingsVal("LWZ_Zaehler","total_consumption_Ch2",0)-DbReadingsVal("Rep.Agent","LWZ_Zaehler:total_consumption_Ch2",$today."_00:00:00",0))/1000*0.1927
)+5.95*12/365)}
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter