Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Wallbox, PV mit openWB in iobroker einbinden

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Wallbox, PV mit openWB in iobroker einbinden

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      mading @ag last edited by

      @ag sagte in Wallbox, PV mit openWB in iobroker einbinden:

      @frank70
      Senden von Werten an die WB mache ich folgendermaßen.
      Datenpunkt mit sinnigen Namen anlegen, dann auf Zahnrad hinter dem Datenpunkt klicken und im sich öffnenden Fenster unter MQTT das Topic wie aus der Liste welche die WB vorgibt eintragen.

      Könntest du ein paar Screenshots zeigen?
      S

      A 1 Reply Last reply Reply Quote 0
      • A
        ag @mading last edited by

        @mading
        MQTT-Client.png

        Einstellungen des MQTT-Client
        MQTT-Client2.png

        Beispiel Objekte zum steuern der WallBox
        MQTT-Client-SET.png

        Einstellungen für Lademodus/ChargeMode
        MQTT-Client-Lademodus.png

        A 1 Reply Last reply Reply Quote 0
        • A
          ag @ag last edited by

          Hier noch die Einstellugen in der Wallbox
          MQTT-WB.png

          ein frohes Fest euch Allen

          1 Reply Last reply Reply Quote 0
          • W
            Wolfirr last edited by

            Hallo Forum,
            ich versuche gerade meine recht komplexe Energielandschaft über ioBroker und die openWB zu konsolidieren. Da ich die Datenpunkte meiner Hausenergiespeicher nur über Telnet bekomme, was ja in der openWB nicht geht, wollte ich dies über den ioBroker machen. Da muss ich aber die getrennten Datenpunkte 'Einspeiseleistung' und 'Ausspeiseleistung' zusammenfassen und mit Vorzeichen versehen, damit sie als 'Speicherleistung' in die openWB per MQTT geschickt werden können.
            Deshalb die Frage, hat schon jemand so ein Blockly erstellt, das dies vornimmt?
            Danke
            WolfiRR

            M 1 Reply Last reply Reply Quote 0
            • M
              mading @Wolfirr last edited by mading

              @wolfirr ich habe für meinen fronius Wechselrichter Blockly geschreiben, die den Hausverbrauch, Netzbezug, Autarkie und Eigenverbrauch in eigene Datenpunkte raus schreiben.

              Woran scheitert es? Du musst die entsprechenden Datenpunkte in 0.Userdata anlegen (am Besten mit Einheit). Dann erstellst du ein Blockly mit Trigger Wertänderung oder einem Cron (zb alle 3s) auf den Entsprechenden Wert den du zur Weiterberechnung benötigst. Der Rest ist simple Mathematik.

              Meinst du sowas?

              IMG_1966.jpeg

              
              <block xmlns="https://developers.google.com/blockly/xml" type="on" id="0Cp6~c)1g?,Ve]1GwJUO" x="263" y="-187">
                <field name="OID">Object ID</field>
                <field name="CONDITION">ne</field>
                <field name="ACK_CONDITION"></field>
                <statement name="STATEMENT">
                  <block type="variables_set" id="r(mDZAgW6Bl,wmg2![{W">
                    <field name="VAR" id="vN$csYNld]Pb3aq2^Q;r">Ausgangsleistung</field>
                    <value name="VALUE">
                      <block type="get_value" id="6njxLNiqNt~PIE[iR2:O">
                        <field name="ATTR">val</field>
                        <field name="OID">ID auswählen</field>
                      </block>
                    </value>
                    <next>
                      <block type="variables_set" id="QY719@jweoZDuLdj5xr=">
                        <field name="VAR" id=":Wc/S!2[*TD%:`^}B-FC">Addiert</field>
                        <value name="VALUE">
                          <block type="math_arithmetic" id="_/Ef#s)pJ(-l)Yguv?Lz">
                            <field name="OP">ADD</field>
                            <value name="A">
                              <shadow type="math_number" id="ZetU#(;4?S@5/N+5g3Hv">
                                <field name="NUM">1</field>
                              </shadow>
                              <block type="variables_get" id="YMZAAjH,H*UqB[-_XeC2">
                                <field name="VAR" id="vN$csYNld]Pb3aq2^Q;r">Ausgangsleistung</field>
                              </block>
                            </value>
                            <value name="B">
                              <shadow type="math_number" id="2ORcyiH3}C1N^Tl4IYCb">
                                <field name="NUM">1</field>
                              </shadow>
                              <block type="on_source" id="1OiK{r`_Mhd[%h@ar@74">
                                <field name="ATTR">state.val</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <next>
                          <block type="variables_set" id="[V0kRKflo2cUU,r/JvXp">
                            <field name="VAR" id=":Wc/S!2[*TD%:`^}B-FC">Addiert</field>
                            <value name="VALUE">
                              <block type="math_arithmetic" id="0=u/]0vpk[C[uF$B34Sp">
                                <field name="OP">MULTIPLY</field>
                                <value name="A">
                                  <shadow type="math_number" id="B-o,=GhlSy(`Gi3#}}-]">
                                    <field name="NUM">1</field>
                                  </shadow>
                                  <block type="variables_get" id="}V]+[7QF-p#S@;hzCz=}">
                                    <field name="VAR" id=":Wc/S!2[*TD%:`^}B-FC">Addiert</field>
                                  </block>
                                </value>
                                <value name="B">
                                  <shadow type="math_number" id="t9a}qdePM9S%V_m1+qTG">
                                    <field name="NUM">-1</field>
                                  </shadow>
                                </value>
                              </block>
                            </value>
                            <next>
                              <block type="update" id="LsqyqLF-+[k(_SM+sS5?">
                                <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="O]q|iWc662}`n(xF2Dl0">
                                    <field name="VAR" id=":Wc/S!2[*TD%:`^}B-FC">Addiert</field>
                                  </block>
                                </value>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
              
              
              W 1 Reply Last reply Reply Quote 0
              • W
                Wolfirr @mading last edited by

                Danke @mading!
                Das mit dem Anlegen des lokalen Datenpunkts ist wohl der wichtige Punkt für mich. Da muss ich mich noch einmal etwas einlesen, hat aber geholfen.
                Grüße
                Wolfirr

                M 1 Reply Last reply Reply Quote 0
                • M
                  mading @Wolfirr last edited by

                  @wolfirr du kannst auch Blockly dafür verwenden. Einmalig ausführen reicht. Am Besten legst du unter 0_userdata.0 einen Ordner je Bereich an, da noch einiges dazu kommen kann.

                  Bei mir sieht es als Beispiel so aus:

                  4242cd22-72bd-4949-bafc-6b085e6b8f5b-grafik.png

                  <block xmlns="https://developers.google.com/blockly/xml" type="create" id="@*7aXYReA;^u7ccg^?fc" x="-687" y="-135">
                    <field name="NAME">0_userdata.0.EigeneDatenpunkte.MinimaleRaumtemperatur</field>
                    <value name="VALUE">
                      <block type="text" id="D)q9N%ag2=-L1Cn2RJ|p">
                        <field name="TEXT">0</field>
                      </block>
                    </value>
                    <value name="COMMON">
                      <block type="text" id="B,LYkW^q0HfMDRk.L/eb">
                        <field name="TEXT">{ "type": "number", "min": 0, "max": 100, "unit": "°C" }</field>
                      </block>
                    </value>
                  </block>
                  
                  W 1 Reply Last reply Reply Quote 0
                  • W
                    Wolfirr @mading last edited by Wolfirr

                    @mading Danke!
                    Nur noch die Frage, wenn ich den Ordner manuell anlege, ist es besser diese Userdatenordner und -punkte im Expertenmodus oder Usermodus anzulegen?
                    Und wenn schon Datenpunkte ganz unten am Ende der Objekt ID Liste angelegt wurden, weil ich empfangene Daten in einer FHEM Telnet Integration für die InfluxDB aktiviert hatte, wie bekomme ich die dann in die angelegte Userdata Ordnerstruktur?
                    Ich seh schon, da fehlt mir noch sehr viel Verständnis für die iobroker Tiefen. Nur wo fange ich an diese zu lernen?

                    M 1 Reply Last reply Reply Quote 0
                    • M
                      mading @Wolfirr last edited by mading

                      @wolfirr du musst die Datenpunkte, die keine Ordner sind, im Expertenmodus anlegen. Alle Ordner , die du in meinem Screenshot siehst, habe ich mir angelegt. Es steht dir frei, das so zu strukturieren, wie du es brauchst

                      @wolfirr sagte in Wallbox, PV mit openWB in iobroker einbinden:

                      Und wenn schon Datenpunkte ganz unten am Ende der Objekt ID Liste angelegt wurden, weil ich empfangene Daten in einer FHEM Telnet Integration für die InfluxDB aktiviert hatte, wie bekomme ich die dann in die angelegte Userdata Ordnerstruktur?

                      Ich verstehe nicht, was du damit meinst. 😞

                      1 Reply Last reply Reply Quote 0
                      • W
                        Wolfirr last edited by

                        @mading Danke sehr, das hilft schon mal. Denn den Unterschied ob im Expertenmodus oder nicht, habe ich in der Docu noch nicht gefunden oder bin noch nicht so weit vorgedrungen.
                        In dem angehängten Bild sieht man und die Datenpunkte am Ende der Objektordner und ich weiß nicht, wie die entstanden sind und wie ich rausfinde, wo die erzeugt wurden? Ich finde nur eine 'Löschen' Funktion, wenn drauf gehe?![0_1704197272127_Bildschirmfoto von 2024-01-02 13-05-41.png](Uploading 100%)

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          mading @Wolfirr last edited by

                          @wolfirr das Bild fehlt

                          W 1 Reply Last reply Reply Quote 0
                          • W
                            Wolfirr @mading last edited by

                            @mading bin ich noch zu kurz dabei, dass ich keins hochladen kann?Bildschirmfoto von 2024-01-02 13-05-41.png

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              mading @Wolfirr last edited by mading

                              @wolfirr klapp' mal 0_Userdata auf. Das ist der Bereich, der für deine eigenen Datenpunkte gedacht ist. Alle anderen Ordner beinhalten Datenpunkte der jeweiligen Adapter.

                              Hast du die SN Datenpunkte angelegt? Vermutlich hast du den Pfad nicht korrekt angegeben bzw. bevor dur auf Hinzufügen (+) Klickst, nicht auf 0_userdata geklickt.

                              1. die 0 Anklicken unter 0_Userdata
                              2. In den Expertenmodus gehen
                              3. Einen Ordner (z.B. EigeneDatenpunkte) anlegen (das oberste Feld beim Anlegen zeigt dir, wo der Ordner/ Datenpunkt in der Hierarchie angelegt wird):
                                348e4988-77ae-41a9-965a-1d9beff677e5-grafik.png
                              4. Danach sollte unter 0_userdata.0 dein neuer Ordner auftauchen

                              Wenn du darunter Datenpunkte oder Ordner anlegen willst, musst du in den Expertenmodus. Wenn du die "0" unter 0_userdata angeklickt hast, und möchtest unter EigeneDatenpunkte einen Datenpunkt anlegen, musst du im Bereicht Name noch den Ordner (EigeneDatenpunkte) vor dem Namen des Ordners angeben:

                              44006312-6257-479d-89bf-179663a940bb-grafik.png

                              Einfach den Ordner im Namen-Feld mit einem Punkt vom Datenpunkte Namen trennen.

                              Ich hoffe, das war veständlich.

                              W 2 Replies Last reply Reply Quote 0
                              • W
                                Wolfirr @mading last edited by

                                @mading Danke!
                                Die SN Datenpunkte hatte ich nicht wissentlich angelegt, hab sie jetzt einfach mal gelöscht.
                                Wie ich eigene Datenpunkte anlege hatte ich oben gelernt, wichtig deine Bemerkung, dass ich sie im Expertenmodus anlegen muss.
                                Nun muss ich mir noch mehr Docu und Anleitungen reinziehen, damit ich die richtigen und nicht zu dumme Fragen stellen kann.

                                1 Reply Last reply Reply Quote 0
                                • W
                                  Wolfirr @mading last edited by

                                  Hallo Forum, jetzt hätte ich noch eine Frage, die mir in der Docu nicht klar wird. Dort steht bei 'Blockly for Dummies' dass:
                                  'ACHTUNG: Scripte - egal welcher Art - gehören nur in sehr seltenen Ausnahmefällen in den Ordner "global". Du solltest Dir eine sinnvolle Ordnerstruktur - im Normalfall unterhalb von "common" - ausdenken.'

                                  Soll es heißen, dass die Scripte 'in' oder 'unter' 'common' angelegt werden sollen?
                                  Bei mir sieht es nun 'unter' so aus, siehe Bild.
                                  Danke für eure HilfeBildschirmfoto von 2024-01-04 22-35-14.png

                                  M 1 Reply Last reply Reply Quote 0
                                  • M
                                    mading @Wolfirr last edited by

                                    @wolfirr richtig, den Expertenmodus brauchst du da nicht und siehst den global Ordner dann auch nicht

                                    W 1 Reply Last reply Reply Quote 0
                                    • W
                                      Wolfirr @mading last edited by

                                      @mading Danke, aber ich hab mich vielleicht nicht präzise genug ausgedrückt. Ich wollte wissen, ob ich die Scripte IM Ordner 'common' oder UNTERHALB des Ordners anlegen soll?
                                      Ok, ich mach das nicht im Expertenmodus, das war wohl ein Fehler.
                                      Heute hatte ich bei Sonne endlich die Möglichkeit die Scripte zu testen und sie tun leider nicht, was ich will. Also es werden keine Datenpunkte gefüllt oder angelegt und damit auch nichts sinnvolles an die openWB per mqtt geschickt.
                                      Da muss ich wohl noch weiter üben, weil ich auch nicht herausgefunden habe, woran es liegt.

                                      M 1 Reply Last reply Reply Quote 0
                                      • M
                                        mading @Wolfirr last edited by

                                        @wolfirr unterhalb, leg‘ einfach deine eigene Ordnerstruktur an.

                                        IMG_1976.jpeg

                                        W 1 Reply Last reply Reply Quote 0
                                        • W
                                          Wolfirr @mading last edited by

                                          @mading endlich konnte ich bei Sonnenschein den Speicher mal wieder richtig betreiben und das Blockly nochmal laufen lassen und testen. Dabei ist mir folgender Debug ausgegeben worden und ich weiß nicht, wo der Fehler liegen kann?
                                          Danke im Voraus

                                          Debug Output:

                                          15.2.2024, 12:55:39.788	[info ]: javascript.0 (1832412) Start javascript script.js.Speicher.SN103
                                          15.2.2024, 12:55:39.871	[info ]: javascript.0 (1832412) script.js.Speicher.SN103: schedule(cron=* * * * *)
                                          15.2.2024, 12:55:39.873	[info ]: javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.03_Battery_to_Household_in_W, timerId=undefined) => {"val":0,"ack":true,"ts":1707994275680,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1707994275680}
                                          15.2.2024, 12:55:39.873	[info ]: javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.03_Battery_to_Household_in_W, timerId=undefined) => {"val":0,"ack":true,"ts":1707994275680,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1707994275680}
                                          15.2.2024, 12:55:39.874	[info ]: javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.05_PV_to_Battery_in_W, timerId=undefined) => {"val":1963,"ack":true,"ts":1707998056473,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1707998056473}
                                          15.2.2024, 12:55:39.875	[error]: javascript.0 (1832412) script.js.Speicher.SN103 Error by subscription (trigger): Wrong ID of type boolean or number.
                                          15.2.2024, 12:55:39.875	[info ]: javascript.0 (1832412) script.js.Speicher.SN103: registered 0 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions
                                          15.2.2024, 12:56:00.049	[info ]: javascript.0 (1832412) script.js.Speicher.SN103: getObject(id=fhem.0.ESS_Minutenwerte.03_Battery_to_Household_in_W, enumName=undefined) => {"_id":"fhem.0.ESS_Minutenwerte.03_Battery_to_Household_in_W","type":"state","common":{"name":"ESS_Minutenwerte 03_Battery_to_Household_in_W","type":"number","role":"value","read":true,"write":false,"custom":{"influxdb.0":{"enabled":true,"storageType":"Number","aliasId":"","debounceTime":0,"blockTime":0,"changesOnly":true,"changesRelogInterval":0,"changesMinDelta":0,"ignoreBelowNumber":"","disableSkippedValueLogging":false,"enableDebugLogs":false,"debounce":1000}}},"native":{"Name":"ESS_Minutenwerte","Attribute":"03_Battery_to_Household_in_W","Readings":true,"type":"number","role":"value"},"value":{"val":"0"},"from":"system.adapter.influxdb.0","user":"system.user.admin","ts":1704876495776}
                                          15.2.2024, 12:56:00.050	[info ]: javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.05_PV_to_Battery_in_W, timerId=undefined) => {"val":1963,"ack":true,"ts":1707998056473,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1707998056473}
                                          15.2.2024, 12:56:00.051	[info ]: javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.05_PV_to_Battery_in_W, timerId=undefined) => {"val":1963,"ack":true,"ts":1707998056473,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1707998056473}
                                          15.2.2024, 12:56:00.052	[info ]: javascript.0 (1832412) script.js.Speicher.SN103: setForeignState(id=0_userdata.0.eigeneDatenpunkte.Caterva.SN103.LeistungSN103, state={"val":-1963,"ack":true,"ts":1707998160052,"q":0,"from":"system.adapter.javascript.0","lc":1707998160052,"c":"script.js.Speicher.SN103"})
                                          15.2.2024, 12:56:00.053	[warn ]: javascript.0 (1832412) script.js.Speicher.SN103: setForeignState(id=0_userdata.0.eigeneDatenpunkte.Caterva.SN103.LeistungSN103, state={"val":-1963,"ack":true,"ts":1707998160052,"q":0,"from":"system.adapter.javascript.0","lc":1707998160052,"c":"script.js.Speicher.SN103"}) - wurde nicht ausgeführt, während der Debug-Modus aktiv ist
                                          15.2.2024, 12:56:00.055	[info ]: javascript.0 (1832412) script.js.Speicher.SN103: sendTo(instance=mqtt.0, cmd=sendMessage2Client, msg={"topic":"openWB/set/houseBattery/W","message":"0","retain":true}, hasCallback=true)
                                          15.2.2024, 12:56:00.058	[info ]: javascript.0 (1832412) script.js.Speicher.SN103: getState(id=fhem.0.ESS_Minutenwerte.01_SoC_in_Pct, timerId=undefined) => {"val":70,"ack":true,"ts":1707997876082,"q":0,"from":"system.adapter.fhem.0","user":"system.user.admin","lc":1707997876082}
                                          15.2.2024, 12:56:00.059	[info ]: javascript.0 (1832412) script.js.Speicher.SN103: sendTo(instance=mqtt.0, cmd=sendMessage2Client, msg={"topic":"openWB/set/houseBattery/%Soc","message":70,"retain":true}, hasCallback=true)
                                          15.2.2024, 12:56:20.056	[error]: javascript.0 (1832412) script.js.Speicher.SN103: timeout
                                          15.2.2024, 12:56:20.058	[error]: javascript.0 (1832412) script.js.Speicher.SN103: timeout
                                          15.2.2024, 12:57:00.052	[info ]: javascript.0 (1832412) script.js.Speicher.SN103: getObject(id=fhem.0.ESS_Minutenwerte.03_Battery_to_Household_in_W, enumName=undefined) => {"_id":"fhem.0.ESS_Minutenwerte.03_Battery_to_Household_in_W","type":"state","common":{"name":"ESS_Minutenwerte 03_Battery_to_Household_in_W","type":"number","role":"value","read":true,"write":false,"custom":{"influxdb.0":{"enabled":true,"storageType":"Number","aliasId":"","debounceTime":0,"blockTime":0,"changesOnly":true,"changesRelogInterval":0,"changesMinDelta":0,"ignoreBelowNumber":"","disableSkippedValueLogging":false,"enableDebugLogs":false,"debounce":1000}}},"native":{"Name":"ESS_Minutenwerte","Attribute":"03_Battery_to_Household_in_W","Readings":true,"type":"number","role":"value"},"value":{"val":"0"},"from":"system.adapter.influxdb.0","user":"system.user.admin","ts":1704876495776}
                                          

                                          Bildschirmfoto von 2024-02-15 13-05-54.png

                                          M 1 Reply Last reply Reply Quote 0
                                          • M
                                            mading @Wolfirr last edited by

                                            @wolfirr
                                            Es gibt wohl ein Problem mit 1832412) script.js.Speicher.SN103 Error by subscription (trigger): Wrong ID of type boolean or number.

                                            Was ist das für ein DP?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            22
                                            116
                                            21567
                                            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