Autor Thema: Photovoltaik Eigenverbrauch,Bilanz,Prognose (Kostal Plenticore; KSEM; BYD HV)  (Gelesen 43556 mal)

Offline ch.eick

  • Hero Member
  • *****
  • Beiträge: 2141
Antw:Batteriestatus (Normal, Ruhemodus 1, Ruhemodus 2) abfragen
« Antwort #360 am: 25 November 2021, 10:05:23 »
Das einzige was mir jetzt noch fehlt ist der Batteriestatus, also Normal, Ruhemodus 1, Ruhemodus 2.

In der Weboberfläche vom Plenticore findet man den Status unter Momentanwerte->Batterie.

FHEM liest Batterie_state aus, der steht bei mir aber immer auf NaN, was immer das heißen soll.

Bekommt jemand den Betteriestatus und wenn ja, wie?

Liebe Grüße
Oli
Hallo Oli,

leider sind einige ModBus Register zwar benannt, aber momentan wohl vom Plenticore noch nicht korret gefüllt oder verwendet.
NaN könnte "not actualy named" bedeuten, aber sicher bin ich mir da nicht.

Hier ist die gewünsche Information
WR_1_API Battery_EM_State Normal

reading25Name    Battery_EM_State
reading25OMap    0:Normal,8:Ruhe1,16:Ruhe2,32:Ausgleichsladung,64:Tiefentladeschutz
reading25Regex   EM_State.*value":(\d+)
Ich werde mal schauen, wo es ins stateFormat noch rein passt.

Gruß
     Christian

EDIT: Der Speicher Status wird jetzt im WR_1 Device mit angezeigt. Das geht aber nur, wenn es das WR_1_API Device ebenfalls gibt, allerdings passte es da nicht so dolle ins stateFormat. Plaziert habe ich es in der letzten Zeile zum Speicher Status (Laden/Entladen/Standby) in eine zusätzliche Unterzeile.
Das neue stateFormat steht dann im Wiki beim WR_1 Device.

Auch im WR_1_Speicher_1_ExternControl ist es jetzt im uiTable mit untergebracht.
« Letzte Änderung: 25 November 2021, 10:35:29 von ch.eick »
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline ojb

  • Full Member
  • ***
  • Beiträge: 149
Ich hab das API Device noch nicht eingebaut, weil ich eigentlich alles aus dem Nicht-API bekomme.
Hab ich das richtig verstanden, ohne API-Device geht es nicht, oder?
FHEM unter Debian auf Asus EEBox: KNX (Wetterstation, Rollläden, Beleuchtung), Maple-CUN (Temperatur und Feuchte über 1-Wire, Intertechno-Funksteckdosen), PV-Anlage mit Plenticore und BYD, Viessmann Wärmepumpe, 1-Wire (Temperatur, Feuchte, Stromverbrauch), Husquarna-Automower, ...

Offline ch.eick

  • Hero Member
  • *****
  • Beiträge: 2141
Ich hab das API Device noch nicht eingebaut, weil ich eigentlich alles aus dem Nicht-API bekomme.
Hab ich das richtig verstanden, ohne API-Device geht es nicht, oder?
Es geht nicht, da ModBus diesen Wert noch nicht liefert.

Mit der API bekommst Du aber noch die ganzen Statistiken und Du könntest z.B. den Speicher steuern.
Die Screenshots im Wiki hatte ich erst vor kurzem aktualisiert.

