It’s besides the point. I know this, and I’m fine with that and yes that’s the reason it’s being done. I need to add the config flow to my stuff – but that’s another topic.
I don’t understand why this seems illogical – or mad.
It’s besides the point. I know this, and I’m fine with that and yes that’s the reason it’s being done. I need to add the config flow to my stuff – but that’s another topic.
I don’t understand why this seems illogical – or mad.
Having a nightmare with this
My configuration.yaml file:
mqtt: !include_dir_merge_named mqtt/
sensor: !include_dir_merge_list sensors
because I have sensors that are not MQTT
I have 2 files in mqtt:
acurite-humidity.yaml
sensor:
- name: "Indoor Humidity"
#'acurite/humidity'
state_topic: "home/rtl_433"
unit_of_measurement: '%'
value_template: >
{% if value_json is defined and value_json.id == 11794 %}
{{ value_json.humidity }}
{% else %}
{{ states('sensor.indoor_humidity') }}
{% endif %}
and acurite-temperature.yaml
sensor:
- name: "Indoor Temp"
#'acurite/temp'
state_topic: "home/rtl_433"
unit_of_measurement: '°C'
value_template: >
{% if value_json is defined and value_json.id == 11794 %}
{{ value_json.temperature_C }}
{% else %}
{{ states('sensor.indoor_temp') }}
{% endif %}
HA only shows the first sensor.
You can’t put more than 1 sensor in the same file - get an error.
(this was all working before the mqtt change!)
Unfortunately, YAML - Home Assistant documents the old syntax to explain nesting a collection of mappings in a mapping.
sensor:
- platform: mqtt
state_topic: "sensor/topic"
- platform: mqtt
state_topic: "sensor2/topic"
It will be very confusing for some time to those of us struggling to understand YAML syntax.
Because you’re using merge dir named. If you want to use it that way, you have to make separate folders for each domain…
mqtt:
sensor: !include_dir_merge_list mqtt/sensor/
And then remove sensor: from your files.
Or if you want to use merge_named, then you can only have 1 file per domain.
can’t use the keyword ‘sensor’ more than once in configuration.yaml
and I have other non mqtt sensors
got it!
configuration.yaml:
mqtt:
sensor: !include_dir_merge_list mqtt/
sensor: !include_dir_merge_list sensors
mqtt/humidity.yaml
- name: "Indoor Humidity"
#'acurite/humidity'
state_topic: "home/rtl_433"
unit_of_measurement: '%'
....
I have a number of MQTT devices and would like to get ahead of 2022.9 and not repeat my debacle of waiting too long to change my Z-Wave stuff.
So, what’s wrong here?
OLD:
switch:
- platform: mqtt
name: "steve_Heat"
command_topic: "cmnd/steve_heat/power"
state_topic: "stat/steve_heat/POWER"
qos: 1
payload_on: "ON"
payload_off: "OFF"
retain: false
NEW:
mqtt:
switch:
-name: "steve_Heat"
command_topic: "cmnd/steve_heat/power"
state_topic: "stat/steve_heat/POWER"
qos: 1
payload_on: "ON"
payload_off: "OFF"
retain: false
Is there a dictionary or Rosetta stone that helps interpret the error messages?
What is a <block end>
and a '<block mapping start>'
?
[Edit to fix forum software munging my question].
mqtt:
- switch:
- name: "steve_Heat"
command_topic: "cmnd/steve_heat/power"
state_topic: "stat/steve_heat/POWER"
qos: 1
payload_on: "ON"
payload_off: "OFF"
retain: false
I didn’t notice that my earlier question was munged by the forum software, so I’ll ask again in code tags.
Also your suggested fix produced this error:
The system cannot restart because the configuration is not valid: Error loading /config/configuration.yaml: while parsing a block mapping in "/config/configuration.yaml", line 262, column 7 expected <block end>, but found '<block mapping start>' in "/config/configuration.yaml", line 263, column 8
Is there a codex or universal translator to help understand, just what is a <block end>
and a '<block mapping start>'
?
Try this way. I have a similar switch setup in a package.
mqtt:
switch:
- name: "steve_Heat"
command_topic: "cmnd/steve_heat/power"
state_topic: "stat/steve_heat/POWER"
qos: 1
payload_on: "ON"
payload_off: "OFF"
retain: false
mqtt:
switch:
- name: "steve_Heat"
Thanks guys. I knew it had to be in the indenting. FWIW, the formatting in the “breaking-changes” is also indented wrong.
Works now.
But, for future errors, and I will absolutely have more.
Should I be looking for a YAML 101 guide on the web?
The indentation and formatting in breaking-changes is correct. The indentation in your original question was fine, your issue was the dash not having a space between your field.
Yaml only cares about relative indentation. These yaml examples are functionally the same:
mqtt:
sensor:
- name: ...
mqtt:
sensor:
- name: ...
mqtt:
sensor:
- name: ...
This is what you did wrong:
Thanks. That explains a lot.
Hi there,
Please could someone assist me with my mqtt re-configuration. I have my mqtt files saved in one folder like this:
/config/packages/systems/ustou/ustou_lights.yaml
My old configuration was like this:
# Devices
light:
- platform: mqtt
name: "Entrance Hall Light"
command_topic: "cmnd/halllight/POWER"
state_topic: "stat/halllight/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true
unique_id: entrance hall light
- platform: mqtt
name: "Dining Floor Light"
command_topic: "cmnd/floorlamp/POWER"
state_topic: "stat/floorlamp/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true
unique_id: dining floor light
- platform: mqtt
name: "Telephone Table Lamp"
command_topic: "cmnd/table3/POWER"
state_topic: "stat/table3/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true
unique_id: telephone table lamp
I have 3 .yaml files; one for sensors, one for lights and one for switches
Now after changing to RC 2022.6 I changed the above to this:
# Devices
mqtt:
light:
- name: "Entrance Hall Light"
command_topic: "cmnd/halllight/POWER"
state_topic: "stat/halllight/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true
unique_id: entrance hall light
- name: "Dining Floor Light"
command_topic: "cmnd/floorlamp/POWER"
state_topic: "stat/floorlamp/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true
unique_id: dining floor light
- name: "Telephone Table Lamp"
command_topic: "cmnd/table3/POWER"
state_topic: "stat/table3/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true
unique_id: telephone table lamp
Now after restart all lights are “unavailable” but switches and climate sensors are working…?
I changed my switches from this:
# Power Outlets
switch:
- platform: mqtt
name: "Mums Blanket"
command_topic: "cmnd/mumblanket/POWER"
state_topic: "stat/mumblanket/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true
- platform: mqtt
name: "Dads Blanket"
command_topic: "cmnd/dadblanket/POWER"
state_topic: "stat/dadblanket/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true
- platform: mqtt
name: "Lili Blanket"
command_topic: "cmnd/liliblanket/POWER"
state_topic: "stat/liliblanket/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true
To this and they are still present and working in my dashboard:
# Power Outlets
mqtt:
switch:
- name: "Mums Blanket"
command_topic: "cmnd/mumblanket/POWER"
state_topic: "stat/mumblanket/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true
- name: "Dads Blanket"
command_topic: "cmnd/dadblanket/POWER"
state_topic: "stat/dadblanket/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true
- name: "Lili Blanket"
command_topic: "cmnd/liliblanket/POWER"
state_topic: "stat/liliblanket/POWER"
payload_on: "ON"
payload_off: "OFF"
retain: true
I made the same changes made to my sensors and switches, as I did to my lights. So I’m confused as to why the lights no longer work.
Any advice would be greatfully received.
I’m also having issues with the new changes. I’m getting the error “missing property platform” in sensor.yaml when I use a separate mqtt sensor file. How did you solve this?
Configuration.yaml
mqtt:
broker: #hidden
port: 1883
username: #hidden
password: #hidden
sensor: !include sensor.yaml
sensor.yaml
mqtt:
sensor:
- name: "mqtt_temp"
state_topic: "l/t_1/sensor/t_1/state"
unit_of_measurement: '°C'
payload_available: "online"
payload_not_available: "offline"
availability_topic : 'l/tyl_1'
state_class: measurement
It looks like it should work for light as long as you are using packages. If you aren’t using packages and you have a single configuration, then both light and switch need to be in 1 mqtt section.
It does not go in sensor.yaml or the sensor section. It goes in a new MQTT section. There are multiple ways to specify this, and it’s covered earlier in the thread.
Thanks. I’ve looked at those and structured my code accordingly. For some reason, the error actually went away. However, the sensor doesn’t show up as an entity when I search for it.