parent
d0f891b503
commit
eb8d4916db
|
@ -5,11 +5,8 @@
|
|||
#include <string>
|
||||
#include <cstring>
|
||||
|
||||
#ifdef CONFIG_IDF_TARGET_ESP32C3
|
||||
#define ESPMAC (Sprintf("%06x", (uint32_t)ESP.getEfuseMac()))
|
||||
#else
|
||||
#define ESPMAC (Sprintf("%06" PRIx64, ESP.getEfuseMac() >> 24))
|
||||
#endif
|
||||
#define CHIPID (uint32_t)(ESP.getEfuseMac() >> 24)
|
||||
#define ESPMAC (Sprintf("%06lx", CHIPID))
|
||||
#define Sprintf(f, ...) ({ char* s; asprintf(&s, f, __VA_ARGS__); String r = s; free(s); r; })
|
||||
#define Stdprintf(f, ...) ({ char* s; asprintf(&s, f, __VA_ARGS__); std::string r = s; free(s); r; })
|
||||
#define SMacf(f) ( \
|
||||
|
|
|
@ -44,8 +44,8 @@ lib_deps =
|
|||
bbx10/DNSServer@^1.1.0
|
||||
|
||||
[esp32]
|
||||
platform = espressif32@3.5.0
|
||||
platform_packages = framework-arduinoespressif32 @ https://github.com/Aircoookie/arduino-esp32.git#1.0.6.4
|
||||
platform = https://github.com/tasmota/platform-espressif32/releases/download/v.2.0.3/platform-espressif32-v.2.0.3.zip
|
||||
platform_packages =
|
||||
framework = ${common.framework}
|
||||
build_unflags = ${common.build_unflags}
|
||||
build_flags = -g
|
||||
|
@ -58,7 +58,7 @@ build_flags = -g
|
|||
lib_deps = ${common.lib_deps}
|
||||
|
||||
[esp32c3]
|
||||
platform = espressif32@4.4.0
|
||||
platform = https://github.com/tasmota/platform-espressif32/releases/download/v.2.0.3/platform-espressif32-v.2.0.3.zip
|
||||
platform_packages =
|
||||
framework = ${common.framework}
|
||||
build_unflags = ${common.build_unflags}
|
||||
|
|
|
@ -95,7 +95,7 @@ namespace BME280
|
|||
commonDiscovery();
|
||||
doc["~"] = roomsTopic;
|
||||
doc["name"] = "ESPresense " + room + " BME280 Temperature";
|
||||
doc["uniq_id"] = Sprintf("espresense_%06" PRIx64 "_bme280_temperature", ESP.getEfuseMac() >> 24);
|
||||
doc["uniq_id"] = Sprintf("espresense_%06lx_bme280_temperature", CHIPID);
|
||||
doc["avty_t"] = "~/status";
|
||||
doc["stat_t"] = "~/bme280_temperature";
|
||||
doc["dev_cla"] = "temperature";
|
||||
|
@ -113,7 +113,7 @@ namespace BME280
|
|||
commonDiscovery();
|
||||
doc["~"] = roomsTopic;
|
||||
doc["name"] = "ESPresense " + room + " BME280 Humidity";
|
||||
doc["uniq_id"] = Sprintf("espresense_%06" PRIx64 "_bme280_humidity", ESP.getEfuseMac() >> 24);
|
||||
doc["uniq_id"] = Sprintf("espresense_%06lx_bme280_humidity", CHIPID);
|
||||
doc["avty_t"] = "~/status";
|
||||
doc["stat_t"] = "~/bme280_humidity";
|
||||
doc["dev_cla"] = "humidity";
|
||||
|
@ -131,7 +131,7 @@ namespace BME280
|
|||
commonDiscovery();
|
||||
doc["~"] = roomsTopic;
|
||||
doc["name"] = "ESPresense " + room + " BME280 Pressure";
|
||||
doc["uniq_id"] = Sprintf("espresense_%06" PRIx64 "_bme280_pressure", ESP.getEfuseMac() >> 24);
|
||||
doc["uniq_id"] = Sprintf("espresense_%06lx_bme280_pressure", CHIPID);
|
||||
doc["avty_t"] = "~/status";
|
||||
doc["stat_t"] = "~/bme280_pressure";
|
||||
doc["dev_cla"] = "pressure";
|
||||
|
|
|
@ -88,7 +88,7 @@ namespace HX711
|
|||
commonDiscovery();
|
||||
doc["~"] = roomsTopic;
|
||||
doc["name"] = "ESPresense " + room + " Raw Weight";
|
||||
doc["uniq_id"] = Sprintf("espresense_%06" PRIx64 "_raw_weight", ESP.getEfuseMac() >> 24);
|
||||
doc["uniq_id"] = Sprintf("espresense_%06lx_raw_weight", CHIPID);
|
||||
doc["avty_t"] = "~/status";
|
||||
doc["stat_t"] = "~/raw_weight";
|
||||
doc["frc_upd"] = true;
|
||||
|
|
|
@ -100,7 +100,7 @@ namespace Motion
|
|||
commonDiscovery();
|
||||
doc["~"] = roomsTopic;
|
||||
doc["name"] = "ESPresense " + room + " Motion";
|
||||
doc["uniq_id"] = Sprintf("espresense_%06" PRIx64 "_motion", ESP.getEfuseMac() >> 24);
|
||||
doc["uniq_id"] = Sprintf("espresense_%06lx_motion", CHIPID);
|
||||
doc["avty_t"] = "~/status";
|
||||
doc["stat_t"] = "~/motion";
|
||||
doc["dev_cla"] = "motion";
|
||||
|
|
|
@ -104,7 +104,7 @@ namespace TSL2561
|
|||
commonDiscovery();
|
||||
doc["~"] = roomsTopic;
|
||||
doc["name"] = "ESPresense " + room + " TSL2561 Lux";
|
||||
doc["uniq_id"] = Sprintf("espresense_%06" PRIx64 "_tsl2561_lux", ESP.getEfuseMac() >> 24);
|
||||
doc["uniq_id"] = Sprintf("espresense_%06lx_tsl2561_lux", CHIPID);
|
||||
doc["avty_t"] = "~/status";
|
||||
doc["stat_t"] = "~/tsl2561_lux";
|
||||
doc["dev_cla"] = "illuminance";
|
||||
|
|
|
@ -125,7 +125,6 @@ void setupNetwork()
|
|||
{
|
||||
Serial.println("Setup network");
|
||||
WiFi.persistent(false);
|
||||
WiFi.setSleep(false);
|
||||
GUI::connected(false, false);
|
||||
|
||||
WiFiSettings.onFailure = []()
|
||||
|
|
20
src/main.h
20
src/main.h
|
@ -329,7 +329,7 @@ void commonDiscovery()
|
|||
{
|
||||
doc.clear();
|
||||
auto identifiers = doc["dev"].createNestedArray("ids");
|
||||
identifiers.add(Sprintf("espresense_%06" PRIx64, ESP.getEfuseMac() >> 24));
|
||||
identifiers.add(Sprintf("espresense_%06" PRIx64, CHIPID));
|
||||
auto connections = doc["dev"].createNestedArray("cns");
|
||||
auto mac = connections.createNestedArray();
|
||||
mac.add("mac");
|
||||
|
@ -351,7 +351,7 @@ bool sendDiscoveryConnectivity()
|
|||
commonDiscovery();
|
||||
doc["~"] = roomsTopic;
|
||||
doc["name"] = "ESPresense " + room;
|
||||
doc["uniq_id"] = Sprintf("espresense_%06" PRIx64 "_connectivity", ESP.getEfuseMac() >> 24);
|
||||
doc["uniq_id"] = Sprintf("espresense_%06lx_connectivity", CHIPID);
|
||||
doc["json_attr_t"] = "~/telemetry";
|
||||
doc["stat_t"] = "~/status";
|
||||
doc["dev_cla"] = "connectivity";
|
||||
|
@ -371,7 +371,7 @@ bool sendTeleBinarySensorDiscovery(const String &name, const String &entityCateg
|
|||
commonDiscovery();
|
||||
doc["~"] = roomsTopic;
|
||||
doc["name"] = Sprintf("ESPresense %s %s", room.c_str(), name.c_str());
|
||||
doc["uniq_id"] = Sprintf("espresense_%06" PRIx64 "_%s", ESP.getEfuseMac() >> 24, slug.c_str());
|
||||
doc["uniq_id"] = Sprintf("espresense_%06lx_%s", CHIPID, slug.c_str());
|
||||
doc["avty_t"] = "~/status";
|
||||
doc["stat_t"] = "~/telemetry";
|
||||
if (!entityCategory.isEmpty()) doc["entity_category"] = entityCategory;
|
||||
|
@ -390,7 +390,7 @@ bool sendTeleSensorDiscovery(const String &name, const String &entityCategory, c
|
|||
commonDiscovery();
|
||||
doc["~"] = roomsTopic;
|
||||
doc["name"] = Sprintf("ESPresense %s %s", room.c_str(), name.c_str());
|
||||
doc["uniq_id"] = Sprintf("espresense_%06" PRIx64 "_%s", ESP.getEfuseMac() >> 24, slug.c_str());
|
||||
doc["uniq_id"] = Sprintf("espresense_%06lx_%s", CHIPID, slug.c_str());
|
||||
doc["avty_t"] = "~/status";
|
||||
doc["stat_t"] = "~/telemetry";
|
||||
if (!entityCategory.isEmpty()) doc["entity_category"] = entityCategory;
|
||||
|
@ -411,7 +411,7 @@ bool sendDiscoveryTemperature()
|
|||
commonDiscovery();
|
||||
doc["~"] = roomsTopic;
|
||||
doc["name"] = "ESPresense " + room + " Temperature";
|
||||
doc["uniq_id"] = Sprintf("espresense_%06" PRIx64 "_temperature", ESP.getEfuseMac() >> 24);
|
||||
doc["uniq_id"] = Sprintf("espresense_%06lx_temperature", CHIPID);
|
||||
doc["avty_t"] = "~/status";
|
||||
doc["stat_t"] = "~/temperature";
|
||||
doc["dev_cla"] = "temperature";
|
||||
|
@ -430,7 +430,7 @@ bool sendDiscoveryHumidity()
|
|||
commonDiscovery();
|
||||
doc["~"] = roomsTopic;
|
||||
doc["name"] = "ESPresense " + room + " Humidity";
|
||||
doc["uniq_id"] = Sprintf("espresense_%06" PRIx64 "_humidity", ESP.getEfuseMac() >> 24);
|
||||
doc["uniq_id"] = Sprintf("espresense_%06lx_humidity", CHIPID);
|
||||
doc["avty_t"] = "~/status";
|
||||
doc["stat_t"] = "~/humidity";
|
||||
doc["dev_cla"] = "humidity";
|
||||
|
@ -449,7 +449,7 @@ bool sendDiscoveryLux()
|
|||
commonDiscovery();
|
||||
doc["~"] = roomsTopic;
|
||||
doc["name"] = "ESPresense " + room + " Lux";
|
||||
doc["uniq_id"] = Sprintf("espresense_%06" PRIx64 "_lux", ESP.getEfuseMac() >> 24);
|
||||
doc["uniq_id"] = Sprintf("espresense_%06lx_lux", CHIPID);
|
||||
doc["avty_t"] = "~/status";
|
||||
doc["stat_t"] = "~/lux";
|
||||
doc["dev_cla"] = "illuminance";
|
||||
|
@ -470,7 +470,7 @@ bool sendButtonDiscovery(const String &name, const String &entityCategory)
|
|||
commonDiscovery();
|
||||
doc["~"] = roomsTopic;
|
||||
doc["name"] = Sprintf("ESPresense %s %s", room.c_str(), name.c_str());
|
||||
doc["uniq_id"] = Sprintf("espresense_%06" PRIx64 "_%s", ESP.getEfuseMac() >> 24, slug.c_str());
|
||||
doc["uniq_id"] = Sprintf("espresense_%06lx_%s", CHIPID, slug.c_str());
|
||||
doc["avty_t"] = "~/status";
|
||||
doc["stat_t"] = "~/" + slug;
|
||||
doc["cmd_t"] = "~/" + slug + "/set";
|
||||
|
@ -488,7 +488,7 @@ bool sendSwitchDiscovery(const String &name, const String &entityCategory)
|
|||
commonDiscovery();
|
||||
doc["~"] = roomsTopic;
|
||||
doc["name"] = Sprintf("ESPresense %s %s", room.c_str(), name.c_str());
|
||||
doc["uniq_id"] = Sprintf("espresense_%06" PRIx64 "_%s", ESP.getEfuseMac() >> 24, slug.c_str());
|
||||
doc["uniq_id"] = Sprintf("espresense_%06lx_%s", CHIPID, slug.c_str());
|
||||
doc["avty_t"] = "~/status";
|
||||
doc["stat_t"] = "~/" + slug;
|
||||
doc["cmd_t"] = "~/" + slug + "/set";
|
||||
|
@ -513,7 +513,7 @@ bool sendNumberDiscovery(const String &name, const String &entityCategory)
|
|||
commonDiscovery();
|
||||
doc["~"] = roomsTopic;
|
||||
doc["name"] = Sprintf("ESPresense %s %s", room.c_str(), name.c_str());
|
||||
doc["uniq_id"] = Sprintf("espresense_%06" PRIx64 "_%s", ESP.getEfuseMac() >> 24, slug.c_str());
|
||||
doc["uniq_id"] = Sprintf("espresense_%06lx_%s", CHIPID, slug.c_str());
|
||||
doc["avty_t"] = "~/status";
|
||||
doc["stat_t"] = "~/" + slug;
|
||||
doc["cmd_t"] = "~/" + slug + "/set";
|
||||
|
|
Loading…
Reference in New Issue