How-To: Dreame X40 Ultra Complete in Loxone (mit Home Assistant und Loxberry)

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • andy114425
    Dumb Home'r
    • 15.02.2017
    • 23

    #1

    How-To: Dreame X40 Ultra Complete in Loxone (mit Home Assistant und Loxberry)

    Hallo zusammen,

    nachdem ich nun einige Zeit damit verbracht habe meinen Dreame X40 über Loxone steuern zu können, möchte ich mit euch ein kleines How-To teilen.
    Ich gehe davon aus, dass Home Assistant bereits auf einem RasPi o.ä. läuft und ihr auch die Integration "Dreame Vacuum" installiert habt und diese funktioniert.
    Zusätzlich benötigt ihr noch MQTT Statestream auf dem HA und einen MQTT-Broker, z.B. auf einem Loxberry.

    1. Sensor-Daten von HA an Loxone senden
    Zuerst wollen wir verschiedene Sensor-Daten des Robots in Loxone erhalten. Hierfür lassen wir HA die Daten mittels MQTT Statestream publishen. Nach der Installation von MQTT Statestream geschieht dies automatisch. Bitte beachten, dass ihr in der configuration.yaml noch folgendes ergänzen müsst:
    Code:
    # Example configuration.yaml entry
    mqtt_statestream:
      base_topic: homeassistant
      publish_attributes: true
      publish_timestamps: true
    Die Werte können dann im Loxberry eingesehen werden und mit einem virtuellen Eingang in Loxone bereitgestellt werden.

    Beispiel: Status
    Hierfür müsst ihr einen "Virtuellen UDP Eingang" erstellen mit der IP eures Loxberry (bzw. MQTT-Broker). Der Standard UDP Empfangsport ist 11883.
    Nun erstellt ihr einen "Virtuellen UDP Eingang Befehl". In das Feld Befehlserkennung schreibt ihr für den Status-Wert folgendes
    Code:
    MQTT:\ihomeassistant/sensor/x40_ultra_complete_state/value=\i\v
    Analog dazu könnt ihr weitere "Virtuelle UDP Eingang Befehle" erstellen. Einfach im Loxberry unter MQTT-Gateway -> Incoming Overview die entsprechenden Command Recognition kopieren und in das Feld Befehlserkennung eintragen.

    2. Werte von Loxone an HA senden
    Um den Robot über Loxone steuern zu können, müssen wir die entsprechenden Befehle an HA senden. Hierzu erstellen wir in Loxone zunächst einen "Virtuellen Ausgang". Bei Adresse geben wir die IP des HA ein mit dem Port 8123 (falls nicht manuell geändert).
    Code:
    http://192.168.178.50:8123
    Um mit HA kommunizieren zu können benötigen wir noch einenLanglebigen Zugriffstoken. Diesen können wir uns in HA erstellen. Dazu gehen wir unten rechts auf unser Profil und dann auf den Reiter Sicherheit. Ganz unten können wir dann einen Token erstellen. Diesen bitte notieren.

    Als nächstes erstellen wir einen "Virtuellen Ausgang Befehl". In den HTTP header bei EIN kommt immer folgendes:
    Code:
    Authorization: Bearer {Long Life Token}
    {Long Life Token} durch den eben erstellten Token ersetzen (ohne geschweifte Klammern)

    Befehl bei EIN und HTTP body bei EIN ist je nach Entität unterschiedlich. Weiter unten füge ich eine Liste an, welche Kombinationen mir aktuell bekannt sind. An dieser Stelle nun aber als Beispiel der Befehl zum Starten der Reinigung:

    Befehl bei EIN:
    /api/services/vacuum/start
    HTTP body bei EIN:
    { "entity_id": "vacuum.x40_ultra_complete" }
    HTTP Methode bei EIN ist immer POST. Ich habe den Haken bei Digitaleingang gesetzt.

    Es sollte dann in etwa so aussehen


    Zum Testen kann nun der Virtuelle Ausgang Befehl z.B. mit einem Taster verbunden werden und der Saugroboter gestartet werden.

    3. Liste der Befehle
    Um die Kombinationen der Befehle bei EIN und den HTTP body bei EIN herauszufinden, muss man in HA in die Entwicklerwerkzeuge wechseln. Dort kann man unter Aktionen eine Entität suchen und verschiedene Parameter herauslesen, die helfen die Befehle zu erstellen. Aber vieles ist trotzdem Try&Error. Daher hier eine Liste mit Befehlskombinationen, die ich bereits getestet habe.
    Funktion Befehl bei EIN HTTP body bei EIN
    Reinigung starten /api/services/vacuum/start { "entity_id": "vacuum.x40_ultra_complete" }
    Reinigung pausieren /api/services/vacuum/pause { "entity_id": "vacuum.x40_ultra_complete" }
    Reinigung stoppen /api/services/vacuum/stop { "entity_id": "vacuum.x40_ultra_complete" }
    Zurück zur Station /api/services/vacuum/return_to_base { "entity_id": "vacuum.x40_ultra_complete" }
    Saugstufe Stark /api/services/vacuum/set_fan_speed { "entity_id": "vacuum.x40_ultra_complete", "fan_speed": "Strong" }
    Saugstufe Turbo /api/services/vacuum/set_fan_speed { "entity_id": "vacuum.x40_ultra_complete", "fan_speed": "Turbo" }
    Saugstufe Leise /api/services/vacuum/set_fan_speed { "entity_id": "vacuum.x40_ultra_complete", "fan_speed": "Silent" }
    Saugstufe Standard /api/services/vacuum/set_fan_speed { "entity_id": "vacuum.x40_ultra_complete", "fan_speed": "Standard" }
    Einezlraumreinigung
    (Beispiel: Raum 6)
    /api/services/dreame_vacuum/vacuum_clean_segment { "entity_id": "vacuum.x40_ultra_complete", "segments": "6" }
    Reset Sensoren /api/services/button/press { "entity_id": "button.x40_ultra_complete_reset_sensor" }
    Reset Filter /api/services/button/press { "entity_id": "button.x40_ultra_complete_reset_filter" }
    Reset Sidebrush /api/services/button/press { "entity_id": "button.x40_ultra_complete_reset_side_brush" }
    Reset Mainbrush /api/services/button/press { "entity_id": "button.x40_ultra_complete_reset_main_brush" }
    Robot lokalisieren /api/services/vacuum/locate { "entity_id": "vacuum.x40_ultra_complete" }
    ---

    Bei mir funktioniert es nun endlich wieder, dass der Saugroboter bei Abwesenheit die Bewegungserkennung der Alarmanlage deaktiviert und selbstständig los fährt. Somit ist alles geputzt und auch die Wischer sind bereits getrocknet, wenn wir nach Hause kommen.

    Ich hoffe, ich konnte auch dem ein oder anderen damit helfen.

    Viele Grüße
    Andreas
  • orli
    Lox Guru
    • 13.11.2016
    • 2554

    #2
    Das ganze geht auch mit iobroker und MQTT/Loxberry, so habe ich es gemacht...

    Kommentar

    • Prof.Mobilux
      Supermoderator
      • 25.08.2015
      • 4700

      #3
      Wir empfehlen normale Virtuelle Eingänge anstelle UDP mit Befehlserkennung mit dem MQTT Gateway zu verwenden. Ansonsten: TOP Anleitung - Danke dafür!
      🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


      LoxBerry - Beyond the Limits

      Kommentar

      Lädt...