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.
    • A
      ArnoD last edited by

      Neue Version 0.3.4 hochgeladen.
      Änderungen:
      Skript optimiert, xmlhttprequest Forecast und Proplanta anders programmiert
      Script ohne setTimeout mit async/await programmiert, dadurch schneller.

      Am Script wurde jetzt einiges optimiert und beschleunigt. Die Umschaltung in VIS ist jetzt flüssiger und nicht mehr so verzögert.
      Habe das Script jetzt zwei Wochen bei mir getestet und hoffentlich alle Fehler so weit beseitigt.

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

        @chrischros
        Versuch mal die neue Version.

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

          @arnod die gleiche Einträge im Log.

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

            @chrischros
            Das komische ist ja das nur die vier States bemängelt werden alle anderen nicht.
            Hast du mal die vier gelöscht und durch das Script neu erstellen lassen ?

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

              @arnod ich denke das hängt damit zusammen weil diese Werte geändert werden.
              löschen habe ich bisher noch nicht probiert. Wäre noch ein Ansatz.
              Wenn ich das Skript und den Ordner E3DC-Control in dem Reiter Objekte lösche, im Anschluss das Skript neu erstelle müssten doch alle Objekte wiederhergestellt werden?

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

                @chrischros
                Es reicht schon, wenn du das Script stoppst und in dem Reiter Objekte E3DC-Control löschen würdest.
                Beim Starten vom Script würden dann alle States neu angelegt werden.

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

                  @arnod
                  leider keine Besserung

                  2021-09-29 21:02:20.343 - info: web.0 (1912) State value to set for "0_userdata.0.E3DC-Control.Parameter.Einspeiselimit" has to be type "string" but received type "number"
                  2021-09-29 21:02:20.349 - info: web.0 (1912) State value to set for "0_userdata.0.E3DC-Control.Parameter.UntererLadekorridor" has to be type "string" but received type "number"
                  2021-09-29 21:02:20.353 - info: web.0 (1912) State value to set for "0_userdata.0.E3DC-Control.Parameter.ObererLadekorridor" has to be type "string" but received type "number"
                  2021-09-29 21:02:20.360 - info: web.0 (1912) State value to set for "0_userdata.0.E3DC-Control.Parameter.MinimumLadeleistung" has to be type "string" but received type "number"
                  2021-09-29 21:02:20.367 - info: web.0 (1912) State value to set for "0_userdata.0.E3DC-Control.Parameter.MaximumLadeleistung" has to be type "string" but received type "number"
                  2021-09-29 21:02:20.380 - info: web.0 (1912) State value to set for "0_userdata.0.E3DC-Control.Parameter.Ladeschwelle" has to be type "string" but received type "number"
                  2021-09-29 21:02:20.385 - info: web.0 (1912) State value to set for "0_userdata.0.E3DC-Control.Parameter.Ladeende" has to be type "string" but received type "number"
                  2021-09-29 21:02:20.390 - info: web.0 (1912) State value to set for "0_userdata.0.E3DC-Control.Parameter.Ladeende2" has to be type "string" but received type "number"
                  2021-09-29 21:02:20.396 - info: web.0 (1912) State value to set for "0_userdata.0.E3DC-Control.Parameter.Winterminimum" has to be type "string" but received type "number"
                  2021-09-29 21:02:20.402 - info: web.0 (1912) State value to set for "0_userdata.0.E3DC-Control.Parameter.Sommermaximum" has to be type "string" but received type "number"
                  2021-09-29 21:02:20.408 - info: web.0 (1912) State value to set for "0_userdata.0.E3DC-Control.Parameter.Sommerladeende" has to be type "string" but received type "number"
                  2021-09-29 21:02:20.416 - info: web.0 (1912) State value to set for "0_userdata.0.E3DC-Control.Parameter.Speichergroesse" has to be type "string" but received type "number"
                  
                  1 Reply Last reply Reply Quote 0
                  • A
                    ArnoD last edited by

                    @chrischros
                    Kann es eventuell an Web liegen? Das ist jetzt noch der einzige Unterschied, der mir einfällt.

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

                      @arnod
                      ok die Fehlermeldung kommt bei mir auch, hatte die Web Instanz auf Protokollstufe Fehler, deswegen wurde mir die Info Meldungen nicht mehr angezeigt.
                      Werde mir das am Wochenende mal anschauen, warum diese Meldung kommt.

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

                        Neue Version 0.3.5 hochgeladen.
                        Änderungen:
                        Bei allen Parameter Typ: number role:value geändert.
                        Im Iobroker Objekte muss der ganzen Objektbaum 0.E3DC-Control.Parameter gelöscht werden und dann das Script neu gestartet werden.

                        @ChrisChros
                        Jetzt sollte die Infomeldung nicht mehr im LOG auftauchen.

                        C S 2 Replies Last reply Reply Quote 1
                        • C
                          ChrisChros @ArnoD last edited by

                          @arnod
                          Eben mal getestet und die Meldungen im Log sind bisher nicht wieder aufgetaucht. Auch ein mehrmaliges Umschalten hat nicht die oben erwähnten Einträge ins Log geschrieben.
                          Super Arbeit, danke.

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

                            Das RSCPgui ist ja wirklich der Knaller.

                            Ist es denn inzwischen jemandem gelungen das auf einer Synology zum laufen zu bringen und könnte ein kurzes "how to" mitteilen?

                            Ganz spitze wäre ja, wenn daraus mal jemand der wirklich Software Ahnung hat, ich bin das leider nicht, daraus einen IOBroker-Adapter machen könnte. Die Anzahl der verfügbaren Daten ist wirklich absolut spitze!

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

                              @matis RSCPGui hat MQTT Funktion. Damit kannst du die Daten in den IOBroker integrieren.

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

                                @smartboart Ja, danke, das hab ich schon ausprobiert. Nur muß ich dazu aktuell noch meinen PC laufen lassen, ich hätte es gerne wie IOBroker auf der Synology laufen, hab aber keine Ahnung wie das zu bewerkstelligen ist.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            806
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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