SMA Sunny WebBox Zähler auslesen

Anfragen zum Erstellen von Modulen, Fragen zu Modulen
Antworten
JGZimmerle
Beiträge: 6
Registriert: Mi Apr 12, 2023 10:25 pm

SMA Sunny WebBox Zähler auslesen

Beitrag von JGZimmerle »

Hallo,

bin neu hier, daher verzeiht mir bitte wenn meine Frage blöd ist. Ich habe die Suchfunktion genutzt, aber nichts passendes gefunden.

Ich habe ein dreiphasiges SMA Sunny Backup System L mit drei SunnyBackup 5000 (gleiche Firmware wie Sunny Islands) und 77 kWh Blei-Akkus (sollen demnächst durch LiFePO4 ersetzt werden), zwei SmartLoad SL6000, zwei TriPower STP10000TL-10, einen TriPower STP25000TL-30, einen SunnyBoy SB4000TL-21, PowerReducerBox, MeterBox und Sunny WebBox v1.

Als Stromerzeuger habe ich knapp 60 kWp PV-Module, zwei 11 kWel BHKWs, und ein 8 kW Notstromaggregat.

Die MeterBox ließt einen Zwei-Richtungszähler der direkt hinter dem EVU-Zähler sitzt aus, und übermittelt dessen Werte an das Sunny Backup System, welches wiederum per ModBus über RS485 von der Sunny WebBox ausgelesen wird. Diese stellt dann die Werte GdCsmpPwrAt (Netzbezug) und GdFeedPwrAt (Netzeinspeisung) über ModbusTCP auf TCP-Port 502 bereit.

Nun habe ich mir gerade die openWB Standalone 2.0 installiert, und auch schon auf die aktuelle master Firmware 2023-04-12 12:48:27 +0200 [6e1e8d6e] upgedated. Später sollen noch mehrere openWB Duo und openWB Pro hinzukommen, aber ich dachte mir ich fange erstmal klein mit der Standalone und ein paar Shellys an.

Nur bekomme ich jetzt bei der Konfiguration des Gerätes SMA Webbox in der openWB-Oberfläche die Meldung:
Es wurde keine Konfigurationsseite für den Geräte-Typ "sma_webbox" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden.

Dort gibt es zwar ein Eingabefeld, wo ich die IP-Adresse ergänzt habe:

Code: Alles auswählen

{
  "ip_address": "10.10.20.21"
}
Aber wenn ich dann die Komponente "SMA Wechselrichter Webbox" hinzufügen will, bekomme ich am rechten Seitenrand die Fehlermeldung:
Bitte erst einen EVU-Zähler konfigurieren!

Kann mir bitte jemand einen Tipp geben, wie ich die Zählerwerte aus der WebBox in die openWB bekomme?

Vielen Dank im vorraus!
Zuletzt geändert von JGZimmerle am Fr Apr 14, 2023 10:38 am, insgesamt 2-mal geändert.
LenaK
Beiträge: 975
Registriert: Fr Jan 22, 2021 6:40 am

Re: SMA Sunny Webbox keine Konfigurationsseite

Beitrag von LenaK »

Wie die Fehlermeldung sagt: Zuerst den EVU-Zähler konfigurieren, dann den WR.

Bitte das Debuglevel auf Details stellen und einen kompletten Durchlauf von # ***Start*** bis # ***Start*** aus dem main.log posten, wenn der Fehler auftritt. Sensible Daten wie Benutzernamen und Kennwörter unkenntlich machen.
JGZimmerle
Beiträge: 6
Registriert: Mi Apr 12, 2023 10:25 pm

Re: SMA Sunny Webbox keine Konfigurationsseite

Beitrag von JGZimmerle »

Wenn der EVU-Zähler nun aber über den Batterie-WR (welcher nur über die Webbox erreichbar ist) ausgelesen wird habe ich hier ja ein Henne-Ei-Problem.
JGZimmerle
Beiträge: 6
Registriert: Mi Apr 12, 2023 10:25 pm

Re: SMA Sunny Webbox keine Konfigurationsseite

Beitrag von JGZimmerle »

JGZimmerle hat geschrieben: Mi Apr 12, 2023 11:39 pm Nur bekomme ich jetzt bei der Konfiguration des Gerätes SMA Webbox in der openWB-Oberfläche die Meldung:
Es wurde keine Konfigurationsseite für den Geräte-Typ "sma_webbox" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden.
Ok, dieses Problem hat anscheinend am Safari-Browser gelegen, habe jetzt alles nochmal mit dem Firefox probiert, das Henne-Ei-Problem bezüglich des EVU-Zähler und Webbox-WR bleibt allerdings bestehen.
JGZimmerle
Beiträge: 6
Registriert: Mi Apr 12, 2023 10:25 pm

Re: SMA Sunny Webbox keine Konfigurationsseite

Beitrag von JGZimmerle »

2023-04-13 15:15:10,886 - {root:61} - {INFO:MainThread} - # ***Start***
2023-04-13 15:15:10,909 - {modules.devices.sma_webbox.device:44} - {DEBUG:device6} - Start device reading {}
2023-04-13 15:15:10,910 - {modules.devices.sma_webbox.device:51} - {WARNING:device6} - SMA Webbox: Es konnten keine Werte gelesen werden, da noch keine Komponenten konfiguriert wurden.
2023-04-13 15:15:10,972 - {control.counter_all:80} - {ERROR:MainThread} - Ohne Konfiguration eines EVU-Zählers an der Spitze der Hierarchie ist keine Regelung möglich.
2023-04-13 15:15:10,973 - {control.chargepoint:117} - {ERROR:MainThread} - Fehler in der allgemeinen Ladepunkt-Klasse
Traceback (most recent call last):
File "/var/www/html/openWB/packages/control/chargepoint.py", line 115, in no_charge
data.data.counter_all_data.get_evu_counter().reset_pv_data()
File "/var/www/html/openWB/packages/control/counter_all.py", line 67, in get_evu_counter
return data.data.counter_data[f"counter{self.get_id_evu_counter()}"]
File "/var/www/html/openWB/packages/control/counter_all.py", line 78, in get_id_evu_counter
raise TypeError
TypeError
2023-04-13 15:15:10,989 - {control.counter_all:80} - {ERROR:MainThread} - Ohne Konfiguration eines EVU-Zählers an der Spitze der Hierarchie ist keine Regelung möglich.
2023-04-13 15:15:10,989 - {control.counter_all:121} - {ERROR:MainThread} - Fehler in der allgemeinen Zähler-Klasse
Traceback (most recent call last):
File "/var/www/html/openWB/packages/control/counter_all.py", line 92, in set_home_consumption
home_consumption, elements = self._calc_home_consumption()
File "/var/www/html/openWB/packages/control/counter_all.py", line 125, in _calc_home_consumption
elements_to_sum_up = self._get_elements_for_home_consumption_calculation()
File "/var/www/html/openWB/packages/control/counter_all.py", line 147, in _get_elements_for_home_consumption_calculation
elements = copy.deepcopy(self.get_entry_of_element(self.get_id_evu_counter())["children"])
File "/var/www/html/openWB/packages/control/counter_all.py", line 78, in get_id_evu_counter
raise TypeError
TypeError
2023-04-13 15:15:10,991 - {control.data:305} - {INFO:MainThread} - bat_all_data
BatAllData(config=Config(configured=False), get=Get(soc=0, daily_exported=0, daily_imported=0, imported=0, exported=0, power=0), set=Set(charging_power_left=0, switch_on_soc_reached=False))
2023-04-13 15:15:10,991 - {control.data:306} - {INFO:MainThread} - cp_all_data
AllChargepointData(get=AllGet(daily_imported=0, daily_exported=0, power=0, imported=0, exported=0))
2023-04-13 15:15:10,992 - {control.data:334} - {INFO:MainThread} - cpt0
CpTemplateData(autolock=Autolock(active=False, plans={}, wait_for_charging_end=False), id=0, max_current_multi_phases=32, max_current_single_phase=32, name='Standard Ladepunkt-Vorlage', rfid_enabling=False, valid_tags=[])
2023-04-13 15:15:10,992 - {control.data:310} - {INFO:MainThread} - counter_all_data
CounterAllData(config=Config(reserve_for_not_charging=False), get=Get(hierarchy=[]), set=Set(loadmanagement_active=False, home_consumption=0, invalid_home_consumption=0, daily_yield_home_consumption=0))
2023-04-13 15:15:10,992 - {control.data:334} - {INFO:MainThread} - ct0
ChargeTemplateData(name='Standard-Ladeprofil-Vorlage', disable_after_unplug=False, prio=False, load_default=False, time_charging=TimeCharging(active=False, plans={}), chargemode=Chargemode(selected='stop', pv_charging=PvCharging(min_soc_current=10, min_current=0, feed_in_limit=False, min_soc=0, max_soc=100), scheduled_charging=ScheduledCharging(plans={}), instant_charging=InstantCharging(current=10, limit=Limit(selected='none', amount=1000, soc=50))))
2023-04-13 15:15:10,993 - {control.data:334} - {INFO:MainThread} - ev0
EvData(set=Set(ev_template=EvTemplate(data=EvTemplateData(name='Standard-Fahrzeug-Vorlage', max_current_multi_phases=16, max_phases=3, phase_switch_pause=2, prevent_phase_switch=False, prevent_charge_stop=False, control_pilot_interruption=False, control_pilot_interruption_duration=4, average_consump=17, min_current=6, max_current_single_phase=32, battery_capacity=82, nominal_difference=0.5, keep_charge_active_duration=40), et_num=0), soc_error_counter=0), control_parameter=ControlParameter(required_current=0, required_currents=[0.0, 0.0, 0.0], phases=0, prio=False, timestamp_switch_on_off=None, timestamp_auto_phase_switch=None, timestamp_perform_phase_switch=None, submode=<Chargemode.STOP: 'stop'>, chargemode=<Chargemode.STOP: 'stop'>, used_amount_instant_charging=0, imported_at_plan_start=0, current_plan=None, state=0), charge_template=0, ev_template=0, name='Standard-Fahrzeug', tag_id=[], get=Get(soc=0, soc_timestamp='', force_soc_update=False, range=0, fault_state=0, fault_str=''))
2023-04-13 15:15:10,994 - {control.data:334} - {INFO:MainThread} - et0
EvTemplateData(name='Standard-Fahrzeug-Vorlage', max_current_multi_phases=16, max_phases=3, phase_switch_pause=2, prevent_phase_switch=False, prevent_charge_stop=False, control_pilot_interruption=False, control_pilot_interruption_duration=4, average_consump=17, min_current=6, max_current_single_phase=32, battery_capacity=82, nominal_difference=2, keep_charge_active_duration=40)
2023-04-13 15:15:10,994 - {control.data:314} - {INFO:MainThread} - general_data
GeneralData(chargemode_config=ChargemodeConfig(instant_charging=InstantCharging(phases_to_use=1), pv_charging=PvCharging(bat_prio=True, charging_power_reserve=200, control_range=[0, 230], feed_in_yield=15000, phase_switch_delay=7, phases_to_use=1, rundown_power=1000, rundown_soc=50, switch_off_delay=60, switch_off_soc=40, switch_off_threshold=50, switch_on_delay=30, switch_on_soc=60, switch_on_threshold=1500), scheduled_charging=ScheduledCharging(phases_to_use=0), standby=Standby(phases_to_use=1), stop=Stop(phases_to_use=1), time_charging=TimeCharging(phases_to_use=1), unbalanced_load_limit=18, unbalanced_load=False), control_interval=10, extern_display_mode='local', extern=False, external_buttons_hw=False, grid_protection_active=False, grid_protection_configured=True, grid_protection_random_stop=0, grid_protection_timestamp='', mqtt_bridge=False, price_kwh=0.3, range_unit='km', ripple_control_receiver=RippleControlReceiver(configured=False, r1_active=False, r2_active=False))
2023-04-13 15:15:10,996 - {control.data:315} - {INFO:MainThread} - graph_data
GraphData(config=Config(duration=120))
2023-04-13 15:15:10,997 - {control.data:316} - {INFO:MainThread} - optional_data
OptionalData(et=Et(active=False, config=EtConfig(max_price=0, provider={}), get=EtGet(price=0, price_list=[])), int_display=InternalDisplay(active=False, on_if_plugged_in=True, pin_active=False, pin_code='0000', standby=60, theme='cards'), led=Led(active=False), rfid=Rfid(active=False))
2023-04-13 15:15:10,997 - {control.data:318} - {INFO:MainThread} - pv_all_data
PvAllData(config=Config(configured=False), get=Get(daily_exported=0, monthly_exported=0, yearly_exported=0, exported=0, power=0))
2023-04-13 15:15:10,998 - {control.data:334} - {INFO:MainThread} - system
{'update_in_progress': False, 'perform_update': False, 'ip_address': '10.10.20.17', 'current_commit': '2023-04-12 12:48:27 +0200 [6e1e8d6e]', 'current_branch': 'master', 'current_branch_commit': '2023-04-12 12:48:27 +0200 [6e1e8d6e]', 'current_missing_commits': [], 'boot_done': True, 'dataprotection_acknowledged': True, 'debug_level': 10, 'release_train': 'master', 'version': '1.99.102.0', 'datastore_version': 8, 'module_update_completed': True, 'lastlivevaluesJson': {'timestamp': 1681391653, 'time': '15:14:13', 'house-power': 0.0, 'charging-all': 0.0}}
2023-04-13 15:15:10,998 - {control.data:347} - {INFO:MainThread} - device6
{'name': 'SMA Webbox', 'type': 'sma_webbox', 'id': 6, 'configuration': {'ip_address': '10.10.20.21'}}
2023-04-13 15:15:10,998 - {control.data:321} - {INFO:MainThread} -

