Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fallback topic detection generates false positives #4706

Closed
tari opened this issue Dec 21, 2018 · 10 comments
Closed

Fallback topic detection generates false positives #4706

tari opened this issue Dec 21, 2018 · 10 comments
Labels
bug Type - Confirmated Bug fixed Result - The work on the issue has ended

Comments

@tari
Copy link

tari commented Dec 21, 2018

When the MQTT client ID and topic are set to the same value, received messages are treated as coming in on the fallback topic, rather than the regular topic. For instance, if both are set to sonoff-0000 and the topic is %topic%/%prefix%/, then commands received on the regular topic sonoff-0000/cmnd/ are responded to on the fallback topic cmnd/sonoff-0000/.

While the fallback topic is a useful feature to have (eg #1528, #4190, probably others), the value of fallback_topic_flag in MqttDataHandler depends only on finding the client ID in the topic, rather than it actually being the fallback topic:

 fallback_topic_flag = (strstr(topicBuf, mqtt_client) != NULL);

Since this logical shortcut has bitten multiple users in the past, I think it should be changed to check that the topic is actually the fallback topic (match the beginning against the command prefix); this doesn't break the fallback, but does prevent confusion when users want to make the default topic contain the client ID (which is particularly useful when setting pattern ACLs in mosquitto).

@wongnam
Copy link

wongnam commented Dec 22, 2018

the sonoff-xxxx is a default topic, i thinks it's not a FallbackTopic.
You can get FallbackTopic on tele/sonoff/INFO1 and that topic is generated base on the last 3 digit of its MAC address.
example:

07:32:01 MQT: tele/smartplug/INFO1 = {"Module":"Sonoff TH","Version":"6.4.0(sonoff)","FallbackTopic":"DVES_0F86C9","GroupTopic":"sonoffs"}
07:32:01 MQT: tele/smartplug/INFO2 = {"WebServerMode":"Admin","Hostname":"smartplug-1737","IPAddress":"192.168.12.111"}

Update: I usually used this kind of FallbackTopic for my new Sonoff devices to Auto Initial Configuration(Provisioning) for the first time its connect to my system.

@tari
Copy link
Author

tari commented Dec 22, 2018

The fallback topic is the MQTT client ID, so in your example you have the default client ID set.

I usually used this kind of FallbackTopic for my new Sonoff devices to Auto Initial Configuration(Provisioning) for the first time its connect to my system.

Which is fine; the change I propose doesn't stop that from working, it just means that a regular topic that also includes the client ID in it isn't incorrectly treated as the fallback topic (as I saw in #4683).

@ascillato2 ascillato2 added question Type - Asking for Information awaiting feedback Action - Waiting for response or more information labels Dec 22, 2018
@wongnam
Copy link

wongnam commented Dec 22, 2018

Maybe you mention about the "feedback" topic right? you want TASMOTA send feedback of devices state as cmnd/sonoff-xxxx/POWER instead of stat/sonoff-xxxx/POWER.

@tari
Copy link
Author

tari commented Dec 22, 2018

No, the bug is that a command on the regular topic is treated as coming in on the fallback topic, so the response is sent on the fallback instead. For instance:

-> sonoff-xxxx/cmnd/POWER ON
<- stat/sonoff-xxxx/POWER ON

The response is on the wrong topic because the check I noted originally sees the client ID is present in the topic and sets the fallback_topic_flag, when in fact the command was not on the fallback topic. The correct behavior is

-> sonoff-xxxx/cmnd/POWER ON
<- sonoff-xxxx/stat/POWER ON

(Or whatever the actual messages are- the important part here is the topic, not the message.)

@wongnam
Copy link

wongnam commented Dec 22, 2018

I am not sure i understand your mean, but i am trying to replicate it.
as i found that Tasmota Sonoff Basic can perform the mqtt command and stat as you expect.
here is my weblog 3 FYR:

00:00:08 WIF: Connected
00:00:08 DNS: Initialized
00:00:08 HTP: Web server active on sonoff-1234-6529.local with IP address 192.168.12.106
00:00:08 APP: (UTC) Sat Dec 22 02:35:42 2018, (DST) Sun Mar 25 02:00:00 2018, (STD) Sun Oct 28 03:00:00 2018
09:35:43 HTP: Main Menu
09:35:44 MQT: Attempting connection...
09:35:44 MQT: Connected
09:35:44 MQT: sonoff-1234/tele/LWT = Online (retained)
09:35:44 MQT: sonoff-1234/cmnd/POWER = 
09:35:44 MQT: Subscribe to sonoff-1234/cmnd/#
09:35:44 MQT: Subscribe to sonoffs/cmnd/#
09:35:44 MQT: Subscribe to cmnd/DVES_7C7981/#
09:35:44 MQT: sonoff-1234/tele/INFO1 = {"Module":"Sonoff Basic","Version":"6.4.0(sonoff)","FallbackTopic":"DVES_7C7981","GroupTopic":"sonoffs"}
09:35:44 MQT: sonoff-1234/tele/INFO2 = {"WebServerMode":"Admin","Hostname":"sonoff-1234-6529","IPAddress":"192.168.12.106"}
09:35:44 MQT: sonoff-1234/tele/INFO3 = {"RestartReason":"Software/System restart"}
09:35:44 MQT: sonoff-1234/stat/RESULT = {"POWER":"OFF"}
09:35:44 MQT: sonoff-1234/stat/POWER = OFF
09:35:44 APP: Boot Count 10
09:35:44 SRC: MQTT
09:35:44 RSL: Group 0, Index 1, Command POWER, Data OFF
09:35:44 MQT: sonoff-1234/stat/RESULT = {"POWER":"OFF"}
09:35:44 MQT: sonoff-1234/stat/POWER = OFF
09:35:44 CFG: Saved to flash at F9, Count 75, Bytes 3584
09:35:45 HTP: Console
09:35:52 MQT: sonoff-1234/tele/STATE = {"Time":"2018-12-22T09:35:52","Uptime":"0T00:00:18","Vcc":3.390,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"POWER":"OFF","Wifi":{"AP":1,"SSId":"iot-2","BSSId":"38:17:C3:F1:90:01","Channel":1,"RSSI":68}}
09:35:53 SRC: MQTT
09:35:53 RSL: Group 0, Index 1, Command POWER, Data ON
09:35:53 MQT: sonoff-1234/stat/RESULT = {"POWER":"ON"}
09:35:53 MQT: sonoff-1234/stat/POWER = ON
09:35:54 CFG: Saved to flash at F8, Count 76, Bytes 3584
09:35:56 SRC: MQTT
09:35:56 RSL: Group 0, Index 1, Command POWER, Data OFF
09:35:56 MQT: sonoff-1234/stat/RESULT = {"POWER":"OFF"}
09:35:56 MQT: sonoff-1234/stat/POWER = OFF
09:35:56 CFG: Saved to flash at F7, Count 77, Bytes 3584
09:36:57 HTP: Main Menu
09:37:10 HTP: Console

test

@tari
Copy link
Author

tari commented Dec 22, 2018

The client ID needs to be present in the full topic; per your screenshot if you change the client field to "sonoff-1234" (it's not pictured so I assume it's set to the default) you should be able to replicate the bug.

@arendst
Copy link
Owner

arendst commented Dec 22, 2018

I'll change the test to include the full fallback topic of "cmnd/fallback" so including the fixed string "cmnd/".

@wongnam
Copy link

wongnam commented Dec 22, 2018

@tari I can replicate the issue as you said.

00:00:26 DNS: Initialized
00:00:26 HTP: Web server active on sonoff-1234-6529.local with IP address 192.168.12.106
21:55:54 MQT: Attempting connection...
21:55:54 MQT: Connected
21:55:54 MQT: sonoff-1234/tele/LWT = Online (retained)
21:55:54 MQT: sonoff-1234/cmnd/POWER = 
21:55:54 MQT: sonoff-1234/tele/INFO1 = {"Module":"Sonoff Basic","Version":"6.4.0(sonoff)","FallbackTopic":"sonoff-1234","GroupTopic":"sonoffs"}
21:55:54 MQT: sonoff-1234/tele/INFO2 = {"WebServerMode":"Admin","Hostname":"sonoff-1234-6529","IPAddress":"192.168.12.106"}
21:55:54 MQT: sonoff-1234/tele/INFO3 = {"RestartReason":"Software/System restart"}
21:55:54 MQT: sonoff-1234/stat/RESULT = {"POWER":"OFF"}
21:55:54 MQT: sonoff-1234/stat/POWER = OFF
21:55:54 MQT: stat/sonoff-1234/RESULT = {"POWER":"OFF"}
21:55:54 MQT: stat/sonoff-1234/POWER = OFF

test

arendst added a commit that referenced this issue Dec 22, 2018
6.4.0.3 20181222
 * Change Hass discovery to short MQTT messages as used by Hass 0.81 and up (#4711)
 * Change FallbackTopic detection (#4706)
 * Add define WIFI_SOFT_AP_CHANNEL in my_user_config.h to set Soft Access Point Channel number between 1 and 13 as used by Wifi Manager web GUI (#4673)
 * Fix Alexa "this value is outside the range of the device". Needs power cycle and Alexa deletion/discovery cycle. (#3159, #4712)
@ascillato2 ascillato2 added bug Type - Confirmated Bug and removed awaiting feedback Action - Waiting for response or more information question Type - Asking for Information labels Dec 22, 2018
@ascillato2
Copy link
Collaborator

Fixed. Thanks everyone for reporting and testing 👍

@ascillato2 ascillato2 added the fixed Result - The work on the issue has ended label Dec 22, 2018
wienerdogracing added a commit to wienerdogracing/Sonoff-Tasmota that referenced this issue Dec 31, 2018
* PS_16_DZ: GPIO13 => LED1

* PS_16_DZ: cleanup code

* Add Command CalcRes

* Update settings.ino

* Update decode-config.py

* Add SetOption59 info

Add SetOption59 info

* decode-config.py: add 6.3.0.11 to .14 settings

* Add dynamic buffer space

Make serial buffer space reservation dynamic

* Add dynamic buffer space

Add dynamic buffer space

* Fix dynamic buffer handling

Fix dynamic buffer handling

* Move static to dynamic buffers

 * Add support for SM Smart Wifi Dimmer PS-16-DZ (arendst#4465)
 * Move some static (serial) buffers to dynamic buffers

* Prep for Software SPI

Prep for Software SPI used by some displays

* PS_16_DZ: only update brightness if it actually changed

* PS_16_DZ: reduce buffer-size and actually check for overflow

* PS_16_DZ: optimize for size

* PS_16_DZ: further optimization

* PS_16_DZ: leave space for trailing 0-byte

* Hass: Restart if topic is changed

* PS_16_DZ: cleanup

* Fix possible overflow situation

Fix possible overflow situation

* Small improvements to Hass MQTT discovery

* Add support for Teckin US

Add support for Teckin US Wifi Smart Switch with Energy Monitoring (arendst#4481)

* Update display and epaper drivers

Update display and epaper drivers

* switch to using NewPing lib directly for sr04
add NewPing-1.9.1 lib

* Housekeeping

* Upd settings.ino - set sleep=0 when SetOption36>0

Update settings.ino - set sleep=0 when SetOption36>0

* Prevent sleep and SetOption36 being used concurrently

Prevent sleep and SetOption36 being used concurrently

* Fix sleep->SetOption36 transition

* Update fr-FR.h

Synced with changes since  v6.2.1.7

* Merge sleep command

* Bump version to 0x0603000F

Bump version to 0x0603000F to make sure new sleep command takes effect on 50 as default for upgrades where sleep is < 50.

* Update support_wifi.ino

* 6.3.0.15 Update dynamic sleep

6.3.0.15 20181201
 * Removed command SetOption36 (arendst#4497)
 * Add command SetOption60 0/1 to select dynamic sleep (0) or sleep (1) (arendst#4497)

* Update with dynamic sleep flag

* Added Support for ButtonN and SwitchN

* RULES: Added BREAK as an alternative ENDON

RULES: Added BREAK as an alternative ENDON that will stop the execution of the following rules.

If a rule that ends with BREAK, is triggered, then the following rules of that set will not be executed. This is useful for cases like: arendst#4477

* Update xsns_22_sr04.ino

* RULES: Added BREAK as an alternative ENDON

* Delete duplicated min and max functions

* Update README.md

* Update _changelog.ino

* Further improve Hass auto discovery

* Add dummy soft_spi_flg to satisfy compiler

@arendst Just adding this, for now, to satisfy the compiler until you get time to merge the rest of the Software SPI support.

* decode-config.py: add new settings

- add 6.3.0.15 setting change
- adapt 6.3.0.13 setting change

* Add GPIO2 for Sonoff Basic Template

Add GPIO2 for Sonoff Basic Template

* Add support for GPIO02 for newer Sonoff Basic

Add support for GPIO02 for newer Sonoff Basic

* Fix Compilation issue with STAGE Core

Now the Stage core has the the same STR macro defined in sonoff.h.

* Create RF-Bridge-EFM8BB1-20181127.hex

ignore RF pulses < 100µs, increased uart RX buffer
-> stopp red led flashing

* Announce switches

* Final fix compile error (arendst#4509)

Final fix soft_spi_flg compile error (arendst#4509)

* Fix logic for ON/OFF vs TOGGLE

* Initial translation to Swedish

* Added Key to select Swedish Translation

* Added Swedish to Precompiled bins

* Added missing "

* Matched the order of days with Tasmota Timers

* Update platformio.ini

Support for enable / disable exceptions code in firmware for esp8266 core 2.5.0 (stage) or up

* localization for Polish - KNX, timers, etc.

* Add Domoticz Selector for Fanspeed

Add support for iFan02 Fanspeed in Domoticz using a selector (arendst#4517)

* Update sonoff.ino

* 6.3.0.16 - Bump version

6.3.0.16 20181201
 * Add support for iFan02 Fanspeed in Domoticz using a selector (arendst#4517)
 * Add Announce Switches to MQTT Discovery (arendst#4531)

* Fix Domoticz Fanspeed

Fix Domoticz Fanspeed

* MCP230xx - Add Interrupt Retain

* MCP230xx driver - add interrupt retention

MCP230xx driver - add interrupt retention over teleperiod.

* Fix HASS discovery of switches

* Announce RGBW light, add 'White' command

* Enabled forced local operation when button- or switchtopic is set

* Update Hass discovery

* v2.1.0012
decode-config.py: add new settings

- add 6.3.0.16 setting change

* decode-config.py: add new settings

- add 6.3.0.16 setting change

* Fix reversed logic when announcing buttons / switches

* add DMP mode to MPU-6050

* fix compile issue on ESP8266

* Clean and shrink lights

Clean and shrink lights

* Add support for device registry

* Update my_user_config.h

* Fix Warning in Platformio if building MPU and KNX together

* USE_MPU6050_DMP moved to my_user_config.h

* USE_MPU6050_DMP moved to my_user_config.h

* Corrected Domoticz Temp published from MPU6050

* decode-config.py: add new settings

- add SetOption61 from PR arendst#4562

* Update my_user_config.h

* Fix language file

Fix language file

* 6.3.0.17 Add features

6.3.0.17 20181211
 * Add support for TheoV2 sensors as documented on https://sidweb.nl
 * Add support for SDM220 (arendst#3610)
 * Enhance support for MPU6050 using DMP (arendst#4581)

* add manzuko "power strip"

* Add more support

 * Add support for decoding Theo V2 sensors as documented on https://sidweb.nl using 434MHz RF sensor receiver
 * Add support for decoding Alecto V2 sensors like ACH2010, WS3000 and DKW2012 using 868MHz RF sensor receiver
 * Add support for Manzoku Power Strip (arendst#4590)

* Updated Spanish Translation

* Update de-DE.h

* More tweak of Hass switch/button

* Update fr-FR.h

Added SDM220  new strings

* Update fr-FR.h

SDM220 strings  reworked to fit in the space available

* initial work on range-support

* mqtt messages updated

* Publish state message when changing effect

* decode-config.py: Fix `@v` filename template (arendst#4609)

- fix restore filename auto extension

* add debug code to show final command sequence

* correcting memcpy calls

* Add TheoV2 sensor source

Add TheoV2 sensor source and information used with Rf Sensor

* Add LwIP 2 no features (Low Flash)

* Fix ArduinoOTA for Core 2.5.0 (fix is backwards compatible)

arendst#4619

* Fix ArduinoOTA for Core 2.5.0

Fix ArduinoOTA for Core 2.5.0

* Fix HomeAssistant Temp Sensor AutoDiscovery

arendst#4627

* New 2.5.0-2 toolchain does not like uncast bitwise

The new toolchain (2.5.0-2) used from core 2.5.0 does not want bitwise operations to be performed on non-integer variables so we cast the double used in send_2byte_float() to a (long) as it should be.

* Fix NewPing-1.9.1 library.properties

Fix NewPing-1.9.1 library.properties to avoid compiler warning about possibly not supporting ESP8266 whereas we know now that it does. This causes the compiler warning (which may alarm some users unnecessarily) that NewPing claims to run on avr and stm32.

* Updates for release 6.4.0

Updates for release 6.4.0

* Prep for release

Prep for release

* Updates for release 6.4.0

Updates for release 6.4.0

* Updates for release 6.4.0

Updates for release 6.4.0

* Updates for release 6.4.0

Updates for release 6.4.0

* Prep for release

Prep for release

* Updates for release 6.4.0

Updates for release 6.4.0

* Updates for release 6.4.0

Updates for release 6.4.0

* Prep for merge

* 6.4.0.1 New dev release

* Removing duplicate entrys

Options for core 2.5.0 where duplicated

* Update README.md

* Create boards.txt

* Create platform.txt

* No exceptions

* it-IT language updated

* option for firmware directory added

* Ease selecting core versions

Ease selecting core versions by grouping core parameters together. Select core version in group [core_active]

* webserver: swap index and name in module configuration

* Tune driver RF Sensor

- Free memory when driver RF Sensor is compiled but not used.
- Fix possible buffer overflow exceptions
- Add rule and hardware info to source

* introduce new api-call for dimmer-devices

* SerialLog: output CR + LF instead of just LF

* Update linker files

Update linker files to released linker files for coe 2.4.2 and up

* Add sk-SK language

* Update bg-BG.h

* Add support for AZ-Instrument 7798 CO2 meter/datalogger.

* Add support for AZ-Instrument 7798 CO2 meter/datalogger.

* Revert platformio.ini and my_user_config to original version,
adding line for new sensor but leaving it commented out.

* Include changes from original into sonoff/language/bg-BG.h

* Updated from originals: platformio.ini, sonoff/my_user_config.h.

* Revert to original RELEASENOTES.md.

* Add void to functions without parameters

* Fix temperature conversion

Fix temperature conversion to still use ConvertTemp() even if meter sends the value in F

* Add support for AZ-Instrument 7798 CO2

Add support for AZ-Instrument 7798 CO2 meter/datalogger

* pressure unit of measure reporting

Added a dedicated pressure sensor management to report back as pressure sensor and not fallback as a generic sensor in HA autodiscovery process

* add missing units of measurements for energy

* removed some errors from copy pasting..

* add empty unit of measurement for any sensors

* Added option for checking mqtt tls against root ca

Signed-off-by: Frank Meies <[email protected]>

* Change RAM usage BMP/BME

Change RAM usage BMP/BME I2C sensors

* Update Arduino IDE core 2.5.0 files

Update Arduino IDE core 2.5.0 files

* Fix wifi strongest signal detection

Fix wifi strongest signal detection (arendst#4704)

* 6.4.0.2 Fix possible dtostrf bos

6.4.0.2 20181221
 * Fix possible dtostrf buffer overflows by increasing buffers

* Still need patched PWM for core 2.5.0

Still need patched PWM for core 2.5.0

* Check for core version when enabling tls ca cert

Signed-off-by: Frank Meies <[email protected]>

* Check for core version when enabling tls ca cert, changed names of defines

Signed-off-by: Frank Meies <[email protected]>

* Remove SetOption55 (hass_short_discovery_msg)

* Rename HASS discovery string constants

* Remove Alexa message "this value is outside the range of the device"

* 6.4.0.3 Hass and Alexa fixes

6.4.0.3 20181222
 * Change Hass discovery to short MQTT messages as used by Hass 0.81 and up (arendst#4711)
 * Change FallbackTopic detection (arendst#4706)
 * Add define WIFI_SOFT_AP_CHANNEL in my_user_config.h to set Soft Access Point Channel number between 1 and 13 as used by Wifi Manager web GUI (arendst#4673)
 * Fix Alexa "this value is outside the range of the device". Needs power cycle and Alexa deletion/discovery cycle. (arendst#3159, arendst#4712)

* Add optional TLS_CA_CERT

Add define USE_MQTT_TLS_CA_CERT for checking MQTT TLS against root ca using Let's Encrypt cert from sonoff_letsencrypt.h - not supported with core 2.3.0 (arendst#4703)

* decode-config.py: adapt settings change

- remove SetOption55 (hass_short_discovery_msg)

* Change FallbackTopic

Change FallbackTopic from cmnd/<mqttclient>/ to cmnd/<mqttclient>_fb/ to discriminate from Topic (arendst#1528)

* PS_16_DZ: fix broken if-statement

* Change MQTT GUI password handling

Change MQTT GUI password handling (arendst#4723)

* Release 6.4.1

* 6.4.1.1 Fix most compiler warnings

6.4.1.1 20181224
 * Fix most compiler warnings

* Fix compiler warning

Fix compiler warning

* Change switch debounce

Change switch input detection by optimizing switch debounce (arendst#4724)

* Add INPUT_PULLUP option for single DS18B20

* Add variable %timestamp% to be used in rules

This PR adds a new variable %timestamp% to be used in a rule to allow the user to include the Time Stamp as Tasmota has for Status, Sensors, etc, for example:

Command:

publish stat/topic/sensor {"Time":"%timestamp%","mysensor":"%var1%"}

Output:

{"Time":"2018-12-27T12:52:57","mysensor":"1"}

(arendst#4734)

* 6.4.1.2 Rewrite Switch driver

6.4.1.2 20181228
 * Change switch driver making it modular and introduce input filter (arendst#4665, arendst#4724)
 * Add define DS18B20_INTERNAL_PULLUP to select internal input pullup when only one DS18B20 sensor is connected eliminating external resistor (arendst#4738)
 * Add variable %timestamp% to rules (arendst#4749)

* Update platformio.ini with stage

Update platformio.ini with latest stage option

* Prep for template tuning

* 6.4.1.3 Change sonoff_template.h

6.4.1.3 20181229
 * Change sonoff_template.h module lay-out by removing non-configurable GPIOs

* Fix Typo in Spanish Translation

* Fix MGC3130/AZ7798 compile error

* Add debugging options to Switch

Add more debugging options to Switch using SwitchDebounce

* Fix DS3231 driver

Fix DS3231 driver breaking function chain (arendst#4759)

* Disable unused feature

* Revert "Disable unused feature"

This reverts commit 8fe61f6.

* Add test for result usage

* Add tests for result
wienerdogracing added a commit to wienerdogracing/Sonoff-Tasmota that referenced this issue Dec 31, 2018
* PS_16_DZ: GPIO13 => LED1

* PS_16_DZ: cleanup code

* Add Command CalcRes

* Update settings.ino

* Update decode-config.py

* Add SetOption59 info

Add SetOption59 info

* decode-config.py: add 6.3.0.11 to .14 settings

* Add dynamic buffer space

Make serial buffer space reservation dynamic

* Add dynamic buffer space

Add dynamic buffer space

* Fix dynamic buffer handling

Fix dynamic buffer handling

* Move static to dynamic buffers

 * Add support for SM Smart Wifi Dimmer PS-16-DZ (arendst#4465)
 * Move some static (serial) buffers to dynamic buffers

* Prep for Software SPI

Prep for Software SPI used by some displays

* PS_16_DZ: only update brightness if it actually changed

* PS_16_DZ: reduce buffer-size and actually check for overflow

* PS_16_DZ: optimize for size

* PS_16_DZ: further optimization

* PS_16_DZ: leave space for trailing 0-byte

* Hass: Restart if topic is changed

* PS_16_DZ: cleanup

* Fix possible overflow situation

Fix possible overflow situation

* Small improvements to Hass MQTT discovery

* Add support for Teckin US

Add support for Teckin US Wifi Smart Switch with Energy Monitoring (arendst#4481)

* Update display and epaper drivers

Update display and epaper drivers

* switch to using NewPing lib directly for sr04
add NewPing-1.9.1 lib

* Housekeeping

* Upd settings.ino - set sleep=0 when SetOption36>0

Update settings.ino - set sleep=0 when SetOption36>0

* Prevent sleep and SetOption36 being used concurrently

Prevent sleep and SetOption36 being used concurrently

* Fix sleep->SetOption36 transition

* Update fr-FR.h

Synced with changes since  v6.2.1.7

* Merge sleep command

* Bump version to 0x0603000F

Bump version to 0x0603000F to make sure new sleep command takes effect on 50 as default for upgrades where sleep is < 50.

* Update support_wifi.ino

* 6.3.0.15 Update dynamic sleep

6.3.0.15 20181201
 * Removed command SetOption36 (arendst#4497)
 * Add command SetOption60 0/1 to select dynamic sleep (0) or sleep (1) (arendst#4497)

* Update with dynamic sleep flag

* Added Support for ButtonN and SwitchN

* RULES: Added BREAK as an alternative ENDON

RULES: Added BREAK as an alternative ENDON that will stop the execution of the following rules.

If a rule that ends with BREAK, is triggered, then the following rules of that set will not be executed. This is useful for cases like: arendst#4477

* Update xsns_22_sr04.ino

* RULES: Added BREAK as an alternative ENDON

* Delete duplicated min and max functions

* Update README.md

* Update _changelog.ino

* Further improve Hass auto discovery

* Add dummy soft_spi_flg to satisfy compiler

@arendst Just adding this, for now, to satisfy the compiler until you get time to merge the rest of the Software SPI support.

* decode-config.py: add new settings

- add 6.3.0.15 setting change
- adapt 6.3.0.13 setting change

* Add GPIO2 for Sonoff Basic Template

Add GPIO2 for Sonoff Basic Template

* Add support for GPIO02 for newer Sonoff Basic

Add support for GPIO02 for newer Sonoff Basic

* Fix Compilation issue with STAGE Core

Now the Stage core has the the same STR macro defined in sonoff.h.

* Create RF-Bridge-EFM8BB1-20181127.hex

ignore RF pulses < 100µs, increased uart RX buffer
-> stopp red led flashing

* Announce switches

* Final fix compile error (arendst#4509)

Final fix soft_spi_flg compile error (arendst#4509)

* Fix logic for ON/OFF vs TOGGLE

* Initial translation to Swedish

* Added Key to select Swedish Translation

* Added Swedish to Precompiled bins

* Added missing "

* Matched the order of days with Tasmota Timers

* Update platformio.ini

Support for enable / disable exceptions code in firmware for esp8266 core 2.5.0 (stage) or up

* localization for Polish - KNX, timers, etc.

* Add Domoticz Selector for Fanspeed

Add support for iFan02 Fanspeed in Domoticz using a selector (arendst#4517)

* Update sonoff.ino

* 6.3.0.16 - Bump version

6.3.0.16 20181201
 * Add support for iFan02 Fanspeed in Domoticz using a selector (arendst#4517)
 * Add Announce Switches to MQTT Discovery (arendst#4531)

* Fix Domoticz Fanspeed

Fix Domoticz Fanspeed

* MCP230xx - Add Interrupt Retain

* MCP230xx driver - add interrupt retention

MCP230xx driver - add interrupt retention over teleperiod.

* Fix HASS discovery of switches

* Announce RGBW light, add 'White' command

* Enabled forced local operation when button- or switchtopic is set

* Update Hass discovery

* v2.1.0012
decode-config.py: add new settings

- add 6.3.0.16 setting change

* decode-config.py: add new settings

- add 6.3.0.16 setting change

* Fix reversed logic when announcing buttons / switches

* add DMP mode to MPU-6050

* fix compile issue on ESP8266

* Clean and shrink lights

Clean and shrink lights

* Add support for device registry

* Update my_user_config.h

* Fix Warning in Platformio if building MPU and KNX together

* USE_MPU6050_DMP moved to my_user_config.h

* USE_MPU6050_DMP moved to my_user_config.h

* Corrected Domoticz Temp published from MPU6050

* decode-config.py: add new settings

- add SetOption61 from PR arendst#4562

* Update my_user_config.h

* Fix language file

Fix language file

* 6.3.0.17 Add features

6.3.0.17 20181211
 * Add support for TheoV2 sensors as documented on https://sidweb.nl
 * Add support for SDM220 (arendst#3610)
 * Enhance support for MPU6050 using DMP (arendst#4581)

* add manzuko "power strip"

* Add more support

 * Add support for decoding Theo V2 sensors as documented on https://sidweb.nl using 434MHz RF sensor receiver
 * Add support for decoding Alecto V2 sensors like ACH2010, WS3000 and DKW2012 using 868MHz RF sensor receiver
 * Add support for Manzoku Power Strip (arendst#4590)

* Updated Spanish Translation

* Update de-DE.h

* More tweak of Hass switch/button

* Update fr-FR.h

Added SDM220  new strings

* Update fr-FR.h

SDM220 strings  reworked to fit in the space available

* initial work on range-support

* mqtt messages updated

* Publish state message when changing effect

* decode-config.py: Fix `@v` filename template (arendst#4609)

- fix restore filename auto extension

* add debug code to show final command sequence

* correcting memcpy calls

* Add TheoV2 sensor source

Add TheoV2 sensor source and information used with Rf Sensor

* Add LwIP 2 no features (Low Flash)

* Fix ArduinoOTA for Core 2.5.0 (fix is backwards compatible)

arendst#4619

* Fix ArduinoOTA for Core 2.5.0

Fix ArduinoOTA for Core 2.5.0

* Fix HomeAssistant Temp Sensor AutoDiscovery

arendst#4627

* New 2.5.0-2 toolchain does not like uncast bitwise

The new toolchain (2.5.0-2) used from core 2.5.0 does not want bitwise operations to be performed on non-integer variables so we cast the double used in send_2byte_float() to a (long) as it should be.

* Fix NewPing-1.9.1 library.properties

Fix NewPing-1.9.1 library.properties to avoid compiler warning about possibly not supporting ESP8266 whereas we know now that it does. This causes the compiler warning (which may alarm some users unnecessarily) that NewPing claims to run on avr and stm32.

* Updates for release 6.4.0

Updates for release 6.4.0

* Prep for release

Prep for release

* Updates for release 6.4.0

Updates for release 6.4.0

* Updates for release 6.4.0

Updates for release 6.4.0

* Updates for release 6.4.0

Updates for release 6.4.0

* Prep for release

Prep for release

* Updates for release 6.4.0

Updates for release 6.4.0

* Updates for release 6.4.0

Updates for release 6.4.0

* Prep for merge

* 6.4.0.1 New dev release

* Removing duplicate entrys

Options for core 2.5.0 where duplicated

* Update README.md

* Create boards.txt

* Create platform.txt

* No exceptions

* it-IT language updated

* option for firmware directory added

* Ease selecting core versions

Ease selecting core versions by grouping core parameters together. Select core version in group [core_active]

* webserver: swap index and name in module configuration

* Tune driver RF Sensor

- Free memory when driver RF Sensor is compiled but not used.
- Fix possible buffer overflow exceptions
- Add rule and hardware info to source

* introduce new api-call for dimmer-devices

* SerialLog: output CR + LF instead of just LF

* Update linker files

Update linker files to released linker files for coe 2.4.2 and up

* Add sk-SK language

* Update bg-BG.h

* Add support for AZ-Instrument 7798 CO2 meter/datalogger.

* Add support for AZ-Instrument 7798 CO2 meter/datalogger.

* Revert platformio.ini and my_user_config to original version,
adding line for new sensor but leaving it commented out.

* Include changes from original into sonoff/language/bg-BG.h

* Updated from originals: platformio.ini, sonoff/my_user_config.h.

* Revert to original RELEASENOTES.md.

* Add void to functions without parameters

* Fix temperature conversion

Fix temperature conversion to still use ConvertTemp() even if meter sends the value in F

* Add support for AZ-Instrument 7798 CO2

Add support for AZ-Instrument 7798 CO2 meter/datalogger

* pressure unit of measure reporting

Added a dedicated pressure sensor management to report back as pressure sensor and not fallback as a generic sensor in HA autodiscovery process

* add missing units of measurements for energy

* removed some errors from copy pasting..

* add empty unit of measurement for any sensors

* Added option for checking mqtt tls against root ca

Signed-off-by: Frank Meies <[email protected]>

* Change RAM usage BMP/BME

Change RAM usage BMP/BME I2C sensors

* Update Arduino IDE core 2.5.0 files

Update Arduino IDE core 2.5.0 files

* Fix wifi strongest signal detection

Fix wifi strongest signal detection (arendst#4704)

* 6.4.0.2 Fix possible dtostrf bos

6.4.0.2 20181221
 * Fix possible dtostrf buffer overflows by increasing buffers

* Still need patched PWM for core 2.5.0

Still need patched PWM for core 2.5.0

* Check for core version when enabling tls ca cert

Signed-off-by: Frank Meies <[email protected]>

* Check for core version when enabling tls ca cert, changed names of defines

Signed-off-by: Frank Meies <[email protected]>

* Remove SetOption55 (hass_short_discovery_msg)

* Rename HASS discovery string constants

* Remove Alexa message "this value is outside the range of the device"

* 6.4.0.3 Hass and Alexa fixes

6.4.0.3 20181222
 * Change Hass discovery to short MQTT messages as used by Hass 0.81 and up (arendst#4711)
 * Change FallbackTopic detection (arendst#4706)
 * Add define WIFI_SOFT_AP_CHANNEL in my_user_config.h to set Soft Access Point Channel number between 1 and 13 as used by Wifi Manager web GUI (arendst#4673)
 * Fix Alexa "this value is outside the range of the device". Needs power cycle and Alexa deletion/discovery cycle. (arendst#3159, arendst#4712)

* Add optional TLS_CA_CERT

Add define USE_MQTT_TLS_CA_CERT for checking MQTT TLS against root ca using Let's Encrypt cert from sonoff_letsencrypt.h - not supported with core 2.3.0 (arendst#4703)

* decode-config.py: adapt settings change

- remove SetOption55 (hass_short_discovery_msg)

* Change FallbackTopic

Change FallbackTopic from cmnd/<mqttclient>/ to cmnd/<mqttclient>_fb/ to discriminate from Topic (arendst#1528)

* PS_16_DZ: fix broken if-statement

* Change MQTT GUI password handling

Change MQTT GUI password handling (arendst#4723)

* Release 6.4.1

* 6.4.1.1 Fix most compiler warnings

6.4.1.1 20181224
 * Fix most compiler warnings

* Fix compiler warning

Fix compiler warning

* Change switch debounce

Change switch input detection by optimizing switch debounce (arendst#4724)

* Add INPUT_PULLUP option for single DS18B20

* Add variable %timestamp% to be used in rules

This PR adds a new variable %timestamp% to be used in a rule to allow the user to include the Time Stamp as Tasmota has for Status, Sensors, etc, for example:

Command:

publish stat/topic/sensor {"Time":"%timestamp%","mysensor":"%var1%"}

Output:

{"Time":"2018-12-27T12:52:57","mysensor":"1"}

(arendst#4734)

* 6.4.1.2 Rewrite Switch driver

6.4.1.2 20181228
 * Change switch driver making it modular and introduce input filter (arendst#4665, arendst#4724)
 * Add define DS18B20_INTERNAL_PULLUP to select internal input pullup when only one DS18B20 sensor is connected eliminating external resistor (arendst#4738)
 * Add variable %timestamp% to rules (arendst#4749)

* Update platformio.ini with stage

Update platformio.ini with latest stage option

* Prep for template tuning

* 6.4.1.3 Change sonoff_template.h

6.4.1.3 20181229
 * Change sonoff_template.h module lay-out by removing non-configurable GPIOs

* Fix Typo in Spanish Translation

* Fix MGC3130/AZ7798 compile error

* Add debugging options to Switch

Add more debugging options to Switch using SwitchDebounce

* Fix DS3231 driver

Fix DS3231 driver breaking function chain (arendst#4759)

* Disable unused feature

* Revert "Disable unused feature"

This reverts commit 8fe61f6.

* Add test for result usage

* Add tests for result
wienerdogracing added a commit to wienerdogracing/Sonoff-Tasmota that referenced this issue Dec 31, 2018
* PS_16_DZ: GPIO13 => LED1

* PS_16_DZ: cleanup code

* Add Command CalcRes

* Update settings.ino

* Update decode-config.py

* Add SetOption59 info

Add SetOption59 info

* decode-config.py: add 6.3.0.11 to .14 settings

* Add dynamic buffer space

Make serial buffer space reservation dynamic

* Add dynamic buffer space

Add dynamic buffer space

* Fix dynamic buffer handling

Fix dynamic buffer handling

* Move static to dynamic buffers

 * Add support for SM Smart Wifi Dimmer PS-16-DZ (arendst#4465)
 * Move some static (serial) buffers to dynamic buffers

* Prep for Software SPI

Prep for Software SPI used by some displays

* PS_16_DZ: only update brightness if it actually changed

* PS_16_DZ: reduce buffer-size and actually check for overflow

* PS_16_DZ: optimize for size

* PS_16_DZ: further optimization

* PS_16_DZ: leave space for trailing 0-byte

* Hass: Restart if topic is changed

* PS_16_DZ: cleanup

* Fix possible overflow situation

Fix possible overflow situation

* Small improvements to Hass MQTT discovery

* Add support for Teckin US

Add support for Teckin US Wifi Smart Switch with Energy Monitoring (arendst#4481)

* Update display and epaper drivers

Update display and epaper drivers

* switch to using NewPing lib directly for sr04
add NewPing-1.9.1 lib

* Housekeeping

* Upd settings.ino - set sleep=0 when SetOption36>0

Update settings.ino - set sleep=0 when SetOption36>0

* Prevent sleep and SetOption36 being used concurrently

Prevent sleep and SetOption36 being used concurrently

* Fix sleep->SetOption36 transition

* Update fr-FR.h

Synced with changes since  v6.2.1.7

* Merge sleep command

* Bump version to 0x0603000F

Bump version to 0x0603000F to make sure new sleep command takes effect on 50 as default for upgrades where sleep is < 50.

* Update support_wifi.ino

* 6.3.0.15 Update dynamic sleep

6.3.0.15 20181201
 * Removed command SetOption36 (arendst#4497)
 * Add command SetOption60 0/1 to select dynamic sleep (0) or sleep (1) (arendst#4497)

* Update with dynamic sleep flag

* Added Support for ButtonN and SwitchN

* RULES: Added BREAK as an alternative ENDON

RULES: Added BREAK as an alternative ENDON that will stop the execution of the following rules.

If a rule that ends with BREAK, is triggered, then the following rules of that set will not be executed. This is useful for cases like: arendst#4477

* Update xsns_22_sr04.ino

* RULES: Added BREAK as an alternative ENDON

* Delete duplicated min and max functions

* Update README.md

* Update _changelog.ino

* Further improve Hass auto discovery

* Add dummy soft_spi_flg to satisfy compiler

@arendst Just adding this, for now, to satisfy the compiler until you get time to merge the rest of the Software SPI support.

* decode-config.py: add new settings

- add 6.3.0.15 setting change
- adapt 6.3.0.13 setting change

* Add GPIO2 for Sonoff Basic Template

Add GPIO2 for Sonoff Basic Template

* Add support for GPIO02 for newer Sonoff Basic

Add support for GPIO02 for newer Sonoff Basic

* Fix Compilation issue with STAGE Core

Now the Stage core has the the same STR macro defined in sonoff.h.

* Create RF-Bridge-EFM8BB1-20181127.hex

ignore RF pulses < 100µs, increased uart RX buffer
-> stopp red led flashing

* Announce switches

* Final fix compile error (arendst#4509)

Final fix soft_spi_flg compile error (arendst#4509)

* Fix logic for ON/OFF vs TOGGLE

* Initial translation to Swedish

* Added Key to select Swedish Translation

* Added Swedish to Precompiled bins

* Added missing "

* Matched the order of days with Tasmota Timers

* Update platformio.ini

Support for enable / disable exceptions code in firmware for esp8266 core 2.5.0 (stage) or up

* localization for Polish - KNX, timers, etc.

* Add Domoticz Selector for Fanspeed

Add support for iFan02 Fanspeed in Domoticz using a selector (arendst#4517)

* Update sonoff.ino

* 6.3.0.16 - Bump version

6.3.0.16 20181201
 * Add support for iFan02 Fanspeed in Domoticz using a selector (arendst#4517)
 * Add Announce Switches to MQTT Discovery (arendst#4531)

* Fix Domoticz Fanspeed

Fix Domoticz Fanspeed

* MCP230xx - Add Interrupt Retain

* MCP230xx driver - add interrupt retention

MCP230xx driver - add interrupt retention over teleperiod.

* Fix HASS discovery of switches

* Announce RGBW light, add 'White' command

* Enabled forced local operation when button- or switchtopic is set

* Update Hass discovery

* v2.1.0012
decode-config.py: add new settings

- add 6.3.0.16 setting change

* decode-config.py: add new settings

- add 6.3.0.16 setting change

* Fix reversed logic when announcing buttons / switches

* add DMP mode to MPU-6050

* fix compile issue on ESP8266

* Clean and shrink lights

Clean and shrink lights

* Add support for device registry

* Update my_user_config.h

* Fix Warning in Platformio if building MPU and KNX together

* USE_MPU6050_DMP moved to my_user_config.h

* USE_MPU6050_DMP moved to my_user_config.h

* Corrected Domoticz Temp published from MPU6050

* decode-config.py: add new settings

- add SetOption61 from PR arendst#4562

* Update my_user_config.h

* Fix language file

Fix language file

* 6.3.0.17 Add features

6.3.0.17 20181211
 * Add support for TheoV2 sensors as documented on https://sidweb.nl
 * Add support for SDM220 (arendst#3610)
 * Enhance support for MPU6050 using DMP (arendst#4581)

* add manzuko "power strip"

* Add more support

 * Add support for decoding Theo V2 sensors as documented on https://sidweb.nl using 434MHz RF sensor receiver
 * Add support for decoding Alecto V2 sensors like ACH2010, WS3000 and DKW2012 using 868MHz RF sensor receiver
 * Add support for Manzoku Power Strip (arendst#4590)

* Updated Spanish Translation

* Update de-DE.h

* More tweak of Hass switch/button

* Update fr-FR.h

Added SDM220  new strings

* Update fr-FR.h

SDM220 strings  reworked to fit in the space available

* initial work on range-support

* mqtt messages updated

* Publish state message when changing effect

* decode-config.py: Fix `@v` filename template (arendst#4609)

- fix restore filename auto extension

* add debug code to show final command sequence

* correcting memcpy calls

* Add TheoV2 sensor source

Add TheoV2 sensor source and information used with Rf Sensor

* Add LwIP 2 no features (Low Flash)

* Fix ArduinoOTA for Core 2.5.0 (fix is backwards compatible)

arendst#4619

* Fix ArduinoOTA for Core 2.5.0

Fix ArduinoOTA for Core 2.5.0

* Fix HomeAssistant Temp Sensor AutoDiscovery

arendst#4627

* New 2.5.0-2 toolchain does not like uncast bitwise

The new toolchain (2.5.0-2) used from core 2.5.0 does not want bitwise operations to be performed on non-integer variables so we cast the double used in send_2byte_float() to a (long) as it should be.

* Fix NewPing-1.9.1 library.properties

Fix NewPing-1.9.1 library.properties to avoid compiler warning about possibly not supporting ESP8266 whereas we know now that it does. This causes the compiler warning (which may alarm some users unnecessarily) that NewPing claims to run on avr and stm32.

* Updates for release 6.4.0

Updates for release 6.4.0

* Prep for release

Prep for release

* Updates for release 6.4.0

Updates for release 6.4.0

* Updates for release 6.4.0

Updates for release 6.4.0

* Updates for release 6.4.0

Updates for release 6.4.0

* Prep for release

Prep for release

* Updates for release 6.4.0

Updates for release 6.4.0

* Updates for release 6.4.0

Updates for release 6.4.0

* Prep for merge

* 6.4.0.1 New dev release

* Removing duplicate entrys

Options for core 2.5.0 where duplicated

* Update README.md

* Create boards.txt

* Create platform.txt

* No exceptions

* it-IT language updated

* option for firmware directory added

* Ease selecting core versions

Ease selecting core versions by grouping core parameters together. Select core version in group [core_active]

* webserver: swap index and name in module configuration

* Tune driver RF Sensor

- Free memory when driver RF Sensor is compiled but not used.
- Fix possible buffer overflow exceptions
- Add rule and hardware info to source

* introduce new api-call for dimmer-devices

* SerialLog: output CR + LF instead of just LF

* Update linker files

Update linker files to released linker files for coe 2.4.2 and up

* Add sk-SK language

* Update bg-BG.h

* Add support for AZ-Instrument 7798 CO2 meter/datalogger.

* Add support for AZ-Instrument 7798 CO2 meter/datalogger.

* Revert platformio.ini and my_user_config to original version,
adding line for new sensor but leaving it commented out.

* Include changes from original into sonoff/language/bg-BG.h

* Updated from originals: platformio.ini, sonoff/my_user_config.h.

* Revert to original RELEASENOTES.md.

* Add void to functions without parameters

* Fix temperature conversion

Fix temperature conversion to still use ConvertTemp() even if meter sends the value in F

* Add support for AZ-Instrument 7798 CO2

Add support for AZ-Instrument 7798 CO2 meter/datalogger

* pressure unit of measure reporting

Added a dedicated pressure sensor management to report back as pressure sensor and not fallback as a generic sensor in HA autodiscovery process

* add missing units of measurements for energy

* removed some errors from copy pasting..

* add empty unit of measurement for any sensors

* Added option for checking mqtt tls against root ca

Signed-off-by: Frank Meies <[email protected]>

* Change RAM usage BMP/BME

Change RAM usage BMP/BME I2C sensors

* Update Arduino IDE core 2.5.0 files

Update Arduino IDE core 2.5.0 files

* Fix wifi strongest signal detection

Fix wifi strongest signal detection (arendst#4704)

* 6.4.0.2 Fix possible dtostrf bos

6.4.0.2 20181221
 * Fix possible dtostrf buffer overflows by increasing buffers

* Still need patched PWM for core 2.5.0

Still need patched PWM for core 2.5.0

* Check for core version when enabling tls ca cert

Signed-off-by: Frank Meies <[email protected]>

* Check for core version when enabling tls ca cert, changed names of defines

Signed-off-by: Frank Meies <[email protected]>

* Remove SetOption55 (hass_short_discovery_msg)

* Rename HASS discovery string constants

* Remove Alexa message "this value is outside the range of the device"

* 6.4.0.3 Hass and Alexa fixes

6.4.0.3 20181222
 * Change Hass discovery to short MQTT messages as used by Hass 0.81 and up (arendst#4711)
 * Change FallbackTopic detection (arendst#4706)
 * Add define WIFI_SOFT_AP_CHANNEL in my_user_config.h to set Soft Access Point Channel number between 1 and 13 as used by Wifi Manager web GUI (arendst#4673)
 * Fix Alexa "this value is outside the range of the device". Needs power cycle and Alexa deletion/discovery cycle. (arendst#3159, arendst#4712)

* Add optional TLS_CA_CERT

Add define USE_MQTT_TLS_CA_CERT for checking MQTT TLS against root ca using Let's Encrypt cert from sonoff_letsencrypt.h - not supported with core 2.3.0 (arendst#4703)

* decode-config.py: adapt settings change

- remove SetOption55 (hass_short_discovery_msg)

* Change FallbackTopic

Change FallbackTopic from cmnd/<mqttclient>/ to cmnd/<mqttclient>_fb/ to discriminate from Topic (arendst#1528)

* PS_16_DZ: fix broken if-statement

* Change MQTT GUI password handling

Change MQTT GUI password handling (arendst#4723)

* Release 6.4.1

* 6.4.1.1 Fix most compiler warnings

6.4.1.1 20181224
 * Fix most compiler warnings

* Fix compiler warning

Fix compiler warning

* Change switch debounce

Change switch input detection by optimizing switch debounce (arendst#4724)

* Add INPUT_PULLUP option for single DS18B20

* Add variable %timestamp% to be used in rules

This PR adds a new variable %timestamp% to be used in a rule to allow the user to include the Time Stamp as Tasmota has for Status, Sensors, etc, for example:

Command:

publish stat/topic/sensor {"Time":"%timestamp%","mysensor":"%var1%"}

Output:

{"Time":"2018-12-27T12:52:57","mysensor":"1"}

(arendst#4734)

* 6.4.1.2 Rewrite Switch driver

6.4.1.2 20181228
 * Change switch driver making it modular and introduce input filter (arendst#4665, arendst#4724)
 * Add define DS18B20_INTERNAL_PULLUP to select internal input pullup when only one DS18B20 sensor is connected eliminating external resistor (arendst#4738)
 * Add variable %timestamp% to rules (arendst#4749)

* Update platformio.ini with stage

Update platformio.ini with latest stage option

* Prep for template tuning

* 6.4.1.3 Change sonoff_template.h

6.4.1.3 20181229
 * Change sonoff_template.h module lay-out by removing non-configurable GPIOs

* Fix Typo in Spanish Translation

* Fix MGC3130/AZ7798 compile error

* Add debugging options to Switch

Add more debugging options to Switch using SwitchDebounce

* Fix DS3231 driver

Fix DS3231 driver breaking function chain (arendst#4759)

* Disable unused feature

* Revert "Disable unused feature"

This reverts commit 8fe61f6.

* Add test for result usage

* Add tests for result
wienerdogracing added a commit to wienerdogracing/Sonoff-Tasmota that referenced this issue Dec 31, 2018
* Release 6.2.0

Release 6.2.0

* Prep release

* Prep release

* Visual Studio Code adds

* Added Timeprop and PID

* Merge to 6.4.1 (#1) (#2)

* PS_16_DZ: GPIO13 => LED1

* PS_16_DZ: cleanup code

* Add Command CalcRes

* Update settings.ino

* Update decode-config.py

* Add SetOption59 info

Add SetOption59 info

* decode-config.py: add 6.3.0.11 to .14 settings

* Add dynamic buffer space

Make serial buffer space reservation dynamic

* Add dynamic buffer space

Add dynamic buffer space

* Fix dynamic buffer handling

Fix dynamic buffer handling

* Move static to dynamic buffers

 * Add support for SM Smart Wifi Dimmer PS-16-DZ (arendst#4465)
 * Move some static (serial) buffers to dynamic buffers

* Prep for Software SPI

Prep for Software SPI used by some displays

* PS_16_DZ: only update brightness if it actually changed

* PS_16_DZ: reduce buffer-size and actually check for overflow

* PS_16_DZ: optimize for size

* PS_16_DZ: further optimization

* PS_16_DZ: leave space for trailing 0-byte

* Hass: Restart if topic is changed

* PS_16_DZ: cleanup

* Fix possible overflow situation

Fix possible overflow situation

* Small improvements to Hass MQTT discovery

* Add support for Teckin US

Add support for Teckin US Wifi Smart Switch with Energy Monitoring (arendst#4481)

* Update display and epaper drivers

Update display and epaper drivers

* switch to using NewPing lib directly for sr04
add NewPing-1.9.1 lib

* Housekeeping

* Upd settings.ino - set sleep=0 when SetOption36>0

Update settings.ino - set sleep=0 when SetOption36>0

* Prevent sleep and SetOption36 being used concurrently

Prevent sleep and SetOption36 being used concurrently

* Fix sleep->SetOption36 transition

* Update fr-FR.h

Synced with changes since  v6.2.1.7

* Merge sleep command

* Bump version to 0x0603000F

Bump version to 0x0603000F to make sure new sleep command takes effect on 50 as default for upgrades where sleep is < 50.

* Update support_wifi.ino

* 6.3.0.15 Update dynamic sleep

6.3.0.15 20181201
 * Removed command SetOption36 (arendst#4497)
 * Add command SetOption60 0/1 to select dynamic sleep (0) or sleep (1) (arendst#4497)

* Update with dynamic sleep flag

* Added Support for ButtonN and SwitchN

* RULES: Added BREAK as an alternative ENDON

RULES: Added BREAK as an alternative ENDON that will stop the execution of the following rules.

If a rule that ends with BREAK, is triggered, then the following rules of that set will not be executed. This is useful for cases like: arendst#4477

* Update xsns_22_sr04.ino

* RULES: Added BREAK as an alternative ENDON

* Delete duplicated min and max functions

* Update README.md

* Update _changelog.ino

* Further improve Hass auto discovery

* Add dummy soft_spi_flg to satisfy compiler

@arendst Just adding this, for now, to satisfy the compiler until you get time to merge the rest of the Software SPI support.

* decode-config.py: add new settings

- add 6.3.0.15 setting change
- adapt 6.3.0.13 setting change

* Add GPIO2 for Sonoff Basic Template

Add GPIO2 for Sonoff Basic Template

* Add support for GPIO02 for newer Sonoff Basic

Add support for GPIO02 for newer Sonoff Basic

* Fix Compilation issue with STAGE Core

Now the Stage core has the the same STR macro defined in sonoff.h.

* Create RF-Bridge-EFM8BB1-20181127.hex

ignore RF pulses < 100µs, increased uart RX buffer
-> stopp red led flashing

* Announce switches

* Final fix compile error (arendst#4509)

Final fix soft_spi_flg compile error (arendst#4509)

* Fix logic for ON/OFF vs TOGGLE

* Initial translation to Swedish

* Added Key to select Swedish Translation

* Added Swedish to Precompiled bins

* Added missing "

* Matched the order of days with Tasmota Timers

* Update platformio.ini

Support for enable / disable exceptions code in firmware for esp8266 core 2.5.0 (stage) or up

* localization for Polish - KNX, timers, etc.

* Add Domoticz Selector for Fanspeed

Add support for iFan02 Fanspeed in Domoticz using a selector (arendst#4517)

* Update sonoff.ino

* 6.3.0.16 - Bump version

6.3.0.16 20181201
 * Add support for iFan02 Fanspeed in Domoticz using a selector (arendst#4517)
 * Add Announce Switches to MQTT Discovery (arendst#4531)

* Fix Domoticz Fanspeed

Fix Domoticz Fanspeed

* MCP230xx - Add Interrupt Retain

* MCP230xx driver - add interrupt retention

MCP230xx driver - add interrupt retention over teleperiod.

* Fix HASS discovery of switches

* Announce RGBW light, add 'White' command

* Enabled forced local operation when button- or switchtopic is set

* Update Hass discovery

* v2.1.0012
decode-config.py: add new settings

- add 6.3.0.16 setting change

* decode-config.py: add new settings

- add 6.3.0.16 setting change

* Fix reversed logic when announcing buttons / switches

* add DMP mode to MPU-6050

* fix compile issue on ESP8266

* Clean and shrink lights

Clean and shrink lights

* Add support for device registry

* Update my_user_config.h

* Fix Warning in Platformio if building MPU and KNX together

* USE_MPU6050_DMP moved to my_user_config.h

* USE_MPU6050_DMP moved to my_user_config.h

* Corrected Domoticz Temp published from MPU6050

* decode-config.py: add new settings

- add SetOption61 from PR arendst#4562

* Update my_user_config.h

* Fix language file

Fix language file

* 6.3.0.17 Add features

6.3.0.17 20181211
 * Add support for TheoV2 sensors as documented on https://sidweb.nl
 * Add support for SDM220 (arendst#3610)
 * Enhance support for MPU6050 using DMP (arendst#4581)

* add manzuko "power strip"

* Add more support

 * Add support for decoding Theo V2 sensors as documented on https://sidweb.nl using 434MHz RF sensor receiver
 * Add support for decoding Alecto V2 sensors like ACH2010, WS3000 and DKW2012 using 868MHz RF sensor receiver
 * Add support for Manzoku Power Strip (arendst#4590)

* Updated Spanish Translation

* Update de-DE.h

* More tweak of Hass switch/button

* Update fr-FR.h

Added SDM220  new strings

* Update fr-FR.h

SDM220 strings  reworked to fit in the space available

* initial work on range-support

* mqtt messages updated

* Publish state message when changing effect

* decode-config.py: Fix `@v` filename template (arendst#4609)

- fix restore filename auto extension

* add debug code to show final command sequence

* correcting memcpy calls

* Add TheoV2 sensor source

Add TheoV2 sensor source and information used with Rf Sensor

* Add LwIP 2 no features (Low Flash)

* Fix ArduinoOTA for Core 2.5.0 (fix is backwards compatible)

arendst#4619

* Fix ArduinoOTA for Core 2.5.0

Fix ArduinoOTA for Core 2.5.0

* Fix HomeAssistant Temp Sensor AutoDiscovery

arendst#4627

* New 2.5.0-2 toolchain does not like uncast bitwise

The new toolchain (2.5.0-2) used from core 2.5.0 does not want bitwise operations to be performed on non-integer variables so we cast the double used in send_2byte_float() to a (long) as it should be.

* Fix NewPing-1.9.1 library.properties

Fix NewPing-1.9.1 library.properties to avoid compiler warning about possibly not supporting ESP8266 whereas we know now that it does. This causes the compiler warning (which may alarm some users unnecessarily) that NewPing claims to run on avr and stm32.

* Updates for release 6.4.0

Updates for release 6.4.0

* Prep for release

Prep for release

* Updates for release 6.4.0

Updates for release 6.4.0

* Updates for release 6.4.0

Updates for release 6.4.0

* Updates for release 6.4.0

Updates for release 6.4.0

* Prep for release

Prep for release

* Updates for release 6.4.0

Updates for release 6.4.0

* Updates for release 6.4.0

Updates for release 6.4.0

* Prep for merge

* 6.4.0.1 New dev release

* Removing duplicate entrys

Options for core 2.5.0 where duplicated

* Update README.md

* Create boards.txt

* Create platform.txt

* No exceptions

* it-IT language updated

* option for firmware directory added

* Ease selecting core versions

Ease selecting core versions by grouping core parameters together. Select core version in group [core_active]

* webserver: swap index and name in module configuration

* Tune driver RF Sensor

- Free memory when driver RF Sensor is compiled but not used.
- Fix possible buffer overflow exceptions
- Add rule and hardware info to source

* introduce new api-call for dimmer-devices

* SerialLog: output CR + LF instead of just LF

* Update linker files

Update linker files to released linker files for coe 2.4.2 and up

* Add sk-SK language

* Update bg-BG.h

* Add support for AZ-Instrument 7798 CO2 meter/datalogger.

* Add support for AZ-Instrument 7798 CO2 meter/datalogger.

* Revert platformio.ini and my_user_config to original version,
adding line for new sensor but leaving it commented out.

* Include changes from original into sonoff/language/bg-BG.h

* Updated from originals: platformio.ini, sonoff/my_user_config.h.

* Revert to original RELEASENOTES.md.

* Add void to functions without parameters

* Fix temperature conversion

Fix temperature conversion to still use ConvertTemp() even if meter sends the value in F

* Add support for AZ-Instrument 7798 CO2

Add support for AZ-Instrument 7798 CO2 meter/datalogger

* pressure unit of measure reporting

Added a dedicated pressure sensor management to report back as pressure sensor and not fallback as a generic sensor in HA autodiscovery process

* add missing units of measurements for energy

* removed some errors from copy pasting..

* add empty unit of measurement for any sensors

* Added option for checking mqtt tls against root ca

Signed-off-by: Frank Meies <[email protected]>

* Change RAM usage BMP/BME

Change RAM usage BMP/BME I2C sensors

* Update Arduino IDE core 2.5.0 files

Update Arduino IDE core 2.5.0 files

* Fix wifi strongest signal detection

Fix wifi strongest signal detection (arendst#4704)

* 6.4.0.2 Fix possible dtostrf bos

6.4.0.2 20181221
 * Fix possible dtostrf buffer overflows by increasing buffers

* Still need patched PWM for core 2.5.0

Still need patched PWM for core 2.5.0

* Check for core version when enabling tls ca cert

Signed-off-by: Frank Meies <[email protected]>

* Check for core version when enabling tls ca cert, changed names of defines

Signed-off-by: Frank Meies <[email protected]>

* Remove SetOption55 (hass_short_discovery_msg)

* Rename HASS discovery string constants

* Remove Alexa message "this value is outside the range of the device"

* 6.4.0.3 Hass and Alexa fixes

6.4.0.3 20181222
 * Change Hass discovery to short MQTT messages as used by Hass 0.81 and up (arendst#4711)
 * Change FallbackTopic detection (arendst#4706)
 * Add define WIFI_SOFT_AP_CHANNEL in my_user_config.h to set Soft Access Point Channel number between 1 and 13 as used by Wifi Manager web GUI (arendst#4673)
 * Fix Alexa "this value is outside the range of the device". Needs power cycle and Alexa deletion/discovery cycle. (arendst#3159, arendst#4712)

* Add optional TLS_CA_CERT

Add define USE_MQTT_TLS_CA_CERT for checking MQTT TLS against root ca using Let's Encrypt cert from sonoff_letsencrypt.h - not supported with core 2.3.0 (arendst#4703)

* decode-config.py: adapt settings change

- remove SetOption55 (hass_short_discovery_msg)

* Change FallbackTopic

Change FallbackTopic from cmnd/<mqttclient>/ to cmnd/<mqttclient>_fb/ to discriminate from Topic (arendst#1528)

* PS_16_DZ: fix broken if-statement

* Change MQTT GUI password handling

Change MQTT GUI password handling (arendst#4723)

* Release 6.4.1

* 6.4.1.1 Fix most compiler warnings

6.4.1.1 20181224
 * Fix most compiler warnings

* Fix compiler warning

Fix compiler warning

* Change switch debounce

Change switch input detection by optimizing switch debounce (arendst#4724)

* Add INPUT_PULLUP option for single DS18B20

* Add variable %timestamp% to be used in rules

This PR adds a new variable %timestamp% to be used in a rule to allow the user to include the Time Stamp as Tasmota has for Status, Sensors, etc, for example:

Command:

publish stat/topic/sensor {"Time":"%timestamp%","mysensor":"%var1%"}

Output:

{"Time":"2018-12-27T12:52:57","mysensor":"1"}

(arendst#4734)

* 6.4.1.2 Rewrite Switch driver

6.4.1.2 20181228
 * Change switch driver making it modular and introduce input filter (arendst#4665, arendst#4724)
 * Add define DS18B20_INTERNAL_PULLUP to select internal input pullup when only one DS18B20 sensor is connected eliminating external resistor (arendst#4738)
 * Add variable %timestamp% to rules (arendst#4749)

* Update platformio.ini with stage

Update platformio.ini with latest stage option

* Prep for template tuning

* 6.4.1.3 Change sonoff_template.h

6.4.1.3 20181229
 * Change sonoff_template.h module lay-out by removing non-configurable GPIOs

* Fix Typo in Spanish Translation

* Fix MGC3130/AZ7798 compile error

* Add debugging options to Switch

Add more debugging options to Switch using SwitchDebounce

* Fix DS3231 driver

Fix DS3231 driver breaking function chain (arendst#4759)

* Disable unused feature

* Revert "Disable unused feature"

This reverts commit 8fe61f6.

* Add test for result usage

* Add tests for result
gemu2015 pushed a commit to gemu2015/Sonoff-Tasmota that referenced this issue Jan 27, 2019
6.4.0.3 20181222
 * Change Hass discovery to short MQTT messages as used by Hass 0.81 and up (arendst#4711)
 * Change FallbackTopic detection (arendst#4706)
 * Add define WIFI_SOFT_AP_CHANNEL in my_user_config.h to set Soft Access Point Channel number between 1 and 13 as used by Wifi Manager web GUI (arendst#4673)
 * Fix Alexa "this value is outside the range of the device". Needs power cycle and Alexa deletion/discovery cycle. (arendst#3159, arendst#4712)
@BostonMikeGetHub
Copy link

BostonMikeGetHub commented Feb 12, 2019

I’m a newbie with Hass.io. I’m been trying to get mqtt discovery working and I found this thread.
Anyway, I using 6.4.1(sonoff) and I notice the order of the full topic and the fallback topic are different and it always seems to be using the fallback topic. Is this a reason for my mqtt not discovery working?
untitled

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Type - Confirmated Bug fixed Result - The work on the issue has ended
Projects
None yet
Development

No branches or pull requests

5 participants