mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-24 19:26:37 +00:00
add option to use DS18x20 ID in naming
This commit is contained in:
parent
d53fa3234d
commit
1ddb479f58
@ -26,6 +26,7 @@
|
|||||||
#define XSNS_05 5
|
#define XSNS_05 5
|
||||||
|
|
||||||
//#define USE_DS18x20_RECONFIGURE // When sensor is lost keep retrying or re-configure
|
//#define USE_DS18x20_RECONFIGURE // When sensor is lost keep retrying or re-configure
|
||||||
|
//#define DS18x20_USE_ID_AS_NAME // Use last 3 bytes for naming of sensors
|
||||||
|
|
||||||
#define DS18S20_CHIPID 0x10 // +/-0.5C 9-bit
|
#define DS18S20_CHIPID 0x10 // +/-0.5C 9-bit
|
||||||
#define DS1822_CHIPID 0x22 // +/-2C 12-bit
|
#define DS1822_CHIPID 0x22 // +/-2C 12-bit
|
||||||
@ -56,7 +57,7 @@ uint8_t ds18x20_sensors = 0;
|
|||||||
uint8_t ds18x20_pin = 0; // Shelly GPIO3 input only
|
uint8_t ds18x20_pin = 0; // Shelly GPIO3 input only
|
||||||
uint8_t ds18x20_pin_out = 0; // Shelly GPIO00 output only
|
uint8_t ds18x20_pin_out = 0; // Shelly GPIO00 output only
|
||||||
bool ds18x20_dual_mode = false; // Single pin mode
|
bool ds18x20_dual_mode = false; // Single pin mode
|
||||||
char ds18x20_types[12];
|
char ds18x20_types[17];
|
||||||
#ifdef W1_PARASITE_POWER
|
#ifdef W1_PARASITE_POWER
|
||||||
uint8_t ds18x20_sensor_curr = 0;
|
uint8_t ds18x20_sensor_curr = 0;
|
||||||
unsigned long w1_power_until = 0;
|
unsigned long w1_power_until = 0;
|
||||||
@ -443,7 +444,15 @@ void Ds18x20Name(uint8_t sensor)
|
|||||||
}
|
}
|
||||||
GetTextIndexed(ds18x20_types, sizeof(ds18x20_types), index, kDs18x20Types);
|
GetTextIndexed(ds18x20_types, sizeof(ds18x20_types), index, kDs18x20Types);
|
||||||
if (ds18x20_sensors > 1) {
|
if (ds18x20_sensors > 1) {
|
||||||
|
#ifdef DS18x20_USE_ID_AS_NAME
|
||||||
|
char address[17];
|
||||||
|
for (uint32_t j = 0; j < 3; j++) {
|
||||||
|
sprintf(address+2*j, "%02X", ds18x20_sensor[ds18x20_sensor[sensor].index].address[3-j]); // Only last 3 bytes
|
||||||
|
}
|
||||||
|
snprintf_P(ds18x20_types, sizeof(ds18x20_types), PSTR("%s%c%s"), ds18x20_types, IndexSeparator(), address);
|
||||||
|
#else
|
||||||
snprintf_P(ds18x20_types, sizeof(ds18x20_types), PSTR("%s%c%d"), ds18x20_types, IndexSeparator(), sensor +1);
|
snprintf_P(ds18x20_types, sizeof(ds18x20_types), PSTR("%s%c%d"), ds18x20_types, IndexSeparator(), sensor +1);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
|
|
||||||
#define XSNS_05 5
|
#define XSNS_05 5
|
||||||
|
|
||||||
|
//#define DS18x20_USE_ID_AS_NAME // Use last 3 bytes for naming of sensors
|
||||||
|
|
||||||
#define DS18S20_CHIPID 0x10 // +/-0.5C 9-bit
|
#define DS18S20_CHIPID 0x10 // +/-0.5C 9-bit
|
||||||
#define DS1822_CHIPID 0x22 // +/-2C 12-bit
|
#define DS1822_CHIPID 0x22 // +/-2C 12-bit
|
||||||
#define DS18B20_CHIPID 0x28 // +/-0.5C 12-bit
|
#define DS18B20_CHIPID 0x28 // +/-0.5C 12-bit
|
||||||
@ -44,7 +46,7 @@ uint8_t ds18x20_address[DS18X20_MAX_SENSORS][8];
|
|||||||
uint8_t ds18x20_index[DS18X20_MAX_SENSORS];
|
uint8_t ds18x20_index[DS18X20_MAX_SENSORS];
|
||||||
uint8_t ds18x20_valid[DS18X20_MAX_SENSORS];
|
uint8_t ds18x20_valid[DS18X20_MAX_SENSORS];
|
||||||
uint8_t ds18x20_sensors = 0;
|
uint8_t ds18x20_sensors = 0;
|
||||||
char ds18x20_types[12];
|
char ds18x20_types[17];
|
||||||
|
|
||||||
/********************************************************************************************/
|
/********************************************************************************************/
|
||||||
|
|
||||||
@ -157,7 +159,15 @@ void Ds18x20Name(uint8_t sensor)
|
|||||||
}
|
}
|
||||||
GetTextIndexed(ds18x20_types, sizeof(ds18x20_types), index, kDs18x20Types);
|
GetTextIndexed(ds18x20_types, sizeof(ds18x20_types), index, kDs18x20Types);
|
||||||
if (ds18x20_sensors > 1) {
|
if (ds18x20_sensors > 1) {
|
||||||
|
#ifdef DS18x20_USE_ID_AS_NAME
|
||||||
|
char address[17];
|
||||||
|
for (uint32_t j = 0; j < 3; j++) {
|
||||||
|
sprintf(address+2*j, "%02X", ds18x20_sensor[ds18x20_sensor[sensor].index].address[3-j]); // Only last 3 bytes
|
||||||
|
}
|
||||||
|
snprintf_P(ds18x20_types, sizeof(ds18x20_types), PSTR("%s%c%s"), ds18x20_types, IndexSeparator(), address);
|
||||||
|
#else
|
||||||
snprintf_P(ds18x20_types, sizeof(ds18x20_types), PSTR("%s%c%d"), ds18x20_types, IndexSeparator(), sensor +1);
|
snprintf_P(ds18x20_types, sizeof(ds18x20_types), PSTR("%s%c%d"), ds18x20_types, IndexSeparator(), sensor +1);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user