NEWS
Daten in SQL Datenbank schreiben mit Blockly / sendTo
-
Hallo zusammen,
ich würde gerne einzelne Werte im Rahmen einer Auswertung von Messdaten manuell in eine SQL Datenbank schreiben.
SQL Datenbank (MariaDB) ist installiert und läuft. SQL-Adapter in iobroker ist installiert, eingerichtet und läuft auch.In der Datenbank gibt es als Beispiel die Tabelle "test", die ein Feld "Netzbezug" enthält. In diese Tabelle würde ich gerne einen Wert schreiben mit folgender einfacher Query:
INSERT INTO test (Netzbezug) VALUES(500);
SQL-Query ist an sich korrekt, über die SQL-Konsole im Terminal kann ich damit Daten in die Tabelle schreiben.
Nun würde ich das gerne über ein Blockly-Script machen. Dazu habe ich den sendTo Befehl benutzt, bekomme aber keine Daten in die Tabelle..
var schedule1, result; schedule1 = schedule('10 22 * * *', async function () { sendTo("sql.0", "query", 'INSERT INTO test (Netzbezug) VALUES(500);'); console.log("sql.0: " + ""); }); console.log(result);
In der Konsole wird folgendes ausgegeben: "javascript.0 (585) script.js.common.PV.Auswertung_SQL_taeglich: sendTo(adapter=sql.0, cmd=query, msg="INSERT INTO test (Netzbezug) VALUES(500);")"
Wo liegt mein Fehler?
Danke für Support
-
@schwede70 sagte in Daten in SQL Datenbank schreiben mit Blockly / sendTo:
INSERT INTO test (Netzbezug) VALUES(500);
?
INSERT INTO iobroker.test(Netzbezug) VALUES(500);
-
@mcu Danke! So einfach kann es ja manchmal sein.. Klappt, wunderbar
-
Ich mache das mit einer Funktion
<block xmlns="https://developers.google.com/blockly/xml" type="procedures_defcustomnoreturn" id="byaN9|n~rP|LoWSf8_V~" x="-187" y="-1187"> <mutation statements="false"> <arg name="id" varid="Civ)@a`PPOAP;Au`yrk7"></arg> <arg name="value" varid="He?L*;%S5ZxhQdVQ|nwK"></arg> <arg name="ts" varid="}H`Md*ym;;=9MQYQ+d#g"></arg> <arg name="ack" varid="}FYTizs{~u7qb%G~dwNB"></arg> <arg name="from" varid="mbSwYNv,Ng@m[=[1wvlp"></arg> <arg name="q" varid="n]Oh`3dmP!HF^Id)E2cC"></arg> </mutation> <field name="NAME">Sql</field> <field name="SCRIPT">ewogICAgbGV0IHN0YXRlbWVudCA9IGAKICAgICAgICBSRVBMQUNFIElOVE8gaW9icm9rZXIudHNfbnVtYmVyIAogICAgICAgICAgICAoaWQsIHRzLCB2YWwsIGFjaywgX2Zyb20sIHEpIAogICAgICAgICAgICBWQUxVRVMgKChTRUxFQ1QgaWQgRlJPTSBpb2Jyb2tlci5kYXRhcG9pbnRzIFdIRVJFIG5hbWUgPSAiJHtpZH0iKSwgJHt0c30sICR7dmFsdWV9LCAke2Fja30sICR7ZnJvbX0sICR7cX0pCiAgICBgCiAgICAKICAgIHNlbmRUbygic3FsLjAiLCAicXVlcnkiLCBzdGF0ZW1lbnQsIGUgPT4gewogICAgICAgIGlmIChlICYmIGUuZXJyb3IpIHsKICAgICAgICAgICAgbG9nKGUuZXJyb3IpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gbG9nKCJEb25lISIpCiAgICAgICAgfQogICAgfSkKfQo=</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> </block>
(Ausschnitt aus einen Skript von mir)id ist der Name des Datenpunktes für den die SQL-Aufzeichnung aktiviert wurde
ts der gewünschte Zeitstempel in ms seit dem 1.1.1970
value der Wert der geschrieben werden soll
ack mit 1 für True oder 0 für False (Acknowledge)
from ist der Adapter der den Wert schreibt. Was da in der Histoty hinter steht. Eigentlich egal. Einfach testen, wenn man was möchte (Oder in der DB nachschauen)
q nehme ich immer 0, ka was das ist.