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.
    • C
      ChrisChros last edited by ChrisChros

      Hallo @ArnoD
      im Log habe ich bei mir folgenden Eintrag heute Morgen gefunden:

      javascript.0
      2021-10-09 10:10:03.175	info	script.js.common.E3_DC.E3DC_Control_Prognose: Berechneter Unload SoC ist = -55
      

      Können die -55 so stimmen? Welcher Wert wird dann für den unload Parameter genommen wenn der berechnete Wert kleiner als mein eingestellter Parameter in der VIS ist?

      Ok hat sich erledigt, hab es im Skript gefunden.

      if (UnloadSoC < nMinUnloadSoC){UnloadSoC = nMinUnloadSoC;}
      

      Gruß Chris

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

        @matis Weiter oben hatte ich mal beschrieben wie man es auf einem Raspberry Pi laufen lassen kann. Prallel zum IOBroker . Von der synology im Docker habe ich keine Erfahrung...

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

          @smartboart Hi, hänge auch an wxPython, du hast geschrieben, das hat dich jede Menge Zeit gekostet. Was hast Du denn gemacht, um es installiert zu bekommen?

          Ich hab nen Docker Container mit python installiert. Alle Pakete lassen sich nachinstallieren außer wxPython:

          checking for GTK+ version...
          checking for pkg-config... (cached) /usr/bin/pkg-config
          checking pkg-config is at least version 0.16... yes
          checking for GTK+ - version >= 3.0.0... Package gtk+-3.0 was not found in the pkg-config search path.
          Perhaps you should add the directory containing `gtk+-3.0.pc'
          to the PKG_CONFIG_PATH environment variable
          No package 'gtk+-3.0' found
          no
          *** Could not run GTK+ test program, checking why...
          *** The test program failed to compile or link. See the file config.log for the
          *** exact error that occurred. This usually means GTK+ is incorrectly installed.
          configure: error:
          The development files for GTK+ were not found. For GTK+ 2, please
          ensure that pkg-config is in the path and that gtk+-2.0.pc is
          installed. For GTK+ 1.2 please check that gtk-config is in the path,
          and that the version is 1.2.3 or above. Also check that the
          libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
          --libs' are in the LD_LIBRARY_PATH or equivalent.

          So und da hänge ich nun. Hat mir jemand einen Tipp?

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

            @matis hab inzwischen ein Dockerimage mit vorinstalliertem wxpython verwendet.
            Leider läuft die python3 main.py -e -c nicht, gibt Fehler

            root@python-3:/opt/RSCPGui# python3 main.py -e -c -v
            2021-10-10 18:26:54,558 - main - INFO - Lade Module
            2021-10-10 18:26:56,043 - main - INFO - Module geladen, initialisiere Console
            2021-10-10 18:26:56,044 - rscpguimain - INFO - Main initialisiert
            2021-10-10 18:26:56,044 - rscpguimain - INFO - Lade Konfigurationsdatei rscpe3dc.conf.ini
            Traceback (most recent call last):
            File "main.py", line 92, in <module>
            g.MainLoop()
            File "/opt/RSCPGui/rscpguiconsole.py", line 39, in MainLoop
            g = self.gui
            File "/opt/RSCPGui/rscpguiconsole.py", line 62, in gui
            return RSCPGuiMain.gui.fget(self)
            File "/opt/RSCPGui/rscpguimain.py", line 255, in gui
            if self.cfgLoginusername and self.cfgLoginpassword and self.cfgLoginconnectiontype == 'auto':
            File "/opt/RSCPGui/rscpguimain.py", line 174, in getattr
            if kat in self.config:
            File "/opt/RSCPGui/rscpguimain.py", line 119, in config
            self._config.read(self.ConfigFilename)
            File "/usr/local/lib/python3.8/configparser.py", line 697, in read
            self._read(fp, filename)
            File "/usr/local/lib/python3.8/configparser.py", line 1017, in _read
            for lineno, line in enumerate(fp, start=1):
            File "/usr/local/lib/python3.8/codecs.py", line 322, in decode
            (result, consumed) = self._buffer_decode(data, self.errors, final)
            UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 1894: invalid start byte

            und die GUI bekomme ich noch nicht aus dem Container raus:
            Unable to access the X Display, is $DISPLAY set properly?

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

              @arnod Moin Arno,
              ich bin eben auf die neueste Version, habe die Parameter gelöscht und neu gestartet. Jetzt habe ich folgende Warnungen in der Ausgabe und dementsprechend werden auch die richtigen Werte aus der Datei nicht in die Parameter-Objekte eingelesen.

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

              Definiert ist der Dateiort nach wie vor mit const sPfadE3DC = "/home/iobroker/e3dc-config-transfer/e3dc.config.txt".

              Das Modul fs von JavaScript habe ich eigentlich:
              7f06e040-aa34-477b-8ff9-901d22274d88-image.png

              Haste ne Idee?

              Google sagt zu dem Fehler als eine Möglichkeit, dass das passiert, wenn man Node.js < Version 10 hat, ich habe allerdings v12.22.2, also eher unwahrscheinlich?!

              Haben die Pünktchen irgendwas zu bedeuten?
              5d8e71e6-b0f5-48f7-a5b7-ed62bb70f291-image.png

              Jetzt inzwischen bekomme ich auch noch folgenden Fehler (4x): Liegt das daran, dass ich durch mehrmalige Neustarts des Skripts die Abfragemöglichkeit bei Forecast überreizt habe?

              (674) script.js.Strom.E3DCControl: Error in der function InterrogateForecast. Fehler = Error, status code = 429
              
              A 1 Reply Last reply Reply Quote 0
              • A
                ArnoD last edited by

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

                C S Glasfaser 5 Replies Last reply Reply Quote 0
                • A
                  ArnoD @stevie77 last edited by

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

                    @arnod said in E3DC Hauskraftwerk steuern:

                    Hat hier noch jemand das Problem ??

                    Also bei mir im Log kann ich zu den oben genannten Problemen keine Einträge finden.
                    Seit dem letzten Update läuft alles bestens.

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

                      @arnod Also, ich hatte Node.js wie du, inzwischen upgedatet. Node.js: v12.22.7, NPM version: 6.14.15. Das ändert erstmal nichts. Mein Javascript ist aber ein ganzes Stück veraltet, da ich nicht auf Admin 5 upgraden wollte (ist daran gekoppelt). Du hast wahrscheinlich Admin 5 und deswegen neueres Javascript? Ist Admin 5 inzwischen einigermaßen verwendbar?

                      cf4e385d-29c1-43ea-a603-491c32aad5a7-image.png

                      Am Skript habe ich nichts geändert, komplett ab "ENDE USER ANPASSUNGEN" kopiert.

                      Die ebenso vorgeschlagene Änderung habe ich so richtig umgesetzt? Scheint auch nicht zu funktionieren...
                      721612c0-0f1e-43fe-9f78-b83619ececa3-image.png

                      Scheint mir wohl nichts anderes übrig bleiben als in den sauren Apfel zu beißen und auf das meiner Meinung nach unübersichtliche Admin 5 zu wechseln...

                      Edit: Konfigdatei löschen/umbenennen und neu aus Programm schreiben lassen provoziert denselben Fehler bzw. die Warnung wie beim Start.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            936
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            70
                                            3329
                                            1330987
                                            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