Git Product home page Git Product logo

ha-rest980-roomba's Issues

Invallid config

The new status add, gave the following error:

Invalid config for [sensor.template]: invalid template (TemplateSyntaxError: expected token ',', got 'integer') for dictionary value @ data['sensors']['vacuum']['attribute_templates']['message']. Got "{% set mapper = {\n 0 : 'n-a',\n 2 : 'Uneven Ground',\n 15 : 'Low Battery',\n 39 : 'Pending'\n 48 : 'Path Blocked' } %}\n{% set state = state_attr('sensor.rest980', 'cleanMissionStatus')['notReady'] %} {{ mapper[state] if state in mapper else state }}". (See ?, line ?).

Connection refused when adding integration.

Hi. I'm installing to a arm64 HAOS environment. I used the HA Addon. While I am able to see data in the rest api at http://homeassistant.local:3000/api/local/info/state when I use the HA UI to add the integration I get connection refused. When I send a clean command through the iRobot app I can see the changes in lastcommand via the API, so I figure I am connected in some respects. TBF, I'm new at a lot of this. Last time I did this sort of stuff was on RH and Suse about 20 years ago. Any hints on what I should look for/at?

Logger: roombapy.remote_client
Source: /usr/local/lib/python3.10/site-packages/roombapy/remote_client.py:58
First occurred: 11:12:41 AM (3 occurrences)
Last logged: 11:12:41 AM

Can't connect to 10.0.0.175, error: [Errno 111] Connection refused

and

Logger: roombapy.remote_client
Source: /usr/local/lib/python3.10/site-packages/roombapy/remote_client.py:63
First occurred: 11:12:41 AM (1 occurrences)
Last logged: 11:12:41 AM

Unable to connect to 10.0.0.175

error on connect to get details of robot

Hi I am getting an error when trying to get the details of the robot.

**node:events:490
throw er; // Unhandled 'error' event
^

Error: connect EHOSTUNREACH 192.168.1.XYZ:8883
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1494:16)
Emitted 'error' event on TLSSocket instance at:
at emitErrorNT (node:internal/streams/destroy:151:8)
at emitErrorCloseNT (node:internal/streams/destroy:116:3)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
errno: -113,
code: 'EHOSTUNREACH',
syscall: 'connect',
address: '192.168.1.XYZ',
port: 8883
}
**

Invalid date in maintenance sensors

Not sure if this is a bug or not, but I got no response in the forum thread so I'm asking here.

I struggled with getting this all to work, on one hand because I can't use packages due to the way I split my configs so I had to do everything manually and on the other hand, because I was doing this with the brand new i3 and at the time was under an NDA so I couldn't publicly ask for help. Nonetheless I managed to get everything sorted for the most part and even have the map image working, though I still have a ways to go in getting it positioned properly.

Thank you! Your work is amazing and I love the information presented!

Now that the NDA has expired, I can finally ask for help with the one thing I can't seem to resolve - the maintenance sensors. I have a working MQTT setup and discovery is working with the discovery_prefix option to the point where I was able to get to the step where you click on the check button card to create the sensors.

But mine show "Invalid Date" for all the maintenance sensor timestamp_friendly attributes and no data for the timestamp_timeout attribute in all but one sensor.

As an example, here is the attributes for the sensor.vacuum_maint_clean_filter:

timestamp_friendly: Invalid Date
timeout: 10 days
timeout_timestamp: null
timeout_seconds: 864000
severity:
  - color: '#bf4060'
    value: '-10 days'
    seconds: -864000
  - color: '#bfb540'
    value: 0 days
    seconds: 0
friendly_name: vacuum_maint_clean_filter
icon: 'mdi:checkbox-marked'
device_class: timestamp

For the vacuum_maint_clean_wheel sensor however, I've got the following info:

timestamp: ''
timestamp_friendly: '12/31/1969, 7:00:00 PM'
timeout: 18 days
timeout_timestamp: 1555200
timeout_seconds: 1555200
severity:
  - color: '#bf4060'
    value: '-3 days'
    seconds: -259200
  - color: '#bfb540'
    value: 0 days
    seconds: 0
friendly_name: vacuum_maint_clean_wheel
icon: 'mdi:checkbox-marked'
device_class: timestamp

I'm not sure if this is because the i3 is new and needs a different approach or if the i3 simply doesn't keep track of maintenance or I have set something up incorrectly. I've tried troubleshooting this myself looking at the output from http://my_ha_instance:3000/api/local/info/state with PostMan, looking at the traffic with MQTT explorer, etc. but I'm in over my head.

Can you suggest a troubleshooting approach or confirm that this won't work with the i3? I got the impression that the maintenance sensor should work but wasn't sure if I set something up wrong or it just isn't supported. For example, I know that (at the moment) room/region level cleaning isn't.

Thanks!

Up to step 7, now what?

I've successfully gotten to step 7 but can't find any of what you mention to change in the image.php. There's nothing saying timezone or log. The top of the file is this, which I can't decipher. Not sure what I did wrong.

Quick side question. Where should vacuum.yaml be? /config or /config/vacuum?
image

After a Home Assistant upgrade, maintenance checks cause an error.

After upgrading to the latest Home Assistant 2020.12 I started having the following errors causing the maintenance checks to fail:

home-assistant | 2020-12-14 15:15:00 ERROR (MainThread) [homeassistant.components.automation.vacuum_maintenance_check] While executing automation automation.vacuum_maintenance_check
home-assistant | Traceback (most recent call last):
home-assistant | File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 353, in async_render
home-assistant | render_result = compiled.render(kwargs)
home-assistant | File "/usr/local/lib/python3.8/site-packages/jinja2/environment.py", line 1090, in render
home-assistant | self.environment.handle_exception()
home-assistant | File "/usr/local/lib/python3.8/site-packages/jinja2/environment.py", line 832, in handle_exception
home-assistant | reraise(*rewrite_traceback_stack(source=source))
home-assistant | File "/usr/local/lib/python3.8/site-packages/jinja2/_compat.py", line 28, in reraise
home-assistant | raise value.with_traceback(tb)
home-assistant | File "", line 1, in top-level template code
home-assistant | File "/usr/local/lib/python3.8/site-packages/jinja2/runtime.py", line 545, in next
home-assistant | rv = next(self._iterator)
home-assistant | File "", line 1, in template
home-assistant | TypeError: '<' not supported between instances of 'NoneType' and 'float'
home-assistant |
home-assistant | The above exception was the direct cause of the following exception:
home-assistant |
home-assistant | Traceback (most recent call last):
home-assistant | File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 165, in async_prepare_call_from_config
home-assistant | domain_service = domain_service.async_render(variables)
home-assistant | File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 355, in async_render
home-assistant | raise TemplateError(err) from err
home-assistant | homeassistant.exceptions.TemplateError: TypeError: '<' not supported between instances of 'NoneType' and 'float'
home-assistant |
home-assistant | The above exception was the direct cause of the following exception:
home-assistant |
home-assistant | Traceback (most recent call last):
home-assistant | File "/usr/src/homeassistant/homeassistant/components/automation/init.py", line 404, in async_trigger
home-assistant | await self.action_script.async_run(
home-assistant | File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1026, in async_run
home-assistant | await asyncio.shield(run.async_run())
home-assistant | File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 242, in async_run
home-assistant | await self._async_step(log_exceptions=False)
home-assistant | File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 250, in _async_step
home-assistant | await getattr(
home-assistant | File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 429, in _async_call_service_step
home-assistant | domain, service_name, service_data = service.async_prepare_call_from_config(
home-assistant | File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 168, in async_prepare_call_from_config
home-assistant | raise HomeAssistantError(
home-assistant | homeassistant.exceptions.HomeAssistantError: Error rendering service name template: TypeError: '<' not supported between instances of 'NoneType' and 'float'

I'm using the latest vacuum.yaml from your repo. Please let me know if you need more information or details.

Thank you,
Cetius

rest980 start and nginx image.php issues - different to #24

Hey there, thanks for all your work in figuring this out, I'm really looking forward to getting my set up working! I need a little help though please...

My system: Synology VM, running HA Supervised
HA accessible on local 192.168.1.105:8123 and at https://ha.mydomain.com

Rest980 issue:
I downloaded your repository to the Add-ons, and installed them directly from there. I managed to get through to step 8 of your walkthrough before noticing something wasn't right. On initial startup of rest980, all was good. I was able to start a clean with the roomba, and then access the state to grab region_ids for the secrets.yaml.

Everything else going smoothly, I'd updated the top parts of image.php and set the card in lovelace, however all info was coming back as 'unknown'. I restarted rest980, and got the below:

> [email protected] start /usr/src/app
> node ./bin/www
/usr/src/app/node_modules/dorita980/lib/v2/local.js:33
    throw e;
    ^
Error: Connection refused: Identifier rejected
    at MqttClient._handleConnack (/usr/src/app/node_modules/mqtt/lib/client.js:920:15)
    at MqttClient._handlePacket (/usr/src/app/node_modules/mqtt/lib/client.js:350:12)
    at work (/usr/src/app/node_modules/mqtt/lib/client.js:292:12)
    at Writable.writable._write (/usr/src/app/node_modules/mqtt/lib/client.js:302:5)
    at doWrite (/usr/src/app/node_modules/readable-stream/lib/_stream_writable.js:428:64)
    at writeOrBuffer (/usr/src/app/node_modules/readable-stream/lib/_stream_writable.js:417:5)
    at Writable.write (/usr/src/app/node_modules/readable-stream/lib/_stream_writable.js:334:11)
    at TLSSocket.ondata (_stream_readable.js:558:20)
    at emitOne (events.js:96:13)
    at TLSSocket.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at TLSSocket.Readable.push (_stream_readable.js:134:10)
    at TLSWrap.onread (net.js:559:20)
npm ERR! Linux 5.10.42
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start"
npm ERR! node v6.17.1
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! [email protected] start: `node ./bin/www`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] start script 'node ./bin/www'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the rest980 package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node ./bin/www
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs rest980
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls rest980
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /usr/src/app/npm-debug.log

Rest Configuration is set to the same BLID, password and IP as before. I've confirmed that they haven't changed, same with version 2. I'd already removed the HA native roomba add-ons and the iRobot app on my phone is not active.

I've since uninstalled and reinstalled the add-on, and am getting the same printout.

PHP issue:
I've adjusted the following parameters

$vacuum_log = 'http://192.168.1.105:3001/vacuum.log'; # Could also be HTTPS
$set_first_coordinate = 0; # Ability to skip initial coordinate(s) if incorrect data logged
$overlay_image = 'floor.png'; # Background Layer
$overlay_walls = false; # Allows overlaying of walls, used in fill mode to cover 'spray'
$walls_image = 'walls.png'; # Walls Image must contain transparent floor
$show_stuck_positions = true; 
$line_thickness = 2; # Default 2, Set to ~60 for Fill Mode
$map_width = 1050; # Ensure overlay and wall images match this size
$map_height = 900; # Ensure overlay and wall images match this size
$x_offset = 220;
$y_offset = 220;
$flip_vertical = false;
$flip_horizontal = false;
$rotate_angle = 0; # Allows rotating of the roomba lines
$x_scale=1.00; # Allows scaling of roomba x lines
$y_scale=1.00; # Allows scaling of roomba y lines
$ha_rest980 = 'http://192.168.1.105:8123/api/states/sensor.rest980';
$ha_token = '[REDACTED]';
$ha_timezone = 'Asia/Tokyo'; # Supported Timezones https://www.php.net/manual/en/timezones.php
$ha_text_delimiter = " \n"; # How text is displayed on the map top " \n" --> New Line ## " |" --> Show on one line

When I go to http://192.168.1.105:3001/vacuum.log the log downloads - not a problem, I've seen there's a FAQ for this, I mention it to show that the paths work. But when I go to http://192.168.1.105:3001/image.php the printout is No Coordinates found in file, is it reachable and populated? Log file - http://192.168.1.105:3001/vacuum.log?. I can't find why this output is being created, any thoughts?

Cheers!

HA ADDON: How do I add two devices?

Hi!
First, thank you for the great configuration and its tutorial!

I have two iRobot devices - Roomba 980 and Braava jet m6, so I have added your rest980 Docker Image and rest980_2 Docker Image and other components on my HA.

The question is, how do I change the yaml file to make the two devices work together?

Support Zones with ZoneIDs?

With the new Zone support (regions within regions), I would love to be able to trigger this via Home Assistant!

It appears the only difference between Zones and Regions is the type property. Regions are rid while Zones are zid

image

[HELP] vacuum log empty all of the sudden

Everything was installed fine and worked.
Today all of the sudden I noticed that I had no map and the vacuum.log was a new empty file.
It was created the moment my robot started a clean session but remains empty.

Any idea where to start looking?

Support for (Xiaomi) Vacuum Map card

Hi!

I thought that you might be interested in adding support for Roomba vacuums in a new version of Xiaomi Vacuum Map card. The name of card can be a little bit misleading, but new version added support for templatable service calls (example) and UI elements, which should make it compatible with other vacuum brands as well.

Please let me know if you are interested in checking out this card, if you have any questions please do not hesitate to contact me

Willans Hass.io Add-ons: rest980 Docker Image failed

Hi Jeremy,
get this when I try to install rest980 Docker Image:

any idea?

thanks for your help

21-03-04 09:12:31 INFO (SyncWorker_1) [supervisor.docker.interface] Restarting homeassistant/qemux86-64-homeassistant
21-03-04 09:12:40 INFO (MainThread) [supervisor.homeassistant.core] Wait until Home Assistant is ready
21-03-04 09:14:22 INFO (MainThread) [supervisor.homeassistant.core] Detect a running Home Assistant instance
21-03-04 09:38:58 ERROR (MainThread) [supervisor.jobs] Unhandled exception: 'NoneType' object has no attribute 'is_file'
Traceback (most recent call last):
File "/usr/src/supervisor/supervisor/jobs/decorator.py", line 100, in wrapper
return await self._method(*args, **kwargs)
File "/usr/src/supervisor/supervisor/addons/init.py", line 182, in install
await addon.instance.install(store.version, store.image)
File "/usr/src/supervisor/supervisor/utils/init.py", line 32, in wrap_api
return await method(api, *args, **kwargs)
File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/src/supervisor/supervisor/docker/addon.py", line 491, in _install
self._build(version)
File "/usr/src/supervisor/supervisor/docker/addon.py", line 500, in _build
build_env = AddonBuild(self.coresys, self.addon)
File "/usr/src/supervisor/supervisor/addons/build.py", line 32, in init
super().init(
File "/usr/src/supervisor/supervisor/utils/common.py", line 59, in init
self.read_data()
File "/usr/src/supervisor/supervisor/utils/common.py", line 72, in read_data
if self._file.is_file():
AttributeError: 'NoneType' object has no attribute 'is_file'

nginx setup

I have tried installing php-nginx Docker Image through the supervisor. I kept the standard config with NGINX_WEBROOT: /config/vacuum

I use Hass.io on a Synology Diskstation. The homeassistant version does not have a standard 'config' directory. I did create a directory '/config/vacuum' in /Hass.io/hass.io/homeassistant

When I start nginx I get the following error:

rendered 1 template(s) with 0 error(s) in 553.713µs

chown webroot files
find: /config/vacuum: No such file or directory
./setup: line 51: pushd: /config/vacuum: No such file or directory
./setup: line 87: popd: directory stack empty
starting php service
[12-Dec-2020 18:17:08] ERROR: [pool www] the chdir path '/config/vacuum' does not exist or is not a directory
[12-Dec-2020 18:17:08] ERROR: [pool www] the chdir path '/config/vacuum' does not exist or is not a directory
[12-Dec-2020 18:17:08] ERROR: failed to post process the configuration
[12-Dec-2020 18:17:08] ERROR: failed to post process the configuration
[12-Dec-2020 18:17:08] ERROR: FPM initialization failed
[12-Dec-2020 18:17:08] ERROR: FPM initialization failed
writing php config
gomplate version 3.1.0, build 2f357bd5 (2018-11-30T02:51:11Z)
config is:
writing fpm config
input: /etc/templates/php.ini.tmpl
output: /etc/php7/php.ini

Any advice how to connect the internal docker directory properly with the homeassistant directory in order to make it work?

Thanks.

Cheers
Patrick

Automation lights

Good morning,
sorry my english but i get help from google ...
given the impossibility of robots to work in the dark I would like to be able to create an automation with lights, let me explain since on the phone app it is displayed in which room the robot is cleaning, I would like to be able to turn on the light automatically when the robot is in the room and consequently turn it off when he leaves it, do you think this is possible?
Thanks...

Regions: null

Hi. I'm not too good at DIYing this sort of thing, but I'm trying to follow the instructions. I got to step 5, but after lastCommand the regions listed were always null. Does it have to be a COMPLETE house clean to get that to appear correctly?

Endpoints not found

Not sure if this is still alive,

I have setup the rest980, running it as host, getting correct response from roomba when checking for password with 'npm run getpassword', I am running it on port 3001. But when going to http://myip:3001/metrics I am getting following error:

Error: Endpoint not found. at /home/ubuntu/rest980/app.js:62:13 at Layer.handle [as handle_request] (/home/ubuntu/rest980/node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/home/ubuntu/rest980/node_modules/express/lib/router/index.js:328:13) at /home/ubuntu/rest980/node_modules/express/lib/router/index.js:286:9 at Function.process_params (/home/ubuntu/rest980/node_modules/express/lib/router/index.js:346:12) at next (/home/ubuntu/rest980/node_modules/express/lib/router/index.js:280:10) at /home/ubuntu/rest980/node_modules/express/lib/router/index.js:646:15 at next (/home/ubuntu/rest980/node_modules/express/lib/router/index.js:265:14) at jsonParser (/home/ubuntu/rest980/node_modules/body-parser/lib/types/json.js:110:7) at Layer.handle [as handle_request] (/home/ubuntu/rest980/node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/home/ubuntu/rest980/node_modules/express/lib/router/index.js:328:13) at /home/ubuntu/rest980/node_modules/express/lib/router/index.js:286:9 at Function.process_params (/home/ubuntu/rest980/node_modules/express/lib/router/index.js:346:12) at next (/home/ubuntu/rest980/node_modules/express/lib/router/index.js:280:10) at Function.handle (/home/ubuntu/rest980/node_modules/express/lib/router/index.js:175:3) at router (/home/ubuntu/rest980/node_modules/express/lib/router/index.js:47:12) at Layer.handle [as handle_request] (/home/ubuntu/rest980/node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/home/ubuntu/rest980/node_modules/express/lib/router/index.js:328:13) at /home/ubuntu/rest980/node_modules/express/lib/router/index.js:286:9 at Function.process_params (/home/ubuntu/rest980/node_modules/express/lib/router/index.js:346:12) at next (/home/ubuntu/rest980/node_modules/express/lib/router/index.js:280:10) at authHandler (/home/ubuntu/rest980/app.js:23:48)

Can anyone guide me in the right direction?

Template variable warning:

Having this error repeating over and over in my logs

2021-08-30 10:34:56 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: list object has no element 1 when rendering '{% if state_attr('sensor.rest980', 'softwareVer') is defined %} {% set version = state_attr('sensor.rest980', 'softwareVer') %} {{ version.split('+')[1] }} {% else %} n-a {% endif %}'

Errors since Updates of HomeAssistant Supervised

Hi,

i'm using your cool plugin since a longer time. Everything was working perfectly.
But it seems one of the last HA-Updates broke my addon and i can't fix the 2 errors.

I always get these errors after HA starts.

image
image

php-nginx Docker Image Warning

When starting the php-nginx add-on, I get the following warning:

[WARN tini (8)] Tini is not running as PID 1 and isn't registered as a child subreaper.
Zombie processes will not be re-parented to Tini, so zombie reaping won't work.
To fix the problem, use the -s option or set the environment variable TINI_SUBREAPER to register Tini as a child subreaper, or run Tini as PID 1.

{ } - Empty responses received ?

Hi, I’ve set up the Docker instance on my QNAP and If i go to 192.168.1.111:3000, it presents the following,

{"documentation":"https://github.com/koalazak/rest980","pong":"2022-09-22T22:03:17.269Z"}

but if I try any other API call, e.g 192.168.1.111:3000/api/local/info/state, i just get an empty response ?

{ }

In the Docker console it reports the following, which I assume the 200 is a success code, and 2 is bytes received ?

GET 200 0.540 ms - 89
GET /api/local/info/state 200 101.331 ms - 2
GET 200 0.541 ms - 89

I’m thinking it’s network (connectivity) related, but can’t prove that yet, so wanted to see if anyone has any ideas ?

How to install the add-on

$vacuum_log = 'http://<ip or fqdn of docker host>:<nginxphpport>/vacuum.log'; # Could also be HTTPS
...
$ha_rest980 = 'https://<ip or fqdn of home assistant>:<haport>/api/states/sensor.rest980';

I change it to

$vacuum_log = 'http://192.168.1.68:3003/vacuum.log'.   # this is my public port for the php listener. My npm is listen to 3060
$ha_rest980 = 'https://192.168.1.68:8123/api/states/sensor.rest980';   #this is my HA port, also tried http

I also generated the long live token. However, I got:

Notice: Undefined offset: -1 in /config/vacuum/image.php on line 57
Warning: Cannot modify header information - headers already sent by (output started at /config/vacuum/image.php:57) in /config/vacuum/image.php on line 241

�PNG � IHDR�.......

Connection refused error?

Hi, I have been following the guide and both trough docker command and add-on I get similar error. Roomba is set to "pairing" with wifi light flashing and the IP is correct. I have also standard Roomba Integration up and running with no issue, however cannot retrieve the ID and password using add-on. Here's error:

[email protected] getpassword /usr/src/app
node ./bin/getpassword.js
Make sure your robot is on the Home Base and powered on (green lights on). Then press and hold the HOME button on your robot until it plays a series of tones (about 2 seconds). Release the button and your robot will flash WIFI light.
This step will continue in 10 seconds...
events.js:160
throw er; // Unhandled 'error' event
^
Error: connect ECONNREFUSED 192.168.1.4:8883
at Object.exports._errnoException (util.js:1020:11)
at exports._exceptionWithHostPort (util.js:1043:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1099:14)
npm ERR! Linux 5.10.17-v7+
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "getpassword"
npm ERR! node v6.17.1
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! [email protected] getpassword: node ./bin/getpassword.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] getpassword script 'node ./bin/getpassword.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the dorita980 package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node ./bin/getpassword.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs dorita980
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls dorita980
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /usr/src/app/npm-debug.log

IDEA: Do logs on a per room/area basis

This would allow for smaller log files in big houses/flats

Doing 2 pass cleaning can create a big log if you do a clean all
If it was split up it would not take as long before the map could be drawn, of course in the end it would mabe be the same

but too see something happen faster would be nice i think

Error At step 2 getting the roomba config

I get this error when trying to run the docker command from Step 2

node:events:489
      throw er; // Unhandled 'error' event
      ^

Error: 10D02C9DFFFF0000:error:0A000152:SSL routines:final_renegotiate:unsafe legacy renegotiation disabled:../deps/openssl/openssl/ssl/statem/extensions.c:921:

Emitted 'error' event on TLSSocket instance at:
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  library: 'SSL routines',
  reason: 'unsafe legacy renegotiation disabled',
  code: 'ERR_SSL_UNSAFE_LEGACY_RENEGOTIATION_DISABLED'
}

Connection error trying to retrieve blind and password

I’m getting the following error using software 2021.3.4

`

[email protected] getpassword /usr/src/app
node ./bin/getpassword.js
Make sure your robot is on the Home Base and powered on (green lights on). Then press and hold the HOME button on your robot until it plays a series of tones (about 2 seconds). Release the button and your robot will flash WIFI light.
This step will continue in 10 seconds...
(node:25) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
(Use node --trace-deprecation ... to show where the warning was created)
events.js:292
throw er; // Unhandled 'error' event
^
Error: connect EHOSTUNREACH 192.168.86.5:8883
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16)
Emitted 'error' event on TLSSocket instance at:
at emitErrorNT (internal/streams/destroy.js:100:8)
at emitErrorCloseNT (internal/streams/destroy.js:68:3)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
errno: -113,
code: 'EHOSTUNREACH',
syscall: 'connect',
address: '192.168.86.5',
port: 8883
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] getpassword: node ./bin/getpassword.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] getpassword 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! /root/.npm/_logs/2021-03-31T14_18_07_838Z-debug.log`

Buttom to clean a static specific room outside lovelace

I already write down a similar post on the Home Assistant Forum dedicated topic but I then think that maybe this is a more appropriate place to put down this.
Is it possibile for you to give support or add to the documentation about how can I start to clean a specific room (or two or three of them) by pressing a button outside your beatiful custom card (let's say a buttom-card)? I think is’ something related to call the service automation trigger that start “automation.vacuum_clean_rooms” but I don’t know how to modify the code to change the input from dynamic rooms selection (your lovelace card) to a static one (always that specific room or subset of rooms).

rest980 Docker Image Start error

Hey,

I'm getting this error when starting the rest980 via HA Add-on store.

> [email protected] start /usr/src/app
> node ./bin/www
/usr/src/app/node_modules/dorita980/lib/v2/cloud.js:7
  throw new Error('Not implemented.');
  ^
Error: Not implemented.
    at dorita980 (/usr/src/app/node_modules/dorita980/lib/v2/cloud.js:7:9)
    at new cloud (/usr/src/app/node_modules/dorita980/index.js:12:10)
    at /usr/src/app/routes/api.js:33:46
    at handleIP (/usr/src/app/routes/api.js:26:68)
    at Object.<anonymous> (/usr/src/app/routes/api.js:27:1)
    at Module._compile (module.js:577:32)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
    at Function.Module._load (module.js:445:3)
    at Module.require (module.js:504:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/src/app/app.js:11:16)
    at Module._compile (module.js:577:32)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
    at Function.Module._load (module.js:445:3)
    at Module.require (module.js:504:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/usr/src/app/bin/www:7:11)
    at Module._compile (module.js:577:32)
npm ERR! Linux 5.4.83-v8
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start"
npm ERR! node v6.17.1
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! [email protected] start: `node ./bin/www`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] start script 'node ./bin/www'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the rest980 package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node ./bin/www
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs rest980
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls rest980
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /usr/src/app/npm-debug.log

[HELP] missing vacuum.log: who, when, where

Hello,
I can't locate the vacuum.log required by image.php

$robot_log = 'http://<ip or fqdn of docker host>:<nginxphpport>/vacuum.log'; # Could also be HTTPS, or mop.log

and whenever I try accessing the map images I get this error:

Screenshot 2021-11-26 at 14 58 44

As it refers to <nginxphpport> I could expect it to show up in the vacuum directory together with the other files from this repo, but no matter how many times I started and stopped my roomba the file never showed up:

Screenshot 2021-11-26 at 14 36 15

I'm quite confused now, can someone help me understand:

  • Who is supposed to generate this vacuum.log? My guess is rest980 might generate it, as it's the one talking to the Roomba as far as I understand, but reading the source code doesn't really seem to do that unless this maps.js file's values route, but it's generating a josn and it doesn't have access to the vacuum1 directory where all the PHP stuff lives.
  • When is the vacuum.log generated? Is it created at job-start and then whoever writes in it keeps appending? Or perhaps it's supposed to be generated only at the end of a job?
  • Where is it supposed to be written when generated?

And a final thought just out of curiosity: why vacuum.log and then all this? I mean, can't whatever generates the vacuum.log directly generate the map since, from what I understood from closed issues I read, that log file is pretty much a list of coordinates?

Selective Room Payload Error

Followed the guide and everything seems to be working as it should. I've edited the various booleans, texts, and secrets to create selective rooms. See below:

980bool
980text
secret

I have confirmed the "last command" quite a few times when running a selective room clean from the app.

The payload from the log error does not seem to match the payload from the secrets file:
error

Any assistance would be greatly appreciated, thanks!

Getting error when creating docker (Step 4)

I'm following the instructions and get this error when trying to run the docker commands:

docker run --name rest980 -e BLID=***************************** -e PASSWORD=************************** -e ROBOT_IP=192.168.1.126 -e FIRMWARE_VERSION=2 -p 3000:3000 koalazak/rest980:latest

WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested standard_init_linux.go:228: exec user process caused: exec format error

Running on a Raspberry Pi 3

/api/local/info/state 404

Following these instructions, and using the HA ADDONS, I got to step 5 where I',m suppose to access http://<ip or fqdn of docker host>:<port>/api/local/info/state but I only get 404s.
Checking the addons' logs NGINX confirms it has no idea of what /api/local/info/state is:

Screenshot_2021-11-26_at_12_19_49

I tried to debug the problem but I found no source code in https://github.com/jeremywillans/hass-addons/tree/master/php-nginx and at that point, I've no idea where to knock my head on.

Can someone point me in the right direction?

thank you.

more than 2+ roombas?

Still working on getting this set up, and I see you have installations preconfigured for 1st and 2nd roomba. How would one go about modifying the installation process for 3rd, 4th & 5th roombas? :-)

I'm a pretty much a complete noob when it comes to docker & manual installations/configurations so not even sure where to start.

Error installing, does this support the i8+?

HI Jeremy,

i was impressed with your documentation and design and wanted to incorporate this into my HA but ran into an issue. i didn't notice that this didn't mention the i8+ model, maybe that was the problem?

image

I'd apperciate any advice or help if changes can be made to support.. thank you, Steve

Error in Template

Hi all!

First I would like to thank for your good work :-)
I'm still implementing this project into my homeassistant OS
I'm at the step of translating the labels, messages and so on. But it seems that I made a mistake and I already spent hours of searching.

Because I'm not an expert in yaml and homeassistant I would like to request your help.

I receive some errors with the templates

The error message from the logs

Logger: homeassistant.helpers.template_entity
Source: helpers/template_entity.py:329
First occurred: 10:14:42 (12 occurrences)
Last logged: 10:44:03

TemplateError('UndefinedError: 'None' has no attribute 'notReady'') while processing template 'Template("{% if state_attr('sensor.rest980', 'cleanMissionStatus')['cycle'] == 'none' and state_attr('sensor.rest980', 'cleanMissionStatus')['notReady'] == 39 %} Pending {% elif state_attr('sensor.rest980', 'cleanMissionStatus')['notReady'] > 0 %} Not Ready {% else %} {% set mapper = { 'clean' : 'Reinigen', 'quick' : 'Reinigen', 'spot' : 'Spot', 'evac' : 'Leer', 'dock' : 'Station', 'train' : 'Lernen', 'none' : 'Bereit' } %} {% set state = state_attr('sensor.rest980', 'cleanMissionStatus')['cycle'] %} {{ mapper[state] if state in mapper else state }} {% endif %}")' for attribute '_attr_native_value' in entity 'sensor.vacuum'
TemplateError('TypeError: argument of type 'NoneType' is not iterable') while processing template 'Template("{% if state_attr('sensor.rest980', 'softwareVer') is defined %} {% set version = state_attr('sensor.rest980', 'softwareVer') %} {% if '+' in version %} {{ version.split('+')[1] }} {% else %} {{ version }} {% endif %} {% else %} n-a {% endif %}")' for attribute 'software_ver' in entity 'sensor.vacuum'
TemplateError('UndefinedError: 'None' has no attribute 'notReady'') while processing template 'Template("{% if state_attr('sensor.rest980', 'cleanMissionStatus')['cycle'] == 'none' and state_attr('sensor.rest980', 'cleanMissionStatus')['notReady'] == 39 %} Wartet {% elif state_attr('sensor.rest980', 'cleanMissionStatus')['notReady'] > 0 %} Nicht bereit {% else %} {% set mapper = { 'clean' : 'Reinigen', 'quick' : 'Reinigen', 'spot' : 'Spot', 'evac' : 'Leer', 'dock' : 'Station', 'train' : 'Lernen', 'none' : 'Bereit' } %} {% set state = state_attr('sensor.rest980', 'cleanMissionStatus')['cycle'] %} {{ mapper[state] if state in mapper else state }} {% endif %}")' for attribute '_attr_native_value' in entity 'sensor.vacuum'

Attached you can find the part of my yaml.
Hopefully you can help :-)

vacuum.yaml TEMPLATE.txt

Error while processing template

Hi,

I'm experiencing problems with the add-on.

`Logger: homeassistant.helpers.event
Source: helpers/template.py:391
First occurred: 20:25:32 (1 occurrences)
Last logged: 20:25:32

Error while processing template: Template("{% if state_attr('sensor.rest980', 'cleanMissionStatus')['cycle'] == 'none' and state_attr('sensor.rest980', 'cleanMissionStatus')['notReady'] == 39 %} Pending {% elif state_attr('sensor.rest980', 'cleanMissionStatus')['notReady'] > 0 %} Not Ready {% else %} {% set mapper = { 'clean' : 'Clean', 'quick' : 'Clean', 'spot' : 'Spot', 'evac' : 'Empty', 'dock' : 'Dock', 'train' : 'Train', 'none' : 'Ready' } %} {% set state = state_attr('sensor.rest980', 'cleanMissionStatus')['cycle'] %} {{ mapper[state] if state in mapper else state }} {% endif %}")
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 389, in async_render
render_result = _render_with_context(self.template, compiled, **kwargs)
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1358, in _render_with_context
return template.render(**kwargs)
File "/usr/local/lib/python3.8/site-packages/jinja2/environment.py", line 1304, in render
self.environment.handle_exception()
File "/usr/local/lib/python3.8/site-packages/jinja2/environment.py", line 925, in handle_exception
raise rewrite_traceback_stack(source=source)
File "", line 3, in top-level template code
jinja2.exceptions.UndefinedError: 'None' has no attribute 'notReady'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 505, in async_render_to_info
render_info._result = self.async_render(variables, strict=strict, **kwargs)
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 391, in async_render
raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: UndefinedError: 'None' has no attribute 'notReady'
`

