fhempy: Skoda Connect

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

Vorheriges Thema - Nächstes Thema

Aladin222

stateformat hab ich nix außergewöhnliches drin bzw. gesetzt .
Aber gerade auf pybinding 0.1.250 Update gemacht ...funzt wieder wie gewohnt :-)

macfly

Hi, supercooles Modul, funktioniert mit meinem neuen Enyaq ganz hervorragend.

Einzig "spooky" ist, dass der state auf "connecting" bleibt (und der ReadingsTimestamp sich nicht ändert), obwohl alle anderen Readings sich regelmäßig (und auch plausibel) aktualisieren - aber das ist für mich ehere eyecandy ..


macfly

Ich hätte noch einen Änderungswunsch.

Die aktuelle Implementation ist für PHEV gedacht, nicht für vollelektrische.

mit meinem Enyaq funktioniert das nur halbwegs. Um den Enyaq richtig zu steuern, müsste man folgende Änderungen machen (in skodaconnect.py):

            self.set_config["charger_current"] = {
                "args": ["current"],
                "options": "Maximum,Reduced",
            }
            self.set_config["charge_limit"] = {
                "args": ["limit"],
                "options": "50,60,70,80,90,100",
            }


siehst du irgend eine Möglichkeit, das je nach Modell konfigurierbar zu machen?


MadMax

Hallo macfly,

Was kannst oder willst du damit steuern?
Ich habe auch einen Enyaq darum bin ich sehr an Funktionen für das Auto interessiert.

Gruß
Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

macfly

Zitat von: MadMax am 30 Mai 2022, 20:42:44
Hallo macfly,

Was kannst oder willst du damit steuern?
Ich habe auch einen Enyaq darum bin ich sehr an Funktionen für das Auto interessiert.

Gruß
Max

Ich baue gerade an einer Überschussladelösung. Und da meine PV-Anlage relativ klein ist (6KW Peak in Ost/West Ausrichtung), habe ich nie mehr als 3KW anliegen. Wenn ich also möglichst punktgenau den Überschuss laden möchte, kann ich das mit der Wallbox (Go-E) ab 6A nur in 1A schritten tun. Wenn ich dann noch pro 1A Schritt im Auto jeweils "Ladeleistung verringern/nicht verringern" aktivieren kann, habe ich noch Zwischenschritte.

Und ich möchte die minimale Ladung des Autos gerne über das Wandtablet steuern, dann brauche ich nicht die skodaconnect app (die ich ziemlich gammelig finde). Im Prinzip kann man alles, was die skodaconnect app kann, auch via api ansteuern (Ladelimit, Ladestrom begrenzen, Vorklimatisieren, Scheibe heizen, Abfahrtzeiten)

also, zusammengefasst (lt. skodaconnect api):

Ladelimit (vehicle.set_charge_limit)
PHEV können das Ladelimit setzen von 0-50 in 10er Schritten
EV können das Ladelimit setzen von 50-100 in 10er Schritten

Ladestrom (vehicle.set_charger_current)
PHEV können Ladestrom reduzieren (=252) oder maximal laden (=254)
EV können Ladestrom reduzieren (=Reduced) oder maximal laden (=Maximum)

Wäre nett, wenn man dem Modul sagen könnte, dass man ein PHEV oder ein EV hat, und dann diese Werte jeweils zugelassen werden.


Aladin222

hallo zusammen ,

