SPH 4600 Growatt Modbus 485 -> openHAB
- udo1toni
- Beiträge: 14057
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: SPH 4600 Growatt Modbus 485 -> openHAB
Warum machst Du dafür keinen neuen Thread auf? Das Problem hat ja nichts mit Modbus zu tun...
Wie dem auch sei Du kannst Dein openHAB3.4.4 Backup nicht so ohne weiteres in openHAB4 einspielen, weil die Konvertierungsscripte dabei nicht automatisch tätig werden
Und es gibt durchaus einiges anzupassen
Die Fehlermeldung deutet darauf hin, dass das Binding nicht installiert ist. ACHTUNG: Es gibt kein JS Transformation Binding mehr. Stattdessen musst Du JavaScript Scripting installieren, welches zusätzlich auch die Transformation abdeckt.
Dafür kann man nun aber auch DSL Code für Transformations nutzen (wenn man weiß, wie das ganze funktioniert...)
Ich bin noch nicht umgestiegen, ich brauche ein paar Tage Ruhe dafür
Wie dem auch sei Du kannst Dein openHAB3.4.4 Backup nicht so ohne weiteres in openHAB4 einspielen, weil die Konvertierungsscripte dabei nicht automatisch tätig werden
Und es gibt durchaus einiges anzupassen
Die Fehlermeldung deutet darauf hin, dass das Binding nicht installiert ist. ACHTUNG: Es gibt kein JS Transformation Binding mehr. Stattdessen musst Du JavaScript Scripting installieren, welches zusätzlich auch die Transformation abdeckt.
Dafür kann man nun aber auch DSL Code für Transformations nutzen (wenn man weiß, wie das ganze funktioniert...)
Ich bin noch nicht umgestiegen, ich brauche ein paar Tage Ruhe dafür
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
-
- Beiträge: 408
- Registriert: 6. Jan 2021 18:05
Re: SPH 4600 Growatt Modbus 485 -> openHAB
Da hast du recht, aber es ist erstmal zum testen. Zumal ich dachte das das mit dem JS ein Problem mit meiner Things datei ist.
Die Karte mit dem openHAB 3 habe ich hier noch liegen.
Das mit dem Backup einspielen hat super funktioniert.
Binding wurden auch soweit übernommen, Okay JS nicht...
rule und alles funktionieren bis jetzt.
Aber wie gesagt, nur testen.
Die Karte mit dem openHAB 3 habe ich hier noch liegen.
Das mit dem Backup einspielen hat super funktioniert.
Binding wurden auch soweit übernommen, Okay JS nicht...
rule und alles funktionieren bis jetzt.
Aber wie gesagt, nur testen.
Gruss mad-mike
openHABian 4.1.2 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.1.2 auf Raspberry Pi 4 Mod. b (8GB)
- udo1toni
- Beiträge: 14057
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: SPH 4600 Growatt Modbus 485 -> openHAB
Was ja nun daran liegt, dass es das Binding nicht mehr gibt, weil ein völlig anderes (auch vorher schon existentes!) seine Funktion mit übernommen hat.
Natürlich hätte man auch dafür eine Automatik integrieren können (falls JS Transformation oder JavaScript Scripting installiert, installiere JavaScript Scripting), aber ich denke, die Bindings wurden noch nie in dieser Form betrachtet. Entweder sie sind in addons.config gelistet, dann muss der Eintrag manuell angepasst werden (wie jegliche Textkonfiguration manuell angepasst werden muss), oder sie wurden über die UI installiert, dann wird der Eintrag 1:1 aus der json Datei übernommen, nicht mehr vorhandene Bindings werden dabei entfernt, es gibt ja keinen Installationskandidaten.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
-
- Beiträge: 408
- Registriert: 6. Jan 2021 18:05
Re: SPH 4600 Growatt Modbus 485 -> openHAB
Moin,
Ich musste mal etwas die Poller Time anpassen, da m.M.n. nicht alle werte im 2,5 Sekunden Takt abgefragt werden müssen. Für die Überschuss Nutzung wäre es ja Wichtig werte exakt zu erhalten, aber andere Werte ist es Egal, wenn man hier erst nach 5 minuten oder so ein update bekommt...
hier mal ein zwischen update.
Ich musste mal etwas die Poller Time anpassen, da m.M.n. nicht alle werte im 2,5 Sekunden Takt abgefragt werden müssen. Für die Überschuss Nutzung wäre es ja Wichtig werte exakt zu erhalten, aber andere Werte ist es Egal, wenn man hier erst nach 5 minuten oder so ein update bekommt...
Code: Alles auswählen
Bridge modbus:tcp:tcpBridge "PV Gateway" [ host="192.168.178.198", port=502, id=1, reconnectAfterMillis=1000 ] {
Bridge poller inputPoller2 "PV Poller2" [ start=0, length=100, refresh=7500, type="input", cacheMillis=100] {
Thing data PV_total "PV_total" [ readStart="2", readValueType="uint16", readTransform="JS:komma.js"]
Thing data PV1_Volt "PV1_Volt" [ readStart="3", readValueType="uint16", readTransform="JS:komma.js"]
Thing data PV_String1 "PV_String1" [ readStart="6", readValueType="uint16", readTransform="JS:komma.js"]
Thing data PV2_Volt "PV2_Volt" [ readStart="7", readValueType="uint16", readTransform="JS:komma.js"]
Thing data PV_String2 "PV_String2" [ readStart="10", readValueType="uint16", readTransform="JS:komma.js"]
Thing data WR_out_AC "WR_out_AC" [ readStart="36", readValueType="uint16", readTransform="JS:komma.js"]
}
Bridge poller inputPoller "PV Poller" [ start=1000, length=100, refresh=7500, type="input", cacheMillis=100] {
Thing data Akku_watt "Akku" [ readStart="1010", readValueType="uint16", readTransform="JS:komma.js"]
Thing data Akku_load "Akku_load" [ readStart="1012", readValueType="uint16", readTransform="JS:komma.js"]
Thing data Akku_Volt "Akku_Volt" [ readStart="1013", readValueType="uint16", readTransform="JS:komma.js"]
Thing data PV_SOC "SOC" [ readStart="1014", readValueType="uint16"]
}
Bridge poller inputPoller4 "PV Poller4" [ start=1000, length=100, refresh=1500, type="input", cacheMillis=100] {
Thing data von_netz "von Netz" [ readStart="1022", readValueType="uint16", readTransform="JS:komma.js"]
Thing data ins_netz "ins Netz" [ readStart="1030", readValueType="uint16", readTransform="JS:komma.js"]
}
Bridge poller inputPoller3 "PV Poller3" [ start=1000, length=100, refresh=120000, type="input", cacheMillis=100] {
Thing data E_to_user "E_to_user_tot" [ readStart="1045", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_to_user_tot "E_to_user_tot" [ readStart="1047", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_to_grid "E_to_grid" [ readStart="1049", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_to_grid_tot "E_to_grid_tot" [ readStart="1051", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_discharge "E_discharge" [ readStart="1053", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_discharge_tot " E_discharge_tot" [ readStart="1055", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_charge "E_charge" [ readStart="1057", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_charge_tot " E_charge_tot" [ readStart="1059", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_local_load "E_local_load" [ readStart="1061", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_local_load_tot " E_local_load_tot" [ readStart="1063", readValueType="uint16", readTransform="JS:komma.js"]
}
}
Code: Alles auswählen
// Growatt SPH
Group gGrowatt <solarplant>
// Poller 1
Number Akku_watt "Akku Watt [%.1f W]" <flow> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller:Akku_watt:number"}
Number SOC "Akku SOC [%d %%]" <batterylevel> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller:PV_SOC:number"}
Number Akku_laden "Akku_laden [%.1f W]" <energy> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller:Akku_load:number"}
Number Akku_Volt "Akku Volt [%.1f V]" <energy> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller:Akku_Volt:number"}
// Poller 3
Number E_to_user "Ohne PV [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_to_user:number"}
Number E_to_user_tot "Ohne PV ges. [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_to_user_tot:number"}
Number E_to_grid "Einspeisen [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_to_grid:number"}
Number E_to_grid_tot "Einspeisen ges. [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_to_grid_tot:number"}
Number E_discharge "Aus dem Akku [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_discharge:number"}
Number E_discharge_tot "Aus dem Akku ges. [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_discharge_tot:number"}
Number E_charge "In den Akku [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_charge:number"}
Number E_charge_tot "In den Akku ges. [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_charge_tot:number"}
Number E_local_load "Stromverbrauch [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_local_load:number"}
Number E_local_load_tot "Stromverbrauch ges. [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_local_load_tot:number"}
// Poller 2
Number PV_total "PV total [%.1f W]" <solarplant> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller2:PV_total:number"}
Number PV_String1 "String 1 [%.1f W]" <solarplant> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller2:PV_String1:number"}
Number PV_String2 "String 2 [%.1f W]" <solarplant> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller2:PV_String2:number"}
Number PV1_Volt "PV1 Volt [%.1f V]" <energy> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller2:PV1_Volt:number"}
Number PV2_Volt "PV2 Volt [%.1f V]" <energy> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller2:PV2_Volt:number"}
Number WR_out_AC "WR_out_AC [%.1f W]" <energy> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller2:WR_out_AC:number"}
// Poller 4
Number Netz_Bezug "Netz Bezug [%.1f W]" <returnpipe> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller4:von_netz:number"}
Number Netz_Einspeisung "Netz Einspeisung [%.1f W]" <flowpipe> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller4:ins_netz:number"}
hier mal ein zwischen update.
Gruss mad-mike
openHABian 4.1.2 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.1.2 auf Raspberry Pi 4 Mod. b (8GB)
-
- Beiträge: 408
- Registriert: 6. Jan 2021 18:05
Re: SPH 4600 Growatt Modbus 485 -> openHAB
Moin,
Ich habe mal wieder ein Update, dabei kann ich nun auch mal was in Richtung Growatt senden: Die untere Begrenzung vom AKKU. Bei mir steht der untere Wert auf 15%. Habe aber auch gelesen, das man diesen in den Weniger Sonnen reichen Monaten etwas anheben sollte...
So kann man dies nun bequem über oH machen, vielleicht sogar per Rule.
Leider sind die Growatt listen so unvollständig, oder fehlerhaft, das das sehr mühselig ist, weitere Parameter zu finden.
Ich denke da immer noch an den Dry contakt.
Ich habe mal wieder ein Update, dabei kann ich nun auch mal was in Richtung Growatt senden: Die untere Begrenzung vom AKKU. Bei mir steht der untere Wert auf 15%. Habe aber auch gelesen, das man diesen in den Weniger Sonnen reichen Monaten etwas anheben sollte...
So kann man dies nun bequem über oH machen, vielleicht sogar per Rule.
Code: Alles auswählen
Bridge modbus:tcp:tcpBridge "PV Gateway" [ host="192.168.178.198", port=502, id=1, reconnectAfterMillis=1000 ] {
Bridge poller inputPoller2 "PV Poller2" [ start=0, length=100, refresh=7500, type="input", cacheMillis=100] {
Thing data PV_total "PV_total" [ readStart="2", readValueType="uint16", readTransform="JS:komma.js"]
Thing data PV1_Volt "PV1_Volt" [ readStart="3", readValueType="uint16", readTransform="JS:komma.js"]
Thing data PV_String1 "PV_String1" [ readStart="6", readValueType="uint16", readTransform="JS:komma.js"]
Thing data PV2_Volt "PV2_Volt" [ readStart="7", readValueType="uint16", readTransform="JS:komma.js"]
Thing data PV_String2 "PV_String2" [ readStart="10", readValueType="uint16", readTransform="JS:komma.js"]
Thing data WR_out_AC "WR_out_AC" [ readStart="36", readValueType="uint16", readTransform="JS:komma.js"]
}
Bridge poller inputPoller "PV Poller" [ start=1000, length=100, refresh=5000, type="input", cacheMillis=100] {
Thing data Akku_watt "Akku" [ readStart="1010", readValueType="uint16", readTransform="JS:komma.js"]
Thing data Akku_load "Akku_load" [ readStart="1012", readValueType="uint16", readTransform="JS:komma.js"]
Thing data Akku_Volt "Akku_Volt" [ readStart="1013", readValueType="uint16", readTransform="JS:komma.js"]
Thing data PV_SOC "SOC" [ readStart="1014", readValueType="uint16"]
}
Bridge poller inputPoller4 "PV Poller4" [ start=1000, length=100, refresh=1500, type="input", cacheMillis=100] {
Thing data von_netz "von Netz" [ readStart="1022", readValueType="uint16", readTransform="JS:komma.js"]
Thing data ins_netz "ins Netz" [ readStart="1030", readValueType="uint16", readTransform="JS:komma.js"]
}
Bridge poller inputPoller3 "PV Poller3" [ start=1000, length=100, refresh=300000, type="input", cacheMillis=100] {
Thing data E_to_user "E_to_user_tot" [ readStart="1045", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_to_user_tot "E_to_user_tot" [ readStart="1047", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_to_grid "E_to_grid" [ readStart="1049", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_to_grid_tot "E_to_grid_tot" [ readStart="1051", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_discharge "E_discharge" [ readStart="1053", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_discharge_tot " E_discharge_tot" [ readStart="1055", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_charge "E_charge" [ readStart="1057", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_charge_tot " E_charge_tot" [ readStart="1059", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_local_load "E_local_load" [ readStart="1061", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_local_load_tot " E_local_load_tot" [ readStart="1063", readValueType="uint16", readTransform="JS:komma.js"]
}
Bridge poller inputPoller5 "PV Poller5" [ start=600, length=10, refresh=5000, type="holding"] {
Thing data SOC_set "SOC_set" [ readStart="608", readValueType="uint16", writeStart="608", writeValueType="int16", writeType="holding" ]
}
}
Code: Alles auswählen
// Growatt SPH
Group gGrowatt <solarplant>
// Poller 1
Number Akku_watt "Akku Watt [%.1f W]" <flow> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller:Akku_watt:number"}
Number SOC "Akku SOC [%d %%]" <batterylevel> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller:PV_SOC:number"}
Number Akku_laden "Akku_laden [%.1f W]" <energy> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller:Akku_load:number"}
Number Akku_Volt "Akku Volt [%.1f V]" <energy> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller:Akku_Volt:number"}
// Poller 3
Number E_to_user "Ohne PV [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_to_user:number"}
Number E_to_user_tot "Ohne PV ges. [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_to_user_tot:number"}
Number E_to_grid "Einspeisen [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_to_grid:number"}
Number E_to_grid_tot "Einspeisen ges. [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_to_grid_tot:number"}
Number E_discharge "Aus dem Akku [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_discharge:number"}
Number E_discharge_tot "Aus dem Akku ges. [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_discharge_tot:number"}
Number E_charge "In den Akku [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_charge:number"}
Number E_charge_tot "In den Akku ges. [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_charge_tot:number"}
Number E_local_load "Stromverbrauch [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_local_load:number"}
Number E_local_load_tot "Stromverbrauch ges. [%.1f kWh]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller3:E_local_load_tot:number"}
// Poller 2
Number PV_total "PV total [%.1f W]" <solarplant> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller2:PV_total:number"}
Number PV_String1 "String 1 [%.1f W]" <solarplant> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller2:PV_String1:number"}
Number PV_String2 "String 2 [%.1f W]" <solarplant> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller2:PV_String2:number"}
Number PV1_Volt "PV1 Volt [%.1f V]" <energy> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller2:PV1_Volt:number"}
Number PV2_Volt "PV2 Volt [%.1f V]" <energy> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller2:PV2_Volt:number"}
Number WR_out_AC "WR_out_AC [%.1f W]" <energy> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller2:WR_out_AC:number"}
// Poller 4
Number Netz_Bezug "Netz Bezug [%.1f W]" <returnpipe> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller4:von_netz:number"}
Number Netz_Einspeisung "Netz Einspeisung [%.1f W]" <flowpipe> (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller4:ins_netz:number"}
// Poller 5
Number SOC_set "SOC_set [%]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller5:SOC_set:number"}
Ich denke da immer noch an den Dry contakt.
Gruss mad-mike
openHABian 4.1.2 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.1.2 auf Raspberry Pi 4 Mod. b (8GB)
-
- Beiträge: 408
- Registriert: 6. Jan 2021 18:05
Re: SPH 4600 Growatt Modbus 485 -> openHAB
Moin zusammen...
Bin an anderer Stelle auf die Standby funktion gestoßen, welche ich nun über das Astro Binding steuere.
Anscheind ist es so, das das BMS doch einige Watt über AC zieht mit der Folge das der Akku um bis zu 5 % Steigt.
Mit der Standby funktion:
Die ersten 2tage hatte der akku dann eine Entladung von etwa 8-9 %, was seit dem 3ten Tag sich auf 2% eingestellt hat... (Warum auch immer)
Info:
Sobald der SPH vom Standby in den Aktiv modus wechselt, und der MIN-SOC wert unterschritten ist, lädt er über AC auf. Könnte man aber auch mit einer Rule unterbinden, in dem Man den SOC anpasst.
Ich habe versucht einen Switch mit dem Stand-by modus zu verbinden, aber irgendwie hat das rumgezickt in der Rule. Aktuell sende 0 oder 1, das Funktioniert problemlos.
aktuell:
Ich habe auch gelesen, das man die Ladeleistung AC definieren kann...
Weiss nur noch nicht wie. Ich beabsichtige zu Tibber zu wechseln, so könnte man einen Leeren Akku mal für günstigen Kurs Aufladen oder so. aber bei Werkseinstellung von 300 Watt.... Naja
Bin an anderer Stelle auf die Standby funktion gestoßen, welche ich nun über das Astro Binding steuere.
Anscheind ist es so, das das BMS doch einige Watt über AC zieht mit der Folge das der Akku um bis zu 5 % Steigt.
Mit der Standby funktion:
Die ersten 2tage hatte der akku dann eine Entladung von etwa 8-9 %, was seit dem 3ten Tag sich auf 2% eingestellt hat... (Warum auch immer)
Info:
Sobald der SPH vom Standby in den Aktiv modus wechselt, und der MIN-SOC wert unterschritten ist, lädt er über AC auf. Könnte man aber auch mit einer Rule unterbinden, in dem Man den SOC anpasst.
Ich habe versucht einen Switch mit dem Stand-by modus zu verbinden, aber irgendwie hat das rumgezickt in der Rule. Aktuell sende 0 oder 1, das Funktioniert problemlos.
aktuell:
Code: Alles auswählen
Bridge modbus:tcp:tcpBridge "PV Gateway" [ host="192.168.178.198", port=502, id=1, reconnectAfterMillis=1000 ] {
Bridge poller inputPoller2 "PV Poller2" [ start=0, length=100, refresh=7500, type="input", cacheMillis=100] {
Thing data PV_total "PV_total" [ readStart="2", readValueType="uint16", readTransform="JS:komma.js"]
Thing data PV1_Volt "PV1_Volt" [ readStart="3", readValueType="uint16", readTransform="JS:komma.js"]
Thing data PV_String1 "PV_String1" [ readStart="6", readValueType="uint16", readTransform="JS:komma.js"]
Thing data PV2_Volt "PV2_Volt" [ readStart="7", readValueType="uint16", readTransform="JS:komma.js"]
Thing data PV_String2 "PV_String2" [ readStart="10", readValueType="uint16", readTransform="JS:komma.js"]
Thing data WR_out_AC "WR_out_AC" [ readStart="36", readValueType="uint16", readTransform="JS:komma.js"]
Thing data Temp1 "Temp1" [ readStart="93", readValueType="uint16", readTransform="JS:komma.js"]
Thing data Temp2 "Temp2" [ readStart="94", readValueType="uint16", readTransform="JS:komma.js"]
Thing data Temp3 "Temp3" [ readStart="95", readValueType="uint16", readTransform="JS:komma.js"]
}
Bridge poller inputPoller "PV Poller" [ start=1000, length=100, refresh=5000, type="input", cacheMillis=100] {
Thing data Akku_watt "Akku" [ readStart="1010", readValueType="uint16", readTransform="JS:komma.js"]
Thing data Akku_load "Akku_load" [ readStart="1012", readValueType="uint16", readTransform="JS:komma.js"]
Thing data Akku_Volt "Akku_Volt" [ readStart="1013", readValueType="uint16", readTransform="JS:komma.js"]
Thing data PV_SOC "SOC" [ readStart="1014", readValueType="uint16"]
}
Bridge poller inputPoller4 "PV Poller4" [ start=1000, length=100, refresh=1500, type="input", cacheMillis=100] {
// Thing data only "only" [ readStart="1016", readValueType="uint16", readTransform="JS:komma.js"]
Thing data von_netz "von Netz" [ readStart="1022", readValueType="uint16", readTransform="JS:komma.js"]
Thing data ins_netz "ins Netz" [ readStart="1030", readValueType="uint16", readTransform="JS:komma.js"]
}
Bridge poller inputPoller3 "PV Poller3" [ start=1000, length=100, refresh=300000, type="input", cacheMillis=100] {
Thing data E_to_user "E_to_user_tot" [ readStart="1045", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_to_user_tot "E_to_user_tot" [ readStart="1047", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_to_grid "E_to_grid" [ readStart="1049", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_to_grid_tot "E_to_grid_tot" [ readStart="1051", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_discharge "E_discharge" [ readStart="1053", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_discharge_tot " E_discharge_tot" [ readStart="1055", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_charge "E_charge" [ readStart="1057", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_charge_tot " E_charge_tot" [ readStart="1059", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_local_load "E_local_load" [ readStart="1061", readValueType="uint16", readTransform="JS:komma.js"]
Thing data E_local_load_tot " E_local_load_tot" [ readStart="1063", readValueType="uint16", readTransform="JS:komma.js"]
}
Bridge poller inputPoller5 "PV Poller5" [ start=600, length=10, refresh=5000, type="holding"] {
Thing data SOC_set "SOC_set" [ readStart="608", readValueType="uint16", writeStart="608", writeValueType="int16", writeType="holding" ]
}
Bridge poller inputPoller6 "PV Poller6" [ start=0, length=10, refresh=5000, type="holding"] {
Thing data Standby "Standby" [ readStart="0", readValueType="uint16", writeStart="0", writeValueType="int16", writeType="holding" ]
}
}
Ich habe auch gelesen, das man die Ladeleistung AC definieren kann...
Weiss nur noch nicht wie. Ich beabsichtige zu Tibber zu wechseln, so könnte man einen Leeren Akku mal für günstigen Kurs Aufladen oder so. aber bei Werkseinstellung von 300 Watt.... Naja
Gruss mad-mike
openHABian 4.1.2 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.1.2 auf Raspberry Pi 4 Mod. b (8GB)
-
- Beiträge: 408
- Registriert: 6. Jan 2021 18:05
Re: SPH 4600 Growatt Modbus 485 -> openHAB
Heute mit einigen versuchen das Laden vom AKKU über Netz realisiert.
Dazu habe stellt man den Wechselrichter auf ""BAT-First"" und aktiviert das AC laden... so kann der Akku mit knapp 3kw über Netz geladen werden...
die 3 KW lassen sich auch einstellen, aber soweit bin ich noch nicht...
Jedenfalls mal ein zwischen stand:
Things
Item
Rule manuelles schalten...
funktioniert...
sobald dies aktiviert wird, lädt der Akku, mit 3kw... deaktiviert man den Schalter regelt der Akku wieder im Hausbetrieb nach bedarf.
5947 ist eine Zeitangabe welche 23.59 uhr entspricht. dies kann man auch beeinflussen, habe aber die logik noch nicht verstanden...
Dazu habe stellt man den Wechselrichter auf ""BAT-First"" und aktiviert das AC laden... so kann der Akku mit knapp 3kw über Netz geladen werden...
die 3 KW lassen sich auch einstellen, aber soweit bin ich noch nicht...
Jedenfalls mal ein zwischen stand:
Things
Code: Alles auswählen
Bridge poller inputPoller7 "PV Poller7" [ start=1090, length=15, refresh=5000, type="holding"] {
Thing data 1092 "1092" [ readStart="1092", readValueType="int16", writeStart="1092", writeValueType="int16", writeType="holding" ]
Thing data 1100 "1100" [ readStart="1100", readValueType="int16", writeStart="1100", writeValueType="int16", writeType="holding" ]
Thing data 1101 "1101" [ readStart="1101", readValueType="int16", writeStart="1101", writeValueType="int16", writeType="holding" ]
Thing data 1102 "1102" [ readStart="1102", readValueType="int16", writeStart="1102", writeValueType="int16", writeType="holding" ]
}
Code: Alles auswählen
// Poller 7
Number start_ac "start_ac [%.0f]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller7:1092:number"}
Number bat_start "bat_start [%.0f]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller7:1100:number"}
Number bat_stop "bat_stop [%.0f]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller7:1101:number"}
Number ac_load "ac_load [%.0f]" (gGrowatt) {channel="modbus:data:tcpBridge:inputPoller7:1102:number"}
Switch Netz_laden "Netz_laden" (gGrowatt)
Code: Alles auswählen
rule "AC_Laden"
when
Item Netz_laden changed
then
if((Netz_laden.state != OFF)){
bat_start.sendCommand(0)
Thread::sleep(500)
bat_stop.sendCommand(5947)
Thread::sleep(500)
ac_load.sendCommand(1)
Thread::sleep(500)
start_ac.sendCommand(1)
}
else
{
bat_start.sendCommand(0)
Thread::sleep(500)
bat_stop.sendCommand(0)
Thread::sleep(500)
ac_load.sendCommand(0)
Thread::sleep(500)
start_ac.sendCommand(0)
}
end
funktioniert...
sobald dies aktiviert wird, lädt der Akku, mit 3kw... deaktiviert man den Schalter regelt der Akku wieder im Hausbetrieb nach bedarf.
5947 ist eine Zeitangabe welche 23.59 uhr entspricht. dies kann man auch beeinflussen, habe aber die logik noch nicht verstanden...
Gruss mad-mike
openHABian 4.1.2 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.1.2 auf Raspberry Pi 4 Mod. b (8GB)
- udo1toni
- Beiträge: 14057
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: SPH 4600 Growatt Modbus 485 -> openHAB
Wilde Vermutung zur 5947: es handelt sich um einen HEX-Wert, daraus ergäbe sich
24 Stunden * 60 Minuten * 16 = 23040 -> 0x5A00. Der höchste Wert wäre dann 0x59FF.
24 Stunden * 60 Minuten * 16 = 23040 -> 0x5A00. Der höchste Wert wäre dann 0x59FF.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet
-
- Beiträge: 408
- Registriert: 6. Jan 2021 18:05
Re: SPH 4600 Growatt Modbus 485 -> openHAB
Moin.
Also es ist aufgeschlüsselt:
Stunden x 256 + Minuten.
So in etwa zumindest
... Das ist mir viel zu kompliziert.
Also es ist aufgeschlüsselt:
Stunden x 256 + Minuten.
So in etwa zumindest
... Das ist mir viel zu kompliziert.
Gruss mad-mike
openHABian 4.1.2 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.1.2 auf Raspberry Pi 4 Mod. b (8GB)
- udo1toni
- Beiträge: 14057
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: SPH 4600 Growatt Modbus 485 -> openHAB
Ja, auch eine Variante... es handelt sich also um zwei Byte, das höherwertige Byte gibt die Stunden an, das niederwertige Byte die Minuten.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet