Verbesserte ModBus Anbindung (IP-Symcon 7.0)

Das ist korrekt. Wenn der User es jedoch explizit anstößt - so wie von mir gewünscht - dann liegt es ja in seiner Hoheit.

Ich hatte mal eine Funktion vorbereitet, die hat das erledigt, aber dann kamen die virtuellen Adressen hinzu. Die machen es komplizierter.:grinning:

Hallo,

ich habe ein ModBus-Gerät angelegt und mehrere Variablen (Register) darunter.
Manche nur lesen, manche nur schreiben. Soweit scheint alles zu funktionieren.
Jetzt möchte ich gerne aus einem Skript heraus einen Wert schreiben und komme nicht dahinter wie das funktioniert…
Kann mir bitte jemand auf die Sprünge helfen

RequestAction auf die Variable :slight_smile:

paresy

:face_with_spiral_eyes:

DANKE! Da hätte ich aber auch selbst draufkommen können

2 „Gefällt mir“

Jetzt hab ich noch Register in meinem Gerät hinzugefügt die nur zum Schreiben sind.
Warum werden die nicht als Variable unterhalb des Gerätes angelegt und nicht unter „Befehl testen“ angeboten?

Magst du mal versuchen diesen Adressen einen Ident zu geben?

paresy

Ah, dann funktioniert das!
War mir nicht klar

DANKE!

Ich möchte gerne meine SMA Batterie zum Laden aus dem Netz bewegen. Dazu gibt es verschiedene ModBus Werte, die man schreiben muss. Soweit alles klar.

Aber: die Adressen sind write-only. Wenn ich die nun in der ModBus Geräteinstanz anlege, dann werden keine Variablen angelegt, da sie ja nur schreibbar sind. Wie schreibe ich die Werte aber nun? Ich habe auch keine Funktion gefunden :thinking:

Es geht um die letzten sechs Adressen. Irgendetwas übersehe ich bestimmt.

EDIT: Die Lösung war super versteckt :slight_smile:

Ich habe den gleichen Wunsch, und soweit ich in Erfahrung gebracht habe soll man zyklisch 2 Register
schreiben

1x 40149 auf Wert 802
1x 40151 auf den gewünschten Wert in Watt, aber mit negativen Vorzeichen.

Das hört sich nicht gut an.

Zumindest für meinen Wechselrichter SBS 6.0-10 gelten wohl laut Doku die oben genannten Register.

1 „Gefällt mir“

Ich habe gerade die Doku offen, ich glaube du hast Recht.
wie hast du das jetzt genau gelöst ?

Mein Vorstellung ist, die Werte über RequestAction wie folgt zu setzen.

Battery Mode
1 #normal

40236 writemultiple	uint32	2424 	OpMode (2424 = Voreinstellung)
40793 writemultiple	uint32	0	Minimale Batterieladeleistung
40795 writemultiple	uint32	6000 	Maximale Batterieladeleistung
40797 writemultiple	uint32	0 	Minimale Batterieentladeleistung
40799 writemultiple	uint32	6000 	Maximale Batterieentladeleistung
40801 writemultiple	uint32	0 	Sollwert der Netzaustauschleistung

2 #hold
40236 writemultiple	uint32	2424 	OpMode (2424 = Voreinstellung) 
40793 writemultiple	uint32	0	Minimale Batterieladeleistung
40795 writemultiple	uint32	0	Maximale Batterieladeleistung
40797 writemultiple	uint32	0	Minimale Batterieentladeleistung
40799 writemultiple	uint32	0	Maximale Batterieentladeleistung
40801 writemultiple	uint32	0	Sollwert der Netzaustauschleistung

3 #charge
40236 writemultiple	uint32	2289 	OpMode (2289 = Batterie laden) 
40793 writemultiple	uint32	6000	Minimale Batterieladeleistung
40795 writemultiple	uint32	6000	Maximale Batterieladeleistung
40797 writemultiple	uint32	0	Minimale Batterieentladeleistung
40799 writemultiple	uint32	0	Maximale Batterieentladeleistung
40801 writemultiple	uint32	0	Sollwert der Netzaustauschleistung

Das ist wohl auch der Weg von evcc.

Edit: ich habe noch etwas experimentiert und die hier genannten Werte funktionieren :smiling_face:

@paresy Gibt es zu dem Thema „virtuelle Adressen aktualisieren nicht wenn man nur Datenblöcke läd“ schon etwas neues? Hatte gehofft das ginge inzwischen, aber musste leider feststellen das es wohl noch nicht angepasst wurde. Wechselrichter mit sunspec int+SF zB kann man so mit dem standard modbus device nicht zuverlässig lesen; damit das klappt müssten in einer „atomischen operation“ die beiden register für value & scalefactor gelesen werden (geht mit datenblöcken), und dann direkt auf die virtuelle adresse kombiniert werden, damit man sich zuverlässig an das update event von der einen kombinierten variable subscriben kann :slight_smile:

Da hänge ich mich auch gleich dran… ich hatte vor ein paar Monaten auch nochmals nachgefragt, aber bisher keine Antwort erhalten…