DbLog - fehlende records in current

Begonnen von HCS, 03 Dezember 2017, 21:57:52

Vorheriges Thema - Nächstes Thema

HCS

Hi,

hat jemand eine Idee, woran es liegen könnte, dass ich für meine Max events keine Datensätze in current habe. In history sind sie drin

Kleiner gefilterter Auszug aus history:

2017-12-03 14:11:03 Max0Bedroom MAX valveposition: 12 valveposition 12 %
2017-12-03 14:11:05 Max0LivingRoom MAX valveposition: 13 valveposition 13 %
2017-12-03 14:11:18 Max0LivingRoom MAX valveposition: 13 valveposition 13 %
2017-12-03 14:13:03 Max0Bedroom MAX valveposition: 0 valveposition 0 %
2017-12-03 14:13:20 Max0LivingRoom MAX valveposition: 6 valveposition 6 %
2017-12-03 14:18:41 Max1LivingRoom MAX valveposition: 7 valveposition 7 %
2017-12-03 14:21:29 Max0LivingRoom MAX valveposition: 7 valveposition 7 %
2017-12-03 14:23:31 Max0LivingRoom MAX valveposition: 8 valveposition 8 %


In current sind meine ganzen LaCrosse, EC3000, usw. aber keiner der Max-Thermostate und somit fehlen sie dann in der Auswahl im SVG-Editor.
DB ist SQLite.
Nach dem leeren der current kamen alle wieder rein, nur die Max fehlen hartnäckig.

HCS

Hier noch, was ich mit verbose 4 von meinen Max sehe:


2017.12.03 22:30:29 4: DbLog commonLog -> ################################################################
2017.12.03 22:30:29 4: DbLog commonLog -> ###              start of new Logcycle                       ###
2017.12.03 22:30:29 4: DbLog commonLog -> ################################################################
2017.12.03 22:30:29 4: DbLog commonLog -> amount of events received: 7 for device: Max0LivingRoom
2017.12.03 22:30:29 4: DbLog commonLog -> check Device: Max0LivingRoom , Event: mode: manual
2017.12.03 22:30:29 4: DbLog commonLog -> check Device: Max0LivingRoom , Event: battery: ok
2017.12.03 22:30:29 4: DbLog commonLog -> check Device: Max0LivingRoom , Event: desiredTemperature: 16.5
2017.12.03 22:30:29 4: DbLog commonLog -> check Device: Max0LivingRoom , Event: temperature: 16.5
2017.12.03 22:30:29 4: DbLog commonLog -> check Device: Max0LivingRoom , Event: valveposition: 9
2017.12.03 22:30:29 4: DbLog commonLog -> added event - Timestamp: 2017-12-03 22:30:29, Device: Max0LivingRoom, Type: MAX, Event: valveposition: 9, Reading: valveposition, Value: 9, Unit: %
2017.12.03 22:30:29 4: DbLog commonLog -> check Device: Max0LivingRoom , Event: state: 16.5 °C
2017.12.03 22:30:29 4: DbLog commonLog -> check Device: Max0LivingRoom , Event: RSSI: -55

DS_Starter

#2
Hi HCS,

ich kenne die MAX nicht, aber es scheint das Eventsplitting nicht mehr zu funktionieren.
Dafür kann es m.M: nach zwei Fehlerquellen geben, einmal im DbLog die Splitting-Funktion. Die ist aber unverändert.
Zweite Möglichkeit wäre dass im Max-Modul die DbLog-Splitting-Funktion eingebaut wurde, die das Splitting nicht richtig macht.
Dblog werden für Max keine Readings, Value übergeben, außer für den Satz:

check Device: Max0LivingRoom , Event: valveposition: 9
added event - Timestamp: 2017-12-03 22:30:29, Device: Max0LivingRoom, Type: MAX, Event: valveposition: 9, Reading: valveposition, Value: 9, Unit: %


Zwischen dem "check" und dem "added event" liegt genau die Splitting funktion, die auch zur DbLog_splitFn des Quellmoduls verzweigt sofern es sie gibt.
Ich tippe mal stark in diese Richtung mal auf die Schnelle.

EDIT: der Änderungsstand der module ist auch schon alt wie ich gesehen habe, kann also auch nicht sein. Bleibt eigentlich nur dass der Regex im DEF zuschlägt.


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

HCS

Zitat von: DS_Starter am 03 Dezember 2017, 22:53:36
Bleibt eigentlich nur dass der Regex im DEF zuschlägt.
Kann eigentlich nicht sein:
defmod commonLog DbLog ./dbLog/commonLog.conf .*:.*
attr commonLog DbLogSelectionMode Include
attr commonLog DbLogType Current/History
attr commonLog asyncMode 1
attr commonLog cacheLimit 500
attr commonLog disable 0
attr commonLog group CommonLog
attr commonLog room System
attr commonLog syncInterval 60
attr commonLog verbose 3


Alle MAXe haben ein
attr MaxSonstwas DbLogInclude valveposition
was auch funktioniert, da ich die Daten ja in history bekomme.


10_MAX.pm hat eine DbLog_splitFn


$hash->{DbLog_splitFn} = "MAX_DbLog_splitFn";
.
.
.

sub
MAX_DbLog_splitFn($)
{
  my ($event) = @_;
  my ($reading, $value, $unit) = "";

  my @parts = split(/ /,$event);
  $reading = shift @parts;
  $reading =~ tr/://d;
  $value = $parts[0];
  $value = $parts[1] if(defined($value) && lc($value) =~ m/auto/);
  $unit = "\xB0C" if(lc($reading) =~ m/temp/);
  $unit = "%" if(lc($reading) =~ m/valve/);
  return ($reading, $value, $unit);
}


DS_Starter

ZitatAlle MAXe haben ein
attr MaxSonstwas DbLogInclude valveposition

Dann gehen aber nur Events durch, deren Reading = "valveposition" ist. Und das deckt sich auch mit dem Log aus deinem 2. Beitrag.
Willst du alle Max-Sätze haben, musst du das attr DbLogInclude allgemeiner halten.

Das hängt damit zusammen dass du dein DbLog auf SelectionMode "Include" umgestellt hast, dann wird die Regex im DEF nicht beachtet.
Auszug aus commandref:
Zitat
Include: Es wird nur das geloggt was ueber die RegExp in DbLogInclude eingeschlossen wird.
Das Attribut DbLogExclude wird in diesem Fall ebenso wenig beruecksichtigt wie die Regex im DEF.

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

HCS

Zitat von: DS_Starter am 04 Dezember 2017, 13:21:34
Dann gehen aber nur Events durch, deren Reading = "valveposition" ist. Und das deckt sich auch mit dem Log aus deinem 2. Beitrag.

Ja, das ist genau das, was ich will. Von den MAX nur die valveposition.
Von LaCrosse usw. andere readings. Das funktioniert ja auch schon ewig lange tadellos.
Nur die MAX valveposition, die ich gestern mit aufgeommen habe, gehen nicht, also in der Form, dass sie nur in history aber nicht in current ankommen.

DS_Starter

ZitatNur die MAX valveposition, die ich gestern mit aufgeommen habe, gehen nicht, also in der Form, dass sie nur in history aber nicht in current ankommen.

Es gibt aber keine Regex-Unterscheidung zwischen history und current.

Wenn die Einträge ankommen sollen darf dieses Log:


2017.12.03 22:30:29 4: DbLog commonLog -> ################################################################
2017.12.03 22:30:29 4: DbLog commonLog -> ###              start of new Logcycle                       ###
2017.12.03 22:30:29 4: DbLog commonLog -> ################################################################
2017.12.03 22:30:29 4: DbLog commonLog -> amount of events received: 7 for device: Max0LivingRoom
2017.12.03 22:30:29 4: DbLog commonLog -> check Device: Max0LivingRoom , Event: mode: manual
2017.12.03 22:30:29 4: DbLog commonLog -> check Device: Max0LivingRoom , Event: battery: ok
2017.12.03 22:30:29 4: DbLog commonLog -> check Device: Max0LivingRoom , Event: desiredTemperature: 16.5
2017.12.03 22:30:29 4: DbLog commonLog -> check Device: Max0LivingRoom , Event: temperature: 16.5
2017.12.03 22:30:29 4: DbLog commonLog -> check Device: Max0LivingRoom , Event: valveposition: 9
2017.12.03 22:30:29 4: DbLog commonLog -> added event - Timestamp: 2017-12-03 22:30:29, Device: Max0LivingRoom, Type: MAX, Event: valveposition: 9, Reading: valveposition, Value: 9, Unit: %
2017.12.03 22:30:29 4: DbLog commonLog -> check Device: Max0LivingRoom , Event: state: 16.5 °C
2017.12.03 22:30:29 4: DbLog commonLog -> check Device: Max0LivingRoom , Event: RSSI: -55


