Extend MQTT tests (#6648)

This commit is contained in:
Keith Burzinski 2024-04-30 23:49:20 -05:00 committed by GitHub
parent c299dff124
commit c69cdec052
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 446 additions and 78 deletions

View file

@ -54,7 +54,12 @@ from esphome.components.esp32 import add_idf_sdkconfig_option
DEPENDENCIES = ["network"]
AUTO_LOAD = ["json"]
def AUTO_LOAD():
if CORE.is_esp8266 or CORE.is_libretiny:
return ["async_tcp", "json"]
return ["json"]
CONF_IDF_SEND_ASYNC = "idf_send_async"
CONF_SKIP_CERT_CN_CHECK = "skip_cert_cn_check"

View file

@ -0,0 +1,428 @@
wifi:
ssid: MySSID
password: password1
time:
- platform: sntp
mqtt:
broker: "192.168.178.84"
port: 1883
username: debug
password: debug
client_id: someclient
use_abbreviations: false
discovery: true
discovery_retain: false
discovery_prefix: discovery
discovery_unique_id_generator: legacy
topic_prefix: helloworld
log_topic:
topic: helloworld/hi
level: INFO
birth_message:
will_message:
shutdown_message:
topic: topic/to/send/to
payload: hi
qos: 2
retain: true
keepalive: 60s
reboot_timeout: 60s
on_message:
- topic: my/custom/topic
qos: 0
then:
- lambda: >-
ESP_LOGD("main", "Got message %s", x.c_str());
- topic: bedroom/ota_mode
then:
- logger.log: Got bedroom/ota_mode
- topic: livingroom/ota_mode
then:
- logger.log: Got livingroom/ota_mode
on_json_message:
topic: the/topic
then:
- if:
condition:
- wifi.connected:
- mqtt.connected:
then:
- logger.log: on_json_message
on_connect:
- mqtt.publish:
topic: some/topic
payload: Hello
on_disconnect:
- mqtt.publish:
topic: some/topic
payload: Good-bye
binary_sensor:
- platform: template
id: some_binary_sensor
name: Garage Door Open
state_topic: some/topic/binary_sensor
qos: 2
lambda: |-
if (id(template_sens).state > 30) {
// Garage Door is open.
return true;
} else {
// Garage Door is closed.
return false;
}
on_state:
- mqtt.publish:
topic: some/topic/binary_sensor
payload: Hello
qos: 2
retain: true
button:
- platform: template
name: "Template Button"
state_topic: some/topic/button
qos: 2
on_press:
- mqtt.publish:
topic: some/topic/button
payload: Hello
qos: 2
retain: true
climate:
- platform: thermostat
name: Test Thermostat
sensor: template_sens
humidity_sensor: template_sens
action_state_topic: some/topicaction_state
current_temperature_state_topic: some/topiccurrent_temperature_state
current_humidity_state_topic: some/topiccurrent_humidity_state
fan_mode_state_topic: some/topicfan_mode_state
fan_mode_command_topic: some/topicfan_mode_command
mode_state_topic: some/topicmode_state
mode_command_topic: some/topicmode_command
preset_state_topic: some/topicpreset_state
preset_command_topic: some/topicpreset_command
swing_mode_state_topic: some/topicswing_mode_state
swing_mode_command_topic: some/topicswing_mode_command
target_temperature_state_topic: some/topictarget_temperature_state
target_temperature_command_topic: some/topictarget_temperature_command
target_temperature_high_state_topic: some/topictarget_temperature_high_state
target_temperature_high_command_topic: some/topictarget_temperature_high_command
target_temperature_low_state_topic: some/topictarget_temperature_low_state
target_temperature_low_command_topic: some/topictarget_temperature_low_command
target_humidity_state_topic: some/topictarget_humidity_state
target_humidity_command_topic: some/topictarget_humidity_command
preset:
- name: Default Preset
default_target_temperature_low: 18°C
default_target_temperature_high: 24°C
- name: Away
default_target_temperature_low: 16°C
default_target_temperature_high: 20°C
idle_action:
- logger.log: idle_action
cool_action:
- logger.log: cool_action
supplemental_cooling_action:
- logger.log: supplemental_cooling_action
heat_action:
- logger.log: heat_action
supplemental_heating_action:
- logger.log: supplemental_heating_action
dry_action:
- logger.log: dry_action
fan_only_action:
- logger.log: fan_only_action
auto_mode:
- logger.log: auto_mode
off_mode:
- logger.log: off_mode
heat_mode:
- logger.log: heat_mode
cool_mode:
- logger.log: cool_mode
dry_mode:
- logger.log: dry_mode
fan_only_mode:
- logger.log: fan_only_mode
fan_mode_auto_action:
- logger.log: fan_mode_auto_action
fan_mode_on_action:
- logger.log: fan_mode_on_action
fan_mode_off_action:
- logger.log: fan_mode_off_action
fan_mode_low_action:
- logger.log: fan_mode_low_action
fan_mode_medium_action:
- logger.log: fan_mode_medium_action
fan_mode_high_action:
- logger.log: fan_mode_high_action
fan_mode_middle_action:
- logger.log: fan_mode_middle_action
fan_mode_focus_action:
- logger.log: fan_mode_focus_action
fan_mode_diffuse_action:
- logger.log: fan_mode_diffuse_action
fan_mode_quiet_action:
- logger.log: fan_mode_quiet_action
swing_off_action:
- logger.log: swing_off_action
swing_horizontal_action:
- logger.log: swing_horizontal_action
swing_vertical_action:
- logger.log: swing_vertical_action
swing_both_action:
- logger.log: swing_both_action
startup_delay: true
supplemental_cooling_delta: 2.0
cool_deadband: 0.5
cool_overrun: 0.5
min_cooling_off_time: 300s
min_cooling_run_time: 300s
max_cooling_run_time: 600s
supplemental_heating_delta: 2.0
heat_deadband: 0.5
heat_overrun: 0.5
min_heating_off_time: 300s
min_heating_run_time: 300s
max_heating_run_time: 600s
min_fanning_off_time: 30s
min_fanning_run_time: 30s
min_fan_mode_switching_time: 15s
min_idle_time: 30s
set_point_minimum_differential: 0.5
fan_only_action_uses_fan_mode_timer: true
fan_only_cooling: true
fan_with_cooling: true
fan_with_heating: true
cover:
- platform: template
name: Template Cover
state_topic: some/topic/cover
qos: 2
lambda: |-
if (id(some_binary_sensor).state) {
return COVER_OPEN;
} else {
return COVER_CLOSED;
}
open_action:
- logger.log: open_action
close_action:
- logger.log: close_action
stop_action:
- logger.log: stop_action
optimistic: true
datetime:
- platform: template
name: Date
id: test_date
type: date
state_topic: some/topic/date
qos: 2
set_action:
- logger.log: "set_value"
on_value:
- logger.log:
format: "Date: %04d-%02d-%02d"
args:
- x.year
- x.month
- x.day_of_month
- platform: template
name: Time
id: test_time
type: time
state_topic: some/topic/time
qos: 2
set_action:
- logger.log: "set_value"
on_value:
- logger.log:
format: "Time: %02d:%02d:%02d"
args:
- x.hour
- x.minute
- x.second
- platform: template
name: DateTime
id: test_datetime
type: datetime
state_topic: some/topic/datetime
qos: 2
set_action:
- logger.log: set_value
on_value:
- logger.log:
format: "DateTime: %04d-%02d-%02d %02d:%02d:%02d"
args:
- x.year
- x.month
- x.day_of_month
- x.hour
- x.minute
- x.second
event:
- platform: template
name: Template Event
state_topic: some/topic/event
qos: 2
event_types:
- "custom_event_1"
- "custom_event_2"
fan:
- platform: template
name: Template Fan
state_topic: some/topic/fan
qos: 2
on_state:
- logger.log: on_state
on_speed_set:
- logger.log: on_speed_set
light:
- platform: binary
name: Desk Lamp
output: light_output
state_topic: some/topic/light
qos: 2
output:
- id: light_output
platform: gpio
pin: 0
lock:
- platform: template
name: "Template Lock"
state_topic: some/topic/lock
qos: 2
lambda: |-
if (id(some_binary_sensor).state) {
return LOCK_STATE_LOCKED;
} else {
return LOCK_STATE_UNLOCKED;
}
lock_action:
- logger.log: lock_action
unlock_action:
- logger.log: unlock_action
open_action:
- logger.log: open_action
number:
- platform: template
name: "Template number"
state_topic: some/topic/number
qos: 2
optimistic: true
min_value: 0
max_value: 100
step: 1
select:
- platform: template
name: "Template select"
state_topic: some/topic/select
qos: 2
optimistic: true
options:
- one
- two
- three
initial_option: two
sensor:
- platform: template
name: Template Sensor
id: template_sens
lambda: |-
if (id(some_binary_sensor).state) {
return 42.0;
} else {
return 0.0;
}
update_interval: 60s
on_value:
- mqtt.publish:
topic: some/topic/sensor
payload: Hello
qos: 2
retain: true
- platform: mqtt_subscribe
name: MQTT Subscribe Sensor
topic: mqtt/topic
id: the_sensor
qos: 2
on_value:
- mqtt.publish_json:
topic: the/topic
payload: |-
root["key"] = id(template_sens).state;
root["greeting"] = "Hello World";
switch:
- platform: template
name: Template Switch
state_topic: some/topic/switch
qos: 2
lambda: |-
if (id(some_binary_sensor).state) {
return true;
} else {
return false;
}
turn_on_action:
- logger.log: turn_on_action
turn_off_action:
- logger.log: turn_off_action
text_sensor:
- platform: template
name: Template Text Sensor
id: tts_text
state_topic: some/topic/text_sensor
qos: 2
- platform: mqtt_subscribe
name: MQTT Subscribe Text
topic: some/topic/text_sensor
qos: 2
on_value:
- text_sensor.template.publish:
id: tts_text
state: Hello World
- text_sensor.template.publish:
id: tts_text
state: |-
return "Hello World2";
text:
- platform: template
name: Template Text
optimistic: true
min_length: 0
max_length: 100
mode: text
state_topic: some/topic/text
qos: 2
valve:
- platform: template
name: Template Valve
state_topic: some/topic/valve
qos: 2
optimistic: true
lambda: |-
if (id(some_binary_sensor).state) {
return VALVE_OPEN;
} else {
return VALVE_CLOSED;
}

View file

@ -0,0 +1,2 @@
packages:
common: !include common.yaml

View file

@ -1,16 +1,2 @@
wifi:
ssid: MySSID
password: password1
mqtt:
broker: test.mosquitto.org
port: 1883
discovery: true
discovery_prefix: homeassistant
idf_send_async: false
log_topic:
on_message:
topic: testing/sensor/testing_sensor/state
qos: 0
then:
- logger.log: Mqtt Test
packages:
common: !include common.yaml

View file

@ -1,15 +1,2 @@
wifi:
ssid: MySSID
password: password1
mqtt:
broker: test.mosquitto.org
port: 1883
discovery: true
discovery_prefix: homeassistant
log_topic:
on_message:
topic: testing/sensor/testing_sensor/state
qos: 0
then:
- logger.log: Mqtt Test
packages:
common: !include common.yaml

View file

@ -1,16 +1,2 @@
wifi:
ssid: MySSID
password: password1
mqtt:
broker: test.mosquitto.org
port: 1883
discovery: true
discovery_prefix: homeassistant
idf_send_async: false
log_topic:
on_message:
topic: testing/sensor/testing_sensor/state
qos: 0
then:
- logger.log: Mqtt Test
packages:
common: !include common.yaml

View file

@ -1,15 +1,2 @@
wifi:
ssid: MySSID
password: password1
mqtt:
broker: test.mosquitto.org
port: 1883
discovery: true
discovery_prefix: homeassistant
log_topic:
on_message:
topic: testing/sensor/testing_sensor/state
qos: 0
then:
- logger.log: Mqtt Test
packages:
common: !include common.yaml

View file

@ -1,15 +1,2 @@
wifi:
ssid: MySSID
password: password1
mqtt:
broker: test.mosquitto.org
port: 1883
discovery: true
discovery_prefix: homeassistant
log_topic:
on_message:
topic: testing/sensor/testing_sensor/state
qos: 0
then:
- logger.log: Mqtt Test
packages:
common: !include common.yaml