koying
(Chris B)
June 13, 2021, 12:26pm
42
I don’t get it.
You are obviously using the {{ value_json.linkquality }}
template somewhere. Replace it with the lines above, which are also a template, just more elaborate.
e.g.
value_template: {{ value_json.linkquality }}
→
value_template: >-
{% if "linkquality" in value_json %}
{{ value_json.linkquality }}
{% else %}
0
{% endif %}
1 Like
KCYeoh
(Yeoh)
June 13, 2021, 12:49pm
43
No…no… I’m not using it. It was the zigbee2mqtt…some of the devices are broadcasting a null attributes and cause the HA capture this as warning.
koying
(Chris B)
June 13, 2021, 12:58pm
44
Oh, the MQTT discovery part?
Yeah, Z2T issue, then.
Can someone help me out on supprression this warning? I have no idea. Thank you.
error:
Logger: homeassistant.helpers.template
Source: helpers/template.py:1366
First occurred: June 26, 2021, 8:18:48 PM (57 occurrences)
Last logged: 5:30:30 AM
Template variable warning: 'dict object' has no attribute '6/28/2021' when rendering '{% set today = as_timestamp(now() + timedelta(days = 1))|timestamp_custom('%-m/%d', true ) %} {% set holiday = value_json.MAJOR_JP.static[ today ] %} {% if holiday | trim == "" %} {% set today = as_timestamp(now() + timedelta(days = 1))|timestamp_custom('%-m/%d', true ) ~ '/' ~ now().year %} {% set holiday = value_json.MAJOR_JP.dynamic[ today ] %} {% endif %} {{ holiday }}'
Template variable warning: 'dict object' has no attribute '7/08/2021' when rendering '{% set today = as_timestamp(now() + timedelta(days = 11))|timestamp_custom('%-m/%d/%Y', true ) %} {% set delivery = "" %} {% if delivery | trim == "" %} {% set delivery = value_json.MAJOR_JP.jcb[ today ] %} {% endif %} {{ delivery }}'
Template variable warning: 'dict object' has no attribute '7/04' when rendering '{% set today = as_timestamp(now() + timedelta(days = 7))|timestamp_custom('%-m/%d', true ) %} {% set holiday = value_json.MAJOR_JP.static[ today ] %} {% if holiday | trim == "" %} {% set today = as_timestamp(now() + timedelta(days = 7))|timestamp_custom('%-m/%d', true ) ~ '/' ~ now().year %} {% set holiday = value_json.MAJOR_JP.dynamic[ today ] %} {% endif %} {{ holiday }}'
Template variable warning: 'dict object' has no attribute '7/04/2021' when rendering '{% set today = as_timestamp(now() + timedelta(days = 7))|timestamp_custom('%-m/%d', true ) %} {% set holiday = value_json.MAJOR_JP.static[ today ] %} {% if holiday | trim == "" %} {% set today = as_timestamp(now() + timedelta(days = 7))|timestamp_custom('%-m/%d', true ) ~ '/' ~ now().year %} {% set holiday = value_json.MAJOR_JP.dynamic[ today ] %} {% endif %} {{ holiday }}'
Template variable warning: 'dict object' has no attribute 'click' when rendering '{{ value_json.click }}'
sensor:
- platform: command_line
name: Holidaytomorrow
command: 'cat /config/www/data/days.json'
value_template: >
{% set today = as_timestamp(now() + timedelta(days = 1))|timestamp_custom('%-m/%d', true ) %}
{% set holiday = value_json.MAJOR_JP.static[ today ] %}
{% if holiday | trim == "" %}
{% set today = as_timestamp(now() + timedelta(days = 1))|timestamp_custom('%-m/%d', true ) ~ '/' ~ now().year %}
{% set holiday = value_json.MAJOR_JP.dynamic[ today ] %}
{% endif %}
{{ holiday }}
scan_interval: 14400
- platform: command_line
name: Holidayinaweek
command: 'cat /config/www/data/days.json'
value_template: >
{% set today = as_timestamp(now() + timedelta(days = 7))|timestamp_custom('%-m/%d', true ) %}
{% set holiday = value_json.MAJOR_JP.static[ today ] %}
{% if holiday | trim == "" %}
{% set today = as_timestamp(now() + timedelta(days = 7))|timestamp_custom('%-m/%d', true ) ~ '/' ~ now().year %}
{% set holiday = value_json.MAJOR_JP.dynamic[ today ] %}
{% endif %}
{{ holiday }}
scan_interval: 14400
koying
(Chris B)
June 27, 2021, 10:28am
46
You’re trying to access an element of your dict without checking if the key exists.
If it doesn’t, you get the warning
Rather than the above, do something like
{% if today in value_json.MAJOR_JP.static %}
Hi. I am getting this error now.
error:
Template variable warning: 'holiday' is undefined when rendering '{% set today = as_timestamp(now() + timedelta(days = 7))|timestamp_custom('%-m/%d', true ) %} {% if today in value_json.MAJOR_JP.static %} {% set today = as_timestamp(now() + timedelta(days = 7))|timestamp_custom('%-m/%d', true ) ~ '/' ~ now().year %} {% set holiday = value_json.MAJOR_JP.dynamic[ today ] %} {% endif %} {{ holiday }}'
sensor:
- platform: command_line
name: Holidayinaweek
command: 'cat /config/www/data/days.json'
value_template: >
{% set today = as_timestamp(now() + timedelta(days = 7))|timestamp_custom('%-m/%d', true ) %}
{% if today in value_json.MAJOR_JP.static %}
{% set today = as_timestamp(now() + timedelta(days = 7))|timestamp_custom('%-m/%d', true ) ~ '/' ~ now().year %}
{% set holiday = value_json.MAJOR_JP.dynamic[ today ] %}
{% endif %}
{{ holiday }}
scan_interval: 14400
koying
(Chris B)
June 27, 2021, 11:22am
48
duceduc:
{{ holiday }}
You using it while not initialized.
Use set holiday = ''
or whatver before the if.
ok. sorry. I have edit for the following and it looks like the original error has came back.
sensor:
- platform: command_line
name: Holidaytomorrow
command: 'cat /config/www/data/days.json'
value_template: >
{% set today = as_timestamp(now() + timedelta(days = 1))|timestamp_custom('%-m/%d', true ) %}
{% set holiday = '' %}
{% if today in value_json.MAJOR_JP.static %}
{% set today = as_timestamp(now() + timedelta(days = 1))|timestamp_custom('%-m/%d', true ) ~ '/' ~ now().year %}
{% set holiday = value_json.MAJOR_JP.dynamic[ today ] %}
{% endif %}
{{ holiday }}
scan_interval: 14400
Error:
Template variable warning: 'dict object' has no attribute '6/28/2021' when rendering '{% set today = as_timestamp(now() + timedelta(days = 1))|timestamp_custom('%-m/%d', true ) %} {% set holiday = '' %} {% if today in value_json.MAJOR_JP.static %} {% set today = as_timestamp(now() + timedelta(days = 1))|timestamp_custom('%-m/%d', true ) ~ '/' ~ now().year %} {% set holiday = value_json.MAJOR_JP.dynamic[ today ] %} {% endif %} {{ holiday }}'
Same problem here:
2021-07-13 14:03:40 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: ‘dict object’ has no attribute ‘click’ when rendering ‘{{ value_json.click }}’
2021-07-13 14:03:40 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: ‘dict object’ has no attribute ‘action’ when rendering ‘{{ value_json.action }}’
Im using a WXKG02LM with zigbee2mqtt
Johanvh
(Johan Van Hoorde)
December 29, 2021, 10:13am
51
Same error but not related to Z2M. I followed this ‘tutorial’ to switch the screen on/off from my tablet: Fully Kiosk Browser
Since this is configured, and it works great, I have below error:
Logger: homeassistant.helpers.template
Source: helpers/template.py:1779
First occurred: 10:25:10 AM (75 occurrences)
Last logged: 11:03:11 AM
Template variable warning: 'dict object' has no attribute 'isScreenOn' when rendering '{{ value_json.isScreenOn }}'
According the tutorial my sensors.yaml contains:
- platform: rest
name: foo
json_attributes:
- batteryLevel
- kioskMode
- screenBrightness
- motionDetectorState
- maintenanceMode
- appFreeMemory
- appUsedMemory
- totalFreeMemory
- totalUsedMemory
- startUrl
- currentPage
resource: !secret foo_rest
value_template: '{{ value_json.isScreenOn }}'
I want to get red of this error but don’t know how
amaisano
(Adamo Maisano)
January 3, 2022, 7:54pm
52
Same problem (not Z2M). It’s happening with several sensors from a raspberry pi monitor plugin I have:
Python 2 and 3 script to check cpu load, cpu temperature, free space, used memory, swap usage, voltage and system clock speed on a Raspberry Pi computer and publish the data to a MQTT broker. - Git...
2022-01-03 12:42:26 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'clock_speed' when rendering '{{value_json.clock_speed}}'
2022-01-03 12:42:26 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'load_1m' when rendering '{{value_json.load_1m}}'
2022-01-03 12:42:26 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'load_5m' when rendering '{{value_json.load_5m}}'
2022-01-03 12:42:26 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'load_15m' when rendering '{{value_json.load_15m}}'
2022-01-03 12:42:26 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'net_tx' when rendering '{{value_json.net_tx}}'
2022-01-03 12:42:26 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'net_rx' when rendering '{{value_json.net_rx}}'
2022-01-03 12:42:26 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'wifi_ssid' when rendering '{{value_json.wifi_ssid}}'
etc...
ilbagatta
(Ilbagatta)
March 13, 2022, 12:57am
53
The same for me…
I used this GitHub - Sennevds/system_sensors: Logging of system sensor specific for the RPI and sending them to a MQTT broker for monitor other rpi.
I started the script with load_1m, load_5m and load_15m monitor and all worked.
Then, i removed this 3 sensors, and started to log this error:
2022-03-13 00:58:53 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'load_1m' when rendering '{{value_json.load_1m}}'
2022-03-13 00:58:53 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'load_5m' when rendering '{{value_json.load_5m}}'
2022-03-13 00:58:53 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'load_15m' when rendering '{{value_json.load_15m}}'
I think that MQTT has them saved somewhere… or not?
1 Like
uiguy
July 5, 2022, 3:54pm
54
I have a Tekelek sonic tank level monitor (Tek 766) connected over LoRaWAN and delivering payloads via MQTT into Home Assistant.
It send updates every 6 hours or so (which is configurable) however sending the battery state is not as easily configurable to synchronise with the level payloads.
This means that sometimes the Battery reading is not there and then these errors occur. This manifests in the UI where the battery percentage goes from it real reading (83%) to 0%.
Is there no way in Home Assistant that the battery sensor simply does not update when there is no reading? I don’t mind the errors in the logs, it is the resulting inaccurate readings that is the trouble…
bohrgu
November 15, 2022, 1:31pm
55
I hope that it will help some of you but this is how I had it working in my case (Zigbee Bridge from Sonoff flashed with Tasmota):
mqtt:
sensor:
- state_topic: "tele/tasmota_F1234F/SENSOR"
name: "Bedroom_Temperature"
device_class: temperature
value_template: "{% if value_json['ZbReceived']['0x123A'].Temperature is defined %} {{ value_json['ZbReceived']['0x123A'].Temperature }} {% else %} {{ state('sensor.Bedroom_Temperature') }} {% endif %}"
unit_of_measurement: "°C"
- state_topic: "tele/tasmota_F1234F/SENSOR"
name: "Bedroom_Humidity"
device_class: humidity
value_template: "{% if value_json['ZbReceived']['0x123A'].Humidity is defined %} {{ value_json['ZbReceived']['0x123A'].Humidity }} {% else %} {{ state('sensor.Bedroom_Humidity') }} {% endif %}"
unit_of_measurement: "%"
In my case my Zigbee sensors return only one value at a time, either ‘Temperature’ or ‘Humidity’, but inside the exact same JSON topic from my bridge, and when I had one the other was always reset inside HA.
Here I use “is defined” to check the presence of the value and set the current state if it’s not defined, this way when I get ‘Humidity’ it doesn’t reset the ‘Temperature’ value to “unknown”
Here are two example topics I got from my bridge (to explain the issue):
tele/tasmota_F1234F/SENSOR = {"ZbReceived":{"0x123A":{"Device":"0x123A","Name":"Bedroom_Sensor","Temperature":19.77,"Endpoint":1,"LinkQuality":58}}}
tele/tasmota_F1234F/SENSOR = {"ZbReceived":{"0x123A":{"Device":"0x123A","Name":"Bedroom_Sensor","Humidity":60.48,"Endpoint":1,"LinkQuality":52}}}
My solution is based on the following pages:
ok. i found the solution myself.
there is only one topic which is parsed by HA, and then search for keywords. if the keyword can not be found it’s set to undefined/empty.
jinja2 doc states:
If a variable or attribute does not exist, you will get back an undefined value. What you can do with that kind of value depends on the application configuration: the default behavior is to evaluate to an empty string if printed or iterated over, and to fail for every other operation.
so all i had do wa…
And I think I stumbled upon my answer:
“3. You must surround single-line templates with double quotes ( " ) or single quotes ( ' ).”
Since the quotes are required for single line templates if the same line is put in a multi-line template and surrounded by quotes it apparently acts completely differently.
1 Like