NEWS
States können nicht in SQL geloggt werden.
-
Hallo zusammen,
ich habe ein Problem mit der Kombination von Javascript und SQL-Adapter.
Datenpunkte, die ich in Blockly generiere, werden mir zwar im Objekte-Baum angezeigt und auch wie im Script programmiert aktualisiert, allerdings lassen sie sich nicht im SQL-Adapter loggen.
Ich habe das ganze nun in zwei fällen beobachtet, im log finde ich folgendes:sql.0 2021-01-08 10:41:42.377 info (14389) No Data sql.0 2021-01-08 10:41:42.376 warn (14389) Cannot get index of "javascript.0.Teichpumpe.Energie": id not found
bzw.
sql.0 2021-01-08 09:40:10.978 warn (14389) Cannot get index of "javascript.0.Teichpumpe.Energie": Error: ER_NO_DEFAULT_FOR_FIELD: Field 'id' doesn't have a default value sql.0 2021-01-08 09:40:10.977 error (14389) Cannot insert INSERT INTO `ioBroker`.datapoints (name, type) VALUES('javascript.0.Teichpumpe.Energie', 0);: Error: ER_NO_DEFAULT_FOR_FIELD: Field 'id' doesn't have a default value
Hat jemand eine Idee diebzgl.?
Das Script sieht so aus:
var Teichpumpe; createState("Teichpumpe.Strom", 0, async function () { }); createState("Teichpumpe.Leistung", 0, async function () { }); createState("Teichpumpe.Energie", 0, async function () { }); on({id: 'mqtt.0.tele.teichpumpe.SENSOR', change: "any"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Teichpumpe = (function () { try {return JSON.parse(getState("mqtt.0.tele.teichpumpe.SENSOR").val);} catch(e) {return {};}})(); setState("javascript.0.Teichpumpe.Strom"/*Teichpumpe.Strom*/, getAttr(Teichpumpe, 'ENERGY.Current')); setState("javascript.0.Teichpumpe.Leistung"/*Teichpumpe.Leistung*/, getAttr(Teichpumpe, 'ENERGY.Power')); setState("javascript.0.Teichpumpe.Energie"/*Teichpumpe.Energie*/, getAttr(Teichpumpe, 'ENERGY.Today')); });
Meine Konfiguration ist wie folgt, die Datenbank ist eine MariaDB10 auf Synology.
EDIT: Das Problem liegt offenbar nicht bei den durch den JS-Adapter generierten Zuständen. Ich habe zwischenzeitlich den device-reminder installiert und auch diese Zustände kann ich nicht in SQL speichern. Mit allen alten Zuständen gibt es keine Probleme.
-
@cs486 Ich hab jetzt bei mir genau das gleiche Problem.
Wobei ich meine Datenpunkte nicht durch blocky angelegt habe - es sind beliebige DatenpunkteHast Du zwischenzeitig eine Lösung gefunden?