Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

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

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    310

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

E3DC Hauskraftwerk steuern

Scheduled Pinned Locked Moved JavaScript
3.6k Posts 72 Posters 1.7m Views 63 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • 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
    wrote on last edited by 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 Reply Last reply
    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
      wrote on last edited by
      #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 Reply Last reply
      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
        wrote on last edited by 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 Reply Last reply
        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
          wrote on last edited by 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 Reply Last reply
          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
            wrote on last edited by
            #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 Reply Last reply
            0
            • Thomas BraunT Thomas Braun

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

              S Offline
              S Offline
              stevie77
              wrote on last edited by 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 Replies Last reply
              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
                wrote on last edited by
                #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 Reply Last reply
                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
                  wrote on last edited by
                  #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 Reply Last reply
                  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
                    wrote on last edited by
                    #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 Reply Last reply
                    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
                      wrote on last edited by
                      #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 Reply Last reply
                      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
                        wrote on last edited by 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 Reply Last reply
                        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
                          wrote on last edited by 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 Reply Last reply
                          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
                            wrote on last edited by
                            #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 Reply Last reply
                            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
                              wrote on last edited by
                              #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 Reply Last reply
                              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
                                wrote on last edited by
                                #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 Reply Last reply
                                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 Offline
                                  A Offline
                                  ArnoD
                                  wrote on last edited by
                                  #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 Reply Last reply
                                  0
                                  • GlasfaserG Glasfaser

                                    @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 Offline
                                    A Offline
                                    ArnoD
                                    wrote on last edited by
                                    #1074

                                    @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
                                    0
                                    • A ArnoD

                                      @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 Offline
                                      S Offline
                                      stevie77
                                      wrote on last edited by
                                      #1075

                                      @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
                                      0
                                      • TbsJahT Offline
                                        TbsJahT Offline
                                        TbsJah
                                        wrote on last edited by TbsJah
                                        #1076

                                        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
                                        1
                                        • TbsJahT Offline
                                          TbsJahT Offline
                                          TbsJah
                                          wrote on last edited by TbsJah
                                          #1077

                                          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
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          456

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe