Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. E3DC Hauskraftwerk steuern

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    E3DC Hauskraftwerk steuern

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      stevie77 @ArnoD last edited by

      @arnod sagte in E3DC Hauskraftwerk steuern:

      Wenn alles nicht funktioniert bleibt nur require('fs').promises gegen require('fs'); zu tauschen oder einfach const fsw verwenden. Dann kann aber await nicht verwendet werden und muss in Zeile 880 gelöscht werden.
      Die Zeile 880 sieht dann so aus:
      fsw.writeFile(sPfadE3DC , string)
      Das gleiche in Zeile 896:
      let data = fsw.readFile(sPfadE3DC, 'utf8')

      Jetzt habe ich eine Variante gefunden, die durchläuft:

      //***************************************************************************************************
      //************************************ Deklaration Variablen ****************************************
      //***************************************************************************************************
      const fsw = require('fs');
      
      	// String in Datei e3dc.config.txt schreiben
          try{
              fsw.writeFileSync(sPfadE3DC, string)
              console.log('-==== E3DC Config Datei gespeichert! ====-');
      
          try{
              let data = fsw.readFileSync(sPfadE3DC, 'utf8')
              data = data.replace(/\n/g, " ");
      

      Das hatte ich jetzt eher zufällig bei der Funktion writelog() abgeguckt, dort wird auch die synchronisierte Variante aufgerufen: fsw.writeFileSync(sLogPath, string );
      Laufe ich damit in irgendwelche Probleme? Werde gleich mal testen, ob auch die richtigen Werte geschrieben und gelesen werden...

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

        @stevie77 sagte in E3DC Hauskraftwerk steuern:

        Laufe ich damit in irgendwelche Probleme? Werde gleich mal testen, ob auch die richtigen Werte geschrieben und gelesen werden...

        Werte schreiben und lesen klappt so. Yippiehh, endlich läuft das wieder. 🙂 Bei zukünftigen Updates muss ich dann halt diese drei Code-Stellen immer mergen, aber das geht ja...

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

          @stevie77

          Mich würde nur interessieren, warum es bei dir nicht funktioniert.
          Was mir noch eingefallen ist, hast du nach dem Update von Node.js einmal den Befehl "npm rebuild" ausgeführt?

          Probleme wirst du ohne fs promises nicht haben.

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

            @glasfaser
            Wenn es nicht bei allen anderen funktionieren würde, hätte ich das auch vermutet.
            Es funktioniert bei mir einwandfrei, kann es aber natürlich auch ohne Promises programmieren.
            Werde mir das ganze für die nächste Version mal ansehen, da gibt es ja verschiedene Möglichkeiten dasselbe Ergebnis zu erreichen. fs promises war halt nur die einfachste. 🙂

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

              @arnod sagte in E3DC Hauskraftwerk steuern:

              npm rebuild

              Habe ich jetzt mal ausgeführt (hat einiges kompiliert), den originalen Skriptstand eingeführt: Hilft leider nichts.

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

                Hallo zusammen,
                eventuell hat jemand Interesse daran.

                RSCPGui bietet die Möglichkeit die Daten per MQTT per Gui und per Console zu liefern
                Mit der nachstehenden Möglichkeit werden die Daten per MQTT per Service vom E3DC an den MQTT Adapter von iobroker geliefert.
                Letztendlich ähnlich zu dem Autostart von dem Prog von Eba

                @smartboart hatte (sehr) viel weiter oben schon erklärt wie der Autostart mit Screen von der Gui Version möglich ist
                Hier die Consolen Variante

                RSCPGui von hier laden github
                Wichtig ist das Ihr den Branch testin3 verwendet. Der Master Branch scheint einen Bug zu haben.

                Entpacken und auf /home/pi ablegen
                Ich nutze hierfür Filezilla -kann aber natürlich auch mit der git clone - make Variante erfolgen

                per Console in das erstellte RSCPGui Verzeichnis navigieren und die requirements installieren

                cd RSCPGui
                pip3 install -r requirements.txt
                

                Danach die rscpe3dc.conf.ini anpassen . Was so aussehen könnte

                [Login]
                username = email@gmail.com
                password = @245245245234524352345234524352345
                address = 192.xxx.xxx.xxx
                rscppassword = @KJHSKFBÖKJBEF
                seriennummer = S10-123456789
                websocketaddr = wss://s10.e3dc.com/ws
                connectiontype = direkt
                autoupdate = 30
                
                [Export]
                csv = False
                csvfile = 
                json = False
                jsonfile = 
                mqtt = True
                mqttbroker = 192.xxx.xxx.xxx
                mqttport = 1883
                mqttqos = 0
                mqttretain = False
                mqttsub = False
                mqttusername = 
                mqttpassword = @
                mqttzertifikat = 
                mqttinsecure = False
                influx = False
                influxhost = localhost
                influxport = 8086
                influxdatenbank = 
                influxtimeout = 1
                influxname = rscpgui
                http = False
                httpurl = https://pv.pincrushers.de/rscpgui
                intervall = 30
                paths = E3DC/INFO_DATA/INFO_SERIAL_NUMBER
                pathnames = E3DC/INFO_DATA/INFO_SERIAL_NUMBER|E3DC/INFO_DATA/INFO_SERIAL_NUMBER
                

                Natürlich könnte ihr auch die Ini von der Exe verwenden. Dann ist es aber wichtig das die Segmente nach [Export] gelöscht werden.

                Somit wäre das Programm bereits manuell per console startbar.

                python3 main.py -c -e -v INFO
                

                Um das Prog automatisch im Hintergrund laufen zu lassen müsst ihr noch folgendes einstellen
                Config Datei für systemd erstellen

                sudo nano /lib/systemd/system/myscript.service
                

                Nachstehenden Text eingeben

                [Unit]
                Description=My Script Service
                After=multi-user.target
                
                [Service]
                Type=idle
                ExecStart=/usr/bin/python3 /home/pi/RSCP/main.py -c -e
                WorkingDirectory=/home/pi/RSCP
                
                User=pi
                
                [Install]
                WantedBy=multi-user.target
                

                Berechtigung setzen

                sudo chmod 644 /lib/systemd/system/myscript.service
                

                systemd aktualisieren

                sudo systemctl daemon-reload
                sudo systemctl enable myscript.service
                

                Neustarten

                sudo reboot
                

                Ergebnis sollte dann, wenn alle Adapter gestartet sind, so aussehen

                ad5b7940-2954-4224-b1cb-f078c4a0e214-image.png

                1 Reply Last reply Reply Quote 1
                • TbsJah
                  TbsJah last edited by TbsJah

                  Anstelle des services ist es einfacher es analog zu dem Aufruf von Eba zu machen

                  Console öffnen
                  In das RSCP Verzeichnis navigieren und eine RSCP.sh erstellen

                  pi@raspberrypi:~ $ cd RSCP
                  pi@raspberrypi:~/RSCP $ sudo nano RSCP.sh
                  

                  Aufruf eingeben

                  
                  #!/bin/bash
                  cd /home/pi/RSCP
                  echo "RSCP wird gestartet"
                  while true;
                  do
                  python3 main.py -c -e -v INFO
                  sleep 30
                  done
                  

                  Ausführbar machen

                  chmod +x RSCP.sh
                  

                  Autostarteintrag

                  sudo nano /etc/rc.local
                  
                  

                  Text ergänzen

                  su pi -c "screen -dmS E3DC /home/pi/E3DC-Control/E3DC.sh" &
                  su pi /home/pi/RSCP/RSCP.sh &
                  

                  Neustart und freuen

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

                    @tbsjah
                    Super Anleitung, Danke.
                    Wenn das auch mit einer iobroker Installation auf der Synology im Docker Container funktioniert, wäre das super 🙂

                    Werde das am Wochenende mal testen.
                    Hatte es bereits einmal versucht, jedoch ohne Erfolg.

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

                      Kleine Aktualisierung
                      Aufruf per rc.local oder service war recht instabil über längere Laufzeit.

                      crontab hat sich für mich als am stabilsten erwiesen.

                      die RSCP.sh sieht dadurch etwas anders aus

                      #!/bin/bash
                      cd /home/pi/RSCP/
                      echo "RSCP wird gestartet" 
                      #while true;
                      #do
                      python3 /home/pi/RSCP/main.py -c -e &
                      sleep 15
                      PID=$!
                      kill $PID
                      exit 0
                      

                      Einrichten cron

                      sudo crontab -e
                      

                      Aufruf RSCP.sh jede Minute

                      */1 * * * * cd /home/pi/RSCP/ && /home/pi/RSCP/RSCP.sh &
                      
                      C 1 Reply Last reply Reply Quote 0
                      • C
                        ChrisChros @TbsJah last edited by

                        @tbsjah Welcher Mehrwert ergibt sich denn daraus wenn man RSCPGui nutzt?

                        TbsJah 1 Reply Last reply Reply Quote 0
                        • M
                          Matis @ArnoD last edited by

                          @arnod Hallo! Wenn du das auf der Synology hinbekommst wäre ich dir sehr dankbar für eine DAU-sichere Doku. Ich hab mir schon den Wolf probiert. Console brachte nur errors und GUI nur ein DisplayX Problem.
                          Die RSCP Daten in iobroker zu bekommen auf der gleichen Syno wäre absolut Spitze!

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

                            @matis
                            hört sich ja nicht gut an 🤔
                            Hoffe das ich es dann hinbekomme 🙂

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

                              @tbsjah
                              Was hast du eigentlich in der mqtt Instanz eingestellt?
                              Kannst du da zwei Bilder von den Einstellungen hier einstellen.

                              TbsJah 1 Reply Last reply Reply Quote 0
                              • TbsJah
                                TbsJah @ChrisChros last edited by

                                @chrischros Wesentlich mehr Informationen.
                                Zum Beispiel den Solar Wert oder die Informationen zu den Batterien

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

                                  @arnod 3e5e2945-539a-47d0-9726-0bcdda47956a-image.png

                                  e945d3f1-82ba-48b9-ae7a-78fd9b37a000-image.png

                                  A 1 Reply Last reply Reply Quote 0
                                  • C
                                    Chilihead last edited by

                                    schaut ja interessant aus; heißt das dann wir würden rscpgui nutzen anstatt Eba?

                                    Gibts über rspgui/mqtt auch die Möglichkeit entladen zu sperren?
                                    Hab ne Openwb mit mehreren Wallboxen laufen und würde gern vermeiden das die Wallbox(en) abends für das min. laden die Batterie leerziehen.

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

                                      @chilihead sagte in E3DC Hauskraftwerk steuern:

                                      heißt das dann wir würden rscpgui nutzen anstatt Eba?

                                      Das sind zwei unterschiedliche Tools.
                                      rscpgui liest nur Werte vom E3DC aus, dafür aber sehr detailliert.

                                      TbsJah C 2 Replies Last reply Reply Quote 0
                                      • A
                                        ArnoD @TbsJah last edited by ArnoD

                                        @tbsjah
                                        Danke.

                                        Habe allerdings schon Problem mir das testin3 Branch mit git clone zu holen.
                                        Werde mich heute mal damit beschäftigen.

                                        Komme irgendwie nicht weiter.
                                        git clone https://github.com/rxhan/RSCPGui.git funktioniert.
                                        git clone -branch testin3 https://github.com/rxhan/RSCPGui.git bringt mir immer die Fehlermeldung
                                        fatal: Repository 'testin3' existiert nicht.

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

                                          @arnod said in E3DC Hauskraftwerk steuern:

                                          @chilihead sagte in E3DC Hauskraftwerk steuern:

                                          heißt das dann wir würden rscpgui nutzen anstatt Eba?

                                          Das sind zwei unterschiedliche Tools.
                                          rscpgui liest nur Werte vom E3DC aus, dafür aber sehr detailliert.

                                          Nicht ganz richtig 🙂
                                          Tool kann auch werte zurückschreiben

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

                                            @arnod said in E3DC Hauskraftwerk steuern:

                                            @tbsjah
                                            Danke.

                                            Habe allerdings schon Problem mir das testin3 Branch mit git clone zu holen.
                                            Werde mich heute mal damit beschäftigen.

                                            Komme irgendwie nicht weiter.
                                            git clone https://github.com/rxhan/RSCPGui.git funktioniert.
                                            git clone -branch testin3 https://github.com/rxhan/RSCPGui.git bringt mir immer die Fehlermeldung
                                            fatal: Repository 'testin3' existiert nicht.

                                            Hatte ich auch
                                            Deswegen mit Filezilla kopiert

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            792
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            70
                                            3331
                                            1363179
                                            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