Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. E3DC Hauskraftwerk steuern

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.9k

E3DC Hauskraftwerk steuern

Geplant Angeheftet Gesperrt Verschoben JavaScript
3.5k Beiträge 70 Kommentatoren 1.6m Aufrufe 61 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • A ArnoD

    Ich habe dieses Topic eröffnet, um gemeinsam an einer Überschusssteuerung des E3DC Hauskraftwerks in ioBroker zu arbeiten.
    Dankeschön an dieser Stelle an Eberhard und sein Programm E3DC-Control, ohne ihn wäre das alles nicht möglich gewesen.
    Großes Lob und Danke auch an Uli, der den Adapter e3dc-rscp programmiert hat, über den die Steuerung im ioBroker erst möglich wurde.

    Ziel der Steuerung ist:
    Mit der Steuerung soll erreicht werden, dass der Batteriespeicher möglichst schonend geladen wird, um die Lebensdauer zu erhöhen.

    • Speicher soll nie längere Zeit auf 100 % geladen werden oder auf 0 % entladen werden.
    • Möglichst gleichmäßige Ladeleistung beim Laden.
    • PV-Überschuss soll gespeichert werden, um nicht in die 70 % Abriegelung zu kommen.
    • Bei Überschreitung WR Begrenzung soll Überschuss in die Batterie gespeichert werden.

    ioBroker
    Es werden folgende Adapter benötigt:

    • Javascript (NPM-Module: axios, is-it-bst)
    • e3dc-rscp

    Für die View Beispiele in VIS werden noch folgende Adapter benötigt:

    • vis-hqwidgets
    • vis-materialdesign
    • vis-timeandweather

    Beispiel View zum Importieren und das Skript Charge-Control, sowie eine Anleitung findet ihr auf GitHub:
    https://github.com/ArnoD15/iobroker_E3DC

    Einstellbare Parameter:
    Unload: Wenn der SoC Wert der Batterie > Wert „Unload“ ist, wird der Batteriespeicher mit Beginn Solarproduktion bis Beginn Regelzeitraum, auf SOC Wert Parameter "Unload" entladen. Ist Unload < Ladeschwelle wird bis Ladeschwelle geladen und Unload ignoriert.

    Ladeschwelle: Mit Beginn Solarproduktion wird die Batterie mit der maximalen Ladeleistung bis zum Wert Ladeschwelle geladen. Erst wenn der Batterie SOC den Wert Ladeschwelle erreicht, wird mit dem geregelten Laden begonnen. Danach wird bis SOC Wert „Ladeende“ gleichmäßig geladen, mit Ausnahme, wenn die PV-Leistung das Einspeiselimit oder die WR-Maxleistung übersteigt, wird die Ladeleistung um den Wert erhöht, um das Einspeiselimit oder WR-Limit einhalten zu können. Bei unterschreiten von dem Wert Einspeiselimit oder WR-Limit, wird wieder mit neu berechneter Ladeleistung, gleichmäßig bis „Ladeende" geladen. Bei großem Überschuss kann die gleichmäßige Ladeleistung bis auf 0 abgesenkt werden. Parameter "Ladeschwelle" hat Vorrang vor "Unload", d.h. "Unload" wird ignoriert, falls "Ladeschwelle" größer sein sollte als „Unload“.

    Ladeende: SoC Wert Speicher, der zum Ende des Regelzeitraums erreicht werden soll.

    Ladeende2: SoC Wert Speicher, der zum Ende Sommer Ladeende erreicht werden sollten.

    Unterer Ladekorridor: Der „Untere Ladekorridor“ definiert nur den min. Wert, ab dem mit dem Laden der Batterie gestartet wird. Erst wenn die berechnetet Ladeleistung den Wert „unteren Ladekorridor“ übersteigt, wird mit dem Laden der Batterie gestartet.

    Offset Regelbeginn Zeit in hh:mm, die von der Astro Zeit "solarNoon" (höchster Sonnenstand) abgezogen wird.

    Offset Regelende Zeit in hh:mm, die zu der Astro Zeit "solarNoon" (höchster Sonnenstand) dazu addiert wird.

    Offset Ladeende Zeit in hh:mm, die von der Astro Zeit "sunset" (Sonnenuntergang) abgezogen wird.

    70c4baad-fc5b-45bb-8c02-45b0b14f89ea-grafik.png
    Eigenverbrauch: Der geschätzte Eigenverbrauch pro Tag in kWh. Wird für die Überschussberechnung der Prognose verwendet.

    Notstrom min.: Speicherreserve in % bei Wintersonnenwende 21.12

    Notstrom Sockel: min. SOC Wert bei Tag-/Nachtgleiche 21.3./21.9.

    Berechnung Notstrom: 21.12 (Wintersonnenwende) ist der Bezugs-SoC = Wert „Notstrom min“ und wird bis zum 21.3 (Tag-/Nachtgleiche) auf Wert „Notstrom Sockel“ reduziert und bis zum 20.06 (Sommersonnenwende) um ca. weitere 10% reduziert. Ab dem 20.06 (Sommersonnenwende) steigt der Bezugs-SoC wieder bis zum 21.09 (Tag-/Nachtgleiche) auf den Wert „Notstrom Sockel“ und bis zum 21.12 (Wintersonnenwende) auf den Wert „Notstrom min“. Je Monat ändert sich somit der SoC um ca. +- 3,3%. Mit Notstrom min. und Notstrom Sockel kann man eine Dynamische Notstromreserve vorhalten, Vorteil ist, dass der Speicher nicht alle 3 Wochen entladen wird wie bei der Notstromreserve von E3DC.

    Starten wir am 21.12 (Wintersonnenwende) der kürzeste Tag, da wird der Speicher bis auf Notstrom min = 20% entladen.
    Ab jetzt werden die Tage immer länger, bis zum 21.3 (Tag-/Nachtgleiche) wo die Tage und Nächte gleich lang sind.
    Das bedeutet deine Speicherreserve kann immer geringer werden je länger die Tage sind, da ja mehr PV-Leistung zur Verfügung steht. Es wird somit jeden Monat die Speichergrenze um ca.3,33% reduziert bis zum 21.03 auf den Wert Notstrom Sockel = 10%.

    Ab dem 21.03 werden die Tage immer länger bis zum 20.06 (Sommersonnenwende) dem längsten Tag im Jahr.
    Es wird also die Speichergrenze weiter jeden Monat um ca. 3,33% reduziert bis zum 20.06 auf 0%,
    Ab diesem Zeitpunkt werden die Tage wieder kürzer bis zum 21.9 (Tag-/Nachtgleiche) wo die Tage und Nächte wieder gleich lang sind und die Speicherreserve wird jeden Monat um ca. 3,33% erhöht auf Notstrom Sockel = 10%.
    Die Tage werden immer kürzer bis zum 21.12 (Wintersonnenwende) und die Speichergrenze wird weiter jeden Monat um ca. 3,33% erhöht auf den Wert Notstrom min = 20%

    Notstrom Sockel ist somit der min. SOC Wert, wenn die Tage und Nächte gleich lang sind, also am 21.3 und 21.09 und
    Notstrom min wenn die Tage am kürzesten sind am 21.12 .

    Laderegelung:
    Mit Beginn Solarproduktion wird die Batterie mit der maximalen Ladeleistung bis zum Wert Ladeschwelle geladen oder bis zum SOC Wert Unload entladen. Erst wenn der Batterie SOC den Wert Ladeschwelle erreicht, wird mit dem geregelten Laden begonnen.

    Mit Start Regelzeitraum wird die benötigte Ladeleistung berechnet, um den SOC Ladeende bis zum Ende Regelzeitraum zu erreichen.

    Bei Überschreitung der Zeit, Ende Regelzeitraum wird die benötigte Ladeleistung neu berechnet, um den SOC Ladeende2 bis zur Zeit Ladeende zu erreichen.

    Wenn die Zeit Ladeende erreicht ist und die Batterie noch nicht den SOC Ladeende2 erreicht hat, wird das Laden mit maximal noch zur Verfügung stehender PV-Leistung freigegeben.

    Ausnahme: Wenn die PV-Leistung das Einspeiselimit oder die maximale Wechselrichterleistung übersteigt, wird die Ladeleistung um den Wert erhöht, um das Einspeiselimit oder die maximale Wechselrichterleistung einhalten zu können. Bei Unterschreiten von dem Wert Einspeiselimit oder WR-Limit, wird mit neu berechneter Ladeleistung, gleichmäßig geladen.

    S Offline
    S Offline
    stevie77
    schrieb am zuletzt editiert von stevie77
    #1054

    @arnod Tja, leider nicht. Jetzt ist alles aktualisiert, was nur irgendwie zu aktualisieren ist, trotzdem weiterhin... :confounded:

    23:59:52.422	warn	javascript.0 (3319) script.js.Strom.E3DCControl: -==== Fehler beim Schreiben der e3dc.config.txt Error = TypeError: Cannot read property 'writeFile' of undefined ====-
    23:59:52.423	warn	javascript.0 (3319) script.js.Strom.E3DCControl: -==== Parameter Fehler beim einlesen der Parameter Error = TypeError: Cannot read property 'readFile' of undefined ====-
    

    Werde am Wochenende hoffentlich dazu kommen deine vorgeschlagenen Code-Änderungen nochmals mit dem neusten Stand zu testen.

    A GlasfaserG 2 Antworten Letzte Antwort
    0
    • S stevie77

      @arnod Tja, leider nicht. Jetzt ist alles aktualisiert, was nur irgendwie zu aktualisieren ist, trotzdem weiterhin... :confounded:

      23:59:52.422	warn	javascript.0 (3319) script.js.Strom.E3DCControl: -==== Fehler beim Schreiben der e3dc.config.txt Error = TypeError: Cannot read property 'writeFile' of undefined ====-
      23:59:52.423	warn	javascript.0 (3319) script.js.Strom.E3DCControl: -==== Parameter Fehler beim einlesen der Parameter Error = TypeError: Cannot read property 'readFile' of undefined ====-
      

      Werde am Wochenende hoffentlich dazu kommen deine vorgeschlagenen Code-Änderungen nochmals mit dem neusten Stand zu testen.

      A Online
      A Online
      ArnoD
      schrieb am zuletzt editiert von
      #1055

      @stevie77

      Ich verstehe zwar nicht warum es bei dir nicht funktioniert, aber zur Not kann man das natürlich auch ohne FS Promises programmieren.

      1 Antwort Letzte Antwort
      0
      • S stevie77

        @arnod Tja, leider nicht. Jetzt ist alles aktualisiert, was nur irgendwie zu aktualisieren ist, trotzdem weiterhin... :confounded:

        23:59:52.422	warn	javascript.0 (3319) script.js.Strom.E3DCControl: -==== Fehler beim Schreiben der e3dc.config.txt Error = TypeError: Cannot read property 'writeFile' of undefined ====-
        23:59:52.423	warn	javascript.0 (3319) script.js.Strom.E3DCControl: -==== Parameter Fehler beim einlesen der Parameter Error = TypeError: Cannot read property 'readFile' of undefined ====-
        

        Werde am Wochenende hoffentlich dazu kommen deine vorgeschlagenen Code-Änderungen nochmals mit dem neusten Stand zu testen.

        GlasfaserG Offline
        GlasfaserG Offline
        Glasfaser
        schrieb am zuletzt editiert von
        #1056

        @stevie77 sagte in E3DC Hauskraftwerk steuern:

        nzwischen upgedatet. Node.js: v12.22.7, NPM version: 6.14.15.
        trotzdem weiterhin...

        Node sauber installiert :

        which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs
        

        Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

        S 1 Antwort Letzte Antwort
        0
        • GlasfaserG Glasfaser

          @stevie77 sagte in E3DC Hauskraftwerk steuern:

          nzwischen upgedatet. Node.js: v12.22.7, NPM version: 6.14.15.
          trotzdem weiterhin...

          Node sauber installiert :

          which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs
          
          S Offline
          S Offline
          stevie77
          schrieb am zuletzt editiert von
          #1057

          @glasfaser Vermutlich? Ich gehe zumindest davon aus...

          root@iobroker:/opt/iobroker# which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs
          /usr/bin/nodejs
          v12.22.7
          /usr/bin/node
          v12.22.7
          /usr/bin/npm
          6.14.15
          nodejs:
            Installed: 12.22.7-deb-1nodesource1
            Candidate: 12.22.7-deb-1nodesource1
            Version table:
           *** 12.22.7-deb-1nodesource1 100
                  100 /var/lib/dpkg/status
          
          Thomas BraunT 1 Antwort Letzte Antwort
          0
          • S stevie77

            @glasfaser Vermutlich? Ich gehe zumindest davon aus...

            root@iobroker:/opt/iobroker# which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs
            /usr/bin/nodejs
            v12.22.7
            /usr/bin/node
            v12.22.7
            /usr/bin/npm
            6.14.15
            nodejs:
              Installed: 12.22.7-deb-1nodesource1
              Candidate: 12.22.7-deb-1nodesource1
              Version table:
             *** 12.22.7-deb-1nodesource1 100
                    100 /var/lib/dpkg/status
            
            Thomas BraunT Online
            Thomas BraunT Online
            Thomas Braun
            Most Active
            schrieb am zuletzt editiert von Thomas Braun
            #1058

            @stevie77
            Jein. Es fehlt das nodesource-Repository.
            Und als root meldet man sich nicht an.

            Linux-Werkzeugkasten:
            https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
            NodeJS Fixer Skript:
            https://forum.iobroker.net/topic/68035/iob-node-fix-skript
            iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

            S 1 Antwort Letzte Antwort
            0
            • Thomas BraunT Thomas Braun

              @stevie77
              Jein. Es fehlt das nodesource-Repository.
              Und als root meldet man sich nicht an.

              S Offline
              S Offline
              stevie77
              schrieb am zuletzt editiert von
              #1059

              @thomas-braun Kann ich erstmal (meines eher bescheidenen Linux-Wissens nach) nicht beeinflussen. Ich verbinde mich als normaler Benutzer per docker exec -it iobroker bash in den ioBroker-Container und lande da eben als root.
              nodesource-Repository: Bisher hatte das dann aber noch nie irgendeines der vielen installieren Adapter und Skripte beeinflusst. Mehr Infos?

              Thomas BraunT 1 Antwort Letzte Antwort
              0
              • S stevie77

                @thomas-braun Kann ich erstmal (meines eher bescheidenen Linux-Wissens nach) nicht beeinflussen. Ich verbinde mich als normaler Benutzer per docker exec -it iobroker bash in den ioBroker-Container und lande da eben als root.
                nodesource-Repository: Bisher hatte das dann aber noch nie irgendeines der vielen installieren Adapter und Skripte beeinflusst. Mehr Infos?

                Thomas BraunT Online
                Thomas BraunT Online
                Thomas Braun
                Most Active
                schrieb am zuletzt editiert von Thomas Braun
                #1060

                @stevie77 sagte in E3DC Hauskraftwerk steuern:

                lande da eben als root.

                User anlegen, sudo-Rechte vergeben, als User agieren.

                Installation gerade biegen:

                iobroker stop
                iobroker fix
                iobroker start
                

                nodeJS von nodesource richtig anlegen: siehe meine Signatur.

                Linux-Werkzeugkasten:
                https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                NodeJS Fixer Skript:
                https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                S 1 Antwort Letzte Antwort
                0
                • Thomas BraunT Thomas Braun

                  @stevie77 sagte in E3DC Hauskraftwerk steuern:

                  lande da eben als root.

                  User anlegen, sudo-Rechte vergeben, als User agieren.

                  Installation gerade biegen:

                  iobroker stop
                  iobroker fix
                  iobroker start
                  

                  nodeJS von nodesource richtig anlegen: siehe meine Signatur.

                  S Offline
                  S Offline
                  stevie77
                  schrieb am zuletzt editiert von stevie77
                  #1061

                  @thomas-braun Hmmm, da bin ich jetzt etwas ängstlich. Ich habe den Container so übernommen und bisher nie Probleme gehabt. Wenn ich da jetzt anfange Dinge umzustellen, wer weiß, ob ich dann kompatibel bleibe zu weiteren Updates des Docker-Containers. Vielleicht sollte ich mal ein Update auf die 5er-version von https://hub.docker.com/r/buanet/iobroker/ machen, das kann sein.
                  Solange nicht 100% sicher ist, dass das die Ursache für das Problem mit promise ist, würde ich da ungerne Hand anlegen.

                  Nach einem Node.js-Update mache ich immer folgendes:
                  Den ioBroker-Installationsfixer aufrufen, da die Installation von Node.js einige Einstellungen am System verändert haben kann (Sicherheitseinstellungen):

                  curl -sL https://iobroker.net/fix.sh | bash -
                  
                  Thomas BraunT 1 Antwort Letzte Antwort
                  0
                  • S stevie77

                    @thomas-braun Hmmm, da bin ich jetzt etwas ängstlich. Ich habe den Container so übernommen und bisher nie Probleme gehabt. Wenn ich da jetzt anfange Dinge umzustellen, wer weiß, ob ich dann kompatibel bleibe zu weiteren Updates des Docker-Containers. Vielleicht sollte ich mal ein Update auf die 5er-version von https://hub.docker.com/r/buanet/iobroker/ machen, das kann sein.
                    Solange nicht 100% sicher ist, dass das die Ursache für das Problem mit promise ist, würde ich da ungerne Hand anlegen.

                    Nach einem Node.js-Update mache ich immer folgendes:
                    Den ioBroker-Installationsfixer aufrufen, da die Installation von Node.js einige Einstellungen am System verändert haben kann (Sicherheitseinstellungen):

                    curl -sL https://iobroker.net/fix.sh | bash -
                    
                    Thomas BraunT Online
                    Thomas BraunT Online
                    Thomas Braun
                    Most Active
                    schrieb am zuletzt editiert von
                    #1062

                    @stevie77
                    Aus meiner Sicht gehst du da mit einem 'Linux'/Debian falsch um.

                    Linux-Werkzeugkasten:
                    https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                    NodeJS Fixer Skript:
                    https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                    iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                    S 1 Antwort Letzte Antwort
                    0
                    • Thomas BraunT Thomas Braun

                      @stevie77
                      Aus meiner Sicht gehst du da mit einem 'Linux'/Debian falsch um.

                      S Offline
                      S Offline
                      stevie77
                      schrieb am zuletzt editiert von stevie77
                      #1063

                      @thomas-braun Da kannst du ja durchaus Recht haben, andererseits wurde das buanet-ioBroker-Image mehr als 10 Millionen mal heruntergeladen und erfreut sich ziemlicher Beliebtheit. Der wird dann vermutlich auch ne gewisse Ahnung haben. ;-) Ich kann es nicht beurteilen...
                      Aber hat jetzt vermutlich auch nichts mit dem Problem zu tun?!

                      Thomas BraunT HomoranH 2 Antworten Letzte Antwort
                      0
                      • S stevie77

                        @thomas-braun Da kannst du ja durchaus Recht haben, andererseits wurde das buanet-ioBroker-Image mehr als 10 Millionen mal heruntergeladen und erfreut sich ziemlicher Beliebtheit. Der wird dann vermutlich auch ne gewisse Ahnung haben. ;-) Ich kann es nicht beurteilen...
                        Aber hat jetzt vermutlich auch nichts mit dem Problem zu tun?!

                        Thomas BraunT Online
                        Thomas BraunT Online
                        Thomas Braun
                        Most Active
                        schrieb am zuletzt editiert von
                        #1064

                        @stevie77

                        Ich setze das nicht ein, aber da wurde soweit ich weiß auch ein Standarduser eingerichtet. Zumindest in den letzten Versionen des Containers. Wenn das ganze nicht auf einer Synology laufen sollte jedenfalls.

                        Linux-Werkzeugkasten:
                        https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                        NodeJS Fixer Skript:
                        https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                        iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                        S 1 Antwort Letzte Antwort
                        0
                        • Thomas BraunT Thomas Braun

                          @stevie77

                          Ich setze das nicht ein, aber da wurde soweit ich weiß auch ein Standarduser eingerichtet. Zumindest in den letzten Versionen des Containers. Wenn das ganze nicht auf einer Synology laufen sollte jedenfalls.

                          S Offline
                          S Offline
                          stevie77
                          schrieb am zuletzt editiert von
                          #1065

                          @thomas-braun Kann natürlich sein, dass das eine der Verbesserungen ist beim Sprung von Version 4.x auf 5.x - wie gesagt, wenn ich mal Zeit haben sollte, müsste ich den Sprung auch mal machen. Aber ist jetzt wohl eher offtopic. ;-)

                          1 Antwort Letzte Antwort
                          0
                          • A ArnoD

                            @stevie77

                            Versuch mal folgende Änderung.
                            in der Zeile 213 diese beiden Konstanten definieren:
                            const { readFile } = require('fs').promises
                            const { writeFile } = require('fs').promises
                            und die Zeile
                            const fs = require('fs').promises;
                            löschen.

                            Die Zeile 880 in
                            await writeFile(sPfadE3DC , string)
                            ändern und die Zeile 896 in
                            let data = await readFile(sPfadE3DC, { encoding: 'utf8' })
                            ändern.

                            Wenn es bei dir auch funktioniert, würde ich das in meinem Script so übernehmen.

                            S Offline
                            S Offline
                            stevie77
                            schrieb am zuletzt editiert von
                            #1066

                            @arnod sagte in E3DC Hauskraftwerk steuern:

                            @stevie77

                            Versuch mal folgende Änderung.
                            in der Zeile 213 diese beiden Konstanten definieren:
                            const { readFile } = require('fs').promises
                            const { writeFile } = require('fs').promises
                            und die Zeile
                            const fs = require('fs').promises;
                            löschen.

                            Die Zeile 880 in
                            await writeFile(sPfadE3DC , string)
                            ändern und die Zeile 896 in
                            let data = await readFile(sPfadE3DC, { encoding: 'utf8' })
                            ändern.

                            Wenn es bei dir auch funktioniert, würde ich das in meinem Script so übernehmen.

                            Das resultiert dann darin:

                            dcc14514-3f66-4748-a03d-ce69f46abba1-image.png

                            9402da13-015e-44de-8709-28cf19fa7d4f-image.png

                            1 Antwort Letzte Antwort
                            0
                            • A ArnoD

                              @stevie77
                              Also Error 429 ist einfach zu beantworten, hier sind in einer bestimmten Zeitspanne zu viele Anfragen gesendet worden.

                              Die erste Fehlermeldung ist nicht so einfach zu beantworten.
                              Welche Version vom Javascript Adapter hast du bei dir installiert?
                              Ich habe folgende Stände:
                              Javascript Adapter 5.2.13
                              Node.js 12.22.4
                              npm 6.14.14

                              Einfach mal auf die neusten Versionen updaten und dann testen.
                              Denke aber nicht das es daran liegt, da ab Version 10.x FS Promises funktionieren sollte.
                              Die drei Punkte habe ich auch, weiß aber nicht was diese bedeuten.
                              Hast du sonst noch was geändert am Script?

                              Kannst mal versuchen die e3dc.config.txt zu löschen und über das Script neu erstellen lassen, ob das funktioniert.

                              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')

                              Hat hier noch jemand das Problem ??

                              S Offline
                              S Offline
                              stevie77
                              schrieb am zuletzt editiert von
                              #1067

                              @arnod sagte in E3DC Hauskraftwerk steuern:

                              @stevie77
                              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')

                              Das resultiert dann (falls ich es richtig gemacht habe) in:

                              f79bdff0-893a-4fc0-b6ba-f8fd093fd25d-image.png

                              Zeile 281 ist hier dann eh überflüssig, da später nur fsw verwendet wird?! Aber schadet ja auch nicht im Test...

                              21517dcd-7e1c-46fd-80f1-3d42643472bd-image.png

                              ae3ea929-3db6-488e-bed3-faef2b4d5fd4-image.png

                              GlasfaserG 1 Antwort Letzte Antwort
                              0
                              • S stevie77

                                @arnod sagte in E3DC Hauskraftwerk steuern:

                                @stevie77
                                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')

                                Das resultiert dann (falls ich es richtig gemacht habe) in:

                                f79bdff0-893a-4fc0-b6ba-f8fd093fd25d-image.png

                                Zeile 281 ist hier dann eh überflüssig, da später nur fsw verwendet wird?! Aber schadet ja auch nicht im Test...

                                21517dcd-7e1c-46fd-80f1-3d42643472bd-image.png

                                ae3ea929-3db6-488e-bed3-faef2b4d5fd4-image.png

                                GlasfaserG Offline
                                GlasfaserG Offline
                                Glasfaser
                                schrieb am zuletzt editiert von Glasfaser
                                #1068

                                @stevie77

                                4f91e3f0-9d45-45bd-8331-a0f10ccfcb57-grafik.png

                                Ich kenne das ganze hier nicht ,
                                aber ich sehe das in deinem Script der read bei dir falsch ist :

                                let data = await readFile(sPfadE3DC, 'utf8')
                                

                                so sollte es sein :

                                let data = await fs.readFile(sPfadE3DC, 'utf8')
                                

                                Auf Github:

                                // Einlesen der Werte e3dc.config.txt
                                async function e3dcConfigRead()  
                                {
                                    let StateParameter = ['Einspeiselimit','UntererLadekorridor','ObererLadekorridor',
                                    'MinimumLadeleistung','MaximumLadeleistung','Wrleistung','Ladeschwelle','Ladeende',
                                    'Ladeende2','Winterminimum','Sommermaximum','Sommerladeende','Speichergroesse','Unload',
                                    'HTmin','HTsockel','HTon','HToff','HTsat','HTsun','Debug','Wallbox','WBmode','WBminLade','Peakshave']
                                    try{
                                        let data = await fs.readFile(sPfadE3DC, 'utf8')
                                

                                Hast du eine falsche Version !?

                                Schau mal auf GitHub , dort habe ich das Script mit deinen Screenshot verglichen !

                                Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                S 1 Antwort Letzte Antwort
                                0
                                • GlasfaserG Glasfaser

                                  @stevie77

                                  4f91e3f0-9d45-45bd-8331-a0f10ccfcb57-grafik.png

                                  Ich kenne das ganze hier nicht ,
                                  aber ich sehe das in deinem Script der read bei dir falsch ist :

                                  let data = await readFile(sPfadE3DC, 'utf8')
                                  

                                  so sollte es sein :

                                  let data = await fs.readFile(sPfadE3DC, 'utf8')
                                  

                                  Auf Github:

                                  // Einlesen der Werte e3dc.config.txt
                                  async function e3dcConfigRead()  
                                  {
                                      let StateParameter = ['Einspeiselimit','UntererLadekorridor','ObererLadekorridor',
                                      'MinimumLadeleistung','MaximumLadeleistung','Wrleistung','Ladeschwelle','Ladeende',
                                      'Ladeende2','Winterminimum','Sommermaximum','Sommerladeende','Speichergroesse','Unload',
                                      'HTmin','HTsockel','HTon','HToff','HTsat','HTsun','Debug','Wallbox','WBmode','WBminLade','Peakshave']
                                      try{
                                          let data = await fs.readFile(sPfadE3DC, 'utf8')
                                  

                                  Hast du eine falsche Version !?

                                  Schau mal auf GitHub , dort habe ich das Script mit deinen Screenshot verglichen !

                                  S Offline
                                  S Offline
                                  stevie77
                                  schrieb am zuletzt editiert von stevie77
                                  #1069

                                  @glasfaser sagte in E3DC Hauskraftwerk steuern:

                                  let data = await readFile(sPfadE3DC, 'utf8')

                                  Ich versuche ja gerade diese Varianten von Arno umzusetzen, die abweichend vom Original bei Github sind...

                                  1 Antwort Letzte Antwort
                                  0
                                  • A ArnoD

                                    @stevie77
                                    Also Error 429 ist einfach zu beantworten, hier sind in einer bestimmten Zeitspanne zu viele Anfragen gesendet worden.

                                    Die erste Fehlermeldung ist nicht so einfach zu beantworten.
                                    Welche Version vom Javascript Adapter hast du bei dir installiert?
                                    Ich habe folgende Stände:
                                    Javascript Adapter 5.2.13
                                    Node.js 12.22.4
                                    npm 6.14.14

                                    Einfach mal auf die neusten Versionen updaten und dann testen.
                                    Denke aber nicht das es daran liegt, da ab Version 10.x FS Promises funktionieren sollte.
                                    Die drei Punkte habe ich auch, weiß aber nicht was diese bedeuten.
                                    Hast du sonst noch was geändert am Script?

                                    Kannst mal versuchen die e3dc.config.txt zu löschen und über das Script neu erstellen lassen, ob das funktioniert.

                                    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')

                                    Hat hier noch jemand das Problem ??

                                    GlasfaserG Offline
                                    GlasfaserG Offline
                                    Glasfaser
                                    schrieb am zuletzt editiert von
                                    #1070

                                    @arnod

                                    liegt es eventuell an dem

                                    const fs = require('fs').promises;

                                    hier war so ein ähliches Problem :

                                    https://forum.iobroker.net/topic/42638/überführung-funktionierendes-node-js-script/

                                    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                    A 1 Antwort Letzte Antwort
                                    0
                                    • A ArnoD

                                      @stevie77
                                      Also Error 429 ist einfach zu beantworten, hier sind in einer bestimmten Zeitspanne zu viele Anfragen gesendet worden.

                                      Die erste Fehlermeldung ist nicht so einfach zu beantworten.
                                      Welche Version vom Javascript Adapter hast du bei dir installiert?
                                      Ich habe folgende Stände:
                                      Javascript Adapter 5.2.13
                                      Node.js 12.22.4
                                      npm 6.14.14

                                      Einfach mal auf die neusten Versionen updaten und dann testen.
                                      Denke aber nicht das es daran liegt, da ab Version 10.x FS Promises funktionieren sollte.
                                      Die drei Punkte habe ich auch, weiß aber nicht was diese bedeuten.
                                      Hast du sonst noch was geändert am Script?

                                      Kannst mal versuchen die e3dc.config.txt zu löschen und über das Script neu erstellen lassen, ob das funktioniert.

                                      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')

                                      Hat hier noch jemand das Problem ??

                                      S Offline
                                      S Offline
                                      stevie77
                                      schrieb am zuletzt editiert von
                                      #1071

                                      @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 Antwort Letzte Antwort
                                      0
                                      • S stevie77

                                        @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 Offline
                                        S Offline
                                        stevie77
                                        schrieb am zuletzt editiert von
                                        #1072

                                        @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 Antwort Letzte Antwort
                                        0
                                        • S stevie77

                                          @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 Online
                                          A Online
                                          ArnoD
                                          schrieb am zuletzt editiert von
                                          #1073

                                          @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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          587

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe