Shelly goes HomeAssistant (HA)

  • Shelly in HomeAssistant

    Inhaltsverzeichnis:

    1. Vorbereitung und Voraussetzungen
    2. Shelly in Home Assistant (HA) einbinden
      1. Only Rest API
      2. CoAP und Rest
    3. Shelly Komponenten verwenden
    4. Schlusswort
    5. Quellen

    1. Vorbereitung und Voraussetzungen

    Vorausgesetzt wird ein System auf welchem HA laufen soll, möglichst Energie-effizient und im Dauerbetrieb, hier bietet sich ein Raspberry PI an, welchen ich auch in meinem System nutze.

    Link zur offiziellen Raspberry.org Webseite: Raspberrypi.org - Ich empfehle den aktuellen "Raspberry Pi 3 Model B+".

    Auf dem System sollte HomeAssistant (Hassio) installiert werden, an diesem Punkt möchte ich auf die offizielle Webseite von Home-Assistant verweisen, da dort explizit erklärt wird wie man HomeAssistant installiert und verwendet. Home Assistant - Getting started

    2. Shelly in Home Assistant einbinden

    Es gibt verschiedene Arten Shellys in Home Assistant zu verwenden, ich werde in diesem Tutorial auf die "Only RestAPI" - Variante und auf die "CoAP und RestAPI" - Variante hinweisen.

    Im wesentlichen ist es mir wichtig zu erklären warum ich nicht MQTT verwende:

    • Shelly Cloud kann wie gewohnt verwendet werden
    • ...somit auch Alexa, etc. (ohne weitere Konfigurationen in HA)
    • weniger Konfiguration, da kein MQTT Broker, etc. gebraucht wird
    • schnelleres Ansprechen der Relais, da der Shelly direkt angesprochen wird

    2.1. Only RestAPI

    Allterco Robotics hat in der Stock Firmware bereits grundlegende Funktionen implementiert wie z.B. die RESTful API, mit dieser API wird es ermöglicht auf den Shelly per URl-Call zuzugreifen:

    http://192.168.x.x/relay/0=on

    weitere Informationen zur RESTful API hier

    Wie man das ganze jetzt in HA umsetzt sieht wie folgt aus:

    1. Öffnen der configuarion.yaml (oder falls vorh. die switch.yaml)

    2. Unter "switch:" folgendes einfügen:

    Shelly1 Example
    Code
    switch:
      - platform: rest
        name: "Shelly1"
        scan_interval: 5
        resource: http://192.168.0.100/relay/0
        body_on: 'turn=on'
        body_off: 'turn=off'
        is_on_template: '{{ value_json.ison == true}}'
        headers:
          content-type: application/x-www-form-urlencoded

    weitere Snippets sind auf meinem Github zu finden: Github - GrtDlks - RESTfulShelly


    2.2. (Empfohlen) CoAP und Rest

    Wie man in 2.1. merkt ist es etwas mühselig die Shellys per Hand hinzuzufügen, da Alterco neben der RESTful API auch CoAP hinzugefügt hat, kann man Shellys auch per TCP-Traffic kontaktieren. Diese Möglichkeit hat sich der Schwedische Shelly-Reseller Hakan Akerberg von styrahem.se zu nutze gemacht und direkt eine Komponente für HomeAssistant programmiert.

    Auf dem Github von Hakan, ist schlicht erklärt, wie man seine Komponente in HA verwendet: Github - StyraHem - hass

    1. Öffnen der configuarion.yaml

    2. shelly: einfügen und speichern

    3. Ordner custom_components im selben Verzeichnis wo sich die Configuration.yaml befindet erstellen

    4. Download des Ordners "Shelly" von Github und alle Dateien in custom_components/Shelly einfügen

    5. Hassio neustarten

    3. Shelly Komponenten verwenden

    ...folgt.

    4. Schlusswort

    ..folgt.

    5. Quellen

    ...folgt.

  • Nachtrag zu HomeAssistant

    Vor kurzem wurde eine neue Version veröffentlicht inklusive einer neuen Integration welches das hinzufügen von "Custom_Components" innerhalb von wenigen klicks ermöglicht.

    In einer reinen Hassio Installation folgende Schritte durch gehen:

    1. https://hacs.xyz/docs/installation/manual
    2. Nach dem HACS nach der offiziellen Anleitung installiert wurde, ca. 20 Minuten warten während "Background task running, refresh the page in a little while" im Reiter "Community" steht.
    3. Im Store nach Shelly suchen und die Komponente von Hakan "StyraHem" installieren und wie gewohnt über die configuration.yaml konfigurieren

    Einmal editiert, zuletzt von GrtDlks (10. November 2019 um 10:41)