Ankündigung

Einklappen
Keine Ankündigung bisher.

Support Thread für das BYD Batterie Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Support Thread für das BYD Batterie Plugin

    Vor ein paar Wochen haben wir bei uns einen BYD Energiespeicher (HVM 2x 19.3kWh) am Fronius Symo GEN24 10.0 Plus in Betrieb genommen. Von BYD steht die Windows-Software Be_Connect_Plus zur Verfügung, um Details zum Zustand des Energiespeichers auszulesen. Im Netz fand ich nur wenige Code-Beispiele, um die Daten direkt aus dem BYD auszulesen. Die interessanteste Implementierung fand ich im Projekt iobroker.net mit dem Adapter BYD HVS.

    Da wir unser Haus mit SmartHomeNG steuern und überwachen, implementierte ich nun selber ein "BYD Batterie Plugin". Das Plugin holt alle 60 Sekunden die Grunddaten aus dem System. Die Diagnosedaten werden gemäss 'diag_cycle' abgefragt und in Heatmaps dargestellt (siehe unten).

    Das Plugin kann entweder direkt aus meinem Repository heruntergeladen werden: https://github.com/lgb-this/plugins/...evelop/byd_bat oder direkt https://www.beathis.ch/sh/byd_bat_v0.1.3.zip.

    Kurzanleitung:

    1) BYD Energiespeicher mit Netzwerk verbinden => BYD System bezieht eine Adresse vom DHCP-Server

    2) IP-Adresse des BYD Energiespeichers im Router bestimmen (Name "WiFiAP") und IP fest dem Gerät zuweisen

    3) Dateien des Plugin herunterladen und in Verzeichnis "byd_bat" im Verzeichnis "smarthome/plugins" kopieren

    4) In der Datei "etc/plugin.yaml" das neue Plugin hinzufügen und IP-Adresse von (2) eintragen:
    Code:
    byd:
        class_name: byd_bat
        ip: '192.168.10.51'
    5) Im Verzeichnis "etc/items" eine neue Datei "byd.yaml" mit folgendem Inhalt anlegen:
    Code:
    byd:
        struct: byd_bat.byd_struct
    6) SmartHomeNG neu starten

    7) Im SmartHomeNG die Adminseite öffnen und das Web Interface des Plugin öffnen (nach ca. 5 Sekunden sollten die Daten sichtbar werden)

    Bei Bedarf können die Plots auch noch an einen zusätzlichen Ort im Rechner gespeichert werden, beispielweise für smartVISU (Parameter "imgpath" in der Plugin-Konfiguration).

    Ich habe das Plugin mit meinem Speicher (Typ HVM, 2 Türme) getestet. Ich suche nun weitere BYD-Benutzer mit anderen Konfigurationen, um sicherzustellen, dass das Plugin auch dort funktioniert. Falls jemand das Plugin testet, bitte den Log-Level für dieses Plugin auf DEBUG setzen und SmartHomeNG neu starten. Dann die Logdatei via PN an mich senden. Ich prüfe dann, wie ich das Plugin anpassen kann.

    Weitere Angaben zum Plugin finden sich in der Datei "byd_bat\user_doc.rst"

    Nachfolgend einige Screenshots der aktuellen Version (Web Interface):


    home.png
    diag.png
    volt.png
    temp.png
    logdata.png

    Das Plugin ist auch im offiziiellen Plugin-Github zu finden: https://github.com/smarthomeNG/plugi...evelop/byd_bat

    Changelog (Details siehe "byd_bat\__init__.py"
    • 230811 : V0.0.1 - erster Release
    • 230812 : V0.0.2 - Korrektur Berechnung Ausgangsstrom
    • 230819 : V0.0.3 - kleine Anpassungen
    • 230904 : V0.0.4 - Bilder JPG in PNG konvertiert fuer user_doc.rst
    • 231030 : V0.0.5 - Diagnose ergänzt: Bat-Voltag, V-Out, Current / Liste der Wechselrichter aktualisiert / Alle Plot-Dateien beim Plugin-Start löschen / Anpassungen fuer mathplotlib 3.8.0 mit requirements.txt​
    • 231210 : V0.0.7 - Neues Item 'enable_connection' im Struct 'byd_struct' aktiviert/deaktiviert die Kommunikation mit dem Speicher, neuer Parameter 'diag_cycle' im Plugin definiert die Abfragehäufigkeit der Diagnosedaten, Temperatur max/min pro Turm ergänzt, Balancing wird mit einem 'B' in der Heatmap angezeigt
    • 240112: V0.0.8 - Zellen mit Balancing werden neu rot umrandet (Heatmap Spannungen), diverse neue Items, Abfrage der Logdaten (BMU,BMS), neuer Plot mit Balkendiagramm
    • 240113: V.0.1.0 - Release
    • 240115: V0.1.1 - zusätzliche Items, Plots angepasst
    • 240120: V0.1.2 - Log-Texte ergänzt
    • 240303: V0.1.3 - Web-Interface Fehler korrigiert, Log-Daten auf 2 Tabs verteilt (Direkt-Download)
    Angehängte Dateien
    Zuletzt geändert von manhartm; 17.03.2024, 14:17.

    #2
    Zitat von manhartm Beitrag anzeigen
    4) In der Datei "etc/plugin.yaml" das neue Plugin hinzufügen und IP-Adresse von (2) eintragen:
    Code:
    byd:
        class_name: byd_bat
        class_path: plugins.byd_bat
        ip: '192.168.10.51'
    Das geht übrigens seit einiger Zeit auch einfacher:

    Code:
    byd:
        plugin_name: byd_bat
        ip: '192.168.10.51'
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar


      #3
      Zitat von Msinn Beitrag anzeigen

      Das geht übrigens seit einiger Zeit auch einfacher:

      Code:
      byd:
      plugin_name: byd_bat
      ip: '192.168.10.51'
      Danke für den Hinweis - man lernt nie aus

      Kommentar


        #4
        Hi,

        klasse!! Ich warte auf Lieferung und Installation meines BYD 10KW-Speichers. Sobald der da ist, teste ich gerne.
        Gerade die Temperaturen finde ich prima, da der Speicher in die Garage soll und ich da ein wenig ein Auge drauf haben will.

        Viele Grüße
        Gunnar

        Kommentar


          #5
          manhartm Danke für das Bereitstellen des Plugins. Ich habe heute mal die doc-Erstellung von SmartHomeNG angeschmissen und dort wurde mir vom Sphinx gesagt, das es nicht mit JPG umgehen kann. Ein PNG oder SVG wäre prima. Könntest Du das noch ändern?

          Kommentar


            #6
            bmx Wo hast Du die Meldung her und wie lautet sie genau? JPGs gibt es in vielen Plugin Dokumentationen, ohne dass diese von Sphinx angemeckert würden. Aus meiner Sicht spricht nichts gegen JPGs. Eigentlich alle Screenshots in den Dokumentationen von mir sind JPGs.
            Viele Grüße
            Martin

            There is no cloud. It's only someone else's computer.

            Kommentar


              #7
              Die Meldung wird von Sphinx 5.3.0 ausgegeben in Verbindung mit sphinx-rtd-theme 1.3.0. Dort werden noch wesentlich mehr Warnungen mit ausgegeben.

              Aus technischer Sicht: JPEG Bilder werden so erzeugt, das sie beim entkomprimierten Darstellen häufig gerade bei technischen Bilder Artefakte zeigen, die da nicht hingehören. Im Vergleich mit einer CD sind das Töne die im Original nicht existieren. Daher ist für technische Bilder IMHO PNG zu bevorzugen.

              Es kann natürlich sein, das es irgendwo noch eine Fehlfunktion in der Kombi von Sphinx & Begleitprogrammen gibt. Ich schau mir das mal an
              Zuletzt geändert von bmx; 03.09.2023, 19:14.

              Kommentar


                #8
                Das einzige Problem das ich bei der Doku zum Plugin sehe, ist, dass die Bilder nicht im Plugin enthalten sind. Es gibt kein Unterverzeichnis assets, aus dem die Bilder geladen werden sollten. Das erklärt natürlich Warnungen (unabhängig vom Dateityp).

                Außerdem etwas ungewöhnlich ist, dass die Extension in Großbuchstaben geschrieben wurde (z.B.: assets/home.JPG).

                manhartm Kannst Du die Bilder noch hinzufügen und einen neuen PR stellen?

                Mir ist außerdem aufgefallen, dass Du als Vorlage die user_doc.rst aus dem master Branch verwendet hast. Dadurch sind die Überschriften Level nicht unbedingt SPhinx konform. Könntest Du den Inhalt in die user_doc.rst aus dem sample Plugin des develop Branches überführen und die Datei auch in den PR inkludieren?

                Zitat von bmx Beitrag anzeigen
                Im Vergleich mit einer CD sind das Töne die im Original nicht existieren. Daher ist für technische Bilder IMHO PNG zu bevorzugen.
                Das wird aber nicht dadurch besser, dass ich existierende jpg Bilder nachträglich in ein anderes Format konvertiere. Für mich sind Screenshots auch nicht unbedingt "technische Bilder".
                Zuletzt geändert von Msinn; 03.09.2023, 19:36. Grund: Nachtrag: Verwendete Vorlage Datei
                Viele Grüße
                Martin

                There is no cloud. It's only someone else's computer.

                Kommentar


                  #9
                  Zitat von Msinn Beitrag anzeigen
                  Das wird aber nicht dadurch besser, dass ich existierende jpg Bilder nachträglich in ein anderes Format konvertiere. Für mich sind Screenshots auch nicht unbedingt "technische Bilder".
                  Das ist völlig richtig, besser ist es sowieso Vektor Grafiken zu nutzen aber wer nutzt schon SVG für seine Screenshots?

                  Ich verallgemeinere jetzt mal technische Bilder mit: Viele Kanten und Linien wo es störend wirkt wenn plötzlich Geisterlinien auftauchen.
                  Aber auch eine Unterschriift die gescannt und beim Word als JPG eingebaut wird ist sehr unvorteilhaft. Auf den meisten Druckern ist nämlich plötzlich "Dreck" drumherum was da nicht hingehört.

                  Kommentar


                    #10
                    Habe die JPG in PNG konvertiert und die Datei user_doc.rst auf der Basis des dev angepasst. Ein Pull Request ist erstellt. Hoffe es passt so.

                    Kommentar


                      #11
                      Das konvertieren der JPGs ist wie Bernd und ich weiter oben diskutiert haben, überflüssig. Der Qualitätsverlust, an dem Bernd sich stört, ist bereits beim Speichern als JPG eingetreten und wird mit der Konvertierung einfach in das neue Format mitgenommen.

                      Ansonsten passt es fast. Du hast aus der alten Vorlage jeweils die Abschnitte für die Konfigurationsdateien (plugin.yaml, items.yaml, logic.jaml) mit dem Inhalt

                      Code:
                      "Bitte die Dokumentation lesen, die aus den Metadaten der plugin.yaml erzeugt wurde." mitgenommen.
                      In der neuen Vorlage steht jedoch

                      Code:
                      Zu den Informationen, welche Parameter in der ../etc/plugin.yaml konfiguriert werden können bzw. müssen, bitte
                      bitte die Dokumentation :doc:`Dokumentation </plugins_doc/config/<Pluginname in Kleinbuchstaben>>` lesen, die aus
                      den Metadaten der plugin.yaml erzeugt wurde (siehe oben).
                      
                      <Hier können bei Bedarf ausführliche Beschreibungen zu den Parametern dokumentiert werden.>
                      Durch das Einfügen des Plugin Namen enthält die Dokumentation dann einen funktionsfähigen Link auf die automatisch generierte Dokumentationsseite. Bei Deinem Plugin würde dort

                      Code:
                      ... die Dokumentation :doc:`Dokumentation </plugins_doc/config/byd_bat>` lesen ...
                      stehen.
                      Zuletzt geändert von Msinn; 04.09.2023, 16:16.
                      Viele Grüße
                      Martin

                      There is no cloud. It's only someone else's computer.

                      Kommentar


                        #12
                        Sorry - diesen Teil habe ich heute Mittag übersehen. Die neue Version der Datei user_doc.rst ist in meinem Fork mit einem commit drin. Leider kann ich keinen Pull Request machen (wird in github.com nicht angezeigt).

                        Kommentar


                          #13
                          Das Du keinen neuen PR machen kannst, ist klar. Dein vorheriger PR ist noch offen.
                          Das führt dazu, dass Dein Commit automatisch in den PR mit aufgenommen wird.

                          Das kannst DU hier sehen: https://github.com/smarthomeNG/plugins/pull/807

                          Den Commit siehst Du nach der Anpassung des Titels, den Morg42 vorgenommen hat.

                          Unser Standard für den Titel Plugin Pull Requests (wie auch bei Issues) ist <plugin name>: <Beschreibung>. Dadurch finden wir Themen schneller wieder und können besser danach sortieren bzw. filtern.
                          Viele Grüße
                          Martin

                          There is no cloud. It's only someone else's computer.

                          Kommentar


                            #14
                            Hi,

                            vielen Dank fürs Plugin. Kurze Rückmeldung mit HVS Speicher: Diag und Temp funktionieren bei mir leider nicht. Nutze noch ShNG v. 1.9.2. Es gibt folgende Fehlermeldungen im Log:

                            2023-10-30 00:36:56 ERROR plugins.byd_bat.mmbyd Method plugins.byd_bat.mmbyd exception: Incorrect use of keyword argument 'size'. Keyword arguments other than 'minor' modify the text labels and can only be used if 'labels' are passed as well.
                            > Traceback (most recent call last):
                            > File "/usr/local/smarthome/lib/scheduler.py", line 657, in _task
                            > obj()
                            > File "/usr/local/smarthome/plugins/byd_bat/__init__.py", line 481, in poll_device
                            > self.diagdata_save(self.byd_root)
                            > File "/usr/local/smarthome/plugins/byd_bat/__init__.py", line 771, in diagdata_save
                            > self.diagdata_save_one(device.diagnosis.tower1,1)
                            > File "/usr/local/smarthome/plugins/byd_bat/__init__.py", line 791, in diagdata_save_one
                            > self.diag_plot(x)
                            > File "/usr/local/smarthome/plugins/byd_bat/__init__.py", line 834, in diag_plot
                            > ax.set_yticks(np.arange(dd.shape[0] + 1) - .5,minor=True,size=10)
                            > File "/home/smarthome/.local/lib/python3.9/site-packages/matplotlib/axes/_base.py", line 73, in wrapper
                            > return get_method(self)(*args, **kwargs)
                            > File "/home/smarthome/.local/lib/python3.9/site-packages/matplotlib/axis.py", line 2134, in set_ticks
                            > raise ValueError(
                            > ValueError: Incorrect use of keyword argument 'size'. Keyword arguments other than 'minor' modify the text labels and can only be used if 'labels' are passed as well.​

                            Bin nicht sicher ob die Meldung vom gleichen Problem herrührt:

                            2023-10-30 00:47:29 ERROR shpypi.get_releasedata Method shpypi.get_releasedata exception: 'NoneType' object has no attribute 'split'
                            > Traceback (most recent call last):
                            > File "/usr/local/smarthome/lib/scheduler.py", line 657, in _task
                            > obj()
                            > File "/usr/local/smarthome/lib/shpypi.py", line 751, in lookup_pypi_releasedata
                            > self.check_package_version_data(package)
                            > File "/usr/local/smarthome/lib/shpypi.py", line 769, in check_package_version_data
                            > max_met = self._compare_versions(inst_vers, max, '<=')
                            > File "/usr/local/smarthome/lib/shpypi.py", line 1025, in _compare_versions
                            > v2 = self._version_to_list(vers2)
                            > File "/usr/local/smarthome/lib/shpypi.py", line 1049, in _version_to_list
                            > vsplit = vers.split('.')
                            > AttributeError: 'NoneType' object has no attribute 'split'​

                            Gruß
                            Tommi


                            Byd4.png Byd3.png
                            Angehängte Dateien

                            Kommentar


                              #15
                              Zitat von beckerth Beitrag anzeigen
                              Kurze Rückmeldung mit HVS Speicher: Diag und Temp funktionieren bei mir leider nicht. Nutze noch ShNG v. 1.9.2.
                              Ich vermute beim 1.Fehler, dass die Version von mathlibplot zu tief ist. Bei mir ist die Version 3.5.2 installiert mit Python 3.9 und SmartHomeNG​ 1.9.5. Ich muss diese Version 3.5.2 für mathlibplot noch als Minimalversion in der Datei requirements.txt ergänzen.

                              Der 2.Fehler sagt mir gerade nichts. Tauchte der auf, als Du das Plugin eingefügt hast ?

                              Kommentar

                              Lädt...
                              X