Integration of Ecovacs Deebot OZMO 950 robot vacuum cleaner with Loxone (How-To)

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • TomekWaw
    LoxBus Spammer
    • 25.07.2019
    • 436

    #1

    Integration of Ecovacs Deebot OZMO 950 robot vacuum cleaner with Loxone (How-To)

    Hi,

    Sorry for writing in English this time but it's too much for me to translate into German.
    I also believe this mini how-to might be useful for wider audience when written in English.

    I've managed to integrate Ecovacs Deebot OZMO 950 robot vacuum cleaner with Loxone. According to experts, Ozmo 950 is currently one of the best cleaning robots on the market and I believe this might be true as after 3 months of use I'm constantly satisfied with it. The device is quite new so unfortunately there are no many integration options. But I've finally sorted it out, in the best possible style (using MQTT both ways). This little how-to below is somehow reverse order: first you see the final result and screenshots from the app, then goes Loxone Config diagram and finally all "internals". It was not the easiest integration I've made but thanks to this description it will be easier for you now. Have fun!


    This video shows how you control Ozmo 950 from Loxone App:




    There are 6 fields in the Loxone App. Three push buttons for basic operations (start, pause, abort cleaning), current robot status, cleaning history (in form of a Tracker) and info on consumables lifespan:

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 01_app_screen1.png
Ansichten: 3619
Größe: 77,2 KB
ID: 241280


    Tracker shows last cleanings and how long did they take:

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 02_app_screen2.png
Ansichten: 3018
Größe: 35,5 KB
ID: 241281


    Status field is instantly updated with one of 14 combined states robot can be in.

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 03_app_screen3.png
Ansichten: 3007
Größe: 74,1 KB
ID: 241282


    When finished the job Ozmo enters "Returning" state, then "Charging" after he docks. When battery hits 100% it changes status to "Standby".

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 04_app_screen4.png
Ansichten: 2972
Größe: 75,9 KB
ID: 241283


    (Post 1 of 3)
    Noch ein oder zwei Jahre mit Loxone und ich werde Deutsch sprechen
  • TomekWaw
    LoxBus Spammer
    • 25.07.2019
    • 436

    #2
    Here comes the logic diagram I made, I hope it's clean to understand. Correct state/status detection based on three different virtual inputs is most challenging here.
    Robot starts to clean 20 minutes after leaving home pulse but only on selected cleaning days (Wen, Thu, Sat). Cleaning my apartment takes 35-40 minutes.
    If I come home before cleaning is finished, Ozmo aborts its mission and returns to docking station.
    If I come home after cleaning (usually), Loxone app reminds to clean the dust bin. It also notifies when filter or brushes require replacement.

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 05_schemat.png
Ansichten: 4087
Größe: 137,2 KB
ID: 241285


    This is the same diagram with visible configuration of not obvious blocks. Image is large so you might need to download or open it in new window.
    The most complex element here is the status block detecting robot combined state.
    All communication with robot is done over MQTT, using ioBroker run in Docker on LoxBerry and of course with MQTT Gateway plugin.

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 06_schemat-z-opisem.png
Ansichten: 3791
Größe: 266,4 KB
ID: 241286



    I have not used ioBroker before but was forced to use it this time as probably no other tool has support for Ozmo 950 yet.
    I must say ioBroker is a great tool especially for integrations.
    It's based on modules/plugins called "adapters", that support given protocol or device. Amazing how many devices are already supported.
    In this integration I've used two adapters: Ecovacs Deebot and MQTT-client:

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 07_ioBroker2.png
Ansichten: 3793
Größe: 161,2 KB
ID: 241287


    Each adapter creates at least one "instance" that you usually need to configure. Instance of Ecovacs adapter needs login and password to Ecovacs cloud (same as Ecovacs Home mobile app).

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 08_ioBroker3.png
Ansichten: 3655
Größe: 113,2 KB
ID: 241288


    MQTT-client instance requires MQTT server IP, login and password:

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 09_ioBroker4.png
Ansichten: 3700
Größe: 99,0 KB
ID: 241289

    (Post 2 of 3)
    Noch ein oder zwei Jahre mit Loxone und ich werde Deutsch sprechen

    Kommentar

    • TomekWaw
      LoxBus Spammer
      • 25.07.2019
      • 436

      #3
      After completing the configs you move to "objects" and all device states already there. You may publish selected states to MQTT broker or control states subscribing to MQTT topics.

      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 10_ioBroker5.png
