Ein-/Auschalt-URL an Apilio

Von der openWB aus Schalten, hier geht es um Shelly und co.
KlausHaus
Beiträge: 20
Registriert: Mo Okt 31, 2022 10:41 am

Ein-/Auschalt-URL an Apilio

Beitrag von KlausHaus »

Ich öffne hier einen neuen Thread ausgehend von hier: viewtopic.php?p=74953#p74953

Ich habe bisher das alte SmartHome zum Schalten eines Klimageräts (derzeit Heizgerät) über Apilio/IFTTT mit Einschalt- und Ausschalt-URL in Abhängigkeit vom PV Überschuss genutzt. Das funktionierte gut. Nun habe ich das 1:1 ins SmartHome 2.0 übertragen als HTTP Gerät, aber dort funktioniert es nicht. Die URL für Apilio erzeugt eine Fehlermeldung im SmartHome-Log. Kann mir jemand helfen was diese Fehlermeldung bedeutet?
2022-11-10 16:30:00,560 INFO (7) TEST manueller Modus aktiviert, keine Regelung
urllib.error.HTTPError: HTTP Error 403: Forbidden
raise HTTPError(req.full_url, code, msg, hdrs, fp)
File "/usr/lib/python3.5/urllib/request.py", line 590, in http_error_default
result = func(*args)
File "/usr/lib/python3.5/urllib/request.py", line 444, in _call_chain
return self._call_chain(*args)
File "/usr/lib/python3.5/urllib/request.py", line 510, in error
'http', request, response, code, msg, hdrs)
File "/usr/lib/python3.5/urllib/request.py", line 582, in http_response
response = meth(req, response)
File "/usr/lib/python3.5/urllib/request.py", line 472, in open
return opener.open(url, data, timeout)
File "/usr/lib/python3.5/urllib/request.py", line 163, in urlopen
urllib.request.urlopen(url, timeout=5)
File "/var/www/html/openWB/modules/smarthome/http/off.py", line 27, in <module>
Traceback (most recent call last):
Im HTTP-Log (http://<ip-adresse>/openWB/ramdisk/smarthome_device_7_http.log) erscheint die URL korrekt.
11/10/2022, 16:30:00 http off.py devicenr 7 url https://app.apilio.com/webhooks/v2/bool ... 77cfcc6cb1)
Wenn ich dieselbe URL über das Adressfeld im Browser sende, wird sie von Apilio empfangen und bestätigt.
Wenn ich als Ein-/Ausschalt-URL eine URL an IFTTT sende, funktioniert es auch.
Die URL für Apilio ist allerdings mit 231 Zeichen sehr viel länger (da ist ein sehr langer Schlüssel drin).

Danke für einen Hinweis was da nicht stimmen könnte.

openWB series2 standard+ mit Version: 1.9.281.
openWB series2 standard+ / VW ID.3 / PV 12,5 kWp auf 4 Dachflächen mit Solaredge
Gero
Beiträge: 2368
Registriert: Sa Feb 20, 2021 9:55 am

Re: Ein-/Auschalt-URL an Apilio

Beitrag von Gero »

Drüben habe ich ja sxhon gesxhrieben, wie eine Abhilfe aussehen könnte. Es ist halt ein 403, den man mit einer Autentifizierung wegbekommt.
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
okaegi
Beiträge: 2185
Registriert: Fr Mär 08, 2019 1:57 pm

Re: Ein-/Auschalt-URL an Apilio

Beitrag von okaegi »

Geros Idee ist gut, kannst du mal dein Browsercache löschen (mit Passwörtern und so) und es dann nochmal aus dem Browser versuchen ?
Gruss Oliver
Entwickler- openWB (ehrenamtlich) / Feedback zu Funktionen immer erwünscht..
Smarthomeprobleme siehe hier (update :!: ): viewtopic.php?f=14&t=5923
KlausHaus
Beiträge: 20
Registriert: Mo Okt 31, 2022 10:41 am

Re: Ein-/Auschalt-URL an Apilio

Beitrag von KlausHaus »

Hallo,

Danke für Unterstützung. Das habe ich gemacht, zusätzlich sogar vom PC meiner Frau, wo auch gar nichts von meinen Zugangsdaten zu Apilio oder IFTTT gespeichert sein kann. Wenn ich von dort die URL aufrufe, wird sie positiv quittiert und ich sehe den Eingang im Apilio Event Log. Wenn ich sie über openWB als Ein-/Ausschalt-URL aufrufe, kommt die Fehlermeldung und es gibt keinen Eintrag im Apilio Event Log.

Ich werde dir, Oliver, per PN eine Apilio URL senden für eine extra für diesen Test eingerichtete Boolean Variable. Die URL schaltet die Variable zwischen true/false. Sonst ist keine Aktion damit verknüpft. Die kannst du beliebig zum Testen verwenden. Danke.
openWB series2 standard+ / VW ID.3 / PV 12,5 kWp auf 4 Dachflächen mit Solaredge
okaegi
Beiträge: 2185
Registriert: Fr Mär 08, 2019 1:57 pm

Re: Ein-/Auschalt-URL an Apilio

Beitrag von okaegi »

Problem ist bekannt. Der Server erkennt, das ein python programm abfragt und lehnt den Zugriff ab.

https://stackoverflow.com/questions/242 ... st-urlopen

In smarthome 1.0 war das nicht aus einem python programm, ich muss mal schauen, wie wir das umgehen,
Gruss Oliver
Entwickler- openWB (ehrenamtlich) / Feedback zu Funktionen immer erwünscht..
Smarthomeprobleme siehe hier (update :!: ): viewtopic.php?f=14&t=5923
okaegi
Beiträge: 2185
Registriert: Fr Mär 08, 2019 1:57 pm

Re: Ein-/Auschalt-URL an Apilio

Beitrag von okaegi »

Okay hab ne Möglichkeit gefunden.

headers = {'User-Agent': 'Mozilla/5.0'}
request = Request(url, headers=headers)
urlopen(request, timeout=5).read()

Wir erklären dem Server das wir ein Browser sind und nicht ein python programm.
Ich bau es mal in den on und off trigger ein und melde mich wenn es in der nightly ist.
Gruss Oliver
Entwickler- openWB (ehrenamtlich) / Feedback zu Funktionen immer erwünscht..
Smarthomeprobleme siehe hier (update :!: ): viewtopic.php?f=14&t=5923
KlausHaus
Beiträge: 20
Registriert: Mo Okt 31, 2022 10:41 am

Re: Ein-/Auschalt-URL an Apilio

Beitrag von KlausHaus »

Ich kann auch mal Apilio kontaktieren, ob die den Zugriff durch ein Python Programm freischalten können. Was meinst du? Oder macht es mehr Sinn das so zu umgehen, wie du oben vorschlägst?
openWB series2 standard+ / VW ID.3 / PV 12,5 kWp auf 4 Dachflächen mit Solaredge
Gero
Beiträge: 2368
Registriert: Sa Feb 20, 2021 9:55 am

Re: Ein-/Auschalt-URL an Apilio

Beitrag von Gero »

Den user-Agent abzufragen und danach zu entscheiden ob man sowas zulässt oder nicht, ist „security by obscurity“. Denn genauso wie Oliver sich als Browser ausgibt, kann das auch jeder andere.

Aber frag‘ ruhig mal nach, warum sie meinen, das so machen zu müssen. Schließlich bist du ja zahlender Kunde.
openWB-series2, openWB-Buchse, E3/DC S10pro+19.5kWh, 30kWp Ost-Süd, Model 3 und Ion
KlausHaus
Beiträge: 20
Registriert: Mo Okt 31, 2022 10:41 am

Re: Ein-/Auschalt-URL an Apilio

Beitrag von KlausHaus »

Hallo.

ich habe Apilio gefragt, ob sie den Zugriff durch ein Python Programm freischalten können. Antwort:
Hi Klaus,
thanks for the hint! I checked the Cloudflare firewall and indeed see that it was blocking Python clients.
I added an exception, so it should work now. You can try and let me know if it worked.
Bei einem erneuten Versuch mit der URL in openWB als Einschalt-URL kommt aber immer noch die Fehlermeldung im SmartHome-Log. Ich habe Apilio gebeten, es nochmal zu prüfen. Melde mich dann wieder.
openWB series2 standard+ / VW ID.3 / PV 12,5 kWp auf 4 Dachflächen mit Solaredge
okaegi
Beiträge: 2185
Registriert: Fr Mär 08, 2019 1:57 pm

Re: Ein-/Auschalt-URL an Apilio

Beitrag von okaegi »

Bitte neuste Nightly runterladen, da emulieren wir nun im Header ein Browser. Damit sollte es klappen.
Gruss Oliver
Entwickler- openWB (ehrenamtlich) / Feedback zu Funktionen immer erwünscht..
Smarthomeprobleme siehe hier (update :!: ): viewtopic.php?f=14&t=5923
Antworten