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

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • 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.
    • 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
                            • W
                              weidlix last edited by

                              Ich würde gerne eine Tagesübersicht haben. Also

                              • Solarproduktion
                              • Hausverbrauch
                              • Einspeisung
                              • Bezug

                              Jemand eine Idee wie ich mir diese Werte berechnen kann?

                              Chris Tailor 1 Reply Last reply Reply Quote 1
                              • Chris Tailor
                                Chris Tailor @weidlix last edited by

                                @weidlix Das geht ganz einfach mit SourceAnalytix:
                                https://github.com/iobroker-community-adapters/ioBroker.sourceanalytix/blob/master/README.md

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

                                  @Chris-Tailor Danke das war schonmal ein sehr guter Tipp.

                                  Habe aber Momentan noch das Problem das Netzbezug und Einspeisung über einen Datenpunkt verwaltet werde.
                                  Negative Werte bedeuten Einspeisung, poitive Bezug.
                                  40a4590c-efda-4f97-8ca2-7dac6cc245f2-grafik.png

                                  Ist es Möglich dass in zwei getrennte Zähler aufzusplitten?

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    stevie77 @Letty last edited by stevie77

                                    @Letty Ich verstehe nicht, wie die originale Datei in der Anleitung als CSV-Import funktionieren kann - sie enthält kein Separatorzeichen. Die enthaltenen Leerzeichen können kein Separator sein, weil sie auch oft als Inhalt vorkommen. Somit ist das doch unbrauchbar?! Ich bekomme auch nur Müll importiert. Ich wundere mich, warum es bei vielen scheinbar trotzdem geklappt hat. Ich danke dir für deine Arbeit hier, bei deiner Aufzählung klappt's. Hat mir vermutlich viel Zeit gespart. 🙂

                                    Inzwischen gibt es allerdings am Ende noch ne Spalte CW. Ist die wichtig? Die fehlt in der Anleitung auch...hoffe mal, dass überall false - wie ich es jetzt habe - zu keinen Problemen führt...

                                    L M 2 Replies Last reply Reply Quote 0
                                    • L
                                      Letty @stevie77 last edited by

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

                                      @Letty Ich verstehe nicht, wie die originale Datei in der Anleitung als CSV-Import funktionieren kann - sie enthält kein Separatorzeichen. Die enthaltenen Leerzeichen können kein Separator sein, weil sie auch oft als Inhalt vorkommen. Somit ist das doch unbrauchbar?! Ich bekomme auch nur Müll importiert. Ich wundere mich, warum es bei vielen scheinbar trotzdem geklappt hat. Ich danke dir für deine Arbeit hier, bei deiner Aufzählung klappt's. Hat mir vermutlich viel Zeit gespart. 🙂

                                      Inzwischen gibt es allerdings am Ende noch ne Spalte CW. Ist die wichtig? Die fehlt in der Anleitung auch...hoffe mal, dass überall false - wie ich es jetzt habe - zu keinen Problemen führt...

                                      Hallo Stevie ich habe gerade nachgeschaut in der letzten Spalte ist bei mir auch alles auf false.
                                      sollte also keine Probleme machen läuft bei mir auch super.

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

                                      @Chris-Tailor Danke das war schonmal ein sehr guter Tipp.

                                      Habe aber Momentan noch das Problem das Netzbezug und Einspeisung über einen Datenpunkt verwaltet werde.
                                      Negative Werte bedeuten Einspeisung, poitive Bezug.
                                      40a4590c-efda-4f97-8ca2-7dac6cc245f2-grafik.png

                                      Ist es Möglich dass in zwei getrennte Zähler aufzusplitten?

                                      Hallo weidlix, direkt aufsplitten geht nicht aber mit einem einfachen Skript das je nach dem ob der Wert Positiv oder Negativ die Werte in einen anderen Datenpunkt überträgt.
                                      Kann dir auch eins basteln wenns is.

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

                                        @stevie77 ich habe mir dafür eine excel tabelle angelegt und die werde kopiere ich einfach komplett rein, evtl. hilft dir das. Trenner brauch es nicht.
                                        csv datei holdings.xlsx

                                        S 1 Reply Last reply Reply Quote 0
                                        • S
                                          stevie77 @MarcusW last edited by

                                          @Marcus-Waldeck Danke. Hatte inzwischen ganz weit unten einen Beitrag eines Benutzers gesehen, der dasselbe Problem hatte und ne CSV-Datei mit ";" als Trenner zur Verfügung gestellt hat. Das hat funktioniert. Es sei denn, jemand hätte noch ne Liste abzugeben, welche auch die Eintragungen für Wallbox und zweite PV-Anlage als externe Quelle beinhaltet? 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • S
                                            stevie77 last edited by

                                            Ich hab mal ergänzend zu dem in der Anleitung vorhandenen Register-Auszug noch die Wallbox-Register und die externe Quelle für eine 2. PV-Anlage ergänzt (hoffentlich richtig, Wallbox kann ich noch nicht testen). Vielleicht erspart es ja jemandem Arbeit, da bei mir der Import in ioBroker nur mit "richtigen" Separatoren funktionierte, nicht mit Tabs...

                                            address;name;description;unit;type;len;factor;offset;role;room;poll;wp;cw
                                            40002;Modbus_Firmware;Modbus-Firmware-Version;;uint16be;1;1;0;value;;true;false;false
                                            40004;Hersteller;Hersteller;;string;16;1;0;value;;true;false;false
                                            40020;Modell;Modell;;string;16;1;0;value;;true;false;false
                                            40036;Seriennummer;Seriennummer;;string;16;1;0;value;;true;false;false
                                            40052;Firmware;Firmware-Release;;string;16;1;0;value;;true;false;false
                                            40068;PV_Leistung;Photovoltaik-Leistung in Watt;W;int32sw;2;1;0;value;;true;false;false
                                            40070;Batterie_Leistung;Batterie-Leistung in Watt;W;int32sw;2;1;0;value;;true;false;false
                                            40072;Hausverbrauch_Leistung;Hausverbrauchs-Leistung in Watt;W;int32sw;2;1;0;value;;true;false;false
                                            40074;Netz_Leistung;Leistung am Netzübergabepunkt;W;int32sw;2;1;0;value;;true;false;false
                                            40076;Zusaetzliche_Einspeiser_Leistung;Leistung aller zusätzlichen Einspeiser in Watt;W;int32sw;2;1;0;value;;true;false;false
                                            40078;Wallbox_Leistung;Leistung der Wallbox in Watt;W;int32sw;2;1;0;value;;true;false;false
                                            40080;Wallbox_genutzte_Solarleistung;Solarleistung, die von der Wallbox genutzt wird in Watt;W;int32sw;2;1;0;value;;true;false;false
                                            40082;Autarkie_Eigenverbrauch;Autarkie und Eigenverbrauch;;uint16be;1;1;0;value;;true;false;false
                                            40083;Batterie_SOC;Batterie-SOC in Prozent;%;uint16be;1;1;0;value;;true;false;false
                                            40084;Emergency_Power_Status;Emergency-Power Status;;uint16be;1;1;0;value;;true;false;false
                                            40085;EMS_Status;EMS-Status;;uint16be;1;1;0;value;;true;false;false
                                            40086;EMS Remote Control;EMS Remote Control;;int16be;1;1;0;value;;true;false;false
                                            40087;EMS CTRL;EMS CTRL;;uint16be;1;1;0;value;;true;false;false
                                            40088;WallBox_0_CTRL;WallBox_0_CTRL;;uint16be;1;1;0;value;;true;false;false
                                            40089;WallBox_1_CTRL;WallBox_1_CTRL;;uint16be;1;1;0;value;;true;false;false
                                            40090;WallBox_2_CTRL;WallBox_2_CTRL;;uint16be;1;1;0;value;;true;false;false
                                            40091;WallBox_3_CTRL;WallBox_3_CTRL;;uint16be;1;1;0;value;;true;false;false
                                            40092;WallBox_4_CTRL;WallBox_4_CTRL;;uint16be;1;1;0;value;;true;false;false
                                            40093;WallBox_5_CTRL;WallBox_5_CTRL;;uint16be;1;1;0;value;;true;false;false
                                            40094;WallBox_6_CTRL;WallBox_6_CTRL;;uint16be;1;1;0;value;;true;false;false
                                            40095;WallBox_7_CTRL;WallBox_7_CTRL;;uint16be;1;1;0;value;;true;false;false
                                            40096;DC_String_1_Voltage;Spannung in Volt (String 1);V;uint16be;1;1;0;value;;true;false;false
                                            40097;DC_String_2_Voltage;Spannung in Volt (String 2);V;uint16be;1;1;0;value;;true;false;false
                                            40098;DC_String_3_Voltage;Spannung in Volt (String 3);V;uint16be;1;1;0;value;;true;false;false
                                            40099;DC_String_1_Current;Strom in Ampere (String 1);A;uint16be;1;1;0;value;;true;false;false
                                            40100;DC_String_2_Current;Strom in Ampere (String 2);A;uint16be;1;1;0;value;;true;false;false
                                            40101;DC_String_3_Current;Strom in Ampere (String 3);A;uint16be;1;1;0;value;;true;false;false
                                            40102;DC_String_1_Power;Leistung in Watt (String 1);W;uint16be;1;1;0;value;;true;false;false
                                            40103;DC_String_2_Power;Leistung in Watt (String 2);W;uint16be;1;1;0;value;;true;false;false
                                            40104;DC_String_3_Power;Leistung in Watt (String 3);W;uint16be;1;1;0;value;;true;false;false
                                            

                                            Außerdem liefert die externe Quelle per Modbus einen negativen Watt-Wert. Das macht meines Erachtens nach keinen Sinn, die Erzeugung der 1. PV-Anlage ist ja auch positiv. Ist ja auch kein Verbrauch, sondern immer eine Erzeugung. Keine Ahnung, ob E3/DC da einen Fehler in der Software hat...ich bügle das mit dieser Skript-Ergänzung aus:

                                            // Externe Quelle wird standardmäßig als Verbraucher mit vorangesteltem Minus angezeigt
                                            var externalSource = 'modbus.0.holdingRegisters.40076_Zusaetzliche_Einspeiser_Leistung';
                                            createState('e3dc.modbus.externeQuelle');
                                            on(externalSource, function (obj) {
                                                 setState('e3dc.modbus.externeQuelle', (obj.state.val * -1), true);
                                            });
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            691
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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