mit dem Update auf 0.1.358 steht mein Skoda wieder nur auf connecting :-(

macfly

Zitat von: Aladin222 am 31 Mai 2022, 10:51:53
hallo zusammen ,

mit dem Update auf 0.1.358 steht mein Skoda wieder nur auf connecting :-(
ja bei mir auch, Daten werden trotzdem aktualisiert (bei mir).

MadMax

Zitat von: macfly am 30 Mai 2022, 20:51:59
Ich baue gerade an einer Überschussladelösung. Und da meine PV-Anlage relativ klein ist (6KW Peak in Ost/West Ausrichtung), habe ich nie mehr als 3KW anliegen. Wenn ich also möglichst punktgenau den Überschuss laden möchte, kann ich das mit der Wallbox (Go-E) ab 6A nur in 1A schritten tun. Wenn ich dann noch pro 1A Schritt im Auto jeweils "Ladeleistung verringern/nicht verringern" aktivieren kann, habe ich noch Zwischenschritte.

Und ich möchte die minimale Ladung des Autos gerne über das Wandtablet steuern, dann brauche ich nicht die skodaconnect app (die ich ziemlich gammelig finde). Im Prinzip kann man alles, was die skodaconnect app kann, auch via api ansteuern (Ladelimit, Ladestrom begrenzen, Vorklimatisieren, Scheibe heizen, Abfahrtzeiten)

also, zusammengefasst (lt. skodaconnect api):

Ladelimit (vehicle.set_charge_limit)
PHEV können das Ladelimit setzen von 0-50 in 10er Schritten
EV können das Ladelimit setzen von 50-100 in 10er Schritten

Ladestrom (vehicle.set_charger_current)
PHEV können Ladestrom reduzieren (=252) oder maximal laden (=254)
EV können Ladestrom reduzieren (=Reduced) oder maximal laden (=Maximum)

Wäre nett, wenn man dem Modul sagen könnte, dass man ein PHEV oder ein EV hat, und dann diese Werte jeweils zugelassen werden.


Was genau beeinflusst vehicle.set_charge_limit?
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

macfly

charge_limit gibt an, bis zu welchem Prozentsatz der Autoakku gefüllt werden kann.

MadMax

Das funktioniert bei mir gar nicht musste ich feststellen
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

macfly

Hallo zusammen,

ich habe mich mal etwas in die python-Welt eingelesen und einige Verbesserungen an zwei Repositories durchgeführt. Vielleicht mag das mal der eine oder andere mit einem Enyaq testen?

a) als erstes wird eine geänderte Version der skodaconnect-Implementierung benötigt, diese ist zu finden unter https://github.com/fbuescher/skodaconnect . Im Prinzip ist nur skodaconnect/vehicle.py geändert, sodass Rückgabewerte aus dem Setzen der API nicht verschluckt sondern zurückgegeben werden. Es reicht also auch aus, diese eine Datei zu tauschen (unter linux liegt die im fhem-user-home unter .local/lib/python{versionsnummer}/site-packages/skodaconnect)

b) außerdem wird eine geänderte Version von fhempy benötigt, diese gibt es hier: https://github.com/fbuescher/fhempy . Hier ist nur FHEM/bindings/python/fhempy/lib/skodaconnect/skodaconnect.py geändert, sodass charge_limit und charger_current für den Enyaq funktionieren und der Status des Moduls aktualisiert wird. Auch hier reicht es im Prinzip, die einzelne Datei auszutauschen (unter linux liegt die im fhem-user-home unter .local/lib/python{versionsnummer}/site-packages/fhempy/lib/skodaconnect)

Achtung, {versionsnummer} ist zu ersetzen mit der Python-Version, die ihr habt, bei mir 3.10.

Über feedback und konstruktive Kritik freue ich mich.

schöne Grüße,
Friedhelm




dominik

Hi Friedhelm,

