Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. [HowTo][Anleitung] Integration und Visualisierung des S10 Hauskraftwerks von E3DC in ioBroker

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [HowTo][Anleitung] Integration und Visualisierung des S10 Hauskraftwerks von E3DC in ioBroker

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      Letty last edited by

      Hallo,

      Erst mal ein Lob für die Anleitung 🙂

      Leider habe ich ein Problem mit dem Import der Holding Register im ModBus.

      Es wirft mir immer alle durch einander.

      Wäre es möglich das es noch mal jemand Exportiert und hier einfügt?

      edit:

      Habe es doch hinbekommen, poste den Code hier nochmal als CSV

      address;name;description;unit;type;len;factor;offset;role;room;poll;wp
      40002;Modbus_Firmware;Modbus-Firmware-Version;;uint16be;1;1;0;value;;true;false
      40004;Hersteller;Hersteller;;string;16;1;0;value;;true;false
      40020;Modell;Modell;;string;16;1;0;value;;true;false
      40036;Seriennummer;Seriennummer;;string;16;1;0;value;;true;false
      40052;Firmware;Firmware;Release;string;16;1;0;value;;true;false
      40068;PV_Leistung;Photovoltaik-Leistung in Watt;W;int32sw;2;1;0;value;;true;false
      40070;Batterie_Leistung;Batterie-Leistung in Watt;W;int32sw;2;1;0;value;;true;false
      40072;Hausverbrauch_Leistung;Hausverbrauchs-Leistung in Watt;W;int32sw;2;1;0;value;;true;false
      40074;Netz_Leistung;Leistung am Netzübergabepunkt;W;int32sw;2;1;0;value;;true;false
      40082;Autarkie_Eigenverbrauch;Autarkie und Eigenverbrauch;;uint16be;1;1;0;value;;true;false
      40083;Batterie_SOC;Batterie-SOC in Prozent;%;uint16be;1;1;0;value;;true;false
      40084;Emergency_Power_Status;Emergency-Power Status;;uint16be;1;1;0;value;;true;false
      40085;EMS_Status;EMS-Status;;uint16be;1;1;0;value;;true;false
      40096;DC_String_1_Voltage;Spannung in Volt;V;uint16be;1;1;0;value;;true;false
      40097;DC_String_2_Voltage;Spannung in Volt;V;uint16be;1;1;0;value;;true;false
      40098;DC_String_3_Voltage;Spannung in Volt;V;uint16be;1;1;0;value;;true;false
      40099;DC_String_1_Current;Strom in Ampere;A;uint16be;1;1;0;value;;true;false
      40100;DC_String_2_Current;Strom in Ampere;A;uint16be;1;1;0;value;;true;false
      40101;DC_String_3_Current;Strom in Ampere;A;uint16be;1;1;0;value;;true;false
      40102;DC_String_1_Power;Leistung in Watt;W;uint16be;1;1;0;value;;true;false
      40103;DC_String_2_Power;Leistung in Watt;W;uint16be;1;1;0;value;;true;false
      40104;DC_String_3_Power;Leistung in Watt;W;uint16be;1;1;0;value;;true;false
      
      

      Vielen Dank

      Grüße Armin

      S J 2 Replies Last reply Reply Quote 2
      • C
        cromagnon last edited by

        Hallo,

        auch von mir Lob für die Anleitung.

        Ich habe das Problem das die Abfrage zeitweise funktioniert, meistens aber auf einen Fehler läuft, siehe Fehlerlog weiter unten.

        Version des Modbus Adapter ist 2.0.7

        Hat jemand eine Idee was falsch sein könnte?

        __"

        2018-08-01 00:00:17.685 - [32minfo[39m: host.ioBroker-RasPi instance system.adapter.modbus.0 started with pid 23670

        2018-08-01 00:00:18.923 - [32minfo[39m: modbus.0 States connected to redis: 127.0.0.1:6379

        2018-08-01 00:00:18.989 - [32minfo[39m: modbus.0 starting. Version 2.0.7 in /opt/iobroker/node_modules/iobroker.modbus, node: v8.11.3

        2018-08-01 00:00:19.414 - [32minfo[39m: modbus.0 Connected to slave 192.168.178.31

        2018-08-01 00:00:19.444 - [31merror[39m: modbus.0 uncaught exception: Q is not defined

        2018-08-01 00:00:19.444 - [31merror[39m: modbus.0 ReferenceError: Q is not defined

        at Object.writeMultipleRegisters (/opt/iobroker/node_modules/iobroker.modbus/lib/jsmodbus/handler/client/WriteMultipleRegisters.js:69:25)

        at send (/opt/iobroker/node_modules/iobroker.modbus/lib/master.js:402:30)

        at writeHelper (/opt/iobroker/node_modules/iobroker.modbus/lib/master.js:440:13)

        at Master.write (/opt/iobroker/node_modules/iobroker.modbus/lib/master.js:452:17)

        at Adapter.adapter.on (/opt/iobroker/node_modules/iobroker.modbus/main.js:79:24)

        at emitTwo (events.js:126:13)

        at Adapter.emit (events.js:214:7)

        at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3712:38)

        at runCallback (timers.js:810:20)

        at tryOnImmediate (timers.js:768:5)

        2018-08-01 00:00:19.476 - [31merror[39m: Caught by controller[0]: ReferenceError: Q is not defined

        2018-08-01 00:00:19.477 - [31merror[39m: Caught by controller[0]: at Object.writeMultipleRegisters (/opt/iobroker/node_modules/iobroker.modbus/lib/jsmodbus/handler/client/WriteMultipleRegisters.js:69:25)

        2018-08-01 00:00:19.477 - [31merror[39m: Caught by controller[0]: at send (/opt/iobroker/node_modules/iobroker.modbus/lib/master.js:402:30)

        2018-08-01 00:00:19.477 - [31merror[39m: Caught by controller[0]: at writeHelper (/opt/iobroker/node_modules/iobroker.modbus/lib/master.js:440:13)

        2018-08-01 00:00:19.477 - [31merror[39m: Caught by controller[0]: at Master.write (/opt/iobroker/node_modules/iobroker.modbus/lib/master.js:452:17)

        2018-08-01 00:00:19.477 - [31merror[39m: Caught by controller[0]: at Adapter.adapter.on (/opt/iobroker/node_modules/iobroker.modbus/main.js:79:24)

        2018-08-01 00:00:19.477 - [31merror[39m: Caught by controller[0]: at emitTwo (events.js:126:13)

        2018-08-01 00:00:19.477 - [31merror[39m: Caught by controller[0]: at Adapter.emit (events.js:214:7)

        2018-08-01 00:00:19.477 - [31merror[39m: Caught by controller[0]: at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3712:38)

        2018-08-01 00:00:19.477 - [31merror[39m: Caught by controller[0]: at runCallback (timers.js:810:20)

        2018-08-01 00:00:19.477 - [31merror[39m: Caught by controller[0]: at tryOnImmediate (timers.js:768:5)

        2018-08-01 00:00:19.477 - [31merror[39m: host.ioBroker-RasPi instance system.adapter.modbus.0 terminated with code 0 (OK)

        2018-08-01 00:00:19.478 - [32minfo[39m: host.ioBroker-RasPi Restart adapter system.adapter.modbus.0 because enabled

        2018-08-01 00:00:49.502 - [32minfo[39m: host.ioBroker-RasPi instance system.adapter.modbus.0 started with pid 23729

        2018-08-01 00:00:50.741 - [32minfo[39m: modbus.0 States connected to redis: 127.0.0.1:6379

        2018-08-01 00:00:50.813 - [32minfo[39m: modbus.0 starting. Version 2.0.7 in /opt/iobroker/node_modules/iobroker.modbus, node: v8.11.3

        2018-08-01 00:00:51.240 - [32minfo[39m: modbus.0 Connected to slave 192.168.178.31

        2018-08-01 00:00:51.270 - [31merror[39m: modbus.0 uncaught exception: Q is not defined

        2018-08-01 00:00:51.271 - [31merror[39m: modbus.0 ReferenceError: Q is not defined

        "__

        Meine aktuelle Testkonfiguration ist:

        address name description unit type len factor offset role room poll wp

        40068 PV_Leistung Photovoltaik-Leistung in Watt W int32sw 2 1 0 value true false

        40070 Batterie_Leistung Batterie-Leistung in Watt W int32sw 2 1 0 value true false

        40072 Hausverbrauch_Leistung Hausverbrauchs-Leistung in Watt W int32sw 2 1 0 value true false

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

          Hallo,

          funktionieren bei euch die Passworter für den VIS View download die hier angegeben sind noch:

          https://buanet.de/2018/02/integration-e … obroker/4/

          Bei mir leider nicht. Hat jemand die Dateien evtl. schon runtergeladen und kann sie mir zu Verfügung stellen?

          Danke

          1 Reply Last reply Reply Quote 0
          • andre
            andre Developer last edited by

            @weidlix:

            Hallo,

            funktionieren bei euch die Passworter für den VIS View download die hier angegeben sind noch:

            https://buanet.de/2018/02/integration-e … obroker/4/

            Bei mir leider nicht. Hat jemand die Dateien evtl. schon runtergeladen und kann sie mir zu Verfügung stellen?

            Danke ` Habs gerade probiert. Kennwort ist richtig.

            Schreib mir ne Mail übers Kontaktformular der Website dann schick ich dir die Dateien.

            MfG,

            André

            PS: Würde es im Übrigen nicht so schön finden wenn jemand meinen Content herunterlädt und ohne mich zu fragen weiter verbreitet… 🙂

            Gesendet von Unterwegs...

            1 Reply Last reply Reply Quote 0
            • L
              lulu99 last edited by

              Hallo Andre.

              Ich habe mal eine Frage. Ich würde die History-Werte gerne als Wert anzeigen lassen, anstatt grafisch.

              Also z.B. PV-Produktion/Hausverbrauch letzte Stunde, letzter Tag, oder jede Stunde aktualisiert kumuliert seit 0 Uhr als Zahl in einer Liste angezeigt anstatt per Graph.

              Hast du eine Ahnung, wie man das machen kann? Ich muss ja irgendwie die History-Werte addiert als Zahl ausgeben.

              VG lulu

              1 Reply Last reply Reply Quote 0
              • andre
                andre Developer last edited by

                @lulu99:

                Hallo Andre.

                Ich habe mal eine Frage. Ich würde die History-Werte gerne als Wert anzeigen lassen, anstatt grafisch.

                Also z.B. PV-Produktion/Hausverbrauch letzte Stunde, letzter Tag, oder jede Stunde aktualisiert kumuliert seit 0 Uhr als Zahl in einer Liste angezeigt anstatt per Graph.

                Hast du eine Ahnung, wie man das machen kann? Ich muss ja irgendwie die History-Werte addiert als Zahl ausgeben.

                VG lulu ` Hört sich gut an, nehme ich. 🙂

                Bin leider noch nicht dazu gekommen sowas zu machen. Mein Ansatz war ein Script. Bin aber seinerzeit schon am auslesen der Daten aus der DB gescheitert. 😞 Da hab ich es auf Eis gelegt.

                Würde mir auch gerne die Werte aus dem E3DC Webinterface anzeigen lassen, aber es gibt keine Schnittstelle dazu… Und über mod us kommen keine kummulierten Werte...

                Wenn du eine Lösung findest lass es mich wissen. 🙂

                MfG,

                André

                Gesendet von Unterwegs...

                1 Reply Last reply Reply Quote 0
                • L
                  lulu99 last edited by

                  Was ich hinbekommen habe ist die Werte in Blockly "mitzurechnen". Also eine Objektvariable "Summe" erstellt, und dort habe ich dann immer bei Änderung z.B. der PV-Produktion "Summe=alte Summe + neuer PV-Produktionswert" den Wert hochgezählt. Nun müsste man halt z.B. im Script noch jede Stunde den Wert festhalten, oder auch 24. Das geht schon alles, aber recht aufwändig und vor allem weiß ich nicht, wie viel Leistung das ganze kostet, wenn man das für mehrere Werte macht (wenn die jede Sekunde berechnet werden).

                  Ich hätte gedacht, wenn man eh schon die ganzen Daten in ne Datenbank schreibt, dann müsste man die doch irgendwie zur Anzeige bringen können.

                  1 Reply Last reply Reply Quote 0
                  • K
                    knudi76 last edited by

                    Hallo Andre,

                    ich habe mich auch mal an deine Anleitung gewagt. Läuft eigentlich ganz gut. Erstmal schönen Dank für die Anleitung. Ich habe nur ein Problem, mir werden fast alle Werte im VIS als undefined angezeigt. Woran kann das liegen? Ich habe deine txt Dateien zum Import genutzt.

                    Vielen Dank

                    Stephan
                    8638_e3dc.jpg

                    1 Reply Last reply Reply Quote 0
                    • K
                      knudi76 last edited by

                      Hallo,

                      ich habe es gelöst. Es dürfen in der Instanz keine Leerzeichen in dem Namen des Holding Registers eingegeben werden, leider auch nicht hinter dem Namen.

                      1 Reply Last reply Reply Quote 0
                      • K
                        knudi76 last edited by

                        Hallo in die Runde,

                        gibt es schon Neuigkeiten über die History Werte?

                        Ich versuch mich auch schon daran, habe bislang Erfolglos folgendes getestet:

                        • Verbrauchszähler

                        • Betriebsstundenzähler

                        Habt Ihr vielleicht eine Lösung um die Daten direkt über Modbus Sun-Spec Protokoll auszulesen?

                        Es muss doch irgendwie möglich sein an die History Werte zu kommen. 😢

                        Danke

                        Stephan

                        1 Reply Last reply Reply Quote 0
                        • Krami
                          Krami last edited by

                          Hallo, zuerst einmal vielen Dank für die Bereitstellung der Anleitung. Im Moment bin ich noch rund um mein Haus am Daten sammeln. Ich wollte mich aber schon mal ans Zerlegung des Werte für Autarkie und Eigenverbrauch machen, aber bei mir im Editor bringt er ständig eine Fehlermeldung in Zeile 8.

                          Was wohl mit den entity names zu tun hat, hier mal ein Printscreen:
                          2019_10_03_17_25_35_javascript_ioBroker.png

                          Ich verstehe zwar was der Code machen soll, sprich den Wert aus 2 Uint8 zerlegen, aber ich kann es nicht im Beispiel nachvollziehen (roter Kasten). Kann mir hier bitte jemand Hilfestellung geben?

                          Vielen Dank
                          und Gruss
                          Stefan

                          Krami 1 Reply Last reply Reply Quote 0
                          • Krami
                            Krami @Krami last edited by

                            @Krami :
                            Hat sich erledigt, die Zeichenkodierung war es die mir hier einen Strich durch die Rechnung gemacht hat.

                            >>
                            Bedeutet nicht &>&> sondern >>

                            Ich hatte irgendwie ein Knoten im Kopf, es funktioniert nun einwandfrei und ich bedanke mich noch einmal für die Anleitung

                            Gruss
                            Krami

                            M 1 Reply Last reply Reply Quote 0
                            • A
                              ArnoD last edited by

                              Hallo an alle,

                              danke für die wirklich gelungene Anleitung 👍 😊

                              Beim Script hatte ich dasselbe Problem wie Krami und weiss nicht ob ich es richtig verstanden habe.
                              Ist das jetzt so richtig ?

                              // Aufteilung der Datenpunkte mit doppelten Informationen
                               
                              // Aufteilung "Autarkie und Eigenverbrauch in Prozent"
                              var id = 'modbus.0.holdingRegisters.40082_Autarkie_Eigenverbrauch';
                              createState('e3dc.modbus.Autarkie');
                              createState('e3dc.modbus.Eigenverbrauch');
                              on(id, function (obj) {
                              setState('e3dc.modbus.Autarkie', (obj.state.val >> 8) & 0xFF, true);
                              setState('e3dc.modbus.Eigenverbrauch', obj.state.val & 0xFF, true);
                              });
                               
                              // Aufteilung "Modbus Firmware Verwsion"
                              var id = 'modbus.0.holdingRegisters.40002_Modbus-Firmware';
                              createState('e3dc.modbus.MajorVersion');
                              createState('e3dc.modbus.MinorVersion');
                              on(id, function (obj) {
                              setState('e3dc.modbus.MajorVersion', (obj.state.val >> 8) & 0xFF, true);
                              setState('e3dc.modbus.MinorVersion', obj.state.val & 0xFF, true);
                              });
                              

                              Ich habe noch eine Frage zu den Adressen 40097 bis 40104, diese finde ich in der Dokumentation von E3DC nicht und
                              frage mich nun, ob ich eine alte Dokumentation benutze oder ob diese Adressen nicht dokumentiert wurden.
                              Meine Version derDoku ist 05.08.2016.

                              Gruß Arno

                              I 1 Reply Last reply Reply Quote 0
                              • K
                                knudi76 last edited by

                                Hallo Arno,

                                ja es gibt eine neue Doku.
                                fafa0e6b-46d5-4431-a2b0-272d228a2f7e-grafik.png

                                Gruß
                                Stephan

                                1 Reply Last reply Reply Quote 0
                                • I
                                  ioStarter @ArnoD last edited by

                                  @ArnoD
                                  Hallo Arno,
                                  funktioniert das jetzt so, wie Du in den Zeilen 8/9 und 17/18 angenommen hast.
                                  Gruß Thomas

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    MarcusW last edited by

                                    This post is deleted!
                                    M 1 Reply Last reply Reply Quote 0
                                    • M
                                      MarcusW @MarcusW last edited by

                                      This post is deleted!
                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        MarcusW last edited by

                                        So, es läuft nun fast alles,vielen Dank für deine Arbeit und die Anleitung!

                                        Ich habe jedoch noch ein Problem bei dem Javascript.

                                        // Aufteilung der Datenpunkte mit doppelten Informationen
                                         
                                        // Aufteilung "Autarkie und Eigenverbrauch in Prozent"
                                        var id = 'modbus.0.holdingRegisters.40082_Autarkie_Eigenverbrauch';
                                        createState('e3dc.modbus.Autarkie');
                                        createState('e3dc.modbus.Eigenverbrauch');
                                        on(id, function (obj) {
                                        setState('e3dc.modbus.Autarkie', (obj.state.val >> 8) & 0xFF, true);
                                        setState('e3dc.modbus.Eigenverbrauch', obj.state.val & 0xFF, true);
                                        });
                                         
                                        // Aufteilung "Modbus Firmware Version"
                                        var id = 'modbus.0.holdingRegisters.40002_Modbus-Firmware';
                                        createState('e3dc.modbus.MajorVersion');
                                        createState('e3dc.modbus.MinorVersion');
                                        on(id, function (obj) {
                                        setState('e3dc.modbus.MajorVersion', (obj.state.val >> 8) & 0xFF, true);
                                        setState('e3dc.modbus.MinorVersion', obj.state.val & 0xFF, true);
                                        });
                                        

                                        Es kommt folgende Fehlermeldung:

                                        error	javascript.0 (5434) script.js.e3dc compile failed: at script.js.e3dc:8
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          MarcusW @Krami last edited by

                                          @Krami sagte in [HowTo][Anleitung] Integration und Visualisierung des S10 Hauskraftwerks von E3DC in ioBroker:

                                          @Krami :
                                          Hat sich erledigt, die Zeichenkodierung war es die mir hier einen Strich durch die Rechnung gemacht hat.

                                          >>
                                          Bedeutet nicht &>&> sondern >>

                                          Ich hatte irgendwie ein Knoten im Kopf, es funktioniert nun einwandfrei und ich bedanke mich noch einmal für die Anleitung

                                          Gruss
                                          Krami

                                          Ok, damit klappts jetzt!👍

                                          1 Reply Last reply Reply Quote 0
                                          • A
                                            ArnoD last edited by ArnoD

                                            @ioStarter
                                            Ja es funktioniert soweit.
                                            Es ist aber noch ein Schreibfehler enthalten, Zeile 13 muss richtig heißen:
                                            var id = 'modbus.0.holdingRegisters.40002_Modbus_Firmware';

                                            Es hat sich da wohl versehentlich ein "-" anstatt einem "_" eingeschlichen 🙂
                                            Jetzt noch mal vollständig so wie das Script bei mir funktioniert:

                                            // Aufteilung der Datenpunkte mit doppelten Informationen
                                            
                                             
                                            
                                            // Aufteilung "Autarkie und Eigenverbrauch in Prozent"
                                            
                                            var id = 'modbus.0.holdingRegisters.40082_Autarkie_Eigenverbrauch';
                                            
                                            createState('e3dc.modbus.Autarkie');
                                            
                                            createState('e3dc.modbus.Eigenverbrauch');
                                            
                                            on(id, function (obj) {
                                            
                                            setState('e3dc.modbus.Autarkie', (obj.state.val >> 8) & 0xFF, true);
                                            
                                            setState('e3dc.modbus.Eigenverbrauch', obj.state.val & 0xFF, true);
                                            
                                            });
                                            
                                             
                                            
                                            // Aufteilung "Modbus Firmware Verwsion"
                                            
                                            var id = 'modbus.0.holdingRegisters.40002_Modbus_Firmware';
                                            
                                            createState('e3dc.modbus.MajorVersion');
                                            
                                            createState('e3dc.modbus.MinorVersion');
                                            
                                            on(id, function (obj) {
                                            
                                            setState('e3dc.modbus.MajorVersion', (obj.state.val >> 8) & 0xFF, true);
                                            
                                            setState('e3dc.modbus.MinorVersion', obj.state.val & 0xFF, true);
                                            
                                            });
                                            

                                            Gruß Arno

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            34
                                            136
                                            30600
                                            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