Bei Problemen mit o.a. Plugin hier rein damit :-)
Ankündigung
Einklappen
Keine Ankündigung bisher.
Supportthread für SMA_MB Plugin
Einklappen
X
-
Moin, danke für das Release und die tolle Arbeit. Hab jetzt auch angefangen umzustellen. Ich nutze das neue Image und fast alles funktioniert out of the box.
Ein Plugin funktioniert nicht und in Endlosschleife läuft das logfile voll.
Ich nutze zwei Wechselrichter also zwei Instanzen vom SMA Plugin.
Config bzw. das komplette config file habe ich aus der alten Version übernomen. Jetzt weiß ich nicht ob es am Image, am Plug-In, SHNG oder an mir liegt
Hat wer eine Idee?
Code:2025-06-05 20:44:28 ERROR lib.scheduler.tasks Method plugins.sma_mb_tp15000.poll_SMAModbus exception: ModbusTcpClient.__init__() takes 2 positional arguments but 3 were given Traceback (most recent call last): File "/usr/local/smarthome/lib/scheduler.py", line 806, in _task obj() File "/usr/local/smarthome/plugins/sma_mb/__init__.py", line 173, in poll_device client = ModbusTcpClient(self._host, self._port) TypeError: ModbusTcpClient.__init__() takes 2 positional arguments but 3 were given 2025-06-05 20:44:28 ERROR lib.scheduler.tasks Method plugins.sma_mb_tp3000.poll_SMAModbus exception: ModbusTcpClient.__init__() takes 2 positional arguments but 3 were given Traceback (most recent call last): File "/usr/local/smarthome/lib/scheduler.py", line 806, in _task obj() File "/usr/local/smarthome/plugins/sma_mb/__init__.py", line 173, in poll_device client = ModbusTcpClient(self._host, self._port) TypeError: ModbusTcpClient.__init__() takes 2 positional arguments but 3 were given 2025-06-05 20:44:39 ERROR lib.scheduler.tasks Method plugins.sma_mb_tp15000.poll_SMAModbus exception: ModbusTcpClient.__init__() takes 2 positional arguments but 3 were given
Zapft ihr Narren der König hat Durst
-
Auf die Schnelle würde ich sagen Du kannst im Plugin in der __init__.py die Zeile 173 bearbeiten und dort schreiben
client = ModbusTcpClient(self._host, port=self._port)
dann könnte das Plugin wieder funktionieren. Allerdings weiß ich nicht, ob die eingetragenen Maintainer das Plugin auch nutzen oder sich nur dessen angenommen haben weil es niemand gibt der das wartet oder testet.
Ich vermute das es auf Dauer Sinn machen könnte die Einstellungen auf das modbus_tcp Plugin zu übertragen und damit zu arbeiten.
Sag' mal Bescheid ob es klappt, dann fixe ich das im Plugin in develop.
Schau doch dann bitte auch noch im Scheduler via Admin Interface ob Du zweimal den gleichen Eintrag für das Plugin bekommst oder nur einmal...
Kommentar
-
Moin, danke für deine Hilfe. Die Endlosschleife ist weg und ich bekomme eine andere Fehlermeldung
Code:2025-06-06 07:26:28 ERROR plugins.sma_mb tp15000@: poll_device: Item tp15000.status - Error trying to get result, got Exception ModbusClientMixin.read_holding_registers() takes 2 positional arguments but 3 positional arguments (and 1 keyword-only argument) were given 2025-06-06 07:26:28 ERROR plugins.sma_mb tp15000@: poll_device: Item tp15000.isolationswiderstand_temp - Error trying to get result, got Exception ModbusClientMixin.read_holding_registers() takes 2 positional arguments but 3 positional arguments (and 1 keyword-only argument) were given 2025-06-06 07:26:28 ERROR plugins.sma_mb tp15000@: poll_device: Item tp15000.netzrelais_status - Error trying to get result, got Exception ModbusClientMixin.read_holding_registers() takes 2 positional arguments but 3 positional arguments (and 1 keyword-only argument) were given 2025-06-06 07:26:28 ERROR plugins.sma_mb tp15000@: poll_device: Item tp15000.ac_energie_total - Error trying to get result, got Exception ModbusClientMixin.read_holding_registers() takes 2 positional arguments but 3 positional arguments (and 1 keyword-only argument) were given 2025-06-06 07:26:28 ERROR plugins.sma_mb tp15000@: poll_device: Item tp15000.ac_energie_tag_temp - Error trying to get result, got Exception ModbusClientMixin.read_holding_registers() takes 2 positional arguments but 3 positional arguments (and 1 keyword-only argument) were given 2025-06-06 07:26:28 ERROR plugins.sma_mb tp15000@: poll_device: Item tp15000.zeit_betrieb - Error trying to get result, got Exception ModbusClientMixin.read_holding_registers() takes 2 positional arguments but 3 positional arguments (and 1 keyword-only argument) were given
Angehängte DateienZapft ihr Narren der König hat Durst
Kommentar
-
Sieht gut aus. Wechselrichter ist wieder erreichbar.
Log file läuft aber jetzt mit folgenden Meldungen voll:
Code:Please use "client.convert_from_registers()" or "client.convert_to_registers" See documentation: "https://pymodbus.readthedocs.io/en/latest/source/client.html#pymodbus.client.mixin.ModbusClientMixin.convert_from_registers" 2025-06-06 16:20:10 WARNING pymodbus.logging BinaryPayloadDecoder is deprecated and will be removed in v3.9.0 ! Please use "client.convert_from_registers()" or "client.convert_to_registers" See documentation: "https://pymodbus.readthedocs.io/en/latest/source/client.html#pymodbus.client.mixin.ModbusClientMixin.convert_from_registers" 2025-06-06 16:20:10 WARNING pymodbus.logging BinaryPayloadDecoder is deprecated and will be removed in v3.9.0 ! Please use "client.convert_from_registers()" or "client.convert_to_registers" See documentation: "https://pymodbus.readthedocs.io/en/latest/source/client.html#pymodbus.client.mixin.ModbusClientMixin.convert_from_registers" 2025-06-06 16:20:10 WARNING pymodbus.logging BinaryPayloadDecoder is deprecated and will be removed in v3.9.0 ! Please use "client.convert_from_registers()" or "client.convert_to_registers" See documentation: "https://pymodbus.readthedocs.io/en/latest/source/client.html#pymodbus.client.mixin.ModbusClientMixin.convert_from_registers"
Zapft ihr Narren der König hat Durst
Kommentar
-
Hochpass Ich habe mal ein wenig geschraubt. Leider habe ich Deinen SMA nicht im Einsatz. Aber schau doch mal ob Dich die Dateien im Anhang weiterbringen.Angehängte Dateien
Kommentar
-
Du haust dich ganz schön rein für mein Problem. Vielen Dank!!!!!
Ich habs mit deinem update jetzt 2 Stunden laufen. und ich habe jetzt noch genau einen Eintrag im Log bekommen
Code:2025-06-07 14:14:29 ERROR lib.scheduler.tasks Method plugins.sma_mb_tp15000.poll_device_192.168.1.44 exception: 'SMAModbus' object has no attribute 'log_error' > Traceback (most recent call last): > File "/usr/local/smarthome/lib/scheduler.py", line 806, in _task > obj() > File "/usr/local/smarthome/plugins/sma_mb/__init__.py", line 190, in poll_device > self.log_error(f"poll_device already called and not ready for next poll - please adjust cycle or crontab") > AttributeError: 'SMAModbus' object has no attribute 'log_error'
Aber wie gesagt der Rest läuft.Zapft ihr Narren der König hat Durst
Kommentar
-
Mist, das sollte in der Zeile self.logger.error(...) sein. Korrigierte Version anbei.
Aber eigentlich sollte diese Zeile nicht aufgerufen werden müssen weil die nur anschlägt wenn bereits ein poll device am Laufen ist. Welchen cycle nutzt Du? Oder hast Du auf crontab getestet?Angehängte Dateien
Kommentar
-
Moin,
das plugin läuft bei mir jetzt seit 2h unaffällig bzw. ohne log Einträge. Vielen Danke, tolle Arbeit!
Konfiguriert habe ich beide WR mit cycle 10 (siehe unten)
Code:SMAmodbus1: plugin_name: sma_mb host: 192.168.xx.xx cycle: 10 instance: tp15000 SMAmodbus2: plugin_name: sma_mb host: 192.168.xx.xx cycle: 10 instance: tp3000
Zuletzt geändert von bmx; 08.06.2025, 13:50.Zapft ihr Narren der König hat Durst
Kommentar
-
Ja IP Adressen sind unterschiedlich und passen. Ich denke sonst würde es auch nicht funktionieren.
Ich glaube bei den Items gibts kein Geheimnis.Angehängte DateienZapft ihr Narren der König hat Durst
Kommentar
-
Zitat von bmx Beitrag anzeigenDanke. Ich habe den Fix in develop geschoben.
Ich danke dir.
Zapft ihr Narren der König hat Durst
Kommentar
Kommentar