and

`Logger: homeassistant.helpers.template
Source: helpers/template.py:1366
First occurred: 20:25:32 (10 occurrences)
Last logged: 20:25:32

Template variable warning: 'None' has no attribute 'notReady' when rendering '{% set mapper = { 0 : 'n-a', 2 : 'Uneven Ground', 15 : 'Low Battery', 39 : 'Pending', 48 : 'Path Blocked' } %} {% set state = state_attr('sensor.rest980', 'cleanMissionStatus')['notReady'] %} {{ mapper[state] if state in mapper else state }}'
Template variable warning: 'None' has no attribute 'phase' when rendering '{% if state_attr('sensor.rest980', 'cleanMissionStatus')['phase'] == 'charge' and state_attr('sensor.rest980', 'batPct') == 100 %} Idle {% elif state_attr('sensor.rest980', 'cleanMissionStatus')['cycle'] == 'none' and state_attr('sensor.rest980', 'cleanMissionStatus')['phase'] == 'stop' %} Stopped {% else %} {% set mapper = { 'charge' : 'Charge', 'run' : 'Run', 'evac' : 'Empty', 'stop' : 'Paused', 'stuck' : 'Stuck', 'hmUsrDock' : 'Sent Home', 'hmMidMsn' : 'Mid Dock', 'hmPostMsn' : 'Final Dock' } %} {% set state = state_attr('sensor.rest980', 'cleanMissionStatus')['phase'] %} {{ mapper[state] if state in mapper else state }} {% endif %}'
Template variable warning: 'None' has no attribute 'full' when rendering '{% set mapper = { true : 'Full', false : 'Not Full' } %} {% set state = state_attr('sensor.rest980', 'bin')['full'] %} {{ mapper[state] if state in mapper else state }}'
Template variable warning: 'None' has no attribute 'present' when rendering '{% set mapper = { true : 'Yes', false : 'No' } %} {% set state = state_attr('sensor.rest980', 'bin')['present'] %} {{ mapper[state] if state in mapper else state }}'
Template variable warning: 'None' has no attribute 'initiator' when rendering '{% set mapper = { 'schedule' : 'Scheduler', 'rmtApp' : 'App', 'manual' : 'Robot', 'localApp' : 'HA' } %} {% set state = state_attr('sensor.rest980', 'cleanMissionStatus')['initiator'] %} {{ mapper[state] if state in mapper else state }}'`

