This adapter allows you the control, get states, cleaning history and view the map of a Roborock vacuum cleaner which is set up in the Roborock app.
This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers. For more details and for information how to disable the error reporting see Sentry-Plugin Documentation! Sentry reporting is used starting with js-controller 3.0.
- Roborock S4
- Roborock S5
- Roborock S5 Max
- Roborock S6
- Roborock S6 Pure
- Roborock S6 MaxV
- Roborock S7
- Roborock S7 MaxV (Ultra)
- Roborock Q7 Max
- Roborock S7 Pro Ultra
This feature only works when map creation is enabled in the adapter options!
- There is a webserver running. Default port is 6824
- Open http://iobroker:6824/map.html in your browser (change http://iobroker your ioBroker hostname or ip!!!)
- Draw your square meant for cleaning. Roborock supports up to 4 cleaning zones at once.
- (copystring) Make adapter turn green only when username & password are correct
- (copystring) Add touch support for zones in web interface
- (copystring) Fix room mapping
- (copystring) Refactor map creation code
- (copystring) Fix robot rotation when parked
- (copystring) Display obstacles of Roborock S6 MaxV (and maybe others) on map
- (copystring) Add support for virtual walls
- (copystring) Add support for no mop zones
- (copystring) Fix bug with sendRequest
- (copystring) Correctly process map on web interface with multiple robots
- (copystring) Fix robot running detection to start map updater correctly
- (copystring) Fix huge memory leak when creating maps
- (copystring) Fix consumables for S6 MaxV
- (copystring) Start webserver and websocket server only when map creation is enabled
- (copystring) Update homedata without fully reinitializing the adapter
- (copystring) Add ability to reset consumables
- (copystring) Add clean count for room cleaning
- (copystring) Add resume_segment_clean and resume_zoned_clean
- (copystring) Correctly process map on web interface with multiple robots
- (copystring) Fix bug when getting isCleaning state outside of vacuum.js
- (copystring) Fix robot running detection to start map updater correctly
- (copystring) Fix robot list duplicate entries on map update
- (copystring) Better error handling for map creation
- (copystring) Fix charger position
- (copystring) Temporarily disable sendRequest timeout
- (copystring) Fix huge memory leak when creating maps
- (copystring) Create and clear update interval for each vacuum correctly
- (copystring) Fix consumables for S6 MaxV
- (copystring) Start webserver and websocket server only when map creation is enabled
- (copystring) Update homedata without fully reinitializing the adapter
- (copystring) Add clean count for room cleaning
- (copystring) Ability to reset consumables
- (copystring) Add clean count for room cleaning
- (copystring) Add resume_segment_clean and resume_zoned_clean
- (copystring) "retry" on getMap() is not an error
- (copystring) Fix *_life calculation
- (copystring) Fix reconnect
- (copystring) Fix ignoring get_carpet_clean_mode and get_water_box_custom_mode for S6 and older vacuums
- (copystring) Encrypt username & password. This means you need to re-enter username and password in the options
- (copystring) Use Sentry Plugin instead native sentry
- (copystring) Convert setInterval()/setTimeout() to this.setInterval()/this.setTimeout()
- (copystring) Correctly clear intervals and timeouts on unload and reconnect
- (copystring) Update consumables code
- (copystring) Fix a lot of my seriously shitty robot coords and pixel XY code
- (copystring) Fix connecting to websocket for hosts with more than one network card
- (copystring) Disable buttons on webinterface when they can't be used
- (copystring) Improve deleting/addin zones in webinterface
- (copystring) map_status the currently selected map when bitwise shifted by 2 to the right
- (copystring) use currently selected map to get floor rooms of selected map
- (copystring) Update map only once on start of adapter
- (copystring) Automatically send current map to webinterface when updating map
- (copystring) Update clean summary only after once after cleaning and once at start
- (copystring) Implement charger and robot angle on map
- (copystring) Fix zone positions
- (copystring) Locating should not be an error. Make this an info instead
- (copystring) Fix robot position and rotation
- (copystring) Fix mop path detection at start of robot
- (copystring) Don't process is_Locating for starting the map updater
- (copystring) Add go to and go to predicted path feature in webinterface
- (copystring) Make the actual path slightly transparent
- (copystring) New robot image on map
- (copystring) Add pause, stop, dock buttons to webinterface
- (copystring) Reconnect websocket after 10 seconds of disconnection
- (copystring) Remove unnecessary getMap() calls
- (copystring) Improve reconnect logic
- (copystring) Add Sentry
- (copystring) Correct mop_mode state
- (copystring) Add consumables life in percent
- (copystring) Fix a few lint errors and fix bugs regarding zone cleaning (JSON conversion to string and back to JSON)
- (copystring) Added zone cleaning
- (copystring) Update translations
- (copystring) Enable translations via weblate
- (copystring) Fix robot commands
- (copystring) Fix map size (height and width were swapped)
- (copystring) Add all mqtt client events
- (copystring) Fix cleaningInfo for Roborock S4 to S6
- (copystring) Add optional map with selectable update intervall
- (copystring) Prepare for npm releases
- (copystring) Fix crashes on initialisation
- (copystring) Fix type m³ to m²
- (copystring) Add ukranian language
- (copystring) Fix map creation check
- (copystring) report unknown attributes
- (copystring) remove old and unused deviceInfo code
- (copystring) add missing mop and carpet commands
- (copystring) randomize the client ID
- (copystring) initial release
MIT License
Copyright (c) 2023 copystring [email protected]
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.