Neues Modul: OilFox

Begonnen von eisler, 09 März 2020, 10:42:48

Vorheriges Thema - Nächstes Thema

Butzel

mittlerweile wurde das Log erneuert und dank Danny bin ich etwas weiter.
Ein Connect kommt trotzdem nicht zustande.
Log wirft nun
"2022.04.07 19:55:59 3: myOilFox: set called with update
2022.04.07 19:55:59 3: myOilFox: set update
2022.04.07 19:55:59 5: doUpdate() called.
2022.04.07 19:55:59 2: LOGIN TOKEN MISSING OR EXPIRED
2022.04.07 19:55:59 5: OilFox (myOilFox) - Notify:"
aus.
Irgendwo habe ich mal ein Thema zum Erneuern des Token gesehen aber nicht mehr gefunden. Hat das noch jemand parat ?

Butzel

folgendes habe ich noch gefunden. Vielleicht kann damit jemand etwas anfangen.
ZitatWir haben ein neues Login-Verfahren eingeführt, das auf Basis der OpenID Connect-Spezifikation und JWT funktioniert (mehr Infos dazu hier: https://auth0.com/docs/jwt). Wir hoffen mit diesem Verfahren die Sicherheit des Systems (und damit der Daten unserer Nutzer) verbessern zu können. Deshalb müssen Sie für den Login jetzt einen neuen Endpunkt benutzen:
POST https://api.oilfox.io/v3/login
Content-Type: application/json

{"email":"email@host", "password":"********"}

In der Antwort darauf erhalten Sie Ihren "access_token", der 15 Minuten lang gültig ist und mit dem alle bisherigen Anfragen getätigt werden können. Die Gültigkeitsdauer wird u.A. auch im Token gespeichert (zum decodieren siehe https://jwt.io/).
Verwendet wird er in jeder weiteren Anfrage (z.B. beim GET https://api.oilfox.io/v3/user/summary) im Authorization-Header:
Authorization: Bearer eyJ0eXAiO...

Außerdem erhalten Sie beim Login einen "refresh_token", mit dem Sie einen neuen access_token abrufen können, ohne dass Sie das Passwort des Nutzers im Klartext speichern und verwenden müssen. Der refresh_token ist 30 Tage lang gültig, bis er einmal benutzt wird. Damit erhalten Sie ein neues token-Paar:
POST https://api.oilfox.io/v3/token
Content-Type: application/x-www-form-urlencoded

refresh_token=eyJ0eXAiO...

Noch eine Bitte: Wenn Sie als User-Agent den Namen Ihres Plugins setzen (z.B. ioBroker.oilfox), fällt es uns leichter die Anfragen von anderen Clients zu unterscheiden und Probleme leichter zu erkennen.

thburkhart

neues Login-Verfahren

Wir haben ein neues Login-Verfahren eingeführt, das auf Basis der OpenID Connect-Spezifikation und JWT funktioniert (mehr Infos dazu hier: https://auth0.com/docs/jwt). Wir hoffen mit diesem Verfahren die Sicherheit des Systems (und damit der Daten unserer Nutzer) verbessern zu können. Deshalb müssen Sie für den Login jetzt einen neuen Endpunkt benutzen:
POST https://api.oilfox.io/v3/login
Content-Type: application/json


das scheint der Knackpunkt zu sein, dass das FHEM-Modul keinen Connect mehr herstellen kann.


@Modulersteller
Muss das im Modul geändert werden?

Herzliche Grüße

Thomas

1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

moskito

Ich denke mal das sind alte Angaben zum Login.
Zur Zeit werden die Angaben vom Customer API- Version 1 - 2021-11-08 genommen und die funktionieren bei mir.
https://github.com/foxinsights/customer-api/tree/main/docs/v1

Falls jemand aus diesem Post https://forum.fhem.de/index.php/topic,109102.msg1215721.html#msg1215721 einfach etwas rauskopiert hat, dann bitte noch mal das "exclude-from-update" Attribut überprüfen!

Gruß
Danny
FHEM auf Intel NUC/Proxmox & Debian 12 + HM-CFG-USB + zigbee2mqtt + Zwave + Enocean

Joerg_L

Hallo,

bei mir tut das Oilfox auch nichts mehr, egal was ich ausprobiere.

Unter Windows mit:
curl -X POST https://api.oilfox.io/customer-api/v1/login -H "Content-Type: application/json" -d "{\"password\":\"XXXXXXXXXXXXX\",\"email\":\"xxxxxx@xxxxxxx.xx\"}"

bekomme ich die richtige Antwort mit den Token.

Im FHEM mit dem originalen und auch mit dem im Post geänderten 12_OilFox.pm (17.39 kB - runtergeladen 12 Mal.)
kommt im LogFile bei Level 5 die folgenden Einträge und es bleibt auf disconnect:
2022.04.30 10:09:24 3: OelDev: set called with update
2022.04.30 10:09:24 3: OelDev: set update
2022.04.30 10:09:24 5: doUpdate() called.
2022.04.30 10:09:24 2: LOGIN TOKEN MISSING OR EXPIRED

Schade, ich werfe es nun raus und hoffe irgendwann wird sich ein netter Mensch finden und das Modul wieder zum laufen bekommen.

Grüße
Jörg

Joerg_L

Kaum habe ich es verzweifelt hier reingeschrieben, funktioniert es nun nach dem Xten reboot und reinkopieren, neuanlegen etc....

Danke

eisler

Änderungen von Danny mit aufgenommen:
https://svn.fhem.de/trac/changeset/26015/trunk/fhem
Damit sollte es wieder funktionieren.

Grüße
Stephan


thburkhart

hallo,

gibt es eine Anleitung, wie man das Modul von Grund auf neu einrichtet.

Vielen Dank
Thomas
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

moskito

Hab das mal schnell aus der Modulhilfe rauskopiert:
ZitatDefine

    define <name> OilFox

    Example:

        define myOilFox OilFox
        attr myOilFox email YOUR_EMAIL
        attr myOilFox password YOUR_PASSWORD


    You must set both attributes email and password. These are the same that you use to login via the OilFox App.


Attributes

    username - Email that is used in OilFox App
    password - Password that is used in OilFox App


Optional attributes

    oilfox - ID of OilFox, if more that one is registered. Default: 0
    interval - Time in seconds that is used to get new data from OilFox Cloud. Default: 300

Gruß
Danny
FHEM auf Intel NUC/Proxmox & Debian 12 + HM-CFG-USB + zigbee2mqtt + Zwave + Enocean

thburkhart

1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

Darkmann

Hi,

ich setzt gerade alle neu auf. Gibt es beim OilFox irgendwelche Probleme oder hab ich noch was anderes übersehen?

2022.12.22 13:13:31 2: {"statusCode":404,"errorCode":"GENERIC__NOT_FOUND"}
2022.12.22 13:13:31 1: PERL WARNING: Use of uninitialized value $token in concatenation (.) or string at ./FHEM/12_OilFox.pm line 405.
2022.12.22 13:13:32 2:  - JSON error while request: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!doctype html><html...") at ./FHEM/12_OilFox.pm line 441.

thburkhart

Zitat von: Darkmann am 22 Dezember 2022, 13:16:53
Hi,

ich setzt gerade alle neu auf. Gibt es beim OilFox irgendwelche Probleme oder hab ich noch was anderes übersehen?

2022.12.22 13:13:31 2: {"statusCode":404,"errorCode":"GENERIC__NOT_FOUND"}
2022.12.22 13:13:31 1: PERL WARNING: Use of uninitialized value $token in concatenation (.) or string at ./FHEM/12_OilFox.pm line 405.
2022.12.22 13:13:32 2:  - JSON error while request: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!doctype html><html...") at ./FHEM/12_OilFox.pm line 441.


habe die Fehlermeldungen auch; solange alles gelesen wird für mich ok
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

Darkmann

#72
Das Problem bei mir ist leider das nichts gelesen wird.


thburkhart

Zitat von: Darkmann am 22 Dezember 2022, 20:32:36
Das Problem bei mir ist leider das nichts gelesen wird.


da vermisse das "token", das wurde meines Wissens neu eingeführt und kommt aus der App
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

Darkmann

Zitat von: thburkhart am 23 Dezember 2022, 11:04:36

da vermisse das "token", das wurde meines Wissens neu eingeführt und kommt aus der App

Das heisst?

Kann bzw muss ich das irgendwo eintragen?

Gruß