Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Wärmepumpe steuern mit BSB-Lan und tibber

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Wärmepumpe steuern mit BSB-Lan und tibber

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @mbe01 last edited by paul53

      @mbe01 sagte: wenn das nicht allzu kompliziert ist, dann kann ich das auch mal mit den billigsten Zeiten ausprobieren

      Als Blockly aus dem Tibberlink-Adapter:

      Blockly_temp.JPG

      <xml xmlns="https://developers.google.com/blockly/xml">
       <variables>
         <variable id="9eaI*x0QwSH,5/t(~Ss(">hour</variable>
         <variable id="ebTY~4FfD!f+J4|8$Q81">price</variable>
         <variable id="_G4mQT~1R2@/Mx|MlaH7">arr</variable>
         <variable id="Z4sE#X;H1=]51aF5v/h%">attr</variable>
         <variable id="?!u/+F=x15zf)=UOb,I4">stunde</variable>
         <variable id=";zN:A#IgVi-IO?c:_rKG">Liste</variable>
         <variable id="v68A@y`1FG-pBl`;IBYz">path</variable>
         <variable id="q2KM(cq[0Zk$dabrjZbe">WP</variable>
         <variable id="*uaS)zQ0ld@b0`G#!;{A">i</variable>
         <variable id="cw/=(U=B`hQvbw|SBBL@">obj</variable>
       </variables>
       <block type="comment" id="vO:-j5^UyD`_KAysv,0." x="-13" y="-12">
         <field name="COMMENT">jede volle Stunde</field>
         <next>
           <block type="schedule" id="}5!(SWQH]z0zfdo@/;tn">
             <field name="SCHEDULE">0 * * * *</field>
             <statement name="STATEMENT">
               <block type="variables_set" id="p4Chuvp?b5oGw6wMbc?f">
                 <field name="VAR" id="?!u/+F=x15zf)=UOb,I4">stunde</field>
                 <value name="VALUE">
                   <block type="time_get" id="/lDiq%M_](9b*`D22Hno">
                     <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                     <field name="OPTION">h</field>
                   </block>
                 </value>
                 <next>
                   <block type="variables_set" id="2lkPCEiXcl~JS_5,SeFB">
                     <field name="VAR" id=";zN:A#IgVi-IO?c:_rKG">Liste</field>
                     <value name="VALUE">
                       <block type="lists_create_with" id=";hj/.7I`j13?X/#]gAu3">
                         <mutation items="0"></mutation>
                       </block>
                     </value>
                     <next>
                       <block type="controls_if" id="jjvSx5|rA+DhTG[RZ1(m">
                         <mutation else="1"></mutation>
                         <value name="IF0">
                           <block type="logic_compare" id="S;x%,}0~].JjqY8+U.d-">
                             <field name="OP">EQ</field>
                             <value name="A">
                               <block type="variables_get" id="ekwXJ4bX6!k2lS74cZ1#">
                                 <field name="VAR" id="?!u/+F=x15zf)=UOb,I4">stunde</field>
                               </block>
                             </value>
                             <value name="B">
                               <block type="math_number" id="dG#NKmZ*9^/DDlEs=e}U">
                                 <field name="NUM">0</field>
                               </block>
                             </value>
                           </block>
                         </value>
                         <statement name="DO0">
                           <block type="variables_set" id="D_WK6`-/wt1l_0(F}cSM">
                             <field name="VAR" id="v68A@y`1FG-pBl`;IBYz">path</field>
                             <value name="VALUE">
                               <block type="text" id="in4[dN^h-BjaZ5r!H4)B">
                                 <field name="TEXT">tibberlink.0.Homes.xyz.PricesTomorrow.</field>
                               </block>
                             </value>
                           </block>
                         </statement>
                         <statement name="ELSE">
                           <block type="variables_set" id="aPcAg400|A0p=L}RF*`h">
                             <field name="VAR" id="v68A@y`1FG-pBl`;IBYz">path</field>
                             <value name="VALUE">
                               <block type="text" id="ro.sHorqUN7~f!RbvOR`">
                                 <field name="TEXT">tibberlink.0.Homes.xyz.PricesToday.</field>
                               </block>
                             </value>
                           </block>
                         </statement>
                         <next>
                           <block type="controls_for" id="Gbe1wQ8C277Zg)KBBJPW">
                             <field name="VAR" id="9eaI*x0QwSH,5/t(~Ss(">hour</field>
                             <value name="FROM">
                               <shadow type="math_number" id="c`UW=gv3-z3,B*)/ee20">
                                 <field name="NUM">0</field>
                               </shadow>
                             </value>
                             <value name="TO">
                               <shadow type="math_number" id="E%dBHNala7nnJZ%d|SsL">
                                 <field name="NUM">23</field>
                               </shadow>
                             </value>
                             <value name="BY">
                               <shadow type="math_number" id="tdnRWc4,FRB{tG9z;xMI">
                                 <field name="NUM">1</field>
                               </shadow>
                             </value>
                             <statement name="DO">
                               <block type="variables_set" id="}~1;]SD`Sdpql[fB%O;$">
                                 <field name="VAR" id="ebTY~4FfD!f+J4|8$Q81">price</field>
                                 <value name="VALUE">
                                   <block type="get_value_var" id="*K/t_sb9vbxh#j+orG.W">
                                     <field name="ATTR">val</field>
                                     <value name="OID">
                                       <shadow type="field_oid" id="(Sb+_?_wU!ltkCQrMQwH">
                                         <field name="oid">Object ID</field>
                                       </shadow>
                                       <block type="text_join" id="-_k6`PjE/PRpmX1qDT)[" inline="true">
                                         <mutation items="3"></mutation>
                                         <value name="ADD0">
                                           <block type="variables_get" id="(Si0]B=Apzeu6F}TD9Z_">
                                             <field name="VAR" id="v68A@y`1FG-pBl`;IBYz">path</field>
                                           </block>
                                         </value>
                                         <value name="ADD1">
                                           <block type="variables_get" id="6`QKLj2[-y@*kDS$@|xg">
                                             <field name="VAR" id="9eaI*x0QwSH,5/t(~Ss(">hour</field>
                                           </block>
                                         </value>
                                         <value name="ADD2">
                                           <block type="text" id="C$RdMrc*yRiw#mqNm()4">
                                             <field name="TEXT">.total</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="lists_setIndex" id="8[-cPhZ[6QNGZ@qE],qV">
                                     <mutation at="false"></mutation>
                                     <field name="MODE">INSERT</field>
                                     <field name="WHERE">LAST</field>
                                     <value name="LIST">
                                       <block type="variables_get" id="8I@nskjxNJmk-7WZk9)B">
                                         <field name="VAR" id=";zN:A#IgVi-IO?c:_rKG">Liste</field>
                                       </block>
                                     </value>
                                     <value name="TO">
                                       <block type="procedures_callcustomreturn" id="k+jRnN~Fj[k?3MXhel`/" inline="true">
                                         <mutation name="buildObj">
                                           <arg name="hour"></arg>
                                           <arg name="price"></arg>
                                         </mutation>
                                         <value name="ARG0">
                                           <block type="variables_get" id="%zFbgKhIIu=sPiVF$H:{">
                                             <field name="VAR" id="9eaI*x0QwSH,5/t(~Ss(">hour</field>
                                           </block>
                                         </value>
                                         <value name="ARG1">
                                           <block type="variables_get" id="Rh-Qo`?*Z5{0=amJ;[Kk">
                                             <field name="VAR" id="ebTY~4FfD!f+J4|8$Q81">price</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </next>
                               </block>
                             </statement>
                             <next>
                               <block type="procedures_callcustomnoreturn" id="dB?4E8t6oEAd]T[U=iOC" inline="true">
                                 <mutation name="sortObjNum">
                                   <arg name="arr"></arg>
                                   <arg name="attr"></arg>
                                 </mutation>
                                 <value name="ARG0">
                                   <block type="variables_get" id=".DraBP08Z,YWUpf~My:X">
                                     <field name="VAR" id=";zN:A#IgVi-IO?c:_rKG">Liste</field>
                                   </block>
                                 </value>
                                 <value name="ARG1">
                                   <block type="text" id="sIkGNjsSV5ow.Qy,!O6W">
                                     <field name="TEXT">price</field>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="variables_set" id=":%8!IqgtO7jYpfUu@!Bj">
                                     <field name="VAR" id="q2KM(cq[0Zk$dabrjZbe">WP</field>
                                     <value name="VALUE">
                                       <block type="math_number" id="Fb@pon7^IBu,tXS:SR6j">
                                         <field name="NUM">0</field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="comment" id="O=Tc?q=2`{CDI%RoYw.v">
                                         <field name="COMMENT">6 billigste Stunden</field>
                                         <next>
                                           <block type="controls_for" id="w-ek$}cjxl;XFBye|]y7">
                                             <field name="VAR" id="*uaS)zQ0ld@b0`G#!;{A">i</field>
                                             <value name="FROM">
                                               <shadow type="math_number" id="O@8TB|scRS4Z6~VSH0gE">
                                                 <field name="NUM">1</field>
                                               </shadow>
                                             </value>
                                             <value name="TO">
                                               <shadow type="math_number" id="zW%DO2AlR13U)Y:N+7lv">
                                                 <field name="NUM">6</field>
                                               </shadow>
                                             </value>
                                             <value name="BY">
                                               <shadow type="math_number" id="WyA3./W_qBbshQ,[B-K]">
                                                 <field name="NUM">1</field>
                                               </shadow>
                                             </value>
                                             <statement name="DO">
                                               <block type="variables_set" id="{Oq4fxOe!uG4`ru!a0[O">
                                                 <field name="VAR" id="cw/=(U=B`hQvbw|SBBL@">obj</field>
                                                 <value name="VALUE">
                                                   <block type="lists_getIndex" id="?Kmj3CY0@#wGYUrR8pw]">
                                                     <mutation statement="false" at="true"></mutation>
                                                     <field name="MODE">GET</field>
                                                     <field name="WHERE">FROM_START</field>
                                                     <value name="VALUE">
                                                       <block type="variables_get" id="e:9PZp3$yGT@1U2hkc,9">
                                                         <field name="VAR" id=";zN:A#IgVi-IO?c:_rKG">Liste</field>
                                                       </block>
                                                     </value>
                                                     <value name="AT">
                                                       <block type="variables_get" id="B2KtVyKEJR*Q#tKf!]:3">
                                                         <field name="VAR" id="*uaS)zQ0ld@b0`G#!;{A">i</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="controls_if" id="gNm#GF19_Qco,5ydp`{O">
                                                     <value name="IF0">
                                                       <block type="logic_compare" id="C2Fytnd}LvYqd7W,eY5i">
                                                         <field name="OP">EQ</field>
                                                         <value name="A">
                                                           <block type="variables_get" id="zJl_7VBT=.GSq3ldkY=I">
                                                             <field name="VAR" id="?!u/+F=x15zf)=UOb,I4">stunde</field>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <block type="get_attr" id="j~hm#Ja.W~8%p6ei2x]B">
                                                             <value name="PATH">
                                                               <shadow type="text" id="gKJ~sk7G:@.d?I7+:^0A">
                                                                 <field name="TEXT">hour</field>
                                                               </shadow>
                                                             </value>
                                                             <value name="OBJECT">
                                                               <block type="variables_get" id="oeRQt*[Qg0{|BvUm@?L%">
                                                                 <field name="VAR" id="cw/=(U=B`hQvbw|SBBL@">obj</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <statement name="DO0">
                                                       <block type="variables_set" id="tKpCF?~ZUR^Bv]9x8n_^">
                                                         <field name="VAR" id="q2KM(cq[0Zk$dabrjZbe">WP</field>
                                                         <value name="VALUE">
                                                           <block type="math_number" id="tLz~a|Db(]vKd7O#`sl4">
                                                             <field name="NUM">3</field>
                                                           </block>
                                                         </value>
                                                         <next>
                                                           <block type="controls_flow_statements" id="Tc=V6P-Y0_F}o^LQ=HaW">
                                                             <field name="FLOW">BREAK</field>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </statement>
                                                   </block>
                                                 </next>
                                               </block>
                                             </statement>
                                             <next>
                                               <block type="control" id=".AJUDhvhc%{kEb*!WxJx">
                                                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                 <field name="OID">Object ID</field>
                                                 <field name="WITH_DELAY">FALSE</field>
                                                 <value name="VALUE">
                                                   <block type="variables_get" id="L|f~P2bGT/:.Py,VNga~">
                                                     <field name="VAR" id="q2KM(cq[0Zk$dabrjZbe">WP</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </next>
                                           </block>
                                         </next>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                 </next>
               </block>
             </statement>
           </block>
         </next>
       </block>
       <block type="procedures_defcustomreturn" id="OEkT9fjdS|*]1r*jWElS" x="413" y="63">
         <mutation statements="false">
           <arg name="hour" varid="9eaI*x0QwSH,5/t(~Ss("></arg>
           <arg name="price" varid="ebTY~4FfD!f+J4|8$Q81"></arg>
         </mutation>
         <field name="NAME">buildObj</field>
         <field name="SCRIPT">cmV0dXJuIHtob3VyOiBob3VyLCBwcmljZTogcHJpY2V9Ow==</field>
         <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
       </block>
       <block type="procedures_defcustomnoreturn" id="s@mvGKiRs~uLlMo:lZ.p" x="437" y="112">
         <mutation statements="false">
           <arg name="arr" varid="_G4mQT~1R2@/Mx|MlaH7"></arg>
           <arg name="attr" varid="Z4sE#X;H1=]51aF5v/h%"></arg>
         </mutation>
         <field name="NAME">sortObjNum</field>
         <field name="SCRIPT">ZnVuY3Rpb24gc29ydEF0dHIoYSwgYikgew0KICAgIHJldHVybiBwYXJzZUZsb2F0KGFbYXR0cl0pIC0gcGFyc2VGbG9hdChiW2F0dHJdKTsNCn0NCmFyci5zb3J0KHNvcnRBdHRyKTs=</field>
         <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
       </block>
      </xml>
      

      "xyz" ersetzen und DP-ID für die WP selektieren.

      M 1 Reply Last reply Reply Quote 0
      • M
        mbe01 @paul53 last edited by

        @paul53 oh super Sache danke dir das probier ich aus!!

        paul53 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @mbe01 last edited by

          @mbe01 sagte: das probier ich aus!!

          Ich habe das Blockly nach dem ersten Post geändert: Es wird jede Stunde eingelesen und nur der Pfad angepasst.

          M 1 Reply Last reply Reply Quote 0
          • M
            mbe01 @paul53 last edited by

            @paul53 ok, hab reloaded und es dann eingefügt. Noch iene kurze Frage. Wo ist "WP" definiert?

            paul53 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @mbe01 last edited by paul53

              @mbe01 sagte: Wo ist "WP" definiert?

              Die Variable WP muss in den Datenpunkt "bsblan.0.Betriebsart_(1000)" geschrieben werden ("steuere"-Block).

              M 1 Reply Last reply Reply Quote 0
              • M
                mbe01 @paul53 last edited by mbe01

                @paul53 said in Wärmepumpe steuern mit BSB-Lan und tibber:

                bsblan.0.Betriebsart

                Super! Danke dir! Dass das so funktioniert ist ja klasse. Mit blocky muss ich mich mal beschäftigen!
                Das kann ich dann direkt auch mal für die WW Bereitung anwenden. Wobei das nur dann 1x am Tag gemacht werd muss. Das geht recht schnell (30min etwa).
                "WP" müsste dann hier irgendwo rein oder?

                {
                  "type": "state",
                  "common": {
                    "name": "Betriebsart (1000)",
                    "type": "number",
                    "role": "value",
                    "read": true,
                    "write": true,
                    "unit": "",
                    "states": {
                      "0": "Schutzbetrieb",
                      "1": "Automatik",
                      "2": "Reduziert",
                      "3": "Komfort",
                      "65535": "---"
                    }
                  },
                  "native": {
                    "id": "1000",
                    "bsb": {
                      "name": "Betriebsart",
                      "dataType_name": "ENUM",
                      "dataType_family": "ENUM",
                      "possibleValues": [
                        {
                          "enumValue": 65535,
                          "desc": "---"
                        },
                        {
                          "enumValue": 0,
                          "desc": "Schutzbetrieb"
                        },
                        {
                          "enumValue": 1,
                          "desc": "Automatik"
                        },
                        {
                          "enumValue": 2,
                          "desc": "Reduziert"
                        },
                        {
                          "enumValue": 3,
                          "desc": "Komfort"
                        }
                      ],
                      "isswitch": 0,
                      "dataType": 1,
                      "readonly": 0,
                      "readwrite": 0,
                      "unit": ""
                    }
                  },
                  "from": "system.adapter.bsblan.0",
                  "user": "system.user.admin",
                  "ts": 1703425633330,
                  "_id": "bsblan.0.Betriebsart_(1000)",
                  "acl": {
                    "object": 1636,
                    "state": 1636,
                    "owner": "system.user.admin",
                    "ownerGroup": "system.group.administrator"
                  }
                }
                
                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @mbe01 last edited by

                  @mbe01 sagte: "WP" müsste dann hier irgendwo rein oder?

                  Nein, dieser Datenpunkt muss im Block "steuere" ausgewählt werden (auf "Object ID" klicken).

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    mbe01 @paul53 last edited by

                    @paul53 Alles klar, ich hatte das total übersehen. Ich arbeite mit einer niedrigen Auflösung an einem kleinen Notebook.

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @mbe01 last edited by paul53

                      @mbe01
                      Schau bitte mal auf die Zeitstempel, wann die Datenpunkte unter "PricesToday" und "PricesTomorrow" aktualisiert werden - besonders kurz nach Mitternacht.
                      Ich bin davon ausgegangen, dass - wie im Adapter "apg-info" - die Preise erst einige Sekunden nach Mitternacht aktualisiert werden. Im Quelltext des Tibberlink-Adapters habe ich gesehen, dass der CRON-Job ein paar Minuten vor Mitternacht triggert, aber Kommentar

                      //"20 56 23 * * *" = 5 minuten vor 00:01:20

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        mbe01 @paul53 last edited by mbe01

                        @paul53 langer Arbeitstag ehute gehabt. Ich hab dummerweise das log weggedrückt, aber der hatte einen Fehler ausgespuckt. Ich weiss nicht ob das nochmalirgendwo hinterlegt wird auch wenn ich das auf der GUI das gelöscht hab. Ich such mal.
                        Es war irgendwas mit tibberlink.0.Homes."KEY".PricesTomorrow not found oder so.
                        EDIT gefunden:

                        at processTicksAndRejections (node:internal/process/task_queues:95:5)
                        

                        javascript.0
                        2024-01-02 18:00:00.341 warn at Object.<anonymous> (script.js.common.WP_nachTibber:27:13)
                        javascript.0
                        2024-01-02 18:00:00.339 warn getState "tibberlink.0.Homes.blabla.PricesToday23.total" not found (3)
                        javascript.0
                        2024-01-02 18:00:00.339 warn at processTicksAndRejections (node:internal/process/task_queues:95:5)
                        javascript.0
                        2024-01-02 18:00:00.339 warn at Object.<anonymous> (script.js.common.WP_nachTibber:27:13)
                        javascript.0
                        2024-01-02 18:00:00.337 warn getState "tibberlink.0.Homes.BLABLA.PricesToday22.total" not found (3)

                        paul53 2 Replies Last reply Reply Quote 0
                        • paul53
                          paul53 @mbe01 last edited by

                          @mbe01 sagte: tibberlink.0.Homes."KEY".PricesTomorrow not found oder so.

                          Das kann nur um Mitternacht gewesen sein, denn zu den anderen Zeiten wird nur auf "PricesToday" zugegriffen. Wenn die Preise kurz vor Mitternacht aktualisiert werden, muss immer "PricesToday" verwendet werden.

                          1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @mbe01 last edited by

                            @mbe01 sagte: "tibberlink.0.Homes.BLABLA.PricesToday22.total"

                            Wurde hinter "PricesToday" der Punkt vergessen?

                            "tibberlink.0.Homes.BLABLA.PricesToday.22.total"
                            
                            M 1 Reply Last reply Reply Quote 0
                            • M
                              mbe01 @paul53 last edited by

                              @paul53 natürlich! 😄

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              716
                              Online

                              32.0k
                              Users

                              80.4k
                              Topics

                              1.3m
                              Posts

                              3
                              55
                              1310
                              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