Roborock Qrevo Master via Homeassistant in Loxone einbinden

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

    #1

    Roborock Qrevo Master via Homeassistant in Loxone einbinden

    Hi zusammen,

    falls Interesse besteht, kann ich ein kleines Tutrial schreiben, wie man den Roborock mit der OEM Firmware mithilfe von Homeassitant in Loxone bekommt.
    Ich hab das gemacht, um temporär die BWM / Alarmanlage zu deaktivieren während er läuft. Bzw. die Reinigungsprogramme in Abwesenheit aktivieren kann.

    VG
    Dominik

    Angehängte Dateien
  • GeoPod
    MS Profi
    • 20.01.2021
    • 517

    #2
    Hallo Dominik, hört sich spannend an. Ich bin gerade dabei dies ebenfalls für Ecovacs Saugroboter zu machen.
    Fänd es daher sehr spannend, wie du es umgesetzt hast.

    Kommentar

    • lancee
      Dumb Home'r
      • 09.09.2022
      • 23

      #3
      Hab ein kleines Diagramm gemacht. Grundsätzlich einfach, es gibt ein fertiges Roborock Addon für HA. Zur Kommunikation nimmt Rest APIs die dann Daten zu Loxone via Virtual Input liefern bzw triggern. Und von Loxone nach HA Virtual Outputs mithilfe eines Tokens. Das triggern auf HA Seite übernehmen 2 Skripte in Automations.yaml und Configuration.yaml
      Angehängte Dateien

      Kommentar

      • lancee
        Dumb Home'r
        • 09.09.2022
        • 23

        #4
        Was braucht man?

        Loxone:

        Virtual Inputs
        - Analog
        - Digital
        - Text

        Virtual Outputs (falls man was in HA steuern will)
        - POST
        - JSON
        - mit Bearer Token (muss man in HA auslesen)

        Homeassistant:

        Das Gerät / Plugin / Add-on / Community Addon welches man auslesen oder steuern will. Das sollte dann unter Geräte und Dienste auftauchen.
        Alles was man dort sieht kann man in Loxone bringen. zb Akkulaufzeit, Km Restreichweite vom Auto etc.

        Wie sieht der Ablauf in HA aus:
        Eine Entität zb.: vacuum.roborock_qrevo_master hat verschiedene Attribute oder Status. zb. "docked". Diese wollen wir in Loxone anzeigen.

        Dazu brauchen wir 2 bzw 3 Config Files:
        --- Automations.yaml (damit Werteänderungen von vacuum.roborock_qrevo_master etwas triggern)
        --- Configuration.yaml (was getriggert werden soll --> Aufruf der REST API (Virtual Input) von Loxone und Übergabe des Wertes.
        --- scripts.yaml (nur falls Loxone via Virtual Output einen REST API call in HA machen soll - zb. Wohnzimmer saugen)

        tbc

        Kommentar

        • lancee
          Dumb Home'r
          • 09.09.2022
          • 23

          #5
          weiter gehts:

          Virtual Inputs -- die Namen hier sind sehr wichtig - die müssen genau so heissen, wie der Name, der im HA in der Rest API angerufen wird.
          zb: Roborock_Status_Text

          HA ruft dann folgende URL / API auf -- configurations.yaml

          Code:
          rest_command:
          roborock_status_text:
          url: "http://user:pass@192.168.1.999/dev/sps/io/Roborock_Status_Text/{{ status }}"
          Für jeden Wert benötigt ihr einen Virtual Input und einen Eintrag in der Configurations.yaml
          in der URL - Euer Loxone User und Passwort und die IP Adresse vom Miniserver. (kann man noch eleganter machen - I know, aber good enough für meine Zwecke)
          Der Loxone User braucht die Berechtigungen auf die Virtual Inputs! Wichtig!

          Kommentar

          • lancee
            Dumb Home'r
            • 09.09.2022
            • 23

            #6
            Hier das Gegenstück aus der Automations.yaml

            Sieht etwas komplexer aus, weil ich den Status noch ins Deutsche übersetze.

            Code:
            - alias: Roborock - Status Klartext an Loxone senden
              trigger:
                - platform: state
                  entity_id: sensor.roborock_qrevo_master_status
              action:
                - service: rest_command.roborock_status_text
                  data:
                    status: >
                      {% set raw = states('sensor.roborock_qrevo_master_status') %}
                      {% set map = {
                        'cleaning': 'Reinigt',
                        'segment_cleaning': 'Reinigt (Zone)',
                        'zoned_cleaning': 'Reinigt (Bereich)',
                        'mopping': 'Wischt',
                        'robot_status_mopping': 'Wischt',
                        'charging': 'Lädt',
                        'charging_complete': 'Voll geladen',
                        'docked': 'Geparkt',
                        'idle': 'Bereit',
                        'paused': 'Pausiert',
                        'error': 'Fehler',
                        'returning_home': 'Fährt zurück',
                        'emptying_the_bin': 'Entleert Behälter',
                        'going_to_wash_the_mop': 'Fährt zur Mop-Wäsche',
                        'washing_the_mop': 'Mop wird gewaschen',
                        'updating': 'Firmware Update',
                        'shutting_down': 'Fährt runter'
                      } %}
                      {{ map.get(raw, raw | capitalize) }}
            so würde es auch reichen - anderes Gerät, aber selbes Prinzip - wenn sich der Wert ändern, dann sende via URL den Wert an Loxone Virtual Input

            Code:
            - alias: Liebherr – Gefrierschrank-Temperatur an Loxone
              trigger:
                - platform: state
                  entity_id: climate.freezer_temperature_top
              action:
                - service: rest_command.lieb_freezer_temp
                  data:
                    temp: "{{ state_attr('climate.freezer_temperature_top', 'temperature') }}"
            Hier noch mit Zeit Trigger:

            Code:
            - alias: Roborock - Batterie an Loxone senden
              trigger:
                - platform: time_pattern
                  minutes: "/1"
              action:
                - service: rest_command.roborock_battery
                  data:
                    battery: "{{ states('sensor.roborock_qrevo_master_batterie') }}"
            ​

            Kommentar

            • MiLox
              Dumb Home'r
              • 24.06.2024
              • 16

              #7
              Direkt mal gebookmarked, da ich gedenke ebenfalls meinen 10R zu integrieren. Müsste dazu aber erstmal HA zum Laufen bringen. Schönes Projekt für den Winter eigentlich..

              Kommentar

              Lädt...