siehe Anhang
Plugin ICO ONDILO
Einklappen
X
-
Ich wollte den guten ICO auswintern und habe genau dasselbe Problem wie funpager - identische Fehlermeldung im Log. Scheint auf einen Fehler bei der Authentifizierung hinauszulaufen; laut API-Doku bedeutet der Fehlercode 400 bei diesem Aufruf:
Response
If the refresh token is invalid (unknown or outdated), response will have a 400 status code with an error message in the body.
Bei einem API-Test über das PyPi-Skript von Jerome Mainguet (https://pypi.org/project/ondilo/) lief alles einwandfrei: Die Schnittstelle lieferte alle Pooldaten.
Noch etwas: Laut Plugin-Page is 1.0.1 die aktuelle Version, bei der Installation aus der Original-Github-Quelle wird aber v1.0.0 installiert. So zumindest die Anzeige in der Plugin-Verwaltung. Brauche ich vielleicht nur die aktuelle Plugin-Version? Wenn ja, wo gibt es die?Kommentar
-
Hi Leute,
also ich hatte auch einen Fehler beim Umwandeln des Datums bei den Poolpflegehinweisen:
Code:Starting new HTTP connection (1): 192.168.1.77:80 http://192.168.1.77:80 "POST /dev/sps/io/ICO4/... HTTP/11" 200 96 ICO1-4 gelöscht time data '2025-04-17T03:31:45.000000Z' does not match format '%Y-%m-%dT%H:%M:%S+0000' Traceback (most recent call last): File "/opt/loxberry/data/plugins/ICO/ico.py", line 577, in <module> main(args) File "/opt/loxberry/data/plugins/ICO/ico.py", line 258, in main updated_time_obj = datetime.strptime(i['updated_at'], '%Y-%m-%dT%H:%M:%S+0000') + timedelta(hours=2) File "/usr/lib/python3.9/_strptime.py", line 568, in _strptime_datetime tt, fraction, gmtoff_fraction = _strptime(data_string, format) File "/usr/lib/python3.9/_strptime.py", line 349, in _strptime raise ValueError("time data %r does not match format %r" % ValueError: time data '2025-04-17T03:31:45.000000Z' does not match format '%Y-%m-%dT%H:%M:%S+0000'
Vielleicht hab ich oder jemand anderes die Muße den Datumsformatfehler zu korrigieren, aber zumindest geht so die Grundfunktion wieder.
Übrigens: Den von roaffa beschriebenen Token Authentifizierungsfehler 400 hatte ich nicht.
greetings rageAngehängte DateienKommentar
-
Hi leute,
hat jemand ein Tipp zu dieser Mldg:
2025-04-23 14:13:01 root INFO using plugin log file /opt/loxberry/log/plugins/ICOv2/ico.log
2025-04-23 14:13:01 root INFO using system configuration file /opt/loxberry/config/system/general.json
2025-04-23 14:13:01 root INFO Miniserver ip address: 192.168.1.20
2025-04-23 14:13:01 urllib3.connectionpool DEBUG Starting new HTTPS connection (1): interop.ondilo.com:443
2025-04-23 14:13:02 urllib3.connectionpool DEBUG https://interop.ondilo.com:443 "POST /oauth2/token HTTP/1.1" 400 None
2025-04-23 14:13:02 root CRITICAL 'error_description'
Traceback (most recent call last):
File "/opt/loxberry/data/plugins/ICOv2/ico.py", line 537, in
main(args)
File "/opt/loxberry/data/plugins/ICOv2/ico.py", line 149, in main
access_token = OndiloAPI().get_access_token(refresh_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/loxberry/data/plugins/ICOv2/ico.py", line 351, in get_access_token
print('Error : ',data['error_description'] )
~~~~^^^^^^^^^^^^^^^^^^^^^
KeyError: 'error_description'
Komme hier leider nicht weiter...
Gruss PeterKommentar
-
Hallo, gibt es schon Neuigkeiten wie man das Plugin wieder zum laufen bekommt? Hab auch die v2 Version installiert, leider kommt folgender Fehler:
loxberry@loxberry:~ $ python3 /opt/loxberry/data/plugins/ICOv2/ico.py
Number of arguments: 1 arguments.
Argument List: ['/opt/loxberry/data/plugins/ICOv2/ico.py']
using plugin log file ico.log
using system configuration file /opt/loxberry/config/system/general.json
Miniserver ip address: 192.168.1.xx
Starting new HTTPS connection (1): interop.ondilo.com:443
https://interop.ondilo.com:443 "POST /oauth2/token HTTP/1.1" 400 None
'error_description'
Traceback (most recent call last):
File "/opt/loxberry/data/plugins/ICOv2/ico.py", line 537, in <module>
main(args)
File "/opt/loxberry/data/plugins/ICOv2/ico.py", line 149, in main
access_token = OndiloAPI().get_access_token(refresh_token)
File "/opt/loxberry/data/plugins/ICOv2/ico.py", line 351, in get_access_token
print('Error : ',data['error_description'] )
KeyError: 'error_description'Kommentar
-
Hi, also weils ja bei mir läuft.... hat jemand schon meine ico.py versucht? Geht's damit?
Aber wahrscheinlich liegts eher am Auth Token, dieser liegt unter /opt/loxberry/config/plugins/ICO/token.txt
Vl. wird dieser neu generiert wenn man ihn löscht/umbenennt?... das ist aber nur spekulation.
Evl. hilft auch eine komplette Neuinstallation des Plugins.
greetings rageKommentar
-
Hallo, hat jemand eventuell die "alte" Version noch als zip Datei gespeichert? Unter den Plugins gibt es leider nur mehr die V2 Version und diese funktioniert aktuell nicht, wäre sehr dankbar darüber. lg👍 1Kommentar
-
Habe einen Workaround erstellt mit der V2 Version, scheinbar gibt es Probleme mit der Authentifizierung über API. Habe Werte direkt in der ico.py Datei hinterlegt und automatische Updates deaktiviert, zumindest läuft das Plugin wieder damit. Sollte wer meine Version der ico.py haben wollen einfach Bescheid gebenlg
👍 1Kommentar
-
Hallo,
hier meine ico.py Datei und eine kleine Anleitung was alles zu machen ist
zip Datei im Anhang
Anleitung:
1: Link für Ondilo Code aufrufen und anmelden: https://interop.ondilo.com/oauth2/authorize?client_id=customer_api&response_type=cod e&redirect_uri=http%3A%2F%2Flocalhost%2Fauthoriz e& scope=api&state=test123
2: Code aus generiertem Link kopieren: http://localhost/authorize?code=ef2818a5fca54927bf54026603085791&state=test123 -> Code
3: Terminal öffnen unter Systemeinstellungen am LB und folgende Abfrage eingeben:
curl -X POST https://interop.ondilo.com/oauth2/token -H "Content-Type: application/x-www-form-urlencoded" -d "client_id=customer_api" -d "grant_type=authorization_code" -d "code=ef2818a5fca54927bf54026603085791" -d "redirect_uri=http://localhost/authorize"
4: Wenn du den Befehl so ausführst, solltest du als Antwort ein JSON mit deinen Tokens erhalten:
curl -X POST https://interop.ondilo.com/oauth2/token -H "Content-Type: application/x-www-form-urlencoded" -d "client_id=customer_api" -d "grant_type=authorization_code" -d "code=ef2818a5fca54927bf54026603085791" -d "redirect_uri=http://localhost/authorize" {"access_token":"8612426|vCRLEOVpruC9PQZ2BWiSXNxkPiRaPHicllVhnKZp8e 8254c5","expires_in":3600,"token_type":"Bearer","sco pe": "api","refresh_token":"ef2818a5fca54927bf54026603085791"}
5: access_token (grün) kopieren und in ico.py Datei einfügen in Zeile 54, sowie auch die IP Adresse vom MiniServer in Zeile 79 und UDP Port in Zeile 80
6: automatische Updates deaktivieren beim Plugin *ico.py Datei wird sonst überschrieben mit Default Werten*
7: min und max Werte aus der ICO App eintragen in der ico.py Datei
8: Test ob Werte kommen über Terminal vom LB möglich mit folgendem Befehl:
python3 /opt/loxberry/data/plugins/ICOv2/ico.py
Werte werden wieder 1x/Stunde übertragenAngehängte DateienZuletzt geändert von mlackinger; 09.05.2025, 08:43.👍 3Kommentar
-
Habs versucht.... exakt nach deiner Beschreibung und erhalte immer den Fehler:
Response status: 401
Response content: {"success":false,"error":{"code":401,"message":"Un authorized","reason":"Unauthorized"}}
Error fetching pool infos: HTTP 401
Keine Pool-Daten gefunden.
Hast du noch einen Tipp für mich? -
fuul dann dürfte noch was fehlerhaft sein bei deinem Code, ev mal einen neuen erstellen und neu einfügen?
-
-
bitte folgenden Link nehmen da dürfte noch was gefehlt haben:
https://interop.ondilo.com/oauth2/authorize?client_id=customer_api&response_type=cod e&redirect_uri=http%3A%2F%2Flocalhost%2Fauthorize& scope=api&state=test123
Code ohne &state kopieren
Zugangsdaten nochmal neu hinterlegen im Plugin und ggf LB NeustartZuletzt geändert von mlackinger; 09.05.2025, 07:46.Kommentar
-
Anleitung wurde gerade nochmal getestet bei mir, Plugin sollte anhand der neuen Anleitung Werte liefern😀 2Kommentar
-
Hallo zusammen,
Das Plugin läuft bei mir einwandfrei. Ich würde die Daten gerne nutzen um eine automatische Dosierung von pH-Minus und Chlor zu realisieren. Vorab würde ich die Config gerne checken lassen ob die Daten aktuell sind. Der ICO schickt ja jedes mal mit den Daten auch ein Datum mit. Lässt sich das als eigener Eingang extrahieren. Ich habs mit der Befehlskennung in Loxone versucht bin aber kläglich gescheitert. Danke für euren Support!
Gruß LukasKommentar
Kommentar