#include "esphome.h"
using namespace esphome;
using std::isnan;
using std::min;
using std::max;
using namespace time;
using namespace binary_sensor;
logger::Logger *logger_logger;
web_server_base::WebServerBase *web_server_base_webserverbase;
captive_portal::CaptivePortal *captive_portal_captiveportal;
wifi::WiFiComponent *wifi_wificomponent;
mdns::MDNSComponent *mdns_mdnscomponent;
ota::OTAComponent *ota_otacomponent;
api::APIServer *api_apiserver;
using namespace api;
using namespace sensor;
preferences::IntervalSyncer *preferences_intervalsyncer;
sntp::SNTPComponent *sntp_time;
wireguard::Wireguard *wireguard_wireguard;
binary_sensor::BinarySensor *binary_sensor_binarysensor;
sensor::Sensor *sensor_sensor;
#define yield() esphome::yield()
#define millis() esphome::millis()
#define micros() esphome::micros()
#define delay(x) esphome::delay(x)
#define delayMicroseconds(x) esphome::delayMicroseconds(x)
void setup() {
// ========== AUTO GENERATED CODE BEGIN ===========
// async_tcp:
// {}
// esphome:
// name: mayer-water12
// friendly_name: mayer_water12
// build_path: build/mayer-water12
// area: ''
// platformio_options: {}
// includes: []
// libraries: []
// name_add_mac_suffix: false
// min_version: 2023.11.0
App.pre_setup("mayer-water12", "mayer_water12", "", "", __DATE__ ", " __TIME__, false);
// time:
// binary_sensor:
// logger:
// id: logger_logger
// baud_rate: 115200
// tx_buffer_size: 512
// deassert_rts_dtr: false
// hardware_uart: UART0
// level: DEBUG
// logs: {}
logger_logger = new logger::Logger(115200, 512);
logger_logger->set_uart_selection(logger::UART_SELECTION_UART0);
logger_logger->pre_setup();
logger_logger->set_component_source("logger");
App.register_component(logger_logger);
// web_server_base:
// id: web_server_base_webserverbase
web_server_base_webserverbase = new web_server_base::WebServerBase();
web_server_base_webserverbase->set_component_source("web_server_base");
App.register_component(web_server_base_webserverbase);
// captive_portal:
// id: captive_portal_captiveportal
// web_server_base_id: web_server_base_webserverbase
captive_portal_captiveportal = new captive_portal::CaptivePortal(web_server_base_webserverbase);
captive_portal_captiveportal->set_component_source("captive_portal");
App.register_component(captive_portal_captiveportal);
// wifi:
// ap:
// ssid: MayerWater12
// password: X10ZKF834rj0
// id: wifi_wifiap
// ap_timeout: 1min
// id: wifi_wificomponent
// domain: .local
// reboot_timeout: 15min
// power_save_mode: LIGHT
// fast_connect: false
// passive_scan: false
// enable_on_boot: true
// networks:
// - ssid: Wokwi-GUEST
// password: ''
// id: wifi_wifiap_2
// priority: 0.0
// use_address: mayer-water12.local
wifi_wificomponent = new wifi::WiFiComponent();
wifi_wificomponent->set_use_address("mayer-water12.local");
{
wifi::WiFiAP wifi_wifiap_2 = wifi::WiFiAP();
wifi_wifiap_2.set_ssid("Wokwi-GUEST");
wifi_wifiap_2.set_password("");
wifi_wifiap_2.set_priority(0.0f);
wifi_wificomponent->add_sta(wifi_wifiap_2);
}
{
wifi::WiFiAP wifi_wifiap = wifi::WiFiAP();
wifi_wifiap.set_ssid("MayerWater12");
wifi_wifiap.set_password("X10ZKF834rj0");
wifi_wificomponent->set_ap(wifi_wifiap);
}
wifi_wificomponent->set_ap_timeout(60000);
wifi_wificomponent->set_reboot_timeout(900000);
wifi_wificomponent->set_power_save_mode(wifi::WIFI_POWER_SAVE_LIGHT);
wifi_wificomponent->set_fast_connect(false);
wifi_wificomponent->set_passive_scan(false);
wifi_wificomponent->set_enable_on_boot(true);
wifi_wificomponent->set_component_source("wifi");
App.register_component(wifi_wificomponent);
// mdns:
// id: mdns_mdnscomponent
// disabled: false
// services: []
mdns_mdnscomponent = new mdns::MDNSComponent();
mdns_mdnscomponent->set_component_source("mdns");
App.register_component(mdns_mdnscomponent);
// ota:
// password: b978e034582b6f5314ffbc05f4df45cc
// id: ota_otacomponent
// safe_mode: true
// port: 3232
// reboot_timeout: 5min
// num_attempts: 10
ota_otacomponent = new ota::OTAComponent();
ota_otacomponent->set_port(3232);
ota_otacomponent->set_auth_password("b978e034582b6f5314ffbc05f4df45cc");
ota_otacomponent->set_component_source("ota");
App.register_component(ota_otacomponent);
if (ota_otacomponent->should_enter_safe_mode(10, 300000)) return;
// api:
// encryption:
// key: 2edB6kHgL32EaFsZbvsTNPu22Qaa3rXW2ND9kpSo3Jc=
// id: api_apiserver
// port: 6053
// password: ''
// reboot_timeout: 15min
api_apiserver = new api::APIServer();
api_apiserver->set_component_source("api");
App.register_component(api_apiserver);
api_apiserver->set_port(6053);
api_apiserver->set_password("");
api_apiserver->set_reboot_timeout(900000);
api_apiserver->set_noise_psk({217, 231, 65, 234, 65, 224, 47, 125, 132, 104, 91, 25, 110, 251, 19, 52, 251, 182, 217, 6, 154, 222, 181, 214, 216, 208, 253, 146, 148, 168, 220, 151});
// sensor:
// esp32:
// board: esp32dev
// framework:
// version: 2.0.5
// source: ~3.20005.0
// platform_version: platformio/[email protected]
// type: arduino
// variant: ESP32
// preferences:
// id: preferences_intervalsyncer
// flash_write_interval: 60s
preferences_intervalsyncer = new preferences::IntervalSyncer();
preferences_intervalsyncer->set_write_interval(60000);
preferences_intervalsyncer->set_component_source("preferences");
App.register_component(preferences_intervalsyncer);
// time.sntp:
// platform: sntp
// id: sntp_time
// timezone: UTC0
// update_interval: 15min
// servers:
// - 0.pool.ntp.org
// - 1.pool.ntp.org
// - 2.pool.ntp.org
sntp_time = new sntp::SNTPComponent();
sntp_time->set_servers("0.pool.ntp.org", "1.pool.ntp.org", "2.pool.ntp.org");
sntp_time->set_update_interval(900000);
sntp_time->set_component_source("sntp.time");
App.register_component(sntp_time);
sntp_time->set_timezone("UTC0");
// wireguard:
// address: 10.0.0.14
// private_key: qEXhCvtPbXZduVEreuuddnAsnfGTasLLx1iTBycLZFM=
// peer_endpoint: dnome.hu
// peer_port: 51823
// peer_public_key: VPLaUc6az/gL0rgqmrZRHZ+Ae9It9DQ31DvHRZDzlCY=
// peer_persistent_keepalive: 25s
// peer_preshared_key: NdywI5ZGd/h1oj3SmEQ/sCctHoAopo8OesS0B0BrTTc=
// id: wireguard_wireguard
// time_id: sntp_time
// netmask: 255.255.255.255
// peer_allowed_ips:
// - 0.0.0.0/0
// reboot_timeout: 15min
// require_connection_to_proceed: false
// update_interval: 10s
wireguard_wireguard = new wireguard::Wireguard();
wireguard_wireguard->set_address("10.0.0.14");
wireguard_wireguard->set_netmask("255.255.255.255");
wireguard_wireguard->set_private_key("qEXhCvtPbXZduVEreuuddnAsnfGTasLLx1iTBycLZFM=");
wireguard_wireguard->set_peer_endpoint("dnome.hu");
wireguard_wireguard->set_peer_public_key("VPLaUc6az/gL0rgqmrZRHZ+Ae9It9DQ31DvHRZDzlCY=");
wireguard_wireguard->set_peer_port(51823);
wireguard_wireguard->set_keepalive(25);
wireguard_wireguard->set_reboot_timeout(900000);
wireguard_wireguard->set_preshared_key("NdywI5ZGd/h1oj3SmEQ/sCctHoAopo8OesS0B0BrTTc=");
wireguard_wireguard->add_allowed_ip("0.0.0.0", "0.0.0.0");
wireguard_wireguard->set_srctime(sntp_time);
wireguard_wireguard->set_update_interval(10000);
wireguard_wireguard->set_component_source("wireguard");
App.register_component(wireguard_wireguard);
// binary_sensor.wireguard:
// platform: wireguard
// status:
// name: WireGuard Status
// disabled_by_default: false
// id: binary_sensor_binarysensor
// device_class: connectivity
// wireguard_id: wireguard_wireguard
binary_sensor_binarysensor = new binary_sensor::BinarySensor();
App.register_binary_sensor(binary_sensor_binarysensor);
binary_sensor_binarysensor->set_name("WireGuard Status");
binary_sensor_binarysensor->set_object_id("wireguard_status");
binary_sensor_binarysensor->set_disabled_by_default(false);
binary_sensor_binarysensor->set_device_class("connectivity");
wireguard_wireguard->set_status_sensor(binary_sensor_binarysensor);
// sensor.wireguard:
// platform: wireguard
// latest_handshake:
// name: WireGuard Latest Handshake
// disabled_by_default: false
// id: sensor_sensor
// force_update: false
// device_class: timestamp
// entity_category: diagnostic
// wireguard_id: wireguard_wireguard
sensor_sensor = new sensor::Sensor();
App.register_sensor(sensor_sensor);
sensor_sensor->set_name("WireGuard Latest Handshake");
sensor_sensor->set_object_id("wireguard_latest_handshake");
sensor_sensor->set_disabled_by_default(false);
sensor_sensor->set_entity_category(::ENTITY_CATEGORY_DIAGNOSTIC);
sensor_sensor->set_device_class("timestamp");
sensor_sensor->set_force_update(false);
wireguard_wireguard->set_handshake_sensor(sensor_sensor);
// socket:
// implementation: bsd_sockets
// network:
// enable_ipv6: false
// =========== AUTO GENERATED CODE END ============
App.setup();
}
void loop() {
App.loop();
}