HTTP Request auf Home Assistant um Tuya Lampen im Air zu Steuern

Antworten
Benutzeravatar
Semtex
Beiträge: 80
Registriert: Do 23. Mär 2017, 12:57
Wohnort: Wendelstein

So 22. Aug 2021, 10:32

Servus,


ist es möglich eine POST Befehl in Air einzufügen damit der Air meine Lampen von Tuya SmartLife in Home Assistant AUS/Ein schaltet.

Code: Alles auswählen

curl -X POST -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI2MTNhMTQ4NWE2ZjU0Yzk0YjRkOGE2YmNkNmQ1ZGEyYyIsImlhdCI6MTYyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -H "Content-Type: application/json" -d "{\"entity_id\": \"light.spotlight\"}" http://XXX.XXX.XXX.XXX:8123/api/services/homeassistant/toggle
In Windows CMD kann ich so den Spotlight schalten über diesen Befehl.

Wie muss die Config unter LAN Einstellungen sein

Code: Alles auswählen


Type:
POST

Content-Type:
application/json

API-URL: 
https://xxx.xxx.xxx.xxx:8123/api/services/homeassistant/toggle

Header:
Authorization:Bearer DEIN_TOKEN

Data:
{
"entity_id": "light.wled"
}
Über die API-URL Steuer ich alle HA-Dienst z.b. Tuya Lampen
In dem Data abschnitt die notwendigen Dienst-Daten wie Target-Entity, Licht-Color.....

Nur wie kann ich das eintragen im Air.
Benutzeravatar
Semtex
Beiträge: 80
Registriert: Do 23. Mär 2017, 12:57
Wohnort: Wendelstein

Mo 23. Aug 2021, 16:36

Hier nochmal paar Logs

Code: Alles auswählen

Fehlermeldung 
Log Logger: homeassistant.components.http.ban
Source: components/http/ban.py:124
Integration: HTTP (documentation, issues)
First occurred: 11:28:25 (1 occurrences)
Last logged: 11:28:25

Login attempt or request with invalid authentication from xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx).

Log vom AIR

Code: Alles auswählen

xx.xx.xx.xx > pst,uri,xx.xx.xx.xx:8123/api/services/homeassistant/toggl...
Wo kann ich den Header angeben?
Benutzeravatar
Semtex
Beiträge: 80
Registriert: Do 23. Mär 2017, 12:57
Wohnort: Wendelstein

Mi 25. Aug 2021, 15:53

Kann ja nicht sein das hier keiner was dazu sagen kann.

Was ist eigentlich mit URL Codierung gemeint?
In der FAQ steht auch nichts.
Dateianhänge
LAN_GET_2.jpg
LAN_GET_2.jpg (29.4 KiB) 6489 mal betrachtet
2712
Beiträge: 1317
Registriert: Fr 12. Aug 2016, 07:20
Wohnort: Österreich

Mi 25. Aug 2021, 16:55

Ich denke, du wirst den Header in die url einbauen müssen. Wenn ich sowas mache teste ich das vorab mit Postman https://www.postman.com/. Läuft es damit, geht es anschl. auch mit dem Light Manager

Zu der url codierung kann ich dir auch nichts sagen, als das ich diese bei meinen post (für meinen Bose Soundtouch) Befehlen immer angehakt (also keine url codierung) habe, damit es funktioniert.

In deinem Fall schätz ich, dass der Header hinter der api eingefügt werden muss,ist wohl der key um das Schalten zu autorisieren...
sprich
https://xxx.xxx.xxx.xxx:8123/api/dein_Token/services/homeassistant/toggle
LMAir&2 Extender, 3 X RM3mini, Harmony Elite & 3 X Companion, Deconz Zigbee Gateway, piVCCU, Node-Red (für Anbindung Harmony, Homematic, Broadlink, Dreamscreen, Zigbee), ettliche Aktoren, 8 Alexas, Fritzbox 7590, 7490, 7560, 2 X 4040, 1 X 450 :D
Benutzeravatar
jbmedia
Administrator
Beiträge: 4446
Registriert: Mi 17. Feb 2016, 13:42

Mi 25. Aug 2021, 17:08

Die Ansteuerung klappt nicht, da der Authorization Header nicht übergeben wird. Ansonsten ist es ein normaler HTTP Post. URL Codierung ist hier nicht erforderlich, da keine Sonderzeichen in den Daten enthalten sind.

Damit das ganze funktioniert, müssten wir ein weiteres Feld einfügen, wo man den Header Eintrag hinterlegen kann. Etwas unschön ist, dass dies nur für Home Assistant benötigt würde. Außerdem verwendet Home Assistant eine unnötig komplizierte Variante. Man hätte den Bearer Token genauso gut in den Datenbereich legen können, ohne eine proprieären Header zu verwenden.

Wir würden folgende Lösung vorschlagen: Home Assistant läuft auf einem Linux-Rechner, wahrscheinlich ein Raspberry Pi. Darauf ist bestimmt auch ein Apache mit PHP installiert oder lässt sich mit wenigen Klicks nachrüsten. Dafür erstellt man ein simples PHP Skript, welches den Post vom Light-Manager entgegennimmt, den Header hinzufügt und an Home Assistant (localhost) weiterleitet.
Wir wünschen viel Spaß mit den Produkten und einen erfolgreichen Tag! Ihr jbmedia Team :)

Benutzeravatar
Semtex
Beiträge: 80
Registriert: Do 23. Mär 2017, 12:57
Wohnort: Wendelstein

Mi 25. Aug 2021, 17:30

Danke JBMedia für die Antwort.
Damit das ganze funktioniert, müssten wir ein weiteres Feld einfügen
Ja das mit den Token ist in Home Assistant schlecht gelöst. Leider muss ich wegen UniFi Doorbell in Verbindung mit UniFi Protect auf Home Assistant gehen nur in HA kann ich meine Doorbell an Google Home integrieren.

Wie groß wäre der Aufwand dies zu Integrieren?
Weiß nicht vielleicht ist es auch für andere User interessant.

Ja meine Home Assistant ist auf Debian 11 aufgesetzt.

Wäre natürlich genial wenn ihr was einfügen könnt.
mondface
Beiträge: 44
Registriert: So 3. Jul 2016, 20:52

Do 26. Aug 2021, 08:27

Bei mir geht der Zugriff auf home assistant einfach per put:

http://192.168.9.23:8123/api/webhook/Sc ... o20Prozent

Dann fährt mein ikea rollo auf 20% Öffnung.
Antworten