HTTP Aufruf aus HomeAssistant Automation

loewes

Member
Hallo,

ich würde gerne einen alten HomeWizard mit HomeAssistant steuern. Aber es gibt kein Addon und das Produkt ist abgekündigt... Also habe ich es über http-Requests (in openHAB) realisiert. Aus verschiedenen Gründen möchte ich auf HomeAssistant umsteigen, aber ich konnte bisher keine Lösung für diesen http-Request finden.
Was ich machen möchte: den http-Request als Aktion/Dienst in eine Regel aufnehmen (z.B. "http://192.168.178.xx/password/sw/1/settarget/20 1" zum Einstellen der Heizkörpertemperatur).
Kann mir jemand helfen?
Vielen Dank!
 
Hi,

also wovon ich weiss (und ich bin nun echt kein HA-Spezi) wäre etwas in Richtung "Button" (Karte "Schaltfläche"), das könnte z.B. so aussehen:

YAML:
type: button
tap_action:
  action: url
  url_path: 'http://192.168.178.xx/password/sw/1/settarget/20'

Insofern ist es also durchaus möglich, dass auch URLs angesprochen werden. Eins kann aber bei Deiner URL nicht ganz stimmen:
Man sieht es schon durch die Trennung der URL von der "1", da gibt es keine Leerzeichen.

Aber mal ganz davon ab... Für HomeWizard finde ich durchaus noch einiges... eine Integration (welche sich aber wohl primär auf "Energy" fixiert, ggf. kommt die Integration auch einfach nur durch HACS (auch eine Installation wert)). Ich habe übrigens im Zusammenhang mit "HomeWizard" auch noch "Smartwares" gefunden (ist ggf. auch das gleiche). Ansonsten... Es gibt ja sicherlich a) eine Basis (bzgl. Deinem HTTP-Aufruf) und das zu steuernde Gerät selbst. Frage wäre hier ggf. "wie" die beiden kommunizieren, ggf. kann man sich dann die Basis auch komplett schenken. So wie sich das für mich bisher gelesen hat, wäre es wohl MQTT (falls Du davon Ahnung hast, kann man auch mal hier schauen). Falls nicht, bleib einfach bei Deinem Plan mit dem HTTP ☺️

EDIT: Da ich wie gesagt kein HA-Spezi bin, könnte ich mir aber dennoch evtl. folgendes vorstellen: Irgendwas in Richtung Schieberegler (Temperatur einstellen), dieser Wert wird in eine Variable gespeichert und danach erfolgt dann der Aufruf in Form von: "http://192.168.178.xx/password/sw/1/settarget/<Variable>" (oder irgendwie in diese Richtung jedenfalls). Da können andere aber definitiv mehr zu sagen als ich 😅
 
Hi, vielen Dank für die schnelle Antwort!
Das mit der URL war ein Copy-Paste-Fehler, sorry, die 1 gehört da nicht hin...
Die Lösung mit dem Button sieht vielversprechend aus, nur hab ich grad noch keine Ahnung, wo ich das eintragen muss. Die Konfig muss ich ja vermutlich erstmal an einer zentralen Stelle definieren? Ist das wie auch bei Sensoren die configuration.yaml?
Ich bin gerade erst noch dabei, mich in HA einzuarbeiten, so ganz hab ich noch nicht verstanden, was wo definiert werden muss. Vielen Dank für die Hilfe!
 
So einen Button erstellt man grundsätzlich innerhalb von "Übersicht" - ich bin mir aber nicht sicher, ob das so direkt geht (einen Versuch wäre es natürlich wert) - persönlich würde ich vermutlich über https://www.home-assistant.io/integrations/rest_command/ gehen und dieses Kommando bzw. diesen Dienst dann von dem Button aus aufrufen.

Beispiel - das hier in die configuration.yaml:
YAML:
rest_command:
  rest_name_0:
    url: 'http://192.168.178.xx/password/sw/1/settarget/20'
und dann (nach einem Neustart von HA) in der Übersicht einen Button aka Schaltfläche so konfigurieren:
1677670506983.png
 
Perfekt! Das funktioniert! Vielen Dank!
Eigentlich reicht mir das so, es gäb aber noch ne Steigerung ;): Die Target-Temperatur (also im Beispiel "/20") könnte noch flexibel eingestellt werden. Hat da auch jemand eine Idee, wie das gehen könnte? Ich müsste also den "Text" in der URL flexibel anpassen können...
 
Input Number wäre wohl was Du suchst:

YAML:
input_number:
  slider1:
    name: Slider
    initial: 20
    min: 16
    max: 30
    step: 1
(Quelle: https://www.home-assistant.io/integrations/input_number/)

Dazu dann etwas was die primäre (statische) URL und den Wert von Input Number zusammenbaut (URL-Neu = URL+InputNumber). Danach nutzt Du nur noch dieses zusammengebaute (url: URL-Neu)... wenn das so funktioniert... aber lass mal lieber die Leute mit Ahnung antworten... das hier war jetzt nur rein theoretischer Natur 😅
 
Ebenfalls reine Theorie - input_number erstellen (über Einstellungen => Geräte & Dienste => Helfer => "Nummer"), diesen in der Übersicht einbinden (als Entität) um ihn bequem bedienen zu können, dann
YAML:
rest_command:
  rest_name_0:
    url: 'http://192.168.178.xx/password/sw/1/settarget/'
    payload: '{{ states("input_number.xyz") }}'
 
Wow, vielen Dank, das mit der Voreinstellung (input_number) hat gut funktioniert, nur leider setzt er die URL noch nicht richtig zusammen.
Muss ich da vielleicht noch definieren, wo der "payload" eingefügt wird in die "url"? Oder wo sehe ich ein Log-File, dass ich sehen kann, was er wirklich aufruft? Oder muss ich das Logging für die Funktion erst aktivieren?
 
Nein, payload kommt am Ende hinten dran - da ich es selber nicht nutze kann ich aber nicht sicher sagen, ob das "wie gewünscht" funktioniert. Versuch vielleicht erstmal, die 20 direkt als payload einzutragen, ob das das gewünschte Ergebnis bringt.

Alternativ könnte eventuell noch sowas funktionieren:
url: {{ 'http://192.168.178.xx/password/sw/1/settarget/' ~ states("input_number.xyz") }}
oder
url: '{{ "http://192.168.178.xx/password/sw/1/settarget/" ~ states("input_number.xyz") }}'

Ob / wie das geloggt werden kann weiß ich leider nicht, hier ist dann wieder von Nachteil dass ich mit HA eigentlich nichts zu tun habe ;)
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.378
Beiträge
45.211
Mitglieder
3.976
Neuestes Mitglied
calibra52
Zurück
Oben