mirror of https://github.com/arendst/Tasmota.git
Fix HsbColor
Fix HsbColor (#3430) and enable multiple DS18X20 sensors as default
This commit is contained in:
parent
3efd969350
commit
ebb7f929a0
78
README.md
78
README.md
|
@ -17,7 +17,7 @@ If you like **Sonoff-Tasmota**, give it a star, or fork it and contribute!
|
||||||
[![Download Dev](https://img.shields.io/badge/download-development-yellow.svg)](http://thehackbox.org/tasmota/)
|
[![Download Dev](https://img.shields.io/badge/download-development-yellow.svg)](http://thehackbox.org/tasmota/)
|
||||||
[![Build Status](https://img.shields.io/travis/arendst/Sonoff-Tasmota.svg)](https://travis-ci.org/arendst/Sonoff-Tasmota)
|
[![Build Status](https://img.shields.io/travis/arendst/Sonoff-Tasmota.svg)](https://travis-ci.org/arendst/Sonoff-Tasmota)
|
||||||
|
|
||||||
See [RELEASENOTES.md](https://github.com/arendst/Sonoff-Tasmota/blob/development/RELEASENOTES.md) for release information and [sonoff/_changelog.ino](https://github.com/arendst/Sonoff-Tasmota/blob/development/sonoff/_changelog.ino) for change information.
|
See [RELEASENOTES.md](https://github.com/arendst/Sonoff-Tasmota/blob/development/RELEASENOTES.md) for release information and [sonoff/_changelog.ino](https://github.com/arendst/Sonoff-Tasmota/blob/development/sonoff/_changelog.ino) for detailed change information.
|
||||||
|
|
||||||
The compiled development versions from current codebase are built around 6AM GMT+2 everyday and posted at http://thehackbox.org/tasmota/ (this web address can be used for OTA too).
|
The compiled development versions from current codebase are built around 6AM GMT+2 everyday and posted at http://thehackbox.org/tasmota/ (this web address can be used for OTA too).
|
||||||
|
|
||||||
|
@ -94,82 +94,6 @@ The following devices are supported:
|
||||||
- [Luani HVIO board](https://luani.de/projekte/esp8266-hvio/)
|
- [Luani HVIO board](https://luani.de/projekte/esp8266-hvio/)
|
||||||
- Wemos D1 mini, NodeMcu and Ledunia
|
- Wemos D1 mini, NodeMcu and Ledunia
|
||||||
|
|
||||||
#### Available Features and Sensors
|
|
||||||
|
|
||||||
| Feature or Sensor | sonoff | classic | minimal | knx | sensors |
|
|
||||||
|--------------------------------|--------|---------|---------|------|---------|
|
|
||||||
| ESP/Arduino lib v2.3.0 | 472k | 476k | 340k | 491k | 497k |
|
|
||||||
| ESP/Arduino lib v2.4.2 | 490k | 490k | 360k | 508k | 513k |
|
|
||||||
| | | | | | |
|
|
||||||
| MY_LANGUAGE en-GB | x | x | x | x | x |
|
|
||||||
| USE_WPS | - | x | - | - | - |
|
|
||||||
| USE_SMARTCONFIG | - | x | - | - | - |
|
|
||||||
| USE_ARDUINO_OTA | - | - | - | - | - |
|
|
||||||
| MQTT_LIBRARY_TYPE PUBSUBCLIENT | x | x | x | x | x |
|
|
||||||
| USE_DOMOTICZ | x | x | - | x | x |
|
|
||||||
| USE_HOME_ASSISTANT | x | x | - | x | x |
|
|
||||||
| USE_MQTT_TLS | - | - | - | - | - |
|
|
||||||
| USE_KNX | - | - | - | x | - |
|
|
||||||
| USE_WEBSERVER | x | x | x | x | x |
|
|
||||||
| USE_EMULATION | x | x | - | - | x |
|
|
||||||
| USE_DISCOVERY | x | x | - | x | x |
|
|
||||||
| WEBSERVER_ADVERTISE | x | x | - | x | x |
|
|
||||||
| MQTT_HOST_DISCOVERY | x | x | - | x | x |
|
|
||||||
| USE_TIMERS | x | - | - | x | x |
|
|
||||||
| USE_TIMERS_WEB | x | - | - | x | x |
|
|
||||||
| USE_SUNRISE | x | - | - | x | x |
|
|
||||||
| USE_RULES | x | - | - | x | x |
|
|
||||||
| | | | | | |
|
|
||||||
| Feature or Sensor | sonoff | classic | minimal | knx | sensors |
|
|
||||||
| USE_ADC_VCC | x | x | x | x | x |
|
|
||||||
| USE_DS18B20 | x | x | - | x | - |
|
|
||||||
| USE_DS18x20 | - | - | - | - | x |
|
|
||||||
| USE_DS18x20_LEGACY | - | - | - | - | - |
|
|
||||||
| | | | | | |
|
|
||||||
| USE_I2C | x | - | - | x | x |
|
|
||||||
| USE_SHT | x | - | - | x | x |
|
|
||||||
| USE_HTU | x | - | - | x | x |
|
|
||||||
| USE_BMP | x | - | - | x | x |
|
|
||||||
| USE_BME680 | - | - | - | - | x |
|
|
||||||
| USE_BH1750 | x | - | - | x | x |
|
|
||||||
| USE_VEML6070 | - | - | - | - | x |
|
|
||||||
| USE_ADS1115 | - | - | - | - | x |
|
|
||||||
| USE_ADS1115_I2CDEV | - | - | - | - | - |
|
|
||||||
| USE_INA219 | - | - | - | - | x |
|
|
||||||
| USE_SHT3X | x | - | - | x | x |
|
|
||||||
| USE_TSL2561 | - | - | - | - | x |
|
|
||||||
| USE_MGS | - | - | - | - | x |
|
|
||||||
| USE_SGP30 | x | - | - | x | x |
|
|
||||||
| USE_SI1145 | - | - | - | - | x |
|
|
||||||
| USE_LM75AD | x | - | - | x | x |
|
|
||||||
| USE_APDS9960 | - | - | - | - | - |
|
|
||||||
| USE_MCP230xx | - | - | - | - | - |
|
|
||||||
| USE_MPR121 | - | - | - | - | - |
|
|
||||||
| USE_CCS811 | - | - | - | - | - |
|
|
||||||
| USE_MPU6050 | - | - | - | - | - |
|
|
||||||
| | | | | | |
|
|
||||||
| Feature or Sensor | sonoff | classic | minimal | knx | sensors |
|
|
||||||
| USE_SPI | - | - | - | - | - |
|
|
||||||
| USE_MHZ19 | x | - | - | x | x |
|
|
||||||
| USE_SENSEAIR | x | - | - | x | x |
|
|
||||||
| USE_PMS5003 | x | - | - | x | x |
|
|
||||||
| USE_NOVA_SDS | x | - | - | x | x |
|
|
||||||
| USE_PZEM004T | x | - | - | x | x |
|
|
||||||
| USE_SERIAL_BRIDGE | x | - | - | x | x |
|
|
||||||
| USE_SDM120 | - | - | - | - | x |
|
|
||||||
| USE_SDM630 | - | - | - | - | x |
|
|
||||||
| USE_IR_REMOTE | x | - | - | x | x |
|
|
||||||
| USE_IR_HVAC | - | - | - | - | x |
|
|
||||||
| USE_IR_RECEIVE | x | - | - | x | x |
|
|
||||||
| USE_WS2812 | x | x | - | x | x |
|
|
||||||
| USE_WS2812_DMA | - | - | - | - | - |
|
|
||||||
| USE_ARILUX_RF | x | - | - | x | x |
|
|
||||||
| USE_SR04 | x | - | - | x | x |
|
|
||||||
| USE_TM1638 | - | - | - | - | - |
|
|
||||||
| USE_RF_FLASH | x | - | - | x | x |
|
|
||||||
|
|
||||||
See [Tasmota ESP/Arduino library version related issues](https://github.com/arendst/Sonoff-Tasmota/wiki/Theo's-Tasmota-Tips#20180523---relation-tasmota-and-esp8266arduino-core-version) for more information.
|
|
||||||
|
|
||||||
### Contribute
|
### Contribute
|
||||||
You can contribute to Sonoff-Tasmota by
|
You can contribute to Sonoff-Tasmota by
|
||||||
- providing Pull Requests (Features, Proof of Concepts, Language files or Fixes)
|
- providing Pull Requests (Features, Proof of Concepts, Language files or Fixes)
|
||||||
|
|
|
@ -8,7 +8,7 @@ See [wiki migration path](https://github.com/arendst/Sonoff-Tasmota/wiki/Upgrade
|
||||||
|
|
||||||
## Release notes
|
## Release notes
|
||||||
### Change in default initial configuration tool
|
### Change in default initial configuration tool
|
||||||
Firmware binary **sonoff-classic.bin** supports **WifiManager, Wps and SmartConfig** for initial configuration. The default tools is Wps.
|
Firmware binary **sonoff-classic.bin** supports **WifiManager, Wps and SmartConfig** for initial configuration. The default tool is **Wps**.
|
||||||
|
|
||||||
To save memory space all other binaries support **WifiManager only**.
|
To save memory space all other binaries support **WifiManager only**.
|
||||||
|
|
||||||
|
@ -29,6 +29,80 @@ The following binary downloads have been compiled with ESP8266/Arduino library v
|
||||||
|
|
||||||
See [Tasmota ESP/Arduino library version related issues](https://github.com/arendst/Sonoff-Tasmota/wiki/Theo's-Tasmota-Tips#20180523---relation-tasmota-and-esp8266arduino-core-version) why these files are still released using ESP/Arduino library version v2.3.0.
|
See [Tasmota ESP/Arduino library version related issues](https://github.com/arendst/Sonoff-Tasmota/wiki/Theo's-Tasmota-Tips#20180523---relation-tasmota-and-esp8266arduino-core-version) why these files are still released using ESP/Arduino library version v2.3.0.
|
||||||
|
|
||||||
|
### Available Features and Sensors
|
||||||
|
|
||||||
|
| Feature or Sensor | minimal | classic | sonoff | knx | sensors | Remarks
|
||||||
|
|--------------------------------|---------|---------|--------|------|---------|--------
|
||||||
|
| ESP/Arduino lib v2.3.0 | 340k | 476k | 472k | 491k | 497k |
|
||||||
|
| ESP/Arduino lib v2.4.2 | 360k | 490k | 490k | 508k | 513k | No sleep
|
||||||
|
| | | | | | |
|
||||||
|
| MY_LANGUAGE en-GB | x | x | x | x | x |
|
||||||
|
| USE_WPS | - | x | - | - | - |
|
||||||
|
| USE_SMARTCONFIG | - | x | - | - | - |
|
||||||
|
| USE_ARDUINO_OTA | - | - | - | - | - |
|
||||||
|
| MQTT_LIBRARY_TYPE PUBSUBCLIENT | x | x | x | x | x |
|
||||||
|
| USE_DOMOTICZ | - | x | x | x | x |
|
||||||
|
| USE_HOME_ASSISTANT | - | x | x | x | x |
|
||||||
|
| USE_MQTT_TLS | - | - | - | - | - |
|
||||||
|
| USE_KNX | - | - | - | x | - |
|
||||||
|
| USE_WEBSERVER | x | x | x | x | x | WifiManager
|
||||||
|
| USE_EMULATION | - | x | x | - | x |
|
||||||
|
| USE_DISCOVERY | - | x | x | x | x |
|
||||||
|
| WEBSERVER_ADVERTISE | - | x | x | x | x |
|
||||||
|
| MQTT_HOST_DISCOVERY | - | x | x | x | x |
|
||||||
|
| USE_TIMERS | - | - | x | x | x |
|
||||||
|
| USE_TIMERS_WEB | - | - | x | x | x |
|
||||||
|
| USE_SUNRISE | - | - | x | x | x |
|
||||||
|
| USE_RULES | - | - | x | x | x |
|
||||||
|
| | | | | | |
|
||||||
|
| USE_ADC_VCC | x | x | x | x | x |
|
||||||
|
| USE_DS18B20 | - | - | - | - | - | Single sensor
|
||||||
|
| USE_DS18x20 | - | x | x | x | x | Multiple sensors
|
||||||
|
| USE_DS18x20_LEGACY | - | - | - | - | - | Multiple sensors
|
||||||
|
| | | | | | |
|
||||||
|
| Feature or Sensor | minimal | classic | sonoff | knx | sensors |
|
||||||
|
| USE_I2C | - | - | x | x | x |
|
||||||
|
| USE_SHT | - | - | x | x | x |
|
||||||
|
| USE_HTU | - | - | x | x | x |
|
||||||
|
| USE_BMP | - | - | x | x | x |
|
||||||
|
| USE_BME680 | - | - | - | - | x |
|
||||||
|
| USE_BH1750 | - | - | x | x | x |
|
||||||
|
| USE_VEML6070 | - | - | - | - | x |
|
||||||
|
| USE_ADS1115 | - | - | - | - | x |
|
||||||
|
| USE_ADS1115_I2CDEV | - | - | - | - | - |
|
||||||
|
| USE_INA219 | - | - | - | - | x |
|
||||||
|
| USE_SHT3X | - | - | x | x | x |
|
||||||
|
| USE_TSL2561 | - | - | - | - | x |
|
||||||
|
| USE_MGS | - | - | - | - | x |
|
||||||
|
| USE_SGP30 | - | - | x | x | x |
|
||||||
|
| USE_SI1145 | - | - | - | - | x |
|
||||||
|
| USE_LM75AD | - | - | x | x | x |
|
||||||
|
| USE_APDS9960 | - | - | - | - | - |
|
||||||
|
| USE_MCP230xx | - | - | - | - | - |
|
||||||
|
| USE_MPR121 | - | - | - | - | - |
|
||||||
|
| USE_CCS811 | - | - | - | - | - |
|
||||||
|
| USE_MPU6050 | - | - | - | - | - |
|
||||||
|
| | | | | | |
|
||||||
|
| Feature or Sensor | minimal | classic | sonoff | knx | sensors |
|
||||||
|
| USE_SPI | - | - | - | - | - |
|
||||||
|
| USE_MHZ19 | - | - | x | x | x |
|
||||||
|
| USE_SENSEAIR | - | - | x | x | x |
|
||||||
|
| USE_PMS5003 | - | - | x | x | x |
|
||||||
|
| USE_NOVA_SDS | - | - | x | x | x |
|
||||||
|
| USE_PZEM004T | - | - | x | x | x |
|
||||||
|
| USE_SERIAL_BRIDGE | - | - | x | x | x |
|
||||||
|
| USE_SDM120 | - | - | - | - | x |
|
||||||
|
| USE_SDM630 | - | - | - | - | x |
|
||||||
|
| USE_IR_REMOTE | - | - | x | x | x |
|
||||||
|
| USE_IR_HVAC | - | - | - | - | x |
|
||||||
|
| USE_IR_RECEIVE | - | - | x | x | x |
|
||||||
|
| USE_WS2812 | - | x | x | x | x |
|
||||||
|
| USE_WS2812_DMA | - | - | - | - | - |
|
||||||
|
| USE_ARILUX_RF | - | - | x | x | x |
|
||||||
|
| USE_SR04 | - | - | x | x | x |
|
||||||
|
| USE_TM1638 | - | - | - | - | - |
|
||||||
|
| USE_RF_FLASH | - | - | x | x | x |
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
Version 6.2.0 20180901
|
Version 6.2.0 20180901
|
||||||
|
|
||||||
|
|
|
@ -270,7 +270,7 @@
|
||||||
|
|
||||||
// -- One wire sensors ----------------------------
|
// -- One wire sensors ----------------------------
|
||||||
// WARNING: Select none for default one DS18B20 sensor or enable one of the following two options for multiple sensors
|
// WARNING: Select none for default one DS18B20 sensor or enable one of the following two options for multiple sensors
|
||||||
//#define USE_DS18x20 // Optional for more than one DS18x20 sensors with id sort, single scan and read retry (+1k3 code)
|
#define USE_DS18x20 // Optional for more than one DS18x20 sensors with id sort, single scan and read retry (+1k3 code)
|
||||||
//#define USE_DS18x20_LEGACY // Optional for more than one DS18x20 sensors with dynamic scan using library OneWire (+1k5 code)
|
//#define USE_DS18x20_LEGACY // Optional for more than one DS18x20 sensors with dynamic scan using library OneWire (+1k5 code)
|
||||||
|
|
||||||
// -- I2C sensors ---------------------------------
|
// -- I2C sensors ---------------------------------
|
||||||
|
|
|
@ -1083,50 +1083,45 @@ boolean LightCommand()
|
||||||
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_INDEX_NVALUE, command, XdrvMailbox.index, round(light_current_color[XdrvMailbox.index -1] / 2.55));
|
snprintf_P(mqtt_data, sizeof(mqtt_data), S_JSON_COMMAND_INDEX_NVALUE, command, XdrvMailbox.index, round(light_current_color[XdrvMailbox.index -1] / 2.55));
|
||||||
}
|
}
|
||||||
else if ((CMND_HSBCOLOR == command_code) && ( light_subtype >= LST_RGB)) {
|
else if ((CMND_HSBCOLOR == command_code) && ( light_subtype >= LST_RGB)) {
|
||||||
// Implement method to "direct set" color by HSB (HSB is passed comma separated, 0<H<360 0<S<100 0<B<100 )
|
bool validHSB = (XdrvMailbox.data_len > 0);
|
||||||
uint16_t HSB[3];
|
if (validHSB) {
|
||||||
bool validHSB = true;
|
uint16_t HSB[3];
|
||||||
|
if (strstr(XdrvMailbox.data, ",")) { // Command with 3 comma separated parameters, Hue (0<H<360), Saturation (0<S<100) AND Brightness (0<B<100)
|
||||||
|
for (int i = 0; i < 3; i++) {
|
||||||
|
char *substr;
|
||||||
|
|
||||||
if (strstr(XdrvMailbox.data, ",")) { // Command with 3 comma separated parameters (Hue, Saturation AND Brightness)
|
if (0 == i) {
|
||||||
for (int i = 0; i < 3; i++) {
|
substr = strtok(XdrvMailbox.data, ",");
|
||||||
char *substr;
|
} else {
|
||||||
|
substr = strtok(NULL, ",");
|
||||||
if (0 == i) {
|
}
|
||||||
substr = strtok(XdrvMailbox.data, ",");
|
if (substr != NULL) {
|
||||||
} else {
|
HSB[i] = atoi(substr);
|
||||||
substr = strtok(NULL, ",");
|
} else {
|
||||||
|
validHSB = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (substr != NULL) {
|
} else { // Command with only 1 parameter, Hue (0<H<360), Saturation (0<S<100) OR Brightness (0<B<100)
|
||||||
HSB[i] = atoi(substr);
|
float hsb[3];
|
||||||
|
|
||||||
|
LightGetHsb(&hsb[0],&hsb[1],&hsb[2]);
|
||||||
|
HSB[0] = round(hsb[0] * 360);
|
||||||
|
HSB[1] = round(hsb[1] * 100);
|
||||||
|
HSB[2] = round(hsb[2] * 100);
|
||||||
|
if ((XdrvMailbox.index > 0) && (XdrvMailbox.index < 4)) {
|
||||||
|
HSB[XdrvMailbox.index -1] = XdrvMailbox.payload;
|
||||||
} else {
|
} else {
|
||||||
validHSB = false;
|
validHSB = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else { // Command with only 1 parameter (Hue, Saturation OR Brightness)
|
if (validHSB) {
|
||||||
float hsb[3];
|
// Translate to fractional elements as required by LightHsbToRgb
|
||||||
|
// Keep the results <=1 in the event someone passes something out of range.
|
||||||
LightGetHsb(&hsb[0],&hsb[1],&hsb[2]);
|
LightSetHsb(( (HSB[0]>360) ? (HSB[0] % 360) : HSB[0] ) /360.0,
|
||||||
HSB[0] = round(hsb[0] * 360);
|
( (HSB[1]>100) ? (HSB[1] % 100) : HSB[1] ) /100.0,
|
||||||
HSB[1] = round(hsb[1] * 100);
|
( (HSB[2]>100) ? (HSB[2] % 100) : HSB[2] ) /100.0,
|
||||||
HSB[2] = round(hsb[2] * 100);
|
0);
|
||||||
if (XdrvMailbox.index = 1) { // Hue
|
|
||||||
HSB[0] = XdrvMailbox.payload;
|
|
||||||
} else if (XdrvMailbox.index = 2) { // Saturation
|
|
||||||
HSB[1] = XdrvMailbox.payload;
|
|
||||||
} else if (XdrvMailbox.index = 3) { // Brightness
|
|
||||||
HSB[2] = XdrvMailbox.payload;
|
|
||||||
} else {
|
|
||||||
validHSB = false;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (validHSB) {
|
|
||||||
// Translate to fractional elements as required by LightHsbToRgb
|
|
||||||
// Keep the results <=1 in the event someone passes something
|
|
||||||
// out of range.
|
|
||||||
LightSetHsb(( (HSB[0]>360) ? (HSB[0] % 360) : HSB[0] ) /360.0,
|
|
||||||
( (HSB[1]>100) ? (HSB[1] % 100) : HSB[1] ) /100.0,
|
|
||||||
( (HSB[2]>100) ? (HSB[2] % 100) : HSB[2] ) /100.0,
|
|
||||||
0);
|
|
||||||
} else {
|
} else {
|
||||||
LightState(0);
|
LightState(0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue