Bonjour,
Mon problème
Message d’erreur dans le log
Enregistreur: homeassistant.components.switch
Source: helpers/entity_platform.py:873
intégration: Commutateur (documentation, problèmes)
S’est produit pour la première fois: 21:38:52 (1 occurrence)
Dernier enregistrement: 21:38:52
Platform mqtt does not generate unique IDs. ID ESPswitch_friendly_name already exists - ignoring switch.sonoff_thr316_001_friendly_name
J’ai deux capteur de t° Sonoff thr316 flasher avec esphone
Ils me servent uniquement à remonté la température actuellement.
Les codes sont identique excepté la partie substitution qui identifie/configure chaque appareils.
Si je comprend bien le message du log, il semblerais que je définisse deux fois un switch avec le même nom. J’ai beau me relire cela ne me saute pas aux yeux. Ou bien j’interprète mal le message d’erreur?
Si quelqu’un pouvais jeter un œil sur ce code et me trouver mon erreur, là je sèche.
Merci
Cordialement
# Sonoff THR316 Smart Temperature and Humidity Monitoring Switch
# Assumes that a DS18B20 temperature sensor is connected
substitutions:
device_friendly_name: "Sonoff-THR316-001" #"Sonoff-THR316-002"
device_id_name: sonoffthr316001 #sonoffthr316002
device_ip: xxx.xxx.xxx.xx1 #xxx.xxx.xxx.xx2
add_DS18B20: ADRESSE1 #ADRESSE2
esphome:
name: $device_id_name
friendly_name: $device_friendly_name
on_boot:
- priority: 90
then:
# Make sure the relay is in a known state at startup
- switch.turn_off: ${device_id_name}_relay
# Default to running the climate control in Home mode
- climate.control:
id: climate_control
preset: "Home"
esp32:
board: nodemcu-32s
framework:
type: esp-idf
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
min_auth_mode: !secret wifi_min_auth_mode
manual_ip:
static_ip: $device_ip
subnet: 255.255.255.0
gateway: !secret ip_gateway
dns1: !secret ip_dns1
dns2: !secret ip_dns2
ap:
ssid: $device_id_name
password: !secret ap_password
captive_portal:
logger:
level: DEBUG #INFO
baud_rate: 0
#api:
# password: ""
mqtt:
broker: !secret mqtt_broker
username: !secret mqtt_user
password: !secret mqtt_password
ota:
platform: esphome
password: "*********"
#optional
web_server:
port: 80
time:
- platform: sntp
id: sntp_time
servers:
- !secret sntp1
- !secret sntp2
- !secret sntp3
timezone: CET-1CEST,M3.5.0,M10.5.0/3 #Europe/Brussels
#- platform: homeassistant
# id: homeassistant_time
##############################################################################################
switch:
- platform: gpio
id: ${device_id_name}_relay
name: ${device_friendly_name} Relay
#id: relay
#name: $friendly_name
pin: GPIO21
restore_mode: RESTORE_DEFAULT_OFF
on_turn_on:
- delay: 500ms
- light.turn_on: switch_led
on_turn_off:
- delay: 500ms
- light.turn_off: switch_led
#- platform: restart
# name: $friendly_name Restart
# This is needed to power the external sensor.
# It receives 3v3 from this pin, which is pulled up on boot.
- platform: gpio
id: sensor_power
pin: GPIO27
restore_mode: ALWAYS_ON
light:
- platform: status_led
id: switch_led
internal: True
pin:
number: GPIO16
inverted: True
- platform: status_led
id: wifi_status_led
internal: True
pin:
number: GPIO15
inverted: True
- platform: status_led
id: auto_led
internal: True
pin:
number: GPIO13
inverted: True
button:
- name: $device_friendly_name Restart
id: ${device_id_name}_Restart
platform: restart
interval:
- interval: 30s
then:
if:
condition:
wifi.connected:
then:
- light.turn_on: wifi_status_led
else:
- light.turn_off: wifi_status_led
# DS18B20 Digital Temperature Sensor Hub
one_wire:
- platform: gpio
id: ${device_id_name}_temp_sensor
pin: GPIO25
sensor:
- platform: wifi_signal
name: $device_friendly_name Wifi RSSI
update_interval: 60s
- platform: uptime
id: uptime_sensor
internal: True
on_raw_value:
then:
- text_sensor.template.publish:
id: uptime_human
state: !lambda |-
int seconds = round(id(uptime_sensor).raw_state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return (
(days ? to_string(days) + "d " : "") +
(hours ? to_string(hours) + "h " : "") +
(minutes ? to_string(minutes) + "m " : "") +
(to_string(seconds) + "s")
).c_str();
#- platform: template
# id: esp32_temp
# name: $device_friendly_name ESP32 Internal Temp
# device_class: temperature
# unit_of_measurement: °C
# lambda: return temperatureRead();
# External DS18B20 Digital Temperature Sensor
- platform: dallas_temp #dallasng #
id: temp
one_wire_id: ${device_id_name}_temp_sensor
name: $device_friendly_name Temperature
address: $add_DS18B20
unit_of_measurement: "°C"
device_class: "temperature"
state_class: "measurement"
update_interval: 10s
accuracy_decimals: 2
text_sensor:
- platform: template
id: uptime_human
name: $device_friendly_name Uptime
icon: mdi:clock-start
- platform: wifi_info
ip_address:
name: $device_friendly_name IP
ssid:
name: $device_friendly_name SSID
bssid:
name: $device_friendly_name BSSID
climate:
- platform: thermostat
id: climate_control
name: $device_friendly_name Climate Control
sensor: temp
min_heating_off_time: 5s
min_heating_run_time: 5s
min_idle_time: 5s
heat_deadband: 2
heat_action:
- switch.turn_on: ${device_id_name}_relay
idle_action:
- switch.turn_off: ${device_id_name}_relay
off_mode:
- switch.turn_off: ${device_id_name}_relay
default_preset: Home
preset:
- name: Home
default_target_temperature_low: 20 °C
on_state:
- if:
condition:
lambda: |-
return id(climate_control).mode == CLIMATE_MODE_OFF;
then:
- light.turn_off: auto_led
- if:
condition:
lambda: |-
return id(climate_control).mode == CLIMATE_MODE_HEAT;
then:
- light.turn_on: auto_led
Cordialement