Changelog
All notable changes to Shelly GEN2 API Docs will be reflected here.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Available as 1.1.0-beta2
Added
- Switch Separate accumulator for returned energy (
ret_aenergy
) - Switch, Cover Persist energy counters on power loss
- Switch Input mode
activate
- Input (in
analog
mode), Voltmeterxvalue
support: allow raw value transformations by a user-provided JS expression - Pro3EM with addon and ProEM Modbus TCP control of Switch
- Pro3EM
triphase
andmonophase
profiles - Scripting MQTT support
MQTT.subscribe()
: wildcard topics
Fixed
- ProEM
total_act_ret_energy
is not recorded - Light Initial state
restore_last
is not applied - HTTP Crash when there is no data following parsed header
Changed
- Scripting MQTT support
MQTT.subscribe()
: throw exception instead of aborting script if invocation fails;MQTT.publish()
: change return type toboolean
Local web
Fixed
- Delete action icons are misaligned
- Actions and schedules can be accidentally deleted
- Bluetooth Low Energy Gateway Missing scripts and range extender
[1.0.8] 2023-11-06
Fixed
- Webhook Fix handling of HTTP compatibility loopback calls
Local web
Fixed
- Idle settings page on Pro2PM in cover profile
- Tooltip on devices displays ethernet disabled when ethernet is enabled
[1.0.7] 2023-10-31
Changed
- Reworked mDNS responder
- Improve bootloader update
Removed
- PlusPM Mini Remove no-load condition
- Scripting Remove 15kB limit on script size
Added
- Plus2PM, Pro2, Pro2PM Add cycle mode support
- Input Configuration property
enable
Fixed
- BLE MAC in BLE MFD is in the wrong endianness
- MQTT Fix parsing of fragmented messages
- Switch MQTT
status_update
command toggles switch state - Plus1PM Mini, PlusPM Mini Improved resilience of BL0942 power meter driver
- Scripting Phantom script contents when invoking
Script.Delete
/Script.Create
- Scripting Optimize function parsing and garbage collection
- Cover Improved calibration procedure
- PlusHT Fix applying offset of temperature and rh
- Light
brightness
argument inLight.Set
is parsed incorrectly - Light Fix behavior of
min_brightness_on_toggle
- Light Invoking
Light.Set
withtransition_duration
sets brightness to 0% - Light Button presets don't work in
dual_dim
mode - Light HTTP endpoint
/light/id
does not perform toggle - Input Fix input reading on boot
- HTTP Relax parsing HTTP response lines
- WiFi Randomize AP channel
- Webhook Optimize handling of loopback calls
- Fixed UAF in timers
- Fix error message when RPC rejects due to lockout
- Prevent re-scheduling of HW timers while process is pending
- Track min queue free for the main queue
Local web
Fixed
- Bluetooth settings for PlusHT throws an error on open
- The firmware table does not scale correctly on mobile phones
- The color scheme for PlusPlugS and PlusPlugUK does not update the color
- Input settings for the Plus Addon for Plus2PM in cover mode throws an error
- Action cannot be deleted when the URL is invalid
- Negative sunset/sunrise values are not displayed correctly
Added
- Local web collects logs when open (not only at Diagnostics page)
- Added
connected
status for the cloud icon in the status bar - Script examples and snippets caching mechanism
- Modbus support for ProXEM
- Full cron support for schedules
- Add MAC addresses for Ethernet, BLE and WiFi
- Advanced link for KVS and diagnostics
- Button to clear log cache from the diagnostics page
Changed
- Debug log reconnecting strategy
- KVS manager improvements
- Firmware page UI
- Limit calls to schedule calls
- Countdown animation on auto on and auto off
- Script editor improvements
- Diagnostic and script console rework
- For single-component devices, skip component selection for actions
[1.0.6] 2023-10-09
Changed
- [Pro x EM] Introduce adaptive logic for emitting power meter updates
- [Pro x EM] Remove no-load condition
Added
- Pro3EM, ProEM: User button (marked as reset) can be used to toggle the add-on relay or the built in relay.
Fixed
- ProEM Fix conditional webhooks.
[1.0.5] 2023-09-26
This version was only released for the ProEM device.
Fixed
- ProEM Energy values recorded are significantly lower
[1.0.3] 2023-09-12
Changed
- Disable safe mode
[1.0.2] 2023-09-11
Fixed
MQTT
Fix connection when using TLSMQTT
Fix crashes caused by storing a freed queue entry- PlusPlugUK Fix crash caused by memory leak
- Debug logs Fix password protection of
/debug/log
: accept regular HTTP auth as well as auth via query string - BLE Fix crash caused by incorrect connection close
Cover
HTTP Endpoint/roller/id
: fix parsing ofoffset
andduration
Cover
Fix behavior of one-button mode after reboot / power-cycleCover
Fix support of interlocking switches- Optimize network buffer usage
- HTTP auth: Fix URI when computing digest response (include query string, if present)
- PlusHT, PlusSmoke Drop BLE observer option for battery operated devices
Changed
Local web
Fixed
- Idle power threshold setting for Cover now accept float values
- Bluetooth RPC and cloud gateway can be enabled only if the main Bluetooth is enabled
- Idle confirm period setting for Cover now have proper validation
- Movement time limit setting for Cover now have proper validation
- Added missing
Pause
action for Cover safety switch - Added missing
Led indication
setting for PlusWallDimmer - Show correct name for component when creating local action
- Remove Bluetooth observer option for battery operated devices
- Fix description of Bluetooth settings for battery-operated devices
- Sometimes the snackbar shows
undefined
- Cannot set "LED indication mode" for
PlusPlugS
- Clear script
updating
status at the start - Fix placeholder when no scripts are available
Changed
- Firmware update page improvements
- Improved dialog for creating schedules
- Auto OFF and ON timers now support float values
Added
- Show network frequency for EM, EM1 and Switch components (only PM devices)
- Action on power ON for PlusWallDimmer
- Ability to upload firmware from .zip file
- Show banner when the device boots in
safe mode
[1.0.1] 2023-08-24
Fixed
- Plus1PM Mini, PlusPM Mini Incorrect energy accumulation
[1.0.0] 2023-08-03
Added
EM
Modbus registers for total current, total active power and total apparent powerInput
invert
andrange_map
configuration properties foranalog
input typeLight
min_brightness_on_toggle
configuration propertyLight
HTTP Endpoint/light/{id}
- Authentication in HTTP client, supporting basic and digest schemes. This enables the HTTP service and webhooks to access password-protected URLs.
- Support for
Pro3EM
Addon - Introduced a 15kB limit on script size
Date
support in scripting- Inbound HTTP RPC channel: New query string syntax which allows setting nested JSON properties by path, e.g.
/rpc/Sys.SetConfig?config.device.name=Some Name
Cover
last_direction
attribute in statusbtoh
function added in scripting- Pro3EM Add option to reverse CT direction of measurement for active power and energy
- Add network frequency in status of
EM
,Switch
,Cover
components. shown if applicable
Changed
Shelly.CheckForUpdate
now returns an error instead of an empty result when device was unable to query the server.- Restrict access to log streams over websocket when authentication is enabled
- [
Script.PutCode
] cannot overwrite a running script. An error is returned if the script is running. Light
deprecatedefault.brightness
property in Light configurationCover
bump max settable value ofmotor.idle_confirm_period
configuration to 2s- WiFi: drop support for TKIP in AP mode. TKIP is a weak legacy cypher.
- BLE Scanner de-duplicates identical scan results within a 3-second window.
Removed
Sys
Dropwakeup_period
attribute from configuration (deprecated since 0.11.0)Webhook
Drophook_types
object fromWebhook.ListSupported
response (deprecated since 0.11.0)- Timezone aliases and historical definitions listed in IANA's
backward
file.
Fixed
- Plus2PM Configuration of sensor addon components is reset on profile change
Local web
Added
- Display device time in local web footer
- New settings for switches - "External consumption type"
- Cover: Add position hint information when creating schedule for position
- Support for
Pro3EM
Addon - Wi-Fi roaming setting in Wi-Fi settings page
- New page Global Schedules - show every created schedule per component
- New page Global Actions - show every created action per component
- Scripting: Shortcuts for save and run
- Scripting: States such as Updating, Saved, Stopped, Running no longer use pop-up messages but unified UI state
Fixed
- Pro2PM: Schedule Type error after ota update
- Cover: When creating action to execute "when open" it is showed as "opening"
- Adding scripts from library glitches in Firefox
- Pro3EM: Download csv timestamps were not dynamic
- Cover: Schedule with "undefined" position could be created
- Scripts were not updated when deleting
- Schedules: Action was showing "undefined" if the method is saved with upper case letter
- Schedules: PlusI4, Pro3EM empty component
Changed
- Script editor improvements
- New UI and UX of the schedules
- Device reboot and device reset are now quick buttons in Settings list
- Scripting: Improved visuals
[0.14.4] 2023-05-10
Fixed
- PlusPlugUK Update default max power and max current limits
[0.14.3] 2023-04-20
Fixed
- PlusSmoke OTA update via cloud
Added
- PlusSmoke New hook type
smoke.alarm_off
[0.14.2] 2023-03-28
Fixed
- PlusWallDimmer Restore night mode in case of power loss
- PlusWallDimmer Looped trigger of
light.on
/light.off
webhooks
Local Embedded Web
- Improvement: PlusWallDimmer - Minor improvement on summary cards UI
- Bug fix: PlusWallDimmer, improve auto on/off timers animation
[0.14.1] 2023-03-08
Fixed
- PlusHT
Temperature
andHumidity
offsets are applied by twofold - PlusSmoke Disable
active_between
property inWebhooks
Changed
- Relax notifications rate limit for the
Input
component (80 notifications for a period of 60 seconds) - PlusPlugUK Update max power and max current limits
Local Embedded Web
- Use
zopfli
to compress the Web UI bundle - Minor bug fix of behavior for attached/detached inputs
[0.14.0] 2023-02-28
Added
EM
Ability to calibrate a new CT from an existing one,EM.PhaseToPhaseCalib
andEM.PhaseToPhaseCalibReset
EM
Addno_load
error- Notifications rate limit for the
Input
component MQTT Control
Additional topics which allow commands to be sent to the device as well as for publishing resultsBLE
Bluetooth observer
Fixed
HTTP.Request
cannot perform POST HTTPS request to specific sites
Changed
- Pro4PM Show channel name on display when set, if it contains latin characters only.
Local Embedded Web
- New feature: Add support for MQTT control
- New feature: Add support for RPC over MQTT
- New feature: Add support for bluetooth gateway
- New feature: Add phase to phase calibration for Pro3EM
- Improvement: Improve the diagram view for Pro3EM
[0.13.2] 2023-02-21
Fixed
- PlusHT Implement a full refresh every 24h (at night time) to clear any artefacts on ePaper display
- PlusHT Improve display update temperature threshold (change to 0.2C)
[0.13.1] 2023-02-09
Local Embedded Web
- Bug fix: Pro3EM Totals of active power, apparent power, current are
null
[0.13.0] 2023-02-09
Added
Switch
,Cover
Undervoltage protectionSwitch
Automatic recovery from overvoltage/undervoltage errorsInput
Triple push notification and webhookEMData
Perpetual total energy countersEM
total_current
,total_act_power
,total_aprt_power
attributes in status
Fixed
Switch
Improve power measurement forPlus1PM
,PlugUS
,PlusPlugS
,PlusPlugIT
,PlusPlugUK
(fixes erroneous overvoltage errors; fixes parasitic energy reports when no load is connected)Switch
Optimize power measurement notificationsSwitch
,Cover
Reduce aggressiveness of overpower/overcurrent protectionSwitch
,Cover
Parasitic status change notifications on overvoltage, overpower and overcurrent errorsSwitch
,Light
,WiFi
Inaccurate*.SetConfig
error messagesWebhook
active_between
is interpreted incorrectly when period spawns across the next dayScript
Crashes when specific scripts are enabled to start on bootEMData
CSV data download HTTP params processingEMData
Missing MODBUS data for energy on phases B and C- PlusPlugS, PlusPlugUK Support dynamic LED transition ranges based on power limit settings
- PlusPlugS, PlusPlugUK, PlusPlugIT Update max power limit to match device prints
- PlusPlugS, PlusPlugUK Improve reaction time of LEDs in power mode
- PlusPlugS, PlusPlugUK Wrong brightness of network status indication
- PlusPlugS, PlusPlugUK Restore night mode in case of power loss
- PlusPlugS Ambiguous voltage shown when output is off
- PlugUS, PlusPlugIT Wrong LED indication after factory reset
- Plus2PM, Pro2PM Guarantee outputs don't turn on after factory reset from
cover
toswitch
profile - Pro4PM Display shows wrong time when not synced with NTP
- PlusSmoke Battery charge is not displayed
- PlusSmoke Missing
id
in status change notifications - PlusSmoke Does not factory reset with 5 button clicks from config mode
Local Embedded Web
- New device support: Added support for Plus Plug S
- New device support: Added support for Plus Plug IT
- New device support: Added support for Plus Plug UK
- New device support: Added support for Pro 3EM
- New feature: Added build version for local web UI
- New feature: Detect firmware update and show message asking for a refresh of the page
- New feature: Add
Undervoltage protection
setting for devices with power metering - New feature: Add settings for auto recovery for Over/under voltage
- New feature: Add RPC over UDP
- New feature: Add Actions: Webhook-Event for triplepush
- New feature: Add tripplepush input visualisation
- New feature: Add Pro3EM error handling visualisation
- New feature: Add support for Pro3EM actions
- Improvement: Create placeholder with prompt when no scripts
- Improvement: Saving script causes errors in some weird situations
- Improvement: IP and network mask are the only required settings for static IP
- Improvement: Add cover profile default route to home -> /cover/0/overview
- Improvement: Set
Action on power on
default value tooff
when is required - Bug fix: Ensure
Units
settings is only visible on devices which have units - Bug fix: Plus Addon - Non-blocking TypeError when adding peripheral
- Bug fix:
RangeError: Invalid time value
error when a device had issues with syncing time - Bug fix: Can't configure Outbound Web Socket with
TLS no verification
and awss://
link on version 0.12.0 - Bug fix: Fix the disappearing factory reset by input checkbox
- Bug fix: Fix showing incorrect component when changing index in URL
- Bug fix: Submenu's active bar is not correctly displayed
- Bug fix: Home is side navigation is not highlighted
- Bug fix: Empty actions placeholder contains wrong icon
- Bug fix: Fix incorrect Pro3EM sum of totals
- Bug fix: Fix timer freezing
- Minor: Home page URL handling for Plus/Pro2PM (Cover/Switch)
- Minor: Actions - Slider text improvement
[0.12.0] 2022-12-06
Added
- Sensor Add-On support for
Plus1
,Plus1PM
,Plus2PM
,PlusI4
,PlusI4DC
Voltmeter
componentInput
component: support digital and analog inputs- Webhook: new types
input.analog_change
,input.analog_measurement
,voltmeter.measurement
,temperature.measurement
,humidity.measurement
- Scripts: Base64 encoding and decoding
- Scripts: Access bluetooth functionality - device discovery
- Embedded web: new device UI. Add "Actions" - control local device functionality on component events
Fixed
- Cover:
Cover.SetConfig
error messages when arguments are out of range - Cover: calibration fails when
obstruction_detection.holdoff
exceeds open/close duration - ECO Mode fails to apply after WiFi reconnect
- Webhook: fix invocation of
http://localhost
/http://127.0.0.1
urls - Scripts: fix memory leak in
Shelly.emitEvent
Light
component: fix validation ofnight_mode.active_between
parameter
Changed
- PlusHT: Change
wakeup_period
to 2h
[0.11.4] 2022-10-24
Added
- Sys: Add event to announce scheduled soft restart
- Webhook: Add expanded context for evaluation of conditions and token replacement and configurable repeatability
- Temperature and Humidity: offset
- Cover: configurable idle hold-off period
Changed
- BLE: Updated configuration to include separate
enable
flag for the RPC service - Sys:
restart_required
property is no longer set totrue
when a restart is scheduled automatically - RPC handlers are disabled when a soft reboot is scheduled. Error code will be -109
- Webhook: Expand the context for evaluation of conditions and token replacement with device status, configuration and info
- Cover: last position is stored in non-volatile memory when movement ends
Fixed
- Duplicate notification for some types of events
- Cover: losing position when multiple GoToPosition commands are enqueued
- Increased CPU frequency limit in ECO Mode
- PlusHT: fixes in display behavior
- Cover: improve stability with ECO Mode
[0.11.3] 2022-10-14
Fixed
- Device instability caused by ZX synchronizer during flash operations
- Memory leak in scripts
[0.11.2] 2022-10-04
Changed
Pro1PM
,Pro2PM
,Pro4PM
,Plus2PM
: Synchronize output operations with voltage zero-cross
Fixed
- Off-by-1 error in some timezones
[0.11.1] 2022-09-09
Fixed
- Mis-provisioned
Plus1
,Plus1PM
devices
[0.11.0] 2022-08-30
Embedded/local web improvements:
- When editing a script, there is a “Snippets” section, which allows you to use snippets to write code faster
- On the Scripts (listing) page, there is a new Library button, that allows you to install scripts, directly from our GitHub page
- In the scripts library, you can change the library url for the specific device and load your own library
API Documentation improvements:
- Major restructuring of the documentation, so that most of the APIs are now easy to find in the new combined “Components and Services” section
- Request, responses are now reformatted to look better/are easier to use/understand
- Formatting of parameters, error codes and others are now rendered in tables to improve readability
- Each Component/Service page is now following similar page structure
- New components and their respective documentation had been added (see next)
Added
- client_id parameter in MQTT configuration
- discoverable property to System configuration
- Range extender
- Outbound Websocket component
- Webhooks and schedules revisions
- Webhooks: conditions; variable interpolation in URLs
- Status change notification for cfg_rev attribute
- KVS service
- Temperature component
- Humidity component
- DevicePower component
- Light component
- Sleep management for battery-operated devices
- Scripts: register handlers to incoming HTTP requests
- Scripts: broadcast events
- Scripts: synchronous access to configuration, status, device info, current script id
Changed
- MQTT: Change MQTT QOS level to 1
- MQTT: Retain LWT messages
- BLE: Require restart to apply BLE config changes
- Scripts: Error handling behavior changes to a more strict mode. Previously, errors during script execution only terminated the current context -- specific callback invokcation, for example. Now, errors encountered during script execution terminate the script and are reflected in its status.
- For battery-operated devices: deprecate
wakeup_period
property in System configuration (moved to System status)
Fixed
- Scripts: Script causing device crashes are detected and disabled automatically
- Scripts: Crash on MQTT unsubscribe when MQTT is disabled
- Power values oscillation between 0W and 1W on Plus1PM
- Crash when calling Shelly.Update without parameters
- Wrong aenergy values with low-power loads on Pro devices
- Validation of cid and event parameters of Webhook.Create, Webhook.Update
- Crash due to race-conditions between TCP errors and queued callbacks
- Poor device responsiveness during HTTPS webhooks execution
- Incorrect ACL when authenticaion is disabled
- Erroneous overpower events on
Plus1PM
andPlugUS
devices - MQTT: Ignored
topic_prefix
[0.10.3] 2022-06-17
Fixed
- Erroneous overvoltage events on
Plus1PM
devices
[0.10.2] 2022-05-31
Fixed
- Wrong power consumption values displayed on Pro4PM boot
- Incorrect behavior of reset button (all devices)
- Fix mis-provisioned
Plus1PM
devices
[0.10.1] 2022-03-30
Fixed
- Schedules around DST time shifts
[0.10.0] 2022-03-08
Added
- New HTTP.Request RPC method with support for
GET
,POST
,PUT
,HEAD
andDELETE
. - Cover component
- Only applicable for multi-profile devices: RPC methods Shelly.ListProfiles, Shelly.SetProfile;
profile
key in the responses of Sys.GetConfig, Shelly.GetDeviceInfo and /shelly - Support for
/ota
HTTP endpoint, for backward compatibility with Gen1 devices. - Embedded web now has UI for changing the display brightness on Pro4PM
- Device name (if set) is now shown everywhere in the UI of embedded web to ensure users, using multiple browser tabs, would know on which device they are making their changes
- Experimental support for Economy mode in the embedded web, decreasing power consumption of devices when latency is not critical. Since, this is still experimental, there is no support for changing it in the application yet. Enabling the option may have adverse effects and we do not recommend it for general usage. At this stage, it is intended for testing purposes and power consumption measurements.
Changed
- Switch: setting
power_limit
tonull
will apply the default overpower threshold instead of disabling overpower protection. - MQTT: do not show
pass
in response ofMQTT.GetConfig
- Change response format of Shelly.ListProfiles
- Improved Plus I4 UI in embedded web
Fixed
- Scripts: Fixed Status change notifications being duplicated as Event notifications.
- Webhooks: fixed decoding of URLs containing the
"
character. - Power factor measurement on Pro4PM.
- Initial/on start up power metering improvements
WiFi|Eth.SetConfig
- fixed ipv4mode invalid argument error message- Ethernet improvements that should fix some issues with devices hanging/crashing
- Embedded web - Wrong channel name was displayed on Plus I4
- Disable SMP (Symmetric Multiprocessing) on all devices
[0.9.3] 2022-01-17
Fixed
- Broken
aenergy
update inSwitch
component status
[0.9.2] 2022-01-14
Added
- Experimental support for Economy mode, decreasing power consumption of devices when latency is not critical. We do not include support for this feature in application and local web interface. Enabling the option may have adverse effects and we do not recommend it for general usage. At this stage, it is intended for testing purposes and power consumption measurements.
- Local web interface: Display the input state of the switch
- Local web interface: Explanation of power limit
- Ability to do OTA Update from url
Changed
Webhook.Update
can now modifycid
(component instance id) of an existing webhook.
Fixed
- Display negative values for
apower
andaеnergy
inSwitch
component status ssl_ca
andname
validation in Webhook.Updateunixtime
will benull
in Sys.GetStatus when not synced with NTP server- Ethernet IP address notification on connect
- Local web interface: Pro4PM issue with authentication menu
- Local web interface: Time in local webpage not correct
[0.9.1] 2021-12-03
Fixed
- Local web interface: Webhook, Script, Schedule list
- Local web interface: invert switch
- Local web interface: Input/Output-Setting & Invert Switch is missing
[0.9.0] 2021-12-01
Added
- MQTT support in scripts
- Limitations of the resources used by a script
- Option to set brightness of the Pro4PM's screen when it is idle through a new UI component
- Basic MQTT tutorial in the docs
- Placeholder notation in the docs
- Math API for scripts
- Initial release of Shelly Scripts
- User-configurable overvoltage (
voltage_limit
) and overcurrent (current_limit
) protection in Switch - Local web interface: selection of discovered WiFi APs
- Configuration revision number added to System Component configuration
- Set
active_between
parameter in Webhook.Create/Update with HH and MM, which are hours and minutes respectively, and can be specified with or without leading zeros in 24-hour format device.name
parameter in System Component configurationsntp.server
parameter in System Component configuration- Limit maximum number of simultaneous non-persistent RPC channels
Fixed
- Event and status handlers in scripts
- Plus1 crash when
Switch.SetConfig()
is invoked - MQTT topic prefix configuration shows the correct default value
- Local web interface: schedules time set, Pro4PM channel handling
Changed
- Overpower protection (
power_limit
) in Switch can be disabled - The response type of
Webhook
:Update
,Delete
,DeleteAll
; andSchedule
:Update
andDelete
methods is now empty (null
), in unison with other APIs.
[0.8.1] - 2021-09-21
Added
- Firmware version and device temperature in the screen UI of Pro4PM
- RPC communication over UDP
Fixed
/shelly
HTTP endpoint does not require authentication anymore- Bug causing Pro4PM's screen to crash when scrolling too fast in one direction
[0.8.0] - 2021-09-13
Added
- Ability to change the prefix of MQTT topics
- Ability to publish each component's status on a dedicated MQTT topic
status/<component:[id]>
- Debug log streams over UDP, MQTT and websocket
- New property
nameserver
in the configuration of the Ethernet component - Missing timezones
- New method HTTP.POST
- HTTP
headers
andbody
in the response of HTTP.GET - Changelog page :)
Removed
Fixed
- Sporadic temperature jumps in the readings of temperature sensors
- Voltage reported as 0 when Switch output is off
Changed
- Streamline payloads of event notifications: improve event descriptions, add reference to event origin
[0.7.0] - 2021-09-01
Added
- First public version released