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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. [Skript Blockly] Füllstände von Talsperren

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

[Skript Blockly] Füllstände von Talsperren

Geplant Angeheftet Gesperrt Verschoben Blockly
7 Beiträge 3 Kommentatoren 598 Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • 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
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                824

                Online

                32.6k

                Benutzer

                82.0k

                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