Kubiac / homebridge-solaredge-realtime

Apache License 2.0
5 stars 3 forks source link

Display current consumption and power to the grid #2

Open eSportler89 opened 2 years ago

eSportler89 commented 2 years ago

Is your feature request related to a problem? Please describe: It's just a feature request to get more possibilities to trigger an event.

Describe the solution you'd like: Showing current consumption and power to the grid the same way as produced power.

Describe alternatives you've considered:

Additional context: I want to trigger my go-e Charger Wallbox when there is a specific amount of power going to the grid. Tanks :)

Kubiac commented 2 years ago

Hi, so I assume you have a solaredge energy meter connected to your inverter? And you want to get data from that, correct? I don't have an solaredge energy meter, so you would need to test this feature when implemented.

eSportler89 commented 2 years ago

Yes, that's correct. Testing is no problem :)

Kubiac commented 2 years ago

Hi @eSportler89,

can you try the new version? Just set the meter parameter to 1in your config. Use the UI-Config or do something like:

  "name" : "SolaredgeRealTime",
  "inverter" : [
    {
      "id" : "myInverter-1",
      "displayName" : "Photovoltaik",
      "ip" : "10.0.1.30",
      "port" : "502",
      "updateInterval" : 10,
      "meter" : 1
    }
  ],
  "platform" : "SolaredgeRealTime"
}

in your config.json. And report your results!

eSportler89 commented 2 years ago

For now, no obvious errors are displayed, but I still only have one lamp as a HomeKit item. I would have expected three more lamps now.

But also the "default" lamp only shows 0,0001 LUX since a few days. Doublechecked my config and restart the Solaredge Inverter and disabled/enabled Modbus TCP on Port 1502.

Zur einfacheren Kommunikation können wir auch deutsch schreiben :D

Kubiac commented 2 years ago

Klar, gerne Deutsch. Also, dass nur ein Lichtsensor angezeigt wird, ist erwartet. Wenn du an Produktion und Export/import interessiert bist, dann einfach 2 inverter mit jeweils meter = 0 und meter =1 konfigurieren. wenn er aber immer 0,00001 anzeigt stimmt was nicht mit der Berechnung. Ich guck es mir nochmal an und melde mich. Im Homebridge-Log ist nichts zu sehen sagst du ja.

eSportler89 commented 2 years ago

Okay, da hätte ich selbst drauf kommen können :D Korrekt, im Logging ist leider gar nichts zu erkennen. Ich weiß aber das es zu Beginn mal funktioniert hatte und ich zu jeder Änderung einen Logeintrag sehen konnte, nur kann ich dir nicht sagen ob ich danach mal ein Update deines Plugins gemacht hatte.

Morcman commented 2 years ago

Ich klinke mich hier mal ein. Bei mir zeigt er bei meter = 0 den aktuellen Verbrauch im Haus an und nicht, was die PV vom Dach produziert. Kannst du da mal schauen, woran das liegt bitte? Danke

\Edit: Vermutlich liegt es am Batteriespeicher. Korrekterweise müsste es heißen er zeigt an, was vom Dach an Haus geht. Aktuell wird das Haus mit Dach und Speicher beliefert und er zeigt die Summe beider an. Wenn er den Speicher läd, zeigt mir das Plugin nur den Anteil an, der ins Haus geht. Interessant ist aber die Leistung vom Dach.

Kubiac commented 2 years ago

vielen Dank @Morcman. Ich habe leider keinen Akku und somit auch keinen Energy Meter um das so ausführlich zu testen. Ich werde mal eine Version bauen, in der man die Modbus-Register manuell in der Config überschreiben kann und würde euch bitten versch. Register-Kombinationen (es sind immer 2 Werte nötig) zu testen basierend auf der Spezifikation von Solaredge. Dann könnten wir alle Messpunkte abdecken

Morcman commented 2 years ago

Klar, ich unterstütze gerne. Meld dich einfach wenn du soweit bist.

Kubiac commented 2 years ago

Ok, Version 0.10.0 ist gerade veröffentlicht und kann nun wie folgt konfiguriert werden:

{
        "id" : "myInverter-2",
        "displayName" : "Photovoltaik",
        "ip" : "10.0.1.31",
        "port" : 1502,
        "updateInterval" : 30,
        "powerAddress" : 40206,
        "powerSfAddress" : 40210,
        "powerUnsignedValue" : false
}

Standardmäßig sind die Adressen 40083 und 40084 und unsigned ist true. Das würde den Inverter messen. Ich habe die Protokoll-Spezifikation nochmal gelesen und vermute, dass

Morcman commented 2 years ago

Ich hab mir das heute mal angeguckt. Die Adressen für AC Leistung (40083 und 40084) liefern tatsächlich nur die vom WR erzeugte Strommenge zum Haus. Selbst wenn man auf die Adressen für DC Leistung (40100 und 40101) wechselt, ändert das zunächst einmal nichts. Interessant ist allerdings, dass er für 40083 und 40084 Werte liefert, wenn Strom der Batterie entnommen wird. DC Werte sind dann allerdings auch gefüllt. Es muss also für den Speicher einen eigenen Adressenbereich geben. Leider finde ich dazu nichts in der Dokumentation. Ich wollte die Tage mal bei anderen Smarthome Programmen schauen, ob man dort in den PlugIn Dokus was findet.

Morcman commented 2 years ago

Ich hab mir das heute mal angeguckt. Die Adressen für AC Leistung (40083 und 40084) liefern tatsächlich nur die vom WR erzeugte Strommenge zum Haus. Selbst wenn man auf die Adressen für DC Leistung (40100 und 40101) wechselt, ändert das zunächst einmal nichts. Interessant ist allerdings, dass er für 40083 und 40084 Werte liefert, wenn Strom der Batterie entnommen wird. DC Werte sind dann allerdings auch gefüllt. Es muss also für den Speicher einen eigenen Adressenbereich geben. Leider finde ich dazu nichts in der Dokumentation. Ich wollte die Tage mal bei anderen Smarthome Programmen schauen, ob man dort in den PlugIn Dokus was findet.

Kubiac commented 2 years ago

Also es macht natürlich Sinn, dass die Werte am WR sowohl Strom vom Dach als auch aus der Batterie messen. Beide müssen ja durch den WR durch. Ich würde immer eher den AC als den DC Strom nehmen, da ersterer schon Wandlungsverluste beinhalten sollte. Hast du die anderen 3 Meter von oben mal probiert?

eSportler89 commented 2 years ago

Moin moin, ich hab genau die gleichen Ergebnisse wie Morcman.... 40083 und 40084 scheinen für mich sogar eine kumulierte Angabe von sämtlicher durch den Wechselrichter fließender Energie zu sein, sofern diese nicht vom Versorger bezogen wird.

Meter 1 liefert bei mir keine Fehlermeldungen, jedoch auch keine Daten. Meter 2 und 3 werden mir direkt als ungültige Registerwerte ausgegeben.

Testweise hatte ich mir mal eine VM mit Hassio aufgesetzt und dem entsprechenden Solaredge Plugin, wo ich dann gute Brauchbare Ergebnisse zurückbekommen habe. Die Dokumentation von diesem Plugin verweist auf folgende Dokumentationen von Solaredge: Solaredge Sunspec Technical Note Power Control Protocol for Solaredge Inverters Technical Note

Erstere Dokumentation ist die gleiche welche du wohl nutzt, die zweite bietet noch Optionen zu Batterie an. Eigentlich müsste aber mit den Registern aus deiner Dokumentation auch alles andere auszulesen sein, warum Meter 1 bei mir dann nichts anzeigt ist mir noch ein Rätsel... da muss ich nochmal was ausprobieren. Evtl. muss man mit diversen Registerwerten auch rechnen um einzelne Werte zu bekommen.

Vorstellen würde ich mir einzelne Werte zu folgenden Punkten als Lampen im HomeKit:

Hier auch mal der Link zum eben genannten Hassio Plugin

Kubiac commented 2 years ago

Ja, die SunSpec Technical Note hatte ich genutzt. Die andere kannte ich noch nicht, aber habe beim überfliegen kein Hinweis gefunden. Ich sehe mir sie mal in Ruhe an.

Das verhalten von Meter 1 müssen wir nochmal genauer untersuchen. Bei mir (ohne Batterie und Power Meter) kommt da auch schon eine Fehlermeldung. Also da ist was bei dir. Kan nes sein, dass die Entladung der Batterie dafür sorgt, dass der Meter wirklich ziemlich genau bei 0 steht? Kannst du die Werte nochmal bei Überschuss und voller Batterie und/oder Dunkelheit und leerer Batterie checken?

Das Problem mit den negativen Werten hatte ich noch gar nicht auf dem Schirm. Ja, man muss vermutlich mehrere Lichtsensoren für Export/Import und Ladung/Entladung einrichten.

Kannst du Homebridge mal im Debug-Modus starten (Drei-Punkte-Menü rechts oben - Homebridge Settings) und mir die Logs eines Ausleseversuchs schicken? Da sehe ich welche Daten er liest und was er ausrechnet.

eSportler89 commented 2 years ago

Ich hatte die Versuche gestern bei vollem Sonnenschein gemacht. Sprich die Batterie wurde zeitweise noch geladen. Auch den Zustand Batterie voll und PV Überschuss geht ins Netz hatte ich abgedeckt.

Aktuell habe ich das Problem das ich nur noch die Meldung "[SolaredgeRealTime] connect ECONNREFUSED 192.168.1.15:1502" bekomme. Inverter habe ich schon neu gestartet, werde gleich mal in die Einstellungen gehen und schauen ob die Modbus TCP Funktion wieder ausgeschaltet ist. Wenn ich das wieder im Griff habe, kann ich gerne mal den Debug Modus starten. Mal schauen wie viel da durch rauscht :D Meine Homebridge Instanz ist relativ groß.

Morcman commented 2 years ago

Über HomeAssistant habe ich auch etwas gutes dazu gefunden: https://community.home-assistant.io/t/updated-solaredge-modbus-full-setup-guide-with-energy-dashboard-integration/340956 Dort wird auch das oben genannte Plugin verwendet. Allerdings rechnet er noch einiges zusammen und auseinander, da die Werte, die vom modbus kommen wohl nicht ganz korrekt sind. Das macht das ganze Thema natürlich unendlich komplex.

eSportler89 commented 2 years ago

Leider bekomme ich die Verbindung von der Homebridge zum Wechselrichter gar nicht mehr hin. Modbus TCP war aktiv, auch das habe ich deaktiviert und wieder aktiviert aber keine Besserung. Aktuell kann ich mir noch nicht erklären warum der so rumzickt.

Melde mich sobald ich das wieder in den Griff bekommen habe!

Morcman commented 2 years ago

Wechselrichter mal komplett neugestartet?

eSportler89 commented 2 years ago

Jepp, das hatte ich letztens schon als Quick&Dirty Lösung probiert.

Denke das ich mal den Support anhauen muss wenn sich da nichts mehr ändert.


So, läuft wieder! Scheinbar hat da das HomeAssistant Plugin mit reingefunkt und Palaver gemacht -.-

Jetzt habe ich mal ein Debug gestartet, aber nicht über das Webinterface (die Debugfunktion gibt es bei mir nicht im UI), sondern über /etc/default/homebridge -> DEBUG=*

Wie zu erwarten war, das Log möchte sich keiner anschauen xD Mir ist fast der Raspberry abgeschmiert. Beim anschließenden durchsuchen des Logs finde ich immer nur die "[SolaredgeRealTime] connect ECONNREFUSED 192.168.1.15:1502" Meldung, obwohl er aber auch Werte zurückliefert. Scheinbar wird nicht geloggt wenn Werte reinkommen die in Ordnung sind. Sofern ich Registerwerte aus Meter 2 oder 3 nehme kommt "[SolaredgeRealTime] Modbus exception 2: Illegal data address (register not supported by device)" Bei Meter 1 kommen diese Fehler nicht, allerdings auch keine Werte, bzw. evtl. nur Negativwerte die dann als 0,0001 Lux dargestellt werden.


Scheinbar kommt die Lux Anzeige auch nicht mit höheren Werten zurecht :( Bei mir gehen gerade ca. 6kw durch den Inverter und die Lampe zeigt nur noch 0,0001 Lux an :D

Kubiac commented 2 years ago

Ok, das hilft mir erstmal. Ich muss das mit den negativen Werten anders lösen. Ich melde mich, wenn ich ein Update habe.

Kubiac commented 2 years ago

Sorry fürs warten, aber andere Themen und dann war die Entwicklungsumgebung auch noch hin.

Egal Version 0.11 kann jetzt mit beliebigen Adressen konfigurieren und über den Parameter "powerUnsignedValue" : false auch dafür sorgen, dass negative Werte über einen zweiten Lichtsensor ausgegeben werden. Das ist für den Messpunkt am Hausanschluss und an der Batterie natürlich nötig.

Könnt ihr das bitte konfigurieren und bestä†igen, dass ihr 2 Lichtsensoren seht und dann könntet ihr die Adressen ändern und gucken, welche für welchen Messpunkt gelten.

SchemaNature commented 1 year ago

Wo seid Ihr mit diesem Thema gelanded? Koennt ihr bitte eine Konfiguration teilen die fuer Euch funktioniert?

malwcal commented 10 months ago

Hi, I can't tell if this is resolved or not: is this plugin supposed to expose consumption. (Unfortunately I don't speak german)