Einfacher Schalter in HA der per URL Shelly schaltet

Hallo,

ich habe bisher homebridge genutzt um meine diversen Geräte Homekit zur Verfügung zu stellen. Nun will ich gerne zu Home Assistant umsteigen (es gibt diverse Gründe dafür) und dann alles über die „HomeKit Bridge“ meinen Apple-Geräten zur Verfügung zu stellen. Dort mache ich dann auch die Automatisierung.

Was mir in Home Assistant nun noch fehlt ist die Möglichkeit - wie ich es per PlugIn aus Homebridge kenne – „virtuelle. Schalter“ anzulegen, die dann in Home Assistant und Homekit genutzt werden können.

Diese virtuellen Schalter aus Homebridge können verschiedene URLs ansprechen. So z.B. mit dem PlugIn „Homebridge Http Switch“

{
    "accessory": "HTTP-SWITCH",
    "name": "Shelly per URL ausschalten",
    "switchType": "stateless",
    "timeout": 1000,
    "onUrl": "http://IP-ADRESSE/relay/0?turn=off"
}

Ich habe so ähnlich nun in Home Assistant folgendes angelegt:

# START Switches
command_line:
 - switch:
     name: 'Test Shelly per URL ausschalten'
     unique_id: 'Shelly_test‘
     command_on: http://IP-ADRESSE/relay/0?turn=on
     command_off: http://IP-ADRESSE/relay/0?turn=off

In der GUI von Home Assistant funktioniert das überhaupt nicht. Es passiert nichts! Was ist falsch?

Ich habe deshalb dann einen RESTful Switch in HA angelegt:

switch:
 - platform: rest
   name: Test_Rest
   resource: http://IP-ADRESSE/relay/0?turn=toggle
   body_on: '{"ison": true}'
   body_off: '{"ison": false}'

Das geht dann in HA-Oberfläche, aber schaltet immer nur kurz an und gleich wieder aus um dann nach 10-15 Sekunden manchmal auch wieder umzuschalten. Alles sehr komisch.

Kann mir jemand vielleicht helfen. Ich hätte am liebsten einen Schalter, der entweder mit einer URL ein Shelly an- und ausschaltet (?turn=toggle) oder auch mit zwei URLs. Den Status sollte ausgelesen werden. Das wäre dann super. Wichtig ist, dass dieser Schalter auch in Homkit genutzt werden kann.

VIELEN DANK
Christian

Wenn du die Shellys richtig in HA angelegt hast, sind die Schalter doch schon vorhanden.
Dann kannst du sie doch direkt ansprechen. :thinking:

1 „Gefällt mir“

Das ist richtig. Mir geht es um die Möglichkeit auch Skripts die auf dem Shelly angelegt sind, anzusprechen. Es sind außerdem nicht nur Shellys.

Nachtrag:
Hat keiner eine Idee?

:crayon:by HarryP:
. Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)
. und warum so ungeduldig, wenn Du schon nach 18h nachfragst?

Evtl. solltest Du Dir überlegen einige Dinge eher zentral zu steuern. Benutze z.B. Automatisationen im HA. Dann kannst Du auch innerhalb des HA immer auf den aktuellen Status zugreifen.

Hier ein Beispiel für “es wird der Schalterkontakt eines Shelly’s betätigt”. Das Ereignis wird vom HA ausgewertet! Vereinfacht, um es für Dich hoffentlich verständlich zu machen:

- id: '1111111111111'
  alias: Taster 2 Shelly pressed single
  trigger:
  - platform: device
    device_id: 90485fbc0691b1xxxxxxxxxxxxxxxxxx  ## Shelly-Doppelschalter 
    domain: shelly
    type: single_push  ## einfacher Klick
    subtype: button1  ## Button0 und Button1 sind bei diesem Shelly möglich
  condition:  []
  action:
  - if:
    - condition: state  ### Status des shellys prüfen, wenn "on" dann "off" und umgekehrt
      state: "on"
      entity_id: switch.shellyplus2pm_xxxx_switch_1
    then:
    - service: switch.turn_off
      data: {}
      target:
        entity_id: switch.shellyplus2pm_xxx_switch_1
    else:
    - service: switch.turn_on
      data: {}
      target:
        entity_id: switch.shellyplus2pm_xxx_switch_1
  mode: single

Mit “zentralisieren” meine ich dann die Möglichkeit, über mehrere Aktoren übergreifend einen Shelly zu schalten, so ein am Shelly angeschlossenes Licht z.B. über einen Schalter und/oder über Bewegungsmelder zu steuern. Ist Licht aus, und ein Ereignis (taster/bewegung) wird gemeldet, dann wird ein Timer gestartet und das Licht geht an. Wird wärend dem Timer nochmal der Bewegungsmelder getriggert, dann kann z.B. der Timer wieder auf Startwert gesetzt werden. Wenn der Timer abgelaufen ist, dann wird Licht ausgeschaltet.

Bei mir melden alle Aktoren (Taster, Bewegungmelder, Helligkeitssensoren …) ihren Wert immer an Home Assistant. Dort laufen dann die Skripte, die über alle Informationen verfügungen, um zentral richtig zu agieren.

Hoffe das hat etwas geholfen.

:crayon:by HarryP: Codezeilen formatiert (bitte immer in </> einbinden)

Danke dir, das ist auf Dauer sicherlich eine gute Idee. Allerdings geht es bei den Skripts, die ich auf den Shellys starten will, um eine Automatisierung, die ich auch bei dem Shelly per Taster auslöse. Es ist im Grunde eine Treppenhaus-Licht-Steuerung mit Ausschaltwarnung. Das ist auch per HA machbar, aber da muss ich mehr umbauen, was ich gerade nicht will/kann.
Außerdem habe ich auch weitere Geräte, die nicht direkt in HA einbindbar sind, aber über eine API verfügen. Aber ein Aufruf per http://xyz.abc?turn=xyz wäre gut.

Hier solltest du antworten finden

Mit den Beispielen konnte ich mein Problem lösen. Danke.