and

`Logger: homeassistant.components.template.template_entity
Source: components/template/template_entity.py:72
Integration: Template (documentation, issues)
First occurred: 20:25:32 (1 occurrences)
Last logged: 20:25:32

TemplateError('UndefinedError: 'None' has no attribute 'notReady'') while processing template 'Template("{% if state_attr('sensor.rest980', 'cleanMissionStatus')['cycle'] == 'none' and state_attr('sensor.rest980', 'cleanMissionStatus')['notReady'] == 39 %} Pending {% elif state_attr('sensor.rest980', 'cleanMissionStatus')['notReady'] > 0 %} Not Ready {% else %} {% set mapper = { 'clean' : 'Clean', 'quick' : 'Clean', 'spot' : 'Spot', 'evac' : 'Empty', 'dock' : 'Dock', 'train' : 'Train', 'none' : 'Ready' } %} {% set state = state_attr('sensor.rest980', 'cleanMissionStatus')['cycle'] %} {{ mapper[state] if state in mapper else state }} {% endif %}")' for attribute '_state' in entity 'sensor.vacuum'`

is in my logs.

What can be wrong?

bbrun sqft/hr/min are missing

Hello,

Thank you for this great plugin.

From 3 days now, I have n-a for area/time:

image

After checking logs, it appears that bbrun/sqft and bbrun/hr are missing in the template:

image

If I check the api status, they are present in runtimeStats:

image

Any idea idea? Something has changed in your plugin or in the iRobot API?

Thanks.
Florent

log stays empty

Hi,

I just installed rest980 Docker Image and php-nginx Docker Image through hassOS addons. Configured it - I assume - correctly:
I can

  • start the vacuum
  • send it to room (for example, living room; it works, because I found the corresponding id, for exaample, region_id | "5"
  • the lovelace card will show info about the vacuum

grafik

However, when I open http://hassos:3001/image.php in my browser, I get No Coordinates found in file, is it reachable and populated? Log file - http://hassos:3001/vacuum.log?. The logfile (located in /config/vacuum/vacuum.log is, indeed, empty.

However, data seems to constantly be loading while the robot runs
grafik

After manually starting, then stopping, the vacuum, I get The image “http://hass:3001/image.php” cannot be displayed because it contains errors.

While this was the case, the vacuum.log actually did contain some data

Home Assistant notifications (Log started: 2023-02-15T10:57:38.400271+00:00)
--------------------------------------------------------------------------------

I then started another room clean, kitchen this time. Like before, the addon keeps gathering data every second or so. Currently state looks like below, the log from the add-on is beneathh the screenshot.

grafik

GET /api/local/info/state 200 99.853 ms - 5505
GET /api/local/info/state 200 100.873 ms - 5505
GET /api/local/info/state 200 100.763 ms - 5505
GET /api/local/info/state 200 101.093 ms - 5505
GET /api/local/info/state 200 100.803 ms - 5505
GET /api/local/info/state 200 100.964 ms - 5505
GET /api/local/info/state 200 100.886 ms - 5505
GET /api/local/info/state 200 101.080 ms - 5505
GET /api/local/info/state 200 100.941 ms - 5505
GET /api/local/info/state 200 100.756 ms - 5505
GET /api/local/info/state 200 100.869 ms - 5505
GET /api/local/info/state 200 100.734 ms - 5505
GET /api/local/info/state 200 100.088 ms - 5505
GET /api/local/info/state 200 100.834 ms - 5505
GET /api/local/info/state 200 100.782 ms - 5505
GET /api/local/info/state 200 99.881 ms - 5505
GET /api/local/info/state 200 100.772 ms - 5505
GET /api/local/info/state 200 99.882 ms - 5505

While this is all happening, the log file stays empty. Could this have anything to do with permissions? I tried chown 1000:1000 vacuum.log, but it is currently owned by root again (unlike all other files in that directory). Just as a test, I tried chmod 0777 vacuum.log, so anybody would be able to write to it. No difference.

grafik

The api currently shows this as lastCommand

grafik

What can I do to make the map work? Thank you in advance for your help. This project seems so cool, and everything else seems to work fine, so I'm sure this can be fixed as well :)

--

UPDATE

Just to be sure about permissions, I also did this

  • uninstall php-nginx Docker Image
  • remove /config/vacuum directory
  • create /config/vacuum directory (directly on the hassos machine)
  • clone this repository and copy the contents of vacuum into /config/vacuum

This time, all files were owned by root.

When I manually started my roomba again while watching that folder, I noticed that it did create vacuum.log, however, the file stayed at 0 bytes; there was no log started or anything like this. At the same time, the rest980 addon did keep updating itself (or querying data from the robot, like in the screenshot / paste above).

So data comes in, but, for some reason, doesn't go into the logfile.

Invalid timestamp vacuum_maint_replace_wheel

Hi,

I get this error repeatedly:

Source: components/mqtt/sensor.py:248
Integration: MQTT (documentation, issues)
First occurred: 13:23:01 (1 occurrences)
Last logged: 13:23:01

Invalid state message '{"timestamp":1612787906,"timestamp_friendly":"2/8/2021, 1:38:26 PM","timeout":"2 years","timeout_timestamp":1675901810,"timeout_seconds":63113904,"severity":[{"color":"#bf4060","value":"-4 months","seconds":-10518984},{"color":"#bfb540","value":"0 months","seconds":0}]}' from 'homeassistant/sensor/vacuum_maint_replace_wheel/state' 

It seems that the sensor that is created is populated with a wrong value. Or the form of the value isn't right. Is this a know issue?

Regards,
Martin

clean map

image

I'm having the hardest time getting my map to line up.... the roomba just seems to run off the map every time.

here is my current config.... what do i need to adjust or start playing with to keep my roomba from going south of my map?

// ADJUST THESE PARAMETERS
$vacuum_log = 'http://192.168.51.2:3001/vacuum.log'; # Could also be HTTPS
$set_first_coordinate = 0; # Ability to skip initial coordinate(s) if incorrect data logged
$overlay_image = 'floor.png'; # Background Layer
$overlay_walls = false; # Allows overlaying of walls, used in fill mode to cover 'spray'
$walls_image = 'walls.png'; # Walls Image must contain transparent floor
$show_stuck_positions = true;
$line_thickness = 2; # Default 2, Set to ~60 for Fill Mode
$map_width = 1300; # Ensure overlay and wall images match this size
$map_height = 1300; # Ensure overlay and wall images match this size
$x_offset = 400;
$y_offset = 400;
$flip_vertical = true;
$flip_horizontal = false;
$rotate_angle = 0; # Allows rotating of the roomba lines
$x_scale=1.00; # Allows scaling of roomba x lines
$y_scale=1.00; # Allows scaling of roomba y lines
$ha_rest980 = 'https:192.168.51.2:443/api/states/sensor.rest980';
$ha_token = 'secrettoken';
$ha_timezone = 'America/Chicago'; # Supported Timezones https://www.php.net/manual/en/timezones.php
$ha_text_delimiter = " \n"; # How text is displayed on the map top " \n" --> New Line ## " |" --> Show on one line

[ISSUE or HELP] No Map

hello , can u please help , followed all the steps . but cannot acess the map , i get this error .. checked everything .. even let the roomba do a complete clean .. and checked the FAQ , but cannot find solution

image

I never got the Latest.png in the \config\vacuum ....

Tried this :

  1. Map tips
    There are several methods to create the map, however the below is a good getting started method

Perform a full clean
Delete the latest.png file in the vacuum directory (prevents image.php from displaying the cached file)
Adjust the variables in the image.php file until the floor plan reflects your desired layout -- Start with Height and Width, then Flip and X/Y Offsets, then Rotate and Scale

Open map in browser and add last=true to end of URL (http://<fqdn/host>:/image.php?last=true). This will create a latest.png and .png file

Copy this file to your local system and open in a paint program, such as paint.net

Use this file as the "floor space" and use layers to either scale an existing floor plan or create a new one by creating "walls" around your floor space.

Upload floor.png file to vacuum directory, delete latest.png and open map again (without last=true!)
Edit any further variables as required to achieve your desired layout.

Not Sure How To Configure Roombapw.

I'm trying to install for Hassio and probably made one or more mistakes along the way. I think everything is installed but nothing has appeared to suggest it's working. One obvious issue I ran into is Step 1 of the "how to use" for Roombapw. Where am I supposed to "set the required ROBOT_ID configuration attribute"? No dialogues offered me any options for that and there is no mention of any config files. Sorry if this is a stupid question, I'm just starting to learn about Home Assistant and have never used Docker before.

I do already have the robots' connection information, since I was able to set this up previously: https://www.home-assistant.io/integrations/roomba/#retrieving-your-credentials

Also, your documentation references Docker/NGINX hosts and ports-- where are these configured, or at least identified?

Config Error

I'm getting the following error when I check my HA config:

Invalid config for [vacuum]: required key not provided @ data['platform']. Got None. (See /config/configuration.yaml, line 36).

Line 36 of my config file is vacuum: !include vacuum.yaml so I'm not sure what to look for

More of a Question

I see what's been done here and it covers a LOT of what I'd like to do with my i9+.

I've read through the Readme and understand this is:

  • targeted to the i7+
  • a multi-step process to get everything working

Before I jump in and invest a few hours is this expected to work for the i9 series too? I kind of expect the API to be the same - or very close to it (features differ some).

What are your thoughts on me trying this out?

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.