HACS Integrität Verständnisfrage Entität Python wissen!

Moin,

Ich habe erst seit gestern mit HA angefangen. Nun habe ich eine HACS Integrität GitHub - Skipperro/enpal-homeassistant: Home Assistant integration for Solar Installation from Enpal
Mit der ich gerne meine enpal Anlage auslesen will. Ich habe mittelmäßige Python Kenntnisse habe aber mit der influxdb Verbindung und in Python bereits eine Anzeige auf meinem divoom64 Display realisiert! So das ich behaupten kann das in dem repo von skipperro Fehler waren. Nun wie kann ich denn die ausgelesenen Werte in eine Entität packen um dann im nachgang mit den Werten weiter zu arbeiten?! Oder habe ich da grundsätzlich was falsch verstanden?

Das repo ist seit einem jahr nicht aktualisiert das ist oft ein schlechtes Zeichen.

Was fkt denn bei dir? Bekommst du alle Entitäten angezeigt?

Es ist nicht wirklich der beste start mit Home Assistant wenn man gleich mit einer komplizierten und schlecht gepflegten Integration anfängt leider

Aber geh mal auf deine Integration, dort dann auf das wichtigste Gerät. Dort kriegst du dann Optionenen das du alles zum Dashboard hinzufügen kannst oder automatisierungen davon erstellen kannst. Evtl ist das ein guter Einstieg?

Aber Was willst du genau im Bezug auf python wissen?

am besten wäre wenn es ein gutes Tutorial gibt was mir zeigt wie ich ausgelesene variablen in entities packen kann.

from homeassistant.components.sensor import SensorEntity

ich denke damit sollte es gehen bin aber noch ein bisschen am rätseln. vermutlich bin ich auch zu blöd um die Dokumentation dazu zu finden.

um mein vorhaben mal auf den Punkt zu bringen und der Einfachheit ich möchte zum Beispiel aus der influxdb aus meiner Enpal Box den aktuellen Ertrag auf dem Dach (String 1) auslesen. Und diesen dann eben in einen Entität packen.

ich kann die “Power.DC.String.1” auch in der Log Datei als Warning ausgeben nur bekomme ich immer wieder die Fehlermeldung:

ERROR (MainThread) [homeassistant.components.sensor] enpal: Not adding entity with invalid device info: Invalid device info {'default_manufacturer': 'Enpal', 'default_name': 'Enpal Solar Installation', 'entry_type': <DeviceEntryType.SERVICE: 'service'>, 'identifiers': {('enpal', 'enpal')}, 'sw_version': '0.1.0'} for 'enpal' config entry: device info needs to either describe a device, link to existing device or provide extra information.

So, ich würde sagen selbst ist der Mann :wink: hab mich rein gefuchst! Dann schreibe ich mir wohl ein eigenes Enpal Addon ;D.

Gut das es nu fkt! Was auch immer du machen wolltest :rofl:

Du willst HA sensoren in python code verwenden, hab ich das nu endlich richtig geraten?
Oder die influxdb auslesen? Aus HA? Oder python? Fragen über fragen :slight_smile:

Ich frag ja nur weils evtl viel leichter geht

Meine Enpalbox hat eine influxdb woher ich meine Daten zur PV-Anlage auslese. Diese ausgelesenen Daten möchte ich dann als Entität in HA haben. So wie auf dem Screenshot.

Falls es eine andere / bessere Lösung gibt bin ich natürlich ganz Ohr.

So frage ich jetzt quasi asynchron alle 2 Minuten die influxdb von Enpal ab und ziehe mir das “Value” in die Entität!

Ah danke, jetzt hab ichs kappiert :slight_smile:

Aber wie genau machst du das nu? Wie geplant über python?

Hier wäre dann ein andere Ansatz dafür:

Aber wenn deiner funzt kannst du den ja behalten.

Das schöne an HA ist das es so viele Möglichkeiten und wege oft gibt

Ja genau ich habe es jetzt mit Python gelöst… quasi ein eigenes HACS Addon geschrieben… ich sehe mir das mal an. Vielen Dank für deine Unterstützung!

hier nun endlich mein public Fork

funktioniert mit jeder Enpal Solar Anlage die auch das Solar Rel. Web interface hat!

Ich bin neu in HA und habe seit einem Jahr eine ENPAL PV Anlage, nun wollte ich diese mit HA überwache und visualisieren.

Die Installation der Integration hat auch funktioniert, ENPAL hat mir die Zugangsdaten zur InfluxDB geliefert, aber leider bekomme ich keine Daten.

Im Debug-Log steht folgendes:

2023-12-06 07:50:00.600 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up enpal platform for sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 359, in _async_setup_platform
await asyncio.shield(task)
File "/config/custom_components/enpal/sensor.py", line 57, in async_setup_entry
tables = await hass.async_add_executor_job(get_tables, config['enpal_host_ip'], config['enpal_host_port'], config['enpal_token'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/enpal/sensor.py", line 31, in get_tables
tables = query_api.query(query)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/influxdb_client/client/query_api.py", line 100, in query
response = self._query_api.post_query(org=org, query=self._create_query(query, self.default_dialect, params),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/influxdb_client/service/query_service.py", line 258, in post_query
(data) = self.post_query_with_http_info(**kwargs) # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/influxdb_client/service/query_service.py", line 338, in post_query_with_http_info
return self.api_client.call_api(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/influxdb_client/api_client.py", line 341, in call_api
return self.__call_api(resource_path, method,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/influxdb_client/api_client.py", line 171, in __call_api
response_data = self.request(
^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/influxdb_client/api_client.py", line 386, in request
return self.rest_client.POST(url,
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/influxdb_client/rest.py", line 304, in POST
return self.request("POST", url,
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/influxdb_client/rest.py", line 254, in request
raise ApiException(http_resp=r)
influxdb_client.rest.ApiException: (400)
Reason: Bad Request
HTTP response headers: HTTPHeaderDict({'Content-Type': 'application/json; charset=utf-8', 'Vary': 'Accept-Encoding', 'X-Platform-Error-Code': 'invalid', 'Date': 'Wed, 06 Dec 2023 06:50:00 GMT', 'Content-Length': '99'})
HTTP response body: b'{"code":"invalid","message":"failed to decode request body: organization name \"enpal\" not found"}'

2023-12-06 07:50:01.942 ERROR (SyncWorker_9) [root] Modbus read error at address=33412: Exception Response(131, 3, IllegalAddress)```

Kann mir jemand sagen wo ggf. das Problem liegt?

@gicko
Hallo ich habe deine Integration online gefunden, leider kann ich diese mir nicht installieren
Mein Homeassistant bringt diese Fehlermeldung:
oder ich bin einfach zu blöd