Coder Social home page Coder Social logo

valetudo's Introduction

valetudo

 

Free your vacuum from the cloud

Fully supported devices: Roborock S5 and Xiaomi Mi Robot Vacuum Cleaner (v1)
Preliminary supported devices: Roborock S6 and other III-generation Roborock vacuums

Preamble:

This is a fork of Valetudo by Hypfer, created by me since I found too many features missing in the original package when I've tried to use it for the first time.

Features added lately:

  • Preliminary support for Roborock gen3 devices;
  • MQTT: Tracking the time when the dustbin was last emptied or for how long it was in use;
  • MQTT: Possibility of playing sound files on the device by issuing a mqtt command;
  • Optional ability to see a live map on the Remote Control tab;

And this is a quick list of features first appeared here:

  • Ability to select multiple saved zones at once;
  • Selected zones optionally shown at the map tab to see and edit what's actually going to be cleaned;
  • Configurable virtual walls and forbidden zones (requires Gen2);
  • Ability to see the actual map of cleanings that were finished recently;
  • Scheduled zoned cleaning - when you do not need to clean the whole house;
  • Scheduled rooms cleaning - the same thing for newer firmware of Gen2;
  • Ability to specify the number of iterations to clean the same zone multiple times;
  • Display device's status on the map, as well as a set of quick action buttons that are dynamically switching at state changes;
  • Multilanguage support, currently available in bg/ca/cz/de/en/es/fi/fr/hu/it/lv/nl/ru/sv/pl;
  • A telegram bot software for controlling the vacuum from the outside world;
  • Experimental ability to SAVE and RESTORE the main map (with per-map list of saved zones and spots);
  • Full support of room cleaning (requires Gen2 with firmware 2008+);
  • Cleaning queue, allowing the use of zoned cleaning with more than 5 zones via enqueuing any number of additional cleanups at once;
  • Possibility to enqueue additional zones and segments during cleaning or additional goto spots during the movement;
  • Ability to run Goto + Spot cleaning (by long pressing "Goto" button on the map tab);
  • Selecting the destination for the device to go when the cleaning is finished (configured globally in settings or per-cleaning by long pressing "Start" button on the map tab);
  • Visual preview and edit of zones and rooms for corresponding scheduled cleaning.

You can add or improve your own native language support by using ./client/locales/en.json template as an example and sending a PR.


Installing

Check deployment section or this wiki page on how to install Valetudo onto your device.

Screenshots of this mod:

View screenshots

qscr1 qscr2

qscr3 qscr4

qscr5 qscr6

qscr7 qscr8

Getting map picture for integrations

  • valetudo-mapper - a companion service for generating PNG maps;
  • You can also try to request a simple map from Valetudo RE itself via http at /api/simple_map, but it shouldn't be called too often since resources of the vacuum are limited.

valetudo's People

Contributors

aleksif avatar aprosvetova avatar beeguy1234 avatar bennedetto avatar bruvv avatar cryptomilk avatar eahlstrom avatar fcktrmp avatar gvulvae avatar hydci avatar hypfer avatar johnrev avatar joka90 avatar lwestenberg avatar madjoker0815 avatar manutenfruits avatar marcriera avatar matthiasharrer avatar maxpautsch avatar onovy avatar pax2011 avatar pidator avatar pszafer avatar r1sim avatar radokristof avatar rand256 avatar reaper7 avatar thepill avatar timbru31 avatar znanev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

valetudo's Issues

"Wait" in popup is not pulled from translation

Hi, the "Wait" above the message "Please wait another xx seconds." is not pulled from the translations.
Translations refer to "wait" while the text in home.html is referring to "waitMap"
In Line 471
let waiting = ons.notification.alert(i18next.t('home.popups.waitMapTicks',{defaultValue: "Map replacement routines are running. Please wait for {{seconds}} seconds...", seconds: 30}),{class: 'load-map-waiting', title: i18next.t('home.popups.waitMap',"Wait"),cancelable: false});

change
title: i18next.t('home.popups.waitMap',"Wait"),
to
title: i18next.t('home.popups.wait',"Wait"),

Unless you want to change it in all translations.

No Wifi on provided pre-built firmware image

Describe the bug:

After flashing the Valetudo firmware successfully the vacuum does not create a Wifi accesspoint. I tried to hold the reset button for >30 seconds but still no accespoint has been created.

The robot can still clean by pressing the power button

Other Info:
Vacuum Model: S5
Valetudo Version: V1898

Terminal during flashing:

INFO:miio.updater:Using local /Users/wouter/Downloads/v1898.fullos.pkg (md5: 355c8df23cf7fd4a564dd1cad51701dd) Hosting file at http://192.168.8.88:61273/v1898.fullos.pkg Update started! 0%| | 0/100 [00:00<?, ?it/s]192.168.8.1 - - [03/Nov/2019 19:30:50] "GET /v1898.fullos.pkg HTTP/1.1" 200 - Downloading: 95%|███████████████████████████████████████████████▌ | 95/100 [03:38<00:10, 2.18s/it]INFO:miio.updater:Got a request, should be downloading now. Downloading: 100%|█████████████████████████████████████████████████| 100/100 [03:43<00:00, 2.09s/it]Installation started, please wait until the vacuum reboots Downloading: 100%|█████████████████████████████████████████████████| 100/100 [03:44<00:00, 2.25s/it] (venv) wouter@Wouters-MacBook-Pro flasher %

Can no longer flash firmware

So I tried to install this version of valetudo and since the maps were not working (see issue), I wanted to reinstall stock valetudo.

So somehow my usual procedure to flash the firmware using mirobo in some awkward venv construction (I can't find the document that actually instructed me this unfortunately, but it has always worked in the past). So somehow during this install, it failed with the following message:

$ mirobo --ip 192.168.8.1 --token 785a79774c434b4b4f594b476a533757 update-firmware ../output/vacuum_1910.pkg
Going to update from ../output/vacuum_1910.pkg
INFO:miio.updater:Serving on 0.0.0.0:38143, timeout 10
INFO:miio.updater:Using local ../output/vacuum_1910.pkg (md5: 0973be74c20c0316d244f033b3d97d6c)
Hosting file at http://192.168.8.39:38143/vacuum_1910.pkg
ERROR:miio.protocol:unable to parse json '': Expecting value: line 1 column 1 (char 0)
Traceback (most recent call last):
  File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/miio/device.py", line 257, in send
    data, addr = s.recvfrom(1024)
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/steven/software/rockrobo/flasher/venv/bin/mirobo", line 10, in <module>
    sys.exit(cli())
  File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/miio/click_common.py", line 54, in __call__
    return self.main(*args, **kwargs)
  File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/click/decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/miio/vacuum_cli.py", line 590, in update_firmware
    update_res = vac.update(url, md5)
  File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/miio/device.py", line 328, in update
    return self.send("miIO.ota", payload)[0] == "ok"
  File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/miio/device.py", line 286, in send
    return self.send(command, parameters, retry_count - 1)
  File "/home/steven/software/rockrobo/flasher/venv/lib/python3.7/site-packages/miio/device.py", line 263, in send
    self.__id = m.data.value["id"]
TypeError: 'NoneType' object is not subscriptable
ERROR:miio.updater:No request was made..

I'm pretty sure this is not directly related to this repo's software, but I would very much appreciate a word of advice as to how to actually flash any new firmware into this device without mirobo working :/
I tried resetting the device with the reset button and flashing again afterwards, also using the ususal procedure. (I have the IP correct, I have the token correct (mirobo --debug discover --handshake true).)

Can't get out of Cleaning History

Hey rand256,

I saw u made an update for the cleaning history.
I made a new valetudo file from your source and just want to test a bit.

Found out, that you are not able to get out of the Cleaning History after clicking on one Cleaning Run. Maybe thats because there is actual no map associated to this entry (there was no cleaning since this update).

feature request: zone by floor and simple access google home assistant

Hello, first of all thank you for your work. I am very grateful for the functionality of being able to save several floors, a BIG thank you.

*I would like to know if it would be possible for you to be able to integrate a function that allows you to manage the zones created (kitchen, living room, etc.) by floor, instead of it all getting mixed up like it is right now PLS.
*And finally if it would be possible to directly connect Valetudo google home assistant or has an application that is already recognized by google home assistant or another method?. Because Hassio is complicated to set up, is not the simplest solution and I can’t do it ( It resets my robot, all the time and it's annoying ).

Thank you again.

Ps: Sorry for my mistakes or misinterpretations I am French and not very good at English

Changing Zones Order may not function as intended

Hi rand256,

today I started a greater cleaning of 5 zones.
You give us the choice to rearrange the order of how the zones should be cleaned up.

Maybe there is a little bug with 2 zones that overlap each other? My robot did the 2nd zone first.

image

No Mapdata

Hey guys,

tryed the experimental feature for saving the map.
Now I don't have any map anymore.

Is there a way to completly start from scratch for drawing a new map by the robot instead of resetting and flashing/rooting again?

Feature request: advanced timer

Hi,
i am still delighted to see zoned timer feature in valetudo GUI. Any plans to add some more advanced timers too? Then i could drop my GUI-less tools, that would be great.

I do this advanced timers with my bash scripts and a cron job like this:
0 9-18/3 * * 1-5 /mnt/data/mitools_v1.2/mizt -z kueche -z katzenklo -s3 -i1
An advanced timer to clean two zones "kitchen & cat toilet" with suction power 3 and iteration 1, mo-fr, between 09:00-18:00, every 3h

This timer is equal to 20 default timers (4 timers a day x 5 days) i would need to get the same job done.
Any chance to get a GUI for such timers?

Timed Zone Cleaning

Hey rand256 :D Here I'm again! Thx first for support! Realy good job so far.

Today I added 2 testtimers for zoned cleaning.

image

And here is the result:

image

Is it even possible to change the time on this page as well?
The Timezonesetting doesn't help at all because it still uses GMT instead of GMT+1?

Valetudo stopped working after latest Update RE4?

Getting this:

image

Did a stop of valetudo service and then overwrite the valetudo file inside of /usr/local/bin/. Then I doublechecked if the file got the execution mark and started the service. Nothing... still this error page now.

EDIT: tested with latest official PRE version RE3 => everything works as expected.
EDIT2: mhhh now I tested it with compiled version from your release. Everything is working. Maybe something changed for the docker container to compile it by myself?

Verticel no go lines altered in the wrong direction

Screenshot_20190813-094009

Those two vertical lines shoul "bend" the other way around. I painted them correct.

I experimented with rrcc in the past where there was a button for flipping coordinates horizontal. Is it possible that i changed something back then and it survived a complete reflashing?

How to set up a no go Area or a fence

First of all sorry for opening an issue for that. Maybe I'm just stupid and blind..... but how do i set up a fence/virtual wall or a no go area as shown in your Picures "Editing Markers" i can't find where to place those, i can set up a zone and rename it, but no no go areas or virtual walls.
Maybe you can provide a detailed information.
Thank you in advance!

Lab mode is enabled. Do i have to reset the Map for them to work?
I had resetted the map after installing the normal valetudo

Zoned Cleaning

Hey rand256,

I don't know how to at feature requests in github, so I opened an issue :D, sry for that.

Is it possible for your to add a button on the mainpage where you select the zones to clean for just start the cleaning? It isn't realy intuitive to select the zones and then just click on one of the names to get right into the map and then have to hit the "play" button.
Just one or two simple buttons => 1st one: Start Cleaning | 2nd one: Mapview

Thx in advance :)

Fresh Build by myself won't work anymore

Hey Rand,

I build a script to compile valetudo each evening from your git repo. Worked realy well for the last few month. Since some days I get this error and I don't know how to fix, is there anything I missed for compiling by myself?

image

version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 on RE4

Valetudo-RE crashes on start.

root@rockrobo:~# /usr/local/bin/valetudo 
/usr/local/bin/valetudo: relocation error: /usr/local/bin/valetudo: symbol _ZTVNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEEE, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference

The same error happens whether I compile valetudo manually, or use released one.

home assistant xiaomi clean zone

when using home assistant to send clean zone or goto place the co-ordinates are off on the y axis

co-ordinates don't seem to match up when using the vacuum call service in home assistance
How to Reproduce

the co-ordinates was achieved by creating zones
then extracting them from api/get_config
calling vacuum.send_command
app_zoned_clean [[3540,20630,7229,25852,1]]]

the zone is shifted down but when calling the zone from valetudo web interface it works correctly

Expected behavior

Screenshots
https://imgur.com/a/bX46BMP

Vacuum Model: gen2 S5

Valetudo Version: 4.0 R5

User-Agent

Additional context

SSH Key refused :/

Hey rand256,
just wanna try your very awesome version of valetudo.
I rebootet my Roborock S50 after installing your version of valetudo and now I can't connect anymore to my Roborock via ssh because my key is refused.

Now I have to start from ground up right?

Feature request: WiFi signal level on map

Is it possible to display the measurements of the level of the wifi signal on the map? In order for the robot to draw a coverage map, he wrote a color line where he drove a legend with the appropriate level, for example, red - the signal is less than 80, green - 50, etc.
Just for fun)

Gen1 EU prebuilt firmware

Hi,

I installed the standard Valetudo before finding this which is much more up to date. I have two questions, on the regular Valetudo version 4004 is not recommended. Is it safe to use on Valetudo RE?

Next question, is the vacuum_2eu_4004.pkg from https://vacuumz.info/download/gen1/ a prebuilt firmware with Valetudo RE with EU version? Or is this stock firmware? Or stock Valetudo?

Thank you!

Where to get FW 1886?

Descriptiong

The website mentions FW 1886, but i can't find it on the regular sites (the original valetudo website doesn't mention this version either).

Vacuum Model:
Roborock S55
Valetudo Version: 0.4.0

User-Agent

Additional context

No No-Go Zones would be saved?

hey rand,

2 days before my Rockrobo S50 flashed back to original firmware by itself. I was able to get it back to Firmware 1720 and installed your version of valetudo as always. Then I made a whole run of my robo through my whole flat to get the initial map.

Then I started configuring my zones. Everything was done and worked as intended.
Then I wanted to add my "no go zones"... I could add them on the map and then I hit the "save" buton.

After beeing back in the menu I just wanted to take a 2nd look at them and go back to setup of the no-go-zones but... nothing is there anymore, just a clean map. :(

Request to port mapdrawing to ICantBelieveItsNotValetudo

I am wondering if you think it would be easy/possible to port your way of drawing the map to the companion app ICantBelieveItsNotValetudo. It looks way better in the Valetudo RE interface than it does in the official companion app. I took a look at it but got lost quickly...

Maybe you could create a "ICantBelieveItsNotValetudo RE" version if you judge its not too much work.

Feature request: multiple cleaning passes for whole cleaning

I was redirected here from the telegram channel, after I asked if there was a way to set multiple cleaning passes with Valetudo. In your build you can do that when defining zones, which is the next best thing, but since my house is not all in the same "angulation", and the zones fall all slanted for more than half of it, without possibility to create custom quadrangular zones, would it be possible to instead just start the plain, whole house cleaning with N number of passes?
Thank you for this build ;)

Only lower letters in status on map view.

When switching to german language, the status only displays lower letters. Like on "Rückkehr zur Basis" it actually displays "rückkehr zur basis".

In the language file it is written with capital letters. Also the status is correct on the main page.

Tested on Gen1 with Valetudo RE7.1
Just switch to german language and then to the map. In the status box the status itself is displayed in lower case letters. The word "Status" and "Akkustand" are correct.

Error: Unable to reach vacuum, handshake failed

Hi,

I have a gen2 robot and recently tried flashing it with this fork. Steps to reproduce:

mkdir -p valetudo/deployment/etc
curl https://github.com/Hypfer/Valetudo/raw/master/deployment/valetudo.conf > valetudo/deployment/valetudo.conf
curl https://github.com/Hypfer/Valetudo/raw/master/deployment/etc/hosts > valetudo/deployment/etc/hosts
curl https://github.com/Hypfer/Valetudo/raw/master/deployment/etc/rc.local > valetudo/deployment/etc/rc.local
curl --location https://github.com/rand256/valetudo/releases/download/0.4.0-RE2-fix/valetudo.tar.gz | tar --extract --to-stdout --gunzip --file=- valetudo > valetudo/valetudo
mkdir -p firmware
curl --continue-at - https://cdn.awsde0.fds.api.mi-img.com/rubys/updpkg/v11_001886.fullos.ee205b4f-7d81-45c9-95a3-a4eaeed1af52.pkg --output firmware/v11_001886.fullos.pkg

dustcloud/devices/xiaomi.vacuum/firmwarebuilder/imagebuilder.sh \
	--firmware=firmware/v11_001886.fullos.pkg \
	--public-key=$HOME/.ssh/id_rsa.pub \
	--valetudo-path=valetudo \
	--disable-firmware-updates \
	--ntpserver=192.168.178.1 \
	--replace-adbd

mirobo --debug discover --handshake true
mirobo --ip 192.168.8.1 --token xxx update-firmware output/v11_001886.fullos.pkg
mirobo --ip 192.168.8.1 --token xxx configure-wifi --timezone Europe/Berlin yyy zzz

I noticed that after a reboot valetudo was not running. When I ran /usr/local/bin/valetudo manually I got:

No configuration file present. Creating one at: /mnt/data/valetudo/config.json
Dummycloud is spoofing 203.0.113.1:8053 on 127.0.0.1:8053
Webserver running on port 80
failed to get handshake for message: get_timezone [] { retries: 97, retriesHS: 102 }
/snapshot/valetudo/lib/miio/Vacuum.js:91
        throw new Error("Unable to reach vacuum, handshake failed");
        ^

Error: Unable to reach vacuum, handshake failed
    at Vacuum.sendMessage (/snapshot/valetudo/lib/miio/Vacuum.js:91:15)
    at Vacuum.<anonymous> (/snapshot/valetudo/lib/miio/Vacuum.js:145:14)
    at ontimeout (timers.js:436:11)
    at tryOnTimeout (timers.js:300:5)
    at listOnTimeout (timers.js:263:5)
    at Timer.processTimers (timers.js:223:10)

What could be the problem?

Feature request: Different cleaning power settings for different zones.

Hi,
first I want to thank for all the work you and Hypfer have done.
I love the function to run several zones at once.
It would be helpful to set the vacuum strength for specific zones.
Example set the "Kitchen" to "Turbo" and then the "Living Room" to "Balanced". This could be integrated in the zone setup.
Also for normal use the zone power setting should not affect the regular power setting.

Maybe this will be possible by adding another line in the zone information in /mnt/data/valetudo/config.json
This could just be the speed information like 60 for Balanced.

Accidentally overwrote rc.local

I didn't read the instructions carefully enough so instead of adding the lines in rc.local I overwrote the file. Could anyone post the rc.local as it should be?

Thanks!

Unknown error code

When you place a virtual wall, pickup the robot and move it in this forbidding zone the web ui shows:
image
The robot says:
"Error no go zone please move the robot away from the no go zone." (or something simmilar)

Missing Symbols - only ? as icon

Hi!

I am using 0.4.0-RE6 but the error popped up on the last version already.
All my symbols are showing a "?" only except the home icon as seen on the screenshot:
Mi Robot Vacuum

Bildschirmfoto 2019-11-16 um 09 46 14

I am using an iPhone 7 with ios 13.2.2 tried Safari and Chrome both act equal!
Makes no difference local lan or from outside
Did a reboot and the firmware update didn't help.

BUT it worked before and I didn't change anything. It has happen out of the sudden!
What can it be?

Thanks

URBANsUNITED

Feature request: tidy up the robot

Hi,
in case of pause and forget - I use a little bash script that sends my robot back to docking station. This happens only if there is no error, but state would change to 2. This can prevent loosing the map (GEN 1).
Just a cron job, which runs every minute.
if $error_code == 0 and $state == 2 then /api/drive_home

Would be nice having this as a setting in valetudo. May be with a drop down for choosing state 2/3 and the time span to wait.

[Not an issue] Building notice

User "swappers" took the latest firmware 1910, ripped the miio environement (since the chinese developers decided to not let you update the fw over local area network anymore), took the miio environement from 1898 and built a firmware with valetudo. Take a look at the discussion:
https://4pda.ru/forum/index.php?showtopic=881982&view=findpost&p=89473369
And his collection:
https://vacuumz.info/download/gen2/

Is it possible for you to build a firmware based on 1910?

Feature request: make default language setting of web interface user-defineable or save language on Roborock

Currently the language is set only per-browser via a cookie - which will be constantly deleted if you decide to clear your browser cache for privacy reasons on every restart, resetting language to english and rendering the setting more or less useless. Additionally, you have to set the language for every device and every user separately.

Since most likely every person in a household will most likely prefer to have the same UI language, and will use the same UI language on every device, I would like to suggest to either make the web interface store this setting on the Roborock or to read the default language setting from a config file that can be edited by the user via SSH.

Translation error in german language file: "lade" should be "lädt"

Describe the bug

How to Reproduce

open web interface, switch to german language, open home page or map while the robot is charging.

Expected behavior

Word "lade"is grammatically incorrect (1st person singular as in "I am charging"), should be "lädt" (3rd person singular as in "it [the robot] is charging".

Vacuum Model:
S55

Valetudo Version:
0.40 RE-7.1

Zone Timers

Hey rand, got the latest version from your fork installed.

I know its still in beta, but want to notice that the 4th and later timer for a zone cleaning will always beeing disabled after reloading the page.

And: I can't delete them.

Error on start testing git

At start the current git repository testing this error apear:

failed to get handshake for message: get_timezone [] { retries: 92, retriesHS: 102 }
/home/joe/git/valetudo/lib/miio/Vacuum.js:91
throw new Error("Unable to reach vacuum, handshake failed");
^

Error: Unable to reach vacuum, handshake failed
at Vacuum.sendMessage (/home/joe/git/valetudo/lib/miio/Vacuum.js:91:15)
at Vacuum. (/home/joe/git/valetudo/lib/miio/Vacuum.js:145:14)
at ontimeout (timers.js:436:11)
at tryOnTimeout (timers.js:300:5)
at listOnTimeout (timers.js:263:5)
at Timer.processTimers (timers.js:223:10)

How to Reproduce
Firmware 1886
npm install
npm run build
sudo ./develop/run
wait 10 seconds

Expected behavior

running ;)

Vacuum Model:
Gen2/S5

Valetudo Version:
git repository

User-Agent
not needet

Additional context
running on ubuntu 19.04 latest patches

Feature Request: Option to start a fresh map

With the ability to save and load multiple maps I'd like to create a new map for each floor of my house. However, there is no way to clear the currently loaded map and start creating a new one. I feel like the vacuum isn't vacuuming the entire floor now if it isn't on the ground floor.

ICantBelieveItsNotValetudo

Describe the bug

How to Reproduce

Expected behavior

Screenshots

Vacuum Model:

Valetudo Version:

User-Agent

Additional context

Feature request: Safe zones

Hi!

Thank you for your effort and continuous updates to this project!

I have a carpet with black spots wich the vacuum get stuck on. Figured out to be the cliff sensors triggering keeping the robo from going onto the black area.

Would it be possible to have Valetudo temporarily disable the cliff sensors inside a specific zone, much like the forbidden zones but making them "safe" instead?

Feature Request: a way to save/restore all configuration to/from the local computer

As for me, my robot reflashed it self after about 1 Month of operation.
I ran 003468 on my Gen1 and current veletudo.conf with Valetudo RE7.1.

After reflashing all maps and zones are gone.
Here a backup/restore function to save all configuration to the local PC would be nice.
It should copy the zones, saved maps, timers and maybe other settings what can be done.
This way it is easy to go back to the full working operation without having to rerun the whole procedure of creating maps, zones and settings.

MQTT issue

With version RE 5.0 home assistant is unable to use the MQTT. MQTT server starts fine and connects but than Home Assistant doesn't know what to do. This is the error:

Exception in async_discover when dispatching 'mqtt_discovery_new_vacuum_mqtt': ({'name': 'rockrobo', 'schema': 'state', 'supported_features': ['start', 'pause', 'stop', 'return_to_base', 'battery', 'status', 'locate', 'clean_spot', 'fan_speed', 'send_command'], 'command_topic': 'valetudo/rockrobo/command', 'state_topic': 'valetudo/rockrobo/state', 'set_fan_speed_topic': 'valetudo/rockrobo/set_fan_speed', 'fan_speed_list': ['whisper', 'min', 'medium', 'high', 'max', 'mop'], 'send_command_topic': 'valetudo/rockrobo/custom_command', 'json_attributes_topic': 'valetudo/rockrobo/attributes', 'platform': 'mqtt'},)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/mqtt/vacuum/__init__.py", line 80, in async_discover
    config = PLATFORM_SCHEMA(discovery_payload)
  File "/usr/local/lib/python3.7/site-packages/voluptuous/validators.py", line 208, in __call__
    return self._exec((Schema(val) for val in self.validators), v)
  File "/usr/local/lib/python3.7/site-packages/voluptuous/validators.py", line 287, in _exec
    raise e if self.msg is None else AllInvalid(self.msg, path=path)
  File "/usr/local/lib/python3.7/site-packages/voluptuous/validators.py", line 283, in _exec
    v = func(v)
  File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 272, in __call__
    return self._compiled([], data)
  File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 817, in validate_callable
    return schema(data)
  File "/usr/src/homeassistant/homeassistant/components/mqtt/vacuum/__init__.py", line 35, in validate_mqtt_vacuum
    return schemas[value[CONF_SCHEMA]](value)
  File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 272, in __call__
    return self._compiled([], data)
  File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 594, in validate_dict
    return base_validate(path, iteritems(data), out)
  File "/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py", line 432, in validate_mapping
    raise er.MultipleInvalid(errors)
voluptuous.error.MultipleInvalid: value is not allowed @ data['supported_features'][3]

Feature request: option to disable the step-sensors

Hi,

at the moment i've to cover the step-sensors of my S5 to get it work on black carpet. It would be awesome to have a switch in the settings for this :)

Nice Fork!

PS:
This also was an issue in the original Valetudo repo by Hyper, but didn't get any attention.

Issue with Valetudo.conf

Looks like there are a few issues with the conf and won't auto run.

Current config looks like this

#!upstart
description "Valetudo"

start on started rrwatchdoge
stop on stopping rrwatchdoge

oom score 1000

script
	# give roborock software some time to initialize if started at boot or right after them
	wdp=`pidof WatchDoge`
	if [ `cut -d. -f1 /proc/uptime` -lt 300 ]; then
		echo -n "Waiting for 30 sec after boot..."
		sleep 30
		echo " done."
	elif [ -n "$wdp" -a $(date +%s --date="now - `stat -c%X /proc/$wdp` seconds") -lt 60 ]; then
		echo -n "Waiting for 15 sec after watchdoge launch..."
		sleep 15
		echo " done."
	fi
	# check data partition to be mounted before doing anything
	while ! /bin/mountpoint -q /mnt/data
	do
		echo "Data mountpoint isn't ready, can't run yet. Retrying in 5 sec..."
		sleep 5
	done
	# disable core dumps on this system, we're in production
	echo '|/bin/false' > /proc/sys/kernel/core_pattern
	# finally run valetudo
	exec /usr/bin/chrt -i 0 /usr/bin/ionice -c3 /usr/local/bin/valetudo
end script

respawn
respawn limit 10 90
limit as 209715200 209715200

When running init-checkconf to check the file I get;

ERROR: File valetudo.conf: shell syntax invalid in script section: /bin/sh: 8: Syntax error: "elif" unexpected (expecting "then")

Customization User Settings Page?

Also an Enhancement.
Adding a new Menu entry to change colors for the Map and maybe upload an own png file for the robot and the power station.

I found the way how you/hypfer added the pages and settings entry but I don't know how to set other colors or even generate new colorhexcodes :(

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.