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
    • 24

    #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
    • 2597

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

    Kommentar

    • Prof.Mobilux
      Supermoderator
      • 25.08.2015
      • 5251

      #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

      • Iluminatus23
        LoxBus Spammer
        • 07.08.2016
        • 242

        #4
        Hallo,
        hat es schon jemand für den Dreame X50 Master geschafft? Mit dem gleichen Befehlssatz klappt es leider nicht. Heißt er vielleicht nicht mehr vaccum?
        Wäre über jede Hilfe sehr dankbar!


        EDIT: Hab es nun geschafft. Es klappt also auch für den X50! Einzig die Intensive Reinigung der Mops bzw. der Mop-Basis habe ich noch nicht geschafft. Hat das jemand hinbekommen?
        Zuletzt geändert von Iluminatus23; 03.08.2025, 20:54.

        Kommentar

        • Tom001
          LoxBus Spammer
          • 20.05.2016
          • 319

          #5
          Zitat von andy114425
          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:
          HTTP body bei EIN:
          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
          Hallo Andreas

          Ich bin mit meine Dreame 10s Ultra heat ziemlich weit gekommen. Nur finde ich nicht die Entitäten für die Einzelraumreinigung. Wie genau hast du die rausgefunden?
          Danke

          Kommentar

          • andy114425
            Dumb Home'r
            • 15.02.2017
            • 24

            #6
            Hallo Tom,

            wie bereits erwähnt, musste ich auch die Entitäten für meinen Robot suchen und ausprobieren. Gehe einfach mal in den Entwicklerwerkezeuge auf Aktionen und gib dort in das Feld "Aktion" z.B. segment, room, clean oder ähnliches ein. Es werden dann die vorhandenen Entitäten angezeigt.

            Ich hoffe das hilft.

            Gruß Andreas
            Angehängte Dateien

            Kommentar

            • Tom001
              LoxBus Spammer
              • 20.05.2016
              • 319

              #7
              Das wars, super danke

              Kommentar

              Lädt...