nicht nur den Event "valveposition" adden, sondern auch die anderen. Wenn kein add event zu sehen ist, wurde der Event gefiltert.
Die Daten dürfen auch garnicht in der history erscheinen bei dieser Konstellation.

Sobald MAx-Events aufgetreten sind, kannst du ja mal den Cache mit "set ... listCache" anzeigen.
Da sieht man ja was zur Verarbeitung beim nächsten Sync ansteht.
EInen PK hast du dir nicht zufällig auf der current gesetzt ?
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

HCS

Zitat von: DS_Starter am 04 Dezember 2017, 13:41:02
EInen PK hast du dir nicht zufällig auf der current gesetzt ?
Nein, die current hat keinerlei index

Es kamen valveposition events.

in der history-Tabelle ist der Datensatz aufgetaucht (die Liste ist gefiltert auf einige MAX, die restlichen knapp 3 Mio. Datensätze willst Du sicher nicht sehen):
2017-12-04 17:31:30   Max0LivingRoom   MAX   valveposition: 12   valveposition   12   %
2017-12-04 17:30:42   Max1LivingRoom   MAX   valveposition: 19   valveposition   19   %
2017-12-04 17:29:55   MaxCellar   MAX   valveposition: 0   valveposition   0   %
2017-12-04 17:29:28   Max0LivingRoom   MAX   valveposition: 11   valveposition   11   %
2017-12-04 17:27:43   Max1LivingRoom   MAX   valveposition: 2   valveposition   2   %

set ... listCache führt ihn auch auf:
16994 => 2017-12-04 17:27:29|WS1600|LACROSSE|windSpeedKMH: 7.92|windSpeedKMH|7.92|
16995 => 2017-12-04 17:27:29|EC3000_7AE4|EC3000|power: 0.2|power|0.2|
16996 => 2017-12-04 17:27:29|EC3000_9EE4|EC3000|power: 1.6|power|1.6|
16997 => 2017-12-04 17:27:29|EC3000_HMS|EC3000|power: 9.6|power|9.6|
16998 => 2017-12-04 17:27:31|EC3000_7E43|EC3000|power: 0.3|power|0.3|
16999 => 2017-12-04 17:27:33|WS1600|LACROSSE|windSpeedKMH: 7.56|windSpeedKMH|7.56|
17000 => 2017-12-04 17:27:34|EC3000_9EE4|EC3000|power: 1.6|power|1.6|
17001 => 2017-12-04 17:27:34|EC3000_HMS|EC3000|power: 7.2|power|7.2|
17002 => 2017-12-04 17:27:36|EC3000_7E43|EC3000|power: 0.3|power|0.3|
17003 => 2017-12-04 17:27:38|WS1600|LACROSSE|windSpeedKMH: 7.92|windSpeedKMH|7.92|
17004 => 2017-12-04 17:27:38|WS1600|LACROSSE|windGustKMH: 12.24|windGustKMH|12.24|
17005 => 2017-12-04 17:27:39|EC3000_9EE4|EC3000|power: 1.6|power|1.6|
17006 => 2017-12-04 17:27:39|EC3000_HMS|EC3000|power: 8.5|power|8.5|
17007 => 2017-12-04 17:27:41|EC3000_7E43|EC3000|power: 0.3|power|0.3|
17008 => 2017-12-04 17:27:43|Max1LivingRoom|MAX|valveposition: 2|valveposition|2|%
17009 => 2017-12-04 17:27:44|EC3000_7CA8|EC3000|consumption: 57.152|consumption|57.152|
17010 => 2017-12-04 17:27:44|EC3000_7CA8|EC3000|power: 1.1|power|1.1|
17011 => 2017-12-04 17:27:44|EC3000_9EE4|EC3000|power: 1.6|power|1.6|
17012 => 2017-12-04 17:27:44|EC3000_HMS|EC3000|power: 6.7|power|6.7|

