mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-06 07:49:52 +03:00
add gateway E32V3, autodetect by gpio39 core voltage
This commit is contained in:
@@ -32,7 +32,9 @@ namespace emsesp {
|
||||
uuid::log::Logger TemperatureSensor::logger_{F_(temperaturesensor), uuid::log::Facility::DAEMON};
|
||||
|
||||
// start the 1-wire
|
||||
void TemperatureSensor::start() {
|
||||
void TemperatureSensor::start(const bool factory_settings) {
|
||||
// set_internal_ = factory_settings && EMSESP::nvs_.getString("boot").equals("E32V3") && EMSESP::nvs_.getString("hwrevision").equals("3.0");
|
||||
set_internal_ = factory_settings && analogReadMilliVolts(35) > 800; // core voltage > 3V
|
||||
reload();
|
||||
|
||||
if (!dallas_gpio_) {
|
||||
@@ -199,6 +201,29 @@ void TemperatureSensor::loop() {
|
||||
scancnt_ = 0;
|
||||
} else if (scancnt_ == SCAN_START + 1) { // startup
|
||||
firstscan_ = sensors_.size();
|
||||
if (firstscan_ > 0 && set_internal_) {
|
||||
set_internal_ = false;
|
||||
Sensor * s = &sensors_[0];
|
||||
if (firstscan_ > 1) {
|
||||
for (auto s1 : sensors_) {
|
||||
if (EMSESP::nvs_.getString("intTemp").equals(s1.id().c_str())) {
|
||||
s = &s1;
|
||||
}
|
||||
}
|
||||
}
|
||||
s->set_name("gateway_temperature");
|
||||
if (!EMSESP::nvs_.isKey("intTemp")) {
|
||||
EMSESP::nvs_.putString("intTemp", s->id().c_str());
|
||||
}
|
||||
EMSESP::webCustomizationService.update([&](WebCustomization & settings) {
|
||||
auto newSensor = SensorCustomization();
|
||||
newSensor.id = s->id();
|
||||
newSensor.name = s->name();
|
||||
newSensor.offset = 0;
|
||||
settings.sensorCustomizations.push_back(newSensor);
|
||||
return StateUpdateResult::CHANGED;
|
||||
});
|
||||
}
|
||||
// LOG_DEBUG("Adding %d sensor(s) from first scan", firstscan_);
|
||||
} else if ((scancnt_ <= 0) && (firstscan_ != sensors_.size())) { // check 2 times for no change of sensor #
|
||||
scancnt_ = SCAN_START;
|
||||
|
||||
Reference in New Issue
Block a user