- ATTENTION: BREAKING CHANGE! EEPROM layout has changed - this leads to re-reading configuration from
BSB_LAN_config.h, and thus overwriting EEPROM configuration. Take note of any settings in the web-interface before updating! - ATTENTION: (potentially) BREAKING CHANGE! BSB-LAN is migrating to using TLS (transport layer security) on ESP32 microcontrollers. TLS requires a substantial amount of additional flash memory. For most users, it should still be fine, but if you have a large number of parameters (>1000), you might run out of flash memory. In that case, you can disable TLS by enabling the
#define NO_TLSdefinement inBSB_LAN_config.h. If you want to use SSL with self-signed certificates add the definementI_WANT_INSECURE_TLS_AND_I_KNOW_WHAT_I_AM_DOINGtoBSB_LAN_config.h. - ATTENTION: (potentially) BREAKING CHANGE! We have begun with using TLS to connect to remote MQTT brokers. If your remote broker uses a self-signed certificate, connection will fail. Connection to local brokers will continue to be made without TLS. (Poor man's) detection whether it is remote or local is done by checking the broker's address: if it is an IP address (i.e. starting with a digit), it is assumed to be local. Otherwise it is considered remote.
- ATTENTION: Potential wrong assignment of data type for
VT_HOURS_WORDin the past: If you have problems setting a parameter with data typeVT_HOURS_WORD, then change it toVT_HOURS_WORD_N. It should only affect parameter 7040, but let me know if others are also affected as well. - Custom code can now also react to broadcast messages (beyond already existing MQTT functionality) by using BSB_LAN_custom_GetMessage.h
- New parameters 10196 to 10199 for displaying numerical error messages that should work on almost all devices.
- New configuration variable
MQTTRefADcontrols whether auto-discovery entries should be resent to the broker in case the broker lost the session state. This might take a while if you have many parameters and the broker does not provide persistency. - New configuration variable
mqtt_unit_setdefines how measurement units are sent via MQTT when using Rich JSON or auto-discovery: The default CF_MQTT_UNIT_LOCALIZED will send unit strings in the configured language, exactly as shown in the BSB-LAN web interface. CF_MQTT_UNIT_HOMEASSISTANT sends unit strings in the format used by Home Assistant to avoid warning messages about unknown unit strings. CF_MQTT_UNIT_NONE will send MQTT messags with no unit text. This setting only applies to MQTT and does not affect the web interface which will always show units in the localized language. When selecting Home Assistant as the unit format, the 'device_class' string will be sent for compatible parameters during MQTT auto-discovery so that automations can correctly identify sensor classes. - Configuration variable
replaceDisableddefines the value for a deactivated/inactive status in parameters with numerical values. Defaults to---; Home Assistant expectsNonehere, others might expect0. Keep in mind that both is inexact information, but depending on the circumstances, this might be the closest you would get if otherwise the external systems would not accept the data coming from BSB-LAN. - Added option
,IPfor URL command/Gxxto activate pull-up for GPIOxx. - Added functionality to monitor parameter changes and send out push notificatons upon changes. See
custom_functions/Push_notifications_for_changed_parameters. Currently works with pushsafer.com, but adaptation to other services should be easy. - Added a minimal recovery firmware upload function via WebSerial (requires Google Chrome or Microsoft Edge). Go to https://docs.bsb-lan.de/recovery_flasher.html and connect your ESP32 using a data-capable USB cable and select the microcontroller you are using. No other software required.
- Some parameters expect valid, non-zero values even when disabling that parameter. BSB-LAN now queries the current value and then sets the parameter as disabled while using that previous value as payload. This results in two MQTT pushes, one for querying the old value and then another one with the disabled value.
- Upon failed parameter query, BSB-LAN now sends "---" (or "None", depending on the settings) to the MQTT broker instead of skipping the update.
- Added definement CUSTOM_PARTITION_TABLE in case you use a microcontroller with larger flash memory. Activate it in BSB_LAN_config.h in order to select a partition scheme other than "Minimal SPIFFS"
- Security check for caps letters removed because almost all letters are being used nowadays anyway.
- MQTT broker address increased to 64 characters to accommodate HiveMQ's long URLs.
- Updated PubSubClient from knolleary's repository to pubsubclient3, thanks to @uschindler. MQTT publish and subscribe now runs with QoS 1. However, on publish, there are no resends from BSB-LAN to the broker, QoS is only passed on from the broker to the subscriber. So make sure that your subscriber (such as Home Assistant) uses at least QoS 1 when subscribing.
- If you use the Arduino IDE 1.8.18 on Linux ARM, please take note that ESP32 framework version 3.0.7 is the last framework version that is currently running on these systems. See our Wiki for using
arduino-clias a command-line-based alternative that brings the most recent frameworks to ARM and other architectures - This release has been supported by the following sponsors: matze-dev