VG
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline papa

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2003
Doch das steht im Register 104 - "State of energy manager".
Der Name ist komplett bullshit. Die Werte sind laut Kostal-ModBus-PDF folgende:
0x00 Idle
0x01 n/a
0x02 Emergency Battery Charge
0x04 n/a
0x08 Winter Mode Step 1
0x10 Winter Mode Step 2
Ich habe es so eingebunden:
obj-h104-format     %d
obj-h104-reading    Battery_mode
obj-h104-revRegs   0
obj-h104-unpack    N
Eigentlich wollte ich die Werte auch noch mit einem obj-h104-map entsprechend umsetzen. Das klappt aber komischweise bei mir nicht.
obj-h104-map   0:Idle, 2:Emergency Charge, 8:Sleep1, 16:Sleep2
Sobald ich das drin habe, wird nur noch 0 angezeigt :-(
Jetzt habe ich aktuell gerade eine 8 :-(
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Offline ch.eick

  • Hero Member
  • *****
  • Beiträge: 2141
Doch das steht im Register 104 - "State of energy manager".
Der Name ist komplett bullshit. Die Werte sind laut Kostal-ModBus-PDF folgende:
0x00 Idle
0x01 n/a
0x02 Emergency Battery Charge
0x04 n/a
0x08 Winter Mode Step 1
0x10 Winter Mode Step 2
Ich habe es so eingebunden:
obj-h104-format     %d
obj-h104-reading    Battery_mode
obj-h104-revRegs   0
obj-h104-unpack    N
Eigentlich wollte ich die Werte auch noch mit einem obj-h104-map entsprechend umsetzen. Das klappt aber komischweise bei mir nicht.
obj-h104-map   0:Idle, 2:Emergency Charge, 8:Sleep1, 16:Sleep2
Sobald ich das drin habe, wird nur noch 0 angezeigt :-(
Jetzt habe ich aktuell gerade eine 8 :-(

Hallo papa

Klasse, das hatte ich noch gar nicht gesehen.
Für das WR_1 Device wäre es dann folgende Änderung.
Ich denke das mit dem obj-h104-map könnte an den Blanks liegen. Nimm die mal raus und teste es, da ich bei mir den Ruhe Modus gleich wieder zurück setze.
Ich habe mal die Modie aus dem API Device al Mapping genommen, da stehen etwas mehr drin, aber ob die so passen kann ich nicht sagen.
attr WR_1 obj-h104-format %s
attr WR_1 obj-h104-map 0:Normal,8:Ruhe1,16:Ruhe2,32:Ausgleichsladung,64:Tiefentladeschutz
attr WR_1 obj-h104-reading State_of_EM
attr WR_1 obj-h104-revRegs 0
attr WR_1 obj-h104-unpack N

EDIT: Ich habe das mal ins Wiki übernommen, obwohl der Test noch aussteht.
« Letzte Änderung: 25 November 2021, 17:21:44 von ch.eick »
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline papa

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2003
Das format war es
attr WR_1 obj-h104-format %s
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline ch.eick

  • Hero Member
  • *****
  • Beiträge: 2141
Das format war es
attr WR_1 obj-h104-format %s
Hast Du die Status auch mal gechecked? Ich habe ja einige mehr in der API definiert.
« Letzte Änderung: 25 November 2021, 19:54:21 von ch.eick »
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline papa

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2003
Ich habe meine Map wieder drin. Das sind die Werte aus der ModBus-Doku.
Zur Zeit ist bei mir Sleep1 aktiv :-(
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Offline ch.eick

  • Hero Member
  • *****
  • Beiträge: 2141
Ich habe meine Map wieder drin. Das sind die Werte aus der ModBus-Doku.
Zur Zeit ist bei mir Sleep1 aktiv :-(
Dann passt ja wenigstens die "map" ;-)
Falls Du nachts auch noch Notladung hast, sollte das in der LogDB eventuell auch mal als Stutus zu sehen sein.
Mit dem Installateur Key könntest Du einen Reset des Speichers machen, aber das löst sich auch wieder selber auf. Berichte bitte mal wie lange es gedauert hat.
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline papa

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2003
Notladung habe ich nicht, - Min-Soc staht auf 20 und derzeit hat er den Akku auch schon wieder bis 65% geladen. Er nutzt den Akku halt in Sleep1 halt nicht.
Den magischen Installateur Key habe ich leider nicht.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Offline ojb

  • Full Member
  • ***
  • Beiträge: 149
Hallo Leute, ich habe es eingebaut. Funktioniert super. Danke dafür. Bin jetzt auf 'Ruhemodus 2'. Interessant ist auch dass 'Actual_Battery_charge_usable_P' auch auf 0 ist, was natürlich richtig ist, da im Ruhemodus kein Entladen möglich ist. Ich hatte gestern eine Ladung aus dem Netz, das kommt bestimmt wieder. Werde dann berichten ob alles korrekt angezeigt wird.
FHEM unter Debian auf Asus EEBox: KNX (Wetterstation, Rollläden, Beleuchtung), Maple-CUN (Temperatur und Feuchte über 1-Wire, Intertechno-Funksteckdosen), PV-Anlage mit Plenticore und BYD, Viessmann Wärmepumpe, 1-Wire (Temperatur, Feuchte, Stromverbrauch), Husquarna-Automower, ...

Offline ch.eick

  • Hero Member
  • *****
  • Beiträge: 2141
Hallo Leute, ich habe es eingebaut. Funktioniert super. Danke dafür. Bin jetzt auf 'Ruhemodus 2'. Interessant ist auch dass 'Actual_Battery_charge_usable_P' auch auf 0 ist, was natürlich richtig ist, da im Ruhemodus kein Entladen möglich ist. Ich hatte gestern eine Ladung aus dem Netz, das kommt bestimmt wieder. Werde dann berichten ob alles korrekt angezeigt wird.
Du solltest den MinSOC auf 20% stellen, das ist die Empfehlung von Kostal für den Winter.

Meine externe Speichersteuerung macht das anhand der Leistungsprognose automatisch.
Auch ein smart_Laden erfolgt über die Leistungsprognose und verhindert ein Entladen des Speichers im Winter, wenn zu wenig Leistung vom Dach kommt. Dadurch wird der Speicher dann ab und zu mal wieder auf 100% gefüllt, was für eine korrekte SOC Berechnung wichtig ist. So hast Du auch im Winter mal einen Vollzyklus des Speichers.

Das Actual_Battery_charge_usable_P ist ein von mir berechnetes userReadings. Schau mal ob bei Dir gerade Act_state_of_charge auf 0 steht, das würde die Berechnung dann auch auf 0 setzen.
Der Actual_Battery_charge_usable_P ist nur ein Schätzwert, wieviel man dem Speicher noch entnehmen kann und erleichtert etwas die Planung.
« Letzte Änderung: 26 November 2021, 12:59:34 von ch.eick »
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline ojb

  • Full Member
  • ***
  • Beiträge: 149
Ich hab die Formel etwas abgeändert:
Actual_Battery_charge_usable_P:[Act_state_of_charge|Battery_MinSOC].* {my $x = (12800*(ReadingsVal($NAME,"Act_state_of_charge",0)-ReadingsVal($NAME,"Battery_MinSOC",0))/100);;;; ($x lt 0)? 0 : round($x,0) },Und zwar hab ich die Kapa hardgecoded, weiß aber gar nicht mehr genau, warum.
Bei mir steht jetzt Battery_MinSOC = Act_state_of_charge, deshalb 0.
Scheinbar steuert Ruhemodus den Battery_MinSOC. Im Wechselrichter hab ich 10% angegeben.
Aber guter Hinweis, ich stelle mal auf 20%.
FHEM unter Debian auf Asus EEBox: KNX (Wetterstation, Rollläden, Beleuchtung), Maple-CUN (Temperatur und Feuchte über 1-Wire, Intertechno-Funksteckdosen), PV-Anlage mit Plenticore und BYD, Viessmann Wärmepumpe, 1-Wire (Temperatur, Feuchte, Stromverbrauch), Husquarna-Automower, ...

Offline ch.eick

  • Hero Member
  • *****
  • Beiträge: 2141
Ich hab die Formel etwas abgeändert:
Actual_Battery_charge_usable_P:[Act_state_of_charge|Battery_MinSOC].* {my $x = (12800*(ReadingsVal($NAME,"Act_state_of_charge",0)-ReadingsVal($NAME,"Battery_MinSOC",0))/100);;;; ($x lt 0)? 0 : round($x,0) },Und zwar hab ich die Kapa hardgecoded, weiß aber gar nicht mehr genau, warum.
Bei mir steht jetzt Battery_MinSOC = Act_state_of_charge, deshalb 0.
Scheinbar steuert Ruhemodus den Battery_MinSOC. Im Wechselrichter hab ich 10% angegeben.
Aber guter Hinweis, ich stelle mal auf 20%.
Das mit der festn Kapazität hatte ich am Anfang drin, was dann aber durch die tatsächliche, als Variable, ausgetauscht wurde. Das dient der Portierbarkeit.
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP

Offline ch.eick

  • Hero Member
  • *****
  • Beiträge: 2141
Moin zusammen,
auch bei mir ist der Speicher jetzt mal in Ruhe1 gefallen. Ich schau mir dann mal an, wie lange das so bleibt.

EDIT:
Und schon ist wieder alles gut :-) Bei erreichen von 50% und mehr PV Leistung ging der Ruhe1 Modus wieder weg.
Somit ist mein Rückschluss, wenn wir Prognose bedingt das Entladen mit unserer smart_Laden Schaltung unterbinden werden wir weniger Ruhe1 Phasen haben,
da wir ja schon frühzeitig dem Speicher sagen, er solle nur noch laden.

Im Diagramm kann man sehr schön sehen, dass gegen 15:00 Uhr der Ruhe1 Modus beendet wurde.
Ab 11:40 wurde wohl bei 50% Act_state_of_charge wieder angezeigt.
               <<< Korrektur: in der DB ist Act_state_of_charge durchgängig zu sehen, dann muss wohl Battery_work_capacity auf 0 gewesen sein ???
Durch mein smart_Laden wurde jedoch erst noch weiter geladen, da das ja auch noch aktiv war.
Dann muss es gegen 14:58 Uhr noch eine Korrektur des SOC gegeben haben, da der dann auf 100% gesprungen ist. In der PV Leistung war kurz zuvor noch ein Peak nach oben.

Um 15:15 wurde dann die Heizung und das Pool heizen wieder ordentlich unterstützt, genau so liebe ich es :-)

VG
  Christian
« Letzte Änderung: 27 November 2021, 16:14:26 von ch.eick »
RPI4; Docker; CUNX; Eltako FSB61NP; 230V zentral verschaltet; SamsungTV H-Serie; DLNARenderer; TV.pl;  Sonos; Vallox; Luxtronik; 2x FB7490; Stromzähler mit DvLIR; wunderground; clever-tanken; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP