93_DbLog - Überlegungen zur Optimierung (RPI und andere Systeme)

Begonnen von JoeALLb, 27 Januar 2017, 22:16:19

Vorheriges Thema - Nächstes Thema

JoeALLb

Hallo Heiko,

habe oben mein Beispiel wegen \1 nochmal völlig geändert, da es so noch nicht funktionierte.

habe soeben festgestellt, dass $TIMESTAMP in valueFn zwischen 2 addLog-Readingeinträgen nicht zurückgesetzt wird.

Um das zu verdeutlichen, habe ich den Timestamp in die Unit-Spalte kopiert:
Beispiel valueFn
if($CN eq "test"){
   $UNIT= "OrgTS: ".$TIMESTAMP;
    $TIMESTAMP=~ s/\s([^\s]+)/ 23:59:59/;
}


der Aufruf lautet:
set sql addLog Gaszaehler:verbrauch_EnergyDay.* !useExcludes CN=test

Ale Ergebnis bekomme ich
84042 => 2018-04-10 23:59:59|Gaszaehler|KNX|addLog|verbrauch_EnergyDay|0.000|OrgTS: 2018-04-10 08:43:53
84043 => 2018-04-10 23:59:59|Gaszaehler|KNX|addLog|verbrauch_EnergyDayLast|0.000|OrgTS: 2018-04-10 23:59:59

wobei mich in der 2. zeile das 23:59:59 in der unit-Spalte wundert.


sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

Hallo Joe,

Zitathabe soeben festgestellt, dass $TIMESTAMP in valueFn zwischen 2 addLog-Readingeinträgen nicht zurückgesetzt wird.
Das ar wieder ein ganz gemeiner Fehler der sich gut versteckt hatte.
Habe es korrigiert und auch die commandref angepasst.

Anbei die finale V3.10.3 die ich heute auch noch einchecken will.

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

JoeALLb

#707
Hallo heiko,

herzlichen Dank !!!

Hm, wieder so eine Idee:

Da kürzlich funktionen wie "OldReadingsVal" und "OldReadingsNum"
hinzugefügt wurden (siehe https://svn.fhem.de/trac/changeset/16349)
wünsche ich mir so etwas auch mit Daten aus der Datenbank!

Über "OldReadingsVal" kann ich mir ältere Werte im Speicher halten.
Nun würde ich aber gerne im Status meines Wettermoduls gerne die Temperatur von gestern zur selben Tageszeit wie jetzt gerade als Vergleichswert anzeigen lassen,
welche natürlich nicht mehr im Speicher sind.

Dazu stelle ich mir eine analoge Funktion "DbLogReadingsVal(<device>,<reading>,<default>,<timestamp>[,<mode>])" vor.
(Name nur ein Vorschlag!)

Diese könnte einfach den Wert des readings zum Zeitpunkt "timestamp" zurückgeben.
Timestamp würde ich im stateFormat beispielsweise mit
$TIMESTAMP = strftime("%Y-%m-%d", ( localtime(time-60*60*24)) )
angeben, um das gestrige Datum zur selben Uhrzeit zu erhalten.
Da fast nie zum genauen Zeitpunkt (auf die Sekunde genau)  ein Wert abgespeichert wird,
suche ich mir mit folgendem SQL-Statement den Wert heraus, der meinem Timestamp am nächsten ist.

((Ich benutze hier bewußt 2 separate Selects mit Union, um den index nutzen zu können!))
select value from
(
  ( select *, TIMESTAMPDIFF(SECOND, '2018-04-10 09:45:00', timestamp) as diff
    from history where device='kitchen.hygro' and reading='temperature' and timestamp >= '2018-04-10 09:45:00'
    order by timestamp asc  limit 1
  )
  union
  ( select *, TIMESTAMPDIFF(SECOND, timestamp, '2018-04-10 09:45:00') as diff
    from history where  device='kitchen.hygro' and reading='temperature' and timestamp < '2018-04-10 09:45:00'
    order by timestamp desc limit 1
  )
) x
order by diff
limit 1;



Über den optionalen Parameter "mode" könnte man andere Modi für den vergleich schalten, wie "<=", "<", oder eben die Suche in beide Richtungen, wie in meinem Beispiel.

per
set <dblog> userCommand select [...]funktioniert das schon, da ich das aber oft benötige und das anschließende Auslesen des Readings bei gleichzeitigen Befehlen nicht immer sauber klappt, würde ich die oben genannte Funktion vorschlagen.

Ich denke/hoffe, dass dies doch eine eher einfache Funktion wird, leider kann ich jedoch die SQL-Befehle für Postgres nicht beisteuern.


Mein gewünschtes stateFormat -Attribut würden dann in etwa so aussehen:
{ "Aktuelle Temperatur ist ".ReadingsNum($name,"temperature","").
"Gestern war diese ".DbLogReadingsVal($name,"temperature","",
   strftime("%Y-%m-%d", ( localtime(time-60*60*24))))
}



sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

JoeALLb

Hallo Heiko,

dieser Aufruf aus DOIF heraus um 23:59:59 hat folgenden Eintrag in der Datenbank
mit der gestrigen Version von DbLog verursacht:
set sql addLog Gaszaehler:verbrauch_EnergyDay.* !useExcludes CN=z59

2018-04-10 23:59:59;Gaszaehler;KNX;addLog;state;verbrauch_EnergyDay: ;""

Als Reading wurde also "state" eingetragen und als value der readingname "verbrauch_EnergyDay" gefolgt von einem Doppelpunkt.
Der Regex ".*" scheint nicht ausgewertet worden zu sein.

Der nächste Aufruf eine sekunde später mit
set sql addLog Gaszaehler:verbrauch_EnergyDay.* 0 !useExcludes CN=z60
scheint funktioniert zu haben:
TIMESTAMP;DEVICE;TYPE;EVENT;READING;VALUE;UNIT;datatype
2018-04-11 00:00:00;Gaszaehler;KNX;addLog;verbrauch_EnergyDay;0;""
2018-04-11 00:00:00;Gaszaehler;KNX;addLog;verbrauch_EnergyDayLast;0;""


Hast Du dafür eine Erklärung?
Ich würde es aber heute auch nochmal mit der aktuellen Version von letzter nacht testen, habe das Update gerade gemacht.

sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

#709
Hallo Joe,

wird irgendwie nicht langweilig  ;D

Finde ich eine interessante Sache, würde sowas aber ins DbRep integriereren -> Auswertung, nonblocking etc.

Wenn du deine Versuche mit dbrep sqlCmd durchführen würdest wäre das super.

Allerdings habe ich versprochen mich erstmal um das https://forum.fhem.de/index.php/topic,86781.0.html zu kümmern. Dauert also ein bisschen.

Dein gerade geschildertes Problem kann ich mir momentan auch nicht erklären.

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

JoeALLb

Hallo Heiko,


Zitat von: DS_Starter am 11 April 2018, 10:12:45
wird irgendwie nicht langweilig  ;D
Ich weiß, sorry :-[

Zitat von: DS_Starter am 11 April 2018, 10:12:45
Finde ich eine interessante Sache, würde sowas aber ins DbRep integriereren -> Auswertung, nonblocking etc.
Prinzipiell habe ich dazu keine Präferenz, jedoch stelle ich mir "DbLogReadingsVal" eher als global verfügbar vor,
analog eben zu den bekannten und weit verbreiteten Funktionen ReadingsVal, ReadingsNum, sowie den neueren Erweiterungen dazu
(OldReadingsVal, OldReadingsNum, ...).
Ich denke, dass die Benutzung eben einfach und wenig erklärungsbedürftig ist, wenn es sich gleich bedienen lässt.

Ein DbRep-Device müsste ich im Vorfeld dazu immer definieren.... aber generell ist das dann für mich schon eher eine Nebensache!


Zitat von: DS_Starter am 11 April 2018, 10:12:45
Wenn du deine Versuche mit dbrep sqlCmd durchführen würdest wäre das super.

habe ich gemacht, wenn ich dort aber
attr <dev> widgetOverride sqlCmd:textField-long
setze, und meinen SQL-Code absetze, kommt es aus dem Status "running" nicht mehr zurück.
Auf der Datenbank selber läuft dann jedoch keine Abfrage.
wenn ich meinen SQL-Code als Einzeiler umformatiere, geht es.
sqlCmd scheit Zeilenwechsel nicht zu mögen. Das sollte aber vermutlich eher dort weiterdiskutiert werden ;-)

Das Verbose5 Log zeigt nur dies
2018.04.11 10:57:35 4: DbRep rep.DbLogReadingsVal - SQL execute: select value from
2018.04.11 10:57:36 4: DbRep rep.DbLogReadingsVal - SQL result: 16.10


anbei das list auf das Device, das den Status noch immer als "running" zeigt:

Internals:
   CFGFN     
   DATABASE   fhem
   DEF        sql
   LASTCMD    sqlCmd select value from
(
( select *, TIMESTAMPDIFF(SECOND, '2018-04-10 09:45:00', timestamp) as diff
from history where device='kitchen.hygro' and reading='temperature' and timestamp >= '2018-04-10 09:45:00'
order by timestamp asc limit 1
)
union
( select *, TIMESTAMPDIFF(SECOND, timestamp, '2018-04-10 09:45:00') as diff
from history where device='kitchen.hygro' and reading='temperature' and timestamp < '2018-04-10 09:45:00'
order by timestamp desc limit 1
)
) x
order by diff
limit 1;
   NAME       rep.DbLogReadingsVal
   NOTIFYDEV  global,rep.DbLogReadingsVal
   NR         495
   NTFY_ORDER 50-rep.DbLogReadingsVal
   ROLE       Client
   STATE      running
   TYPE       DbRep
   UTF8       0
   VERSION    7.15.0
   HELPER:
     DBLOGDEVICE sql
     MINTS      2017-12-07 09:19:12
     SQLHIST   
     CV:
       aggregation day
       aggsec     86400
       destr      2018-04-11
       dsstr      2017-12-07
       epoch_seconds_end 1523437055
       mestr      04
       msstr      12
       testr      10:57:35
       tsstr      09:19:12
       wdadd      345600
       yestr      2018
       ysstr      2017
     RUNNING_PID:
       abortFn    DbRep_ParseAborted
       arg        rep.DbLogReadingsVal|sqlCmd|2018-04-11|2018-04-11 10:57:35|select value from
(
( select *, TIMESTAMPDIFF(SECOND, '2018-04-10 09:45:00', timestamp) as diff
from history where device='kitchen.hygro' and reading='temperature' and timestamp >= '2018-04-10 09:45:00'
order by timestamp asc limit 1
)
union
( select *, TIMESTAMPDIFF(SECOND, timestamp, '2018-04-10 09:45:00') as diff
from history where device='kitchen.hygro' and reading='temperature' and timestamp < '2018-04-10 09:45:00'
order by timestamp desc limit 1
)
) x
order by diff
limit 1;
       bc_pid     168
       finishFn   sqlCmd_ParseDone
       fn         sqlCmd_DoParse
       loglevel   5
       pid        DEAD:26999
       telnet     telnetPort_127.0.0.1_59226
       terminated 1
       timeout    86400
       abortArg:
   Helper:
     DBLOG:
       state:
         sql:
           TIME       1523435242.76449
           VALUE      initialized
   READINGS:
     2018-04-11 10:57:35   state           running
   dbloghash:
     COLUMNS    field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
     CONFIGURATION /opt/fhem/db-mysql.conf
     DEF        /opt/fhem/db-mysql.conf .*:.*
     MODE       asynchronous
     MODEL      MYSQL
     NAME       sql
     NR         22
     NTFY_ORDER 50-sql
     PID        14820
     REGEXP     .*:.*
     STATE      connected (9)
     TYPE       DbLog
     UTF8       0
     VERSION    3.10.3
     dbconn     mysql:database=fhem;mysql_socket=/var/run/mysqld/mysqld.sock
     dbuser     fhemuser
     HELPER:
       COLSET     1
       DEVICECOL  64
       EVENTCOL   512
       OLDSTATE   connected
       READINGCOL 64
       TYPECOL    64
       UNITCOL    32
       VALUECOL   128
     Helper:
       DBLOG:
         CacheUsage:
           sql:
             TIME       1523437212.85604
             VALUE      124
         background_processing_time:
           sql:
             TIME       1523437213.07536
             VALUE      0.1381
         sql_processing_time:
           sql:
             TIME       1523437213.07536
             VALUE      0.1101
         userCommand:
           sql:
             TIME       1523435608.49739
             VALUE      select value from ( ( select *, TIMESTAMPDIFF(SECOND, '2018-04-10 09:45:00', timestamp) as diff from history where device='kitchen.hygro' and reading='temperature' and timestamp >= '2018-04-10 09:45:00' order by timestamp asc limit 1 ) union ( select *, TIMESTAMPDIFF(SECOND, timestamp, '2018-04-10 09:45:00') as diff from history where device='kitchen.hygro' and reading='temperature' and timestamp < '2018-04-10 09:45:00' order by timestamp desc limit 1 ) ) x order by diff limit 1
         userCommandResult:
           sql:
             TIME       1523435608.5275
             VALUE      16.10
     READINGS:
       2018-04-11 11:00:15   CacheUsage      9
       2018-04-11 11:00:12   NextSync        2018-04-11 11:01:12 or if CacheUsage 500 reached
       2018-04-11 11:00:13   background_processing_time 0.1381
       2018-04-09 14:43:58   lastCachefile   ./log/cache_sql_2018-03-22_10-39-17 import successful
       2018-04-11 11:00:13   sql_processing_time 0.1101
       2018-04-11 11:00:13   state           connected
       2018-04-11 10:33:28   userCommand     select value from ( ( select *, TIMESTAMPDIFF(SECOND, '2018-04-10 09:45:00', timestamp) as diff from history where device='kitchen.hygro' and reading='temperature' and timestamp >= '2018-04-10 09:45:00' order by timestamp asc limit 1 ) union ( select *, TIMESTAMPDIFF(SECOND, timestamp, '2018-04-10 09:45:00') as diff from history where device='kitchen.hygro' and reading='temperature' and timestamp < '2018-04-10 09:45:00' order by timestamp desc limit 1 ) ) x order by diff limit 1
       2018-04-11 10:33:28   userCommandResult 16.10
     cache:
       index      14144
Attributes:
   DbLogExclude .*
   aggregation day
   allowDeletion 1
   devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
   device     Gaszaehler
   event-on-change-reading state
   event-on-update-reading state,--DELETED_ROWS_CURRENT--
   reading    verbrauch_EnergyDay
   room       Manuell,System
   verbose    5
   widgetOverride sqlCmd:textField-long


sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

#711
Hallo Joe,

Zitat
Als Reading wurde also "state" eingetragen und als value der readingname "verbrauch_EnergyDay" gefolgt von einem Doppelpunkt.
Der Regex ".*" scheint nicht ausgewertet worden zu sein.

den Fehler habe ich im Rahmen der Fehlerbereinigung (https://forum.fhem.de/index.php/topic,86863.0.html) gefunden und erledigt/eingecheckt. Der war reingekommen als ich das Problem mit value "0" bereinigt hatte ... echt schlimm manchmal  :(

ZitatPrinzipiell habe ich dazu keine Präferenz, jedoch stelle ich mir "DbLogReadingsVal" eher als global verfügbar vor,

Ja, so hatte ich es auch verstanden. Als global verfügbares Kommando.
Ich möchte es deswegen im DbRep haben weil es eine Auswertung der DB darstellt und ich versuche die Funktionstrennung DbLog=Loggen und DbRep=Auswertung so strikt wie möglich umzusetzen. Es sind aus historischen Gründen ja bereits Funktionen im DbLog, die eigentlich ins DbRep gehören. Weil sie schon immer dort sind, will ich das auch nicht ändern.
Aber bei neuen Funktionalitäten versuche ich die Trennung so gut es geht einzuhalten.

Zitat
habe ich gemacht, wenn ich dort aber
Code: [Auswählen]

attr <dev> widgetOverride sqlCmd:textField-long

setze, und meinen SQL-Code absetze, kommt es aus dem Status "running" nicht mehr zurück.
Auf der Datenbank selber läuft dann jedoch keine Abfrage.
wenn ich meinen SQL-Code als Einzeiler umformatiere, geht es.
Muss ich checken/abändern. Ja, passt eher zu dem anderen Thread  ;)

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

DS_Starter

Hallo Joe,

habe soeben DbRep V7.15.1 eingecheckt.
Die Version akzeptiert nun das textlong-Widget für sqlCmd.

Kannst du morgen dann weiter deine SQL testen.

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

JoeALLb

Hallo Heiko,

danke!!
Zitat von: DS_Starter am 11 April 2018, 10:12:45
Wenn du deine Versuche mit dbrep sqlCmd durchführen würdest wäre das super.
Nur zur info, aber mit dbrep funktioniert es nicht!


Wenn ich folgendes als stateFormat eintrage, funktioniert es mit nur mit dem dblog-device

{
fhem("set sql userCommand select value from ( ( select *, TIMESTAMPDIFF(SECOND, '". strftime("%Y-%m-%d %H:%M", ( localtime(time-60*60*24)))."', timestamp) as diff from history where device='kitchen.hygro' and reading='temperature' and timestamp >= '". strftime("%Y-%m-%d %H:%M", ( localtime(time-60*60*24)))."' order by timestamp asc  limit 1 ) union ( select *, TIMESTAMPDIFF(SECOND, timestamp, '". strftime("%Y-%m-%d %H:%M", ( localtime(time-60*60*24)))."') as diff from history where  device='kitchen.hygro' and reading='temperature' and timestamp < '". strftime("%Y-%m-%d %H:%M", ( localtime(time-60*60*24)))."' order by timestamp desc limit 1 ) ) x order by diff limit 1");




sprintf "T: %4.1f° ".
                   "(%4.1f°) ".
                      "H: %d%% ".
                          "A: %3.1fg ".
                                "D: %3.0f°",
  ReadingsNum($name,"temperature-get",undef),
  ReadingsVal("sql","userCommandResult",undef),
  ReadingsNum($name,"hygrorel-get",undef),
  ReadingsNum($name,"hygroAbs-get",undef),
  ReadingsNum($name,"taupunkt-get",undef)
}


aber mit dbrep (vermutlich wegen nonblocking) nicht!

Diese Abfrage
ReadingsNum("rep","SqlResultRow_1",undef)
ist direkt nach dem Absetzen des Befehls immer "undef", und wird erst später gefüllt.
Bei DbLog funktioniert das oben genannte Beispiel.

sG Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

Ja genau, Dbrep arbeitet non-blocking.
Speziell für so ein Userinterface oder eine API wie du oben geschrieben hattest müsste ich die Voraussetzungen schaffen und habe auch eine Idee dazu. Dauert halt etwas ...

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

DS_Starter

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

JoeALLb

Das ist für meine Anwendung nicht so passend, da ich danach dann den State nochmal anpassen/aktualisieren müsste.
Wenn ich alles in stateFormat zusammenbaue, wird dieser nur einmal aktualisiert.

Aber danke für den Hinweis!
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

JoeALLb

Hallo Heiko,

sehe aktuell dies hier öfter im Log?

PERL WARNING: Use of uninitialized value $out_value in concatenation (.) or string at ./FHEM/93_DbLog.pm line 2888.
sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

Hallo Joe,

diese Warnung hat irgendetwas mit der SVG-Generierung zu tun.
Ich bin momentan nicht dahinter gekommen in welcher Situation genau das $out_value nicht vorhanden ist.
Dieser Wert ist in ziemlichen Untiefen der DbLog_Get-Funktion versteckt. Allerdings ist diese Warnung bei mir noch nie augetreten. Möglicherweise tritt sie nur in einer bestimmten Konstellation auf.

Vielleicht bekommst du etwas genauer heraus bei welchem SVG-Aufruf die Warung kommt damit man daraus evtl. etwas ableiten kann.

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

JoeALLb

Hallo Heiko,

ja, es war wenn im Plot "undef" als Wert genutzt wurde im eine Linie unterbrechen zu lassen...

sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270