[Gelöst]dblog - kein Ergebnis in userCommandResult

Begonnen von pwlr, 11 Mai 2017, 00:13:57

Vorheriges Thema - Nächstes Thema

pwlr

Moin,

mal ne Frage :
ich gebe aus einer sub in 99_myUtils die folgenden Befehle ab :

fhem("set logdb userCommand select VALUE from history where device='$ch' and READING='pct' and TIMESTAMP<'$po';");
my$pct=ReadingsVal("logdb","userCommandResult","999");
fhem("set logdb userCommand select VALUE from history where device='$ch' and READING='level' and TIMESTAMP<'$po';");
my$level=ReadingsVal("logdb","userCommandResult","999");


Einer der beiden Abfragen sollte eine Fehlermeldung liefern, da kein Wert in der mysql-Datenbank steht. Das Reading userCommandResult wird im Fehlerfall aber nicht neu gesetzt, sondern behält den Wert der vorherigen Abfrage.
Direkt auf dem Server kommt bei Eingabe des "falschen" Befehls die Antwort "Empty set".

Kann man da was tun?

Schon mal vielen Dank vorab
Bernd

KernSani

Hi pwlr,


ich werde aus deiner Frage leider nicht ganz schlau... "Sollte" eine der beiden Abfragen eine Fehlermeldung liefern, oder tut sie das?
Im Übrigen halte ich das nicht für eine Anfängerfrage sondern für etwas, wo DbLog Expertise gefragt ist. Verschiebst du (Button ganz links unten) nach "Automatisierung"?


Danke,


Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

pwlr

Hallo Oli,

danke für den Hinweis !

ZitatEiner der beiden Abfragen sollte eine Fehlermeldung liefern, da kein Wert in der mysql-Datenbank steht.

Eine der beiden Abfragen muss eine Fehlermeldung liefern, da kein Wert in der mysql-Datenbank steht.
Ist hoffentlich eindeutiger.

Moin
Bernd

DS_Starter

Morgen Bernd,

Fehlermeldung ist wahrscheinlich das falsche Wort, die werden nur geliefert wenn Fehler im Ablauf auftreten.
Hier wird ein richtiges Ergebnis geliefert, nämlich nichts weil nichts da ist und dementsprechend das Reading nicht aktualisiert.
Was du wahrscheinlich möchtest ist, dass in diesem Fall zum Beispiel "no result" oder etwas ähnliches im Reading erscheint ?
Würde dir das helfen ?

VG
Heiko
Proxmox+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

#4
Hallo Bernd,

du hast zwar noch nicht geantwortet, aber da ich gerade konnte, habe ich dir mal eine angepasste DbLog-Version gemacht und hier angehängt.
Einfach umbenennen und bei dir in das FHEM-Verzeichnis kopieren.
Schau mal ob es das ist was du dir vorstellst.

VG

EDIT: reload bzw. restart nicht vergessen
Proxmox+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

pwlr

Moin Heiko,

danke, genau das brauch ich! Du hast recht, nichts ist ja auch ein Ergebnis.
Vielleicht kann ich heute Abend testen, habe jetzt gerade keine Zeit. Ich melde mich wieder.

Moin aus Norddeutschland, wo man immer Moin sagt, auch abends  ;)
Bernd


pwlr

Moin Heiko,

prima, genau das brauchte ich ! :D
Vielen Dank !

Zu Deiner Info, es kommt eine Warning (siehe unten mit Kommentaren von mir) :
2017.05.12 01:10:03 1: Lampe_EG_Flur_01 pct 100                       (100 ist das Ergebnis der 1. Abfrage - ok)
2017.05.12 01:10:03 1: PERL WARNING: Use of uninitialized value $c in concatenation (.) or string at ./FHEM/93_DbLog.pm line 674.
2017.05.12 01:10:03 3: eval: {por_device_02("Lampe_EG_Flur_01")}    (keine Ahnung wer das meldet, es ist der Aufruf der sub..)
2017.05.12 01:10:03 1: Lampe_EG_Flur_01 level no result                       (no result ist das Ergebnis der 2. Abfrage - ok)
   

Supi !
Bernd



DS_Starter

Moin Bernd,

ich habe dir in #4 die Version nochmal verbessert damit die Warnung weg ist.
Außerderdem ist der String konsequenterweise in "no result" (alles klein) geändert.
Das sollte nun so passen.
Die Änderung werde ich in das nächste Release mit einfließen lassen wenn ich DbLog wieder einchecke.
Bis dahin kannst du ggf. mit exclude_from_update im global Device das Modul vom Update ausnehmen damit es nicht wieder überschrieben wird.

VG
Heiko
Proxmox+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

pwlr

Moin Heiko,

alles klar. Die Warning stört mich erst mal nicht, wollte ich Dir nur als Testergebnis mitteilen. Also alles klar.

Mein Feedback zu dblog: Einfach nur super, kann ich gut gebrauchen und war für mich einfach zu installieren. Ich nutze es allerdings (zur Zeit) nur, um den Status einzelner Devices in mySQL zu speichern. Das ist dann die Datenbasis für ein PowerOn-Recovery einzelner Devices. Ziel ist es, dass kritische Devices immer den Status vor einem Stromausfall erhalten (so etwas wie lastState).

Vielen Dank für Deine super Arbeit, Deine Hilfsbereitschaft und Deinen Support !! (und auch an alle anderen, die dabei mitgewirkt haben !)



Moin und viele Grüße
Bernd

DS_Starter

 :)

Neuigkeiten und Ideen zur Weiterentwiclung von DbLog diskutieren und verfolgen wir hier https://forum.fhem.de/index.php/topic,65860.msg571048.html#msg571048 wenn du magst ...

VG
Heiko
Proxmox+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