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 foundbzw.
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 valueHat 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.
-
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 foundbzw.
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 valueHat 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.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden