Sympapaのスマートホーム日記

スマートなんとかはスマートじゃない方法でつくられている

Deebot X1 OMNI (1): 初期レビューとHome Assistant連携(難航中)

Sympapaです。

少し前のことになりますが、Amazonプライムデーの勢いで初めてのロボット掃除機として全部入りのハイエンド機を購入してしまいました(汗
購入したのはEcovacs Deebot X1 OMNIで1台で水拭き清掃にも吸引清掃にも対応、ステーションには綺麗な水と汚水それぞれのタンクを装備しゴミ回収機能も装備している全部入りモデルです。

ガジェオタの割にロボット掃除機には全く興味がなかったのですが、奥様が欲しいと言い出したので仕方なく(笑)購入することにしました。
もちろんHome Assistantとは連携させたいので、Home Assistant純正のEcovacsインテグレーションがあることを確認した上で購入しました。
掃除終了後のゴミの回収や水の交換も自動でしてくれるので掃除が終わったことを知る必要も無いし、音声アシスタントも内臓しているので「Home Assistantと連携して何すんねん?」って感じもしていましたが、所定の場所(例えば食卓の下だけとか)を指定して掃除させるのは音声では出来ないし、アプリからだと所定の場所をプリセット出来ないのでちと面倒なんですよね。
Home Assistantなら家のコントロールパネルから「食卓の下」ボタンを押せば、ワンタッチで食卓の下を掃除させるなんてことも出来そうな感じがします。


だがしかし、そもそものDeebotとHome Assistantとの連携は結構難航しました。というか今も難航中です(汗
そんなワケで、ロボット掃除機としてのレビューもがっつり書きたいところではありますが、今回はサラッと初期レビューを書きつつHome Assistantとの連携についてメインに書いていこうと思います。

■Deebot X1 OMNIはたぶんこんな感じ

まだ使い込んではいないしそもそもロボット掃除機自体が初めてなので良くわかっていませんが、ファーストインプレッションとしてはこんな感じです。


【出来ること】
・「吸引」とモップによる「水拭き」の二刀流で清掃できる。
・自動で掃除機本体からステーション内の紙バッグへゴミを回収してくれる。
・ステーションに「浄水」「汚水」の4リットルタンクがあり、自動で掃除機本体のモップ用の水を交換してくれる。
・モップが汚れるとステーションが自動でモップを洗浄し乾燥してくれる。
・カメラとセンサーと高性能プロセッサによる凄そうな3Dマッピングと物体回避。
・マップ上で侵入禁止エリアを設定可能。「水拭き」モードの時には侵入しないエリア、モードに関わらず侵入しないエリアを別々に設定できる。
・予約清掃や清掃順の設定が可能。
・音声アシスタントを内臓しており「OK, YIKO!」と呼ぶと音声操作が出来る。「ここを掃除して」とか(ちゃんと家具を設定しておけば)「食卓の下を掃除して」みたいなのも可能。
・カメラの映像をスマホで確認できる巡回機能みたいなのもある。


【とりあえずの良きポイント】
・水拭きの威力が思ったてたより凄い。手で拭くより綺麗になる。
・ゴミの回収、水の補給と汚水の廃棄、モップの洗浄・乾燥を毎回自分でやる必要が無いのでほぼ自動。想像以上に手軽でラクチンすぎる。
・比較するものがないのでわからないけど掃除中の動作音は結構静か。
・音声アシスタント内臓。「○○(部屋名)を掃除して」はもちろん「ここを掃除して」も出来て便利。方向まで認識してるのが凄い。


【とりあえずの残念ポイント】
・モップを装着すると強制的に「水拭きモード」が有効になる。モップを付けたまま「吸引のみ」の掃除はできない。
なので、畳の部屋やカーペット上では水拭きせずに「吸引のみ」、フローリングなどの上では「吸引+水拭き」という掃除を一度に済ませることは出来ない。モップはマグネットでワンタッチで着脱できるので、オプションでモップ着脱用ステーション出してくれんかな。(「水拭きモード」が有効の時に、畳やカーペット上を掃除しないようにマップで設定することは可能。)
・手でステーションを置いていないエリアへ移動して掃除し、ステーションのあるエリアに戻した時に既に学習済みのステーションが置かれたエリアのマップを選んでも、新規のエリアとして再度マップを作成し始めることがあった。
・マップ上でピンポイントで場所を指定して掃除させるのがプリセット出来ない。
・設定できることが多いので仕方ないとも思うがアプリのUIがわかりにくい。
・そんなに障害物回避がうまい感じはしない。細いケーブルには突っ込む。
・わかってはいたがステーションデカい(笑)

■DeebotとHome Assistantを連携してやりたいこと

冒頭書きましたが、ロボット掃除機はもともとスマート化されている上、Deebot X1 OMNIの場合はステーションへ戻るとゴミの回収も水の交換も自動でやってくれるし音声アシスタントも内臓されています。
洗濯が完了したらすぐに洗濯物を取り出したい洗濯機などと違って、別段Home Assistantと連携させる意味はないだろうと思っていました。
しかし、アプリのUIがお世辞にも使いやすいとは言えないので部屋やエリアを指定して掃除させるのが面倒なんですよね。
部屋を指定して掃除させるのは音声アシスタントを使えば簡単に出来ますが、範囲(食卓の下とか)を指定するカスタムエリアはプリセット出来ず毎回手動で範囲指定しなくてはいけません。
また、ステーションの浄水タンクの水が足りなくなったり汚水タンクが満タンになるとお知らせはしてくれますが、掃除を開始してくれない(あるいは掃除中に水の補給にステーションに戻った後で再開してくれない)ので、タンクの水の量は常に表示できるといいですねぇ。

そんなワケでできるかどうか知らんけどHome Assistantと連携してやりたいことのゴールをイメージにすると下の図のような感じです。あくまでゴールのイメージなので現時点で実現出来ているのはこの半分くらいです(笑)


■Home Assistantとの連携

さて本題(?)のHome Assistantとの連携です。
Home Assistantには"Ecovacs"インテグレーションが標準で実装されている・・・はずなのですが、"Configlation.yaml"に設定を書いてHome Assistantを再起動しようとすると[object-object]エラーが出ます。Home Assistantのバージョンは2022.7.1と2022.8.1で試しましたがどちらでも同じでした。
www.home-assistant.io


Home Assistantが2022.7.0以降Python 3.10となったことで多くのアドオンやカスタムインテグレーションに不具合が出ているようですが、さすがにHome Assistantに組み込まれた純正インテグレーションだからなぁ。。。
しかしEcovacsインテグレーションのメンテナーさんが既にEcovacsのロボット掃除機を使っていないらしく、開発の後継者を探しているが見つかっていないとのことなので、その内純正インテグレーションは無くなってしまうのかもしれません。
そんなワケでカスタムインテグレーションを探したワケですが、そもそもEcovacsのAPIは非公開なのでハッカーさんは通信を解析して開発されているようです。2020年頃まではローカルのDeebotサーバなんて凄いものを開発している人がいたりHome Assistant用のカスタムインテグレーションもいくつか開発されていたようですが、2022年7月現在で開発進行中なのはは"Deebot-4-Home-Assistant”くらいしか見つかりませんでした。ホームオートメーションの世界ではEcovacsは不人気みたい?(汗
そんなワケで"Deebot-4-Home-Assistant”をインストールしますが、HACSに対応しているのでインストールは簡単です。
github.com

■Deebot-4-Home-Assistant

無事にインストール出来、24ものエンティティが追加されました。

個人的にはステーションのタンクの「水の量」も取得したかったところですが、ステーション側のステータスを取得できるエンティティは無いようです。
何はともあれ無事に動いて歓喜していたのですが、暫く使用した結果不具合があります。


1)起動後数時間(?)するとロボット掃除機のステータスを取得(更新)しなくなる(操作は可能)
2)掃除完了時に受け取るはずのイベントが発生しない
3)"Last Cleaning"エンティティが不明のまま
4)マップが正常に表示されない


1)のステータスの取得が停止してしまう問題については、Deebot-4-Home-Assistantのインテグレーション再読込をすればまた数時間は復活します。インテグレーションの再読込は手動でしか出来ないと思っていましたが自動的に実行する方法を見つけたので、これで1)の問題は解決できそうです。この方法については別記事で書きたいと思います。
そして2)の掃除完了イベントを受け取らない問題が一番厄介です。
Deebot-4-Home-Assistantから部屋を指定して掃除させるには「部屋コード」が必要で、エリアを指定して掃除させるには「座標」が必要なのですが、それらを知るには「掃除完了時に受け取るイベント」が必要なのです。まぁトライアンドエラーで探し当てるというテもありますが(汗
deebot.readthedocs.io
この問題に関して開発者さんも認識されているようですが機種依存のようで「誰か解析して結果をくれ」みたいです。解決するのかなぁ。そもそも今はDeebot-4-Home-Assistantの開発者さんが長いバケーション中のようです。
github.com

■まとめ

そんなワケで初めてのロボット掃除機としてDeebot X1 OMNIを購入したけどHome Assistantとの連携は難航中というお話でした。
Deebot X1 OMNI自体は「水拭き掃除」と「ほぼ自動」が最強ですが、ちょっと痒いところに手が届いていない感が気になりました。
細かいところは置いといたとして、現時点で「水拭き」「吸引」両刀使いで「ゴミ回収」「水交換」が自動の機種は他に無いワケですが、個人的には「水拭きあり」と「水拭きなし」の掃除が一気に自動で出来るようになったら「真のオールインワン」と言えるかなと思います。それが発売されるまで待つのがベターですが、一方で更にステーションが巨大化すると思うと待たない方が良いかもしれません(笑)

それでは、つづく