59 lines
2.5 KiB
YAML
59 lines
2.5 KiB
YAML
####################################################################################################
|
|
##### TX Ultimate Easy for ESPHome #####
|
|
##### Repository: https://github.com/edwardtfn/TX-Ultimate-Easy #####
|
|
####################################################################################################
|
|
##### Purpose: ESPHome Core - API #####
|
|
####################################################################################################
|
|
##### Author: edwardtfn - https://github.com/edwardtfn - https://buymeacoffee.com/edwardfirmo #####
|
|
####################################################################################################
|
|
##### NOTE: #####
|
|
##### - Make changes ONLY if absolutely necessary and you have the required knowledge. #####
|
|
##### - For normal system use, modifications to this file are NOT required. #####
|
|
####################################################################################################
|
|
---
|
|
api:
|
|
id: api_server
|
|
actions:
|
|
- action: set_float
|
|
variables:
|
|
component: string
|
|
val: float
|
|
then:
|
|
- lambda: |-
|
|
ESP_LOGD("core_api", "Set float:");
|
|
ESP_LOGD("core_api", " Component: %s", component.c_str());
|
|
ESP_LOGD("core_api", " Value: %f", val);
|
|
if (!isnan(val)) {
|
|
if (component == "latitude" && val >= -90 && val <= 90) {
|
|
sun_entity->set_latitude(val);
|
|
} else if (component == "longitude" && val >= -180 && val <= 180) {
|
|
sun_entity->set_longitude(val);
|
|
}
|
|
}
|
|
|
|
script:
|
|
- id: !extend button_action
|
|
then:
|
|
- script.execute:
|
|
id: send_event_to_ha
|
|
component: !lambda return component.c_str();
|
|
event: !lambda return event.c_str();
|
|
|
|
- id: send_event_to_ha
|
|
mode: queued
|
|
parameters:
|
|
component: string
|
|
event: string
|
|
then:
|
|
- lambda: |-
|
|
esphome::api::CustomAPIDevice ha_event;
|
|
ha_event.fire_homeassistant_event("esphome.tx_ultimate_easy",
|
|
{
|
|
{"device_name", tx_device_name->state.c_str()},
|
|
{"firmware", "${version}"},
|
|
{"component", component},
|
|
{"event", event},
|
|
});
|
|
|
|
...
|