Aber in der current kommt er nicht an
Die current hat aber 62 Datensätze mit aktuellen timestamps, nur keinen von MAX


Showing rows 0 - 61, Total: 62 (Query took 0.0038 sec)
SELECT * FROM "current" LIMIT 0, 100
TIMESTAMP DEVICE TYPE EVENT READING VALUE UNIT
Edit Delete 2017-12-04 17:55:29 EC3000_7AE4 EC3000 power: 0.2 power 0.2
Edit Delete 2017-12-04 17:55:29 EC3000_9EE4 EC3000 power: 1.6 power 1.6
Edit Delete 2017-12-04 17:51:29 WS1600 LACROSSE temperature: 1.1 temperature 1.1 °C
Edit Delete 2017-12-04 17:55:19 EC3000_HCS EC3000 power: 4 power 4
Edit Delete 2017-12-04 17:55:26 EC3000_7E43 EC3000 power: 0.3 power 0.3
Edit Delete 2017-12-04 17:55:29 EC3000_7AE4 EC3000 power: 0.2 power 0.2
Edit Delete 2017-12-04 17:55:23 WS1600 LACROSSE windSpeedKMH: 13.68 windSpeedKMH 13.68
Edit Delete 2017-12-04 17:55:29 EC3000_9EE4 EC3000 power: 1.6 power 1.6
Edit Delete 2017-12-04 17:55:24 EC3000_HMS EC3000 power: 7 power 7
Edit Delete 2017-12-04 17:55:23 WS1600 LACROSSE windSpeedKMH: 13.68 windSpeedKMH 13.68
Edit Delete 2017-12-04 17:55:23 WS1600 LACROSSE windGustKMH: 19.8 windGustKMH 19.8
Edit Delete 2017-12-04 17:55:29 EC3000_7AE4 EC3000 power: 0.2 power 0.2
Edit Delete 2017-12-04 17:55:29 EC3000_9EE4 EC3000 power: 1.6 power 1.6
Edit Delete 2017-12-04 17:55:24 EC3000_HMS EC3000 power: 7 power 7
Edit Delete 2017-12-04 17:55:26 EC3000_7E43 EC3000 power: 0.3 power 0.3
Edit Delete 2017-12-04 17:55:23 WS1600 LACROSSE windSpeedKMH: 13.68 windSpeedKMH 13.68
Edit Delete 2017-12-04 17:55:23 WS1600 LACROSSE windGustKMH: 19.8 windGustKMH 19.8
Edit Delete 2017-12-04 17:55:29 EC3000_7AE4 EC3000 power: 0.2 power 0.2
Edit Delete 2017-12-04 17:55:29 EC3000_9EE4 EC3000 power: 1.6 power 1.6
Edit Delete 2017-12-04 17:55:24 EC3000_HMS EC3000 power: 7 power 7
Edit Delete 2017-12-04 17:55:26 EC3000_7E43 EC3000 power: 0.3 power 0.3
Edit Delete 2017-12-04 17:55:29 EC3000_7AE4 EC3000 power: 0.2 power 0.2
Edit Delete 2017-12-04 17:55:29 EC3000_9EE4 EC3000 power: 1.6 power 1.6
Edit Delete 2017-12-04 17:55:24 EC3000_HMS EC3000 power: 7 power 7
Edit Delete 2017-12-04 17:55:26 EC3000_7E43 EC3000 power: 0.3 power 0.3
Edit Delete 2017-12-04 17:51:29 WS1600 LACROSSE temperature: 1.1 temperature 1.1 °C
Edit Delete 2017-12-04 17:55:23 WS1600 LACROSSE windSpeedKMH: 13.68 windSpeedKMH 13.68
Edit Delete 2017-12-04 17:55:29 EC3000_7AE4 EC3000 power: 0.2 power 0.2
Edit Delete 2017-12-04 17:55:29 EC3000_9EE4 EC3000 power: 1.6 power 1.6
Edit Delete 2017-12-04 17:55:24 EC3000_HMS EC3000 power: 7 power 7
Edit Delete 2017-12-04 17:55:29 EC3000_7AE4 EC3000 power: 0.2 power 0.2
Edit Delete 2017-12-04 17:55:29 EC3000_9EE4 EC3000 power: 1.6 power 1.6
Edit Delete 2017-12-04 17:55:24 EC3000_HMS EC3000 power: 7 power 7
Edit Delete 2017-12-04 17:55:19 EC3000_HCS EC3000 power: 4 power 4
Edit Delete 2017-12-04 17:51:29 WS1600 LACROSSE temperature: 1.1 temperature 1.1 °C
Edit Delete 2017-12-04 17:55:23 WS1600 LACROSSE windSpeedKMH: 13.68 windSpeedKMH 13.68
Edit Delete 2017-12-04 17:55:29 EC3000_7AE4 EC3000 power: 0.2 power 0.2
Edit Delete 2017-12-04 17:55:29 EC3000_9EE4 EC3000 power: 1.6 power 1.6
Edit Delete 2017-12-04 17:55:24 EC3000_HMS EC3000 power: 7 power 7
Edit Delete 2017-12-04 17:51:29 WS1600 LACROSSE temperature: 1.1 temperature 1.1 °C
Edit Delete 2017-12-04 17:55:29 EC3000_9EE4 EC3000 power: 1.6 power 1.6
Edit Delete 2017-12-04 17:55:24 EC3000_HMS EC3000 power: 7 power 7
Edit Delete 2017-12-04 17:51:29 WS1600 LACROSSE temperature: 1.1 temperature 1.1 °C
Edit Delete 2017-12-04 17:55:29 EC3000_7AE4 EC3000 power: 0.2 power 0.2
Edit Delete 2017-12-04 17:55:29 EC3000_9EE4 EC3000 power: 1.6 power 1.6
Edit Delete 2017-12-04 17:51:29 WS1600 LACROSSE temperature: 1.1 temperature 1.1 °C
Edit Delete 2017-12-04 17:55:23 WS1600 LACROSSE windSpeedKMH: 13.68 windSpeedKMH 13.68
Edit Delete 2017-12-04 17:55:24 EC3000_HMS EC3000 power: 7 power 7
Edit Delete 2017-12-04 17:55:26 EC3000_7E43 EC3000 power: 0.3 power 0.3
Edit Delete 2017-12-04 17:54:07 EC3000_7CA8 EC3000 consumption: 57.152 consumption 57.152
Edit Delete 2017-12-04 17:54:07 EC3000_7CA8 EC3000 power: 0.2 power 0.2
Edit Delete 2017-12-04 17:51:29 WS1600 LACROSSE temperature: 1.1 temperature 1.1 °C
Edit Delete 2017-12-04 17:55:23 WS1600 LACROSSE windSpeedKMH: 13.68 windSpeedKMH 13.68
Edit Delete 2017-12-04 17:55:24 EC3000_HMS EC3000 power: 7 power 7
Edit Delete 2017-12-04 17:55:23 WS1600 LACROSSE windSpeedKMH: 13.68 windSpeedKMH 13.68
Edit Delete 2017-12-04 17:55:23 WS1600 LACROSSE windGustKMH: 19.8 windGustKMH 19.8
Edit Delete 2017-12-04 17:55:29 EC3000_7AE4 EC3000 power: 0.2 power 0.2
Edit Delete 2017-12-04 17:55:29 EC3000_9EE4 EC3000 power: 1.6 power 1.6
Edit Delete 2017-12-04 17:55:24 EC3000_HMS EC3000 power: 7 power 7
Edit Delete 2017-12-04 17:55:26 EC3000_7E43 EC3000 power: 0.3 power 0.3
Edit Delete 2017-12-04 17:55:23 WS1600 LACROSSE windSpeedKMH: 13.68 windSpeedKMH 13.68
Edit Delete 2017-12-04 17:55:29 EC3000_7AE4 EC3000 power: 0.2 power 0.2


Ist mir ein Rätsel, warum das ausgerechnet mit MAX nicht geht, alles andere was ich drin haben will geht.

DS_Starter

#8
ZitatIst mir ein Rätsel, warum das ausgerechnet mit MAX nicht geht, alles andere was ich drin haben will geht.
Kann es mir auch nicht erklären ... riecht nach Magie  ;)

Du kannst mal die aktuelle Entwicklungsversion V3.0.0 verwenden, die ich zum Test hier bereitgestellt habe:
https://forum.fhem.de/index.php/topic,65860.msg725367.html#msg725367

Funktional hat sich nichts geändert, aber bei der V habe ich auf jeden Fall den Output im Logfile noch etwas aufgebohrt (verbose 4/5). Vielleicht hilft es das Problem zu erkennen.
Es gibt dort auch auch ein attr autocommit mit dem man das autocommit-Verhalten der DB steuern kann. Wird zwar normalerweise nicht benötigt, aber genau für solche Fälle wie diesen hier habe ich es eingebaut damit es ändern 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

HCS

Zitat von: DS_Starter am 04 Dezember 2017, 18:25:38
Kann es mir auch nicht erklären ... riecht nach Magie  ;)
Das kenne ich nur zu gut ...

Zitat von: DS_Starter am 04 Dezember 2017, 18:25:38
Du kannst mal die aktuelle Entwicklungsversion V3.0.0 verwenden, die ich zum Test hier bereitgestellt habe:
https://forum.fhem.de/index.php/topic,65860.msg725367.html#msg725367
Kann ich mal probieren.

Vermute ich richtig, dass es, da es im cache gelistst ist, irgendwo auf dem Weg von da in die Datenbank klemmt?

DS_Starter

Zitatermute ich richtig, dass es, da es im cache gelistst ist, irgendwo auf dem Weg von da in die Datenbank klemmt?
Ja, ab diesem Zeitpunkt kommt nur noch der Schreibzyklus in die DB. Klemmen ist vllt. der falsche Ausdruck. Ich vermute dass aus irgendwelchen Gründen deine DB diesen Datensatz nicht committed und er deswegen nicht persistiert wird.
Ich hatte an Feldlängen gedacht, aber soviel ich weiß ist SQLite diesbezüglich unempfindlich. Dennoch kannst da ja mal prüfen ob die Feldlängen in der current denen der history entsprechen.
Das Autocommit hatte ich auch im Verdacht, aber da es nur um dieses spezielle Device/Reading geht kann es daran auch nicht liegen.
Bin da momentan echt reatlos ....
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

HCS

Die Feldlängen hatte ich auch schon im Verdacht, aber die sind identisch.

Beide so:

TIMESTAMP TIMESTAMP No None No
DEVICE    varchar(32) No None No
TYPE varchar(32) No None No
EVENT varchar(512) No None No
READING varchar(32) No None No
VALUE varchar(32) No None No
UNIT varchar(32) No None No


Ich bekomme auch einen Datensatz mit den entsprechenden Daten von Hand angelegt:
INSERT INTO current (TIMESTAMP, DEVICE, TYPE, EVENT, READING, VALUE, UNIT) VALUES ("2017-12-04 21:02:05","Max0Bedroom","MAX","valveposition: 10","valveposition","10","%")
legt den Datensatz korrekt an

Mit 3.0.0 keine Änderung im Verhalten

Ich glaube ich muss das auf dem Testsystem nachbauen und dann mit dem Debugger ran
Das wird mir langsam zu heiß auf produktiv.

DS_Starter

ZitatMit 3.0.0 keine Änderung im Verhalten
Naja , ich dachte eher an evtl. mehr Infos mit verbose 4/5. Nichts zu sehen ?

Echt komisch wieso ausgerechnet dieser Datensatz nicht mag. An dem ist ja auch nichts außergwöhnliches ....
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

HCS

Zitat von: DS_Starter am 04 Dezember 2017, 21:50:50
Naja , ich dachte eher an evtl. mehr Infos mit verbose 4/5. Nichts zu sehen ?
Damit sehe ich eine gefühlte Million "start of new Logcycle" aber leider nichts, das helfen würde.

Lass es mich mal auf der Testumgebung nachbauen (hoffentlich funktioniert es da dann auch nicht), dann melde ich mich wieder hier.

DS_Starter

Damit du nur das Wichtigste siehst, gehe bitte so vor:

* setze verbose 4
* damit du nur die Datenbankprozesszyklen siehst (und nicht die Logcycles) , das attr verbose4Devs auf ein Device was es bei dir nicht gibt, z.b. "ddddd".

Dann tauchen nur noch die DB-Zyklen auf:

Zitat
2017.12.04 22:41:53.792 4: DbLog LogSQLITE -> ################################################################
2017.12.04 22:41:53.793 4: DbLog LogSQLITE -> ###      New database processing cycle - asynchronous        ###
2017.12.04 22:41:53.794 4: DbLog LogSQLITE -> ################################################################
2017.12.04 22:41:53.795 4: DbLog LogSQLITE -> MemCache contains 11 entries to process
2017.12.04 22:41:53.795 4: DbLog LogSQLITE -> DbLogType is: Current/History
2017.12.04 22:41:53.820 4: DbLog LogSQLITE -> AutoCommit mode: ON
2017.12.04 22:41:53.836 4: DbLog LogSQLITE -> 11 of 11 events inserted into table history
2017.12.04 22:41:53.840 4: DbLog LogSQLITE -> insert history committed
2017.12.04 22:41:53.845 4: DbLog LogSQLITE -> 11 of 11 events updated in table current
2017.12.04 22:41:53.848 4: DbLog LogSQLITE -> insert or update current committed
2017.12.04 22:42:38.810 4: DbLog LogSQLITE -> ################################################################
2017.12.04 22:42:38.812 4: DbLog LogSQLITE -> ###      New database processing cycle - asynchronous        ###
2017.12.04 22:42:38.813 4: DbLog LogSQLITE -> ################################################################
2017.12.04 22:42:38.814 4: DbLog LogSQLITE -> MemCache contains 48 entries to process
2017.12.04 22:42:38.814 4: DbLog LogSQLITE -> DbLogType is: Current/History
2017.12.04 22:42:38.849 4: DbLog LogSQLITE -> AutoCommit mode: ON
2017.12.04 22:42:38.867 4: DbLog LogSQLITE -> 48 of 48 events inserted into table history
2017.12.04 22:42:38.872 4: DbLog LogSQLITE -> insert history committed
2017.12.04 22:42:38.877 4: DbLog LogSQLITE -> Failed to update in current, try to insert - TS: 2017-12-04 22:42:06, Device: SMA_Energymeter, Reading: Einspeisung_Wirkleistung, Status = 0
2017.12.04 22:42:38.878 4: DbLog LogSQLITE -> Failed to update in current, try to insert - TS: 2017-12-04 22:42:34, Device: Einspeisung, Reading: state, Status = 0
2017.12.04 22:42:38.879 4: DbLog LogSQLITE -> Failed to update in current, try to insert - TS: 2017-12-04 22:42:34, Device: recalc_Einspeisung, Reading: state, Status = 0
2017.12.04 22:42:38.880 4: DbLog LogSQLITE -> Failed to update in current, try to insert - TS: 2017-12-04 22:42:34, Device: Einspeisung, Reading: state, Status = 0
2017.12.04 22:42:38.880 4: DbLog LogSQLITE -> Failed to update in current, try to insert - TS: 2017-12-04 22:42:34, Device: Verguetung, Reading: state, Status = 0
2017.12.04 22:42:38.881 4: DbLog LogSQLITE -> Failed to update in current, try to insert - TS: 2017-12-04 22:42:34, Device: Verguetung, Reading: state, Status = 0
2017.12.04 22:42:38.882 4: DbLog LogSQLITE -> 6 of 6 events inserted into table current
2017.12.04 22:42:38.884 4: DbLog LogSQLITE -> insert or update current committed

Wenn du sehen willst welche Datensätze prozessiert werden, schalte verbose 5 ein.

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