Version 6.0.0 major rework of Components and new Sensor Component
Changes
- [easyGPIO] topics now use "easyGPIO" to not make them not collide with module "switches.GPIO"
- [remoteSensors] use remote sensors as if they were locally connected
- [remoteSwitch] use a remote switch as if it was locally connected
- [COMPONENTS] extended API significantly, updated to new/changed MQTT features, added cleanup method
- [SENSOR COMPONENT] major base class for a unified sensor API and features to make usage and development easier
- [Sensors] updated all sensors to use the new SENSOR COMPONENT. Some sensors therefore experience breaking changes in configuration, default topics and behaviour.
- [DS18] rewritten for new sensor API
- [HEATER] removed deprecated component
- [CLIMATE] added new Climate component which is compatible to homeassistant MQTT Climate
- [CONFIG] removed option to load components from .json files, use components.py instead
- [STATS] Major update, publishing many device stats as hass json_attributes and RSSI as main value instead of "online/offline" which is now done directly in mqtt as availability topic. Published values: (last_boot, uptime, pysmartnode version, micropython firmware version, RAM free, RSSI, MQTT Downtime, MQTT Reconnects, Asyncio waitq used size)
- [MQTT] Improvements, Subscriptions done by mqtt not by components, Subscribing uses subscription chain and can be called non-blocking synchronously, added easy way to restore a device state from a state topic of a subscribed command_topic, prevention of uasyncio queue overflows when receiving too many messages
- [LOGGING] Extended asyncLog() method with kwargs "timeout" and "await_connection" just like mqtt.publish
- [LOGGING] Now works similar to print expecting multiple args instead of one message string. Optimizes RAM usage (especially with local_only logging).
- [TOOLS] updated esp8266 build scripts, script to strip variable type hints as those are not yet supported by micropython
- [CONFIG] config.py update, made configuration easier and smaller by freezing standard values in ROM and custom configs in config.py will just overwrite those.
Release files
ESP8266
Attached is a compiled firmware for esp8266 with heap increased by 6kB, built with littleFS as standard filesystem (erase filesystem before flash) giving another 4kB more RAM.
Micropython 1.12 release.
ESP32
No firmware file but the precompiled .mpy files that can be directly uploaded to the esp. Either by "rshell rsync/cp -r" or using an ftp server.
The .py files are not recommended to upload directly as you would need to strip them of hints first (see README) and compiling on the device takes some time and a lot of RAM.
Sources
The file "pysmartnode600_sources.zip" contains all source files including the github submodules.
The automatically generated source files from github don't include github submodules.