Use tasmota platform, fix chipid, fixes #514? (#517)

This commit is contained in:
Darrell 2022-07-01 21:32:38 -04:00 committed by GitHub
parent d0f891b503
commit eb8d4916db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 21 additions and 25 deletions

View File

@ -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) ( \

View File

@ -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}

View File

@ -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";

View File

@ -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;

View File

@ -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";

View File

@ -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";

View File

@ -125,7 +125,6 @@ void setupNetwork()
{
Serial.println("Setup network");
WiFi.persistent(false);
WiFi.setSleep(false);
GUI::connected(false, false);
WiFiSettings.onFailure = []()

View File

@ -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";