benötigt dein Pull Request (https://github.com/dominikkarall/fhempy/pull/80) bereits die adaptierte Version der SkodaConnect Library? Oder klappt es auch ohne der Anpassung? Wenn es auch ohne geht, würde ich den mergen.

Btw, kann man über die API eventuell automatisch feststellen ob es ein EV ist? Womöglich check von einem Reading fuel oder so? Dann müsste man das Attribut nicht setzen was für neue User meistens schneller zum Erfolg führt.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

macfly

Zitat von: dominik am 01 Juni 2022, 22:15:46
Hi Friedhelm,

benötigt dein Pull Request (https://github.com/dominikkarall/fhempy/pull/80) bereits die adaptierte Version der SkodaConnect Library? Oder klappt es auch ohne der Anpassung? Wenn es auch ohne geht, würde ich den mergen.

Btw, kann man über die API eventuell automatisch feststellen ob es ein EV ist? Womöglich check von einem Reading fuel oder so? Dann müsste man das Attribut nicht setzen was für neue User meistens schneller zum Erfolg führt.

Benötigen ist zuviel gesagt. mit der Änderung der API würde man im state ein "Timeout" für 5s angezeigt bekommen, ist aber eher eyecandy.
Das automatisch feststellen habe ich nicht hinbekommen. Insbesondere, da offenbar EV und PHEV unterschiedlich angesteuert werden sollen, beide aber geladen werden können.


Warte aber nochmal mit dem pull-request, ich würde das gerne noch weiter testen .. (ich war da möglicherweise zu ungeduldig und zu stolz, was in python geschrieben zu haben, was nicht *sofort* eine exception wirft ;-))

dominik

Alles gut, probieren soll ja auch erlaubt sein, so habe ich auch Python gelernt :D
...und freut mich, dass du mitentwickelst, alleine kann ich die Vielzahl an Modulen kaum mehr stemmen. Danke!

Vielleicht kann jemand mit einem PHEV seine Readings hier posten, womöglich gibt es einen Wert den man gut für die Unterscheidung verwenden kann.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

MadMax

Guten Morgen,

Hier mal die Readings von meinem Enyaq.


setstate my_skoda connecting
setstate my_skoda 2022-06-02 05:54:27 battery_level 78
setstate my_skoda 2022-06-02 05:54:27 battery_level_str 78 %
setstate my_skoda 2022-06-02 05:54:27 charge_max_ampere Maximum
setstate my_skoda 2022-06-02 05:54:27 charge_max_ampere_str Maximum A
setstate my_skoda 2022-06-02 05:54:27 charge_rate 0
setstate my_skoda 2022-06-02 05:54:27 charge_rate_str 0 km/h
setstate my_skoda 2022-06-02 05:54:27 charging 0
setstate my_skoda 2022-06-02 05:54:27 charging_cable_connected 1
setstate my_skoda 2022-06-02 05:54:27 charging_cable_connected_str Connected
setstate my_skoda 2022-06-02 05:54:27 charging_cable_locked 1
setstate my_skoda 2022-06-02 05:54:27 charging_cable_locked_str Locked
setstate my_skoda 2022-06-02 05:54:27 charging_power 0
setstate my_skoda 2022-06-02 05:54:27 charging_power_str 0 W
setstate my_skoda 2022-06-02 05:54:27 charging_str Off
setstate my_skoda 2022-06-02 05:54:27 charging_time_left 00:00
setstate my_skoda 2022-06-02 05:54:27 charging_time_left_str 00:00 h
setstate my_skoda 2022-06-02 05:54:27 climatisation_target_temperature 19.0
setstate my_skoda 2022-06-02 05:54:27 climatisation_target_temperature_str 19.0 °C
setstate my_skoda 2022-06-02 05:54:27 departure1 1
setstate my_skoda 2022-06-02 05:54:27 departure1_str On
setstate my_skoda 2022-06-02 05:54:27 departure2 0
setstate my_skoda 2022-06-02 05:54:27 departure2_str Off
setstate my_skoda 2022-06-02 05:54:27 electric_climatisation 0
setstate my_skoda 2022-06-02 05:54:27 electric_climatisation_str Off
setstate my_skoda 2022-06-02 05:54:27 electric_range 272
setstate my_skoda 2022-06-02 05:54:27 electric_range_str 272 km
setstate my_skoda 2022-06-02 05:54:27 external_power 0
setstate my_skoda 2022-06-02 05:54:27 external_power_str Off
setstate my_skoda 2022-06-02 05:54:27 min_charge_level 100
setstate my_skoda 2022-06-02 05:54:27 min_charge_level_str 100 %
setstate my_skoda 2022-06-02 05:54:27 model_image_large https://ip-modcwp.azureedge.net/modcwp5azs22101014/H6H6us_L3HCJw0yo7X6l-2NpwBgdMTFsKr98Xmjva4Ph-8GrXMPj39fSUlhA1K-_4Fmcq6kgHbMxsP1puUERB7Oi0.-B-1080570dayvext_front1080.png



Gruß Max
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 5x SMA Wechselrichter, BYD HVM, SMA EVCharger, Daikin Wärmepumpe über CAN

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax