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.
    • Thomas Braun
      Thomas Braun Most Active @stevie77 last edited by

      @stevie77 sagte in E3DC Hauskraftwerk steuern:

      Admin 5 zu wechseln

      Der ist gekommen um zu bleiben. Da wirst du dich früher oder später eh mit auseinandersetzen müssen.

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

        @thomas-braun Gut formuliert. 🙂 Bin gerade am Updaten...hoffentlich läuft's danach dann...

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

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

          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 Glasfaser 2 Replies Last reply Reply Quote 0
          • A
            ArnoD @stevie77 last edited by

            @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 Reply Last reply Reply Quote 0
            • Glasfaser
              Glasfaser @stevie77 last edited by

              @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 1 Reply Last reply Reply Quote 0
              • S
                stevie77 @Glasfaser last edited by

                @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 Braun 1 Reply Last reply Reply Quote 0
                • Thomas Braun
                  Thomas Braun Most Active @stevie77 last edited by Thomas Braun

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

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

                    @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 Braun 1 Reply Last reply Reply Quote 0
                    • Thomas Braun
                      Thomas Braun Most Active @stevie77 last edited by 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 1 Reply Last reply Reply Quote 0
                      • S
                        stevie77 @Thomas Braun last edited by 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 Braun 1 Reply Last reply Reply Quote 0
                        • Thomas Braun
                          Thomas Braun Most Active @stevie77 last edited by

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

                          S 1 Reply Last reply Reply Quote 0
                          • S
                            stevie77 @Thomas Braun last edited by 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 Braun Homoran 2 Replies Last reply Reply Quote 0
                            • Thomas Braun
                              Thomas Braun Most Active @stevie77 last edited by

                              @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 1 Reply Last reply Reply Quote 0
                              • S
                                stevie77 @Thomas Braun last edited by

                                @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 Reply Last reply Reply Quote 0
                                • S
                                  stevie77 @ArnoD last edited by

                                  @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 Reply Last reply Reply Quote 0
                                  • S
                                    stevie77 @ArnoD last edited by

                                    @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

                                    Glasfaser 1 Reply Last reply Reply Quote 0
                                    • Glasfaser
                                      Glasfaser @stevie77 last edited by 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 1 Reply Last reply Reply Quote 0
                                      • S
                                        stevie77 @Glasfaser last edited by stevie77

                                        @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 Reply Last reply Reply Quote 0
                                        • Glasfaser
                                          Glasfaser @ArnoD last edited by

                                          @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/

                                          A 1 Reply Last reply Reply Quote 0
                                          • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            328
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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