2023-04-13 15:15:10,999 - {control.algorithm.algorithm:27} - {INFO:MainThread} - # Algorithmus
2023-04-13 15:15:10,999 - {control.counter_all:80} - {ERROR:MainThread} - Ohne Konfiguration eines EVU-Zählers an der Spitze der Hierarchie ist keine Regelung möglich.
2023-04-13 15:15:10,999 - {control.algorithm.algorithm:49} - {ERROR:MainThread} - Fehler im Algorithmus-Modul
Traceback (most recent call last):
File "/var/www/html/openWB/packages/control/algorithm/algorithm.py", line 28, in calc_current
self.evu_counter = data.data.counter_all_data.get_evu_counter()
File "/var/www/html/openWB/packages/control/counter_all.py", line 67, in get_evu_counter
return data.data.counter_data[f"counter{self.get_id_evu_counter()}"]
File "/var/www/html/openWB/packages/control/counter_all.py", line 78, in get_id_evu_counter
raise TypeError
TypeError
2023-04-13 15:15:11,006 - {control.process:23} - {INFO:MainThread} - # Ladung starten.
2023-04-13 15:15:11,007 - {control.counter_all:80} - {ERROR:MainThread} - Ohne Konfiguration eines EVU-Zählers an der Spitze der Hierarchie ist keine Regelung möglich.
2023-04-13 15:15:11,010 - {control.process:79} - {ERROR:MainThread} - Fehler im Process-Modul
Traceback (most recent call last):
File "/var/www/html/openWB/packages/control/process.py", line 77, in process_algorithm_results
data.data.counter_all_data.get_evu_counter().put_stats()
File "/var/www/html/openWB/packages/control/counter_all.py", line 67, in get_evu_counter
return data.data.counter_data[f"counter{self.get_id_evu_counter()}"]
File "/var/www/html/openWB/packages/control/counter_all.py", line 78, in get_id_evu_counter
raise TypeError
TypeError
2023-04-13 15:15:11,017 - {control.counter_all:80} - {ERROR:MainThread} - Ohne Konfiguration eines EVU-Zählers an der Spitze der Hierarchie ist keine Regelung möglich.
2023-04-13 15:15:11,026 - {helpermodules.graph:70} - {ERROR:MainThread} - Fehler im Graph-Modul
Traceback (most recent call last):
File "/var/www/html/openWB/packages/helpermodules/graph.py", line 40, in pub_graph_data
evu_counter = data.data.counter_all_data.get_evu_counter_str()
File "/var/www/html/openWB/packages/control/counter_all.py", line 70, in get_evu_counter_str
return f"counter{self.get_id_evu_counter()}"
File "/var/www/html/openWB/packages/control/counter_all.py", line 78, in get_id_evu_counter
raise TypeError
TypeError
2023-04-13 15:15:11,028 - {schedule:660} - {DEBUG:MainThread} - Running job Job(interval=1, unit=minutes, do=update, args=(), kwargs={})
2023-04-13 15:15:20,056 - {schedule:660} - {DEBUG:MainThread} - Running job Job(interval=1, unit=minutes, do=handler10Sec, args=(), kwargs={})
2023-04-13 15:15:20,057 - {root:61} - {INFO:MainThread} - # ***Start***
LutzB
Beiträge: 3476
Registriert: Di Feb 25, 2020 9:23 am

