Hallöle
Ich möchte meine SAX Batterie in FHEM einbinden.
https://sax-power.net/wp-content/uploads/2022/03/SAX-Homespeicher-Handbuch.pdf
Mit modbus soll das gehen, aber wie genau?
Mein Stand: define SAX-Power ModbusAttr 1 20 192.168.178.49:3600 TCP
state opened - keine Readings. Hat jemand Tipps?
mit freundlichen Grüßen vom Bodensee
Martin Hehl
Moin,
du solltest auch die Modbus Register definieren, welche du auslesen möchtest
Beispiel:
attr SAX-Power obj-h46-reading SOC
attr SAX-Power obj-h46-expr $val
attr SAX-Power obj-h47-reading Leistung_Speicher
attr SAX-Power obj-h47-expr $val
attr SAX-Power obj-h48-reading Leistung_Meter
attr SAX-Power obj-h48-expr $val
Grüße,
stephan
Hallo zusammen,
ich habe mir auch einen solchen Stromspeicher zugelegt und scheitere leider an der Kommuniktion mit dem Teil.
Eingebunden habe ich den Speicher mit ModbusAttr:
Internals:
DEF 2 20 192.168.1.XXX:3600 RTU
DeviceName 192.168.1.XXX:3600
EXPECT idle
FUUID 6722152d-f33f-547b-20c3-edeec1d788202a60
FVERSION 98_ModbusAttr.pm:0.277000/2023-06-23
IODev SAX_Power
Interval 20
LASTOPEN 1732613196.94365
MODBUSID 2
MODE master
MODULEVERSION Modbus 4.5.6 - 7.11.2023
NAME SAX_Power
NEXT_OPEN 1732613257.03857
NOTIFYDEV global
NR 696
NTFY_ORDER 50-SAX_Power
PARTIAL
PROTOCOL RTU
STATE disconnected
TCPConn 1
TYPE ModbusAttr
devioLoglevel 3
devioNoSTATE 1
eventCount 56
nextOpenDelay 60
FRAME:
QUEUE:
READ:
READINGS:
2024-11-26 10:26:37 state disconnected
UPDATECACHE:
defptr:
SAX_Power 2
lastRead:
Attributes:
DbLogExclude .*
enableControlSet 1
obj-h46-expr $val
obj-h46-reading SOC
obj-h47-expr $val
obj-h47-reading Leistung_Speicher
obj-h48-expr $val
obj-h48-reading Leistung_Meter
room Draussen->06-Solar
userReadings obj-h46-expr obj-h46-reading obj-h47-expr obj-h47-reading obj-h48-expr obj-h48-reading
verbose 5
State steht auf disconnected.
Mach ich da was falsch????
Ne schöne jroß us Kölle
Thomas
Hallo,
ich habe bisher noch keinen SAX Speicher - überlege aber, einen solchen anzuschaffen. Deshalb bin ich auf dieses Topic gestoßen.
-> Läuft die Anbindung inzwischen und ggf. wie?
Ansonsten hätte ich möglicherweise folgende Hinweise (die ich mangels eigenem System natrürlich nicht ausprobieren kann - deshalb Alles ohne Gewähr)
Im Manual der SAX zu SAX Power Home steht - nach meinem Verständis -..
- Protokoll ist TCP (mit Standardport 502)
- die Slave-ID ist 64
Dann würde ich versuchen:
define SAX-Power ModbusAttr 1 64 192.168.178.xy:502 TCP
Die Register sind mit Typ uint16 angegeben
dann würde ich versuchen, diesen Typ zu definieren:
dev-type-uint16-len 2
dev-type-uint16-unpack nn
obj-h46-reading SOC
obj-h46-type uint16
...
Falls das noch jemand interessiert, bitte Feedback, ob es funktioniert.
Ich habe nun einen SAX und konnte diesen einbinden.
Ich habe die Steuerung per SAX-Smartmeter gewählt.
Bzgl. Vorgabe des Ladestromes per TCP steht im Handbuch, dass die Anpassung nur mit etwa 30W/sec erfolgt.
Das ist mir zu langsam.
Die ebenfalls im Handbuch erwähnte immediate-Variante ist (anscheinend seit längerer Zeit) nicht verfügbar.
-> Ich begrenze nur die Beladung, um den Speicher möglichst spät bzw. nur bei drohender Wirkleistungsbegrenzung zu laden.
Dazu ist die Freigabe des Schreibens der Register 43/44 notwendig, die man selbst in der SAX-App vornehmen kann.
---
Es gibt einige Besonderheit:
Schreiben erfolgt mit fc 16 (0x10). Der SAX gibt dann aber keinen Wert zurück.
Deshalb setze ich in meiner Ladesteuerung den Wert des Readings "Grenzwert_Beladung_W44" nach dem set zusätzlich selbst, damit der letzte Wert sichtbar ist.
Die Adressen der holding-Register habe ich nach folgender Logik bestimmt:
0x400+Dezimalwert aus dem Handbuch, d.h. z.B. 16384+44=16428 für Grenzwert_Beladung_W44
defmod SAX ModbusAttr 64 30 192.xxx.xxx.xxx:502 TCP
attr SAX dev-h-combine 6
attr SAX dev-h-defPoll 1
attr SAX dev-h-defShowGet 1
attr SAX dev-h-write 16
attr SAX obj-h16427-poll 0
attr SAX obj-h16427-reading Grenzwert_Entladung_W43
attr SAX obj-h16428-poll 0
attr SAX obj-h16428-reading Grenzwert_Beladung_W44
attr SAX obj-h16428-set 1
attr SAX obj-h16429-map 1:Aus, 2:Ein, 3:Verbunden
attr SAX obj-h16429-reading Schaltzustand_45
attr SAX obj-h16430-reading SOC_Proz46
attr SAX obj-h16431-expr $val -16384
attr SAX obj-h16431-reading Leistung_SpeicherW47
attr SAX obj-h16432-expr $val -16384
attr SAX obj-h16432-reading Leistung_SmartmeterW48
attr SAX propagateVerbose 1
Laut Handbuch gibt es noch eine ModbusID 40 mit Sunspecs-Werten - es ist mir aber nicht gelungen, diese (mit analoger Logik) anzusprechen.
-> Falls jemand das geschafft hat, wäre ich für Hinweise dankbar.