URL in Automatisierung aufrufen

Rat und Tat rings um Home Assistant Automationen.


Antworten
Benutzeravatar
Undertaker
Beiträge: 211
Registriert: Di 26. Apr 2022, 09:21
1
Wohnort: Karlsruhe
Has thanked: 55 times
Been thanked: 32 times

URL in Automatisierung aufrufen

Beitrag 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/"
"Ich habe keine besondere Begabung, sondern bin nur leidenschaftlich neugierig."
Albert Einstein
Benutzeravatar
Osorkon
Administrator
Beiträge: 1905
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 60 times
Been thanked: 516 times
Kontaktdaten:

Re: URL in Automatisierung aufrufen

Beitrag von Osorkon »

Analog der Homey Webhooks.
Die base URL als Rest command anlegen und den eigentlichen Befehl als variable

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Undertaker
Beiträge: 211
Registriert: Di 26. Apr 2022, 09:21
1
Wohnort: Karlsruhe
Has thanked: 55 times
Been thanked: 32 times

Re: URL in Automatisierung aufrufen

Beitrag 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:

Code: Alles auswählen

service: rest_command.local_api
data: test

/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.

"Ich habe keine besondere Begabung, sondern bin nur leidenschaftlich neugierig."
Albert Einstein
Benutzeravatar
Osorkon
Administrator
Beiträge: 1905
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 60 times
Been thanked: 516 times
Kontaktdaten:

Re: URL in Automatisierung aufrufen

Beitrag 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

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Undertaker
Beiträge: 211
Registriert: Di 26. Apr 2022, 09:21
1
Wohnort: Karlsruhe
Has thanked: 55 times
Been thanked: 32 times

Re: URL in Automatisierung aufrufen

Beitrag von Undertaker »

Funktioniert :D :D :D

"Ich habe keine besondere Begabung, sondern bin nur leidenschaftlich neugierig."
Albert Einstein
Benutzeravatar
Undertaker
Beiträge: 211
Registriert: Di 26. Apr 2022, 09:21
1
Wohnort: Karlsruhe
Has thanked: 55 times
Been thanked: 32 times

Re: URL in Automatisierung aufrufen

Beitrag 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.

"Ich habe keine besondere Begabung, sondern bin nur leidenschaftlich neugierig."
Albert Einstein
Benutzeravatar
Osorkon
Administrator
Beiträge: 1905
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 60 times
Been thanked: 516 times
Kontaktdaten:

Re: URL in Automatisierung aufrufen

Beitrag 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

Einer muss ja für Ordnung sorgen. :D
Benutzeravatar
Undertaker
Beiträge: 211
Registriert: Di 26. Apr 2022, 09:21
1
Wohnort: Karlsruhe
Has thanked: 55 times
Been thanked: 32 times

Re: URL in Automatisierung aufrufen

Beitrag 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
Screenshot_20221021-133555_Chrome.jpg (14.61 KiB) 1397 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. :D

"Ich habe keine besondere Begabung, sondern bin nur leidenschaftlich neugierig."
Albert Einstein
Benutzeravatar
Osorkon
Administrator
Beiträge: 1905
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 60 times
Been thanked: 516 times
Kontaktdaten:

Re: URL in Automatisierung aufrufen

Beitrag von Osorkon »

@Undertaker Du wirst ja langsam zu einem Home Assistant Experten! 😀 👍

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
Antworten