fhempy: Skoda Connect

Begonnen von dominik, 30 Juli 2021, 21:34:14

Vorheriges Thema - Nächstes Thema

dominik

Der Enyaq ist ein EV, oder? Oder ist es ein PHEV?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

macfly


macfly

so, ich melde mich mal wieder ..

Ich war erst etwas verhalten, weil in letzter Zeit (ziemlich genau, wo ich mit fhempy gestartet bin) starke Probleme mit meinem fhem-server hatte. Segmentation Faults, spontane reboots usw. Ich hatte erst das interface perl <-> python im Verdacht, bis sich herausstellte, dass mein mainboard defekt ist und das Ram-Corruptions waren (!).

Egal, Server ist repariert, und das skodaconnect läuft wie geschmiert. Ich habe einen neuen pullrequest erzeugt, woe jetzt auch die Stati etwas gesprächiger sind. Magst du dir das mal anschauen?

schöne Grüße,
Friedhelm

dominik

Uij...das hört sich nach einer langwierigen Fehlersuche an  :o

Ich habe mir den Pull Request angeschaut. Danke nochmals, dass du dich dem annimmst! Was ich nicht so schön finde, ist das hier:
https://github.com/dominikkarall/fhempy/pull/84/files#diff-5147a915f15690bbf0398de961fbe7de3f0efce0c2fd024141319ff2d6f4cfc5R287

Der "state" wird ziemlich oft geändert und die Funktionsnamen im state sind denke ich für viele User nicht optimal. Aus meiner Sicht sollte state auf connected bleiben, bis ein Fehler auftritt. Wenn dieser auftritt, dann auf failed gehen. Was meinst du? Weil die Funktionsnamen im state sind schon sehr unüblich in FHEM.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

macfly

hm, ok, das mit den Funktionsnamen, da stimm ich dir zu.

Allerdings ist es so, dass man ohne Änderung der skodaconnect-implementierung *keinen* Fehler zurückbekommt, sondern immer ok. Auch bei einem Timeout. deswegen würde ich schon gerne visualisieren, dass die fhempy-skodaconnect-anbindung noch auf Antwort wartet. Vielleicht für alle Änderungen ein "wait for API to respond" oder so? Dass man zumindest sieht, dass die API mal wieder superlahm ist? Das wäre äquivalent zur Skodaconnect-Android-App, wo durchaus auch mal 2 Minuten die Eieruhr dreht und dann kommt "es ist ein Fehler aufgetreten".

was meinst du?

dominik

Eine Idee:

Eine generische Funktion bauen, die dann die vehicle-Methoden aufruft. Dort kann man dann jede Rückmeldung der vehicle-Methoden bearbeiten. Ich habe gesehen, dass die Skodaconnect Library da schöne Exceptions wirft die man dann im state ausgeben könnte.

Hier mal schnell die Idee runtergeschrieben (untested!):

async def set_pheater(self, hash, params):
  func = self.vehicle.set_pheater(params["mode"], self.spin)
  self.create_async_task(self._call_vehicle_function(func))

async def _call_vehicle_function(self, function):
  try:
    await function()
  except Exception as e:
    await fhem.readingsSingleUpdate(self.hash, "state", str(e), 1)


Führt man dann ein set.... durch, wird im Fehlerfall der state auf den Fehler gesetzt. Läuft es korrekt durch, müsste sich das entsprechende Reading ändern.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

marhof

Hi, ich hab das Modul jetzt auch am laufen.

Die Readings funktionieren.

Aber es geht kein einziger Set Befehl.
Gibt es dazu noch Tipps?

Grüße
Danke

Nogga

...weiß einer ob zwischenzeitlich der Zielladestand bei Enyaq-Fahrzeugen funktioniert?

Bitschubser

Hi, auch bei mir holt sich das Modul recht zuverlässig die Werte meines Enyaq. Für Aussetzer der Server kann hier ja keiner was.  :)
Aber die Set-Befehle funktionieren auch hier nicht. Leider
FHEM in VM auf Proxmox, Homematic über 2x HM-Lan, Homematic-IP über Raspimatic in VM auf Proxmox, SMA-Wechselrichter, Pushover, TTS, Shelly + Sonoff über MQTT

dominik

Kommt eine Fehlermeldung im fhempy Log bei den Set-Befehlen?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

JoWiemann

#100
Hallo,

ich bin sehr zufrieden mit dem Modul und würde gerne einen Wunsch äußern.

Um nicht auf meiner zweiten Fhem Instanz parallel die Skoda API abrufen zu müssen wäre es schön, wenn das Modul FHEM2FHEM kompatible wäre. Besteht da eine Chance?

Grüße Jörg

Update: Habe das jetzt mit httpmod und JsonList2 gelöst.
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Bitschubser

Hallo,
Bezüglich der Set Befehle muss ich korrigieren:
climatization electric geht.
climatization_target_temperature geht nicht:
Im Log:
2023-01-05 22:07:00,295 - INFO     - skodaconnect.vehicle: Remote control of climatisation functions is not supported.
Charge_limit geht nicht:
Im Log:
2023-01-05 22:00:49,024 - ERROR    - MySkodaEnyaq: Exception raised by task: <Task finished name='Task-2323' coro=<FhemModule._run_coro() done, defined at /home/fhem/.local/lib/python3.8/site-packages/fhempy/lib/generic.py:194> exception=SkodaInvalidRequestException('Charge limit "50" is not supported.') created at /usr/lib/python3.8/asyncio/tasks.py:382>
Traceback (most recent call last):
  File "/home/fhem/.local/lib/python3.8/site-packages/fhempy/lib/generic.py", line 202, in _handle_task_result
    task.result()
  File "/home/fhem/.local/lib/python3.8/site-packages/fhempy/lib/generic.py", line 196, in _run_coro
    await coro
  File "/home/fhem/.local/lib/python3.8/site-packages/skodaconnect/vehicle.py", line 519, in set_charge_limit
    raise SkodaInvalidRequestException(f'Charge limit "{limit}" is not supported.')
skodaconnect.exceptions.SkodaInvalidRequestException: Charge limit "50" is not supported.

FHEM in VM auf Proxmox, Homematic über 2x HM-Lan, Homematic-IP über Raspimatic in VM auf Proxmox, SMA-Wechselrichter, Pushover, TTS, Shelly + Sonoff über MQTT

Bitschubser

und seit dem Update gestern läuft es immer nur eine Stunde lang.
Im Log steht dann:
2023-01-06 15:10:45,175 - WARNING  - skodaconnect.connection: Something went wrong when refreshing tokens for "connect".
2023-01-06 15:10:45,175 - WARNING  - skodaconnect.connection: Could not fetch air-conditioning, error: Failed to set token for "connect"

Nach einem Neustart von fhempy_local läuft es dann wieder, für eine Stunde.  :(
FHEM in VM auf Proxmox, Homematic über 2x HM-Lan, Homematic-IP über Raspimatic in VM auf Proxmox, SMA-Wechselrichter, Pushover, TTS, Shelly + Sonoff über MQTT

dominik

Hi,
zuletzt wurde wieder ein Update der skodaconnect Library von JFMennedy gemacht. Es sollte daher IMHO wieder laufen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Bitschubser

Ja, läuft wieder super.
Danke
FHEM in VM auf Proxmox, Homematic über 2x HM-Lan, Homematic-IP über Raspimatic in VM auf Proxmox, SMA-Wechselrichter, Pushover, TTS, Shelly + Sonoff über MQTT