NEWS
[Aufruf] Dringender Test sql 1.6.4
-
Hallo Ingo!
Danke für die Ausführung, ja, habe schon gesehen dass Flot der Übeltäter in Vis ist da es die Fehler von SQL anzeigt.
Die Fehlerursache sonst scheinen 'null'-Werte in den Zahlenreihen zu sein. Ich habe die Datenbank durchforstet und gesehen dass diese Null-Werte vermehrt (bei mehreren Datenwerten) seit 5.Februar auftauchen, dem Tag als ich den SQL-Adapter upgedated habe!
vorher ist kein einziger NULL-Wert geloggt worden!
Da ich sonst nichts geändert habe (scripts oder Einstellungen welche Werte wie geloggt werden) ist für mich SQL der Übeltäter da vorher seit Monaten kein 'null' als Zahlenwert aufgezeichnet wurde!
Flot motzt genau bei den Datenreihen welche diese 'nulls' enthalten.
-
Nochwas Ingo!
Beim Schnüffeln in den SQL-Daten in der Datenbank fand ich in den letzten Tagen auch Werte die ein 'from' von sql.0 haben!!
Wie kann das sein? sql sollte doch nie selbst daten erzeugeugen? Das Feld gehörte zu den Heizungsdaten die vom KM200 ausgelesen werden. sql kann da nur auf Änderung prüfen…
p.s.: Nachdem ich die NULL-Werte (insgesamt >600 und alle seit 5.2.2018) aus der Datenbank mittels SQL gelöscht habe meckert Flot nicht mehr... und ich kann Vis wieder betreiben! Hoffe es werden keinen neuen Werte geloggt ...
-
Ich glaube die Null Werte die geschrieben werden, erscheinen immer dann, wenn man den SQL Adapter neu startet…
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk
-
@fsjoke:Nochwas Ingo!
Beim Schnüffeln in den SQL-Daten in der Datenbank fand ich in den letzten Tagen auch Werte die ein 'from' von sql.0 haben!!
Wie kann das sein? sql sollte doch nie selbst daten erzeugeugen? Das Feld gehörte zu den Heizungsdaten die vom KM200 ausgelesen werden. sql kann da nur auf Änderung prüfen…
p.s.: Nachdem ich die NULL-Werte (insgesamt >600 und alle seit 5.2.2018) aus der Datenbank mittels SQL gelöscht habe meckert Flot nicht mehr... und ich kann Vis wieder betreiben! Hoffe es werden keinen neuen Werte geloggt ... `
Hallo,
die NULL-Werte und die Dopplung der Werte scheinen Absicht zu sein. Würde mir auch wünschen, dass das Konfigurierbar ist.
-
Ich weiß nicht ob das jetzt an der neuen Version liegt:
! ````
host.ioBroker-Cubie 2018-02-10 21:36:46.529 error instance system.adapter.sql.0 terminated with code 6 (uncaught exception)
Caught 2018-02-10 21:36:46.527 error by controller[2]: at readableAddChunk (_stream_readable.js:176:18)
Caught 2018-02-10 21:36:46.526 error by controller[2]: at Socket.emit (events.js:188:7)
Caught 2018-02-10 21:36:46.525 error by controller[2]: at emitOne (events.js:96:13)
Caught 2018-02-10 21:36:46.524 error by controller[2]: at Socket. (/opt/iobroker/node_modules/redis/index.js:274:27)
Caught 2018-02-10 21:36:46.503 error by controller[2]: at JavascriptRedisParser.execute (/opt/iobroker/node_modules/redis-parser/lib/parser.js:574:12)
Caught 2018-02-10 21:36:46.502 error by controller[2]: at JavascriptRedisParser.returnReply (/opt/iobroker/node_modules/redis/index.js:192:18)
Caught 2018-02-10 21:36:46.501 error by controller[2]: at RedisClient.return_reply (/opt/iobroker/node_modules/redis/index.js:824:9)
Caught 2018-02-10 21:36:46.500 error by controller[2]: at normal_reply (/opt/iobroker/node_modules/redis/index.js:726:21)
Caught 2018-02-10 21:36:46.499 error by controller[2]: at Command.callback (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:287:17)
Caught 2018-02-10 21:36:46.498 error by controller[2]: at /opt/iobroker/node_modules/iobroker.sql/main.js:1292:140
Caught 2018-02-10 21:36:46.497 error by controller[2]: TypeError: Cannot read property 'val' of null
Caught 2018-02-10 21:36:46.496 error by controller[1]: at readableAddChunk (_stream_readable.js:176:18)
Caught 2018-02-10 21:36:46.495 error by controller[1]: at Socket.emit (events.js:188:7)
Caught 2018-02-10 21:36:46.494 error by controller[1]: at emitOne (events.js:96:13)
Caught 2018-02-10 21:36:46.493 error by controller[1]: at Socket. (/opt/iobroker/node_modules/redis/index.js:274:27)
Caught 2018-02-10 21:36:46.492 error by controller[1]: at JavascriptRedisParser.execute (/opt/iobroker/node_modules/redis-parser/lib/parser.js:574:12)
Caught 2018-02-10 21:36:46.491 error by controller[1]: at JavascriptRedisParser.returnReply (/opt/iobroker/node_modules/redis/index.js:192:18)
Caught 2018-02-10 21:36:46.490 error by controller[1]: at RedisClient.return_reply (/opt/iobroker/node_modules/redis/index.js:824:9)
Caught 2018-02-10 21:36:46.489 error by controller[1]: at normal_reply (/opt/iobroker/node_modules/redis/index.js:726:21)
Caught 2018-02-10 21:36:46.488 error by controller[1]: at Command.callback (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:287:17)
Caught 2018-02-10 21:36:46.487 error by controller[1]: at /opt/iobroker/node_modules/iobroker.sql/main.js:1292:140
Caught 2018-02-10 21:36:46.486 error by controller[1]: TypeError: Cannot read property 'val' of null
Caught 2018-02-10 21:36:46.469 error by controller[0]: Cannot find module 'pg-native'
sql.0 2018-02-10 21:36:45.061 warn Exception: TypeError: Cannot read property 'val' of null
sql.0 2018-02-10 21:36:45.056 error at readableAddChunk (_stream_readable.js:176:18)
sql.0 2018-02-10 21:36:45.056 error at Socket.emit (events.js:188:7)
sql.0 2018-02-10 21:36:45.056 error at emitOne (events.js:96:13)
sql.0 2018-02-10 21:36:45.056 error at Socket. (/opt/iobroker/node_modules/redis/index.js:274:27)
sql.0 2018-02-10 21:36:45.056 error at JavascriptRedisParser.execute (/opt/iobroker/node_modules/redis-parser/lib/parser.js:574:12)
sql.0 2018-02-10 21:36:45.056 error at JavascriptRedisParser.returnReply (/opt/iobroker/node_modules/redis/index.js:192:18)
sql.0 2018-02-10 21:36:45.056 error at RedisClient.return_reply (/opt/iobroker/node_modules/redis/index.js:824:9)
sql.0 2018-02-10 21:36:45.056 error at normal_reply (/opt/iobroker/node_modules/redis/index.js:726:21)
sql.0 2018-02-10 21:36:45.056 error at Command.callback (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:287:17)
sql.0 2018-02-10 21:36:45.056 error at /opt/iobroker/node_modules/iobroker.sql/main.js:1292:140
sql.0 2018-02-10 21:36:45.056 error TypeError: Cannot read property 'val' of null
sql.0 2018-02-10 21:36:45.055 error uncaught exception: Cannot read property 'val' of nullIch hatte hier lange nicht mehr ins log gesehen. Mache jetzt erst einmal ein Downgrade Gruß Rainer
-
Debug-log: auf Experte stellen und im Adapter auf debug- Level stellen? `
Ja, aber unter Instanzen -
Wobei das unter Admin 3 egal ist.
Der Expertenmodus von Adapter und Instanzen ist gekoppelt.
Gruß
Rainer
-
@fsjoke:Die Fehlerursache sonst scheinen 'null'-Werte in den Zahlenreihen zu sein. Ich habe die Datenbank durchforstet und gesehen dass diese Null-Werte vermehrt (bei mehreren Datenwerten) seit 5.Februar auftauchen, dem Tag als ich den SQL-Adapter upgedated habe!
vorher ist kein einziger NULL-Wert geloggt worden!
Flot motzt genau bei den Datenreihen welche diese 'nulls' enthalten. `
Das die "null" Werte geloggt werden ist absicht. Ziel ist das man das Ende und den Start einer Aufzeichnung erkennen kann. Das ist vor allem dann sinnvoll wenn man nur "bei Änderung" aufzeichnet, da man sonst nicht weiss ob die Daten wirklich so waren oder nichts geloggt wurde weil der sql-Adapter aus war.
@fsjoke:Beim Schnüffeln in den SQL-Daten in der Datenbank fand ich in den letzten Tagen auch Werte die ein 'from' von sql.0 haben!!
Wie kann das sein? sql sollte doch nie selbst daten erzeugeugen? Das Feld gehörte zu den Heizungsdaten die vom KM200 ausgelesen werden. sql kann da nur auf Änderung prüfen… `
Diese Werte und auch andere die als "from" ein "sql.0" haben kommen vom sql-Adapter und sind somit solche Sonderwerte. Darüber kann man erkennen das es sich um solche Sonderwerte handelt. Die existieren auch nur in der SQL-Datenbank.
Daher können Sie auch an sich nicht an den obigen Problemen Ursache sein, es sei denn der echte Wert war auch "Null"
@fsjoke:p.s.: Nachdem ich die NULL-Werte (insgesamt >600 und alle seit 5.2.2018) aus der Datenbank mittels SQL gelöscht habe meckert Flot nicht mehr… und ich kann Vis wieder betreiben! Hoffe es werden keinen neuen Werte geloggt ... `
Ich würde eher tippen das inzwischen Typen für alle Datenpunkte korrekt sind und existieren. Du kannst mal in der "datapoints" Tabelle schauen ob Du welche mit "NULL" als "type" hast … die sind dann noch komisch und haben wohl keinen neuen Wert bekommen. -
die NULL-Werte und die Dopplung der Werte scheinen Absicht zu sein. Würde mir auch wünschen, dass das Konfigurierbar ist. `
Doppelwerte nicht, NULL ja
Ich schaue die Tage mal das ich es konfigurierbar mache bei dem "Wiederstand" hier (kein Vorwurf, kann es verstehen. Ist halt eine Änderung die gewöhnungsbedürftig ist)
-
Ich weiß nicht ob das jetzt an der neuen Version liegt:
! ````
host.ioBroker-Cubie 2018-02-10 21:36:46.529 error instance system.adapter.sql.0 terminated with code 6 (uncaught exception)
Caught 2018-02-10 21:36:46.527 error by controller[2]: at readableAddChunk (_stream_readable.js:176:18)
Caught 2018-02-10 21:36:46.526 error by controller[2]: at Socket.emit (events.js:188:7)
Caught 2018-02-10 21:36:46.525 error by controller[2]: at emitOne (events.js:96:13)
Caught 2018-02-10 21:36:46.524 error by controller[2]: at Socket. (/opt/iobroker/node_modules/redis/index.js:274:27)
Caught 2018-02-10 21:36:46.503 error by controller[2]: at JavascriptRedisParser.execute (/opt/iobroker/node_modules/redis-parser/lib/parser.js:574:12)
Caught 2018-02-10 21:36:46.502 error by controller[2]: at JavascriptRedisParser.returnReply (/opt/iobroker/node_modules/redis/index.js:192:18)
Caught 2018-02-10 21:36:46.501 error by controller[2]: at RedisClient.return_reply (/opt/iobroker/node_modules/redis/index.js:824:9)
Caught 2018-02-10 21:36:46.500 error by controller[2]: at normal_reply (/opt/iobroker/node_modules/redis/index.js:726:21)
Caught 2018-02-10 21:36:46.499 error by controller[2]: at Command.callback (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:287:17)
Caught 2018-02-10 21:36:46.498 error by controller[2]: at /opt/iobroker/node_modules/iobroker.sql/main.js:1292:140
Caught 2018-02-10 21:36:46.497 error by controller[2]: TypeError: Cannot read property 'val' of null
Caught 2018-02-10 21:36:46.496 error by controller[1]: at readableAddChunk (_stream_readable.js:176:18)
Caught 2018-02-10 21:36:46.495 error by controller[1]: at Socket.emit (events.js:188:7)
Caught 2018-02-10 21:36:46.494 error by controller[1]: at emitOne (events.js:96:13)
Caught 2018-02-10 21:36:46.493 error by controller[1]: at Socket. (/opt/iobroker/node_modules/redis/index.js:274:27)
Caught 2018-02-10 21:36:46.492 error by controller[1]: at JavascriptRedisParser.execute (/opt/iobroker/node_modules/redis-parser/lib/parser.js:574:12)
Caught 2018-02-10 21:36:46.491 error by controller[1]: at JavascriptRedisParser.returnReply (/opt/iobroker/node_modules/redis/index.js:192:18)
Caught 2018-02-10 21:36:46.490 error by controller[1]: at RedisClient.return_reply (/opt/iobroker/node_modules/redis/index.js:824:9)
Caught 2018-02-10 21:36:46.489 error by controller[1]: at normal_reply (/opt/iobroker/node_modules/redis/index.js:726:21)
Caught 2018-02-10 21:36:46.488 error by controller[1]: at Command.callback (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:287:17)
Caught 2018-02-10 21:36:46.487 error by controller[1]: at /opt/iobroker/node_modules/iobroker.sql/main.js:1292:140
Caught 2018-02-10 21:36:46.486 error by controller[1]: TypeError: Cannot read property 'val' of null
Caught 2018-02-10 21:36:46.469 error by controller[0]: Cannot find module 'pg-native'
sql.0 2018-02-10 21:36:45.061 warn Exception: TypeError: Cannot read property 'val' of null
sql.0 2018-02-10 21:36:45.056 error at readableAddChunk (_stream_readable.js:176:18)
sql.0 2018-02-10 21:36:45.056 error at Socket.emit (events.js:188:7)
sql.0 2018-02-10 21:36:45.056 error at emitOne (events.js:96:13)
sql.0 2018-02-10 21:36:45.056 error at Socket. (/opt/iobroker/node_modules/redis/index.js:274:27)
sql.0 2018-02-10 21:36:45.056 error at JavascriptRedisParser.execute (/opt/iobroker/node_modules/redis-parser/lib/parser.js:574:12)
sql.0 2018-02-10 21:36:45.056 error at JavascriptRedisParser.returnReply (/opt/iobroker/node_modules/redis/index.js:192:18)
sql.0 2018-02-10 21:36:45.056 error at RedisClient.return_reply (/opt/iobroker/node_modules/redis/index.js:824:9)
sql.0 2018-02-10 21:36:45.056 error at normal_reply (/opt/iobroker/node_modules/redis/index.js:726:21)
sql.0 2018-02-10 21:36:45.056 error at Command.callback (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:287:17)
sql.0 2018-02-10 21:36:45.056 error at /opt/iobroker/node_modules/iobroker.sql/main.js:1292:140
sql.0 2018-02-10 21:36:45.056 error TypeError: Cannot read property 'val' of null
sql.0 2018-02-10 21:36:45.055 error uncaught exception: Cannot read property 'val' of nullIch hatte hier lange nicht mehr ins log gesehen. Mache jetzt erst einmal ein Downgrade `
Fix auf Github. Ein Logging war der verursacher. Du hast scheinbar einen Datenpunkt aktiviert der noch nie einen Wert hatte
-
habe die v.1.7.0 installiert
Macht bisher was er soll
Wenn man die "NULL" Werte abschaltet und der SQL-Adapter sich danach neu startet, werden noch einmal NULL Werte geschrieben (Ende Aufzeichnung aus vorheriger Einstellung?!). Anschließend beim Neustart des Adapters dann nicht mehr.
-
pppsssstttt … Menno bist Du schnell, das wollte ich noch verraten ;-))
Naja, ok Katze aus dem Sack. ... Weiter geht es dann jetzt hier:
http://forum.iobroker.net/viewtopic.php?f=36&t=11693
Und ja, denke die letzten "NULL"s kommen vom Beenden des Adapters
-
Fix auf Github. Ein Logging war der verursacher. Du hast scheinbar einen Datenpunkt aktiviert der noch nie einen Wert hatte `
Mit Install von Github keine weiteren Error!habe die v.1.7.0 installiert `
Ist aber bei mir immer noch die 1.6.9Gruß
Rainer
-
Ja, musst nochmal hatte zuerst deinen Bug gefixt und erst danach die anderen 1.7.0er Dinge gemacht
-
pppsssstttt … Menno bist Du schnell, das wollte ich noch verraten ;-)) ` sorry
-
Na da hat sich ja einiges bewegt inzwischen!
Ich habe den Sinn der Null-Werte nicht verstanden, die sollten nie notwendig und sein!
Eine Integration der Daten im Nachhinein (notwendig um z.B die Leistung zu berechnnen) wird dadurch unnötig kompliziert.
Null-Werte sollten aufgezeichnet werden wenn KEINE Daten kommen.
Eine STrategie welche ich verwenden musste um einer Industrielle Anwendung Daten aufzuzeichnen war folgende:
Es gibt zwei timeouts:
t1 = die maximale Zeit zwischen gleichen Datenpunkten (kann/soll verwendet werden um Datenpunkte aufzuzeichnen auch wenn die Daten gleich bleiben damit z.B. jede STunde oder jeden Tag zumindest ein Datenpunkt aufgezeichnet wird.
t2 = maximale Dauer zwischen zwei Datenpunkten, wenn länger wird null als Unterbrechung aufgezeichnet (aber nur 1x!)
Die Datenpunkte wurden (mit den Zeitstempeln) folgendermaßen mit der Strategie 'nbur bei Änderung' gespeichert:
-
Letzter Datenpunkt wird als alter gespeichert
-
neuer als neuer
-
t2 wird neu getriggert
wenn alt==neu
-
- t1 wird beim ersten mal getriggert
-
- wenn t1 ausläuft wird neu geschrieben und t1 wieder getriggert.
sonst (wenn alt != neu)
-
- alt wird gespeichert (hat noch den timestamp des letzten alten Wertes)
-
- neu wird gespeichert
-
- t1 und t2 werden gecancelt
wenn t2 ausläuft (dann ist der letzte Datenpunkt noch der neue vom letzten mal und der alte der alte davor)
-
- neu wird geschrieben
-
- null wird geschrieben
Diese Methode zeichnet genau auf wie lange gleiche Daten gelesen wurden und wann Änderungen oder keine Daten vorkanem.
Die Daten sind dann leicht integrierbar und fehlende Daten werden auch gekennzeichnet.
Die 'Entprellung' fehlt hier zwar, kann aber auch eingebunden werden, sie ist aber bei Aufzeichnung von Änderungen meist nicht notwendig.
-
-
Ich vergaß:
Wer auch immer Flot betreut, Bitte ein Update damit die Null-Werte keine alter anzeigen! Ansonsten kann man sie nie verwenden!
Ich hatte seit gestern in 25 verschiedenen Datenreihen 45 Nullen, wobei ich mir nicht vorstellen kann warum die auftauchen da die Daten immer geliefert wurden (mit Ausnahme des Regens…).
Alle Nullen sind aus der Datenbank entfernt und (uns SQL angewiesen diese NICHT zu speichern, Flot liefert noch immer alerts, jetzt bei ALLEN Abfragen, auch bei jenen welche gestern noch gingen da sie keine Nullen enthielten :((((!
Suche dauert an
-
Null Werte sollten kein alert zeigen. Wir genau lautet das alert? Wenn es das von oben im Thread ist (log Data First und so) dann liegt es nicht an null werten sondern daran das die datenabfrage nicht geklappt hat weil sql Adapter den typ nicht kannte und daher nicht wusste in welcher Tabelle er suchen musste.
-
Hallo Ingo:
Die Meldung ist:
Please wait till next data record is logged and reload.
Ich hatte NICHTS an den Daten geändert und habe auch in die Datenbank geschaut ob irgendwelche Typen oder ID's nicht vorhanden sind, aber nein alles OK.
Nun gestern ging alles wieder nachdem ich die Nullen aus den 'ts_number' gelöscht habe. heute hab ich neues SQL 1.7 installiert und Aufzeichnung von Nullen ausgeschaltet, alle Nullen seit gestern gelöscht aber trotzdem (auch nach re-boot) kommt jetzt bei jeder Flot-Abfrage (have ca 12 davon verteilt auf jede der Vis-Seiten) der Alert., auch ohne Nullen!
Das Einzige was ich geändert habe war SQL auf 1.7 von Git! Die Daten in der Datenbank schauen OK aus und für Alle Daten liegen 20-200 Werte vom letzten Tag vor (Ausser dem Regen).
Bin schon etwas verzeifelt, wenn Flot wenigstens melden würde welche Daten da nicht passen…
Versuche es im chrome zu debuggen, bin aber nocht nicht soweit um sagen zu können wo es auftritt.
-
Ok, hab mir Flot 1.7.5 mal angeschaut.
Im data.js gibt's zwei Punkte wo das alrert erzeugt wird (Bitte rausnehemen):
Bei Zeile 400:
socket.emit('getHistory', config.ticks, option, function (err, res, stepIgnore, _sessionId) { if (err) window.alert(err);
und bei Zeile 583
socket.emit('getHistory', config.ticks, option, function (err, res, stepIgnore, _sessionId) { if (err) window.alert(err);
In beiden Fällen werden Daten von SQL (oder dem akuten history-provider) abgefragt.
Ich habe dann eine alte Flot-Version (1.6.2) auf einer Virtuellen Machine geladen und gesehen dass diese Abfragen da schon drinnen waren.
Also ist die Änderung durch den SQL-Adapter entstanden, er liefert jetzt Fehler und hat vorher keinen Fehler geliefert!
Wenn das so ist wie du beschrieben hast ist die Fehlerbeschreibung und der Fehler nicht richtig da definitiv richtige Daten vorhanden sind - und waren!
mit altem SQL 1.6.1 tritt der Fehler auch nicht auf.