Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Blockly/JavaScript] SQL Abfrage - Ergebnis in Variable speichern

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Blockly/JavaScript] SQL Abfrage - Ergebnis in Variable speichern

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

      Moin!

      Ich habe leider keine große Ahnung von Javascript und muss meine Sachen alle in Blockly programmieren. Das klappt auch alles ziemlich gut, bis ich jetzt an die Grenzen gestoßen bin.

      Ich tracke über sql.0 Zustände von HomeMatic Komponenten. So bspw. auch eine Sensor, der misst, ob der Toilettendeckel geöffnet ist oder nicht.

      Nachdem das "Geschäft" beendet worden ist, möchte ich eine Sprachausgabe über die Dauer dieses Vorganges ausgeben.

      Die SQL Abfrage funktioniert auch wunderbar, jedoch möchte ich dieses Ergebnis (=eine Zahl in Sekunden), in eine Variable speichern. Entweder direkt in Blockly oder auch in ein ioBroker Objekt.

      Der Block sieht so aus:

      (Habe ich hier aus dem ersten SendTo SQL Beispiel übernommen:https://github.com/ioBroker/ioBroker.ja … ndto-block)

       <xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="GVW732OFexZ9HP[q]B3," x="-313" y="-13"><field name="COMMENT">Send query to SQL adapter</field>
          <next><block type="sendto_custom" id="C5n}DvzjidAsuqnz9vDP"><mutation items/with_statement="true"></mutation>
              <field name="INSTANCE">sql.0</field>
              <field name="COMMAND">query</field>
              <field name="WITH_STATEMENT">TRUE</field>
              <field name="LOG">log</field>
              <value name="ARG0"><shadow type="text" id="-/Uh;!,T}h/D-y(o7lAr"><field name="TEXT">SELECT ((SELECT ts FROM Haushaltsrechnungen.ts_bool WHERE id = 5 and val = 0 Order by `Datum` DESC Limit 1) - (SELECT ts FROM Haushaltsrechnungen.ts_bool WHERE id = 5 and val = 1 Order by `Datum` DESC Limit 1)) / 1000 FROM Haushaltsrechnungen.ts_bool Limit 1</field></shadow></value> 
              <statement name="STATEMENT"><block type="debug" id="YpKkor:gc8r1-l8yO@Oe"><field name="Severity">log</field>
                  <value name="TEXT"><shadow type="text" id="#!NJS43!0z@}z:6~_,9("><field name="TEXT">test</field></shadow> 
                    <block type="procedures_callcustomreturn" id="0E2fmQQduf4)-({z(om|"><mutation name="JSON.stringify"><arg name="obj"></arg></mutation> 
                      <value name="ARG0"><block type="variables_get" id=",^2E2eT#598hI^TvABD9"><field name="VAR">result</field></block></value></block></value></block></statement></block></next></block> 
        <block type="procedures_defcustomreturn" id="lm*.n3kQXll8o9X^*m,k" x="-312" y="288"><mutation statements="false"><arg name="obj"></arg></mutation> 
          <field name="NAME">JSON.stringify</field>
          <field name="SCRIPT">IHJldHVybiBKU09OLnN0cmluZ2lmeShvYmopOwo=</field>
          <comment pinned="false" h="80" w="160">Describe this function...</comment></block></xml> 
      

      Im Log steht mein Ergebnis auch bereits:

      03:11:40.596	[info]	javascript.0 script.js.Badezimmer.Skript3: registered 0 subscriptions and 0 schedules
      03:11:40.602	[info]	javascript.0 script.js.Badezimmer.Skript3: {"error":null,"result":[{"((SELECT ts FROM Haushaltsrechnungen.ts_bool WHERE id = 5 and val = 0 Order by `Datum` DESC Limit 1) - (SELECT ts FROM Haushaltsrechnungen.ts_bool WHERE id = 5 and val = 1 Order by `Datum` DESC Limit 1)) / 1000":89.992}]}
      

      Diese 89.992 (Das Ergebnis der Abfrage, steht ganz rechts am Ende des Logs) möchte ich in eine Variable speichern, bekomme das leider nicht hin.

      Vielen Dank!

      1 Reply Last reply Reply Quote 0
      • Mic
        Mic Developer last edited by

        @BeautyBoyBob:

        So bspw. auch eine Sensor, der misst, ob der Toilettendeckel geöffnet ist oder nicht.

        Nachdem das "Geschäft" beendet worden ist, möchte ich eine Sprachausgabe über die Dauer dieses Vorganges ausgeben. `

        :lol:

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 last edited by

          @BeautyBoyBob:

          Ich tracke über sql.0 Zustände von HomeMatic Komponenten. So bspw. auch eine Sensor, der misst, ob der Toilettendeckel geöffnet ist oder nicht. `
          Weshalb möchtest Du sql.0 auswerten ? Da wirst Du mit Blockly nicht weit kommen. Die Auswertung des Datenpunktes "Toilettendeckel" ist viel einfacher.
          493_blockly_ed_s.jpg

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

          Support us

          ioBroker
          Community Adapters
          Donate

          773
          Online

          31.7k
          Users

          79.9k
          Topics

          1.3m
          Posts

          3
          3
          1591
          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