sander1988 / Indego

Home Assistant Custom Component for Bosch Indego Lawn Mower
Apache License 2.0
92 stars 29 forks source link

Battery sensor unavailable (Add M+ 700 gen 2 to database) #120

Closed hruzipet closed 3 years ago

hruzipet commented 3 years ago

Hello, I have a new Bosh Indego M+ 700 (3600HB0301) I've added this great component to my HA, everything looks fine, but I'm not able to obtain battery state and some other sensor data.

Could you please kindly advise what can be wrong?

Thank you! Br, Petr

image

HA - indego debug.log 2021-03-29 13:12:30 DEBUG (MainThread) [pyIndego.indego_async_client] Sending POST to https://api.indego.iot.bosch-si.com/api/v1/authenticate 2021-03-29 13:12:34 DEBUG (MainThread) [pyIndego.indego_async_client] status: 200 2021-03-29 13:12:34 DEBUG (MainThread) [pyIndego.indego_async_client] Response: {'contextId': '781aeaa7-b9ba-4b12-9c95-842f9094899f', 'userId': 'bbac3f60-8d50-11eb-bc34-0050569b2664', 'alm_sn': '122605831'} 2021-03-29 13:12:34 DEBUG (MainThread) [pyIndego.indego_async_client] Logged in 2021-03-29 13:13:29 INFO (MainThread) [homeassistant.core] Starting Home Assistant 2021-03-29 13:13:30 INFO (MainThread) [homeassistant.core] Timer:starting 2021-03-29 13:13:30 DEBUG (MainThread) [custom_components.indego] Starting initial update. 2021-03-29 13:13:30 DEBUG (MainThread) [custom_components.indego] Refreshing state. 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831/state?longpoll=true&timeout=300&last=0 2021-03-29 13:13:30 DEBUG (MainThread) [custom_components.indego] Refreshing 10m. 2021-03-29 13:13:30 DEBUG (MainThread) [custom_components.indego] Refreshing 24h. 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alerts 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831/predictive/lastcutting 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831/predictive/nextcutting 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] status: 200 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] Response: {'state': 258, 'map_update_available': True, 'mowed': 46, 'mowmode': 1, 'xPos': 13, 'yPos': 234, 'runtime': {'total': {'operate': 665, 'charge': 230}, 'session': {'operate': 0, 'charge': 0}}, 'mapsvgcache_ts': 1617016410789, 'svg_xPos': 1896, 'svg_yPos': 144, 'config_change': False, 'mow_trig': False} 2021-03-29 13:13:30 DEBUG (MainThread) [custom_components.indego] Refreshing state. 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831/state?longpoll=true&timeout=300&last=258 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] status: 200 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] Response: {'alm_sn': '122605831', 'service_counter': 435, 'needs_service': False, 'alm_mode': 'manual', 'bareToolnumber': '3600HB0303', 'alm_firmware_version': '25116.01251'} 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] status: 204 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] 204: No content in response from server 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] status: 200 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] Response: [] 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] status: 204 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] 204: No content in response from server 2021-03-29 13:13:30 DEBUG (MainThread) [custom_components.indego] Refreshing initial operating data. 2021-03-29 13:13:30 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831/operatingData 2021-03-29 13:13:39 DEBUG (MainThread) [pyIndego.indego_async_client] status: 200 2021-03-29 13:13:39 DEBUG (MainThread) [pyIndego.indego_async_client] Response: {'state': 64513, 'map_update_available': True, 'charge': 0, 'operate': 0, 'mapsvgcache_ts': 1617016416337, 'svg_xPos': 1896, 'svg_yPos': 144} 2021-03-29 13:13:39 DEBUG (MainThread) [custom_components.indego] Refreshing state. 2021-03-29 13:13:39 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831/state?longpoll=true&timeout=300&last=64513 2021-03-29 13:13:46 DEBUG (MainThread) [pyIndego.indego_async_client] status: 200 2021-03-29 13:13:46 DEBUG (MainThread) [pyIndego.indego_async_client] Response: {'runtime': {'total': {'operate': 675, 'charge': 230}, 'session': {'operate': 0, 'charge': 0}}, 'battery': {'voltage': 8.6, 'cycles': 0, 'discharge': -0.2, 'ambient_temp': 15, 'battery_temp': 15, 'percent': 86}, 'garden': {'id': 1, 'name': 1, 'signal_id': 3, 'size': 225, 'inner_bounds': 0, 'cuts': 0, 'runtime': 675, 'charge': 230, 'bumps': 53, 'stops': 2, 'last_mow': 3, 'map_cell_size': 0}, 'hmiKeys': 488} 2021-03-29 13:13:46 INFO (MainThread) [custom_components.indego] Update operating data got an exception: unsupported operand type(s) for -: 'int' and 'NoneType' 2021-03-29 13:16:49 DEBUG (MainThread) [pyIndego.indego_async_client] status: 200 2021-03-29 13:16:49 DEBUG (MainThread) [pyIndego.indego_async_client] Response: {'map_update_available': True, 'xPos': 13, 'yPos': 234, 'charge': 0, 'operate': 0, 'mapsvgcache_ts': 1617016608996, 'svg_xPos': 1896, 'svg_yPos': 144} 2021-03-29 13:16:49 DEBUG (MainThread) [custom_components.indego] Refreshing state. 2021-03-29 13:16:49 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831/state?longpoll=true&timeout=300&last=64513 2021-03-29 13:16:49 DEBUG (MainThread) [pyIndego.indego_async_client] status: 200 2021-03-29 13:16:49 DEBUG (MainThread) [pyIndego.indego_async_client] Response: {'state': 258, 'map_update_available': True, 'mowed': 46, 'mowmode': 1, 'xPos': 13, 'yPos': 234, 'runtime': {'total': {'operate': 677, 'charge': 230}, 'session': {'operate': 2, 'charge': 0}}, 'mapsvgcache_ts': 1617016609047, 'svg_xPos': 1896, 'svg_yPos': 144, 'config_change': False, 'mow_trig': False} 2021-03-29 13:16:49 DEBUG (MainThread) [custom_components.indego] Refreshing state. 2021-03-29 13:16:49 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831/state?longpoll=true&timeout=300&last=258 2021-03-29 13:21:48 DEBUG (MainThread) [pyIndego.indego_async_client] [Errno 104] Connection reset by peer: Failed to update Indego status, longpoll timeout 2021-03-29 13:21:48 DEBUG (MainThread) [custom_components.indego] Refreshing state. 2021-03-29 13:21:48 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831/state?longpoll=true&timeout=300&last=258 2021-03-29 13:23:30 DEBUG (MainThread) [custom_components.indego] Refreshing 10m. 2021-03-29 13:23:30 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831 2021-03-29 13:23:30 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alerts 2021-03-29 13:23:30 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831/predictive/lastcutting 2021-03-29 13:23:30 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831/predictive/nextcutting 2021-03-29 13:23:31 DEBUG (MainThread) [pyIndego.indego_async_client] status: 204 2021-03-29 13:23:31 DEBUG (MainThread) [pyIndego.indego_async_client] 204: No content in response from server 2021-03-29 13:23:31 DEBUG (MainThread) [pyIndego.indego_async_client] status: 200 2021-03-29 13:23:31 DEBUG (MainThread) [pyIndego.indego_async_client] Response: [] 2021-03-29 13:23:31 DEBUG (MainThread) [pyIndego.indego_async_client] status: 204 2021-03-29 13:23:31 DEBUG (MainThread) [pyIndego.indego_async_client] 204: No content in response from server 2021-03-29 13:23:31 DEBUG (MainThread) [pyIndego.indego_async_client] status: 200 2021-03-29 13:23:31 DEBUG (MainThread) [pyIndego.indego_async_client] Response: {'alm_sn': '122605831', 'service_counter': 449, 'needs_service': False, 'alm_mode': 'manual', 'bareToolnumber': '3600HB0303', 'alm_firmware_version': '25116.01251'} 2021-03-29 13:23:31 WARNING (MainThread) [custom_components.indego] Uncaught error: unsupported operand type(s) for -: 'int' and 'NoneType' on index: 0 2021-03-29 13:26:48 DEBUG (MainThread) [pyIndego.indego_async_client] status: 504 2021-03-29 13:26:48 DEBUG (MainThread) [pyIndego.indego_async_client] 504: longpoll stopped, no updates 2021-03-29 13:26:48 DEBUG (MainThread) [custom_components.indego] Refreshing state. 2021-03-29 13:26:48 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831/state?longpoll=true&timeout=300&last=258 2021-03-29 13:31:49 DEBUG (MainThread) [pyIndego.indego_async_client] status: 504 2021-03-29 13:31:49 DEBUG (MainThread) [pyIndego.indego_async_client] 504: longpoll stopped, no updates 2021-03-29 13:31:49 DEBUG (MainThread) [custom_components.indego] Refreshing state. 2021-03-29 13:31:49 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831/state?longpoll=true&timeout=300&last=258 2021-03-29 13:33:31 DEBUG (MainThread) [custom_components.indego] Refreshing 10m. 2021-03-29 13:33:31 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831 2021-03-29 13:33:31 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alerts 2021-03-29 13:33:31 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831/predictive/lastcutting 2021-03-29 13:33:31 DEBUG (MainThread) [pyIndego.indego_async_client] Sending GET to https://api.indego.iot.bosch-si.com/api/v1/alms/122605831/predictive/nextcutting 2021-03-29 13:33:31 DEBUG (MainThread) [pyIndego.indego_async_client] status: 200 2021-03-29 13:33:31 DEBUG (MainThread) [pyIndego.indego_async_client] Response: [] 2021-03-29 13:33:31 DEBUG (MainThread) [pyIndego.indego_async_client] status: 204 2021-03-29 13:33:31 DEBUG (MainThread) [pyIndego.indego_async_client] 204: No content in response from server 2021-03-29 13:33:31 DEBUG (MainThread) [pyIndego.indego_async_client] status: 200 2021-03-29 13:33:31 DEBUG (MainThread) [pyIndego.indego_async_client] Response: {'alm_sn': '122605831', 'service_counter': 449, 'needs_service': False, 'alm_mode': 'manual', 'bareToolnumber': '3600HB0303', 'alm_firmware_version': '25116.01251'} 2021-03-29 13:33:31 DEBUG (MainThread) [pyIndego.indego_async_client] status: 204 2021-03-29 13:33:31 DEBUG (MainThread) [pyIndego.indego_async_client] 204: No content in response from server 2021-03-29 13:33:31 WARNING (MainThread) [custom_components.indego] Uncaught error: unsupported operand type(s) for -: 'int' and 'NoneType' on index: 0

RobRobM commented 3 years ago

I have the same problem with a indego S+ 500. And the model in "indego mower state" says "not in database".

quinten94b commented 3 years ago

Same issue here with both issues on S+ 500.

Fristi10 commented 3 years ago

Same issue here "Indego alert", "indego online" and "indego battery" are all unkown with the model S+ 500.

Fristi10 commented 3 years ago

Same issue here with both issues on S+ 500.

  • Also the 'indego alert' keeps saying problem, even when there is no alert in the database. Before the first alert it sayd unknown.
  • Indego Online is always in 'verbroken' dutch for disconnected.
  • Smart mow service is not working. But this may be an issue because by Bosch, my android and iOS app both are crashing when enabling smart mow.

@quinten94b I had the same issue that the android app keeps crashing when enabling smart mow and weather info but when you remove the location permissions for the app and just manual give in your location it works.

quinten94b commented 3 years ago

Same issue here with both issues on S+ 500.

  • Also the 'indego alert' keeps saying problem, even when there is no alert in the database. Before the first alert it sayd unknown.
  • Indego Online is always in 'verbroken' dutch for disconnected.
  • Smart mow service is not working. But this may be an issue because by Bosch, my android and iOS app both are crashing when enabling smart mow.

@quinten94b I had the same issue that the android app keeps crashing when enabling smart mow and weather info but when you remove the location permissions for the app and just manual give in your location it works.

Thank you for the info, I also found that solution. But the service in home assistant to enable and disable smartmow does not seem to work.

I want smartmow to be automaticly disabled by HA sometimes when I'm in the garden myself.

clemalex824 commented 3 years ago

I just got mine.

I have the same behavior...

Any news? @jm-73

jm-73 commented 3 years ago

I will soon publish a new version with the S+ 500 version in the database. Lets start there to see if the sensors shows up with this change.

quinten94b commented 3 years ago

I will soon publish a new version with the S+ 500 version in the database. Lets start there to see if the sensors shows up with this change.

Thanks for the great work so far.

hruzipet commented 3 years ago

Hi, I tried the new version, but still errors with battery and online state sensors Indego M+ 700

Any idea where can be problem? Could you please help?

2021-07-01 07:29:54 ERROR (MainThread) [homeassistant.components.sensor] Error while setting up indego platform for sensor Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 239, in _async_setup_platform await asyncio.gather(pending) File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 364, in async_add_entities await asyncio.gather(tasks) File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 558, in _async_add_entity await entity.add_to_platform_finish() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 580, in add_to_platform_finish await self.async_added_to_hass() File "/config/custom_components/indego/sensor.py", line 68, in async_added_to_hass self.state = state.state File "/config/custom_components/indego/sensor.py", line 97, in state self.async_schedule_update_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 491, in async_schedule_update_ha_state self.async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 334, in async_write_ha_state self._async_write_ha_state() File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 388, in _async_write_ha_state icon = (entry and entry.icon) or self.icon File "/config/custom_components/indego/sensor.py", line 125, in icon int(self._state) if self._state is not None else None, self.charging ValueError: invalid literal for int() with base 10: 'unknown'

jm-73 commented 3 years ago

The new version does not solve this issue. The code for adding your model is under review.

jm-73 commented 3 years ago

You may try this new version of code in your integration until a new release is available: https://discord.com/channels/714194682267303967/714194682699055104/859899763918110720

hruzipet commented 3 years ago

Hi, Thanks fot the answer. I tried it and now it works perfectly. My indego M + 700 is model for the year 2021 and bareToolnumber number is 3600HB0303, so I changed the model to this one.

Thank you! Br, Petr

quinten94b commented 3 years ago

@jm-73 I'm unable to see what's in your link. image

jm-73 commented 3 years ago

@quinten94b Cant help you there. It is a link to the Discord channel to some discussion how you could test the new pyIndego code.

quinten94b commented 3 years ago

@jm-73 I figured it out. Had to join the discord first with the link in the description.

jm-73 commented 3 years ago

As you mentioned a new model in this issue, I have added the M+ 700 gen 2 to the database. I am waiting for code review. Will let you know when you are able to test the new code!

quinten94b commented 3 years ago

@jm-73 on the ne S500+ the battery sensor is also still not working. It shows model number 3600HB0302.

Later today I will look in the log files

jm-73 commented 3 years ago

Ok, probably the new release will not help you (containing the pyIndego package you just have tried). Can you pleade send me debug logs?

Debugging To get debug logs from the component in your log file, specify these options in your configuration file:

#configuration.yaml
logger:
  default: critical 
  logs: 
    custom_components.indego: debug 
    pyIndego: debug
jm-73 commented 3 years ago

Should be fixed in 3.8.0