Seite 4 von 7
Re: SENEC V2 Modul
Verfasst: Fr Aug 11, 2023 7:51 am
von smass
cjungde hat geschrieben: ↑Do Aug 10, 2023 8:18 pm
Hallo Silvio,
diese Frage solltest Du ausserhalb des SENEC Threads stellen, weil SENEC ja nicht von OpenWB unterstützt werden will und das wird sich vermutlich nicht ändern. Daher wird dieses Modul immer eine 'Bastellösung' sein. So lange sich OpenWB V2 auch manuell installieren lässt, sollte auch der eigene SSH Zugang kein Thema sein. Ob der Zugang auch auf der kaufbaren SDKarte freigeschalten wird, muss OpenWB sagen.
Gruß
Christoph
(Ich bin kein Mitarbeiter der Firma OpenWB)
Danke für die Info Christoph. Werde ich so machen.
Re: SENEC V2 Modul
Verfasst: Do Aug 31, 2023 9:41 am
von solarjunkie
Hallo Leute,
es sieht so aus, dass Senec mit einem Firmware update vor 2 Tagen die Interne Web-Schnittstelle (auf meinem Senec Home V2.1) geändert hat.
1) funktioniert nur noch HTTPS, nicht mehr HTTP
2) die Parameter aus dem Bereich "STATISTIC" werden nicht mehr geliefert:
Code: Alles auswählen
{u'STATISTIC': {u'LIVE_PV_GEN': u'VARIABLE_NOT_FOUND', u'LIVE_BAT_CHARGE': u'VARIABLE_NOT_FOUND', u'LIVE_HOUSE_CONS': u'VARIABLE_NOT_FOUND', u'LIVE_GRID_IMPORT': u'VARIABLE_NOT_FOUND', u'LIVE_BAT_DISCHARGE': u'VARIABLE_NOT_FOUND', u'LIVE_GRID_EXPORT': u'VARIABLE_NOT_FOUND'}}
1) kann ich managen, aber hat für 2) schon jemand einen Workaround gefunden? Gibt es eine Möglichkeit abzufragen, welche Keywords die API unterstützt?
Ich weiß, SENEC wird hier nicht offiziell unterstützt - sonst aber auch nirgends
- insofern ist meine Hoffnung auf fachkundige Hilfe aus der Community hier noch am größten ...
VG
Re: SENEC V2 Modul
Verfasst: Do Aug 31, 2023 9:51 am
von hubecker
Hallo,
Habe ich heute auch festgestellt.
Christoph muss wie du schon festgestellt hast http auf https umstellen.
Das reicht aber nicht aus denn es muss noch bei dem call requests.post ein verify=False dazu um das ssl certificate zu ignorieren.
Ich habe das bei mir mal eingebaut und teste es gerade.
EDIT: da scheint aber noch mehr geändert worden zu sein, bekomme jetzt folgenden Fehler:
Code: Alles auswählen
2023-08-31 11:51:51,855 - {modules.common.fault_state:52} - {ERROR:device2} - Senec Speicher: FaultState FaultStateLevel.ERROR, FaultStr <class 'TypeError'> type str doesn't define __round__ method, Traceback:
Traceback (most recent call last):
File "/var/www/html/openWB/packages/modules/common/configurable_device.py", line 36, in __call__
self.__updater(components_list)
File "/var/www/html/openWB/packages/modules/devices/senec/device.py", line 64, in update_components
log.debug("Gesamtlademenge : {0} Wh".format(round(response["STATISTIC"]['LIVE_BAT_CHARGE'],2)))
TypeError: type str doesn't define __round__ method
Gruß
Hubert
Re: SENEC V2 Modul
Verfasst: Do Aug 31, 2023 10:00 am
von solarjunkie
Ja, genau. SSL check muss man ignorieren. Allerdings ist die Statistik Section einfach leer, auch wenn sie von der API weiterhin angeboten wird, siehe "st_STATISTIC". Vielleicht sind die gesuchten Werte jetzt woanders? Muss ich später mal schauen.
Code: Alles auswählen
pi@BURNS:~/openWB $ curl --insecure --location -g 'https://192.168.XXX.XXX/lala.cgi' --data '{ "DEBUG" : {} }'
{"DEBUG":{"CHARGE_TARGET":"fl_449AFFF3","DC_TARGET":"fl_449AFFF3","FEED_TARGET":"fl_00000000","PU_AVAIL":"fl_00000000",
"SECTIONS":
["st_BAT1",
"st_BAT1OBJ1",
"st_BMS",
"st_BMS_PARA",
"st_CASC",
"st_DEBUG",
"st_DISPLAY",
"st_ENERGY",
"st_FACTORY",
"st_FEATURES",
"st_FILE",
"st_GRIDCONFIG",
"st_LOG",
"st_PM1",
"st_PM1OBJ1",
"st_PM1OBJ2",
"st_PV1",
"st_PWR_UNIT",
"st_RTC",
"st_SELFTEST_RESULTS",
"st_SOCKETS",
"st_STATISTIC",
"st_STECA",
"st_SYS_UPDATE",
"st_TEMPMEASURE",
"st_TEST",
"st_UPDATE",
"st_WALLBOX",
"st_WIZARD"
]}}
Re: SENEC V2 Modul
Verfasst: Do Aug 31, 2023 10:28 am
von hubecker
Also ich habe die Vermutung, dass SENEC die Statistic Werte jetzt auf dem Server berechnet und über mein-senec anbieten wird, da ist ja auch schon ein neues Cockpit in der Mache.
Denn bei
sind auch keine STATISTIC Werte mehr dabei.
Gruß
Hubert
Re: SENEC V2 Modul
Verfasst: Do Aug 31, 2023 11:00 am
von cjungde
In dem Moment, in dem ich eure Posts gelesen habe, habe ich das Update bekommen. Ich schau heute Abend nach, was ich anpassen muss. Danke für jeden Tip den ihr schon für mich habt.
Gruß
Christoph
Re: SENEC V2 Modul
Verfasst: Do Aug 31, 2023 1:00 pm
von Kurzschlusstechniker
Moin,
ich weiß nicht ob es hilft. Ich greife die Senec-Werte auch mit dem IOBroker ab, da ging es nach dem Update erst auch nicht mehr. Mittlerweile, nach einem Modulupdate auf die aktuelle Beta, geht alles wieder.
Gruß
Jan
Re: SENEC V2 Modul
Verfasst: Do Aug 31, 2023 1:26 pm
von hubecker
cjungde hat geschrieben: ↑Do Aug 31, 2023 11:00 am
In dem Moment, in dem ich eure Posts gelesen habe, habe ich das Update bekommen. Ich schau heute Abend nach, was ich anpassen muss. Danke für jeden Tip den ihr schon für mich habt.
Gruß
Christoph
Hallo Christoph,
Ich habe mal das bat.py so abgeändert, also die Statistc werte über die Simulation implementiert:
#!/usr/bin/env python3
from dataclass_utils import dataclass_from_dict
from modules.common.component_state import BatState
from modules.common.component_type import ComponentDescriptor
from modules.common.fault_state import ComponentInfo
from modules.common.simcount import SimCounter
from modules.common.store import get_bat_value_store
from modules.devices.senec.config import SenecBatSetup
class SenecBat:
def __init__(self, device_id: int, component_config: SenecBatSetup) -> None:
self.__device_id = device_id
self.component_config = dataclass_from_dict(SenecBatSetup, component_config)
self.store = get_bat_value_store(self.component_config.id)
self.component_info = ComponentInfo.from_component_config(self.component_config)
self.sim_counter = SimCounter(self.__device_id, self.component_config.id, prefix="speicher")
def update(self, response) -> None:
power=round(response["ENERGY"]['GUI_BAT_DATA_POWER'],2)
soc=round(response["ENERGY"]['GUI_BAT_DATA_FUEL_CHARGE'],2)
imported, exported = self.sim_counter.sim_count(power)
bat_state = BatState(
power=power,
soc=soc,
imported=imported,
exported=exported
)
self.store.set(bat_state)
component_descriptor = ComponentDescriptor(configuration_factory=SenecBatSetup)
und im senec_device.py folgende Anderung:
class Senec_Connection():
def __init__(self, device_ip):
self.device_ip = device_ip
self.read_api = f"https://{device_ip}/lala.cgi"
def get_values(self, request_json = {}):
if not request_json: request_json = BASIC_REQUEST
try:
response = requests.post(self.read_api, json=request_json, verify=False)
damit funktioniert es erst mal.
Ich benutze auch nur den bat teil.
Muss man evtl beim counter und inverter auch so machen.
Schau mal was du davon gebrauchen kannst.
Gruß
Hubert
Re: SENEC V2 Modul
Verfasst: Fr Sep 01, 2023 8:11 pm
von cjungde
Hallo Hubert,
vielen Dank für Deine Hilfe.
Wenn ich Deinen Code bei mir laufen lasse, bekomme ich im Status die Meldung:
"Modulmeldung:
<class 'TypeError'> type str doesn't define __round__ method"
Hast Du die Meldung auch ?
Ich habe bei mir jetzt mal Bat und counter angepasst und teste es.
Der Wechselrichter ist ein Fonius, da komme ich über das andere Modul direkt drauf.
Gruß
Christoph
Re: SENEC V2 Modul
Verfasst: Fr Sep 01, 2023 10:33 pm
von hubecker
Hallo Christoph,
Ja du must im device.py bei den log.debug bei den STATISTIC ausgaben das round rausnehmen.
Am besten aber die ganzen STATISTIC log Ausgaben rausnehmen, da die ja dann über den simulator laufen.
Zwecks besserem ERROR handling wäre noch ein check aller Werte auf vorhanden und/oder numerisch gut.
Gruß
Hubert