Seite 1 von 1
URL in Automatisierung aufrufen
Verfasst: Mi 19. Okt 2022, 15:54
von Undertaker
Hallo Jungs,
Eine relativ einfache Frage.
Ich habe einen lokalen API Server am Laufen. Ich kann dort Aktionen mit sehr einfachen Befehlen auslösen.
Beispiel: http://192.168.1.168:3000/test
Wie muss ich so einen Befehl in eine Automatisierung einbauen, dass HA solche URLs aufruft ?
Geht das wirklich nur, wenn ich jeden Befehl in die configuration.yaml eintrage ?
Code: Alles auswählen
# Example configuration.yaml entry
rest_command:
example_request:
url: "http://example.com/"
Re: URL in Automatisierung aufrufen
Verfasst: Mi 19. Okt 2022, 16:36
von Osorkon
Analog der Homey Webhooks.
Die base URL als Rest command anlegen und den eigentlichen Befehl als variable
Gruß
Osorkon
Re: URL in Automatisierung aufrufen
Verfasst: Fr 21. Okt 2022, 12:51
von Undertaker
Ich hab das so versucht, funktioniert aber nicht. Wo ist mein Fehler ?
Configuration yaml:
Code: Alles auswählen
rest_command:
local_api:
url: "http://192.168.1.168:3000"
Das als Vorlage. Die eigentlich Auslösung erfolgt mit "/test", was ich versucht habe als Variable zu senden.
Automatisierung:
/test funktioniert leider auch nicht.
Der Aufruf von Funktionen erfolgt mit dem String (Beispiel):
http://192.168.1.168:3000/test. Im Browser eingegeben, funktioniert es sofort.
Re: URL in Automatisierung aufrufen
Verfasst: Fr 21. Okt 2022, 13:32
von Osorkon
Code: Alles auswählen
rest_command:
local_api:
url: "http://192.168.1.168:3000/{{text}}"
Code: Alles auswählen
action:
- service:
rest_command.local_api
data:
text: test
Die Variable {{text}}, oder wie auch immer Du diese benennen möchtest hat gefehlt.
Diese übergibst Du dann per Automatisierung oder Script mit dem Service rest_command.local_api
Gruß
Osorkon
Re: URL in Automatisierung aufrufen
Verfasst: Fr 21. Okt 2022, 13:54
von Undertaker
Re: URL in Automatisierung aufrufen
Verfasst: Sa 22. Okt 2022, 11:38
von Undertaker
Wenn ich dich aber gerade am Rohr habe.
Die locale Api kann mir auch Werte zurück melden. Das geht von der Bestätigung "ok" bis zu Werten von Sensoren.
Die Rückmeldung sieht so aus:
Code: Alles auswählen
{"status":"success","url":"/test","method":"GET","data":20.63}
Der Wert Data ist in diesem Fall die Aussentemperatur.
Meine Frage ist, ob HA mit dieser Rückmeldung etwas anfangen kann, bzw. ich mit dem ausgegebenen Wert "data", einen virtuellen Sensor füttern kann ?
Ich hab da überhaupt keinen Plan, wie ich das anstellen könnte.
Re: URL in Automatisierung aufrufen
Verfasst: So 23. Okt 2022, 12:22
von Osorkon
Das wäre dann der RESTful Sensor
Müsstest Du Dich mal durch die doku kämpfen, da ich (noch) keine Erfahrungen damit habe.
Gruß
Osorkon
Re: URL in Automatisierung aufrufen
Verfasst: So 23. Okt 2022, 12:34
von Undertaker
Ich bin etwas weiter gekommen, scheitere aber noch an der Anzeige des Wertes.
Ich komm einfach nicht drauf, was ich in der letzten Zeile eintragen muss, dass mir der Sensor den Zahlenwert anzeigt (configuration.yaml).
Code: Alles auswählen
sensor:
- platform: rest
resource: http://192.168.1.168:3000/test
name: temperature
unit_of_measurement: "°C"
value_template: "data"
Wenn ich die Zeile "value_template: "data"" weg lasse, meldet der Sensor den kompletten String der Api zurück:
- Screenshot_20221021-133555_Chrome.jpg (14.61 KiB) 1624 mal betrachtet
Es geht also nur noch darum, wie ich den Wert Data aus diesem String herausfiltern kann und als Wert für den Sensor verwende.
Edit:
Ich habe die Lösung:
Code: Alles auswählen
sensor:
- platform: rest
resource: http://192.168.1.168:3000/test
name: temperature
unit_of_measurement: "°C"
value_template: "{{ value_json.data }}"
Der Sensor tut jetzt, was er soll.
Re: URL in Automatisierung aufrufen
Verfasst: So 23. Okt 2022, 13:31
von Osorkon
@Undertaker Du wirst ja langsam zu einem Home Assistant Experten!
Gruß
Osorkon