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. [Skript Blockly] Füllstände von Talsperren

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    333

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    300

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

[Skript Blockly] Füllstände von Talsperren

Geplant Angeheftet Gesperrt Verschoben Blockly
7 Beiträge 3 Kommentatoren 667 Aufrufe 5 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.
  • F Offline
    F Offline
    fastfoot
    schrieb am zuletzt editiert von fastfoot
    #1

    Hallo

    ich wurde von @Burg_Io gefragt, ob ich ein Skript zur Abfrage der Füllstände von Talsperren schreiben könnte. Abgefragt werden die Füllstände von https://www.talsperren.net/Fullstande/fullstande.html.

    Vorraussetzungen: Es werden zwei Module benötigt, diese müssen in der Javascript Instanz eingetragen werden. cheerio und iconv-lite. cheerio wird zum einfachen Einlesen der Tabelle benötigt, iconv-lite convertiert von ISO-8859-1 zu utf-8.

    • Als Parameter kann der (Teil-)Name einer Talsperre angegeben werden, Wird nichts angegeben dann werden alle vorhandenen Einträge gelistet.
    • Als Daten(Attribute) stehen zur Verfügung:
      • Name
      • Bundesland
      • Vollstau (in Mio m³)
      • Füllstand (in Mio m³)
      • Füllgrad (in%)
      • Stand (Datum)
      • Diff (Differenz zur letzten Messung)
      • Tendenz (steigend, fallend, etc)

    Man könnte das Ergebnis jetzt noch in einen Datenpunkt schreiben und in VIS als Tabelle darstellen, zB mit dem inventwo JSON-Widget

    Viel Spaß damit

    Talsperren.PNG

    <xml xmlns="https://developers.google.com/blockly/xml">
     <variables>
       <variable id="^uDh`3pVmQ8Ig8OT9^IK">Talsperre</variable>
       <variable id="Z]ilx/Dj:2J!hopWa9b/">result</variable>
       <variable id="L:E-/6_DpwSq:Mlw3[S7">i</variable>
     </variables>
     <block type="procedures_defcustomreturn" id="~!MZMJ@vtEc+NEYf.fqu" x="63" y="38">
       <mutation statements="false">
         <arg name="Talsperre" varid="^uDh`3pVmQ8Ig8OT9^IK"></arg>
       </mutation>
       <field name="NAME">Talsperren</field>
       <field name="SCRIPT">Ly8gaHR0cHM6Ly93d3cudGFsc3BlcnJlbi5uZXQvRnVsbHN0YW5kZS9mdWxsc3RhbmRlLmh0bWwNCmxldCBkYmcgPSAhdHJ1ZTsNCmxldCBzZWFyY2hWYWx1ZSA9IFRhbHNwZXJyZTsNCmxldCB1cmw9J2h0dHBzOi8vd3d3LnRhbHNwZXJyZW4ubmV0L0Z1bGxzdGFuZGUvYm9keV9mdWxsc3RhbmRlLmh0bWwnOw0KY29uc3QgaWNvbnYgPSByZXF1aXJlKCdpY29udi1saXRlJyk7DQpjb25zdCBjaGVlcmlvID0gcmVxdWlyZSgnY2hlZXJpbycpLmRlZmF1bHQ7DQpjb25zdCBjb2x1bW5zVGFsc3BlcnJlbiA9IFsnTmFtZScsICdCdW5kZXNsYW5kJywgJ1ZvbGxzdGF1JywgJ0bDvGxsc3RhbmQnLCdGw7xsbGdyYWQnLCAnU3RhbmQnLCAnRGlmZicsJ1RlbmRlbnonXTsNCg0KY29uc3QgbWFwUm93cyA9IChfLCByb3cpID0+IHsNCgljb25zdCBUYWxzcGVycmVuID0ge307DQogICAgaWYoY2hlZXJpbyhyb3cpLmNoaWxkcmVuKCd0ZCcpLmZpcnN0KCkudGV4dCgpLmluZGV4T2YoJ05hbWUnKSA+PTAgKSByZXR1cm47DQoJY2hlZXJpbyhyb3cpLmNoaWxkcmVuKCd0ZCcpLmVhY2goKGluZGV4LCBjZWxsKSA9PiB7DQoJCWNlbGwgPSBjaGVlcmlvLmxvYWQoY2VsbCk7DQoJCXN3aXRjaCAoaW5kZXgpIHsNCgkJCWNhc2UgMjoNCiAgICAgICAgICAgIGNhc2UgMzoNCiAgICAgICAgICAgIGNhc2UgNDogew0KCQkJCVRhbHNwZXJyZW5bY29sdW1uc1RhbHNwZXJyZW5baW5kZXhdXSA9IGNlbGwudGV4dCgpLnJlcGxhY2UoL1wsL2csICcuJykucmVwbGFjZSgvXG5ccy9nLCcnKS50cmltKCkgfHwgbnVsbDsNCgkJCQlicmVhazsNCgkJCX0NCgkJCWRlZmF1bHQ6IHsNCgkJCQlUYWxzcGVycmVuW2NvbHVtbnNUYWxzcGVycmVuW2luZGV4XV0gPSBjZWxsLnRleHQoKS5yZXBsYWNlKC9cLC9nLCAnLicpLnJlcGxhY2UoL1xuXHMvZywnJykudHJpbSgpIHx8IG51bGw7DQoJCQl9DQoJCX0NCgl9KTsNCiAgICBpZihkYmcpIGxvZyhKU09OLnN0cmluZ2lmeShUYWxzcGVycmVuKSk7DQoJcmV0dXJuIFRhbHNwZXJyZW47DQp9Ow0KDQpmdW5jdGlvbiBnZXRUYWxzcGVycmVuKCl7DQogICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCl7DQogICAgICAgIGxldCBvcHRzID0gew0KICAgICAgICAgICAgdXJsLA0KICAgICAgICAgICAgZW5jb2Rpbmc6ICJiaW5hcnkiLA0KICAgICAgICAgICAgaGVhZGVyczogew0KICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJywNCiAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6J2lvYnJva2VyLXNjcmlwdCcNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB0cnl7DQogICAgICAgICAgICByZXF1ZXN0LnBvc3Qob3B0cywoZXJyLHJlc3AsYm9keSk9PnsNCiAgICAgICAgICAgICAgICBpZihlcnIpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9nKGVycik7DQogICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBsZXQgcmVzID0gW107DQogICAgICAgICAgICAgICAgYm9keSA9IGljb252LmRlY29kZShib2R5LCdpc284ODU5MScpOw0KICAgICAgICAgICAgICAgIGxldCBodG1sID0gY2hlZXJpby5sb2FkKGJvZHkpOw0KICAgICAgICAgICAgICAgIGxldCBkYXRhID0gaHRtbCgndGFibGUgW2JvcmRlcj0xXScpLmNoaWxkcmVuKCd0Ym9keScpLmNoaWxkcmVuKCd0cicpLm1hcChtYXBSb3dzKS5nZXQoKTsNCiAgICAgICAgICAgICAgICBkYXRhLmZvckVhY2goKHJvdyk9PnsNCiAgICAgICAgICAgICAgICAgICAgaWYocm93Lk5hbWUuaW5kZXhPZihzZWFyY2hWYWx1ZSkgPj0gMCl7DQogICAgICAgICAgICAgICAgICAgICAgICByZXMucHVzaChyb3cpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICByZXNvbHZlKHJlcyk7DQogICAgICAgICAgICB9KQ0KICAgICAgICB9Y2F0Y2goZSl7DQogICAgICAgICAgICByZWplY3QoZSk7DQogICAgICAgIH0NCiAgICB9KQ0KfQ0KDQpyZXR1cm4gYXdhaXQgZ2V0VGFsc3BlcnJlbigpOw0KDQpnZXREYXRhKCk7</field>
       <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
     </block>
     <block type="variables_set" id="+WGFTvq[^f6l+Y)t{YX%" x="63" y="62">
       <field name="VAR" id="Z]ilx/Dj:2J!hopWa9b/">result</field>
       <value name="VALUE">
         <block type="procedures_callcustomreturn" id="{xxO[8LgjzyF{o*w-vLZ" inline="true">
           <mutation name="Talsperren">
             <arg name="Talsperre"></arg>
           </mutation>
           <value name="ARG0">
             <block type="text" id="/^D=j{2}*P?veQZ^qhJq">
               <field name="TEXT">Heyda</field>
             </block>
           </value>
         </block>
       </value>
       <next>
         <block type="controls_forEach" id="*CZsuL=u|Pe~Te@v/STL">
           <field name="VAR" id="L:E-/6_DpwSq:Mlw3[S7">i</field>
           <value name="LIST">
             <block type="variables_get" id=")tga?y?xsl_B:fkAk#jk">
               <field name="VAR" id="Z]ilx/Dj:2J!hopWa9b/">result</field>
             </block>
           </value>
           <statement name="DO">
             <block type="debug" id="F3-LvtSOvx@ilObd9)Gy">
               <field name="Severity">log</field>
               <value name="TEXT">
                 <shadow type="text" id=":|L#U,)-6m=bkgWD8Cih">
                   <field name="TEXT">test</field>
                 </shadow>
                 <block type="text_join" id="/g52mhE7g?|9~]HjCX79">
                   <mutation items="7"></mutation>
                   <value name="ADD0">
                     <block type="get_attr" id="zszAW5+JLanD*WP,g-g%">
                       <value name="PATH">
                         <shadow type="text" id="ED5Q6jr|Q:j%=q2`(ZNR">
                           <field name="TEXT">Name</field>
                         </shadow>
                       </value>
                       <value name="OBJECT">
                         <block type="variables_get" id=",f1/cCfs]nm$U,*3FnNF">
                           <field name="VAR" id="L:E-/6_DpwSq:Mlw3[S7">i</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <value name="ADD1">
                     <block type="text" id="e|e{{.`e;wH931Q05-cm">
                       <field name="TEXT">:Max(Mio m³):  </field>
                     </block>
                   </value>
                   <value name="ADD2">
                     <block type="get_attr" id="Qj.1)K|j}1:qQUG1mf8~">
                       <value name="PATH">
                         <shadow type="text" id=":.5;kLy/%U^kp$azE1J5">
                           <field name="TEXT">Vollstau</field>
                         </shadow>
                       </value>
                       <value name="OBJECT">
                         <block type="variables_get" id="D4@3S_zYVPu;15(zMi(V">
                           <field name="VAR" id="L:E-/6_DpwSq:Mlw3[S7">i</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <value name="ADD3">
                     <block type="text" id="J1=!~I{_hj[caa5-inpx">
                       <field name="TEXT"> : Füllgrad: </field>
                     </block>
                   </value>
                   <value name="ADD4">
                     <block type="get_attr" id="DM;.chYog)UR?2JKK^qM">
                       <value name="PATH">
                         <shadow type="text" id="EY8E?|kfmuA3Yb{{Ja|~">
                           <field name="TEXT">Füllgrad</field>
                         </shadow>
                       </value>
                       <value name="OBJECT">
                         <block type="variables_get" id="(SipjnpClpysexydH?_o">
                           <field name="VAR" id="L:E-/6_DpwSq:Mlw3[S7">i</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <value name="ADD5">
                     <block type="text" id="V[s^?VW`F4,mGxZk/8a7">
                       <field name="TEXT"> : Tendenz: </field>
                     </block>
                   </value>
                   <value name="ADD6">
                     <block type="get_attr" id="mIMQy1qf7fZ:2[iFjW+X">
                       <value name="PATH">
                         <shadow type="text" id="u3jlCOUjZ6FO@5F_x,E_">
                           <field name="TEXT">Tendenz</field>
                         </shadow>
                       </value>
                       <value name="OBJECT">
                         <block type="variables_get" id="F~|K-b^lwZWn_coa;1-$">
                           <field name="VAR" id="L:E-/6_DpwSq:Mlw3[S7">i</field>
                         </block>
                       </value>
                     </block>
                   </value>
                 </block>
               </value>
             </block>
           </statement>
         </block>
       </next>
     </block>
    </xml>
    

    iobroker läuft unter Docker auf QNAP TS-451+
    SkriptRecovery: https://forum.iobroker.net/post/930558

    A B 2 Antworten Letzte Antwort
    1
    • F fastfoot

      Hallo

      ich wurde von @Burg_Io gefragt, ob ich ein Skript zur Abfrage der Füllstände von Talsperren schreiben könnte. Abgefragt werden die Füllstände von https://www.talsperren.net/Fullstande/fullstande.html.

      Vorraussetzungen: Es werden zwei Module benötigt, diese müssen in der Javascript Instanz eingetragen werden. cheerio und iconv-lite. cheerio wird zum einfachen Einlesen der Tabelle benötigt, iconv-lite convertiert von ISO-8859-1 zu utf-8.

      • Als Parameter kann der (Teil-)Name einer Talsperre angegeben werden, Wird nichts angegeben dann werden alle vorhandenen Einträge gelistet.
      • Als Daten(Attribute) stehen zur Verfügung:
        • Name
        • Bundesland
        • Vollstau (in Mio m³)
        • Füllstand (in Mio m³)
        • Füllgrad (in%)
        • Stand (Datum)
        • Diff (Differenz zur letzten Messung)
        • Tendenz (steigend, fallend, etc)

      Man könnte das Ergebnis jetzt noch in einen Datenpunkt schreiben und in VIS als Tabelle darstellen, zB mit dem inventwo JSON-Widget

      Viel Spaß damit

      Talsperren.PNG

      <xml xmlns="https://developers.google.com/blockly/xml">
       <variables>
         <variable id="^uDh`3pVmQ8Ig8OT9^IK">Talsperre</variable>
         <variable id="Z]ilx/Dj:2J!hopWa9b/">result</variable>
         <variable id="L:E-/6_DpwSq:Mlw3[S7">i</variable>
       </variables>
       <block type="procedures_defcustomreturn" id="~!MZMJ@vtEc+NEYf.fqu" x="63" y="38">
         <mutation statements="false">
           <arg name="Talsperre" varid="^uDh`3pVmQ8Ig8OT9^IK"></arg>
         </mutation>
         <field name="NAME">Talsperren</field>
         <field name="SCRIPT">Ly8gaHR0cHM6Ly93d3cudGFsc3BlcnJlbi5uZXQvRnVsbHN0YW5kZS9mdWxsc3RhbmRlLmh0bWwNCmxldCBkYmcgPSAhdHJ1ZTsNCmxldCBzZWFyY2hWYWx1ZSA9IFRhbHNwZXJyZTsNCmxldCB1cmw9J2h0dHBzOi8vd3d3LnRhbHNwZXJyZW4ubmV0L0Z1bGxzdGFuZGUvYm9keV9mdWxsc3RhbmRlLmh0bWwnOw0KY29uc3QgaWNvbnYgPSByZXF1aXJlKCdpY29udi1saXRlJyk7DQpjb25zdCBjaGVlcmlvID0gcmVxdWlyZSgnY2hlZXJpbycpLmRlZmF1bHQ7DQpjb25zdCBjb2x1bW5zVGFsc3BlcnJlbiA9IFsnTmFtZScsICdCdW5kZXNsYW5kJywgJ1ZvbGxzdGF1JywgJ0bDvGxsc3RhbmQnLCdGw7xsbGdyYWQnLCAnU3RhbmQnLCAnRGlmZicsJ1RlbmRlbnonXTsNCg0KY29uc3QgbWFwUm93cyA9IChfLCByb3cpID0+IHsNCgljb25zdCBUYWxzcGVycmVuID0ge307DQogICAgaWYoY2hlZXJpbyhyb3cpLmNoaWxkcmVuKCd0ZCcpLmZpcnN0KCkudGV4dCgpLmluZGV4T2YoJ05hbWUnKSA+PTAgKSByZXR1cm47DQoJY2hlZXJpbyhyb3cpLmNoaWxkcmVuKCd0ZCcpLmVhY2goKGluZGV4LCBjZWxsKSA9PiB7DQoJCWNlbGwgPSBjaGVlcmlvLmxvYWQoY2VsbCk7DQoJCXN3aXRjaCAoaW5kZXgpIHsNCgkJCWNhc2UgMjoNCiAgICAgICAgICAgIGNhc2UgMzoNCiAgICAgICAgICAgIGNhc2UgNDogew0KCQkJCVRhbHNwZXJyZW5bY29sdW1uc1RhbHNwZXJyZW5baW5kZXhdXSA9IGNlbGwudGV4dCgpLnJlcGxhY2UoL1wsL2csICcuJykucmVwbGFjZSgvXG5ccy9nLCcnKS50cmltKCkgfHwgbnVsbDsNCgkJCQlicmVhazsNCgkJCX0NCgkJCWRlZmF1bHQ6IHsNCgkJCQlUYWxzcGVycmVuW2NvbHVtbnNUYWxzcGVycmVuW2luZGV4XV0gPSBjZWxsLnRleHQoKS5yZXBsYWNlKC9cLC9nLCAnLicpLnJlcGxhY2UoL1xuXHMvZywnJykudHJpbSgpIHx8IG51bGw7DQoJCQl9DQoJCX0NCgl9KTsNCiAgICBpZihkYmcpIGxvZyhKU09OLnN0cmluZ2lmeShUYWxzcGVycmVuKSk7DQoJcmV0dXJuIFRhbHNwZXJyZW47DQp9Ow0KDQpmdW5jdGlvbiBnZXRUYWxzcGVycmVuKCl7DQogICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCl7DQogICAgICAgIGxldCBvcHRzID0gew0KICAgICAgICAgICAgdXJsLA0KICAgICAgICAgICAgZW5jb2Rpbmc6ICJiaW5hcnkiLA0KICAgICAgICAgICAgaGVhZGVyczogew0KICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJywNCiAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6J2lvYnJva2VyLXNjcmlwdCcNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB0cnl7DQogICAgICAgICAgICByZXF1ZXN0LnBvc3Qob3B0cywoZXJyLHJlc3AsYm9keSk9PnsNCiAgICAgICAgICAgICAgICBpZihlcnIpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9nKGVycik7DQogICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBsZXQgcmVzID0gW107DQogICAgICAgICAgICAgICAgYm9keSA9IGljb252LmRlY29kZShib2R5LCdpc284ODU5MScpOw0KICAgICAgICAgICAgICAgIGxldCBodG1sID0gY2hlZXJpby5sb2FkKGJvZHkpOw0KICAgICAgICAgICAgICAgIGxldCBkYXRhID0gaHRtbCgndGFibGUgW2JvcmRlcj0xXScpLmNoaWxkcmVuKCd0Ym9keScpLmNoaWxkcmVuKCd0cicpLm1hcChtYXBSb3dzKS5nZXQoKTsNCiAgICAgICAgICAgICAgICBkYXRhLmZvckVhY2goKHJvdyk9PnsNCiAgICAgICAgICAgICAgICAgICAgaWYocm93Lk5hbWUuaW5kZXhPZihzZWFyY2hWYWx1ZSkgPj0gMCl7DQogICAgICAgICAgICAgICAgICAgICAgICByZXMucHVzaChyb3cpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICByZXNvbHZlKHJlcyk7DQogICAgICAgICAgICB9KQ0KICAgICAgICB9Y2F0Y2goZSl7DQogICAgICAgICAgICByZWplY3QoZSk7DQogICAgICAgIH0NCiAgICB9KQ0KfQ0KDQpyZXR1cm4gYXdhaXQgZ2V0VGFsc3BlcnJlbigpOw0KDQpnZXREYXRhKCk7</field>
         <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
       </block>
       <block type="variables_set" id="+WGFTvq[^f6l+Y)t{YX%" x="63" y="62">
         <field name="VAR" id="Z]ilx/Dj:2J!hopWa9b/">result</field>
         <value name="VALUE">
           <block type="procedures_callcustomreturn" id="{xxO[8LgjzyF{o*w-vLZ" inline="true">
             <mutation name="Talsperren">
               <arg name="Talsperre"></arg>
             </mutation>
             <value name="ARG0">
               <block type="text" id="/^D=j{2}*P?veQZ^qhJq">
                 <field name="TEXT">Heyda</field>
               </block>
             </value>
           </block>
         </value>
         <next>
           <block type="controls_forEach" id="*CZsuL=u|Pe~Te@v/STL">
             <field name="VAR" id="L:E-/6_DpwSq:Mlw3[S7">i</field>
             <value name="LIST">
               <block type="variables_get" id=")tga?y?xsl_B:fkAk#jk">
                 <field name="VAR" id="Z]ilx/Dj:2J!hopWa9b/">result</field>
               </block>
             </value>
             <statement name="DO">
               <block type="debug" id="F3-LvtSOvx@ilObd9)Gy">
                 <field name="Severity">log</field>
                 <value name="TEXT">
                   <shadow type="text" id=":|L#U,)-6m=bkgWD8Cih">
                     <field name="TEXT">test</field>
                   </shadow>
                   <block type="text_join" id="/g52mhE7g?|9~]HjCX79">
                     <mutation items="7"></mutation>
                     <value name="ADD0">
                       <block type="get_attr" id="zszAW5+JLanD*WP,g-g%">
                         <value name="PATH">
                           <shadow type="text" id="ED5Q6jr|Q:j%=q2`(ZNR">
                             <field name="TEXT">Name</field>
                           </shadow>
                         </value>
                         <value name="OBJECT">
                           <block type="variables_get" id=",f1/cCfs]nm$U,*3FnNF">
                             <field name="VAR" id="L:E-/6_DpwSq:Mlw3[S7">i</field>
                           </block>
                         </value>
                       </block>
                     </value>
                     <value name="ADD1">
                       <block type="text" id="e|e{{.`e;wH931Q05-cm">
                         <field name="TEXT">:Max(Mio m³):  </field>
                       </block>
                     </value>
                     <value name="ADD2">
                       <block type="get_attr" id="Qj.1)K|j}1:qQUG1mf8~">
                         <value name="PATH">
                           <shadow type="text" id=":.5;kLy/%U^kp$azE1J5">
                             <field name="TEXT">Vollstau</field>
                           </shadow>
                         </value>
                         <value name="OBJECT">
                           <block type="variables_get" id="D4@3S_zYVPu;15(zMi(V">
                             <field name="VAR" id="L:E-/6_DpwSq:Mlw3[S7">i</field>
                           </block>
                         </value>
                       </block>
                     </value>
                     <value name="ADD3">
                       <block type="text" id="J1=!~I{_hj[caa5-inpx">
                         <field name="TEXT"> : Füllgrad: </field>
                       </block>
                     </value>
                     <value name="ADD4">
                       <block type="get_attr" id="DM;.chYog)UR?2JKK^qM">
                         <value name="PATH">
                           <shadow type="text" id="EY8E?|kfmuA3Yb{{Ja|~">
                             <field name="TEXT">Füllgrad</field>
                           </shadow>
                         </value>
                         <value name="OBJECT">
                           <block type="variables_get" id="(SipjnpClpysexydH?_o">
                             <field name="VAR" id="L:E-/6_DpwSq:Mlw3[S7">i</field>
                           </block>
                         </value>
                       </block>
                     </value>
                     <value name="ADD5">
                       <block type="text" id="V[s^?VW`F4,mGxZk/8a7">
                         <field name="TEXT"> : Tendenz: </field>
                       </block>
                     </value>
                     <value name="ADD6">
                       <block type="get_attr" id="mIMQy1qf7fZ:2[iFjW+X">
                         <value name="PATH">
                           <shadow type="text" id="u3jlCOUjZ6FO@5F_x,E_">
                             <field name="TEXT">Tendenz</field>
                           </shadow>
                         </value>
                         <value name="OBJECT">
                           <block type="variables_get" id="F~|K-b^lwZWn_coa;1-$">
                             <field name="VAR" id="L:E-/6_DpwSq:Mlw3[S7">i</field>
                           </block>
                         </value>
                       </block>
                     </value>
                   </block>
                 </value>
               </block>
             </statement>
           </block>
         </next>
       </block>
      </xml>
      

      A Offline
      A Offline
      Ahnungsbefreit
      schrieb am zuletzt editiert von
      #2

      @fastfoot Sehr schön, danke für's Teilen!

      Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

      F 1 Antwort Letzte Antwort
      0
      • A Ahnungsbefreit

        @fastfoot Sehr schön, danke für's Teilen!

        F Offline
        F Offline
        fastfoot
        schrieb am zuletzt editiert von
        #3

        @ahnungsbefreit sagte in [Skript Blockly] Füllstände von Talsperren:

        @fastfoot Sehr schön, danke für's Teilen!

        Gerne. Letztens war mal das Thema Rückgabe einer Abfrage mit request(). Das ist hier auch endlich gelöst, kein await wait() mehr notwendig :-)

        iobroker läuft unter Docker auf QNAP TS-451+
        SkriptRecovery: https://forum.iobroker.net/post/930558

        A 1 Antwort Letzte Antwort
        0
        • F fastfoot

          @ahnungsbefreit sagte in [Skript Blockly] Füllstände von Talsperren:

          @fastfoot Sehr schön, danke für's Teilen!

          Gerne. Letztens war mal das Thema Rückgabe einer Abfrage mit request(). Das ist hier auch endlich gelöst, kein await wait() mehr notwendig :-)

          A Offline
          A Offline
          Ahnungsbefreit
          schrieb am zuletzt editiert von
          #4

          @fastfoot Ja, habe es schon gesehen, sehr cool!

          Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

          1 Antwort Letzte Antwort
          0
          • F fastfoot

            Hallo

            ich wurde von @Burg_Io gefragt, ob ich ein Skript zur Abfrage der Füllstände von Talsperren schreiben könnte. Abgefragt werden die Füllstände von https://www.talsperren.net/Fullstande/fullstande.html.

            Vorraussetzungen: Es werden zwei Module benötigt, diese müssen in der Javascript Instanz eingetragen werden. cheerio und iconv-lite. cheerio wird zum einfachen Einlesen der Tabelle benötigt, iconv-lite convertiert von ISO-8859-1 zu utf-8.

            • Als Parameter kann der (Teil-)Name einer Talsperre angegeben werden, Wird nichts angegeben dann werden alle vorhandenen Einträge gelistet.
            • Als Daten(Attribute) stehen zur Verfügung:
              • Name
              • Bundesland
              • Vollstau (in Mio m³)
              • Füllstand (in Mio m³)
              • Füllgrad (in%)
              • Stand (Datum)
              • Diff (Differenz zur letzten Messung)
              • Tendenz (steigend, fallend, etc)

            Man könnte das Ergebnis jetzt noch in einen Datenpunkt schreiben und in VIS als Tabelle darstellen, zB mit dem inventwo JSON-Widget

            Viel Spaß damit

            Talsperren.PNG

            <xml xmlns="https://developers.google.com/blockly/xml">
             <variables>
               <variable id="^uDh`3pVmQ8Ig8OT9^IK">Talsperre</variable>
               <variable id="Z]ilx/Dj:2J!hopWa9b/">result</variable>
               <variable id="L:E-/6_DpwSq:Mlw3[S7">i</variable>
             </variables>
             <block type="procedures_defcustomreturn" id="~!MZMJ@vtEc+NEYf.fqu" x="63" y="38">
               <mutation statements="false">
                 <arg name="Talsperre" varid="^uDh`3pVmQ8Ig8OT9^IK"></arg>
               </mutation>
               <field name="NAME">Talsperren</field>
               <field name="SCRIPT">Ly8gaHR0cHM6Ly93d3cudGFsc3BlcnJlbi5uZXQvRnVsbHN0YW5kZS9mdWxsc3RhbmRlLmh0bWwNCmxldCBkYmcgPSAhdHJ1ZTsNCmxldCBzZWFyY2hWYWx1ZSA9IFRhbHNwZXJyZTsNCmxldCB1cmw9J2h0dHBzOi8vd3d3LnRhbHNwZXJyZW4ubmV0L0Z1bGxzdGFuZGUvYm9keV9mdWxsc3RhbmRlLmh0bWwnOw0KY29uc3QgaWNvbnYgPSByZXF1aXJlKCdpY29udi1saXRlJyk7DQpjb25zdCBjaGVlcmlvID0gcmVxdWlyZSgnY2hlZXJpbycpLmRlZmF1bHQ7DQpjb25zdCBjb2x1bW5zVGFsc3BlcnJlbiA9IFsnTmFtZScsICdCdW5kZXNsYW5kJywgJ1ZvbGxzdGF1JywgJ0bDvGxsc3RhbmQnLCdGw7xsbGdyYWQnLCAnU3RhbmQnLCAnRGlmZicsJ1RlbmRlbnonXTsNCg0KY29uc3QgbWFwUm93cyA9IChfLCByb3cpID0+IHsNCgljb25zdCBUYWxzcGVycmVuID0ge307DQogICAgaWYoY2hlZXJpbyhyb3cpLmNoaWxkcmVuKCd0ZCcpLmZpcnN0KCkudGV4dCgpLmluZGV4T2YoJ05hbWUnKSA+PTAgKSByZXR1cm47DQoJY2hlZXJpbyhyb3cpLmNoaWxkcmVuKCd0ZCcpLmVhY2goKGluZGV4LCBjZWxsKSA9PiB7DQoJCWNlbGwgPSBjaGVlcmlvLmxvYWQoY2VsbCk7DQoJCXN3aXRjaCAoaW5kZXgpIHsNCgkJCWNhc2UgMjoNCiAgICAgICAgICAgIGNhc2UgMzoNCiAgICAgICAgICAgIGNhc2UgNDogew0KCQkJCVRhbHNwZXJyZW5bY29sdW1uc1RhbHNwZXJyZW5baW5kZXhdXSA9IGNlbGwudGV4dCgpLnJlcGxhY2UoL1wsL2csICcuJykucmVwbGFjZSgvXG5ccy9nLCcnKS50cmltKCkgfHwgbnVsbDsNCgkJCQlicmVhazsNCgkJCX0NCgkJCWRlZmF1bHQ6IHsNCgkJCQlUYWxzcGVycmVuW2NvbHVtbnNUYWxzcGVycmVuW2luZGV4XV0gPSBjZWxsLnRleHQoKS5yZXBsYWNlKC9cLC9nLCAnLicpLnJlcGxhY2UoL1xuXHMvZywnJykudHJpbSgpIHx8IG51bGw7DQoJCQl9DQoJCX0NCgl9KTsNCiAgICBpZihkYmcpIGxvZyhKU09OLnN0cmluZ2lmeShUYWxzcGVycmVuKSk7DQoJcmV0dXJuIFRhbHNwZXJyZW47DQp9Ow0KDQpmdW5jdGlvbiBnZXRUYWxzcGVycmVuKCl7DQogICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCl7DQogICAgICAgIGxldCBvcHRzID0gew0KICAgICAgICAgICAgdXJsLA0KICAgICAgICAgICAgZW5jb2Rpbmc6ICJiaW5hcnkiLA0KICAgICAgICAgICAgaGVhZGVyczogew0KICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJywNCiAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6J2lvYnJva2VyLXNjcmlwdCcNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgICB0cnl7DQogICAgICAgICAgICByZXF1ZXN0LnBvc3Qob3B0cywoZXJyLHJlc3AsYm9keSk9PnsNCiAgICAgICAgICAgICAgICBpZihlcnIpIHsNCiAgICAgICAgICAgICAgICAgICAgbG9nKGVycik7DQogICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBsZXQgcmVzID0gW107DQogICAgICAgICAgICAgICAgYm9keSA9IGljb252LmRlY29kZShib2R5LCdpc284ODU5MScpOw0KICAgICAgICAgICAgICAgIGxldCBodG1sID0gY2hlZXJpby5sb2FkKGJvZHkpOw0KICAgICAgICAgICAgICAgIGxldCBkYXRhID0gaHRtbCgndGFibGUgW2JvcmRlcj0xXScpLmNoaWxkcmVuKCd0Ym9keScpLmNoaWxkcmVuKCd0cicpLm1hcChtYXBSb3dzKS5nZXQoKTsNCiAgICAgICAgICAgICAgICBkYXRhLmZvckVhY2goKHJvdyk9PnsNCiAgICAgICAgICAgICAgICAgICAgaWYocm93Lk5hbWUuaW5kZXhPZihzZWFyY2hWYWx1ZSkgPj0gMCl7DQogICAgICAgICAgICAgICAgICAgICAgICByZXMucHVzaChyb3cpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICByZXNvbHZlKHJlcyk7DQogICAgICAgICAgICB9KQ0KICAgICAgICB9Y2F0Y2goZSl7DQogICAgICAgICAgICByZWplY3QoZSk7DQogICAgICAgIH0NCiAgICB9KQ0KfQ0KDQpyZXR1cm4gYXdhaXQgZ2V0VGFsc3BlcnJlbigpOw0KDQpnZXREYXRhKCk7</field>
               <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
             </block>
             <block type="variables_set" id="+WGFTvq[^f6l+Y)t{YX%" x="63" y="62">
               <field name="VAR" id="Z]ilx/Dj:2J!hopWa9b/">result</field>
               <value name="VALUE">
                 <block type="procedures_callcustomreturn" id="{xxO[8LgjzyF{o*w-vLZ" inline="true">
                   <mutation name="Talsperren">
                     <arg name="Talsperre"></arg>
                   </mutation>
                   <value name="ARG0">
                     <block type="text" id="/^D=j{2}*P?veQZ^qhJq">
                       <field name="TEXT">Heyda</field>
                     </block>
                   </value>
                 </block>
               </value>
               <next>
                 <block type="controls_forEach" id="*CZsuL=u|Pe~Te@v/STL">
                   <field name="VAR" id="L:E-/6_DpwSq:Mlw3[S7">i</field>
                   <value name="LIST">
                     <block type="variables_get" id=")tga?y?xsl_B:fkAk#jk">
                       <field name="VAR" id="Z]ilx/Dj:2J!hopWa9b/">result</field>
                     </block>
                   </value>
                   <statement name="DO">
                     <block type="debug" id="F3-LvtSOvx@ilObd9)Gy">
                       <field name="Severity">log</field>
                       <value name="TEXT">
                         <shadow type="text" id=":|L#U,)-6m=bkgWD8Cih">
                           <field name="TEXT">test</field>
                         </shadow>
                         <block type="text_join" id="/g52mhE7g?|9~]HjCX79">
                           <mutation items="7"></mutation>
                           <value name="ADD0">
                             <block type="get_attr" id="zszAW5+JLanD*WP,g-g%">
                               <value name="PATH">
                                 <shadow type="text" id="ED5Q6jr|Q:j%=q2`(ZNR">
                                   <field name="TEXT">Name</field>
                                 </shadow>
                               </value>
                               <value name="OBJECT">
                                 <block type="variables_get" id=",f1/cCfs]nm$U,*3FnNF">
                                   <field name="VAR" id="L:E-/6_DpwSq:Mlw3[S7">i</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <value name="ADD1">
                             <block type="text" id="e|e{{.`e;wH931Q05-cm">
                               <field name="TEXT">:Max(Mio m³):  </field>
                             </block>
                           </value>
                           <value name="ADD2">
                             <block type="get_attr" id="Qj.1)K|j}1:qQUG1mf8~">
                               <value name="PATH">
                                 <shadow type="text" id=":.5;kLy/%U^kp$azE1J5">
                                   <field name="TEXT">Vollstau</field>
                                 </shadow>
                               </value>
                               <value name="OBJECT">
                                 <block type="variables_get" id="D4@3S_zYVPu;15(zMi(V">
                                   <field name="VAR" id="L:E-/6_DpwSq:Mlw3[S7">i</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <value name="ADD3">
                             <block type="text" id="J1=!~I{_hj[caa5-inpx">
                               <field name="TEXT"> : Füllgrad: </field>
                             </block>
                           </value>
                           <value name="ADD4">
                             <block type="get_attr" id="DM;.chYog)UR?2JKK^qM">
                               <value name="PATH">
                                 <shadow type="text" id="EY8E?|kfmuA3Yb{{Ja|~">
                                   <field name="TEXT">Füllgrad</field>
                                 </shadow>
                               </value>
                               <value name="OBJECT">
                                 <block type="variables_get" id="(SipjnpClpysexydH?_o">
                                   <field name="VAR" id="L:E-/6_DpwSq:Mlw3[S7">i</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <value name="ADD5">
                             <block type="text" id="V[s^?VW`F4,mGxZk/8a7">
                               <field name="TEXT"> : Tendenz: </field>
                             </block>
                           </value>
                           <value name="ADD6">
                             <block type="get_attr" id="mIMQy1qf7fZ:2[iFjW+X">
                               <value name="PATH">
                                 <shadow type="text" id="u3jlCOUjZ6FO@5F_x,E_">
                                   <field name="TEXT">Tendenz</field>
                                 </shadow>
                               </value>
                               <value name="OBJECT">
                                 <block type="variables_get" id="F~|K-b^lwZWn_coa;1-$">
                                   <field name="VAR" id="L:E-/6_DpwSq:Mlw3[S7">i</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                         </block>
                       </value>
                     </block>
                   </statement>
                 </block>
               </next>
             </block>
            </xml>
            

            B Offline
            B Offline
            Burg_Io
            schrieb am zuletzt editiert von
            #5

            @fastfoot
            Vielen Dank für die Mühe

            F 1 Antwort Letzte Antwort
            0
            • B Burg_Io

              @fastfoot
              Vielen Dank für die Mühe

              F Offline
              F Offline
              fastfoot
              schrieb am zuletzt editiert von
              #6

              ein kleines Update in Post #1 da sich die Id der Tabelle wohl ständig ändert

              iobroker läuft unter Docker auf QNAP TS-451+
              SkriptRecovery: https://forum.iobroker.net/post/930558

              B 1 Antwort Letzte Antwort
              0
              • F fastfoot

                ein kleines Update in Post #1 da sich die Id der Tabelle wohl ständig ändert

                B Offline
                B Offline
                Burg_Io
                schrieb am zuletzt editiert von
                #7

                @fastfoot
                Danke für die Ergänzung. Die von mir beobachtete Talsperre hatte einige Tage die Daten nicht geändert. Habe es erst nach deiner Nachricht gemerkt. Funktioniert wieder.
                Danke

                1 Antwort 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

                510

                Online

                32.8k

                Benutzer

                82.8k

                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