Seite 1 von 1

Negative Werte via Modbus senden

Verfasst: 15. Mai 2022 08:30
von TurboMOD
Hallo Zusammen,
ich hatte vor einiger Zeit meinen Batteriewechselrichter (Victron Multiplus) via Modbus in openhab eingebunden. Das Ganze funktioniert soweit super, nur an einer Stelle komme ich nicht weiter. Ich lese den aktuellen Status (Laden/Entladen/Standby) aus und setze dementsprechend den Netzsollwert.

Beispiel: Beim Status Entladen, soll er auf 50W regeln, um Aufgrund der Trägheit/Schwankungen nicht unnötig Akkukapazität ins Netz zu schieben.
Beim Status Laden würde ich jetzt gerne -50W haben. Aber sobald die Werte ein negatives Vorzeichen bekommen, passiert nichts.

Im Log Viewer erscheint eine Meldung:

Code: Alles auswählen

2022-05-15 08:03:36.835 [WARN ] [internal.defaultscope.ScriptBusEvent] - Command '-50.0' cannot be parsed for item 'ModbusDataVictronSettingsgridsetpoint_ValueasDimmer (Type=DimmerItem, State=0.0, Label=setpoint_grid_write, Category=, Tags=[Point], Groups=[Victron_Multiplus_2])'.
Im thing "Modbus_Data_Victron_Settings_grid_setpoint" habe ich unter Write Value Type "16bit positive or negative integer, 1 register (int16, uint16)" eingestellt.

Kann mir Jemand sagen, wie ich openhab dazu überreden kann, negative Werte an den Wechselrichter zu senden?

Re: Negative Werte via Modbus senden

Verfasst: 15. Mai 2022 12:01
von udo1toni
Ein Dimmer kann nur die Werte 0 bis 100 annehmen. Dein Item ModbusDataVictronSettingsgridsetpoint_ValueasDimmer ist ein Dimmer Item. Keine Ahnung, warum Du das Item als Dimmer definiert hast :) aber es gäbe auch noch den Itemtyp Number, der mit Float Zahlen umgehen kann. Integer ist eine Teilmenge von Float :).
Der Channel muss ebenfalls vom Typ Number sein.

Re: Negative Werte via Modbus senden

Verfasst: 15. Mai 2022 13:09
von TurboMOD
Ich hatte verschiedene Typen ausprobiert und Dimmer war scheinbar der einzige bei dem sich etwas tat :? :D
Ich habe das Item mal auf Number geändert und testweise -500 geschickt:

Code: Alles auswählen

2022-05-15 12:59:20.194 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'ModbusDataVictronSettingsgridsetpoint_ValueasDimmer' received command -500
2022-05-15 12:59:20.196 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'ModbusDataVictronSettingsgridsetpoint_ValueasDimmer' predicted to become -500
2022-05-15 12:59:20.201 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ModbusDataVictronSettingsgridsetpoint_ValueasDimmer' changed from 0 to -500
2022-05-15 12:59:20.544 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ModbusDataVictronSettingsgridsetpoint_ValueasDimmer' changed from -500 to 0
EDIT: Hab`s gefunden, es reicht nicht, das Item zu ändern. Im Channel stand auch Dimmer drin. Vielen Dank :)

Re: Negative Werte via Modbus senden

Verfasst: 15. Mai 2022 19:38
von udo1toni
TurboMOD hat geschrieben: 15. Mai 2022 13:09 Hab`s gefunden, es reicht nicht, das Item zu ändern. Im Channel stand auch Dimmer drin. Vielen Dank :)
Ja, das hatte ich im Posting erwähnt:
udo1toni hat geschrieben: 15. Mai 2022 12:01 Der Channel muss ebenfalls vom Typ Number sein.

Re: Negative Werte via Modbus senden

Verfasst: 11. Jun 2022 16:55
von TurboMOD
Irgend etwas habe ich da scheinbar immer noch übersehen. Im Log Viewer taucht immer wieder folgende Meldung auf:

Code: Alles auswählen

2022-06-11 16:37:35.523 [WARN ] [ernal.handler.ModbusDataThingHandler] - Channel rollershutter will not be updated since transformation was unsuccessful. Channel is expecting the following data types [PercentType, UpDownType, UnDefType]. Input data: number value -50 (value type 'int16' taken into account) and bool value true. Transformation: <identity>
Der Wert -50 wird hier erzeugt:

Code: Alles auswählen

events.sendCommand('ModbusDataVictronSettingsgridsetpoint_ValueasNumber', '-50');
Channel und Item hatte ich ja bereits auf den Typ Number geändert :?

Re: Negative Werte via Modbus senden

Verfasst: 11. Jun 2022 22:34
von udo1toni
Nein, Du hast da irgendwo Dimmer oder Rollershutter verwendet. (PercentType und UpDownType deuten auf Rollershutter hin)