NEWS
History überarbeitet
-
-
bei mir läuft ja mysql nicht, das wird doch wohl nicht damit zusammenhängen, dass ich 2 sql-instanzen laufen habe, eine mit sqlite und die andere mit mysql? Hat sonst noch jemand mysql getestet?
-
Hallo,
der Fehler deutet darauf hin, das in einer UOW (Unit of Work) etwas gemacht wird, was nicht gehen kann.
Z.B. löschen von Zeilen und Update auf die gleichen Zeilen.
Es sind nicht zwei Instanzen, die sich behaken, sondern in einem Programm passiert etwas unlogisches.
Neues Phänomen:
Ich habe gestern mal flot getestet, danach war die DB tot.
Erst ein Neustart vom IOBroker hat geholfen.
Sieht man zwischen 1:00 und 23:00
-
Hallo,
der Fehler deutet darauf hin, das in einer UOW (Unit of Work) etwas gemacht wird, was nicht gehen kann.
Z.B. löschen von Zeilen und Update auf die gleichen Zeilen.
Es sind nicht zwei Instanzen, die sich behaken, sondern in einem Programm passiert etwas unlogisches.
Neues Phänomen:
Ich habe gestern mal flot getestet, danach war die DB tot.
Erst ein Neustart vom IOBroker hat geholfen.
filename="Bildschirmfoto 2015-12-05 um 21.31.57.png" index="0">~~
Sieht man zwischen 1:00 und 23:00 `
In solchen Fällen, bitte immer log anschauen und hier posten. -
bei mir läuft ja mysql nicht, das wird doch wohl nicht damit zusammenhängen, dass ich 2 sql-instanzen laufen habe, eine mit sqlite und die andere mit mysql? Hat sonst noch jemand mysql getestet? `
Kannst du mit andren Clients dadrauf zugegriffen?Ich habe so verstanden, dass MySQL auf dem anderen Rechner läuft. Kannst du vom ioBroker Rechner auf MySQL mit normalem Client zugreifen?
-
Wenn es denn läuft, wie werden dann die bestehenden History Einträge übernommen? `
Die werden nicht übernommen. Man startet zweiten Adapter und fängt an den zu nutzen. Es gibt noch keine Konvert-Funktion.Ob es geben wird, weiß ich noch nicht.
-
Frage zu mysql.
ich versuche gerade auf meine mysql-datenbank auf einem anderen Rechner im Netzwerk zu verbinden. Da bekomm ich die Fehlermeldung:
Error: getaddrinfo ENOTFOUND . die bind-adresse in my.cnf ist auf 0.0.0.0, also sollten Verbindungen aus dem Netzwerk angenommen werden. Firewalls gibts keine. Das muss ich noch genauer anschauen, aber wie lautet der Datenbankname? filename="mysql.PNG" index="0">~~
Nachtrag: habe mysql lokal installiert, bei "Verbindung testen" kommt dieselbe Fehlermeldung " Error: getaddrinfo ENOTFOUND "
(host = localhost) `
" Error: getaddrinfo ENOTFOUND" Sagt, dass 192.168.0.61 nicht erreichbar ist.
Ich muss sagen. ich habe nur mit lokale Installation probiert (dazu noch Windows).
Datenbank wird automatisch erzeugt und heißt "iobroker"
-
grad eben festgestellt: beim neuen flot kann ich die Legende nicht einblenden
Nachtrag 4.12.: hat sich erledigt, Namen werden nicht automatisch eingesetzt. Wenn man bei Input data Namen definiert, wird auch die Legende eingeblendet. `
Ist unklar. Bei sehe ich die Legende, ohne, dass ich Namen eigenen muss:
48_2015-12-06_17_04_01-localhost_8082_flot_edit.html.png -
Hallo,
folgende Fehlermeldungen liefert der SQL-Lite Adapter:
` > sql-0 2015-12-04 18:25:12 error Cannot delete DELETE FROM ts_number WHERE id=179 AND ts < 1417713900;: Error: SQLITE_BUSY: database is locked
sql-0 2015-12-04 17:08:28 error Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES(146, 1449245306000, 48, 1, 1, 0);: Error: SQLITE_BUSY: database is locked
sql-0 2015-12-04 16:47:37 error Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES(134, 1449244055000, 697, 1, 1, 0);: Error: SQLITE_BUSY: database is locked
sql-0 2015-12-04 16:26:37 error Cannot delete DELETE FROM ts_number WHERE id=175 AND ts < 1417706760;: Error: SQLITE_BUSY: database is locked
sql-0 2015-12-04 16:16:19 error Cannot delete DELETE FROM ts_number WHERE id=177 AND ts < 1417706161;: Error: SQLITE_BUSY: database is locked
sql-0 2015-12-04 14:42:09 error Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES(134, 1449236526000, 599, 1, 1, 0);: Error: SQLITE_BUSY: database is locked
sql-0 2015-12-04 14:19:07 error Cannot insert INSERT INTO ts_string (id, ts, val, ack, _from, q) VALUES(223, 1449235146000, , 1, 6, 0);: Error: SQLITE_ERROR: near ',': syntax error
sql-0 2015-12-04 13:34:07 error Cannot delete DELETE FROM ts_string WHERE id=222 AND ts < 1417696440;: Error: SQLITE_BUSY: database is locked
sql-0 2015-12-04 12:33:35 error Cannot insert INSERT INTO ts_string (id, ts, val, ack, _from, q) VALUES(224, 1449228814000, ### ? ###, 1, 6, 0);: Error: SQLITE_ERROR: unrecognized token: '#'
sql-0 2015-12-04 12:33:26 error Cannot insert INSERT INTO ts_string (id, ts, val, ack, _from, q) VALUES(223, 1449228805000, , 1, 6, 0);: Error: SQLITE_ERROR: near ',': syntax error
sql-0 2015-12-04 12:32:56 error Cannot insert INSERT INTO ts_string (id, ts, val, ack, _from, q) VALUES(223, 1449228775000, ### ? ###, 1, 6, 0);: Error: SQLITE_ERROR: unrecognized token: '#'
sql-0 2015-12-04 11:54:15 error Cannot delete DELETE FROM ts_number WHERE id=167 AND ts < 1417690440;: Error: SQLITE_BUSY: database is locked
sql-0 2015-12-04 11:53:17 error Cannot delete DELETE FROM ts_number WHERE id=119 AND ts < 1417690381;: Error: SQLITE_BUSY: database is locked
sql-0 2015-12-04 11:53:16 error Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES(122, 1449226395000, 0, 1, 1, 0);: Error: SQLITE_BUSY: database is locked
sql-0 2015-12-04 11:53:16 error Cannot delete DELETE FROM ts_number WHERE id=117 AND ts < 1417690381;: Error: SQLITE_BUSY: database is locked
sql-0 2015-12-04 11:53:15 error Cannot delete DELETE FROM ts_number WHERE id=150 AND ts < 1417690381;: Error: SQLITE_BUSY: database is locked
sql-0 2015-12-04 11:52:58 error Cannot delete DELETE FROM ts_bool WHERE id=220 AND ts < 1417690321;: Error: SQLITE_BUSY: database is locked
Habe hetzt neue Version von SQL veröffentlicht. Bitte mit:cd /opt/iobroker iobroker stop sql npm install iobroker.sql iobroker start sql
updaten.
Ich erlaube nur ein Client für SQLite.
-
Hi Bluefox,
muss da noch ein
iobroker upload sql
hin, oder geht das auch so (da der Adapter schon da ist)?
Gruß,
Eric
-
So, update ist durch.
Direkt nach dem Start kamen nochmal einige Meldungen :
` > sql.0 2015-12-06 18:39:08 info sql.0 enabled logging of hm-rega.0.41482
sql.0 2015-12-06 18:39:08 info sql.0 enabled logging of hm-rpc.0.xxxxxxxxxx.1.POWER
[…]
sql.0 2015-12-06 18:39:08 info sql.0 enabled logging of hm-rpc.0.xxxxxxxxxx.1.TEMPERATURE
sql.0 2015-12-06 18:39:08 info sql.0 enabled logging of hm-rpc.0.xxxxxxxxxx.1.HUMIDITY
sql.0 2015-12-06 18:39:08 info sql.0 enabled logging of system.host.cubietruck.load
sql.0 2015-12-06 18:39:08 info sql.0 enabled logging of system.host.cubietruck.mem
sql.0 2015-12-06 18:39:08 info sql.0 Connected to sqlite
sql.0 2015-12-06 18:39:07 info sql.0 starting. Version 0.0.2 in /opt/iobroker/node_modules/iobroker.sql
host-cubietruck 2015-12-06 18:38:59 info instance system.adapter.sql.0 started with pid 5980
host-cubietruck 2015-12-06 18:38:56 info instance system.adapter.sql.0 terminated with code 0 (OK)
sql-0 2015-12-06 18:38:56 info terminating
host-cubietruck 2015-12-06 18:38:56 info stopInstance system.adapter.sql.0 killing pid 5965
host-cubietruck 2015-12-06 18:38:56 info stopInstance system.adapter.sql.0
host-cubietruck 2015-12-06 18:38:56 info object change system.adapter.sql.0
sql-0 2015-12-06 18:38:45 error Cannot delete DELETE FROM ts_number WHERE id=21 AND ts < 1449337080;: Error: SQLITE_BUSY: database is locked
sql-0 2015-12-06 18:38:40 error Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES(1, 1449423508000, 20, 1, 1, 0);: Error: SQLITE_BUSY: database is locked
sql-0 2015-12-06 18:38:20 warn Cannot get index of 'hm-rpc.0.IEQ0150728.1.TEMPERATURE': Error: SQLITE_BUSY: database is locked
sql-0 2015-12-06 18:38:20 error Cannot select SELECT id, type FROM datapoints WHERE name='hm-rpc.0.IEQ0150728.1.TEMPERATURE';: Error: SQLITE_BUSY: database is locked
host-cubietruck 2015-12-06 18:38:17 info Update repository 'default' under 'conf/sources-dist.json'
sql-0 2015-12-06 18:38:00 info Connected to sqlite
sql-0 2015-12-06 18:38:00 info enabled logging of hm-rega.0.41482
sql-0 2015-12-06 18:38:00 info enabled logging of hm-rpc.0.xxxxxxxxxx.1.POWER
[…]
sql-0 2015-12-06 18:38:00 info enabled logging of system.host.cubietruck.load
sql-0 2015-12-06 18:38:00 info enabled logging of system.host.cubietruck.mem
sql-0 2015-12-06 18:38:00 info starting. Version 0.0.2 in /opt/iobroker/node_modules/iobroker.sql
host-cubietruck 2015-12-06 18:37:51 info instance system.adapter.sql.0 started with pid 5965
host-cubietruck 2015-12-06 18:37:51 info 'system.adapter.sql.0' enabled
host-cubietruck 2015-12-06 18:37:51 info object change system.adapter.sql.0 `
und kurz darauf wieder diese Meldungen:
` > sql.0 2015-12-06 18:44:41 warn sql.0 Cannot get index of 'hm-rpc.0.xxxxxxxxxx.3.TEMPERATURE': Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 18:44:41 error sql.0 Cannot select SELECT id, type FROM datapoints WHERE name='hm-rpc.0.LEQ0773872.3.TEMPERATURE';: Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 18:42:49 error sql.0 Cannot delete DELETE FROM ts_number WHERE id=11 AND ts < 1449337320;: Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 18:42:48 error sql.0 Cannot delete DELETE FROM ts_number WHERE id=8 AND ts < 1449337320;: Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 18:42:34 warn sql.0 Cannot get index of 'hm-rpc.0.xxxxxxxxxx.3.TEMPERATURE': Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 18:42:34 error sql.0 Cannot select SELECT id, type FROM datapoints WHERE name='hm-rpc.0.LEQ0773872.3.TEMPERATURE';: Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 18:41:40 error sql.0 Cannot delete DELETE FROM ts_number WHERE id=17 AND ts < 1449337261;: Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 18:40:43 error sql.0 Cannot delete DELETE FROM ts_number WHERE id=14 AND ts < 1449337200;: Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 18:40:42 error sql.0 Cannot delete DELETE FROM ts_number WHERE id=6 AND ts < 1449337201;: Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 18:40:41 error sql.0 Cannot delete DELETE FROM ts_number WHERE id=23 AND ts < 1449337201;: Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 18:40:25 error sql.0 Cannot delete DELETE FROM ts_number WHERE id=33 AND ts < 1449337201;: Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 18:40:13 warn sql.0 Cannot get index of 'hm-rpc.0.xxxxxxxxxx.3.TEMPERATURE': Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 18:40:13 error sql.0 Cannot select SELECT id, type FROM datapoints WHERE name='hm-rpc.0.xxxxxxxxxx.3.TEMPERATURE';: Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 18:39:08 info sql.0 enabled logging of hm-rega.0.41482
sql.0 2015-12-06 18:39:08 info sql.0 enabled logging of hm-rpc.0.xxxxxxxxxx.1.POWER
sql.0 2015-12-06 18:39:08 info sql.0 enabled logging of hm-rpc.0.xxxxxxxxxx.1.TEMPERATURE `
Irgendwas klemmt da noch.
Es läuft auch sonst nichts mit SQL auf dem Cubietruck - der macht nichts anderes als ioBroker.
Gruß,
Eric
PS:
Wenn ich versuche, Flot zu installieren, meckert die Installation am Ende, das die Version des History-Adapters >= 0.2.0 sein soll (error 30).
Ich habe die Version 0.1.3 drauf.
Hab ich irgendwas überlesen?
-
Kannst du mit andren Clients dadrauf zugegriffen?
Ich habe so verstanden, dass MySQL auf dem anderen Rechner läuft. Kannst du vom ioBroker Rechner auf MySQL mit normalem Client zugreifen? `
ja, kann ich (mit mysql -u xxxx -h 192.168.0.61 -p) , allerdings habe ich jetzt auf dem iobroker testserver ein eigener mysql-server eingerichtet, über localhost müsste es eigentlich problemlos laufen. -
Hallo,
Habe das Update durchgeführt.
` > sql.0 Cannot delete DELETE FROM ts_number WHERE id=172 AND ts < 1417897381;: Error: SQLITE_BUSY: database is lockedsql.0 2015-12-06 21:23:23 error sql.0 Cannot insert INSERT INTO ts_bool (id, ts, val, ack, _from, q) VALUES(112, 1449433400000, 0, 1, 4, 0);: Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 21:23:23 error sql.0 Cannot delete DELETE FROM ts_bool WHERE id=111 AND ts < 1417897380;: Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 21:23:23 error sql.0 Cannot delete DELETE FROM ts_bool WHERE id=110 AND ts < 1417897380;: Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 21:23:21 error sql.0 Cannot select SELECT id, type FROM datapoints WHERE name='ping.0.raspberrypi.192_168_1_11';: Error: SQLITE_BUSY: database is locked `
-
Hallo,
ich hatte jetzt auch einmal den Zugriffsfehler:
` > sql.0 2015-12-06 21:23:05 error sql.0 Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES(10, 1449433373000, 271.35, 1, 1, 0);: Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 21:23:04 debug sql.0 INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES(1, 1449433373000, 28, 1, 1, 0); `
Und ich denke, man sieht hier im Vergleich mit dem unmittelbar zuvor (erfolgreich) ausgeführten Statement dass der Grund dafür ist, dass der zweite Datensatz hier mit einem bereits existierenden Timestamp eingefügt werden soll. Die Fehlermeldung "Database locked" ist da natürlich ziemlich irreführend
@Bluefox: Ich hab's mir zwar im Code mal angeschaut wie Du den Timestamp generierst, aber da sind meine JS-Kenntnisse noch zu rudimentär um herauszufinden warum der doppelt generiert wird :oops:
-
Kannst du den .timeout auf 11000 setzen?
Der Pi kann scheinbar nur Sekunden Sleeps und könnte damit ein Problem haben.
-
Hallo,
ich hatte jetzt auch einmal den Zugriffsfehler:
` > sql.0 2015-12-06 21:23:05 error sql.0 Cannot insert INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES(10, 1449433373000, 271.35, 1, 1, 0);: Error: SQLITE_BUSY: database is locked
sql.0 2015-12-06 21:23:04 debug sql.0 INSERT INTO ts_number (id, ts, val, ack, _from, q) VALUES(1, 1449433373000, 28, 1, 1, 0); `
Und ich denke, man sieht hier im Vergleich mit dem unmittelbar zuvor (erfolgreich) ausgeführten Statement dass der Grund dafür ist, dass der zweite Datensatz hier mit einem bereits existierenden Timestamp eingefügt werden soll. Die Fehlermeldung "Database locked" ist da natürlich ziemlich irreführend
@Bluefox: Ich hab's mir zwar im Code mal angeschaut wie Du den Timestamp generierst, aber da sind meine JS-Kenntnisse noch zu rudimentär um herauszufinden warum der doppelt generiert wird :oops: `
Kann es daran liegen, dass der Pi keine Millisekunden liefert?
-
Kann es daran liegen, dass der Pi keine Millisekunden liefert? `
Bei mir läuft ioBroker nicht auf einem Raspberry Pi, sondern auf einem Cubietruck.Oder meinst Du grundsätzlich die ARM-Plattform?
Gruß,
Eric
-
Kannst du den .timeout auf 11000 setzen? `
Hab den Wert beim SQL-Adapter geändert - Meldungen ("cannot delete" und "cannot insert") kommen weiterhin.Oder meintest Du am jeweiligen Objekt selber?
Gruß,
Eric
-
Ja, es liegt offensichtlich an den fehlenden Millisekunden. Aber nicht nur auf dem Pi - ich arbeite mit Windows.
Ich habe mich aber jetzt noch mal in den Code reingekniet und empfehle Dir folgendes zu testen - wenn Du Dir's zutraust.
Und zwar musst Du in der Datei "..\iobroker\node_modules\iobroker.sql\main.js" die Zeile 552:
state.ts = parseInt(state.ts, 10) * 1000 + (parseInt(state.ms, 10) || 0);
durch die folgende ersetzen:
state.ts = parseInt(Date.now());
Dann die Datei speichern und den SQL-Adapter neustarten. Dann dürfte es keine doppelten Timestamps mehr geben (und ich hoffe dass ich damit nichts anderes durcheinanderbringe - aber wir sind ja hier noch in der Beta
)
Gruß Thilo
-
Probiere ich morgen früh aus.
Gruß,
Eric
Edit:
Nee, bin neugierig - mache es jetzt