mirror of https://github.com/arendst/Tasmota.git
v5.8.0k - Clean up
Add retain to ENERGY messages controlled by command SensorRetain (#1013)
This commit is contained in:
parent
804bd8fb53
commit
60426fca2f
|
@ -1,6 +1,7 @@
|
|||
/* 5.8.0k
|
||||
* Add support for up to 8 relays (#995)
|
||||
* Fix Blocked Loop when erasing large flash using command reset 2 (#1002)
|
||||
* Add retain to ENERGY messages controlled by command SensorRetain (#1013)
|
||||
*
|
||||
* 5.8.0j
|
||||
* Set default altitude to 0 to be used with pressure sensors
|
||||
|
|
|
@ -432,7 +432,7 @@ void CFG_DefaultSet2()
|
|||
sysCfg.sleep = APP_SLEEP;
|
||||
|
||||
sysCfg.domoticz_update_timer = DOMOTICZ_UPDATE_TIMER;
|
||||
for (byte i = 0; i < 4; i++) {
|
||||
for (byte i = 0; i < MAX_SWITCHES; i++) {
|
||||
sysCfg.switchmode[i] = SWITCH_MODE;
|
||||
// sysCfg.domoticz_relay_idx[i] = 0;
|
||||
// sysCfg.domoticz_key_idx[i] = 0;
|
||||
|
@ -477,7 +477,7 @@ void CFG_DefaultSet2()
|
|||
sysCfg.pulsetime[0] = APP_PULSETIME;
|
||||
|
||||
// 4.0.7
|
||||
// for (byte i = 0; i < 5; i++) sysCfg.pwmvalue[i] = 0;
|
||||
// for (byte i = 0; i < MAX_PWMS; i++) sysCfg.pwmvalue[i] = 0;
|
||||
|
||||
// 4.0.9
|
||||
CFG_DefaultSet_4_0_9();
|
||||
|
@ -530,7 +530,7 @@ void CFG_DefaultSet_3_2_4()
|
|||
|
||||
void CFG_DefaultSet_3_9_3()
|
||||
{
|
||||
for (byte i = 0; i < 4; i++) {
|
||||
for (byte i = 0; i < MAX_DOMOTICZ_IDX; i++) {
|
||||
sysCfg.domoticz_switch_idx[i] = 0;
|
||||
}
|
||||
for (byte i = 0; i < 12; i++) {
|
||||
|
@ -543,7 +543,7 @@ void CFG_DefaultSet_3_9_3()
|
|||
}
|
||||
|
||||
sysCfg.led_pixels = WS2812_LEDS;
|
||||
for (byte i = 0; i < 5; i++) {
|
||||
for (byte i = 0; i < MAX_PWMS; i++) {
|
||||
sysCfg.led_color[i] = 255;
|
||||
}
|
||||
sysCfg.led_table = 0;
|
||||
|
@ -560,7 +560,7 @@ void CFG_DefaultSet_4_0_4()
|
|||
strlcpy(sysCfg.ntp_server[0], NTP_SERVER1, sizeof(sysCfg.ntp_server[0]));
|
||||
strlcpy(sysCfg.ntp_server[1], NTP_SERVER2, sizeof(sysCfg.ntp_server[1]));
|
||||
strlcpy(sysCfg.ntp_server[2], NTP_SERVER3, sizeof(sysCfg.ntp_server[2]));
|
||||
for (byte j =0; j < 3; j++) {
|
||||
for (byte j = 0; j < 3; j++) {
|
||||
for (byte i = 0; i < strlen(sysCfg.ntp_server[j]); i++) {
|
||||
if (sysCfg.ntp_server[j][i] == ',') {
|
||||
sysCfg.ntp_server[j][i] = '.';
|
||||
|
@ -635,7 +635,9 @@ void CFG_Delta()
|
|||
strlcpy(sysCfg.web_password, WEB_PASSWORD, sizeof(sysCfg.web_password));
|
||||
}
|
||||
if (sysCfg.version < 0x03091500) {
|
||||
for (byte i = 0; i < 4; i++) sysCfg.switchmode[i] = SWITCH_MODE;
|
||||
for (byte i = 0; i < MAX_SWITCHES; i++) {
|
||||
sysCfg.switchmode[i] = SWITCH_MODE;
|
||||
}
|
||||
}
|
||||
if (sysCfg.version < 0x04000400) {
|
||||
CFG_DefaultSet_4_0_4();
|
||||
|
@ -645,7 +647,7 @@ void CFG_Delta()
|
|||
sysCfg.my_gp.io[MAX_GPIO_PIN -1] = 0; // Clear ADC0
|
||||
}
|
||||
if (sysCfg.version < 0x04000700) {
|
||||
for (byte i = 0; i < 5; i++) {
|
||||
for (byte i = 0; i < MAX_PWMS; i++) {
|
||||
sysCfg.pwmvalue[i] = 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -788,6 +788,7 @@ boolean mqtt_command(boolean grpflg, char *type, uint16_t index, char *dataBuf,
|
|||
if (!payload) {
|
||||
mqtt_data[0] = '\0';
|
||||
mqtt_publish_topic_P(2, PSTR(D_RSLT_SENSOR), sysCfg.flag.mqtt_sensor_retain);
|
||||
mqtt_publish_topic_P(2, PSTR(D_RSLT_ENERGY), sysCfg.flag.mqtt_sensor_retain);
|
||||
}
|
||||
sysCfg.flag.mqtt_sensor_retain = payload;
|
||||
}
|
||||
|
@ -1807,7 +1808,7 @@ void state_mqttPresent()
|
|||
void sensors_mqttPresent(uint8_t* djson)
|
||||
{
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s{\"" D_TIME "\":\"%s\""), mqtt_data, getDateTime().c_str());
|
||||
for (byte i = 0; i < 4; i++) {
|
||||
for (byte i = 0; i < MAX_SWITCHES; i++) {
|
||||
if (pin[GPIO_SWT1 +i] < 99) {
|
||||
boolean swm = ((FOLLOW_INV == sysCfg.switchmode[i]) || (PUSHBUTTON_INV == sysCfg.switchmode[i]) || (PUSHBUTTONHOLD_INV == sysCfg.switchmode[i]));
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s, \"" D_SWITCH "%d\":\"%s\""), mqtt_data, i +1, getStateText(swm ^ lastwallswitch[i]));
|
||||
|
@ -2370,7 +2371,7 @@ void stateloop()
|
|||
if (sysCfg.flag.savestate) {
|
||||
power_t mask = POWER_MASK;
|
||||
for (byte i = 0; i < MAX_PULSETIMERS; i++) {
|
||||
if ((sysCfg.pulsetime[i] > 0) && (sysCfg.pulsetime[i] < 30)) {
|
||||
if ((sysCfg.pulsetime[i] > 0) && (sysCfg.pulsetime[i] < 30)) { // 3 seconds
|
||||
mask &= ~(1 << i);
|
||||
}
|
||||
}
|
||||
|
@ -2640,9 +2641,6 @@ void GPIO_init()
|
|||
pinMode(pin[GPIO_REL1 +i], OUTPUT);
|
||||
Maxdevice++;
|
||||
}
|
||||
// if (pin[GPIO_KEY1 +i] < 99) {
|
||||
// pinMode(pin[GPIO_KEY1 +i], (16 == pin[GPIO_KEY1 +i]) ? INPUT_PULLDOWN_16 : INPUT_PULLUP);
|
||||
// }
|
||||
}
|
||||
}
|
||||
for (byte i = 0; i < MAX_KEYS; i++) {
|
||||
|
@ -2724,6 +2722,7 @@ extern struct rst_info resetInfo;
|
|||
void setup()
|
||||
{
|
||||
byte idx;
|
||||
uint8_t maxdev;
|
||||
|
||||
Serial.begin(Baudrate);
|
||||
delay(10);
|
||||
|
@ -2817,15 +2816,20 @@ void setup()
|
|||
}
|
||||
|
||||
// Issue #526
|
||||
uint8_t maxdev = (Maxdevice > MAX_RELAYS) ? MAX_RELAYS : Maxdevice;
|
||||
maxdev = (Maxdevice > MAX_RELAYS) ? MAX_RELAYS : Maxdevice;
|
||||
for (byte i = 0; i < maxdev; i++) {
|
||||
if (pin[GPIO_REL1 +i] < 99) {
|
||||
if (digitalRead(pin[GPIO_REL1 +i]) ^ bitRead(rel_inverted, i)) {
|
||||
bitSet(power, i);
|
||||
pulse_timer[i] = sysCfg.pulsetime[i]; // MAX_PULSETIMERS must be equal to MAX_RELAYS for this to work here
|
||||
}
|
||||
}
|
||||
}
|
||||
maxdev = (Maxdevice > MAX_PULSETIMERS) ? MAX_PULSETIMERS : Maxdevice;
|
||||
for (byte i = 0; i < maxdev; i++) {
|
||||
if (bitRead(power, i)) {
|
||||
pulse_timer[i] = sysCfg.pulsetime[i]; // MAX_PULSETIMERS must be equal to MAX_RELAYS for this to work here
|
||||
}
|
||||
}
|
||||
|
||||
blink_powersave = power;
|
||||
|
||||
|
|
|
@ -732,7 +732,7 @@ int32_t i2c_read(uint8_t addr, uint8_t reg, uint8_t size)
|
|||
if (0 == Wire.endTransmission(false)) { // Try to become I2C Master, send data and collect bytes, keep master status for next request...
|
||||
Wire.requestFrom((int)addr, (int)size); // send data n-bytes read
|
||||
if (Wire.available() == size) {
|
||||
for(byte i = 0; i < size; i++) {
|
||||
for (byte i = 0; i < size; i++) {
|
||||
data <<= 8;
|
||||
data |= Wire.read(); // receive DATA
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue