Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [Skript Blockly] Füllstände von Talsperren

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Skript Blockly] Füllstände von Talsperren

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      fastfoot last edited by 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 B 2 Replies Last reply Reply Quote 1
      • A
        Ahnungsbefreit @fastfoot last edited by

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

        F 1 Reply Last reply Reply Quote 0
        • F
          fastfoot @Ahnungsbefreit last edited by

          @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 1 Reply Last reply Reply Quote 0
          • A
            Ahnungsbefreit @fastfoot last edited by

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

            1 Reply Last reply Reply Quote 0
            • B
              Burg_Io @fastfoot last edited by

              @fastfoot
              Vielen Dank für die Mühe

              F 1 Reply Last reply Reply Quote 0
              • F
                fastfoot @Burg_Io last edited by

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

                B 1 Reply Last reply Reply Quote 0
                • B
                  Burg_Io @fastfoot last edited by

                  @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 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  624
                  Online

                  31.9k
                  Users

                  80.2k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  423
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo