mirror of
https://github.com/arendst/Tasmota.git
synced 2025-08-02 15:37:42 +00:00
6.5.0.7 Add command LedMask
6.5.0.7 20190410 * Add command LedMask to assign which relay has access to power LED (#5602, #5612)
This commit is contained in:
parent
0dbbf413a8
commit
df6645481e
@ -1,4 +1,7 @@
|
||||
/* 6.5.0.6 20190409
|
||||
/* 6.5.0.7 20190410
|
||||
* Add command LedMask to assign which relay has access to power LED (#5602, #5612)
|
||||
*
|
||||
* 6.5.0.6 20190409
|
||||
* Add WebColor parameters to Settings making them persistent and remove the need for using a rule
|
||||
* Add alternative IRSend command syntax IRSend raw,<freq>,<header mark>,<header space>,<bit mark>,<zero space>,<one space>,<bit stream> (#5610)
|
||||
*
|
||||
|
@ -266,6 +266,7 @@
|
||||
#define D_CMND_ALTITUDE "Altitude"
|
||||
#define D_CMND_LEDPOWER "LedPower"
|
||||
#define D_CMND_LEDSTATE "LedState"
|
||||
#define D_CMND_LEDMASK "LedMask"
|
||||
#define D_CMND_I2CSCAN "I2CScan"
|
||||
#define D_CMND_SERIALSEND "SerialSend"
|
||||
#define D_CMND_SERIALDELIMITER "SerialDelimiter"
|
||||
|
@ -187,6 +187,7 @@
|
||||
#define APP_TIMEZONE 1 // [Timezone] +1 hour (Amsterdam) (-13 .. 14 = hours from UTC, 99 = use TIME_DST/TIME_STD)
|
||||
#define APP_LEDSTATE LED_POWER // [LedState] Function of led
|
||||
// (LED_OFF, LED_POWER, LED_MQTTSUB, LED_POWER_MQTTSUB, LED_MQTTPUB, LED_POWER_MQTTPUB, LED_MQTT, LED_POWER_MQTT)
|
||||
#define APP_LEDMASK 0xFFFF // [LedMask] Assign Relay to Power led (0xFFFF is default)
|
||||
#define APP_PULSETIME 0 // [PulseTime] Time in 0.1 Sec to turn off power for relay 1 (0 = disabled)
|
||||
#define APP_POWERON_STATE POWER_ALL_SAVED // [PowerOnState] Power On Relay state
|
||||
// (POWER_ALL_OFF, POWER_ALL_ON, POWER_ALL_SAVED_TOGGLE, POWER_ALL_SAVED, POWER_ALL_ALWAYS_ON, POWER_ALL_OFF_PULSETIME_ON)
|
||||
|
@ -341,9 +341,7 @@ struct SYSCFG {
|
||||
uint32_t displays; // 7B0
|
||||
uint32_t energy_kWhtotal_time; // 7B4
|
||||
unsigned long weight_item; // 7B8 Weight of one item in gram * 10
|
||||
|
||||
uint8_t free_7BC[2]; // 7BC
|
||||
|
||||
uint16_t ledmask; // 7BC
|
||||
uint16_t weight_max; // 7BE Total max weight in kilogram
|
||||
unsigned long weight_reference; // 7C0 Reference weight in gram
|
||||
unsigned long weight_calibration; // 7C4
|
||||
|
@ -695,6 +695,7 @@ void SettingsDefaultSet2(void)
|
||||
Settings.blinktime = APP_BLINKTIME;
|
||||
Settings.blinkcount = APP_BLINKCOUNT;
|
||||
Settings.ledstate = APP_LEDSTATE;
|
||||
Settings.ledmask = APP_LEDMASK;
|
||||
Settings.pulse_timer[0] = APP_PULSETIME;
|
||||
// for (uint8_t i = 1; i < MAX_PULSETIMERS; i++) { Settings.pulse_timer[i] = 0; }
|
||||
|
||||
@ -1160,6 +1161,9 @@ void SettingsDelta(void)
|
||||
if (Settings.version < 0x06050006) {
|
||||
SettingsDefaultWebColor();
|
||||
}
|
||||
if (Settings.version < 0x06050007) {
|
||||
Settings.ledmask = APP_LEDMASK;
|
||||
}
|
||||
|
||||
Settings.version = VERSION;
|
||||
SettingsSave(1);
|
||||
|
@ -76,7 +76,7 @@ enum TasmotaCommands {
|
||||
CMND_COUNTERDEBOUNCE, CMND_BUTTONDEBOUNCE, CMND_SWITCHDEBOUNCE, CMND_SLEEP, CMND_UPGRADE, CMND_UPLOAD, CMND_OTAURL, CMND_SERIALLOG, CMND_SYSLOG,
|
||||
CMND_LOGHOST, CMND_LOGPORT, CMND_IPADDRESS, CMND_NTPSERVER, CMND_AP, CMND_SSID, CMND_PASSWORD, CMND_HOSTNAME,
|
||||
CMND_WIFICONFIG, CMND_FRIENDLYNAME, CMND_SWITCHMODE, CMND_INTERLOCK, CMND_TEMPLATE,
|
||||
CMND_TELEPERIOD, CMND_RESTART, CMND_RESET, CMND_TIMEZONE, CMND_TIMESTD, CMND_TIMEDST, CMND_ALTITUDE, CMND_LEDPOWER, CMND_LEDSTATE,
|
||||
CMND_TELEPERIOD, CMND_RESTART, CMND_RESET, CMND_TIMEZONE, CMND_TIMESTD, CMND_TIMEDST, CMND_ALTITUDE, CMND_LEDPOWER, CMND_LEDSTATE, CMND_LEDMASK,
|
||||
CMND_I2CSCAN, CMND_SERIALSEND, CMND_BAUDRATE, CMND_SERIALDELIMITER, CMND_DRIVER };
|
||||
const char kTasmotaCommands[] PROGMEM =
|
||||
D_CMND_BACKLOG "|" D_CMND_DELAY "|" D_CMND_POWER "|" D_CMND_FANSPEED "|" D_CMND_STATUS "|" D_CMND_STATE "|" D_CMND_POWERONSTATE "|" D_CMND_PULSETIME "|"
|
||||
@ -86,7 +86,7 @@ const char kTasmotaCommands[] PROGMEM =
|
||||
D_CMND_COUNTERDEBOUNCE "|" D_CMND_BUTTONDEBOUNCE "|" D_CMND_SWITCHDEBOUNCE "|" D_CMND_SLEEP "|" D_CMND_UPGRADE "|" D_CMND_UPLOAD "|" D_CMND_OTAURL "|" D_CMND_SERIALLOG "|" D_CMND_SYSLOG "|"
|
||||
D_CMND_LOGHOST "|" D_CMND_LOGPORT "|" D_CMND_IPADDRESS "|" D_CMND_NTPSERVER "|" D_CMND_AP "|" D_CMND_SSID "|" D_CMND_PASSWORD "|" D_CMND_HOSTNAME "|"
|
||||
D_CMND_WIFICONFIG "|" D_CMND_FRIENDLYNAME "|" D_CMND_SWITCHMODE "|" D_CMND_INTERLOCK "|" D_CMND_TEMPLATE "|"
|
||||
D_CMND_TELEPERIOD "|" D_CMND_RESTART "|" D_CMND_RESET "|" D_CMND_TIMEZONE "|" D_CMND_TIMESTD "|" D_CMND_TIMEDST "|" D_CMND_ALTITUDE "|" D_CMND_LEDPOWER "|" D_CMND_LEDSTATE "|"
|
||||
D_CMND_TELEPERIOD "|" D_CMND_RESTART "|" D_CMND_RESET "|" D_CMND_TIMEZONE "|" D_CMND_TIMESTD "|" D_CMND_TIMEDST "|" D_CMND_ALTITUDE "|" D_CMND_LEDPOWER "|" D_CMND_LEDSTATE "|" D_CMND_LEDMASK "|"
|
||||
D_CMND_I2CSCAN "|" D_CMND_SERIALSEND "|" D_CMND_BAUDRATE "|" D_CMND_SERIALDELIMITER "|" D_CMND_DRIVER;
|
||||
|
||||
const char kSleepMode[] PROGMEM = "Dynamic|Normal";
|
||||
@ -513,7 +513,7 @@ void MqttDataHandler(char* topic, uint8_t* data, unsigned int data_len)
|
||||
if (!strcmp(dataBuf,"?")) { data_len = 0; }
|
||||
int16_t payload = -99; // No payload
|
||||
uint16_t payload16 = 0;
|
||||
long payload32 = strtol(dataBuf, &p, 10);
|
||||
long payload32 = strtol(dataBuf, &p, 0); // decimal, octal (0) or hex (0x)
|
||||
if (p != dataBuf) {
|
||||
payload = (int16_t) payload32; // -32766 - 32767
|
||||
payload16 = (uint16_t) payload32; // 0 - 65535
|
||||
@ -525,7 +525,7 @@ void MqttDataHandler(char* topic, uint8_t* data, unsigned int data_len)
|
||||
int temp_payload = GetStateNumber(dataBuf);
|
||||
if (temp_payload > -1) { payload = temp_payload; }
|
||||
|
||||
// AddLog_P2(LOG_LEVEL_DEBUG, PSTR("RSLT: Payload %d, Payload16 %d"), payload, payload16);
|
||||
// AddLog_P2(LOG_LEVEL_DEBUG, PSTR(D_LOG_RESULT "Payload %d, Payload16 %d, payload32 %u"), payload, payload16, payload32);
|
||||
|
||||
int command_code = GetCommandCode(command, sizeof(command), type, kTasmotaCommands);
|
||||
if (-1 == command_code) {
|
||||
@ -1426,6 +1426,12 @@ void MqttDataHandler(char* topic, uint8_t* data, unsigned int data_len)
|
||||
}
|
||||
Response_P(S_JSON_COMMAND_NVALUE, command, Settings.ledstate);
|
||||
}
|
||||
else if (CMND_LEDMASK == command_code) {
|
||||
if (data_len > 0) {
|
||||
Settings.ledmask = payload16;
|
||||
}
|
||||
Response_P(S_JSON_COMMAND_NVALUE, command, Settings.ledmask);
|
||||
}
|
||||
#ifdef USE_I2C
|
||||
else if ((CMND_I2CSCAN == command_code) && i2c_flg) {
|
||||
I2cScan(mqtt_data, sizeof(mqtt_data));
|
||||
@ -1991,7 +1997,7 @@ void Every250mSeconds(void)
|
||||
}
|
||||
}
|
||||
else if (Settings.ledstate &1) {
|
||||
bool tstate = power;
|
||||
bool tstate = power & Settings.ledmask;
|
||||
if ((SONOFF_TOUCH == my_module_type) || (SONOFF_T11 == my_module_type) || (SONOFF_T12 == my_module_type) || (SONOFF_T13 == my_module_type)) {
|
||||
tstate = (!power) ? 1 : 0; // As requested invert signal for Touch devices to find them in the dark
|
||||
}
|
||||
|
@ -20,6 +20,6 @@
|
||||
#ifndef _SONOFF_VERSION_H_
|
||||
#define _SONOFF_VERSION_H_
|
||||
|
||||
const uint32_t VERSION = 0x06050006;
|
||||
const uint32_t VERSION = 0x06050007;
|
||||
|
||||
#endif // _SONOFF_VERSION_H_
|
||||
|
Loading…
x
Reference in New Issue
Block a user