Re: SMA Sunny Webbox keine Konfigurationsseite

Beitrag von LutzB »

Das "Problem" ist, dass aktuell die Webbox nur als Wechselrichter eingebunden werden kann. Zähler oder Speicher gibt es dort nicht.

Hast Du weitere Infos, wie man die Werte aus der Webbox bekommt? Bei der Wechselrichter-Komponente wird folgende Anfrage gesendet:
  • URL: http://<webbox-ip>/rpc
  • Daten: {'RPC': '{"version": "1.0","proc": "GetPlantOverview","id": "1","format": "JSON"}'}
Ich schätze, dass die Infos des Zählers oder Speichers bereits in den Daten vorhanden sind, lediglich aus der Antwort geparst werden müssen.

Kannst Du an die Daten kommen? Kann gut sein, dass die mit Debuglevel 2 bereits im main.log auftauchen. Dann bitte einmal als Codeblock hier posten.
JGZimmerle
Beiträge: 6
Registriert: Mi Apr 12, 2023 10:25 pm

Re: SMA Sunny Webbox keine Konfigurationsseite

Beitrag von JGZimmerle »

Ja, die Daten müssten eigentlich auch per RPC-Schnittstelle abrufbar sein. Allerdings kann man bei der WebBox nicht häufiger als alle 30 Sekunden eine Abfrage über die RPC-Schnittstelle durchführen, ohne dass diese überlastet wird. Die Nutzung der RPC-Schnittstelle kann auch dazu führen, dass die Leistungsabregelung durch die PowerReducerBox nicht mehr zuverlässig funktioniert, wodurch es zu Anlagen-Schäden kommen kann.

SMA empfiehlt in der Dokumentation generell die ModbusTCP-Schnittstelle zu nutzen, die ist deutlich schneller und effizienter.
Ich habe die vor etlichen Jahren schon mal benutzt, um die Daten aus der Webbox in eine IP-Symcon-Zentrale zu bekommen. Das hat damals sehr gut funktioniert.

Hat die open WB nicht auch eine ModbusTCP-Schnittstelle?
JGZimmerle
Beiträge: 6
Registriert: Mi Apr 12, 2023 10:25 pm

Re: SMA Sunny Webbox keine Konfigurationsseite

Beitrag von JGZimmerle »

Hier ist die technische Beschreibung der Sunny WebBox Modbus-Schnittstelle: https://files.sma.de/downloads/WEBBOX-M ... -de-19.pdf
Antworten