Help needed with automation and json template warning

Wait for the update of Zigbee2MQTT :slight_smile: In the mean time, just ignore them, they are only warnings.

1 Like

Same problem here. But I noticed a certain delay on the device because of that.

Logger: homeassistant.helpers.template
Source: helpers/template.py:1335
First occurred: 3:42:07 (16 occurrences)
Last logged: 3:42:16

* Template variable warning: 'dict object' has no attribute 'click' when rendering '{{ value_json.click }}'
* Template variable warning: 'dict object' has no attribute 'action' when rendering '{{ value_json.action }}'

Got the same but related to the upgrade to 2021.4.3.
The error seems to be exactly the same, same place in template.py, but a template I’ve done myself. The template has been working for a couple of years (until upgrade to 2021.4.3). The issue occurs every 30 seconds. I dunno if there are relations, but my HA installation seems to crash once a day. It cannot fetch data for my integrations (e.g. Miele, REST, Uhomeupnor, basically everything). Think that error is related to some sort of overflow of all the ‘dict object’ warnings… but that’s just a guess.
My exact error is just like yours:

2021-04-13 19:44:45 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'sonnen' when rendering '{{ value_json.sonnen }}'

For kicks my template is here:

  #PV panels (Sonnen)
  - platform: rest
    name: JSON sonnen
    json_attributes:
      - Consumption_W
      - GridFeedIn_W
      - Production_W
      - USOC
    resource: http://<redacted>/api/v1/status
    value_template: '{{ value_json.sonnen }}'
  - platform: template
    sensors:
      sonnen_consumption:
        friendly_name: 'Consumption W'
        value_template: '{{ states.sensor.json_sonnen.attributes["Consumption_W"] }}'
        unit_of_measurement: W
      sonnen_gridfeedin:
        friendly_name: 'Grid feed-in W'
        value_template: '{{ states.sensor.json_sonnen.attributes["GridFeedIn_W"] }}'
        unit_of_measurement: W
      sonnen_production:
        friendly_name: 'Production W'
        value_template: '{{ states.sensor.json_sonnen.attributes["Production_W"] }}'
        unit_of_measurement: W
      sonnen_usoc:
        friendly_name: 'State of Charge %'
        value_template: '{{ states.sensor.json_sonnen.attributes["USOC"] }}'
        unit_of_measurement: "%"

Hope someones looks at this issue :slight_smile: Thanks

I use Home assistant with Zigbee2mqtt-AddOn
Current version: 1.18.2-1

I got following Warnings in Homeasistant Log:

...

2021-04-14 09:24:35 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'linkquality' when rendering '{{ value_json.linkquality }}'
2021-04-14 09:24:36 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'linkquality' when rendering '{{ value_json.linkquality }}'
2021-04-14 09:24:43 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'requested_brightness_level' when rendering '{{ value_json.requested_brightness_level }}'
2021-04-14 09:24:43 WARNING (MainThread) [homeassistant.helpers.template] Template variable warning: 'dict object' has no attribute 'requested_brightness_percent' when rendering '{{ value_json.requested_brightness_percent }}'
...

They are throwing with different variables (equested_brightness_percent,requested_brightness_level ,linkquality etc.)
They were starting after update to:
core-2021.4.4

I guess, Hassio changed exception handling.
I had an if/else Block, which worked up to core-2021.4.4. Then it throws same Warning

        {% if  trigger.event.data.room  %}
            {{ trigger.event.data.room }}
        {% else %}
            {{ trigger.event.data._intent.siteId }}
        {% endif %} 

I changed it to:

        {% if  trigger.event.data.room is defined  %}
            {{ trigger.event.data.room }}
        {% else %}
            {{ trigger.event.data._intent.siteId }}
        {% endif %}

That works and no warning any more
I guess, after core-2021.4.4, all variables needs to be checked.
I hoped that helps

Hmmm. Changed
value_template: '{{ value_json.sonnen }}'
to
value_template: 'OK'

Seems to have removed the errors from the log at least. I hope it also brings back stability…

This is covered in the breaking changes and it even provides a solution. Check out the template section in breaking changes.

value_template: '{{ value_json.sonnen | default }}'

I saw that, but I have no clue where to look to fix this. If I look at my log I see this as an example:

Logger: homeassistant.helpers.template
Source: helpers/template.py:1335 
First occurred: 1:26:44 PM (55 occurrences) 
Last logged: 1:48:05 PM

Template variable warning: 'dict object' has no attribute 'led_indication' when rendering '{{ value_json.led_indication }}'
Template variable warning: 'dict object' has no attribute 'energy' when rendering '{{ value_json.energy }}'
Template variable warning: 'dict object' has no attribute 'temperature' when rendering '{{ value_json.temperature }}'
Template variable warning: 'dict object' has no attribute 'voltage' when rendering '{{ value_json.voltage }}'
Template variable warning: 'dict object' has no attribute 'current' when rendering '{{ value_json.current }}'

This does not tell what entity is reporting the error, so I have no clue where to go and fix it. My guess is, that this is Zigbee2mqtt entity or entities but I have many entities reporting temperature, and voltage as an example.

It’s all handled on the zigbee2mqtt side’s discovery. I don’t know how that works, so I can’t help you.

I can add to this discussion that in my case I’ve scoured all my files (config, automations, sensors, etc.) and cannot find some templates mentionned in the logs…
All the templates I use I have corrected using default value, but there seems to be some entities defined elsewhere (inside plugins ?).
Do we have to wait for the developpers of every plugins to fix them ?

Yes, if they are provided by MQTT discovery and you didn’t manually configure them.

For me, it is caused by Zigbee entities. Zigbee2mqtt.

When I press or hold a button on an IKEA switch:

When power on/off IKEA power outlet:

Is anyone else experiencing a breakdown of functionality for Automations using any z2m entities after 2021.4? All devices can be used from HA directly so communication looks fine.

The Release Notes state that this ‘dict object’ message is a just a warning so I’m not sure if this is the cause or something else. System was rock solid before the upgrade.

I’d upgraded z2m to 1.18.2 at the same time as doing HA to 2021.4; so every possibility that z2m is the real culprit.

Do you still have triggers with a click instead of an action? I think they dropped “click” by default as it was already deprecated some time ago in favour of “action”.

1 Like

All using Action, thanks.

Then I don’t know. I would say, do a full restart and if you still have problems go into detail of one of the automations that does not work. For further help I would open a new topic though.

1 Like

Hi there,
Could you please help and mention where exactly you put this exceptions in HA or Zigbee2mqtt part ?

Thanks

General:

The Warning comes because of a undefined variable from zigbee2mqtt. If I understand well, this is already fixed in the dev and will be in the next minor release in May.

My Code:

I changed the

{% if trigger.event.data.room %}

to:

{% if trigger.event.data.room is defined %}

in every automation, where I need a special room which is not necessarily given or the the satellite name, which always exists.

Kay

Hi to everybody, I’m experiencing the same log warnings which in my case are related to mqtt messages sent by a “tasmotized” PZEM which I mainly use in order to compare the power produced by the solar panels and the in house power consumption. Well no problem until the last HA upgrade while now I’m bombarded with those messages although the power values shown by the PZEM seem to be reasonably correct. I read about the “breaking changes” concerning the templates but I wouldn’t know how to address the problem especially because the mqtt connection between the PZEM and HA is “behind the scene”. Anyone having an idea? Thank you
Federico

Is click really deprecated? I used it everywhere and could not find any info regarding that, also now when searching for it…

I answer my own question just to help someone else who could face the same problem. Not knowing how else to get rid of all those warning I just deleted the device from the mqtt integration and then rebooted it to let it reconnect to HA … it appears for now that the warnings are gone