The trigger is this (with different numbers for different sensors, of course):
sensor.termostat8_temperature
And the friendly name is Termostat 8, so the result is the number 8, or whatever number that particular thermostat has. But then there’s a variable in another entity which also comes from the same thermostats:
{{states.climate.Termostat8_dry_air.temperature}}
And I would like to get that into the same MQTT message. Which is why I tried this, which of course didn’t work:
So the nested variable should in my attempt return a number (for this sensor that would be 8) that fills up the variable, so it becomes like this: {{states.sensor.termostat8_temperature.attributes.node_id}}
Does the failure mean that I can’t nest variables like this (which I am used to doing in EventGhost, Girder and Node-RED) or is it (crossing my fingers) my syntax that’s messed up? The error I get is this, which doesn’t really tell me all that much, since I’ve been using Hass for a week…
Invalid config for [automation]: invalid template (TemplateSyntaxError: expected token ‘end of print statement’, got ‘{’) for dictionary value @ data[‘action’][0][‘data_template’][‘payload_template’]. Got None. (See /home/homeassistant/.homeassistant/configuration.yaml, line 90). Please check the docs at Automation - Home Assistant
Just so I get this right. You’re trying to send a payload with template data yes?
can you post your automation? That would help understand a bit more.
but for now you could try to build your payload with a variable:
{% set test='states.sensor.termostat'+trigger.from_state.attributes.friendly_name.split(" ")[1]+'trigger.from_state.attributes.friendly_name.split(" ")[1]' %}
Thanks for answering! I know when I’m on deep water. But I can see that you know this. Here is my automation, just so you can see that before I try it on somet5hing that maybe is different then what you thought:
- alias: Floor temperature on all sensors
action:
data_template:
payload_template: '{{trigger.from_state.attributes.friendly_name.split(" ")[1]}},{{trigger.from_state.attributes.node_id}},{{trigger.from_state.state}},{{states.sensor.termostat{{trigger.from_state.attributes.friendly_name.split(" ")[1]}}_temperature_dry_air.attributes.node_id}}'
topic: eg/Gulvtemperatur
service: mqtt.publish
condition: []
id: '1105425764'
trigger:
- entity_id: sensor.termostat1_temperature
platform: state
- entity_id: sensor.termostat2_temperature
platform: state
- entity_id: sensor.termostat3_temperature
platform: state
- entity_id: sensor.termostat4_temperature
platform: state
- entity_id: sensor.termostat5_temperature
platform: state
- entity_id: sensor.termostat6_temperature
platform: state
- entity_id: sensor.termostat7_temperature
platform: state
- entity_id: sensor.termostat8_temperature
platform: state
- entity_id: sensor.termostat9_temperature
platform: state
- entity_id: sensor.termostat10_temperature
platform: state
- entity_id: sensor.termostat11_temperature
platform: state
- entity_id: sensor.termostat12_temperature
platform: state
- entity_id: sensor.termostat13_temperature
platform: state
- entity_id: sensor.termostat14_temperature
platform: state
The result of that is either ‘Cool’, ‘Heat Econ’, ‘Heat’ or ‘Off’.
And what I would like to see in EventGhost, which is going to receive this, is the topic: eg/Gulvtemperatur
and the payload: 8,3,24.0,Heat
Or whatever the values say. They are the result of the split, which is the number of the thermostat (8), the node ID in ZWave (3), the temperature from the floor sensor (24.0) and the operating mode (Heat).
above post will simply publish 8,3,24.0,Heat as per above requirement/request.
Can always add ‘{{’ at the beginning and ‘}}’ at the end.
I’m guessing you’re referring to JSON format, in which case this is quite different than above request…
I may be doing something wrong here. The payload isn’t working , but it is probably my mistake somewhere. The language is incredibly ticklish, and now it has stopped Hass from loading at all. Commenting out the ayload line makes it load, so there is something iun that line that isn’t working. I have double and tripple checked the indentation, that’s very specific in this language. Here’s the line as it is now:
OK, I see a bigger problem here. The line does not take out the Heat part, because that’s not in the same entity. As I showed the trigger is sensor.termostat8_temperature, and what I need is something that can take out climate.termostat8_dry_air.attributes.operation_mode So it’s another entity, the common thing is the number 8. So what I was looking for was a way to use the 8 (which comes out of the split code) to get a variable from the other entity. I thought I made it clear, but I’m probably not clear enough. Sorry.
payload_template: "{[ should be payload_template: "{{
You need 2 curly braces, not a curly+square
what I provided above is a way to concatenate strings. so all you need to do is to list what you want to keep in a string (in single quotes), add a +, your template that retrieves the 8 (or other number) then another + and the rest of your string: 'beginning of string'+state.entry.to.retrieve.number+'end of string'
I’m not sure any more what state or attribute you’re trying to retrieve, but basically it’ll look something like that for 1 sensor: 'states.sensor.termostat'+trigger.from_state.attributes.friendly_name.split(" ")[1]+'_dry_air.attributes.operation_mode'
That is the one I’ve beem struggling with, really. So if I could get that one working, it should be possible for me to get the rest by myself (I hope…). But when I use this line, which is how I understand that you mean (and I’m probably misunderstanding), Hass won’t even start:
I’m fighting with the problem line. I have tried all placements of the quotes and double quotes I can think of. I have tried this, which gives nothing:
Invalid config for [automation]: required key not provided @ data['action']. Got None required key not provided @ data['trigger']. Got None. (See /home/homeassistant/.homeassistant/configuration.yaml, line 90). Please check the docs at https://home-assistant.io/components/automation/ Invalid config for [automation]: required key not provided @ data['trigger']. Got None. (See /home/homeassistant/.homeassistant/configuration.yaml, line 90).
that won’t work as you use a single line on the outer.
Needs to be this way: payload_template: "{{'states.sensor.termostat'+trigger.from_state.attributes.friendly_name.split(" ")[1]+'_dry_air.attributes.operation_mode'}}"
" encases the whole template which is made of strings (enclosed in ') and values
Actually you may want to replace it with this: payload_template: "{{-'states.sensor.termostat'+trigger.from_state.attributes.friendly_name.split(" ")[1]+'_dry_air.attributes.operation_mode'-}}"
It locks up Hass for me. But I think it’s the indentations. The forum software is totally hopeless, because it eats the indentations when using the formatting. And I can’t paste my code, because it gets changed with bullet points and stuff, no matter what I do right now! So here is the code I have at the moment as a txt file, does that look right? It can’t be since it locks up.Code.yaml (296 Bytes)