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. [gelöst] Blockly Abfrage: existiert Datenpunkt?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[gelöst] Blockly Abfrage: existiert Datenpunkt?

Geplant Angeheftet Gesperrt Verschoben Blockly
4 Beiträge 2 Kommentatoren 318 Aufrufe 2 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.
  • padrinoP Offline
    padrinoP Offline
    padrino
    Most Active
    schrieb am zuletzt editiert von padrino
    #1

    Habe hier mehrere Thermometer.
    Die meisten davon zeigen/speichern Temperatur und rel. Luftfeuchtigkeit, einige allerdings nur die Temperatur.
    Nun möchte ich bei denen mit Luftfeuchtigkeit die absolute Luftfeuchtigkeit bzw. den Taupunkt berechnen und vor allem in einen Datenpunkt schreiben - schreiben aber nur, wenn der DP auch existiert. ;)

    Nun habe ich mir das gebastelt:
    blockly_warn.PNG

    <xml xmlns="http://www.w3.org/1999/xhtml">
      <block type="on_ext" id="shq+Wt{q%X3odMQ%0=2[" x="63" y="62">
        <mutation items="1"></mutation>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <value name="OID0">
          <shadow type="field_oid" id="3*B26:4R+2/h89Y4,!x%">
            <field name="oid">default</field>
          </shadow>
          <block type="regex" id="AO?}CUv{s52`JcolaRg2">
            <field name="TEXT">(rflink.0.channels.*.HUM|rflink.0.channels.*.TEMP)</field>
          </block>
        </value>
        <statement name="STATEMENT">
          <block type="controls_if" id="Y,rzft$kpm%r]JMjed}Q">
            <mutation else="1"></mutation>
            <value name="IF0">
              <block type="get_value_var" id="nrnD]Jiq7=DK^S`e%646">
                <field name="ATTR">val</field>
                <value name="OID">
                  <shadow type="text" id="Z@gvmHPRw27H{-r5h+d@">
                    <field name="TEXT"></field>
                  </shadow>
                  <block type="text_join" id="S0z*cVBLUyKG=q7iDY1(">
                    <mutation items="2"></mutation>
                    <value name="ADD0">
                      <block type="text_getSubstring" id="iN^!6F@{s}34]%exxz2^" inline="false">
                        <mutation at1="false" at2="true"></mutation>
                        <field name="WHERE1">FIRST</field>
                        <field name="WHERE2">FROM_START</field>
                        <value name="STRING">
                          <block type="on_source" id="4AzkD`klAEL/JgQH}DY@">
                            <field name="ATTR">id</field>
                          </block>
                        </value>
                        <value name="AT2">
                          <block type="text_indexOf" id="_J2BkP|$7jiD_n`QeJlP">
                            <field name="END">LAST</field>
                            <value name="VALUE">
                              <block type="on_source" id="CJwh!;2gUoZ}P8kzH:D#">
                                <field name="ATTR">id</field>
                              </block>
                            </value>
                            <value name="FIND">
                              <shadow type="text" id="cu$sFK[^2@sIG8,Z.#8a">
                                <field name="TEXT">.</field>
                              </shadow>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="ADD1">
                      <block type="text" id="bi9Z!;p^yo{Db[P[EQOX">
                        <field name="TEXT">DPT</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="debug" id="sN%52;O(N2{Hhtdfh,^Y">
                <field name="Severity">warn</field>
                <value name="TEXT">
                  <shadow type="text" id="M(.mlUkW6[xrY{f(zZ[`">
                    <field name="TEXT">ist da</field>
                  </shadow>
                  <block type="text_join" id="7K0_q?4}FXH5ltkKWGs}">
                    <mutation items="3"></mutation>
                    <value name="ADD0">
                      <block type="text_getSubstring" id="@gxXm;9*1d1Fd=uR+X0H" inline="false">
                        <mutation at1="false" at2="true"></mutation>
                        <field name="WHERE1">FIRST</field>
                        <field name="WHERE2">FROM_START</field>
                        <value name="STRING">
                          <block type="on_source" id="aNWru3!QD$WysU1Uj[sS">
                            <field name="ATTR">id</field>
                          </block>
                        </value>
                        <value name="AT2">
                          <block type="text_indexOf" id="o`WJ*1B1uo`9Q,!OJxvG">
                            <field name="END">LAST</field>
                            <value name="VALUE">
                              <block type="on_source" id="DnQyu:b]tOxcBa38m/w8">
                                <field name="ATTR">id</field>
                              </block>
                            </value>
                            <value name="FIND">
                              <shadow type="text" id="[.paZh{C9pwMbeR$`9ui">
                                <field name="TEXT">.</field>
                              </shadow>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="ADD1">
                      <block type="text" id="FE4zbWb.#iS-KJBkpr,j">
                        <field name="TEXT">DPT</field>
                      </block>
                    </value>
                    <value name="ADD2">
                      <block type="text" id="A1-w|x`cT?NfPI$91[vW">
                        <field name="TEXT"> existiert.</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </statement>
            <statement name="ELSE">
              <block type="debug" id="U4;V%}UAV0BSS2bt$J{g">
                <field name="Severity">error</field>
                <value name="TEXT">
                  <shadow type="text" id="0hcwtlY_TjHW)l;!p0D+">
                    <field name="TEXT">NICHT da</field>
                  </shadow>
                  <block type="text_join" id="eZgc8S=:tj2;]{c;`F]4">
                    <mutation items="3"></mutation>
                    <value name="ADD0">
                      <block type="text_getSubstring" id="jlJcSgWI0.7$Co83]gQx" inline="false">
                        <mutation at1="false" at2="true"></mutation>
                        <field name="WHERE1">FIRST</field>
                        <field name="WHERE2">FROM_START</field>
                        <value name="STRING">
                          <block type="on_source" id="v5zhVjSH^|`oO5A$tuRN">
                            <field name="ATTR">id</field>
                          </block>
                        </value>
                        <value name="AT2">
                          <block type="text_indexOf" id="aRMPgGSr?}+I7v%~h$eu">
                            <field name="END">LAST</field>
                            <value name="VALUE">
                              <block type="on_source" id="nU~5zlE?^1XlAoFL(0}O">
                                <field name="ATTR">id</field>
                              </block>
                            </value>
                            <value name="FIND">
                              <shadow type="text" id=":1Dq=#[N.(fZ1^J{jq6}">
                                <field name="TEXT">.</field>
                              </shadow>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="ADD1">
                      <block type="text" id="l-4h5Ch{yAM]l]WQivRR">
                        <field name="TEXT">DPT</field>
                      </block>
                    </value>
                    <value name="ADD2">
                      <block type="text" id="y_~by@N%P~W4YtO+6jV`">
                        <field name="TEXT"> existiert nicht.</field>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </statement>
          </block>
        </statement>
      </block>
    </xml>
    
    Um zu erkennen, ob ein Datenpunkt existiert.
    Natürlich :relieved: bringt "Falls" eine Warnung, wenn der DP nicht existiert, erfüllt über für mich seinen zweck, da ich so ein "false" und sonst ein "true" erhalte.
    Nun frage ich mich, sauber ist das ja wohl nicht, aber kann man das so lassen - wenn man mit Ausgaben im Log klar kommt. =)
    

    "Geprüft" wird also, ob beim "Pfad" "xxx.HUM" (bzw. "xxx.TEMP") auch "xxx.DPT" existiert.

    dslraserD 1 Antwort Letzte Antwort
    0
    • padrinoP padrino

      Habe hier mehrere Thermometer.
      Die meisten davon zeigen/speichern Temperatur und rel. Luftfeuchtigkeit, einige allerdings nur die Temperatur.
      Nun möchte ich bei denen mit Luftfeuchtigkeit die absolute Luftfeuchtigkeit bzw. den Taupunkt berechnen und vor allem in einen Datenpunkt schreiben - schreiben aber nur, wenn der DP auch existiert. ;)

      Nun habe ich mir das gebastelt:
      blockly_warn.PNG

      <xml xmlns="http://www.w3.org/1999/xhtml">
        <block type="on_ext" id="shq+Wt{q%X3odMQ%0=2[" x="63" y="62">
          <mutation items="1"></mutation>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id="3*B26:4R+2/h89Y4,!x%">
              <field name="oid">default</field>
            </shadow>
            <block type="regex" id="AO?}CUv{s52`JcolaRg2">
              <field name="TEXT">(rflink.0.channels.*.HUM|rflink.0.channels.*.TEMP)</field>
            </block>
          </value>
          <statement name="STATEMENT">
            <block type="controls_if" id="Y,rzft$kpm%r]JMjed}Q">
              <mutation else="1"></mutation>
              <value name="IF0">
                <block type="get_value_var" id="nrnD]Jiq7=DK^S`e%646">
                  <field name="ATTR">val</field>
                  <value name="OID">
                    <shadow type="text" id="Z@gvmHPRw27H{-r5h+d@">
                      <field name="TEXT"></field>
                    </shadow>
                    <block type="text_join" id="S0z*cVBLUyKG=q7iDY1(">
                      <mutation items="2"></mutation>
                      <value name="ADD0">
                        <block type="text_getSubstring" id="iN^!6F@{s}34]%exxz2^" inline="false">
                          <mutation at1="false" at2="true"></mutation>
                          <field name="WHERE1">FIRST</field>
                          <field name="WHERE2">FROM_START</field>
                          <value name="STRING">
                            <block type="on_source" id="4AzkD`klAEL/JgQH}DY@">
                              <field name="ATTR">id</field>
                            </block>
                          </value>
                          <value name="AT2">
                            <block type="text_indexOf" id="_J2BkP|$7jiD_n`QeJlP">
                              <field name="END">LAST</field>
                              <value name="VALUE">
                                <block type="on_source" id="CJwh!;2gUoZ}P8kzH:D#">
                                  <field name="ATTR">id</field>
                                </block>
                              </value>
                              <value name="FIND">
                                <shadow type="text" id="cu$sFK[^2@sIG8,Z.#8a">
                                  <field name="TEXT">.</field>
                                </shadow>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="ADD1">
                        <block type="text" id="bi9Z!;p^yo{Db[P[EQOX">
                          <field name="TEXT">DPT</field>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="debug" id="sN%52;O(N2{Hhtdfh,^Y">
                  <field name="Severity">warn</field>
                  <value name="TEXT">
                    <shadow type="text" id="M(.mlUkW6[xrY{f(zZ[`">
                      <field name="TEXT">ist da</field>
                    </shadow>
                    <block type="text_join" id="7K0_q?4}FXH5ltkKWGs}">
                      <mutation items="3"></mutation>
                      <value name="ADD0">
                        <block type="text_getSubstring" id="@gxXm;9*1d1Fd=uR+X0H" inline="false">
                          <mutation at1="false" at2="true"></mutation>
                          <field name="WHERE1">FIRST</field>
                          <field name="WHERE2">FROM_START</field>
                          <value name="STRING">
                            <block type="on_source" id="aNWru3!QD$WysU1Uj[sS">
                              <field name="ATTR">id</field>
                            </block>
                          </value>
                          <value name="AT2">
                            <block type="text_indexOf" id="o`WJ*1B1uo`9Q,!OJxvG">
                              <field name="END">LAST</field>
                              <value name="VALUE">
                                <block type="on_source" id="DnQyu:b]tOxcBa38m/w8">
                                  <field name="ATTR">id</field>
                                </block>
                              </value>
                              <value name="FIND">
                                <shadow type="text" id="[.paZh{C9pwMbeR$`9ui">
                                  <field name="TEXT">.</field>
                                </shadow>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="ADD1">
                        <block type="text" id="FE4zbWb.#iS-KJBkpr,j">
                          <field name="TEXT">DPT</field>
                        </block>
                      </value>
                      <value name="ADD2">
                        <block type="text" id="A1-w|x`cT?NfPI$91[vW">
                          <field name="TEXT"> existiert.</field>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </statement>
              <statement name="ELSE">
                <block type="debug" id="U4;V%}UAV0BSS2bt$J{g">
                  <field name="Severity">error</field>
                  <value name="TEXT">
                    <shadow type="text" id="0hcwtlY_TjHW)l;!p0D+">
                      <field name="TEXT">NICHT da</field>
                    </shadow>
                    <block type="text_join" id="eZgc8S=:tj2;]{c;`F]4">
                      <mutation items="3"></mutation>
                      <value name="ADD0">
                        <block type="text_getSubstring" id="jlJcSgWI0.7$Co83]gQx" inline="false">
                          <mutation at1="false" at2="true"></mutation>
                          <field name="WHERE1">FIRST</field>
                          <field name="WHERE2">FROM_START</field>
                          <value name="STRING">
                            <block type="on_source" id="v5zhVjSH^|`oO5A$tuRN">
                              <field name="ATTR">id</field>
                            </block>
                          </value>
                          <value name="AT2">
                            <block type="text_indexOf" id="aRMPgGSr?}+I7v%~h$eu">
                              <field name="END">LAST</field>
                              <value name="VALUE">
                                <block type="on_source" id="nU~5zlE?^1XlAoFL(0}O">
                                  <field name="ATTR">id</field>
                                </block>
                              </value>
                              <value name="FIND">
                                <shadow type="text" id=":1Dq=#[N.(fZ1^J{jq6}">
                                  <field name="TEXT">.</field>
                                </shadow>
                              </value>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="ADD1">
                        <block type="text" id="l-4h5Ch{yAM]l]WQivRR">
                          <field name="TEXT">DPT</field>
                        </block>
                      </value>
                      <value name="ADD2">
                        <block type="text" id="y_~by@N%P~W4YtO+6jV`">
                          <field name="TEXT"> existiert nicht.</field>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </statement>
            </block>
          </statement>
        </block>
      </xml>
      
      Um zu erkennen, ob ein Datenpunkt existiert.
      Natürlich :relieved: bringt "Falls" eine Warnung, wenn der DP nicht existiert, erfüllt über für mich seinen zweck, da ich so ein "false" und sonst ein "true" erhalte.
      Nun frage ich mich, sauber ist das ja wohl nicht, aber kann man das so lassen - wenn man mit Ausgaben im Log klar kommt. =)
      

      "Geprüft" wird also, ob beim "Pfad" "xxx.HUM" (bzw. "xxx.TEMP") auch "xxx.DPT" existiert.

      dslraserD Offline
      dslraserD Offline
      dslraser
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #2

      @padrino
      Vielleicht besser so (nur für Deinen Zweck umbauen)
      Siehe auch den Hinweis von Paul, zwei Beiträge darunter

      https://forum.iobroker.net/post/368527

      padrinoP 1 Antwort Letzte Antwort
      1
      • dslraserD dslraser

        @padrino
        Vielleicht besser so (nur für Deinen Zweck umbauen)
        Siehe auch den Hinweis von Paul, zwei Beiträge darunter

        https://forum.iobroker.net/post/368527

        padrinoP Offline
        padrinoP Offline
        padrino
        Most Active
        schrieb am zuletzt editiert von
        #3

        @dslraser
        Cool, funktioniert und sieht sauber aus.
        Vielen Dank (auch an paul53 =))!

        1 Antwort Letzte Antwort
        0
        • padrinoP Offline
          padrinoP Offline
          padrino
          Most Active
          schrieb am zuletzt editiert von padrino
          #4

          Und dank "Kanal ID" kann ich mir auch das selber zurecht schneiden sparen. :sunglasses::+1:

          existiert_DP.PNG

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


          Support us

          ioBroker
          Community Adapters
          Donate

          650

          Online

          32.6k

          Benutzer

          82.3k

          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