Ansichten: 3166
Größe: 175,8 KB
ID: 241291


      Configuration of stats that is to be published to MQTT (filter lifespan here):

      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 11_ioBroker6.png
Ansichten: 3108
Größe: 91,3 KB
ID: 241292


      Configuration of state that is to be managed (run) by MQTT:

      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 12_ioBroker7.png
Ansichten: 3109
Größe: 89,9 KB
ID: 241293


      When states are successfully published to MQTT you need to do some string conversion in MQTT Gateway plugin. I marked relevant conversions:

      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 13_MQTT1.png
Ansichten: 3106
Größe: 115,7 KB
ID: 241294


      Then you just add iobroker/# to MQTT Gateway subscriptions and you're done:

      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 14_MQTT2.png
Ansichten: 3109
Größe: 160,2 KB
ID: 241295


      (post 3 of 3)

      That's all folks, hope it helps.

      PS.
      I will yet post a summary of all MQTT topics I've used (below)
      Noch ein oder zwei Jahre mit Loxone und ich werde Deutsch sprechen

      Kommentar

      • TomekWaw
        LoxBus Spammer
        • 25.07.2019
        • 436

        #4
        Summary of MQTT topics I've used to monitor and control Ozmo 950:

        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 15_MQTT3.png
Ansichten: 2971
Größe: 101,0 KB
ID: 241297
        Noch ein oder zwei Jahre mit Loxone und ich werde Deutsch sprechen

        Kommentar

        • hme0354
          MS Profi
          • 06.07.2019
          • 969

          #5
          hello TomekWaw , great work! I also bought an ecovacs ozmo 950, but I was not able to install the adapter on iobroker. Could you help me? here the log:

          Code:
          $ ./iobroker add ecovacs-deebot --host loxberry
          NPM version: 6.10.3
          npm install iobroker.ecovacs-deebot@1.0.0 --loglevel error --prefix "/opt/iobroker" (System call)
          Package pixman-1 was not found in the pkg-config search path.Perhaps you should add the directory containing `pixman-1.pc'to the PKG_CONFIG_PATH environment variableNo package 'pixman-1' foundgyp: Call to 'pkg-config pixman-1 --libs' returned exit status 1 while in binding.gyp. while trying to load binding.gyp
          gyp
          ERR! configure error
          gyp ERR! stack Error: `gyp` failed with exit code: 1gyp ERR! stack at ChildProcess.onCpExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:344:16)gyp ERR! stack at ChildProcess.emit (events.js:209:13)gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
          gyp ERR! System Linux 4.19.69-v7+gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/opt/iobroker/node_modules/canvas/build/Release/canvas.node" "--module_name=canvas" "--module_path=/opt/iobroker/node_modules/canvas/build/Release" "--napi_version=4" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v72"gyp ERR! cwd /opt/iobroker/node_modules/canvasgyp ERR! node -v v12.10.0gyp ERR! node-gyp -v v5.0.3gyp ERR! not ok
          node-pre-gyp
          ERR! build error
          
          node-pre-gyp ERR! stack Error: Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/opt/iobroker/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/opt/iobroker/node_modules/canvas/build/Release --napi_version=4 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72' (1)node-pre-gyp ERR! stack at ChildProcess.<anonymous> (/opt/iobroker/node_modules/node-pre-gyp/lib/util/compile.js:83:29)node-pre-gyp ERR! stack at ChildProcess.emit (events.js:209:13)node-pre-gyp
          ERR! stack at maybeClose (internal/child_process.js:1021:16)node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)node-pre-gyp
          ERR! System Linux 4.19.69-v7+node-pre-gyp ERR! command "/usr/bin/node" "/opt/iobroker/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"node-pre-gyp ERR! cwd /opt/iobroker/node_modules/canvasnode-pre-gyp ERR!
          node -v v12.10.0node-pre-gyp ERR! node-pre-gyp -v v0.11.0node-pre-gyp ERR! not ok
          npm
          
          ERR! code ELIFECYCLEnpm ERR! errno 1npm ERR! canvas@2.6.1 install: `node-pre-gyp install --fallback-to-build`npm ERR! Exit status 1npm ERR! npm ERR! Failed at the canvas@2.6.1 install script.npm ERR!
          This is probably not a problem with npm. There is likely additional logging output above.
          
          npm ERR!
          A complete log of this run can be found in:npm ERR!
          /home/iobroker/.npm/_logs/2020-06-07T19_07_40_663Z-debug.log
          ERROR: host.loxberry Cannot install iobroker.ecovacs-deebot@1.0.0: 1
          ERROR: process exited with code 25
          Smarthome: 1x Miniserver Gen. 2, 3x Relay Extensions, 1x Tree Extension, 1x DI-Extension, 1x Air Base Extension, 8x RGBW Tree Dimmer, 9x Touch-Tree, 1x Nano DI Tree, 10x Tree BWM
          Technik: IDM Aero SLM 3-11 mit HGL, MS4H mit 9 Zonen, 2x Loxberry, 2x RPI für Anzeige, Doorbird, Froggit WH2600, POE+ System für Peripherie, Gedad Luftgütesensoren, Deconz (Bridge + 2x BWM + 2x RGBW + 5 Smartplug)

          Kommentar

          • TomekWaw
            LoxBus Spammer
            • 25.07.2019
            • 436

            #6
            hme0354

            I believe I'm not good enough in those npm issues.
            I have never installed any adapter to ioBroker via commandline. I just use admin panel and click "install"
            Adapter i use is in version 0.5.7 but I have noticed minute ago there is already an upgrade to version 1.0.
            I have just tried to upgrade it and it failed. So seems version 1.0 is broken. Just try 0.5.7 - it works.
            Noch ein oder zwei Jahre mit Loxone und ich werde Deutsch sprechen

            Kommentar


            • hme0354
              hme0354 kommentierte
              Kommentar bearbeiten
              me too (not good enough and install like you)

              I found my misstakes. If you open the website of the adapter, there is an info about the error and what you have to do.
          • TomekWaw
            LoxBus Spammer
            • 25.07.2019
            • 436

            #7
            hme0354 Thanks for the tip. I will try it but I hate those dependencies. I run ioBroker within docker so probably no easy way to add new libraries......
            Noch ein oder zwei Jahre mit Loxone und ich werde Deutsch sprechen

            Kommentar


            • hme0354
              hme0354 kommentierte
              Kommentar bearbeiten
              if there is no error in your system, you don't have to install it. I'm using a loxberry with iobroker installed, so I needed it.
          • hme0354
            MS Profi
            • 06.07.2019
            • 969

            #8
            Where does the memory flag "Reset CD" come from?
            Smarthome: 1x Miniserver Gen. 2, 3x Relay Extensions, 1x Tree Extension, 1x DI-Extension, 1x Air Base Extension, 8x RGBW Tree Dimmer, 9x Touch-Tree, 1x Nano DI Tree, 10x Tree BWM
            Technik: IDM Aero SLM 3-11 mit HGL, MS4H mit 9 Zonen, 2x Loxberry, 2x RPI für Anzeige, Doorbird, Froggit WH2600, POE+ System für Peripherie, Gedad Luftgütesensoren, Deconz (Bridge + 2x BWM + 2x RGBW + 5 Smartplug)

            Kommentar


            • TomekWaw
              TomekWaw kommentierte
              Kommentar bearbeiten
              Reset "Cleaning Done"
              I made Deebot run only once a day.
              But you might need it run more than once, for instance:
              - you want to clean it again one day
              - when you return home during its job and it will be aborted - you might want to do it all over
              - during test.
              So I set this VI as push button and put it to Category Settings to make it possible

            • hme0354
              hme0354 kommentierte
              Kommentar bearbeiten
              ok. I only mentioned it, because it was nowhere declared.

              Now I have done the hole integration. It is sligthly different from yours, beacuse I didn't use MQTT for communication. Instead I used the adapter "Simply RESTfull API"
          • TomekWaw
            LoxBus Spammer
            • 25.07.2019
            • 436

            #9
            hme0354 Right, it is declared within my Settings page together with some others values:

            Click image for larger version  Name:	Clipboard01.jpg Views:	0 Size:	72.6 KB ID:	255554


            Good to know that you managed to do the integration. Happy vacuuming!
            Noch ein oder zwei Jahre mit Loxone und ich werde Deutsch sprechen

            Kommentar


            • hme0354
              hme0354 kommentierte
              Kommentar bearbeiten
              thanks for your instruction. maybe you should make a site on loxwiki for it and I extend it with the communication without mqtt
          • TomekWaw
            LoxBus Spammer
            • 25.07.2019
            • 436

            #10
            Convinced
            https://www.loxwiki.eu/display/LOXEN...vacuum+cleaner

            What's your username on Wiki? I'll add you as a co-editor
            Noch ein oder zwei Jahre mit Loxone und ich werde Deutsch sprechen

            Kommentar


            • TomekWaw
              TomekWaw kommentierte
              Kommentar bearbeiten
              Tried that, nothing found. Search is probably by real name

            • hme0354
              hme0354 kommentierte
              Kommentar bearbeiten
              Mathias Male

            • TomekWaw
              TomekWaw kommentierte
              Kommentar bearbeiten
              Have you received the invitation? I'm not experienced with that version of Confluence
          • HRA
            Lox Guru
            • 27.08.2015
            • 1037

            #11
            Hey guys,
            sorry for my english.
            After your integration into the lox your cleaners are running good?
            I´de like to buy such a claener and like to know the function is running (I meen the function of cleaner not the Lox-integration)
            I saw some tests but there was written the cleaner isn´t able to go up at corners over 10mm, is it right?
            I have al lot of corners on the doors.
            Gruß HRA

            ### MS Gen2 + Gen1, MultiExt, Ext, AirExt, DMXExt; DMX4ALL ###
            ### EnOcean, KNX, MDT GTII ###

            Kommentar

            • TomekWaw
              LoxBus Spammer
              • 25.07.2019
              • 436

              #12
              No vacuum cleaning robot will be perfect for cleaning corners due to their design (most probably no classic vacuum cleaner also).
              But this robot in general is highly rated on Vacuum Wars YouTube channel, see: https://www.youtube.com/watch?v=IZuHgVoJnok
              After having it fore 6 months now I may confirm that review - its a great device.
              I can't say a bad word on it and I'm rather demanding person.
              Noch ein oder zwei Jahre mit Loxone und ich werde Deutsch sprechen

              Kommentar


              • TomekWaw
                TomekWaw kommentierte
                Kommentar bearbeiten
                See also https://youtu.be/IZuHgVoJnok?t=422
                They say "Deebot is particulary good at climbing thresholds"
                It makes 19 mm threshold with ease and 19 mm is pretty high.

              • HRA
                HRA kommentierte
                Kommentar bearbeiten
                I saw the videos
                I like to know how is the reality :-)
                I cant decide between OZMO 950 and roborock S5 max

              • hme0354
                hme0354 kommentierte
                Kommentar bearbeiten
                1cm at my home are no problem for him
            • hme0354
              MS Profi
              • 06.07.2019
              • 969

              #13
              TomekWaw if you send commands to ioBroker over the Adapter "Simple Restful API", it is possible to integrate custom area cleaning. I tested it and it is great!
              Smarthome: 1x Miniserver Gen. 2, 3x Relay Extensions, 1x Tree Extension, 1x DI-Extension, 1x Air Base Extension, 8x RGBW Tree Dimmer, 9x Touch-Tree, 1x Nano DI Tree, 10x Tree BWM
              Technik: IDM Aero SLM 3-11 mit HGL, MS4H mit 9 Zonen, 2x Loxberry, 2x RPI für Anzeige, Doorbird, Froggit WH2600, POE+ System für Peripherie, Gedad Luftgütesensoren, Deconz (Bridge + 2x BWM + 2x RGBW + 5 Smartplug)

              Kommentar

              • TomekWaw
                LoxBus Spammer
                • 25.07.2019
                • 436

                #14
                Yeah, most probably same with MQTT control. One just need to activate subscriptions for those object:

                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: spots.png
Ansichten: 2388
Größe: 76,3 KB
ID: 255672

                I will add it to how-to.

                Did you receive access to that page?
                Noch ein oder zwei Jahre mit Loxone und ich werde Deutsch sprechen

                Kommentar


                • TomekWaw
                  TomekWaw kommentierte
                  Kommentar bearbeiten
                  Really? Cant wait to see description on Wiki

                • hme0354
                  hme0354 kommentierte
                  Kommentar bearbeiten
                  it will take some time, first I have to finish some other projects. 😁😋👍🏼

                • hme0354
                  hme0354 kommentierte
                  Kommentar bearbeiten
                  conclusion, at the moment my way doesn't work. I had an error, so I thougth that it works. I can start a custom area, I can only say which area. there is no button to start custom Area.
              • Gast

                #15
                Hi TomekWaw,

                thanks for this great work. For security reasons I try to avoid setting up and using the robot with the Ecovacs App. Did you create a map with the robot with the app before you integrated it into Loxone? Or can I just integrate it into Loxone and never use the Ecovacs app (neither for setup nor for usage)?

                I am aware that without the app I have no access to special funcionalities (like setting no clean areas etc).

                Many thanks
                Del Pi

                Kommentar

                Lädt...