bonjour
j’essaie moi aussi d’intégrer mon landroid sous Ha, mais l’intégration de HACS ne semble pas fonctionner
Ca fonctionne tjs chez toi ?
Ensuite j’ai essayé celle ci qui est plus récente : https://github.com/Flodu31/HomeAssistant-LandroidWorx
chez moi, ca a fonctionné 2 s avec toutes les infos sur la carte proposée par le github, mais après ces 2s, plus rien, les sensors sont tous indisponibles, avec 2 messages d’erreur incompréhensible pour moi :
Logger: homeassistant.helpers.template_entity
Source: helpers/template_entity.py:364
First occurred: 18:03:11 (7 occurrences)
Last logged: 18:03:11
TemplateError('ValueError: Template error: as_timestamp got invalid input '' when rendering template '{{ as_timestamp( state_attr('sensor.landroid_rest', 'last_status')['timestamp']) | timestamp_custom('%d.%m.%Y %H:%M:%S') }}' but no default was specified') while processing template 'Template<template=({{ as_timestamp( state_attr('sensor.landroid_rest', 'last_status')['timestamp']) | timestamp_custom('%d.%m.%Y %H:%M:%S') }}) renders=4>' for attribute '_attr_native_value' in entity 'sensor.landroid_last_status_update'
TemplateError('UndefinedError: 'None' has no attribute 'payload'') while processing template 'Template<template=({{ (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['rsi']) }}) renders=4>' for attribute '_attr_native_value' in entity 'sensor.landroid_rsi'
TemplateError('UndefinedError: 'None' has no attribute 'payload'') while processing template 'Template<template=({% if (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['rain']['s'] == 1) %} {{ state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['rain']['cnt'] }} min {% else %} N/A {% endif %}) renders=4>' for attribute '_attr_native_value' in entity 'sensor.landroid_rain_delay'
TemplateError('UndefinedError: 'None' has no attribute 'payload'') while processing template 'Template<template=({% if (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == -1) %} UNKNOWN {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 0) %} IDLE {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 1) %} Home {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 2) %} Start sequence {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 3) %} Leaving home {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 4) %} Follow wire {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 5) %} Searching home {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 6) %} Searching wire {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 7) %} Mowing {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 8) %} Lifted {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 9) %} Trapped {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 10) %} Blade blocked {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 11) %} Debug {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 12) %} Remote control {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 30) %} Going home {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 31) %} Zone training {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 32) %} Border cut {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 33) %} Border cut {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 34) %} Pause {% endif %}) renders=4>' for attribute '_attr_native_value' in entity 'sensor.landroid_status'
TemplateError('UndefinedError: 'None' has no attribute 'payload'') while processing template 'Template<template=({% if (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == -1) %} UNKNOWN {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 0) %} No error! {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 1) %} Trapped {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 2) %} Lifted {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 3) %} Wire missing {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 4) %} Wire missing {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 5) %} Raining {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 6) %} Close door to mow {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 7) %} Close door to go home {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 8) %} Blade motor blocked {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 9) %} Wheel motor blocked {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 10) %} Trapped timeout {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 11) %} Upside down {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 12) %} Battery low {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 13) %} Reverse wire {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 14) %} Charge error {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 15) %} Timeout finding home {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 16) %} Mower locked {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 16) %} Battery over temperature {% endif %}) renders=4>' for attribute '_attr_native_value' in entity 'sensor.landroid_error'
et
Logger: homeassistant.helpers.event
Source: helpers/template.py:541
First occurred: 18:03:11 (7 occurrences)
Last logged: 18:03:11
Error while processing template: Template<template=({{ as_timestamp( state_attr('sensor.landroid_rest', 'last_status')['timestamp']) | timestamp_custom('%d.%m.%Y %H:%M:%S') }}) renders=2>
Error while processing template: Template<template=({{ (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['rsi']) }}) renders=2>
Error while processing template: Template<template=({% if (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['rain']['s'] == 1) %} {{ state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['rain']['cnt'] }} min {% else %} N/A {% endif %}) renders=2>
Error while processing template: Template<template=({% if (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == -1) %} UNKNOWN {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 0) %} IDLE {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 1) %} Home {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 2) %} Start sequence {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 3) %} Leaving home {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 4) %} Follow wire {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 5) %} Searching home {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 6) %} Searching wire {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 7) %} Mowing {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 8) %} Lifted {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 9) %} Trapped {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 10) %} Blade blocked {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 11) %} Debug {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 12) %} Remote control {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 30) %} Going home {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 31) %} Zone training {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 32) %} Border cut {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 33) %} Border cut {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['ls'] == 34) %} Pause {% endif %}) renders=2>
Error while processing template: Template<template=({% if (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == -1) %} UNKNOWN {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 0) %} No error! {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 1) %} Trapped {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 2) %} Lifted {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 3) %} Wire missing {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 4) %} Wire missing {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 5) %} Raining {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 6) %} Close door to mow {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 7) %} Close door to go home {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 8) %} Blade motor blocked {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 9) %} Wheel motor blocked {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 10) %} Trapped timeout {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 11) %} Upside down {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 12) %} Battery low {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 13) %} Reverse wire {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 14) %} Charge error {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 15) %} Timeout finding home {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 16) %} Mower locked {% elif (state_attr('sensor.landroid_rest', 'last_status')['payload']['dat']['le'] == 16) %} Battery over temperature {% endif %}) renders=2>
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1888, in forgiving_float_filter
return float(value)
TypeError: float() argument must be a string or a real number, not 'NoneType'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 539, in async_render
render_result = _render_with_context(self.template, compiled, **kwargs)
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 2130, in _render_with_context
return template.render(**kwargs)
File "/usr/local/lib/python3.10/site-packages/jinja2/environment.py", line 1301, in render
self.environment.handle_exception()
File "/usr/local/lib/python3.10/site-packages/jinja2/environment.py", line 936, in handle_exception
raise rewrite_traceback_stack(source=source)
File "<template>", line 1, in top-level template code
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1891, in forgiving_float_filter
raise_no_default("float", value)
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 1589, in raise_no_default
raise ValueError(
ValueError: Template error: float got invalid input 'None' when rendering template '{{ (state_attr('sensor.landroid_rest', 'distance_covered') | float / 1000) | round }}' but no default was specified
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 660, in async_render_to_info
render_info._result = self.async_render(variables, strict=strict, **kwargs)
File "/usr/src/homeassistant/homeassistant/helpers/template.py", line 541, in async_render
raise TemplateError(err) from err
homeassistant.exceptions.TemplateError: ValueError: Template error: float got invalid input 'None' when rendering template '{{ (state_attr('sensor.landroid_rest', 'distance_covered') | float / 1000) | round }}' but no default was specified