Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. VORLAGE: Batterieüberwachung HomematicIP mit Blockly

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    739

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

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

VORLAGE: Batterieüberwachung HomematicIP mit Blockly

Geplant Angeheftet Gesperrt Verschoben Blockly
javascripttemplateblockly
27 Beiträge 5 Kommentatoren 2.7k Aufrufe 3 Beobachtet
  • Ä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.
  • David G.D David G.

    Hallo,

    ich habe mir dank der Hilfe im Forum ein Blockly zur Batterieüberwachung meiner HomaticIP-Geräte zusammengeklickt.
    (Ich weiß, dass es schon ein Universalskript gibt.)
    Es werden automatisch alle Geräte gefunden und mit Ihrem Namen in einer HTML Tabelle formatiert.

    Die Tabelle wird jede Minute neu generiert.

    Das Skript kann für alles verwendet werden, was mit wahr und falsch abgebildet werden kann.
    Erreichbarkeit von Geräten, Batterie, Fensterstatus etc. ......

    Im Script ist denke ich alles soweit erklärt.
    Bin nicht soo fit in Blockly, keine Ahnung ob manches Überflüssig oder falsch ist .....
    Scheint aber alles zu klappen.

    Screenshot_20210105-094306_Fully Kiosk Browser.jpg

    Die Formatierung der Tabelle und der Texte kann mit ein wenig HTML angepasst werden.

    Unbenannt.JPG

    <xml xmlns="https://developers.google.com/blockly/xml">
      <variables>
        <variable id="q=Q/4S_nykMJv,R-%5SK">id</variable>
        <variable id="SKh+R[G%ptX]9uv^hB,!">wahr</variable>
        <variable id=";O,|I4cqK/q|U6dt.?NN">falsch</variable>
        <variable id="%62`(Q[9y{,UvP3o}T|/">i</variable>
        <variable id="GI^dumJfw0)4Nzi2HVw`">ParentID</variable>
      </variables>
      <block type="schedule" id="=M?}+$74/A|+fu)hob?*" x="1188" y="463">
        <field name="SCHEDULE">* * * * *</field>
        <statement name="STATEMENT">
          <block type="variables_set" id="dZ;P0S=A~Ue9U{sxWFjF">
            <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
            <value name="VALUE">
              <block type="text" id="1Rdn%LJ,UsyiTo}^fQyi">
                <field name="TEXT"></field>
              </block>
            </value>
            <next>
              <block type="variables_set" id="JoJ{Z)?hFmCa3B.z1B~;">
                <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                <value name="VALUE">
                  <block type="text" id="I)B703c6WPKo}@_L8ai^">
                    <field name="TEXT"></field>
                  </block>
                </value>
                <next>
                  <block type="controls_forEach" id="VXic[*WK}rqr0-!U:EFy">
                    <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                    <value name="LIST">
                      <block type="selector" id="vI2MD73D2c=a4z1nh`=`">
                        <field name="TEXT">hm-rpc.0.*.0.LOW_BAT</field>
                      </block>
                    </value>
                    <statement name="DO">
                      <block type="variables_set" id="5%|F-TdcQ{4t*4:+v!]w">
                        <field name="VAR" id="GI^dumJfw0)4Nzi2HVw`">ParentID</field>
                        <value name="VALUE">
                          <block type="text_getSubstring" id="`QFsslqwXJcDRwUQ_z;$" inline="false">
                            <mutation at1="true" at2="true"></mutation>
                            <field name="WHERE1">FROM_START</field>
                            <field name="WHERE2">FROM_START</field>
                            <value name="STRING">
                              <block type="variables_get" id="2K5mqiyK-@A,u?+%_r-I">
                                <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                              </block>
                            </value>
                            <value name="AT1">
                              <block type="math_number" id="_q*GktBrg4YS~$oc@#.$">
                                <field name="NUM">1</field>
                              </block>
                            </value>
                            <value name="AT2">
                              <block type="math_arithmetic" id="BHxb,^*vvK^,t3OWIp~N" inline="false">
                                <field name="OP">MINUS</field>
                                <value name="A">
                                  <shadow type="math_number" id="V4^8g/Fq~(QA(Gn,=_g9">
                                    <field name="NUM">1</field>
                                  </shadow>
                                  <block type="text_indexOf" id=";@~lMPhmFt@}zblOq8}z" inline="false">
                                    <field name="END">LAST</field>
                                    <value name="VALUE">
                                      <block type="variables_get" id="ZxgO1Qq@jpN)?*](o;s%">
                                        <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                                      </block>
                                    </value>
                                    <value name="FIND">
                                      <shadow type="text" id="xWkYFdwM0dR_rBOFM|zY">
                                        <field name="TEXT">.0.LOW_BAT</field>
                                      </shadow>
                                    </value>
                                  </block>
                                </value>
                                <value name="B">
                                  <shadow type="math_number" id="h-25vZ[WT=N4?QJ3saG%">
                                    <field name="NUM">1</field>
                                  </shadow>
                                </value>
                              </block>
                            </value>
                          </block>
                        </value>
                        <next>
                          <block type="controls_if" id="[t4#.[R7stu?S`@$u3BW">
                            <mutation else="1"></mutation>
                            <value name="IF0">
                              <block type="get_value_var" id="Iq+@rH{{dyJ9HWgoI~T4">
                                <field name="ATTR">val</field>
                                <value name="OID">
                                  <shadow type="text">
                                    <field name="TEXT"></field>
                                  </shadow>
                                  <block type="variables_get" id="B)n%:}PX%zZGvt#JtbR(">
                                    <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                                  </block>
                                </value>
                              </block>
                            </value>
                            <statement name="DO0">
                              <block type="variables_set" id="S+Gd]Tap?Ej$]1P.V.(_">
                                <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
                                <value name="VALUE">
                                  <block type="text_join" id="5?soV=/V!gT:YP;%=C7*">
                                    <mutation items="4"></mutation>
                                    <value name="ADD0">
                                      <block type="variables_get" id="t5Hgf|mSwoVqQ}(:~9Y7">
                                        <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
                                      </block>
                                    </value>
                                    <value name="ADD1">
                                      <block type="text" id="xa}qmEJ|8{^pBcPkIB|C">
                                        <field name="TEXT">&lt;tr&gt;&lt;td&gt;</field>
                                      </block>
                                    </value>
                                    <value name="ADD2">
                                      <block type="get_attr" id="N%K=-ar/nF2t;vp68{4;" inline="false">
                                        <value name="PATH">
                                          <shadow type="text" id="NEKfB0mKYNB9yf[p[(LM">
                                            <field name="TEXT">common.name</field>
                                          </shadow>
                                        </value>
                                        <value name="OBJECT">
                                          <block type="procedures_callcustomreturn" id="mBvJ_WhP|}o*z}@Nf9Gx">
                                            <mutation name="GetObjectByID">
                                              <arg name="id"></arg>
                                            </mutation>
                                            <value name="ARG0">
                                              <block type="variables_get" id="D:=8pGehBP5ZOKH2LV2?">
                                                <field name="VAR" id="GI^dumJfw0)4Nzi2HVw`">ParentID</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <value name="ADD3">
                                      <block type="text" id="2WmqZ^-K89eQ9Z!T.Sg!">
                                        <field name="TEXT">&lt;/td&gt; &lt;td ALIGN="CENTER"&gt;&lt;font size="3"&gt;&lt;b&gt;&lt;font color=red&gt;●&lt;/font&gt; &lt;/td&gt; &lt;/tr&gt;</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </statement>
                            <statement name="ELSE">
                              <block type="variables_set" id="sh;fX7NWP+]`^FcnbVjU">
                                <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                                <value name="VALUE">
                                  <block type="text_join" id="|Xz[CQA5p*BCe{uu*,ir">
                                    <mutation items="4"></mutation>
                                    <value name="ADD0">
                                      <block type="variables_get" id="F4J0jDpn[Na[1p8Ruf=%">
                                        <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                                      </block>
                                    </value>
                                    <value name="ADD1">
                                      <block type="text" id="C+UnHlb%GLN.|tA3o,`C">
                                        <field name="TEXT">&lt;tr&gt;&lt;td&gt;</field>
                                      </block>
                                    </value>
                                    <value name="ADD2">
                                      <block type="get_attr" id="=z[7ycSqfif0h~4Sz*|=" inline="false">
                                        <value name="PATH">
                                          <shadow type="text" id="C*^0Xt3cP0zy%F4#veYO">
                                            <field name="TEXT">common.name</field>
                                          </shadow>
                                        </value>
                                        <value name="OBJECT">
                                          <block type="procedures_callcustomreturn" id=",{*p|W,%6Npy^h.,(XSP">
                                            <mutation name="GetObjectByID">
                                              <arg name="id"></arg>
                                            </mutation>
                                            <value name="ARG0">
                                              <block type="variables_get" id="dgPrr_H^_1Z}0!cS+Iw{">
                                                <field name="VAR" id="GI^dumJfw0)4Nzi2HVw`">ParentID</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <value name="ADD3">
                                      <block type="text" id="yNUk#G;)wLb1Xq!/%A[M">
                                        <field name="TEXT">&lt;/td&gt; &lt;td ALIGN="CENTER"&gt;&lt;font size="3"&gt;&lt;b&gt;&lt;font color=green&gt;●&lt;/font&gt; &lt;/td&gt; &lt;/tr&gt;</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </statement>
                          </block>
                        </next>
                      </block>
                    </statement>
                    <next>
                      <block type="update" id="|*Wyl;F2(g0J1J^:!x68">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">0_userdata.0.VIS.Akkumeldungen.hmip_akku_tabelle</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="text_join" id="CF52S*}*)[vTA|Y~w+@1">
                            <mutation items="5"></mutation>
                            <value name="ADD0">
                              <block type="text" id="yxd%qU_@2Bv39AdiqwQ*">
                                <field name="TEXT">&lt;table style="width: 100%;"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=100%&gt;&lt;b&gt;&lt;font size="3"&gt;Gerät&lt;/b&gt;&lt;/td&gt;&lt;/font&gt; &lt;td ALIGN="CENTER"&gt;&lt;b&gt;&lt;font size="3"&gt;Batteriestatus&lt;/b&gt;&lt;/td&gt;&lt;/font&gt; &lt;/tr&gt;</field>
                              </block>
                            </value>
                            <value name="ADD1">
                              <block type="text" id="`hArP:}QO5fa:5w(*q*y">
                                <field name="TEXT">&lt;tr&gt; &lt;td colspan="2"&gt; &lt;hr&gt; &lt;/dt&gt; &lt;/tr&gt;</field>
                              </block>
                            </value>
                            <value name="ADD2">
                              <block type="variables_get" id="!NM$6J~B9mGR:#`~#8V_">
                                <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                              </block>
                            </value>
                            <value name="ADD3">
                              <block type="variables_get" id="JwXRwyMGnb)]ut6eTQc-">
                                <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
                              </block>
                            </value>
                            <value name="ADD4">
                              <block type="text" id="#E/@/Eiu!x|i4nvHP^wR">
                                <field name="TEXT">&lt;/tbody&gt; &lt;/table&gt;</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </statement>
      </block>
      <block type="procedures_defcustomreturn" id="z1v5P%=uhnATnl`x*fMU" x="1287" y="462">
        <mutation statements="false">
          <arg name="id" varid="q=Q/4S_nykMJv,R-%5SK"></arg>
        </mutation>
        <field name="NAME">GetObjectByID</field>
        <field name="SCRIPT">cmV0dXJuIGdldE9iamVjdChpZCk7</field>
        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
      </block>
      <block type="comment" id="7b)G*.(ks+o+9/KF?==d" x="1737" y="462">
        <field name="COMMENT">Zum generieren des Namens nötig</field>
      </block>
      <block type="comment" id=",nhkIOk5!S-bl(WQ%W2," x="1763" y="562">
        <field name="COMMENT">Pfad zum überwachten Status. Überall wo sich der Pfad ändern kann ein "*" setzen</field>
      </block>
      <block type="comment" id="E+[,5)F;s:Baq^:PP%:]" x="1388" y="737">
        <field name="COMMENT">Generierung Name</field>
      </block>
      <block type="comment" id="^}0=ESmiwoVU9u;$fX0$" x="2063" y="712">
        <field name="COMMENT">Hier den den ende des Pfades eintragen</field>
      </block>
      <block type="comment" id="7[:rRJVBk6Rksi_#t88m" x="1788" y="863">
        <field name="COMMENT">Für Tabelle nötig</field>
      </block>
      <block type="comment" id="19ql9!tQemk6O^f:c#-L" x="1938" y="913">
        <field name="COMMENT">Erzeugung des Namess des Objektes in der Tabelle</field>
      </block>
      <block type="comment" id="0i38/qZ%GIMlxFe)xf/#" x="2087" y="988">
        <field name="COMMENT">Für Tabelle nötig, hier kann die Farbe des Punktes angepasst werden</field>
      </block>
      <block type="comment" id="ywl:gJJfGwXIx+y1.dD{" x="2088" y="1088">
        <field name="COMMENT">Alles nochmal für "false"</field>
      </block>
      <block type="comment" id="BUtvX0Od,/2F^?SiC^^R" x="1987" y="1238">
        <field name="COMMENT">Für Tabelle nötig</field>
      </block>
      <block type="comment" id=".aipRCl^|NRuCa:O#P-y" x="1188" y="1287">
        <field name="COMMENT">Hier einen selber angelegten Datenpunkt angeben</field>
      </block>
      <block type="comment" id="yI+58LiZf6zrWcujT:fK" x="1937" y="1288">
        <field name="COMMENT">Trennlinie, bei Bedarf entfernen</field>
      </block>
      <block type="comment" id="K9Wwg*_,UJZ|3J{1`}Ry" x="1813" y="1363">
        <field name="COMMENT">Für Tabelle nötig</field>
      </block>
    </xml>
    
    Dr. BakteriusD Online
    Dr. BakteriusD Online
    Dr. Bakterius
    Most Active
    schrieb am zuletzt editiert von
    #2

    @David-G Danke! Aber ich denke, es hätte auch eine Variable (statt 'falsch' und 'wahr') gereicht.

    David G.D 1 Antwort Letzte Antwort
    0
    • David G.D David G.

      Hallo,

      ich habe mir dank der Hilfe im Forum ein Blockly zur Batterieüberwachung meiner HomaticIP-Geräte zusammengeklickt.
      (Ich weiß, dass es schon ein Universalskript gibt.)
      Es werden automatisch alle Geräte gefunden und mit Ihrem Namen in einer HTML Tabelle formatiert.

      Die Tabelle wird jede Minute neu generiert.

      Das Skript kann für alles verwendet werden, was mit wahr und falsch abgebildet werden kann.
      Erreichbarkeit von Geräten, Batterie, Fensterstatus etc. ......

      Im Script ist denke ich alles soweit erklärt.
      Bin nicht soo fit in Blockly, keine Ahnung ob manches Überflüssig oder falsch ist .....
      Scheint aber alles zu klappen.

      Screenshot_20210105-094306_Fully Kiosk Browser.jpg

      Die Formatierung der Tabelle und der Texte kann mit ein wenig HTML angepasst werden.

      Unbenannt.JPG

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="q=Q/4S_nykMJv,R-%5SK">id</variable>
          <variable id="SKh+R[G%ptX]9uv^hB,!">wahr</variable>
          <variable id=";O,|I4cqK/q|U6dt.?NN">falsch</variable>
          <variable id="%62`(Q[9y{,UvP3o}T|/">i</variable>
          <variable id="GI^dumJfw0)4Nzi2HVw`">ParentID</variable>
        </variables>
        <block type="schedule" id="=M?}+$74/A|+fu)hob?*" x="1188" y="463">
          <field name="SCHEDULE">* * * * *</field>
          <statement name="STATEMENT">
            <block type="variables_set" id="dZ;P0S=A~Ue9U{sxWFjF">
              <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
              <value name="VALUE">
                <block type="text" id="1Rdn%LJ,UsyiTo}^fQyi">
                  <field name="TEXT"></field>
                </block>
              </value>
              <next>
                <block type="variables_set" id="JoJ{Z)?hFmCa3B.z1B~;">
                  <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                  <value name="VALUE">
                    <block type="text" id="I)B703c6WPKo}@_L8ai^">
                      <field name="TEXT"></field>
                    </block>
                  </value>
                  <next>
                    <block type="controls_forEach" id="VXic[*WK}rqr0-!U:EFy">
                      <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                      <value name="LIST">
                        <block type="selector" id="vI2MD73D2c=a4z1nh`=`">
                          <field name="TEXT">hm-rpc.0.*.0.LOW_BAT</field>
                        </block>
                      </value>
                      <statement name="DO">
                        <block type="variables_set" id="5%|F-TdcQ{4t*4:+v!]w">
                          <field name="VAR" id="GI^dumJfw0)4Nzi2HVw`">ParentID</field>
                          <value name="VALUE">
                            <block type="text_getSubstring" id="`QFsslqwXJcDRwUQ_z;$" inline="false">
                              <mutation at1="true" at2="true"></mutation>
                              <field name="WHERE1">FROM_START</field>
                              <field name="WHERE2">FROM_START</field>
                              <value name="STRING">
                                <block type="variables_get" id="2K5mqiyK-@A,u?+%_r-I">
                                  <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                                </block>
                              </value>
                              <value name="AT1">
                                <block type="math_number" id="_q*GktBrg4YS~$oc@#.$">
                                  <field name="NUM">1</field>
                                </block>
                              </value>
                              <value name="AT2">
                                <block type="math_arithmetic" id="BHxb,^*vvK^,t3OWIp~N" inline="false">
                                  <field name="OP">MINUS</field>
                                  <value name="A">
                                    <shadow type="math_number" id="V4^8g/Fq~(QA(Gn,=_g9">
                                      <field name="NUM">1</field>
                                    </shadow>
                                    <block type="text_indexOf" id=";@~lMPhmFt@}zblOq8}z" inline="false">
                                      <field name="END">LAST</field>
                                      <value name="VALUE">
                                        <block type="variables_get" id="ZxgO1Qq@jpN)?*](o;s%">
                                          <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                                        </block>
                                      </value>
                                      <value name="FIND">
                                        <shadow type="text" id="xWkYFdwM0dR_rBOFM|zY">
                                          <field name="TEXT">.0.LOW_BAT</field>
                                        </shadow>
                                      </value>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <shadow type="math_number" id="h-25vZ[WT=N4?QJ3saG%">
                                      <field name="NUM">1</field>
                                    </shadow>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                          <next>
                            <block type="controls_if" id="[t4#.[R7stu?S`@$u3BW">
                              <mutation else="1"></mutation>
                              <value name="IF0">
                                <block type="get_value_var" id="Iq+@rH{{dyJ9HWgoI~T4">
                                  <field name="ATTR">val</field>
                                  <value name="OID">
                                    <shadow type="text">
                                      <field name="TEXT"></field>
                                    </shadow>
                                    <block type="variables_get" id="B)n%:}PX%zZGvt#JtbR(">
                                      <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <statement name="DO0">
                                <block type="variables_set" id="S+Gd]Tap?Ej$]1P.V.(_">
                                  <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
                                  <value name="VALUE">
                                    <block type="text_join" id="5?soV=/V!gT:YP;%=C7*">
                                      <mutation items="4"></mutation>
                                      <value name="ADD0">
                                        <block type="variables_get" id="t5Hgf|mSwoVqQ}(:~9Y7">
                                          <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
                                        </block>
                                      </value>
                                      <value name="ADD1">
                                        <block type="text" id="xa}qmEJ|8{^pBcPkIB|C">
                                          <field name="TEXT">&lt;tr&gt;&lt;td&gt;</field>
                                        </block>
                                      </value>
                                      <value name="ADD2">
                                        <block type="get_attr" id="N%K=-ar/nF2t;vp68{4;" inline="false">
                                          <value name="PATH">
                                            <shadow type="text" id="NEKfB0mKYNB9yf[p[(LM">
                                              <field name="TEXT">common.name</field>
                                            </shadow>
                                          </value>
                                          <value name="OBJECT">
                                            <block type="procedures_callcustomreturn" id="mBvJ_WhP|}o*z}@Nf9Gx">
                                              <mutation name="GetObjectByID">
                                                <arg name="id"></arg>
                                              </mutation>
                                              <value name="ARG0">
                                                <block type="variables_get" id="D:=8pGehBP5ZOKH2LV2?">
                                                  <field name="VAR" id="GI^dumJfw0)4Nzi2HVw`">ParentID</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <value name="ADD3">
                                        <block type="text" id="2WmqZ^-K89eQ9Z!T.Sg!">
                                          <field name="TEXT">&lt;/td&gt; &lt;td ALIGN="CENTER"&gt;&lt;font size="3"&gt;&lt;b&gt;&lt;font color=red&gt;●&lt;/font&gt; &lt;/td&gt; &lt;/tr&gt;</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </statement>
                              <statement name="ELSE">
                                <block type="variables_set" id="sh;fX7NWP+]`^FcnbVjU">
                                  <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                                  <value name="VALUE">
                                    <block type="text_join" id="|Xz[CQA5p*BCe{uu*,ir">
                                      <mutation items="4"></mutation>
                                      <value name="ADD0">
                                        <block type="variables_get" id="F4J0jDpn[Na[1p8Ruf=%">
                                          <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                                        </block>
                                      </value>
                                      <value name="ADD1">
                                        <block type="text" id="C+UnHlb%GLN.|tA3o,`C">
                                          <field name="TEXT">&lt;tr&gt;&lt;td&gt;</field>
                                        </block>
                                      </value>
                                      <value name="ADD2">
                                        <block type="get_attr" id="=z[7ycSqfif0h~4Sz*|=" inline="false">
                                          <value name="PATH">
                                            <shadow type="text" id="C*^0Xt3cP0zy%F4#veYO">
                                              <field name="TEXT">common.name</field>
                                            </shadow>
                                          </value>
                                          <value name="OBJECT">
                                            <block type="procedures_callcustomreturn" id=",{*p|W,%6Npy^h.,(XSP">
                                              <mutation name="GetObjectByID">
                                                <arg name="id"></arg>
                                              </mutation>
                                              <value name="ARG0">
                                                <block type="variables_get" id="dgPrr_H^_1Z}0!cS+Iw{">
                                                  <field name="VAR" id="GI^dumJfw0)4Nzi2HVw`">ParentID</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                        </block>
                                      </value>
                                      <value name="ADD3">
                                        <block type="text" id="yNUk#G;)wLb1Xq!/%A[M">
                                          <field name="TEXT">&lt;/td&gt; &lt;td ALIGN="CENTER"&gt;&lt;font size="3"&gt;&lt;b&gt;&lt;font color=green&gt;●&lt;/font&gt; &lt;/td&gt; &lt;/tr&gt;</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </statement>
                            </block>
                          </next>
                        </block>
                      </statement>
                      <next>
                        <block type="update" id="|*Wyl;F2(g0J1J^:!x68">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">0_userdata.0.VIS.Akkumeldungen.hmip_akku_tabelle</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="text_join" id="CF52S*}*)[vTA|Y~w+@1">
                              <mutation items="5"></mutation>
                              <value name="ADD0">
                                <block type="text" id="yxd%qU_@2Bv39AdiqwQ*">
                                  <field name="TEXT">&lt;table style="width: 100%;"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=100%&gt;&lt;b&gt;&lt;font size="3"&gt;Gerät&lt;/b&gt;&lt;/td&gt;&lt;/font&gt; &lt;td ALIGN="CENTER"&gt;&lt;b&gt;&lt;font size="3"&gt;Batteriestatus&lt;/b&gt;&lt;/td&gt;&lt;/font&gt; &lt;/tr&gt;</field>
                                </block>
                              </value>
                              <value name="ADD1">
                                <block type="text" id="`hArP:}QO5fa:5w(*q*y">
                                  <field name="TEXT">&lt;tr&gt; &lt;td colspan="2"&gt; &lt;hr&gt; &lt;/dt&gt; &lt;/tr&gt;</field>
                                </block>
                              </value>
                              <value name="ADD2">
                                <block type="variables_get" id="!NM$6J~B9mGR:#`~#8V_">
                                  <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                                </block>
                              </value>
                              <value name="ADD3">
                                <block type="variables_get" id="JwXRwyMGnb)]ut6eTQc-">
                                  <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
                                </block>
                              </value>
                              <value name="ADD4">
                                <block type="text" id="#E/@/Eiu!x|i4nvHP^wR">
                                  <field name="TEXT">&lt;/tbody&gt; &lt;/table&gt;</field>
                                </block>
                              </value>
                            </block>
                          </value>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </next>
            </block>
          </statement>
        </block>
        <block type="procedures_defcustomreturn" id="z1v5P%=uhnATnl`x*fMU" x="1287" y="462">
          <mutation statements="false">
            <arg name="id" varid="q=Q/4S_nykMJv,R-%5SK"></arg>
          </mutation>
          <field name="NAME">GetObjectByID</field>
          <field name="SCRIPT">cmV0dXJuIGdldE9iamVjdChpZCk7</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        </block>
        <block type="comment" id="7b)G*.(ks+o+9/KF?==d" x="1737" y="462">
          <field name="COMMENT">Zum generieren des Namens nötig</field>
        </block>
        <block type="comment" id=",nhkIOk5!S-bl(WQ%W2," x="1763" y="562">
          <field name="COMMENT">Pfad zum überwachten Status. Überall wo sich der Pfad ändern kann ein "*" setzen</field>
        </block>
        <block type="comment" id="E+[,5)F;s:Baq^:PP%:]" x="1388" y="737">
          <field name="COMMENT">Generierung Name</field>
        </block>
        <block type="comment" id="^}0=ESmiwoVU9u;$fX0$" x="2063" y="712">
          <field name="COMMENT">Hier den den ende des Pfades eintragen</field>
        </block>
        <block type="comment" id="7[:rRJVBk6Rksi_#t88m" x="1788" y="863">
          <field name="COMMENT">Für Tabelle nötig</field>
        </block>
        <block type="comment" id="19ql9!tQemk6O^f:c#-L" x="1938" y="913">
          <field name="COMMENT">Erzeugung des Namess des Objektes in der Tabelle</field>
        </block>
        <block type="comment" id="0i38/qZ%GIMlxFe)xf/#" x="2087" y="988">
          <field name="COMMENT">Für Tabelle nötig, hier kann die Farbe des Punktes angepasst werden</field>
        </block>
        <block type="comment" id="ywl:gJJfGwXIx+y1.dD{" x="2088" y="1088">
          <field name="COMMENT">Alles nochmal für "false"</field>
        </block>
        <block type="comment" id="BUtvX0Od,/2F^?SiC^^R" x="1987" y="1238">
          <field name="COMMENT">Für Tabelle nötig</field>
        </block>
        <block type="comment" id=".aipRCl^|NRuCa:O#P-y" x="1188" y="1287">
          <field name="COMMENT">Hier einen selber angelegten Datenpunkt angeben</field>
        </block>
        <block type="comment" id="yI+58LiZf6zrWcujT:fK" x="1937" y="1288">
          <field name="COMMENT">Trennlinie, bei Bedarf entfernen</field>
        </block>
        <block type="comment" id="K9Wwg*_,UJZ|3J{1`}Ry" x="1813" y="1363">
          <field name="COMMENT">Für Tabelle nötig</field>
        </block>
      </xml>
      
      dslraserD Offline
      dslraserD Offline
      dslraser
      Forum Testing Most Active
      schrieb am zuletzt editiert von dslraser
      #3

      @David-G
      Ich mache das hier so ähnlich, nur das ich alias verwende (weil man dann "schöne Namen" vergeben kann) und keinen Zeitplan (oder jede Minute) verwende, dafür könntest Du einen Selektor verwenden, dann wird nur getriggert wenn sich was ändert bzw. eine Batterie leer ausgibt.

      Edit: sieht dann bei mir z.B. so aus (die HTML Ausgabe ist über die Datenpunkte veränderbar)


      Screenshot_20210105-134159_Chrome.jpg

      oder so

      Screenshot_20210105-134219_Chrome.jpg

      1 Antwort Letzte Antwort
      0
      • Dr. BakteriusD Dr. Bakterius

        @David-G Danke! Aber ich denke, es hätte auch eine Variable (statt 'falsch' und 'wahr') gereicht.

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

        @Dr-Bakterius

        Das habe ich gemacht, da ich so leichter den grünen und roten Punkt zuweisen kann.
        Und ich habe volle und leere Batterien nicht gemischt angezeigt.
        Keine Ahnung, ob das beides mit einer Variablen klappt.

        Ist wenig eigenes Können bei ^^, wirklich viel kombiniert was ich gelesen habe.

        @dslraser

        Den Trigger könnte ich wirklich noch ändern, da hast du recht.
        Mit den Namen stimmt.
        Das gute ist, dass in meinem Skript wenigsten der Name genommen wird und nicht die ID.
        Im Rega-Adapter kann man ja auch ausstellen, dass der Name synchronisiert wird. So kann man den auch unter rpc.0 ordentliche Namen vergeben.
        Habe nicht für alles ein Alias, da grade bei den Heizungen viel in einer Gruppe ist, wo ich nur ein Alias für die Gruppe anlege anstatt für zig Thermostate..

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

        Meine Tabellen für eure Visualisierung klick

        dslraserD 2 Antworten Letzte Antwort
        0
        • David G.D David G.

          @Dr-Bakterius

          Das habe ich gemacht, da ich so leichter den grünen und roten Punkt zuweisen kann.
          Und ich habe volle und leere Batterien nicht gemischt angezeigt.
          Keine Ahnung, ob das beides mit einer Variablen klappt.

          Ist wenig eigenes Können bei ^^, wirklich viel kombiniert was ich gelesen habe.

          @dslraser

          Den Trigger könnte ich wirklich noch ändern, da hast du recht.
          Mit den Namen stimmt.
          Das gute ist, dass in meinem Skript wenigsten der Name genommen wird und nicht die ID.
          Im Rega-Adapter kann man ja auch ausstellen, dass der Name synchronisiert wird. So kann man den auch unter rpc.0 ordentliche Namen vergeben.
          Habe nicht für alles ein Alias, da grade bei den Heizungen viel in einer Gruppe ist, wo ich nur ein Alias für die Gruppe anlege anstatt für zig Thermostate..

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

          @David-G sagte in VORLAGE: Batterieüberwachung HomematicIP mit Blockly:

          Das gute ist, dass in meinem Skript wenigsten der Name genommen wird und nicht die ID.

          Das hat auch wieder Vor und Nachteile. Ich habe es auch mal so gemacht, aber es gibt viele User, die ganz komische Namen vergeben haben...(in der CCU z.B. oder auch anderen Anwendungen die eigene Namen verwenden). Bei mir werden diese Namen auch zur Sprachansage über Alexa benutzt, die sollten sich dann auch aussprechen lassen und sich vernünftig anhören.

          1 Antwort Letzte Antwort
          0
          • David G.D David G.

            @Dr-Bakterius

            Das habe ich gemacht, da ich so leichter den grünen und roten Punkt zuweisen kann.
            Und ich habe volle und leere Batterien nicht gemischt angezeigt.
            Keine Ahnung, ob das beides mit einer Variablen klappt.

            Ist wenig eigenes Können bei ^^, wirklich viel kombiniert was ich gelesen habe.

            @dslraser

            Den Trigger könnte ich wirklich noch ändern, da hast du recht.
            Mit den Namen stimmt.
            Das gute ist, dass in meinem Skript wenigsten der Name genommen wird und nicht die ID.
            Im Rega-Adapter kann man ja auch ausstellen, dass der Name synchronisiert wird. So kann man den auch unter rpc.0 ordentliche Namen vergeben.
            Habe nicht für alles ein Alias, da grade bei den Heizungen viel in einer Gruppe ist, wo ich nur ein Alias für die Gruppe anlege anstatt für zig Thermostate..

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

            @David-G sagte in VORLAGE: Batterieüberwachung HomematicIP mit Blockly:

            Im Rega-Adapter kann man ja auch ausstellen, dass der Name synchronisiert wird. So kann man den auch unter rpc.0 ordentliche Namen vergeben.

            das stimmt, aber es gibt noch viele andere Adapter in denen Batterien sind.

            Habe nicht für alles ein Alias, da grade bei den Heizungen viel in einer Gruppe ist, wo ich nur ein Alias für die Gruppe anlege anstatt für zig Thermostate..

            Ich auch nicht, ist ja auch nicht notwendig. Ich möchte ja nur bestimmte Werte auswerten, für die lege ich halt einen alias an.

            Aber, nicht falsch verstehen, alles keine Kritik. Wir können schließlich alle voneinander lernen.
            Und, jeder kann mach was er möchte.

            David G.D 1 Antwort Letzte Antwort
            0
            • dslraserD dslraser

              @David-G sagte in VORLAGE: Batterieüberwachung HomematicIP mit Blockly:

              Im Rega-Adapter kann man ja auch ausstellen, dass der Name synchronisiert wird. So kann man den auch unter rpc.0 ordentliche Namen vergeben.

              das stimmt, aber es gibt noch viele andere Adapter in denen Batterien sind.

              Habe nicht für alles ein Alias, da grade bei den Heizungen viel in einer Gruppe ist, wo ich nur ein Alias für die Gruppe anlege anstatt für zig Thermostate..

              Ich auch nicht, ist ja auch nicht notwendig. Ich möchte ja nur bestimmte Werte auswerten, für die lege ich halt einen alias an.

              Aber, nicht falsch verstehen, alles keine Kritik. Wir können schließlich alle voneinander lernen.
              Und, jeder kann mach was er möchte.

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

              @dslraser

              Kein Ding, verstehe es nicht falsch.
              Erstens hat jeder andere Anforderungen wo und wie es ins Konzept passen muss.
              Zweitens hat jeder einen anderen Wissensstand wie Dinge umgesetzt werden können.
              Da ist es ja Hilfreich auf andere Vorgehensweisen erfahrenen Usern weitergegeben werden.

              Habe hier im Forum bisher sehr viel Hilfe erfahren dürfen, da probiere ich das, was ich mir erarbeitet habe weiterzugeben für andere.

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

              Meine Tabellen für eure Visualisierung klick

              1 Antwort Letzte Antwort
              1
              • David G.D David G.

                Hallo,

                ich habe mir dank der Hilfe im Forum ein Blockly zur Batterieüberwachung meiner HomaticIP-Geräte zusammengeklickt.
                (Ich weiß, dass es schon ein Universalskript gibt.)
                Es werden automatisch alle Geräte gefunden und mit Ihrem Namen in einer HTML Tabelle formatiert.

                Die Tabelle wird jede Minute neu generiert.

                Das Skript kann für alles verwendet werden, was mit wahr und falsch abgebildet werden kann.
                Erreichbarkeit von Geräten, Batterie, Fensterstatus etc. ......

                Im Script ist denke ich alles soweit erklärt.
                Bin nicht soo fit in Blockly, keine Ahnung ob manches Überflüssig oder falsch ist .....
                Scheint aber alles zu klappen.

                Screenshot_20210105-094306_Fully Kiosk Browser.jpg

                Die Formatierung der Tabelle und der Texte kann mit ein wenig HTML angepasst werden.

                Unbenannt.JPG

                <xml xmlns="https://developers.google.com/blockly/xml">
                  <variables>
                    <variable id="q=Q/4S_nykMJv,R-%5SK">id</variable>
                    <variable id="SKh+R[G%ptX]9uv^hB,!">wahr</variable>
                    <variable id=";O,|I4cqK/q|U6dt.?NN">falsch</variable>
                    <variable id="%62`(Q[9y{,UvP3o}T|/">i</variable>
                    <variable id="GI^dumJfw0)4Nzi2HVw`">ParentID</variable>
                  </variables>
                  <block type="schedule" id="=M?}+$74/A|+fu)hob?*" x="1188" y="463">
                    <field name="SCHEDULE">* * * * *</field>
                    <statement name="STATEMENT">
                      <block type="variables_set" id="dZ;P0S=A~Ue9U{sxWFjF">
                        <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
                        <value name="VALUE">
                          <block type="text" id="1Rdn%LJ,UsyiTo}^fQyi">
                            <field name="TEXT"></field>
                          </block>
                        </value>
                        <next>
                          <block type="variables_set" id="JoJ{Z)?hFmCa3B.z1B~;">
                            <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                            <value name="VALUE">
                              <block type="text" id="I)B703c6WPKo}@_L8ai^">
                                <field name="TEXT"></field>
                              </block>
                            </value>
                            <next>
                              <block type="controls_forEach" id="VXic[*WK}rqr0-!U:EFy">
                                <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                                <value name="LIST">
                                  <block type="selector" id="vI2MD73D2c=a4z1nh`=`">
                                    <field name="TEXT">hm-rpc.0.*.0.LOW_BAT</field>
                                  </block>
                                </value>
                                <statement name="DO">
                                  <block type="variables_set" id="5%|F-TdcQ{4t*4:+v!]w">
                                    <field name="VAR" id="GI^dumJfw0)4Nzi2HVw`">ParentID</field>
                                    <value name="VALUE">
                                      <block type="text_getSubstring" id="`QFsslqwXJcDRwUQ_z;$" inline="false">
                                        <mutation at1="true" at2="true"></mutation>
                                        <field name="WHERE1">FROM_START</field>
                                        <field name="WHERE2">FROM_START</field>
                                        <value name="STRING">
                                          <block type="variables_get" id="2K5mqiyK-@A,u?+%_r-I">
                                            <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                                          </block>
                                        </value>
                                        <value name="AT1">
                                          <block type="math_number" id="_q*GktBrg4YS~$oc@#.$">
                                            <field name="NUM">1</field>
                                          </block>
                                        </value>
                                        <value name="AT2">
                                          <block type="math_arithmetic" id="BHxb,^*vvK^,t3OWIp~N" inline="false">
                                            <field name="OP">MINUS</field>
                                            <value name="A">
                                              <shadow type="math_number" id="V4^8g/Fq~(QA(Gn,=_g9">
                                                <field name="NUM">1</field>
                                              </shadow>
                                              <block type="text_indexOf" id=";@~lMPhmFt@}zblOq8}z" inline="false">
                                                <field name="END">LAST</field>
                                                <value name="VALUE">
                                                  <block type="variables_get" id="ZxgO1Qq@jpN)?*](o;s%">
                                                    <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                                                  </block>
                                                </value>
                                                <value name="FIND">
                                                  <shadow type="text" id="xWkYFdwM0dR_rBOFM|zY">
                                                    <field name="TEXT">.0.LOW_BAT</field>
                                                  </shadow>
                                                </value>
                                              </block>
                                            </value>
                                            <value name="B">
                                              <shadow type="math_number" id="h-25vZ[WT=N4?QJ3saG%">
                                                <field name="NUM">1</field>
                                              </shadow>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="controls_if" id="[t4#.[R7stu?S`@$u3BW">
                                        <mutation else="1"></mutation>
                                        <value name="IF0">
                                          <block type="get_value_var" id="Iq+@rH{{dyJ9HWgoI~T4">
                                            <field name="ATTR">val</field>
                                            <value name="OID">
                                              <shadow type="text">
                                                <field name="TEXT"></field>
                                              </shadow>
                                              <block type="variables_get" id="B)n%:}PX%zZGvt#JtbR(">
                                                <field name="VAR" id="%62`(Q[9y{,UvP3o}T|/">i</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <statement name="DO0">
                                          <block type="variables_set" id="S+Gd]Tap?Ej$]1P.V.(_">
                                            <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
                                            <value name="VALUE">
                                              <block type="text_join" id="5?soV=/V!gT:YP;%=C7*">
                                                <mutation items="4"></mutation>
                                                <value name="ADD0">
                                                  <block type="variables_get" id="t5Hgf|mSwoVqQ}(:~9Y7">
                                                    <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
                                                  </block>
                                                </value>
                                                <value name="ADD1">
                                                  <block type="text" id="xa}qmEJ|8{^pBcPkIB|C">
                                                    <field name="TEXT">&lt;tr&gt;&lt;td&gt;</field>
                                                  </block>
                                                </value>
                                                <value name="ADD2">
                                                  <block type="get_attr" id="N%K=-ar/nF2t;vp68{4;" inline="false">
                                                    <value name="PATH">
                                                      <shadow type="text" id="NEKfB0mKYNB9yf[p[(LM">
                                                        <field name="TEXT">common.name</field>
                                                      </shadow>
                                                    </value>
                                                    <value name="OBJECT">
                                                      <block type="procedures_callcustomreturn" id="mBvJ_WhP|}o*z}@Nf9Gx">
                                                        <mutation name="GetObjectByID">
                                                          <arg name="id"></arg>
                                                        </mutation>
                                                        <value name="ARG0">
                                                          <block type="variables_get" id="D:=8pGehBP5ZOKH2LV2?">
                                                            <field name="VAR" id="GI^dumJfw0)4Nzi2HVw`">ParentID</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <value name="ADD3">
                                                  <block type="text" id="2WmqZ^-K89eQ9Z!T.Sg!">
                                                    <field name="TEXT">&lt;/td&gt; &lt;td ALIGN="CENTER"&gt;&lt;font size="3"&gt;&lt;b&gt;&lt;font color=red&gt;●&lt;/font&gt; &lt;/td&gt; &lt;/tr&gt;</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                          </block>
                                        </statement>
                                        <statement name="ELSE">
                                          <block type="variables_set" id="sh;fX7NWP+]`^FcnbVjU">
                                            <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                                            <value name="VALUE">
                                              <block type="text_join" id="|Xz[CQA5p*BCe{uu*,ir">
                                                <mutation items="4"></mutation>
                                                <value name="ADD0">
                                                  <block type="variables_get" id="F4J0jDpn[Na[1p8Ruf=%">
                                                    <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                                                  </block>
                                                </value>
                                                <value name="ADD1">
                                                  <block type="text" id="C+UnHlb%GLN.|tA3o,`C">
                                                    <field name="TEXT">&lt;tr&gt;&lt;td&gt;</field>
                                                  </block>
                                                </value>
                                                <value name="ADD2">
                                                  <block type="get_attr" id="=z[7ycSqfif0h~4Sz*|=" inline="false">
                                                    <value name="PATH">
                                                      <shadow type="text" id="C*^0Xt3cP0zy%F4#veYO">
                                                        <field name="TEXT">common.name</field>
                                                      </shadow>
                                                    </value>
                                                    <value name="OBJECT">
                                                      <block type="procedures_callcustomreturn" id=",{*p|W,%6Npy^h.,(XSP">
                                                        <mutation name="GetObjectByID">
                                                          <arg name="id"></arg>
                                                        </mutation>
                                                        <value name="ARG0">
                                                          <block type="variables_get" id="dgPrr_H^_1Z}0!cS+Iw{">
                                                            <field name="VAR" id="GI^dumJfw0)4Nzi2HVw`">ParentID</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <value name="ADD3">
                                                  <block type="text" id="yNUk#G;)wLb1Xq!/%A[M">
                                                    <field name="TEXT">&lt;/td&gt; &lt;td ALIGN="CENTER"&gt;&lt;font size="3"&gt;&lt;b&gt;&lt;font color=green&gt;●&lt;/font&gt; &lt;/td&gt; &lt;/tr&gt;</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                          </block>
                                        </statement>
                                      </block>
                                    </next>
                                  </block>
                                </statement>
                                <next>
                                  <block type="update" id="|*Wyl;F2(g0J1J^:!x68">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                    <field name="OID">0_userdata.0.VIS.Akkumeldungen.hmip_akku_tabelle</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="text_join" id="CF52S*}*)[vTA|Y~w+@1">
                                        <mutation items="5"></mutation>
                                        <value name="ADD0">
                                          <block type="text" id="yxd%qU_@2Bv39AdiqwQ*">
                                            <field name="TEXT">&lt;table style="width: 100%;"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td width=100%&gt;&lt;b&gt;&lt;font size="3"&gt;Gerät&lt;/b&gt;&lt;/td&gt;&lt;/font&gt; &lt;td ALIGN="CENTER"&gt;&lt;b&gt;&lt;font size="3"&gt;Batteriestatus&lt;/b&gt;&lt;/td&gt;&lt;/font&gt; &lt;/tr&gt;</field>
                                          </block>
                                        </value>
                                        <value name="ADD1">
                                          <block type="text" id="`hArP:}QO5fa:5w(*q*y">
                                            <field name="TEXT">&lt;tr&gt; &lt;td colspan="2"&gt; &lt;hr&gt; &lt;/dt&gt; &lt;/tr&gt;</field>
                                          </block>
                                        </value>
                                        <value name="ADD2">
                                          <block type="variables_get" id="!NM$6J~B9mGR:#`~#8V_">
                                            <field name="VAR" id=";O,|I4cqK/q|U6dt.?NN">falsch</field>
                                          </block>
                                        </value>
                                        <value name="ADD3">
                                          <block type="variables_get" id="JwXRwyMGnb)]ut6eTQc-">
                                            <field name="VAR" id="SKh+R[G%ptX]9uv^hB,!">wahr</field>
                                          </block>
                                        </value>
                                        <value name="ADD4">
                                          <block type="text" id="#E/@/Eiu!x|i4nvHP^wR">
                                            <field name="TEXT">&lt;/tbody&gt; &lt;/table&gt;</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </statement>
                  </block>
                  <block type="procedures_defcustomreturn" id="z1v5P%=uhnATnl`x*fMU" x="1287" y="462">
                    <mutation statements="false">
                      <arg name="id" varid="q=Q/4S_nykMJv,R-%5SK"></arg>
                    </mutation>
                    <field name="NAME">GetObjectByID</field>
                    <field name="SCRIPT">cmV0dXJuIGdldE9iamVjdChpZCk7</field>
                    <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                  </block>
                  <block type="comment" id="7b)G*.(ks+o+9/KF?==d" x="1737" y="462">
                    <field name="COMMENT">Zum generieren des Namens nötig</field>
                  </block>
                  <block type="comment" id=",nhkIOk5!S-bl(WQ%W2," x="1763" y="562">
                    <field name="COMMENT">Pfad zum überwachten Status. Überall wo sich der Pfad ändern kann ein "*" setzen</field>
                  </block>
                  <block type="comment" id="E+[,5)F;s:Baq^:PP%:]" x="1388" y="737">
                    <field name="COMMENT">Generierung Name</field>
                  </block>
                  <block type="comment" id="^}0=ESmiwoVU9u;$fX0$" x="2063" y="712">
                    <field name="COMMENT">Hier den den ende des Pfades eintragen</field>
                  </block>
                  <block type="comment" id="7[:rRJVBk6Rksi_#t88m" x="1788" y="863">
                    <field name="COMMENT">Für Tabelle nötig</field>
                  </block>
                  <block type="comment" id="19ql9!tQemk6O^f:c#-L" x="1938" y="913">
                    <field name="COMMENT">Erzeugung des Namess des Objektes in der Tabelle</field>
                  </block>
                  <block type="comment" id="0i38/qZ%GIMlxFe)xf/#" x="2087" y="988">
                    <field name="COMMENT">Für Tabelle nötig, hier kann die Farbe des Punktes angepasst werden</field>
                  </block>
                  <block type="comment" id="ywl:gJJfGwXIx+y1.dD{" x="2088" y="1088">
                    <field name="COMMENT">Alles nochmal für "false"</field>
                  </block>
                  <block type="comment" id="BUtvX0Od,/2F^?SiC^^R" x="1987" y="1238">
                    <field name="COMMENT">Für Tabelle nötig</field>
                  </block>
                  <block type="comment" id=".aipRCl^|NRuCa:O#P-y" x="1188" y="1287">
                    <field name="COMMENT">Hier einen selber angelegten Datenpunkt angeben</field>
                  </block>
                  <block type="comment" id="yI+58LiZf6zrWcujT:fK" x="1937" y="1288">
                    <field name="COMMENT">Trennlinie, bei Bedarf entfernen</field>
                  </block>
                  <block type="comment" id="K9Wwg*_,UJZ|3J{1`}Ry" x="1813" y="1363">
                    <field name="COMMENT">Für Tabelle nötig</field>
                  </block>
                </xml>
                
                dslraserD Offline
                dslraserD Offline
                dslraser
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #8

                @David-G

                kannst Du bitte Deinen Blockly Export nochmal überprüfen ? (ich wollte mir das gerade mal importieren)

                Bildschirmfoto 2021-01-05 um 14.33.05.png

                David G.D 1 Antwort Letzte Antwort
                0
                • dslraserD dslraser

                  @David-G

                  kannst Du bitte Deinen Blockly Export nochmal überprüfen ? (ich wollte mir das gerade mal importieren)

                  Bildschirmfoto 2021-01-05 um 14.33.05.png

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

                  @dslraser

                  Hab es oben nochmal neu reinkopiert.
                  Hab grad nur gesehen, dass es noch einen doofen Namen hat. Wenn man sein Testskript dann doch bis zum Ende verwendet ^^.

                  Ich selber bekomme es importiert, gerade mal getestet.

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

                  Meine Tabellen für eure Visualisierung klick

                  David G.D 1 Antwort Letzte Antwort
                  0
                  • David G.D David G.

                    @dslraser

                    Hab es oben nochmal neu reinkopiert.
                    Hab grad nur gesehen, dass es noch einen doofen Namen hat. Wenn man sein Testskript dann doch bis zum Ende verwendet ^^.

                    Ich selber bekomme es importiert, gerade mal getestet.

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

                    Ich stelle jetzt mal zu meinem eigenen Script eine Frage.....

                    Weiß jemand, ob ich über eine zweite Liste noch die Erreichbarkeit meiner Geräte anzeigen kann?
                    Man könnte den mittleren Teil des Scripts ja quasi kopieren und auf unreach prüfen.

                    Hab nur Sorge, dass die Reihenfolgen der beiden Listen ggf unterschiedlich sind, da ja nicht jedes Gerät was einen unreach State hat auch einen low_bat State hat.

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

                    Meine Tabellen für eure Visualisierung klick

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • David G.D David G.

                      Ich stelle jetzt mal zu meinem eigenen Script eine Frage.....

                      Weiß jemand, ob ich über eine zweite Liste noch die Erreichbarkeit meiner Geräte anzeigen kann?
                      Man könnte den mittleren Teil des Scripts ja quasi kopieren und auf unreach prüfen.

                      Hab nur Sorge, dass die Reihenfolgen der beiden Listen ggf unterschiedlich sind, da ja nicht jedes Gerät was einen unreach State hat auch einen low_bat State hat.

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #11

                      @david-g sagte: nicht jedes Gerät was einen unreach State hat auch einen low_bat State hat.

                      So ist es. Wie soll die Liste aussehen? Wie bisher, nur zusätzliche Anzeige von "UNREACH"? Oder alle Geräte und keine Anzeige bei "LOW_BAT", wenn kein "LOW_BAT" vorhanden?

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      David G.D 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @david-g sagte: nicht jedes Gerät was einen unreach State hat auch einen low_bat State hat.

                        So ist es. Wie soll die Liste aussehen? Wie bisher, nur zusätzliche Anzeige von "UNREACH"? Oder alle Geräte und keine Anzeige bei "LOW_BAT", wenn kein "LOW_BAT" vorhanden?

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

                        @paul53

                        Am coolsten wäre einfach noch eine zweite Spalte mit grünen Punkten.
                        Die Tabelle bekomme ich la leicht erweitert, nur der Inhalt ^^.

                        Gerät I Batterie I Empfang

                        Falls das nicht machbar ist, binde ich einfach 2 Tabellen ein.

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

                        Meine Tabellen für eure Visualisierung klick

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • David G.D David G.

                          @paul53

                          Am coolsten wäre einfach noch eine zweite Spalte mit grünen Punkten.
                          Die Tabelle bekomme ich la leicht erweitert, nur der Inhalt ^^.

                          Gerät I Batterie I Empfang

                          Falls das nicht machbar ist, binde ich einfach 2 Tabellen ein.

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #13

                          @david-g sagte: Am coolsten wäre einfach noch eine zweite Spalte mit grünen Punkten.

                          Das beantwortet meine Frage nicht: Tabelle mit allen Geräten oder nur mit Batterie betriebenen Geräten?

                          Da ohnehin schon die Geräte-ID ermittelt wurde, muss man nur noch den restlichen Teil dranhängen (".0.UNREACH" bzw. ".0.LOW_BAT") und zusätzlich abfragen.

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          David G.D 1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @david-g sagte: Am coolsten wäre einfach noch eine zweite Spalte mit grünen Punkten.

                            Das beantwortet meine Frage nicht: Tabelle mit allen Geräten oder nur mit Batterie betriebenen Geräten?

                            Da ohnehin schon die Geräte-ID ermittelt wurde, muss man nur noch den restlichen Teil dranhängen (".0.UNREACH" bzw. ".0.LOW_BAT") und zusätzlich abfragen.

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

                            @paul53

                            Mit allen Geräten.
                            Dann könnte man zB bei Geräten ohne Batterie einen grauen Punkt anzeigen anstatt einen grünen oder roten (oder keinen, falls es leichter ist).

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

                            Meine Tabellen für eure Visualisierung klick

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • David G.D David G.

                              @paul53

                              Mit allen Geräten.
                              Dann könnte man zB bei Geräten ohne Batterie einen grauen Punkt anzeigen anstatt einen grünen oder roten (oder keinen, falls es leichter ist).

                              paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von
                              #15

                              @david-g sagte: Mit allen Geräten.

                              Dann nimm als Selektor "hm-rpc.0.*.0.UNREACH" und frage zusätzlich

                              parentID + ".0.LOW_BAT"
                              

                              ab, wobei erst mit existstState(id) geprüft werden müsste, ob vorhanden.

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              David G.D 1 Antwort Letzte Antwort
                              0
                              • paul53P paul53

                                @david-g sagte: Mit allen Geräten.

                                Dann nimm als Selektor "hm-rpc.0.*.0.UNREACH" und frage zusätzlich

                                parentID + ".0.LOW_BAT"
                                

                                ab, wobei erst mit existstState(id) geprüft werden müsste, ob vorhanden.

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

                                Selektor ändern bekomme ich noch hin ^^.
                                Danach hört es aber auf. Das mit der parentID verstehe ich eh nicht ganz. Steht da nur Dank deiner Hilfe aus dem Thread wo wir es erarbeitet haben. Genau wie beim existstState(id).
                                2 neue Variablen bräuchte ich doch bestimmt auch oder?

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

                                Meine Tabellen für eure Visualisierung klick

                                paul53P 1 Antwort Letzte Antwort
                                0
                                • David G.D David G.

                                  Selektor ändern bekomme ich noch hin ^^.
                                  Danach hört es aber auf. Das mit der parentID verstehe ich eh nicht ganz. Steht da nur Dank deiner Hilfe aus dem Thread wo wir es erarbeitet haben. Genau wie beim existstState(id).
                                  2 neue Variablen bräuchte ich doch bestimmt auch oder?

                                  paul53P Offline
                                  paul53P Offline
                                  paul53
                                  schrieb am zuletzt editiert von paul53
                                  #17

                                  @david-g sagte:

                                  2 neue Variablen bräuchte ich doch bestimmt auch oder?

                                  Wenn ich mir das Blockly so ansehe, dann eher 3:

                                  @david-g sagte in VORLAGE: Batterieüberwachung HomematicIP mit Blockly:

                                  bei Geräten ohne Batterie einen grauen Punkt anzeigen anstatt einen grünen oder roten

                                  Die HTML-Geschichten muss ich komplett Dir überlassen, denn damit kenne ich mich gar nicht aus.

                                  Eine JS-Funktion checkBatt(id) mit Ergebnis könnte so aussehen

                                  if(existsState(id)) return getState(id).val; // false / true
                                  return -1
                                  

                                  Prinzip der Auswertung:

                                  Bild_2021-01-23_190310.png

                                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                  David G.D 2 Antworten Letzte Antwort
                                  1
                                  • paul53P paul53

                                    @david-g sagte:

                                    2 neue Variablen bräuchte ich doch bestimmt auch oder?

                                    Wenn ich mir das Blockly so ansehe, dann eher 3:

                                    @david-g sagte in VORLAGE: Batterieüberwachung HomematicIP mit Blockly:

                                    bei Geräten ohne Batterie einen grauen Punkt anzeigen anstatt einen grünen oder roten

                                    Die HTML-Geschichten muss ich komplett Dir überlassen, denn damit kenne ich mich gar nicht aus.

                                    Eine JS-Funktion checkBatt(id) mit Ergebnis könnte so aussehen

                                    if(existsState(id)) return getState(id).val; // false / true
                                    return -1
                                    

                                    Prinzip der Auswertung:

                                    Bild_2021-01-23_190310.png

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

                                    @paul53

                                    Danke, werde ich morgen einbauen.

                                    Hoffe die Kids lassen es zu.
                                    Im Moment sind die nicht so ausgelastet (Hoffentlich macht der Kindergarten bald wieder auf....).

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

                                    Meine Tabellen für eure Visualisierung klick

                                    1 Antwort Letzte Antwort
                                    0
                                    • paul53P paul53

                                      @david-g sagte:

                                      2 neue Variablen bräuchte ich doch bestimmt auch oder?

                                      Wenn ich mir das Blockly so ansehe, dann eher 3:

                                      @david-g sagte in VORLAGE: Batterieüberwachung HomematicIP mit Blockly:

                                      bei Geräten ohne Batterie einen grauen Punkt anzeigen anstatt einen grünen oder roten

                                      Die HTML-Geschichten muss ich komplett Dir überlassen, denn damit kenne ich mich gar nicht aus.

                                      Eine JS-Funktion checkBatt(id) mit Ergebnis könnte so aussehen

                                      if(existsState(id)) return getState(id).val; // false / true
                                      return -1
                                      

                                      Prinzip der Auswertung:

                                      Bild_2021-01-23_190310.png

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

                                      @paul53

                                      Die Auswertung packe ich dann "einfach" mit in die Schleife rein, unter das erste "Falls" (nur eben mit getauschten Selektor im oberen Bereich)?

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

                                      Meine Tabellen für eure Visualisierung klick

                                      paul53P 1 Antwort Letzte Antwort
                                      0
                                      • David G.D David G.

                                        @paul53

                                        Die Auswertung packe ich dann "einfach" mit in die Schleife rein, unter das erste "Falls" (nur eben mit getauschten Selektor im oberen Bereich)?

                                        paul53P Offline
                                        paul53P Offline
                                        paul53
                                        schrieb am zuletzt editiert von
                                        #20

                                        @david-g sagte: Die Auswertung packe ich dann "einfach" mit in die Schleife rein, unter das erste "Falls" (nur eben mit getauschten Selektor im oberen Bereich)?

                                        Ja, so sehe ich das.

                                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                        David G.D 1 Antwort Letzte Antwort
                                        0
                                        • paul53P paul53

                                          @david-g sagte: Die Auswertung packe ich dann "einfach" mit in die Schleife rein, unter das erste "Falls" (nur eben mit getauschten Selektor im oberen Bereich)?

                                          Ja, so sehe ich das.

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

                                          @paul53

                                          So, habe jetzt mal alles eingebaut und im Screenshot hervorgehoben was neu ist.
                                          Das Uhrsprungsskript habe ich auf Unreach umgestellt, damit alle Geräte erscheinen.

                                          Oben die neue JS-Funktion, dann die Erzeugung des Textes für die Tabelle.
                                          Weiter unten setzte ich den Text ein.

                                          Jetzt habe ich allerdings überall den grauen Punkt (hab erstmal nur den Text eingefügt zur Übersicht anstatt den HTML Code für den Punkt)

                                          Angeblich hat jetzt kein Gerät eine Batterie.

                                          Screenshot_20210124-120226_Chrome~2.jpg

                                          Screenshot_20210124-121225_Fully Kiosk Browser.jpg

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

                                          Meine Tabellen für eure Visualisierung klick

                                          paul53P 2 Antworten Letzte Antwort
                                          0

                                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                          Registrieren Anmelden
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          562

                                          Online

                                          32.8k

                                          Benutzer

                                          82.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