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:

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.


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

Funktioniert :D :D :D


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
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. :D


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