Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Daten in SQL Datenbank schreiben mit Blockly / sendTo

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Daten in SQL Datenbank schreiben mit Blockly / sendTo

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      schwede70 last edited by

      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);
      

      blockly.png

      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 🙂

      M David G. 2 Replies Last reply Reply Quote 0
      • M
        MCU @schwede70 last edited by

        @schwede70 sagte in Daten in SQL Datenbank schreiben mit Blockly / sendTo:

        INSERT INTO test (Netzbezug) VALUES(500);

        ?

        INSERT INTO iobroker.test(Netzbezug) VALUES(500);
        
        S 1 Reply Last reply Reply Quote 0
        • S
          schwede70 @MCU last edited by

          @mcu Danke! So einfach kann es ja manchmal sein.. Klappt, wunderbar 🙂

          1 Reply Last reply Reply Quote 0
          • David G.
            David G. @schwede70 last edited by David G.

            @schwede70

            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>
            

            Screenshot_20230522_164127_Chrome.jpg
            (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.

            1 Reply Last reply Reply Quote 0
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            571
            Online

            31.7k
            Users

            79.7k
            Topics

            1.3m
            Posts

            3
            4
            899
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo