Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. SQL Beschreiben mit Blockly

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

SQL Beschreiben mit Blockly

Geplant Angeheftet Gesperrt Verschoben Blockly
blockly
6 Beiträge 4 Kommentatoren 887 Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    sectorchan
    schrieb am zuletzt editiert von
    #1

    Hallo Gemeinde,

    ich habe anscheinend eine Gedankenblockade. Mit der suche konnte ich diese ebenfalls nicht lösen.

    Ich möchte mein Stromverbrauch in meine SQL Tabelle schreiben. Aber welche Blockly Aktion nehme ich her? sendTo? Hätte da jemand ein Beispiel für mich, so das ich aus der Misere herausfinde?

    David G.D CodierknechtC BananaJoeB 3 Antworten Letzte Antwort
    0
    • S sectorchan

      Hallo Gemeinde,

      ich habe anscheinend eine Gedankenblockade. Mit der suche konnte ich diese ebenfalls nicht lösen.

      Ich möchte mein Stromverbrauch in meine SQL Tabelle schreiben. Aber welche Blockly Aktion nehme ich her? sendTo? Hätte da jemand ein Beispiel für mich, so das ich aus der Misere herausfinde?

      David G.D Online
      David G.D Online
      David G.
      schrieb am zuletzt editiert von
      #2

      @sectorchan

      Schreib die Werte doch in einen Datenpunkt und aktiviere die Protokollierung mit dem SQL-Adapter.

      Zeigt eure Lovelace-Visualisierung klick
      (Auch ideal um sich Anregungen zu holen)

      Meine Tabellen für eure Visualisierung klick

      1 Antwort Letzte Antwort
      0
      • S sectorchan

        Hallo Gemeinde,

        ich habe anscheinend eine Gedankenblockade. Mit der suche konnte ich diese ebenfalls nicht lösen.

        Ich möchte mein Stromverbrauch in meine SQL Tabelle schreiben. Aber welche Blockly Aktion nehme ich her? sendTo? Hätte da jemand ein Beispiel für mich, so das ich aus der Misere herausfinde?

        CodierknechtC Online
        CodierknechtC Online
        Codierknecht
        Developer Most Active
        schrieb am zuletzt editiert von Codierknecht
        #3

        @sectorchan
        Wie @David-G schon schrieb: Installiere den SQL-Adapter und schreibe den Stromverbrauch in einen DP (soweit es den nicht schon gibt).
        Dann aktivierst Du an dem DP die Protokollierung.

        Ein Bild sagt mehr als tausend Worte:
        aeeee105-0773-49a1-818d-e918ffd0cf4e-image.png

        So mache ich das mit meinem Gasverbrauch:
        Den laufenden Verbrauch am Tag schreibe ich in einen DP "verbrauch".
        Jede Nacht schreibe ich den dort aufgelaufenen Wert in einen DP "tagesverbrauch" und setze "verbrauch" wieder auf 0.

        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
        HmIP|ZigBee|Tasmota|Unifi
        Zabbix Certified Specialist
        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

        1 Antwort Letzte Antwort
        0
        • S sectorchan

          Hallo Gemeinde,

          ich habe anscheinend eine Gedankenblockade. Mit der suche konnte ich diese ebenfalls nicht lösen.

          Ich möchte mein Stromverbrauch in meine SQL Tabelle schreiben. Aber welche Blockly Aktion nehme ich her? sendTo? Hätte da jemand ein Beispiel für mich, so das ich aus der Misere herausfinde?

          BananaJoeB Online
          BananaJoeB Online
          BananaJoe
          Most Active
          schrieb am zuletzt editiert von BananaJoe
          #4

          @sectorchan ja, sendTo und dann die passenden Parameter. Ist aber so Tricky gewesen die Parameter richtig zu übergeben das ich mir eine Javascript-Funktion gebaut habe (vermutlich mit Hilfe hier aus dem Forum):

          2ac62472-4c06-4bb2-9301-99d2711fc21b-image.png 36f7819d-85ed-4b77-970a-91b6da1d257b-image.png

          sendTo("sql.0", "storeState", {
              "id": myId,
              "state": { 
                  "val": myVAL, 
                  "ts": myTS,
                  "ack": true
              }
          }, async function (result) {
              //console.log(result);
          });
          

          Die verbesserte version die ich zur Zeit einsetze hat den Vorteil das man damit auch Werte überschreiben kann (Wenn es der gleiche Zeitstempel ist:
          2f0f2747-1c8f-4695-9f68-ed9c6cc7f44d-image.png

          let statement = `
              REPLACE INTO iobroker.ts_number 
                  (id, ts, val, ack, _from, q) 
                  VALUES ((SELECT id FROM iobroker.datapoints WHERE name = "${id}"), ${ts}, ${value}, ${ack}, ${from}, ${q})
          `
          //log(statement)
          sendTo("sql.0", "query", statement, e => {
              if (e && e.error) {
                  log(e.error)
              } else {
                  // log("Done!")
              }
          })
          

          Hier als Blockly-Export:

          <block xmlns="https://developers.google.com/blockly/xml" type="procedures_defcustomnoreturn" id="ppt|ajrQncolYtqyk1q1" x="238" y="-587">
            <mutation statements="false">
              <arg name="id" varid="RtPM2%k{F`%!q{Rk]|a."></arg>
              <arg name="ts" varid=";!)T*gf?`G!J~iZ#4,CG"></arg>
              <arg name="value" varid="epT$}5hcYx3b^`jz:~#d"></arg>
              <arg name="ack" varid="GAGtL,+-C3?x`s;u1nsR"></arg>
              <arg name="from" varid="rHJp6FCFj,U],$ysF[xX"></arg>
              <arg name="q" varid="p~yp5Fejp5Y|*K$i[(u%"></arg>
            </mutation>
            <field name="NAME">InsertToHistory</field>
            <field name="SCRIPT">bGV0IHN0YXRlbWVudCA9IGANCiAgICBSRVBMQUNFIElOVE8gaW9icm9rZXIudHNfbnVtYmVyIA0KICAgICAgICAoaWQsIHRzLCB2YWwsIGFjaywgX2Zyb20sIHEpIA0KICAgICAgICBWQUxVRVMgKChTRUxFQ1QgaWQgRlJPTSBpb2Jyb2tlci5kYXRhcG9pbnRzIFdIRVJFIG5hbWUgPSAiJHtpZH0iKSwgJHt0c30sICR7dmFsdWV9LCAke2Fja30sICR7ZnJvbX0sICR7cX0pDQpgDQovL2xvZyhzdGF0ZW1lbnQpDQpzZW5kVG8oInNxbC4wIiwgInF1ZXJ5Iiwgc3RhdGVtZW50LCBlID0+IHsNCiAgICBpZiAoZSAmJiBlLmVycm9yKSB7DQogICAgICAgIGxvZyhlLmVycm9yKQ0KICAgIH0gZWxzZSB7DQogICAgICAgIC8vIGxvZygiRG9uZSEiKQ0KICAgIH0NCn0p</field>
            <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
          </block>
          

          Einsatz:
          4060e046-45bb-4a3c-8a82-e6098c716f03-image.png

          Die Funktion habe ich aus dem Forum: https://forum.iobroker.net/topic/55463/sql-sendto-problem-storestate-vs-update/8?_=1666164726503

          Beides setzt voraus das du einen Datenpunkt mit aktivierter SQL Protokollierung hast.
          Der Vorteil bei diesen beiden Funktionen ist das du den Zeitstempel mitgeben kannst. Du kannst also um Mitternacht auch noch den Wert für 08:00 Uhr schreiben

          ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

          S 1 Antwort Letzte Antwort
          0
          • BananaJoeB BananaJoe

            @sectorchan ja, sendTo und dann die passenden Parameter. Ist aber so Tricky gewesen die Parameter richtig zu übergeben das ich mir eine Javascript-Funktion gebaut habe (vermutlich mit Hilfe hier aus dem Forum):

            2ac62472-4c06-4bb2-9301-99d2711fc21b-image.png 36f7819d-85ed-4b77-970a-91b6da1d257b-image.png

            sendTo("sql.0", "storeState", {
                "id": myId,
                "state": { 
                    "val": myVAL, 
                    "ts": myTS,
                    "ack": true
                }
            }, async function (result) {
                //console.log(result);
            });
            

            Die verbesserte version die ich zur Zeit einsetze hat den Vorteil das man damit auch Werte überschreiben kann (Wenn es der gleiche Zeitstempel ist:
            2f0f2747-1c8f-4695-9f68-ed9c6cc7f44d-image.png

            let statement = `
                REPLACE INTO iobroker.ts_number 
                    (id, ts, val, ack, _from, q) 
                    VALUES ((SELECT id FROM iobroker.datapoints WHERE name = "${id}"), ${ts}, ${value}, ${ack}, ${from}, ${q})
            `
            //log(statement)
            sendTo("sql.0", "query", statement, e => {
                if (e && e.error) {
                    log(e.error)
                } else {
                    // log("Done!")
                }
            })
            

            Hier als Blockly-Export:

            <block xmlns="https://developers.google.com/blockly/xml" type="procedures_defcustomnoreturn" id="ppt|ajrQncolYtqyk1q1" x="238" y="-587">
              <mutation statements="false">
                <arg name="id" varid="RtPM2%k{F`%!q{Rk]|a."></arg>
                <arg name="ts" varid=";!)T*gf?`G!J~iZ#4,CG"></arg>
                <arg name="value" varid="epT$}5hcYx3b^`jz:~#d"></arg>
                <arg name="ack" varid="GAGtL,+-C3?x`s;u1nsR"></arg>
                <arg name="from" varid="rHJp6FCFj,U],$ysF[xX"></arg>
                <arg name="q" varid="p~yp5Fejp5Y|*K$i[(u%"></arg>
              </mutation>
              <field name="NAME">InsertToHistory</field>
              <field name="SCRIPT">bGV0IHN0YXRlbWVudCA9IGANCiAgICBSRVBMQUNFIElOVE8gaW9icm9rZXIudHNfbnVtYmVyIA0KICAgICAgICAoaWQsIHRzLCB2YWwsIGFjaywgX2Zyb20sIHEpIA0KICAgICAgICBWQUxVRVMgKChTRUxFQ1QgaWQgRlJPTSBpb2Jyb2tlci5kYXRhcG9pbnRzIFdIRVJFIG5hbWUgPSAiJHtpZH0iKSwgJHt0c30sICR7dmFsdWV9LCAke2Fja30sICR7ZnJvbX0sICR7cX0pDQpgDQovL2xvZyhzdGF0ZW1lbnQpDQpzZW5kVG8oInNxbC4wIiwgInF1ZXJ5Iiwgc3RhdGVtZW50LCBlID0+IHsNCiAgICBpZiAoZSAmJiBlLmVycm9yKSB7DQogICAgICAgIGxvZyhlLmVycm9yKQ0KICAgIH0gZWxzZSB7DQogICAgICAgIC8vIGxvZygiRG9uZSEiKQ0KICAgIH0NCn0p</field>
              <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
            </block>
            

            Einsatz:
            4060e046-45bb-4a3c-8a82-e6098c716f03-image.png

            Die Funktion habe ich aus dem Forum: https://forum.iobroker.net/topic/55463/sql-sendto-problem-storestate-vs-update/8?_=1666164726503

            Beides setzt voraus das du einen Datenpunkt mit aktivierter SQL Protokollierung hast.
            Der Vorteil bei diesen beiden Funktionen ist das du den Zeitstempel mitgeben kannst. Du kannst also um Mitternacht auch noch den Wert für 08:00 Uhr schreiben

            S Offline
            S Offline
            sectorchan
            schrieb am zuletzt editiert von sectorchan
            #5

            Hi, Danke für euren Input.

            Ja einen Datenpunkt mit dem Täglichen Verbrauch gibt es tatsächlich, da ich damit den Verbrauch berechne.
            Danke an @BananaJoe für das Blockly, aber ich werde mit der Idee von @David-G und @Codierknecht gehen, das geht einfacher, simpler und wahrscheinlich weniger Fehleranfällig.

            Aber ich kann da nicht auswählen, das eine eigene Tabelle verwendet wird oder?

            BananaJoeB 1 Antwort Letzte Antwort
            0
            • S sectorchan

              Hi, Danke für euren Input.

              Ja einen Datenpunkt mit dem Täglichen Verbrauch gibt es tatsächlich, da ich damit den Verbrauch berechne.
              Danke an @BananaJoe für das Blockly, aber ich werde mit der Idee von @David-G und @Codierknecht gehen, das geht einfacher, simpler und wahrscheinlich weniger Fehleranfällig.

              Aber ich kann da nicht auswählen, das eine eigene Tabelle verwendet wird oder?

              BananaJoeB Online
              BananaJoeB Online
              BananaJoe
              Most Active
              schrieb am zuletzt editiert von BananaJoe
              #6

              @sectorchan sagte in SQL Beschreiben mit Blockly:

              Aber ich kann da nicht auswählen, das eine eigene Tabelle verwendet wird oder?

              Nein. Dazu könntest du aber halt wie im 2. Beispiel ein SQL Statement setzen, In dem kannst du natürlich dann eine andere Tabelle und/oder Datenbank nutzen.
              Mit den Daten wird dann aber float oder ECharts nicht umgehen können denke ich ... falls das mal wichtig wird

              ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

              1 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

              ioBroker
              Community Adapters
              Donate

              615

              Online

              32.5k

              Benutzer

              81.7k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Home
              • Aktuell
              • Tags
              • Ungelesen 0
              • Kategorien
              • Unreplied
              • Beliebt
              • GitHub
              • Docu
              • Hilfe