Commit Graph

3031 Commits

Author SHA1 Message Date
Laurent dd27ade7ef Rules: Trigger Event with MQTT Subscriptions
Support subscribe/unsubscribe MQTT topics and trigger specified event with the subscribed MQTT topic.
You can subscribe a MQTT topic and assign an event name. Once we received subscribed MQTT message, an event will be automatically triggered. So you can set up a rule with "ON EVENT#<event_name> DO ..." to do whatever you want based on this MQTT message. The payload is passed as a parameter once the event been triggered. If the payload is in JSON format, you are able to get the value of specified key as parameter.
For example, if you have a Tasmota based thermostat and multiple temperature sensors in different place, usually you have to set up a centre home automation system like Domoticz to control the thermostat. Right now, with this new feature, you can write a rule to do this.
Two new commands in Rules:
1. Subscribe
Subscribe a MQTT topic (with or without key) and assign an event name to it.
Command format:
	Subscribe [<event_name>, <topic> [, <key>]]
		This command will subscribe a <topic> and give it an event name <event_name>.
		The optional parameter <key> is for parse the specified key/value from MQTT message
			payload with JSON format.
		In order to parse value from two level JSON data, you can use one dot (".") to split the key into two section.
		Subscribe command without any parameter will list all topics currently subscribed.
2. Unsubscribe
Unsubscribe specified MQTT event.
Command format:
	Unsubscribe [<event_name>]
		Unsubscribe a topic subscribed by specify the event name.
		If no event specified, Unsubscribe all topics subscribed.
Examples:
1.
	Subscribe BkLight, Tasmota/BackyardLight/stat/POWER
		And define a rule like:
	Rule1 on event#BkLight=ON do ruletimer4 60 endon
2.
	Subscribe DnTemp, Tasmota/RoomSensor1/stat/SENSOR, DS18B20.Temperature
		Define a rule to deal with the MQTT message like {"Time":"2017-02-16T10:13:52", "DS18B20":{"Temperature":20.6}}
	Rule1 ON EVENT#DnTemp>=21 DO ... ENDON
2019-02-23 22:33:09 -05:00
Laurent 3298048c60 Update support_rtc.ino 2019-02-23 17:41:06 -05:00
Laurent 2cc15a8c34 Merge remote-tracking branch 'upstream/development' into development 2019-02-22 22:53:01 -05:00
Theo Arends 3ce36defe2
Merge pull request #5202 from jrw77/development
Correct rounding for ws2812 clock mode shifting hour when pixel<60
2019-02-22 16:53:29 +01:00
Theo Arends 5b1b93fd03
Merge pull request #5305 from Jason2866/patch-1
Revert to modular build 2.5.0 release
2019-02-22 15:56:33 +01:00
Jörg R. Weimar f0dde50f39 Merge remote-tracking branch 'upstream/development' into development
Merge all recent changes into my branch
2019-02-22 15:29:36 +01:00
Jason2866 2a8e785a8b
Revert to modular build 2.5.0 release 2019-02-22 15:23:37 +01:00
Theo Arends e315be0619 Fix command WebSend
Fix command WebSend when using a port number as regression from 6.4.1.17 (#5304)
2019-02-22 15:19:59 +01:00
Theo Arends d219d1c9b5 Update support.ino
Houskeeping
2019-02-22 12:11:15 +01:00
Theo Arends 49f0b514eb Fix some exceptions and watchdogs
* Fix some exceptions and watchdogs due to lack of stack space - part 2
 * Add command SetOption62 0/1 to disable retain on Button or Swith hold messages (#5299)
 * Add option WifiConfig 7 to allow reset of device in AP mode without admin password (#5297)
2019-02-22 12:04:05 +01:00
Theo Arends 8df6bb76d1
Merge pull request #5297 from netpok/wificonfig-7
WifiConfig 7, a reset only WifiManager for smart bulbs
2019-02-22 11:44:04 +01:00
Theo Arends 70b33ba18a
Merge pull request #5299 from netpok/no-hold-retain
Allow non-retained hold messages while using button or switchretain
2019-02-22 11:36:08 +01:00
netpok 6cbfb0308a Check no hold retain flag on hold action sending 2019-02-21 21:30:30 +01:00
netpok b3adab4097 Add flag for no hold retain 2019-02-21 21:27:52 +01:00
netpok e2bcef16bf Merge remote-tracking branch 'upstream/development' into wificonfig-7 2019-02-21 19:45:34 +01:00
netpok e9396d0ed4 Add missing localization strings 2019-02-21 19:45:21 +01:00
netpok 731154cc9b Handle authentication on reset/restart 2019-02-21 19:45:03 +01:00
Theo Arends c97ea4d917
Merge pull request #5296 from netpok/password-validation
Wifi password validation
2019-02-21 18:47:58 +01:00
netpok 4993d16ecb Implement WifiConfig 7 2019-02-21 17:49:11 +01:00
netpok e035a3253a Add password validation to WebUI 2019-02-21 15:58:37 +01:00
netpok 3c58f5b7b9 Add password validation to password command 2019-02-21 15:57:45 +01:00
Theo Arends 60e8aa6466
Merge pull request #5295 from curzon01/development
decode-config.py: adapt settings
2019-02-21 15:47:47 +01:00
Norbert Richter eb08bb07ee decode-config.py: adapt settings
- remove SetOption62 (no_pullup)
- remove obsolete Tasmota command converter
2019-02-21 15:37:46 +01:00
Theo Arends 95da493325 Update xdrv_01_webserver.ino
Fix compile error
2019-02-21 14:56:39 +01:00
Theo Arends 05b0280019 6.4.1.18 - Fix some exceptions and watchdogs
6.4.1.18 20191221
 * Fix some exceptions and watchdogs due to lack of stack space - part 1 (#5215)
2019-02-21 14:31:31 +01:00
Theo Arends b0227d6d28
Merge pull request #5288 from Jason2866/patch-1
Update platformio.ini
2019-02-21 09:57:48 +01:00
Theo Arends cfd3f3f4f5 Fix WebSend compile warning
Fix WebSend compile warning
2019-02-21 09:48:58 +01:00
Jason2866 51227b1d95
Update platformio.ini 2019-02-20 21:07:01 +01:00
Laurent 4e66dce049 Merge remote-tracking branch 'upstream/development' into development 2019-02-19 20:15:43 -05:00
Theo Arends 280dd25a8b Optimize RAM for expression
Optimize RAM for expression and add two more constant variables (#5275)
2019-02-19 14:49:15 +01:00
Theo Arends 06c97c4e19 Fix command WebSend
Fix command WebSend intermittent results (#5273)
2019-02-19 12:51:38 +01:00
Theo Arends 32c1e2d13c Tuning uptime and add utctime
Tuning uptime and add utctime
2019-02-19 10:48:19 +01:00
Laurent 660d0106c2 Revert "Support HttpGet command"
This reverts commit c527d4dc99.
2019-02-18 16:18:01 -05:00
Laurent 6f2f0b6fea Add two constant varibles in rules expression
Add two variables:
- UtcTime
The number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT)
- LocalTime
Seconds passed after Jan 1, 1970 midnight base on current timezone and daylight saving setting.
2019-02-18 16:17:32 -05:00
Laurent 2bc84a9aad Optimize RAM usage for Expression 2019-02-18 16:12:14 -05:00
Laurent c527d4dc99 Support HttpGet command
HttpGet command send a HTTP Get request to specified URL and return the response from website or error message if failed.
Note: This command support URL encoding, so you do not have to do encode by yourself. For example replacing all " " with %20 is no necessary.
Format:
httpget <url>
With HttpGet command you can do a lot of things.
For example:
- Retrieve your physical location:
httpget http://ipinfo.io/geo
Result is a JSON object
{
  "ip": "8.8.8.8",
  "city": "Mountain View",
  "region": "California",
  "country": "US",
  "loc": "37.3860,-122.0840",
  "postal": "94035",
  "phone": "650"
}
- Control another Sonoff switch directly:
httpget http://192.168.1.130/cm?cmnd=power off
2019-02-18 15:41:40 -05:00
Theo Arends 18ca69e5fd
Merge pull request #5272 from andrethomas/development
Introduce Reset 6
2019-02-18 21:19:17 +01:00
andrethomas 1da8f94a05 Introduce Reset 6 2019-02-18 21:52:22 +02:00
Theo Arends 3c3b5bb8ca Add property Downtime
Add property Downtime to state and status 11 message representing the duration of wifi connection loss
2019-02-18 18:02:22 +01:00
Theo Arends 4884a94b6d Add LinkCount and MqttCount
* Add property LinkCount to state and status 11 message representing number of Wifi Link re-connections
 * Add property MqttCount to status 6 message representing number of Mqtt re-connections
2019-02-18 17:05:25 +01:00
Theo Arends 0658ae1959 Update sonoff_template.h
Fix compile error
2019-02-18 16:19:46 +01:00
Theo Arends e898dc03e7 Add Wifi Link Connection Count
Add Wifi Link Connection (Retry) count to state message. Always starts with 1 being the initial connection.
2019-02-18 15:41:41 +01:00
Theo Arends a6c7e3b5f4 Update xdrv_01_webserver.ino
Force restart on any template change to fix page refresh hang (#5222)
2019-02-18 15:13:37 +01:00
Theo Arends 483eb4dd44 Change Flags to Options
Change Flags to Options and enforce Activate for already active template (#5256)
2019-02-18 13:10:10 +01:00
Theo Arends 8d2b9e4734 Update xdrv_01_webserver.ino
Tune webserver
2019-02-18 11:35:49 +01:00
Theo Arends c37a4a4398 Update xsns_01_counter.ino
Fix non floating point use function (#5265)
2019-02-18 11:06:16 +01:00
Theo Arends dd3ae40daf
Merge pull request #5266 from znanev/patch-2
Update Bulgarian translations
2019-02-18 10:53:55 +01:00
znanev bd582980e9
Abbreviate translation for D_SENSOR_USER 2019-02-18 09:52:29 +00:00
znanev 8c73cddfed
Update Bulgarian translations 2019-02-18 09:29:23 +00:00
Theo Arends 590c883bbe
Merge pull request #5262 from gfrancesco/development
Configuration parameter to send MQTT telemetry on status change
2019-02-18 10:15:29 +01:00