diff --git a/de/supported_models.html b/de/supported_models.html
index e315bd40..b6990fd7 100644
--- a/de/supported_models.html
+++ b/de/supported_models.html
@@ -167,7 +167,7 @@
Unterstützte Modelle ver
Brötje: BBK, BBS, BGB, BLW (siehe Ausnahmen unten!), BMK, BMR, BOB, BSK, BSW, Eurocontrol, ISR, LogoBloc, SGB, SOB, SPK, WBC, WBS, WGB (siehe Ausnahmen unten!), WMC, WMS, WOB
Nicht funktionierende Brötje-Modelle: BOK, BLW Neo, BLW Split-P, BLW Split C, BLW Split-K C, WGB-K, WGB 14.1/22.1/28.1/38.1, WHC, WHS, WLC, WLS
Bösch: Wärmepumpen mit RVS-Controllertyp
-Elco: Aerotop (nicht Aeroto Mono!), Aquatop, Rendamax, Straton, Thision (nicht Thision Mini!), Thision S, Thision S Plus, Trigon S Plus
+Elco: Aerotop (nicht Aerotop Mono!), Aquatop, Rendamax, Straton, Thision (nicht Thision Mini!), Thision S, Thision S Plus, Trigon S Plus
ATAG: QR
Atlantic: Alféa, Axeo, Excellia, Extensa, Hynea Hybrid Duo Gaz, Navistem, Perfinox, Varmax
Austria Email: LWP, LWPK
diff --git a/index.html b/index.html
index cc059d60..b99904f5 100644
--- a/index.html
+++ b/index.html
@@ -277,5 +277,5 @@ Keyboard Shortcuts
diff --git a/search/search_index.json b/search/search_index.json
index b94fcfbd..9a3d0014 100644
--- a/search/search_index.json
+++ b/search/search_index.json
@@ -1 +1 @@
-{"config":{"indexing":"full","lang":["en","de","fr"],"min_search_length":3,"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"index.html","text":"What is BSB-LAN? BSB-LAN is a software /hardware solution for accessing the \u201cBoiler-System-Bus\u201d (BSB) , the \u201cLocal-Process-Bus (LPB)\u201d and the \u201cPunkt-zu-Punkt-Schnittstelle\u201d (PPS) . The BSB-LAN hardware is available for various ESP32 -based microcontrollers (ESP32 NodeMCU, Olimex EVB, Olimex POE-ISO) as well as for an Arduino Due with Ethernet shield. It allows accessing the heating systems from Atlantic, Br\u00f6tje, Elco and many other manufacturers via LAN/WLAN, provided that they use one of the Siemens controllers listed below. BSB-LAN makes it possible to monitor and control the heating system and log any given values. This project supports almost all parameters available on the heating systems and can be a more comprehensive and cost-effective alternative to the OZW 672, OCI 700 or Remocon Net B. Optional integration into existing smart home systems such as Home Assistant , ioBroker , openHAB , Node-RED , Homebridge , Jeedom , SmartHomeNG , Volksz\u00e4hler , FHEM , HomeMatic , Loxone, IP-Symcon or EDOMI is possible via MQTT , JSON or HTTP access . The adapter can also be used as a standalone logger without LAN or Internet connection when using a microSD card. Temperature and humidity sensors can also be connected and their data can also be logged and analyzed. The option of integrating your own code into the BSB-LAN software also offers a wide range of expansion options. Where and how do I begin? You are an experienced user? Head on to the quickstart instructions . Otherwise (or if you run into problems), please read on! Is my heating system supported by BSB-LAN? Please go to the list of supported heating systems . If you already know that your system is supported, find out more about the BSB-LAN adapter and where to get it. If you already have the adapter, you may want to know how to install the adapter . If you have installed the adapter, you will need to configure BSB-LAN . Once you have everything up and running, find out about how to use BSB-LAN or learn more about the ways to ingetrate BSB-LAN into home automation systems . If you want to update BSB-LAN and would like to know what has changed since your last installation, please check the ChangeLog . Our wiki pages are continuously growing and provide background knowledge as well as more specialized topics on BSB-LAN and heating systems in general. If you run into troubles, have a look at the troubleshooting page . And before you ask anyone else any questions, have a look at our Frequently Asked Questions (FAQ) first!","title":"Overview"},{"location":"index.html#what-is-bsb-lan","text":"BSB-LAN is a software /hardware solution for accessing the \u201cBoiler-System-Bus\u201d (BSB) , the \u201cLocal-Process-Bus (LPB)\u201d and the \u201cPunkt-zu-Punkt-Schnittstelle\u201d (PPS) . The BSB-LAN hardware is available for various ESP32 -based microcontrollers (ESP32 NodeMCU, Olimex EVB, Olimex POE-ISO) as well as for an Arduino Due with Ethernet shield. It allows accessing the heating systems from Atlantic, Br\u00f6tje, Elco and many other manufacturers via LAN/WLAN, provided that they use one of the Siemens controllers listed below. BSB-LAN makes it possible to monitor and control the heating system and log any given values. This project supports almost all parameters available on the heating systems and can be a more comprehensive and cost-effective alternative to the OZW 672, OCI 700 or Remocon Net B. Optional integration into existing smart home systems such as Home Assistant , ioBroker , openHAB , Node-RED , Homebridge , Jeedom , SmartHomeNG , Volksz\u00e4hler , FHEM , HomeMatic , Loxone, IP-Symcon or EDOMI is possible via MQTT , JSON or HTTP access . The adapter can also be used as a standalone logger without LAN or Internet connection when using a microSD card. Temperature and humidity sensors can also be connected and their data can also be logged and analyzed. The option of integrating your own code into the BSB-LAN software also offers a wide range of expansion options.","title":"What is BSB-LAN?"},{"location":"index.html#where-and-how-do-i-begin","text":"You are an experienced user? Head on to the quickstart instructions . Otherwise (or if you run into problems), please read on! Is my heating system supported by BSB-LAN? Please go to the list of supported heating systems . If you already know that your system is supported, find out more about the BSB-LAN adapter and where to get it. If you already have the adapter, you may want to know how to install the adapter . If you have installed the adapter, you will need to configure BSB-LAN . Once you have everything up and running, find out about how to use BSB-LAN or learn more about the ways to ingetrate BSB-LAN into home automation systems . If you want to update BSB-LAN and would like to know what has changed since your last installation, please check the ChangeLog . Our wiki pages are continuously growing and provide background knowledge as well as more specialized topics on BSB-LAN and heating systems in general. If you run into troubles, have a look at the troubleshooting page . And before you ask anyone else any questions, have a look at our Frequently Asked Questions (FAQ) first!","title":"Where and how do I begin?"},{"location":"CHANGELOG.html","text":"ChangeLog Current Master ATTENTION: BREAKING CHANGE! Streamlined topic structure for MQTT. New strucuture adds /status for querying a parameter, /set for SETting a parameter, /inf for sending data as INF telegram and /poll to force BSB-LAN to send an update of that parameter value to the broker. If you are using MQTT auto-discovery, ideally, calling /M1 should update these changes. However, if you are using your own configurations, you'll have to make adjustments here. ATTENTION: BREAKING CHANGE! When using JSON settings for MQTT, previously all messages were written to the BSB-LAN/json and thus basically immediately overwritten when logging several parameters. Now this setting only determines the format (and not format and topic) of the data that is written into /status of each parameter. For auto-discovery, plain text remains the only valid choice. ATTENTION: BREAKING CHANGE The acknowledgement message sent by BSB-LAN to the MQTT topic has been removed. Instead, QoS for publishing messages has been set to level 1. ATTENTION: BREAKING CHANGE: Log configuration values have changed. However, only users that have logged to UDP are affected and will have to adjust their settings. ATTENTION: /JK=ALL now lists all categories of all devices in LPB systems with more than one device. Use dev_fam (device family), dev_var (device variant), dev_id (destination device ID) and dev_name (device model) elements to sort and identify which category applies to the current destination device. Added setting to only publish log parameters to MQTT. Forcing MQTT updates via /poll topic are still possible. Added state_class for non cumulative sensors in MQTT auto-discovery Updated the room unit emulation in custom_functions to work with version 4.x. Bugfix for VT_ENERGY, added new data type VT_ENERGY10 and VT_ENERGY10_N Disabling parameters can now be done both with an empty value as well as by sending --- . Sending an empty value is still possible, but is depracated and will be removed at some later time. BSB-LAN now scans the BSB/LPB bus during startup (and later periodically, if not connected to heating system) for other devices on the bus. This significantly reduces access times later on for systems with more than one device on the bus. New version from new repo of PubSubClient. Hopefully with this version, disconnects will be greatly reduced. French and German translations of the manual added, special thanks to GitHub user @plauwers for this! Numerous bugfixes, especially for the JSON API Version 4.1 06.11.2024 ATTENTION: BREAKING CHANGE! Changed topic structure for MQTT. This means that all existing MQTT entities in your home-automation system will have to be adjusted or created anew! The new structure now is BSB-LAN/// . ATTENTION: BREAKING CHANGE! Changed unique_id for MQTT auto-discovery. This means that all MQTT entities that have been created via auto-discovery will have to be created anew! ATTENTION: Configuration options fixed_device_family and fixed_device_variant have been removed since they no longer work for device-specific parameter lists. If your heating system is off when turning on the microcontroller, BSB-LAN will try to acquire the details every 60 seconds. ATTENTION: Change of configuration options results in new EEPROM layout, therefore EEPROM will be reinitialized based on configuration of BSB_LAN_config.h . MQTT auto-discovery now works for all devices, not only device ID 0. Use /M1! or /M0! to create/remove entities for device ID . Changed MQTT auto-discovery messages' flag to \"retain\" so that parameters remain available after reboot of Home Assistant. Version 4.0 01.11.2024 ATTENTION: BREAKING CHANGE! Room temperature parameter 10000, 10001 and 10002 must now have the additional flag FL_SPECIAL_INF , otherwise setting temperature will not work! ATTENTION: BREAKING CHANGE! Outside temperature simulation parameter 10017 must have FL_SPECIAL_INF flag removed, otherwise setting temperature will not work! ATTENTION: BREAKING CHANGE! Room temperature parameter 10000, 10001 and 10002 for Weishaupt heaters (device families 49, 50, 51 and 59) must now have FL_SPECIAL_INF flag removd, otherwise setting temperature will not work! ATTENTION: BREAKING CHANGE! URL commands /U (dislpay user-defined variables) and /X (display MAX! values) have been removed as these values can now be accessed via parameters 20000++ ATTENTION: BREAKING CHANGE! PPS time program parameters (15050-15091) have been streamlined with BSB/LPB time program parameters, resulting in only one parameter per day (instead of six), covering three switch points (start and end) per parameter. ATTENTION: For ESP32, BSB-LAN requires ESP32 framework version 3.0.x - please look out for errors or strange behaviour (1-Wire sensors are still not tested) as well as any other kind of strange behaviour/crashes. ATTENTION: New configuration options in BSB_LAN_config.h - please update your existing configuration files! Web-based configuration will be overwritten with config file settings due to change in EEPROM layout! ATTENTION: New manual URL: https://docs.bsb-lan.de/ BUTTONS and RGT_EMULATION have been moved from main code to custom_functions library. To continue using them, make use of BSB_LAN_custom_*.h files and activate CUSTOM_COMMANDS definement. Most configuration definements removed from BSB_LAN_config.h . Almost all functionality can now be configured without reflashing. BSB-LAN now supports MQTT auto discovery (supported e.g. by Home Assistant). To create devices, call URL command /M1 , to remove them call /M0 ATTENTION: MQTT auto discovery creates a general switch for the BSB-LAN device in Home Assistant. This switch will immediately write all parameters with the values stored in Home Assistant. DO NOT USE THIS SWITCH unless you REALLY know what it does! \"Set\" button in webinterface now also works with non-default destination devices (i.e. 1 instead of 0) Queried/set parameters are now forwarded to the MQTT broker (if MQTT is enabled) Previously used /M1 and /M0 for toggling monitor function have been removed since it can now be accessed via the configuration in the webinterface. Listing categories with /K now also works with destination device (e.g. /K!1 for destination device 1, default is 0). Important bugfix for OTA update: Previous versions had a hard limit on file size which newer heating systems with several hundred parameters hit, so no OTA update was possible. This is now fixed, but affected users will have to make a USB-based update one more time. 1-Wire- and DHT-sensors are now be disabled with value -1 instead of 0. In web interface, an empty field is also accepted. MQTTTopicPrefix is no longer optional, \"fromBroker\" topic removed (formerly used to send commands to BSB-LAN via MQTT) Using the 24h averages functionality no longer requires the use of an SD card. SD card will only be used to store averages if interval logging to SD card is active. New PPS room unit variant for RVD130, which increases high nibble of magic byte at every transaction. Polling current time from NTP server is active by default. Deactivate by setting ntp_server to empty string. New parameter flag FL_NOSWAP_QUR for parameters that do not swap the first two bytes of command ID in QUR telegram New parameter flag FL_FORCE_INF for parameters from which we are certain they only work with INF (such as room temperature). Will force an INF telegram even if /S is used to set the parameter (allows setting room temperature via web interface) BSB-LAN logo watermark in log graph display (DE-cr) Binary ENUMs (yes/no, on/off etc.) now return either 0 or 1 when queried, not - as is the case with some heating systems - 0 or 255. Setting any value from 1 to 255 is still possible. Fixed a breaking bug in PPS that prevented running properly in active/room unit mode. Fixed bug (or, based on perspective, reduced security) that prevented issuing commands via serial/telnet console when HTTP authentication was active Various bugfixes, among others logging of bus telegrams on storage device. New OneWireNg library version This release has been supported by the following sponsors: Erich Scheilko Version 3.3 12.03.2024 ATTENTION: New configuration options in BSB_LAN_config.h - please update your existing configuration files! ESP32: Support for receiving date and time via NTP instead of taking it from the heater. MQTT broker setting now accepts domain names as well as IP addresses. An optional port can be added after a trailing colon, e.g. broker.my-domain.com:1884. Otherwise defaults to 1883. ESP32 NodeMCU: Support for optional additional SD card adapter. SPI pins can be configured in BSB_LAN_config.h , defaulting to standard SPI pins 5, 18, 19 and 23. ESP32: Switching between log storage device (SD card / internal flash) can now be done in the web interface. ESP32: Create temporary WiFi AP in case Ethernet connection fails ESP32 NodeMCU: EEPROM clear pin has changed from 18 to 21 in order not to collide with SPI SD card adapters. This release has been supported by the following GitHub sponsors: jsimon3 Version 3.2 15.11.2023 ATTENTION: In BSB_LAN_config.h , new layout of log_parameters , avg_parameters and ipwe_parameters now written in curly brackets and different size (40 instead of 80) and type ( parameter instead of float ). Please update your BSB_LAN_config.h accordingly to prevent errors! Added configuration file versioning checks to prevent the use of outdated configuration files with newer software versions. Variable esp32_save_energy now defaults to false because it only seems to make sense when using LAN connection or if you use WiFi and can live with the performance impact. Added folder custom_functions where code examples for useful functions will be collected which are nevertheless too specific to be added to BSB-LAN's core code. Added custom function example for mapping DS18B20 sensors to fixed custom floats parameters This release has been supported by the following GitHub Sponsors: BraweProg, fdobrovolny, Harald Version 3.1 04.06.2023 ATTENTION: For ESP32 devices using internal flash for log storage: Filesystem was switched from SPIFFS to LittleFS. Download important log data before updating! ATTENTION: In BSB_LAN_config.h , the structure of log_parameters , avg_parameters and ipwe_parameters has changed and now includes the destination device on the bus! ATTENTION: New EEPROM schema may result in lost web-configuration settings when updating. Note your settings prior to updating! ATTENTION: New variable esp32_save_energy in BSB_LAN_config.h - update before compiling new version. ATTENTION: New variable bssid in BSB_LAN_config.h - defines a fixed BSSID address to connect to when using WiFi on ESP32. Parameters can now be queried from other devices on the bus using the ! notation also when logging (including MQTT) or using average or IPWE parameters Enable/disable power saving on ESP32. Saves 20% of energy, but can have impact on WiFi range and downloading speed of log files when using WiFi (LAN not affected) Improved performance and flash memory usage on ESP32 devices using internal flash for logging due to switch from SPIFFS to LittleFS To improve handling of large datalogs: date range selection in /DG , new url commands /Da,b , /DA , /DB , /Dn , /DI and /DKn This release has been supported by the following GitHub Sponsors: lapixo, nrobadey Version 3.0 16.03.2023 ATTENTION: BSB_LAN_custom_defs.h .default needs to be renamed to BSB_LAN_custom_defs.h and only contains a very limited set of parameters by default. See the manual for getting device-specific parameter lists. Add new /LN URL command to force logging irrespective of current interval. Improved library checks: No need for ESP32 users to remove ArduinoMDNS and WiFiSpi folders anymore. New SdFat version 2 for Arduino Due New data type VT_BINARY_ENUM This release has been supported by the following GitHub Sponsors: Alex, DE-cr Version 2.2 01.11.2022 ATTENTION: Several variables in BSB_LAN_config.h .default have changed their variable type, it's probably best to re-create your BSB_LAN_config.h from scratch. Parameter numbers are now floating point (i.e. XXXX.Y) because some parameters contain two different kinds of information. These are now shown in decimal increments of 0.1. You can still qurey the \"main\" parameter via XXXX (without .Y) Lots of bugfixes and new data types Device-specific parameter lists supported Version 2.1 30.07.2022 Many new parameters for LMU64 ATTENTION: New categories for LMU64 and RVD/RVP controllers due to their different numbering schemes. Will be filled over time. PPS and sensor categories have moved up by two. ESP32: OTA now uses system-wide HTTP AUTH authentication credentials Improved built-in chart display /DG , new configuration definement #define USE_ADVANCED_PLOT_LOG_FILE - thanks to Christian Ramharter Optional logging via UDP broadcast added (configurable, same parameters and format as in SD card logging) Lots of bugfixes Version 2.0 31.12.2021 ATTENTION: LOTS of new functionalities, some of which break compatibility with previous versions, so be careful and read all the docs if you make the upgrade! ATTENTION: Added and reorganized PPS parameters, almost all parameter numbers have changed! ATTENTION: Change of EEPROM layout will lead to loading of default values from BSB_LAN_config.h ! You need to write settings to EEPROM in configuration menu again! ATTENTION: Folder locations and filenames have been adjusted for easier installation! If you update your installation, please take note that the configuration is now in BSB_LAN_config.h (LAN in caps), and no longer in BSB_lan_config.h (lower-caps \"lan\") ATTENTION: HTTP-Authentication configuration has changed and now uses plain text instead of Base64 encoded strings! Thanks to GitHub user do13, this code now also compiles on a ESP32, tested on NodeMCU-ESP32, Olimex ESP32-POE and Olimex ESP32-EVB boards. ESP32 code uses SDK version 2.0.2, please take note when configuring Arduino IDE! OTA Updates now possible for ESP32-based devices Support for special PPS devices (based on DC225/Honeywell MCBA) added Webinterface allows for configuration of most settings without the need to re-flash, also split into basic and extended configuration Added better WiFi option for Arduinos through Jiri Bilek's WiFiSpi library, using an ESP8266-based microcontroller like Wemos D1 mini or LoLin NodeMCU. Older WiFi-via-Serial approach no longer supported. Added MDNS_SUPPORT definement in config so that BSB-LAN can be discovered through mDNS If BSB-LAN cannot connect to WiFi on ESP32, it will set up its own access point BSB-LAN with password BSB-LPB-PPS-LAN for 30 minutes. After that, it will reboot and try to connect again. New MQTT functions, including allowing any parameter to be set by an MQTT message and actively query any parameter once by sending an MQTT message Added support for BME280 sensors Setting a temporary destination address for querying parameters by adding !x (where x is the destination id), e.g. /6224!10 to query the identification of the display unit URL commands /A /B /T and /JA have been removed as all sensors can now be accessed via parameter numbers 20000 and above as well as (currently) under new category K49. New categories added, subsequent categories have been shifted up HTTP Authentification now uses clear text username and password in configuration PPS users can now send time and day of week to heater Lots of new parameters added URL command /JR allows for querying the standard (reset) value of a parameter in JSON format URL command /JB allows for backing up parameters to JSON file New library for DHT22 should provide more reliable results Consolidated data and value types: New data types VT_YEAR , VT_DAYMONTH , VT_TIME as subsets of VT_DATETIME for parameters 1-3, replacing VT_SUMMERPERIOD and adjusting VT_VACATIONPROG . New value types DT_THMS for time consisting of hour:minutes:seconds MQTT: Use MQTTDeviceID as a client ID for the broker, still defaults to BSB-LAN . ATTENTION: Check your config if you're broker relies on the client ID in any way for authorization etc. Version 1.1 10.11.2020 ATTENTION: DHW Push (\"Trinkwasser Push\") parameter had to be moved from 1601 to 1603 because 1601 has a different \"official\" meaning on some heaters. Please check and change your configuration if necessary ATTENTION: New categories added, most category numbers (using /K) will be shifted up by a few numbers. /JA URL command outputs average values Many new parameters decoded New parameters for device families 25, 44, 51, 59, 68, 85, 88, 90, 96, 97, 108, 134, 162, 163, 170, 195, 209, 211 Improved mobile display of webinterface Added definement \"BtSerial\" for diverting serial output to Serial2 where a Bluetooth adapter can be connected (5V->5V, GND->GND, RX->TX2, TX->RX2). Adapter has to be in slave mode and configured to 115200 bps, 8N1. Lots of added Polish translations New data types VT_BYTE10 , VT_SPF Bugfix for PPS bus regarding display of heating time programs Bugfix for MQTT Version 1.0 03.08.2020 /JI URL command outputs configuration in JSON structure /JC URL command gets list of possible values from user-defined list of functions. Example: /JC=505,700,701,702,711,1600,1602 Logging telegrams (log parameter 30000) now writes to separate file ( journal.txt ). It can be reset with /D0 (same time with datalog.txt) command and dumped with /DJ command. removed WIFI configuration as it is no longer applicable for the Due lots of new parameters for various device families Code optimization and restructuring, general increase of speed new schemativs for board layout V3 lots of bugfixes Version 0.44 11.05.2020 Added webserver functionality via SD card and various other improvements from GitHub user dukess Added JSON output for MQTT mobile friendlier web interface more parameters and device families last version completely tested on Mega 2560. Future versions may still run on the Mega, but will only be tested on the Arduino Due. Version 0.43 20.02.2020 Added support for HardwareSerial (Serial1) connection of the adapter. Use RX pin 19 in bus() definition to activate. See manual/forum for hardware details. Added definement DebugTelnet to divert serial output to telnet client (port 23, no password) in BSB_LAN_config.h Added possibility to control BSB-LAN (almost?) completely via USB-serial port. Most commands supported like their URL-counterparts, i.e. //xxx to query parameter xxx or //N to restart Arduino. Changed default device ID from 6 (room controller \"RGT1\") to unused ID 66 (\"LAN\") Many new parameters, please run /Q to see any possible changes for your device family and report back to us! Added global variables (arrays of 20 bytes) custom_floats[] and custom_longs[] for use with BSB_LAN_custom.h , for example to read sensors etc. Output of these variables is done via new URL command /U Added device families 23 and 29 (Gr\u00fcnenwald heaters) Added device families 49, 52, 59 (Weishaupt heaters) Added device fmilies 91, 92, 94, 118, 133, 136, 137, 165, 184, 188 (various controllers like QAA75 or AVS37) Added device family 171 (B\u00f6sch wood pellet system) Added device family 172 (SensoTherm BLW Split B (RVS21.826F/200)) Added device families 186 and 164 (Olymp WHS-500) Added device family 195 variant 2 (Thision 19 Plus / LMS14.111B109) Including DHT, 1Wire and burner status parameters (>20000) to MQTT English is now default language Updated various translations Added STL files to print a case with a 3D printer (thanks to FHEM user EPo!) Moved all sensors to /T , /H is now no longer used New virtual parameters 702/703 for Weishaupt room controller New virtual parameter 10003 to set outside temperature on newer systems Added text descriptions for error phases (6706 ff.) /Q is now more comprehensive New data types VT_CUSTOM_ENUM and VT_CUSTOM_BYTE to extract information from non-standard telegrams (such as 702/703) Bugfix: DHCP (ethernet) implementation Version 0.42 21.03.2019 Added localization! Now you can help translate BSB-LAN into your language! Simply copy one of the language files from the localization folder ( LANG_DE.h is the most complete) and translate whatever you can. Non-translated items will be displayed in German. Attention: Language definition in BSB_LAN_config.h is now #define LANG For example: #define LANG DE Added export to MQTT broker, use log_parameters [] in BSB_LAN_config.h to define parameters and activate MQTTBrokerIP definement. Added support for WiFi modules such as an ESP8266 or a Wemos Mega connected to Serial3 (RX:15/TX:14) of the Arduino. The ESP8266 has to be flashed with the AT firmware from Espressif to work. Please take note that WiFi over serial is by design much slower (only 115kpbs) than \"pure\" TCP/IP connections. Added new category \"34 - Konfiguration / Erweiterungsmodule\". All subsequent categories move one number up! Lots of new parameters coming from device family 123, please run /Q to see if some parameters also work for your heater! Lots of new yet unknown parameters through brute force querying :) (parameter numbers 10200 and above) Added further PPS-Bus commands, moved parameter numbers to 15000 and above Default PPS mode now \"listening\". Use third parameter of bus definition to switch between listening and controlling, 1 stands for controlling, everything else for listening, i.e. BSB bus(68,67,1) sends data to the heater, BSB bus(68,67) only receives data from heater / room controller. You can switch between modes at run-time with URL command /P2,x where x is either 1 (for controlling) or not 1 (for listening only) Fixed bug that crashed PPS bus queries Stability improvements for PPS bus Improved graph legend when plotting several parameters Added JSON export; query with /JQ=a,b,c,d... or push queries to /JQ or push set commands to /JS Logging of MAX! parameters now possible with logging parameter 20007 Added Waterstage WP device family (119) Added WHG Procon device family (195) Added unit to log file as well as average output Rewrote device matching in cmd_tbl to accomodate also device variant (Ger\u00e4tevariante). Run /Q to see if transition has worked for your device! Added BSB_LAN_custom_setup.h and BSB_LAN_custom_global.h for you to add individual code (best used in conjunction with BSB_LAN_custom.h ) Marked all (known) OEM parameters with flag FL_OEM . OEM parameters are set by default as read-only. To make them writeable, change FL_OEM from 5 to 4 in BSB_LAN_defs.h Increased performance for querying several parameters at once (similar to category query) Added config option to define subnet. /Q no longer needs #define DEBUG Bugfix ENUM memory adressing Bugfix in reset function /N , clear EEPROM during reset with /NE Added favicon.ico Split of cmdtbl into cmdtbl1 and cmdtbl2 due to Arduino's(?) limit of 32kB size of struct, opening up more space for new parameters. Version 0.41 17.03.2019 Interim release containing all changes from 0.42 above, except locaization, i.e. all text fragments are still part of the main code. Version 0.40 21.01.2018 Implemented polling of MAX! heating thermostats, display with URL command /X See BSB_LAN_custom.h for an example to transmit average room temperature to heating system. Added new category \"22 - Energiez\u00e4hler\" - please note that all subsequent categories move one up! New virtual parameter 1601 (manual TWW push) Added Fujitsu Waterstage WSYP100DG6 device family (211) Added CTC device family (103) New definement #define TRUSTED_IP2 to grant access to a second local IP address Added optional definement #define GatewayIP in BSB_LAN_config.h to enable setting router address different from x.x.x.1 Removed parameter 10109 because it is the same as 10000 Added function to check all known CommandIDs on your own heating system. Use /Q after enabling definement #define DEBUG in BSB_LAN_config.h Added parameter numbers to category menu Updated analyze.sh hopefully fixing the memory issue Moved HTML strings to html_strings.h Version 0.39 02.01.2018 Implemntation of PPS-Bus protocol. See /K40 for the limited commands available for this bus. Use setBusType(2) to set to PPS upon boot or /P2 to switch temporarily. Set GPIOs to input by using /Gxx,I Definement #define CUSTOM_COMMANDS added. Use this in your configuration to include individual code from BSB_LAN_custom.h (needs to be created by you!) which is executed at the end of each main loop. Variables custom_timer and custom_timer_compare have been added to execute code at arbitrary intervals. Added LogoBloc Unit L-UB 25C device family (95) several new parameters added Bugfix for logging Brennerlaufzeit Stufe 2 Version 0.38 22.11.2017 ATTENTION: New BSB_LAN_config.h configurations! You need to adjust your configuration when upgrading to this version! Webserver port is now defined in #define Port xx IP address is now defined in #define IPAddr 88,88,88,88 form - note the commas instead of dots! Special log parameters 20002 to 20006 have changed, see BSB_LAN_config.h for their new meaning Added new virtual parameter 701 (Pr\u00e4senztaste) which enters reduced temperature mode until next timed switch Added Br\u00f6tje BOB device family (138), including many new parameters! Added Br\u00f6tje SOB26 device family (28) Added Elco Aquatop 8es device family (85) Added Elco Thision 13 Plus device family (203) Added Weishaupt WTU 25-G familiy (50) Added output for absolute humidity (g/m3) for DHT22 sensors New schematics for Arduino/Raspberry board layout Included support for W5500 Ethernet2 shields. Activate definement ETHERNET_W5500 in BSB_LAN_config.h Including two-stage oil furnaces BC-counters and logging - please note that logging parameters have been adjusted, see BSB_LAN_config.h for new values! Added new options for commands /P and /S to allow specifying a different destination device during runtime Added new configuration definement CUSTOM_COMMANDS which includes BSB_LAN_custom.h at the end of each main loop. You may use custom_timer (set to current millis()) and custom_timer_compare to execute only every x milliseconds. Bugfixing SD-card logging in monitor mode Bugfix for setting hour:time parameters via webinterface Version 0.37 08.09.2017 LPB implementation! More than 450 parameters supported! Switch temporarily between LPB and BSB with the /Px command (with x equals to 0=BSB, 1=LPB) or use the setBusType config option to set bus-type at boot-time. Parameter numbers are the same as for BSB. Version 0.36 23.08.2017 bugfix: brought back VT_BIT list of options which were erroneously deleted :(, fixed/freed several memory issues Version 0.35 25.06.2017 new category \"Sitherm Pro\"; caution: category numbers all move up by one, starting from category \"W\u00e4rmepumpe\" (from 20 to 21) onwards. graph display of logging data now comes with crosshair and shows detailed values as tooltip improved SD-card output by factor 3 (from 16 to 45 kbps), switching SD-card library from from SD.h to SdFat.h (https://github.com/greiman/SdFat) brings another 10% performance boost adjusted paths and directory layout of SdFat to enable compiling from sketch directory. new data type VT_SINT for signed int data, currently only used in some Sitherm Pro parameters Version 0.34 29.05.2017 Log data can now be displayed as graph Webinterface can now display and set VT_BIT type parameters in human-readable form added KonfigRGx descriptions; caution: various sources used, no guarantee that descriptions match your individual heating system! VT_BIT is generally read-only in the webinterface. To set, use URL command /S with decimal representation of value fixed a bug with VT_SECONDS_SHORT5 , affecting parameters 9500 and 9540. fixed bug regarding Fujitsu's device family (from 127 to 170) moved libraries from folder libraries to src so they can be included without copying them to the Arduino libraries folder modified DallasTemperature.h's include path for OneWire.h Version 0.33 09.05.2017 no more heating system definements anymore due to new autodetect function based on device family (parameter 6225), or set device_id variable to parameter value directly two more security options: TRUSTED_IP to limit access to one IP address only, and HTTP authentication with username and password Average values are saved on SD-card if present and LOGGER definement is activated deactivate logging by setting /L0=0 - this way you can enable LOGGER definement without filling up SD card but still save average values new error codes for THISION added dump of data payload on website for commands of unknown type, greyed out unsopported parameters enable logging of telegrams (log parameter 30000) also in monitor mode (bsb.cpp and bsb.h updated) time from heating system is now retreived periodically from broadcast telegrams, further reducing bus activity new data type VT_BIT for parameters that set individual bits. Display as binary digits, setting still using decimal representation new data type VT_TEMP_SHORT5_US for unsigned one byte temperatures divided by 2 (so far only 887 Vorlaufsoll NormAussentemp) new data type VT_PERCENT5 for unsigned one byte temperatures divided by 2 (so far only 885 Pumpe-PWM Minimum) new data type VT_SECONDS_WORD5 for two byte seconds divided by 2 (so far only 2232, 9500 and 9540) new data type VT_SECONDS_SHORT4 for (signed?) one byte seconds divided by 4 (so far only 2235) new data type VT_SECONDS_SHORT5 for (signed?) one byte seconds divided by 5 (so far only 9500, 9540) new data type VT_SPEED2 for two byte rpm (so far only 7050) cleaned up set() function from apparent duplicate cases added cases for VT_TEMP_WORD , VT_SECONDS_WORD5 , VT_TEMP_SHORT , VT_TEMP_SHORT5 , VT_SECONDS_SHORT4 to set() function Version 0.32 18.04.2017 lots of new parameters suppoerted newly designed webinterface allows control over heating system without any additional software or cryptic URL commands. URL commands of course are still available, so no need to change anything when using FHEM etc. German webinterface available with definement LANG_DE new URL-command /LB=x to log only broadcast messages (x=1) or all bus messages (x=0) new URL-command /X to reset the Arduino (need to enable RESET definement in BSB_LAN_config.h ) new logging parameters 20002 and 20003 for hot water loading times and cycles moved DS18B20 logging parameters from 20010-20019 to 20200-20299 and DHT22 logging parameters from 20020-20029 to 20100 to 20199 moved average logging parameter from 20002 to 20004 set numerous parameters to read-only because that's what they obviously are (K33-36) various bugfixes Version 0.31 10.04.2017 increased dumping of logfile by factor 5 / as long as we still have memory left, you can increase logbuflen from 100 to 1000 to increase transfer speed from approx. 16 to 18 kB/s adjusted burner activity monitoring based on broadcast messages for Br\u00f6tje systems removed definement PROGNR_5895 because so far, it has only disabled an ENUM definition. removed definement PROGNR_6030 because double command ID could be resolved via BROETJE / non-BROETJE definements renamed BROETJE_SOB to BROETJE in order to allow for fine-grained distinction between different BROETJE cases (e.g. 6800ff) This means you have to activate TWO definements when using a Br\u00f6tje system now: The general BROETJE as well as BROETJE_SOB or BROETJE_BSW . Have a look at your serial log for parameters 6800 to see which command IDs fit your system and activate one of both accordingly. changed 16-Bit addressing of flash memory to 32-Bit to address crashes due to ever growing PROGMEM tables - now we have lots of air to breathe again for new command IDs :) removed trailing \\0 string from several ENUMs that led to wrong ENUM listings. Please keep in mind not to end ENUMs with a trailing \\0 ! Version 0.30 22.03.2017 Time library by Paul Stoffregen (https://github.com/PaulStoffregen/Time) is now required and included in the library folder. adds logging of raw telegram data to SD card with logging parameter 30000. Logging telegram data is affected by commands /V and /LU adds command /LU=x to log only known (x=0) or unknown (x=1) command IDs when logging telegram data removed define USE_BROADCAST , broadcast data is now always processed new internal functions GetDateTime, TranslateAddr, TranslateType Version 0.29 07.03.2017 adds command /C to display current configuration adds command /L to configure logging interval and parameters adds option for command /A to set 24h average parameters during runtime adds special parameter 20002 for logging /A command (24h averages, only makes sense for long logging intervals) bugfixes for logging DS18B20 sensors Version 0.28 05.03.2017 adds special parameters 20000++ for SD card logging of /B, /T and /H commands (see BSB_LAN_config.h for examples) adds version info to BSB_LAN web interface Version 0.27 01.03.2017 adds date field to log file (requires exact time to be sent by heating system) /D0 recreates datalog.txt file with table header added \"flags\" field to command table structure. Currently, only FL_RONLY is supported to make a parameter read-only added DEFAULT_FLAG in config. Defaults to NULL , i.e. all fields are read/writeable. Setting it to FL_RONLY makes all parameters read-only, e.g. for added level of security. Individual parameters can be set to NULL / FL_RONLY to make only these parameters writable/read-only. Version 0.26 27.02.2017 added functionality for logging on micro SD card, using the slot of the w5100 Ethernet shield more parameters added (e.g. 8009) Version 0.25 21.02.2017 more FUJITSU parameters added Version 0.24 14.02.2017 updated README with added functions added German translations of FAQ and README, courtesy of Ulf Dieckmann Version 0.23 12.02.2017 minor bugfix Version 0.22 07.02.2017 more FUJITSU parameters (hopefully) correct implementation of VT_VOLTAGE readings minor bugfixes Version 0.21 06.02.2017 added numerous parameters for Fujitsu W\u00e4rmepumpe, including new #define FUJITSU directive to activate these parameters due to different parameter numbers minor bugfixes Version 0.20 27.01.2017 added more parameters for Feststoffkessel minor bugfixes Version 0.19 01.01.2017 added humidity command /H , currently for DHT22 sensors added 24h average command /A , define parameters in BSB_LAN_config.h removed trailing whitespace from menu strings fixed command id 0x053D04A2 for THISION heaters included Rob Tillaart's DHT library because there are various libraries implementing the protocol and this one is used in the code for its ability to address multiple sensors with one object. removed /temp URL parameter as it is a duplicate of /T included loop to display DHT22 sensors in IPWE making compiling IPWE extensions optional ( #define IPWE ) Version 0.18 22.12.2016 split off configuration into bsb_lan_config.h split off command definitions into bsb_lan_defs.h changed GPIO return values from LOW/HIGH to 1/0 reactivated and updated IPWE (define parameters in config) check for protected pins when accessing GPIO (define in config) added schematics and PCB files to new subfolder \"schematics\" Version 0.17a 20.12.2016 minor errors corrected Version 0.17 20.12.2016 merged v0.16 with FHEM user miwi's changes Version 0.16 20.11.2016 removed IPWE and EthRly interface added GPIO interface merged parameters from J.Weber resolved duplicate command IDs Version 0.15a 25.07.2016 collated the commands from a Python project and this project, merged the two versions, corrected obvious errors. Inserted hypothetical numerical values in ENUM definitions where Broetje manuals documented only the message texts. added information from traces in a Broetje installation with an ISR-SSR controller and a WOB 25C oil furnace. Version 0.15 21.04.2016 added Solar and Pufferspeicher from Elco Logon B & Logon B MM Version 0.14 04.04.2016 minor bugfixes for Broetje SOB extended broadcast handling (experimental) Version 0.13 31.03.2016 change resistor value in receiving path from 4k7 to 1k5 added values 0x0f and 0x10 to Enum8005 fixed strings for Zeitprogramme added timeout for sending a message (1 second) added /T for querying one wire temperature sensors in mixed querys added special handling for Broetje SOB simplified settings Version 0.12 09.04.2015 added ONEWIRE_SENSORS to ipwe fixed parameter decoding for ELCO Thision heating system Version 0.11 07.04.2015 fixed parameter decoding for ELCO Thision heating system Version 0.10 15.03.2015 added more parameters for ELCO Thision heating system Version 0.9 09.03.2015 added more parameters for ELCO Thision heating system printTelegramm returns value string for further processing Version 0.8 05.03.2015 added parameters for ELCO Thision heating system added IPWE extension minor bugfixes Version 0.7 06.02.2015 added bus monitor functionality Version 0.6 02.02.2015 renamed SoftwareSerial to BSBSoftwareSerial changed folder structure to enable simple build with arduino sdk Version 0.5 02.02.2015 bugfixes added documentation (README) added passkey feature added /R feature (query reset value) added /E feature (list enum values) added setter for almost all value types fixed indentation added /V feature to set verbosity for serial output set baudrate to 115200 for serial output redirecting favicon request added some images of the BSB adapter Version 0.1 21.01.2015 initial version","title":"ChangeLog"},{"location":"CHANGELOG.html#changelog","text":"","title":"ChangeLog"},{"location":"CHANGELOG.html#current-master","text":"ATTENTION: BREAKING CHANGE! Streamlined topic structure for MQTT. New strucuture adds /status for querying a parameter, /set for SETting a parameter, /inf for sending data as INF telegram and /poll to force BSB-LAN to send an update of that parameter value to the broker. If you are using MQTT auto-discovery, ideally, calling /M1 should update these changes. However, if you are using your own configurations, you'll have to make adjustments here. ATTENTION: BREAKING CHANGE! When using JSON settings for MQTT, previously all messages were written to the BSB-LAN/json and thus basically immediately overwritten when logging several parameters. Now this setting only determines the format (and not format and topic) of the data that is written into /status of each parameter. For auto-discovery, plain text remains the only valid choice. ATTENTION: BREAKING CHANGE The acknowledgement message sent by BSB-LAN to the MQTT topic has been removed. Instead, QoS for publishing messages has been set to level 1. ATTENTION: BREAKING CHANGE: Log configuration values have changed. However, only users that have logged to UDP are affected and will have to adjust their settings. ATTENTION: /JK=ALL now lists all categories of all devices in LPB systems with more than one device. Use dev_fam (device family), dev_var (device variant), dev_id (destination device ID) and dev_name (device model) elements to sort and identify which category applies to the current destination device. Added setting to only publish log parameters to MQTT. Forcing MQTT updates via /poll topic are still possible. Added state_class for non cumulative sensors in MQTT auto-discovery Updated the room unit emulation in custom_functions to work with version 4.x. Bugfix for VT_ENERGY, added new data type VT_ENERGY10 and VT_ENERGY10_N Disabling parameters can now be done both with an empty value as well as by sending --- . Sending an empty value is still possible, but is depracated and will be removed at some later time. BSB-LAN now scans the BSB/LPB bus during startup (and later periodically, if not connected to heating system) for other devices on the bus. This significantly reduces access times later on for systems with more than one device on the bus. New version from new repo of PubSubClient. Hopefully with this version, disconnects will be greatly reduced. French and German translations of the manual added, special thanks to GitHub user @plauwers for this! Numerous bugfixes, especially for the JSON API","title":"Current Master"},{"location":"CHANGELOG.html#version-41","text":"06.11.2024 ATTENTION: BREAKING CHANGE! Changed topic structure for MQTT. This means that all existing MQTT entities in your home-automation system will have to be adjusted or created anew! The new structure now is BSB-LAN/// . ATTENTION: BREAKING CHANGE! Changed unique_id for MQTT auto-discovery. This means that all MQTT entities that have been created via auto-discovery will have to be created anew! ATTENTION: Configuration options fixed_device_family and fixed_device_variant have been removed since they no longer work for device-specific parameter lists. If your heating system is off when turning on the microcontroller, BSB-LAN will try to acquire the details every 60 seconds. ATTENTION: Change of configuration options results in new EEPROM layout, therefore EEPROM will be reinitialized based on configuration of BSB_LAN_config.h . MQTT auto-discovery now works for all devices, not only device ID 0. Use /M1! or /M0! to create/remove entities for device ID . Changed MQTT auto-discovery messages' flag to \"retain\" so that parameters remain available after reboot of Home Assistant.","title":"Version 4.1"},{"location":"CHANGELOG.html#version-40","text":"01.11.2024 ATTENTION: BREAKING CHANGE! Room temperature parameter 10000, 10001 and 10002 must now have the additional flag FL_SPECIAL_INF , otherwise setting temperature will not work! ATTENTION: BREAKING CHANGE! Outside temperature simulation parameter 10017 must have FL_SPECIAL_INF flag removed, otherwise setting temperature will not work! ATTENTION: BREAKING CHANGE! Room temperature parameter 10000, 10001 and 10002 for Weishaupt heaters (device families 49, 50, 51 and 59) must now have FL_SPECIAL_INF flag removd, otherwise setting temperature will not work! ATTENTION: BREAKING CHANGE! URL commands /U (dislpay user-defined variables) and /X (display MAX! values) have been removed as these values can now be accessed via parameters 20000++ ATTENTION: BREAKING CHANGE! PPS time program parameters (15050-15091) have been streamlined with BSB/LPB time program parameters, resulting in only one parameter per day (instead of six), covering three switch points (start and end) per parameter. ATTENTION: For ESP32, BSB-LAN requires ESP32 framework version 3.0.x - please look out for errors or strange behaviour (1-Wire sensors are still not tested) as well as any other kind of strange behaviour/crashes. ATTENTION: New configuration options in BSB_LAN_config.h - please update your existing configuration files! Web-based configuration will be overwritten with config file settings due to change in EEPROM layout! ATTENTION: New manual URL: https://docs.bsb-lan.de/ BUTTONS and RGT_EMULATION have been moved from main code to custom_functions library. To continue using them, make use of BSB_LAN_custom_*.h files and activate CUSTOM_COMMANDS definement. Most configuration definements removed from BSB_LAN_config.h . Almost all functionality can now be configured without reflashing. BSB-LAN now supports MQTT auto discovery (supported e.g. by Home Assistant). To create devices, call URL command /M1 , to remove them call /M0 ATTENTION: MQTT auto discovery creates a general switch for the BSB-LAN device in Home Assistant. This switch will immediately write all parameters with the values stored in Home Assistant. DO NOT USE THIS SWITCH unless you REALLY know what it does! \"Set\" button in webinterface now also works with non-default destination devices (i.e. 1 instead of 0) Queried/set parameters are now forwarded to the MQTT broker (if MQTT is enabled) Previously used /M1 and /M0 for toggling monitor function have been removed since it can now be accessed via the configuration in the webinterface. Listing categories with /K now also works with destination device (e.g. /K!1 for destination device 1, default is 0). Important bugfix for OTA update: Previous versions had a hard limit on file size which newer heating systems with several hundred parameters hit, so no OTA update was possible. This is now fixed, but affected users will have to make a USB-based update one more time. 1-Wire- and DHT-sensors are now be disabled with value -1 instead of 0. In web interface, an empty field is also accepted. MQTTTopicPrefix is no longer optional, \"fromBroker\" topic removed (formerly used to send commands to BSB-LAN via MQTT) Using the 24h averages functionality no longer requires the use of an SD card. SD card will only be used to store averages if interval logging to SD card is active. New PPS room unit variant for RVD130, which increases high nibble of magic byte at every transaction. Polling current time from NTP server is active by default. Deactivate by setting ntp_server to empty string. New parameter flag FL_NOSWAP_QUR for parameters that do not swap the first two bytes of command ID in QUR telegram New parameter flag FL_FORCE_INF for parameters from which we are certain they only work with INF (such as room temperature). Will force an INF telegram even if /S is used to set the parameter (allows setting room temperature via web interface) BSB-LAN logo watermark in log graph display (DE-cr) Binary ENUMs (yes/no, on/off etc.) now return either 0 or 1 when queried, not - as is the case with some heating systems - 0 or 255. Setting any value from 1 to 255 is still possible. Fixed a breaking bug in PPS that prevented running properly in active/room unit mode. Fixed bug (or, based on perspective, reduced security) that prevented issuing commands via serial/telnet console when HTTP authentication was active Various bugfixes, among others logging of bus telegrams on storage device. New OneWireNg library version This release has been supported by the following sponsors: Erich Scheilko","title":"Version 4.0"},{"location":"CHANGELOG.html#version-33","text":"12.03.2024 ATTENTION: New configuration options in BSB_LAN_config.h - please update your existing configuration files! ESP32: Support for receiving date and time via NTP instead of taking it from the heater. MQTT broker setting now accepts domain names as well as IP addresses. An optional port can be added after a trailing colon, e.g. broker.my-domain.com:1884. Otherwise defaults to 1883. ESP32 NodeMCU: Support for optional additional SD card adapter. SPI pins can be configured in BSB_LAN_config.h , defaulting to standard SPI pins 5, 18, 19 and 23. ESP32: Switching between log storage device (SD card / internal flash) can now be done in the web interface. ESP32: Create temporary WiFi AP in case Ethernet connection fails ESP32 NodeMCU: EEPROM clear pin has changed from 18 to 21 in order not to collide with SPI SD card adapters. This release has been supported by the following GitHub sponsors: jsimon3","title":"Version 3.3"},{"location":"CHANGELOG.html#version-32","text":"15.11.2023 ATTENTION: In BSB_LAN_config.h , new layout of log_parameters , avg_parameters and ipwe_parameters now written in curly brackets and different size (40 instead of 80) and type ( parameter instead of float ). Please update your BSB_LAN_config.h accordingly to prevent errors! Added configuration file versioning checks to prevent the use of outdated configuration files with newer software versions. Variable esp32_save_energy now defaults to false because it only seems to make sense when using LAN connection or if you use WiFi and can live with the performance impact. Added folder custom_functions where code examples for useful functions will be collected which are nevertheless too specific to be added to BSB-LAN's core code. Added custom function example for mapping DS18B20 sensors to fixed custom floats parameters This release has been supported by the following GitHub Sponsors: BraweProg, fdobrovolny, Harald","title":"Version 3.2"},{"location":"CHANGELOG.html#version-31","text":"04.06.2023 ATTENTION: For ESP32 devices using internal flash for log storage: Filesystem was switched from SPIFFS to LittleFS. Download important log data before updating! ATTENTION: In BSB_LAN_config.h , the structure of log_parameters , avg_parameters and ipwe_parameters has changed and now includes the destination device on the bus! ATTENTION: New EEPROM schema may result in lost web-configuration settings when updating. Note your settings prior to updating! ATTENTION: New variable esp32_save_energy in BSB_LAN_config.h - update before compiling new version. ATTENTION: New variable bssid in BSB_LAN_config.h - defines a fixed BSSID address to connect to when using WiFi on ESP32. Parameters can now be queried from other devices on the bus using the ! notation also when logging (including MQTT) or using average or IPWE parameters Enable/disable power saving on ESP32. Saves 20% of energy, but can have impact on WiFi range and downloading speed of log files when using WiFi (LAN not affected) Improved performance and flash memory usage on ESP32 devices using internal flash for logging due to switch from SPIFFS to LittleFS To improve handling of large datalogs: date range selection in /DG , new url commands /Da,b , /DA , /DB , /Dn , /DI and /DKn This release has been supported by the following GitHub Sponsors: lapixo, nrobadey","title":"Version 3.1"},{"location":"CHANGELOG.html#version-30","text":"16.03.2023 ATTENTION: BSB_LAN_custom_defs.h .default needs to be renamed to BSB_LAN_custom_defs.h and only contains a very limited set of parameters by default. See the manual for getting device-specific parameter lists. Add new /LN URL command to force logging irrespective of current interval. Improved library checks: No need for ESP32 users to remove ArduinoMDNS and WiFiSpi folders anymore. New SdFat version 2 for Arduino Due New data type VT_BINARY_ENUM This release has been supported by the following GitHub Sponsors: Alex, DE-cr","title":"Version 3.0"},{"location":"CHANGELOG.html#version-22","text":"01.11.2022 ATTENTION: Several variables in BSB_LAN_config.h .default have changed their variable type, it's probably best to re-create your BSB_LAN_config.h from scratch. Parameter numbers are now floating point (i.e. XXXX.Y) because some parameters contain two different kinds of information. These are now shown in decimal increments of 0.1. You can still qurey the \"main\" parameter via XXXX (without .Y) Lots of bugfixes and new data types Device-specific parameter lists supported","title":"Version 2.2"},{"location":"CHANGELOG.html#version-21","text":"30.07.2022 Many new parameters for LMU64 ATTENTION: New categories for LMU64 and RVD/RVP controllers due to their different numbering schemes. Will be filled over time. PPS and sensor categories have moved up by two. ESP32: OTA now uses system-wide HTTP AUTH authentication credentials Improved built-in chart display /DG , new configuration definement #define USE_ADVANCED_PLOT_LOG_FILE - thanks to Christian Ramharter Optional logging via UDP broadcast added (configurable, same parameters and format as in SD card logging) Lots of bugfixes","title":"Version 2.1"},{"location":"CHANGELOG.html#version-20","text":"31.12.2021 ATTENTION: LOTS of new functionalities, some of which break compatibility with previous versions, so be careful and read all the docs if you make the upgrade! ATTENTION: Added and reorganized PPS parameters, almost all parameter numbers have changed! ATTENTION: Change of EEPROM layout will lead to loading of default values from BSB_LAN_config.h ! You need to write settings to EEPROM in configuration menu again! ATTENTION: Folder locations and filenames have been adjusted for easier installation! If you update your installation, please take note that the configuration is now in BSB_LAN_config.h (LAN in caps), and no longer in BSB_lan_config.h (lower-caps \"lan\") ATTENTION: HTTP-Authentication configuration has changed and now uses plain text instead of Base64 encoded strings! Thanks to GitHub user do13, this code now also compiles on a ESP32, tested on NodeMCU-ESP32, Olimex ESP32-POE and Olimex ESP32-EVB boards. ESP32 code uses SDK version 2.0.2, please take note when configuring Arduino IDE! OTA Updates now possible for ESP32-based devices Support for special PPS devices (based on DC225/Honeywell MCBA) added Webinterface allows for configuration of most settings without the need to re-flash, also split into basic and extended configuration Added better WiFi option for Arduinos through Jiri Bilek's WiFiSpi library, using an ESP8266-based microcontroller like Wemos D1 mini or LoLin NodeMCU. Older WiFi-via-Serial approach no longer supported. Added MDNS_SUPPORT definement in config so that BSB-LAN can be discovered through mDNS If BSB-LAN cannot connect to WiFi on ESP32, it will set up its own access point BSB-LAN with password BSB-LPB-PPS-LAN for 30 minutes. After that, it will reboot and try to connect again. New MQTT functions, including allowing any parameter to be set by an MQTT message and actively query any parameter once by sending an MQTT message Added support for BME280 sensors Setting a temporary destination address for querying parameters by adding !x (where x is the destination id), e.g. /6224!10 to query the identification of the display unit URL commands /A /B /T and /JA have been removed as all sensors can now be accessed via parameter numbers 20000 and above as well as (currently) under new category K49. New categories added, subsequent categories have been shifted up HTTP Authentification now uses clear text username and password in configuration PPS users can now send time and day of week to heater Lots of new parameters added URL command /JR allows for querying the standard (reset) value of a parameter in JSON format URL command /JB allows for backing up parameters to JSON file New library for DHT22 should provide more reliable results Consolidated data and value types: New data types VT_YEAR , VT_DAYMONTH , VT_TIME as subsets of VT_DATETIME for parameters 1-3, replacing VT_SUMMERPERIOD and adjusting VT_VACATIONPROG . New value types DT_THMS for time consisting of hour:minutes:seconds MQTT: Use MQTTDeviceID as a client ID for the broker, still defaults to BSB-LAN . ATTENTION: Check your config if you're broker relies on the client ID in any way for authorization etc.","title":"Version 2.0"},{"location":"CHANGELOG.html#version-11","text":"10.11.2020 ATTENTION: DHW Push (\"Trinkwasser Push\") parameter had to be moved from 1601 to 1603 because 1601 has a different \"official\" meaning on some heaters. Please check and change your configuration if necessary ATTENTION: New categories added, most category numbers (using /K) will be shifted up by a few numbers. /JA URL command outputs average values Many new parameters decoded New parameters for device families 25, 44, 51, 59, 68, 85, 88, 90, 96, 97, 108, 134, 162, 163, 170, 195, 209, 211 Improved mobile display of webinterface Added definement \"BtSerial\" for diverting serial output to Serial2 where a Bluetooth adapter can be connected (5V->5V, GND->GND, RX->TX2, TX->RX2). Adapter has to be in slave mode and configured to 115200 bps, 8N1. Lots of added Polish translations New data types VT_BYTE10 , VT_SPF Bugfix for PPS bus regarding display of heating time programs Bugfix for MQTT","title":"Version 1.1"},{"location":"CHANGELOG.html#version-10","text":"03.08.2020 /JI URL command outputs configuration in JSON structure /JC URL command gets list of possible values from user-defined list of functions. Example: /JC=505,700,701,702,711,1600,1602 Logging telegrams (log parameter 30000) now writes to separate file ( journal.txt ). It can be reset with /D0 (same time with datalog.txt) command and dumped with /DJ command. removed WIFI configuration as it is no longer applicable for the Due lots of new parameters for various device families Code optimization and restructuring, general increase of speed new schemativs for board layout V3 lots of bugfixes","title":"Version 1.0"},{"location":"CHANGELOG.html#version-044","text":"11.05.2020 Added webserver functionality via SD card and various other improvements from GitHub user dukess Added JSON output for MQTT mobile friendlier web interface more parameters and device families last version completely tested on Mega 2560. Future versions may still run on the Mega, but will only be tested on the Arduino Due.","title":"Version 0.44"},{"location":"CHANGELOG.html#version-043","text":"20.02.2020 Added support for HardwareSerial (Serial1) connection of the adapter. Use RX pin 19 in bus() definition to activate. See manual/forum for hardware details. Added definement DebugTelnet to divert serial output to telnet client (port 23, no password) in BSB_LAN_config.h Added possibility to control BSB-LAN (almost?) completely via USB-serial port. Most commands supported like their URL-counterparts, i.e. //xxx to query parameter xxx or //N to restart Arduino. Changed default device ID from 6 (room controller \"RGT1\") to unused ID 66 (\"LAN\") Many new parameters, please run /Q to see any possible changes for your device family and report back to us! Added global variables (arrays of 20 bytes) custom_floats[] and custom_longs[] for use with BSB_LAN_custom.h , for example to read sensors etc. Output of these variables is done via new URL command /U Added device families 23 and 29 (Gr\u00fcnenwald heaters) Added device families 49, 52, 59 (Weishaupt heaters) Added device fmilies 91, 92, 94, 118, 133, 136, 137, 165, 184, 188 (various controllers like QAA75 or AVS37) Added device family 171 (B\u00f6sch wood pellet system) Added device family 172 (SensoTherm BLW Split B (RVS21.826F/200)) Added device families 186 and 164 (Olymp WHS-500) Added device family 195 variant 2 (Thision 19 Plus / LMS14.111B109) Including DHT, 1Wire and burner status parameters (>20000) to MQTT English is now default language Updated various translations Added STL files to print a case with a 3D printer (thanks to FHEM user EPo!) Moved all sensors to /T , /H is now no longer used New virtual parameters 702/703 for Weishaupt room controller New virtual parameter 10003 to set outside temperature on newer systems Added text descriptions for error phases (6706 ff.) /Q is now more comprehensive New data types VT_CUSTOM_ENUM and VT_CUSTOM_BYTE to extract information from non-standard telegrams (such as 702/703) Bugfix: DHCP (ethernet) implementation","title":"Version 0.43"},{"location":"CHANGELOG.html#version-042","text":"21.03.2019 Added localization! Now you can help translate BSB-LAN into your language! Simply copy one of the language files from the localization folder ( LANG_DE.h is the most complete) and translate whatever you can. Non-translated items will be displayed in German. Attention: Language definition in BSB_LAN_config.h is now #define LANG For example: #define LANG DE Added export to MQTT broker, use log_parameters [] in BSB_LAN_config.h to define parameters and activate MQTTBrokerIP definement. Added support for WiFi modules such as an ESP8266 or a Wemos Mega connected to Serial3 (RX:15/TX:14) of the Arduino. The ESP8266 has to be flashed with the AT firmware from Espressif to work. Please take note that WiFi over serial is by design much slower (only 115kpbs) than \"pure\" TCP/IP connections. Added new category \"34 - Konfiguration / Erweiterungsmodule\". All subsequent categories move one number up! Lots of new parameters coming from device family 123, please run /Q to see if some parameters also work for your heater! Lots of new yet unknown parameters through brute force querying :) (parameter numbers 10200 and above) Added further PPS-Bus commands, moved parameter numbers to 15000 and above Default PPS mode now \"listening\". Use third parameter of bus definition to switch between listening and controlling, 1 stands for controlling, everything else for listening, i.e. BSB bus(68,67,1) sends data to the heater, BSB bus(68,67) only receives data from heater / room controller. You can switch between modes at run-time with URL command /P2,x where x is either 1 (for controlling) or not 1 (for listening only) Fixed bug that crashed PPS bus queries Stability improvements for PPS bus Improved graph legend when plotting several parameters Added JSON export; query with /JQ=a,b,c,d... or push queries to /JQ or push set commands to /JS Logging of MAX! parameters now possible with logging parameter 20007 Added Waterstage WP device family (119) Added WHG Procon device family (195) Added unit to log file as well as average output Rewrote device matching in cmd_tbl to accomodate also device variant (Ger\u00e4tevariante). Run /Q to see if transition has worked for your device! Added BSB_LAN_custom_setup.h and BSB_LAN_custom_global.h for you to add individual code (best used in conjunction with BSB_LAN_custom.h ) Marked all (known) OEM parameters with flag FL_OEM . OEM parameters are set by default as read-only. To make them writeable, change FL_OEM from 5 to 4 in BSB_LAN_defs.h Increased performance for querying several parameters at once (similar to category query) Added config option to define subnet. /Q no longer needs #define DEBUG Bugfix ENUM memory adressing Bugfix in reset function /N , clear EEPROM during reset with /NE Added favicon.ico Split of cmdtbl into cmdtbl1 and cmdtbl2 due to Arduino's(?) limit of 32kB size of struct, opening up more space for new parameters.","title":"Version 0.42"},{"location":"CHANGELOG.html#version-041","text":"17.03.2019 Interim release containing all changes from 0.42 above, except locaization, i.e. all text fragments are still part of the main code.","title":"Version 0.41"},{"location":"CHANGELOG.html#version-040","text":"21.01.2018 Implemented polling of MAX! heating thermostats, display with URL command /X See BSB_LAN_custom.h for an example to transmit average room temperature to heating system. Added new category \"22 - Energiez\u00e4hler\" - please note that all subsequent categories move one up! New virtual parameter 1601 (manual TWW push) Added Fujitsu Waterstage WSYP100DG6 device family (211) Added CTC device family (103) New definement #define TRUSTED_IP2 to grant access to a second local IP address Added optional definement #define GatewayIP in BSB_LAN_config.h to enable setting router address different from x.x.x.1 Removed parameter 10109 because it is the same as 10000 Added function to check all known CommandIDs on your own heating system. Use /Q after enabling definement #define DEBUG in BSB_LAN_config.h Added parameter numbers to category menu Updated analyze.sh hopefully fixing the memory issue Moved HTML strings to html_strings.h","title":"Version 0.40"},{"location":"CHANGELOG.html#version-039","text":"02.01.2018 Implemntation of PPS-Bus protocol. See /K40 for the limited commands available for this bus. Use setBusType(2) to set to PPS upon boot or /P2 to switch temporarily. Set GPIOs to input by using /Gxx,I Definement #define CUSTOM_COMMANDS added. Use this in your configuration to include individual code from BSB_LAN_custom.h (needs to be created by you!) which is executed at the end of each main loop. Variables custom_timer and custom_timer_compare have been added to execute code at arbitrary intervals. Added LogoBloc Unit L-UB 25C device family (95) several new parameters added Bugfix for logging Brennerlaufzeit Stufe 2","title":"Version 0.39"},{"location":"CHANGELOG.html#version-038","text":"22.11.2017 ATTENTION: New BSB_LAN_config.h configurations! You need to adjust your configuration when upgrading to this version! Webserver port is now defined in #define Port xx IP address is now defined in #define IPAddr 88,88,88,88 form - note the commas instead of dots! Special log parameters 20002 to 20006 have changed, see BSB_LAN_config.h for their new meaning Added new virtual parameter 701 (Pr\u00e4senztaste) which enters reduced temperature mode until next timed switch Added Br\u00f6tje BOB device family (138), including many new parameters! Added Br\u00f6tje SOB26 device family (28) Added Elco Aquatop 8es device family (85) Added Elco Thision 13 Plus device family (203) Added Weishaupt WTU 25-G familiy (50) Added output for absolute humidity (g/m3) for DHT22 sensors New schematics for Arduino/Raspberry board layout Included support for W5500 Ethernet2 shields. Activate definement ETHERNET_W5500 in BSB_LAN_config.h Including two-stage oil furnaces BC-counters and logging - please note that logging parameters have been adjusted, see BSB_LAN_config.h for new values! Added new options for commands /P and /S to allow specifying a different destination device during runtime Added new configuration definement CUSTOM_COMMANDS which includes BSB_LAN_custom.h at the end of each main loop. You may use custom_timer (set to current millis()) and custom_timer_compare to execute only every x milliseconds. Bugfixing SD-card logging in monitor mode Bugfix for setting hour:time parameters via webinterface","title":"Version 0.38"},{"location":"CHANGELOG.html#version-037","text":"08.09.2017 LPB implementation! More than 450 parameters supported! Switch temporarily between LPB and BSB with the /Px command (with x equals to 0=BSB, 1=LPB) or use the setBusType config option to set bus-type at boot-time. Parameter numbers are the same as for BSB.","title":"Version 0.37"},{"location":"CHANGELOG.html#version-036","text":"23.08.2017 bugfix: brought back VT_BIT list of options which were erroneously deleted :(, fixed/freed several memory issues","title":"Version 0.36"},{"location":"CHANGELOG.html#version-035","text":"25.06.2017 new category \"Sitherm Pro\"; caution: category numbers all move up by one, starting from category \"W\u00e4rmepumpe\" (from 20 to 21) onwards. graph display of logging data now comes with crosshair and shows detailed values as tooltip improved SD-card output by factor 3 (from 16 to 45 kbps), switching SD-card library from from SD.h to SdFat.h (https://github.com/greiman/SdFat) brings another 10% performance boost adjusted paths and directory layout of SdFat to enable compiling from sketch directory. new data type VT_SINT for signed int data, currently only used in some Sitherm Pro parameters","title":"Version 0.35"},{"location":"CHANGELOG.html#version-034","text":"29.05.2017 Log data can now be displayed as graph Webinterface can now display and set VT_BIT type parameters in human-readable form added KonfigRGx descriptions; caution: various sources used, no guarantee that descriptions match your individual heating system! VT_BIT is generally read-only in the webinterface. To set, use URL command /S with decimal representation of value fixed a bug with VT_SECONDS_SHORT5 , affecting parameters 9500 and 9540. fixed bug regarding Fujitsu's device family (from 127 to 170) moved libraries from folder libraries to src so they can be included without copying them to the Arduino libraries folder modified DallasTemperature.h's include path for OneWire.h","title":"Version 0.34"},{"location":"CHANGELOG.html#version-033","text":"09.05.2017 no more heating system definements anymore due to new autodetect function based on device family (parameter 6225), or set device_id variable to parameter value directly two more security options: TRUSTED_IP to limit access to one IP address only, and HTTP authentication with username and password Average values are saved on SD-card if present and LOGGER definement is activated deactivate logging by setting /L0=0 - this way you can enable LOGGER definement without filling up SD card but still save average values new error codes for THISION added dump of data payload on website for commands of unknown type, greyed out unsopported parameters enable logging of telegrams (log parameter 30000) also in monitor mode (bsb.cpp and bsb.h updated) time from heating system is now retreived periodically from broadcast telegrams, further reducing bus activity new data type VT_BIT for parameters that set individual bits. Display as binary digits, setting still using decimal representation new data type VT_TEMP_SHORT5_US for unsigned one byte temperatures divided by 2 (so far only 887 Vorlaufsoll NormAussentemp) new data type VT_PERCENT5 for unsigned one byte temperatures divided by 2 (so far only 885 Pumpe-PWM Minimum) new data type VT_SECONDS_WORD5 for two byte seconds divided by 2 (so far only 2232, 9500 and 9540) new data type VT_SECONDS_SHORT4 for (signed?) one byte seconds divided by 4 (so far only 2235) new data type VT_SECONDS_SHORT5 for (signed?) one byte seconds divided by 5 (so far only 9500, 9540) new data type VT_SPEED2 for two byte rpm (so far only 7050) cleaned up set() function from apparent duplicate cases added cases for VT_TEMP_WORD , VT_SECONDS_WORD5 , VT_TEMP_SHORT , VT_TEMP_SHORT5 , VT_SECONDS_SHORT4 to set() function","title":"Version 0.33"},{"location":"CHANGELOG.html#version-032","text":"18.04.2017 lots of new parameters suppoerted newly designed webinterface allows control over heating system without any additional software or cryptic URL commands. URL commands of course are still available, so no need to change anything when using FHEM etc. German webinterface available with definement LANG_DE new URL-command /LB=x to log only broadcast messages (x=1) or all bus messages (x=0) new URL-command /X to reset the Arduino (need to enable RESET definement in BSB_LAN_config.h ) new logging parameters 20002 and 20003 for hot water loading times and cycles moved DS18B20 logging parameters from 20010-20019 to 20200-20299 and DHT22 logging parameters from 20020-20029 to 20100 to 20199 moved average logging parameter from 20002 to 20004 set numerous parameters to read-only because that's what they obviously are (K33-36) various bugfixes","title":"Version 0.32"},{"location":"CHANGELOG.html#version-031","text":"10.04.2017 increased dumping of logfile by factor 5 / as long as we still have memory left, you can increase logbuflen from 100 to 1000 to increase transfer speed from approx. 16 to 18 kB/s adjusted burner activity monitoring based on broadcast messages for Br\u00f6tje systems removed definement PROGNR_5895 because so far, it has only disabled an ENUM definition. removed definement PROGNR_6030 because double command ID could be resolved via BROETJE / non-BROETJE definements renamed BROETJE_SOB to BROETJE in order to allow for fine-grained distinction between different BROETJE cases (e.g. 6800ff) This means you have to activate TWO definements when using a Br\u00f6tje system now: The general BROETJE as well as BROETJE_SOB or BROETJE_BSW . Have a look at your serial log for parameters 6800 to see which command IDs fit your system and activate one of both accordingly. changed 16-Bit addressing of flash memory to 32-Bit to address crashes due to ever growing PROGMEM tables - now we have lots of air to breathe again for new command IDs :) removed trailing \\0 string from several ENUMs that led to wrong ENUM listings. Please keep in mind not to end ENUMs with a trailing \\0 !","title":"Version 0.31"},{"location":"CHANGELOG.html#version-030","text":"22.03.2017 Time library by Paul Stoffregen (https://github.com/PaulStoffregen/Time) is now required and included in the library folder. adds logging of raw telegram data to SD card with logging parameter 30000. Logging telegram data is affected by commands /V and /LU adds command /LU=x to log only known (x=0) or unknown (x=1) command IDs when logging telegram data removed define USE_BROADCAST , broadcast data is now always processed new internal functions GetDateTime, TranslateAddr, TranslateType","title":"Version 0.30"},{"location":"CHANGELOG.html#version-029","text":"07.03.2017 adds command /C to display current configuration adds command /L to configure logging interval and parameters adds option for command /A to set 24h average parameters during runtime adds special parameter 20002 for logging /A command (24h averages, only makes sense for long logging intervals) bugfixes for logging DS18B20 sensors","title":"Version 0.29"},{"location":"CHANGELOG.html#version-028","text":"05.03.2017 adds special parameters 20000++ for SD card logging of /B, /T and /H commands (see BSB_LAN_config.h for examples) adds version info to BSB_LAN web interface","title":"Version 0.28"},{"location":"CHANGELOG.html#version-027","text":"01.03.2017 adds date field to log file (requires exact time to be sent by heating system) /D0 recreates datalog.txt file with table header added \"flags\" field to command table structure. Currently, only FL_RONLY is supported to make a parameter read-only added DEFAULT_FLAG in config. Defaults to NULL , i.e. all fields are read/writeable. Setting it to FL_RONLY makes all parameters read-only, e.g. for added level of security. Individual parameters can be set to NULL / FL_RONLY to make only these parameters writable/read-only.","title":"Version 0.27"},{"location":"CHANGELOG.html#version-026","text":"27.02.2017 added functionality for logging on micro SD card, using the slot of the w5100 Ethernet shield more parameters added (e.g. 8009)","title":"Version 0.26"},{"location":"CHANGELOG.html#version-025","text":"21.02.2017 more FUJITSU parameters added","title":"Version 0.25"},{"location":"CHANGELOG.html#version-024","text":"14.02.2017 updated README with added functions added German translations of FAQ and README, courtesy of Ulf Dieckmann","title":"Version 0.24"},{"location":"CHANGELOG.html#version-023","text":"12.02.2017 minor bugfix","title":"Version 0.23"},{"location":"CHANGELOG.html#version-022","text":"07.02.2017 more FUJITSU parameters (hopefully) correct implementation of VT_VOLTAGE readings minor bugfixes","title":"Version 0.22"},{"location":"CHANGELOG.html#version-021","text":"06.02.2017 added numerous parameters for Fujitsu W\u00e4rmepumpe, including new #define FUJITSU directive to activate these parameters due to different parameter numbers minor bugfixes","title":"Version 0.21"},{"location":"CHANGELOG.html#version-020","text":"27.01.2017 added more parameters for Feststoffkessel minor bugfixes","title":"Version 0.20"},{"location":"CHANGELOG.html#version-019","text":"01.01.2017 added humidity command /H , currently for DHT22 sensors added 24h average command /A , define parameters in BSB_LAN_config.h removed trailing whitespace from menu strings fixed command id 0x053D04A2 for THISION heaters included Rob Tillaart's DHT library because there are various libraries implementing the protocol and this one is used in the code for its ability to address multiple sensors with one object. removed /temp URL parameter as it is a duplicate of /T included loop to display DHT22 sensors in IPWE making compiling IPWE extensions optional ( #define IPWE )","title":"Version 0.19"},{"location":"CHANGELOG.html#version-018","text":"22.12.2016 split off configuration into bsb_lan_config.h split off command definitions into bsb_lan_defs.h changed GPIO return values from LOW/HIGH to 1/0 reactivated and updated IPWE (define parameters in config) check for protected pins when accessing GPIO (define in config) added schematics and PCB files to new subfolder \"schematics\"","title":"Version 0.18"},{"location":"CHANGELOG.html#version-017a","text":"20.12.2016 minor errors corrected","title":"Version 0.17a"},{"location":"CHANGELOG.html#version-017","text":"20.12.2016 merged v0.16 with FHEM user miwi's changes","title":"Version 0.17"},{"location":"CHANGELOG.html#version-016","text":"20.11.2016 removed IPWE and EthRly interface added GPIO interface merged parameters from J.Weber resolved duplicate command IDs","title":"Version 0.16"},{"location":"CHANGELOG.html#version-015a","text":"25.07.2016 collated the commands from a Python project and this project, merged the two versions, corrected obvious errors. Inserted hypothetical numerical values in ENUM definitions where Broetje manuals documented only the message texts. added information from traces in a Broetje installation with an ISR-SSR controller and a WOB 25C oil furnace.","title":"Version 0.15a"},{"location":"CHANGELOG.html#version-015","text":"21.04.2016 added Solar and Pufferspeicher from Elco Logon B & Logon B MM","title":"Version 0.15"},{"location":"CHANGELOG.html#version-014","text":"04.04.2016 minor bugfixes for Broetje SOB extended broadcast handling (experimental)","title":"Version 0.14"},{"location":"CHANGELOG.html#version-013","text":"31.03.2016 change resistor value in receiving path from 4k7 to 1k5 added values 0x0f and 0x10 to Enum8005 fixed strings for Zeitprogramme added timeout for sending a message (1 second) added /T for querying one wire temperature sensors in mixed querys added special handling for Broetje SOB simplified settings","title":"Version 0.13"},{"location":"CHANGELOG.html#version-012","text":"09.04.2015 added ONEWIRE_SENSORS to ipwe fixed parameter decoding for ELCO Thision heating system","title":"Version 0.12"},{"location":"CHANGELOG.html#version-011","text":"07.04.2015 fixed parameter decoding for ELCO Thision heating system","title":"Version 0.11"},{"location":"CHANGELOG.html#version-010","text":"15.03.2015 added more parameters for ELCO Thision heating system","title":"Version 0.10"},{"location":"CHANGELOG.html#version-09","text":"09.03.2015 added more parameters for ELCO Thision heating system printTelegramm returns value string for further processing","title":"Version 0.9"},{"location":"CHANGELOG.html#version-08","text":"05.03.2015 added parameters for ELCO Thision heating system added IPWE extension minor bugfixes","title":"Version 0.8"},{"location":"CHANGELOG.html#version-07","text":"06.02.2015 added bus monitor functionality","title":"Version 0.7"},{"location":"CHANGELOG.html#version-06","text":"02.02.2015 renamed SoftwareSerial to BSBSoftwareSerial changed folder structure to enable simple build with arduino sdk","title":"Version 0.6"},{"location":"CHANGELOG.html#version-05","text":"02.02.2015 bugfixes added documentation (README) added passkey feature added /R feature (query reset value) added /E feature (list enum values) added setter for almost all value types fixed indentation added /V feature to set verbosity for serial output set baudrate to 115200 for serial output redirecting favicon request added some images of the BSB adapter","title":"Version 0.5"},{"location":"CHANGELOG.html#version-01","text":"21.01.2015 initial version","title":"Version 0.1"},{"location":"bsb-lan_adapter.html","text":"The BSB-LAN adapter Adapter boards available - contact Frederik at bsb(\u00e4t)code-it.de (German or English) for more details. In order to connect to your heating system with a microcontroller, you need to have an adapter board that does the necessary logic-level conversion: The adapter is then plugged right onto the microcontroller, either underneath the pins of the ESP32-NodeMCU or onto the UEXT connector of the Olimex: The two different types of ESP32 adapters (Olimex and ESP32-NoceMCU) only vary in the location of their connectors, the other parts of the board are identical. The Arduino Due board contains an EEPROM chip because the Due does not come with on-board EEPROM. Therefore, you can re-use the Arduino Due board on an ESP32 microcontroller (if you connect the correct pins with wires), but you cannot use an adapter for the ESP32 on an Arduino Due. Suitable microcontrollers BSB-LAN can be installed on three different types of microcontrollers: ESP32-Olimex ESP32-NodeMCU (30 pin version only!) and Arduino Due. Olimex produces several kinds of boards: We recommend either the Olimex ESP32-EVB or the Olimex ESP32-POE-ISO . The simple POE version (without the \"ISO\") is not recommended because it does not allow to be connected to PoE Ethernet and USB at the same time. The Arduino Due requires an Ethernet Shield in order to access the local network. Each of the different controllers have their advantages and disadvantages: Functionality ESP32-Olimex ESP32-POE-ISO ESP32-NodeMCU Arduino Due Ethernet/LAN X X - X WiFi/WLAN X X X - Over-the-air updateable X X X - Built-in micro-SD card X X - - Accessible GPIOs 2 (GPIO13/16) some some many","title":"The BSB-LAN Adapter"},{"location":"bsb-lan_adapter.html#the-bsb-lan-adapter","text":"","title":"The BSB-LAN adapter"},{"location":"bsb-lan_adapter.html#adapter-boards-available-contact-frederik-at-bsbatcode-itde-german-or-english-for-more-details","text":"In order to connect to your heating system with a microcontroller, you need to have an adapter board that does the necessary logic-level conversion: The adapter is then plugged right onto the microcontroller, either underneath the pins of the ESP32-NodeMCU or onto the UEXT connector of the Olimex: The two different types of ESP32 adapters (Olimex and ESP32-NoceMCU) only vary in the location of their connectors, the other parts of the board are identical. The Arduino Due board contains an EEPROM chip because the Due does not come with on-board EEPROM. Therefore, you can re-use the Arduino Due board on an ESP32 microcontroller (if you connect the correct pins with wires), but you cannot use an adapter for the ESP32 on an Arduino Due.","title":"Adapter boards available - contact Frederik at bsb(\u00e4t)code-it.de (German or English) for more details."},{"location":"bsb-lan_adapter.html#suitable-microcontrollers","text":"BSB-LAN can be installed on three different types of microcontrollers: ESP32-Olimex ESP32-NodeMCU (30 pin version only!) and Arduino Due. Olimex produces several kinds of boards: We recommend either the Olimex ESP32-EVB or the Olimex ESP32-POE-ISO . The simple POE version (without the \"ISO\") is not recommended because it does not allow to be connected to PoE Ethernet and USB at the same time. The Arduino Due requires an Ethernet Shield in order to access the local network. Each of the different controllers have their advantages and disadvantages: Functionality ESP32-Olimex ESP32-POE-ISO ESP32-NodeMCU Arduino Due Ethernet/LAN X X - X WiFi/WLAN X X X - Over-the-air updateable X X X - Built-in micro-SD card X X - - Accessible GPIOs 2 (GPIO13/16) some some many","title":"Suitable microcontrollers"},{"location":"bus_systems.html","text":"The BSB/LPB/PPS Bus Developed at the end of the last millenium based on the BatiBUS (more information can be found here and here ), many Siemens heating system controllers still use the same kind of physical bus to \"talk\" to room units as well as other heating devices. While a bus speed of a mere 4800 bits per second might sound anachronistic these days, it still provides for a stable and robust transmission protocol that is even today perfectly sufficient when it comes to transmitting short messages of a few dozen bytes over lines sometimes as long as one kilometer. The bus topology also allows you to connect BSB-LAN at any point: At the room unit, at the heating system or anywhere where the bus lines are available. You can even add the two wires for BSB-LAN in an already \"occupied\" slot, and it won't harm the other device (proper installation assumed). On top of the same physical layer, three bus systems, BSB, LPB and PPS, cater for different tasks, and while BSB and LPB should always be preferred if available, PPS nevertheless provides a set of parameters that is usually quite enough for the average user. BSB-LAN runs on any of these busses and swapping between them is just changing a few settings away. The Boiler System Bus (BSB) BSB is the most common bus system in Siemens controllers for the last 10-15 years. It is the successor of the PPS system with which it shares the same physical parameters, but is much more versatile: Instead of just a few dozen parameters, it can access hundreds of parameters and group them into various categories for easier navigation. It is a transaction-based protocol where most messages are being sent from one device to another and the recipient returning some kind of feedback, for example whether the task could be completed or whether it contained invalid data. While BSB is capable of addressing multiple devices on the bus, it is not used in systems with more than one heating device. The heating device always has the ID 0 , the display unit on the heating system has the ID 10 (or 0x0A in hexadecimal) and the standard room unit has the ID 6 . BSB-LAN has the ID 66 or 0x42 in hexadecimal. Room units that \"speak\" BSB are, for example, the QAA55 and the QAA75. The Local Process Bus (LPB) LPB was introduced more or less around the same time as PPS which it complemented in terms of communication with other heating devices: While PPS was used to communicate with the room unit, LPB was used to send commands from one main heating device to one or more auxilliary heating devices, for example in a cascade setup. At that time, most of the information transmitted via LPB was related to the internals of the heating system (such as sensor data or internal setpoint temperatures), whereas the parameters relevant for the user (such as comfort temperature setpoint etc.) were only available via PPS. Nowadays, heating devices that offer both LPB and BSB have the same kind of parameter data available on both bus systems. LPB uses a specific addressing scheme with segments and devices. Each segment from 0 to 15 can contain up to 15 devices (from 1 to 15). When writing these addresses, segment and device are separated by a colon: 00:01 or 04:03 . To convert the segment-based address into the destination ID required for BSB-LAN, the formula is as this: SEGMENT multiplied by 16 plus DEVICE minus one. Example: Device 3 in segment 4 equals to 4 * 16 + 3 - 1 = 66. The main heating unit is by definition 00:01 , so this equals to a destination ID 0. To learn more about the LPB system and how it should be deployed, you may refer to these two documents from the end of the 1990s, one covers the basic system data that covers the conceptualization of an LPB network, and the other one deals with the basic engineering data and provides details about cable lengths and diameters etc. Except for some Weishaut heaters, room units are not connected to the heating system via LPB. Newer models use BSB for this task while older models use either PPS or in some cases also OpenTherm. The Point-to-Point Interface (PPS) The Point-to-Point Interface (PPS deriving from the German term \"Punkt-zu-Punkt Schnittstelle\") is compatible to the other systems on a physical layer, but not in the way message telegrams are being exchanged. While BSB and LPB talk to each other by sending telegrams and acknowledging their receipt respectively, PPS is dominated by the heating unit. The heating unit constantly sends its data to the room unit and tells the room unit when and what kind of information it should send. So it may take up to a few minutes until a value that is set in BSB-LAN is actually requested by the heating system and shown there. It is also a very timing sensitive protocol, therefore long other tasks that BSB-LAN is told to do will lead to a temporary interruption and possible error message on the heating system. However, after a short while, this should be clearing by itself when the two components \"talk\" to each other again. Other than BSB and LPB, changes made in BSB-LAN do not take immediate effect. Changing values, for example like the room temperature comfort setpoint, will be stored internally in BSB-LAN first to be sent out to the heating system once it tells the room unit (i.e. BSB-LAN) to do so. This may take up to a minute or so, so one should not be confused that settings do not show up on the heater immediately, as is the case with BSB and LPB. With PPS, BSB-LAN can run in two modes: either listening passively or as a room unit. In passive mode, BSB-LAN can just listen to the data exchanged between the room unit and the heating device. It is not possible to send one's own data, for the simple fact that it would be overwritten in no time by the same type of data coming from the room unit. In order to send parameter data to the heating system, BSB-LAN mus run in \"room unit\" mode, and this means that any room unit will have to be removed from the heating system. In this case, it is especially important to regularly send a room temperature value to BSB-LAN which in turn will send this value to the heating device. Only if the heater runs solely on outside temperature then this value can be ignored. BSB-LAN stores some values in its non-volatile EEPROM, but some values need to be set anew after a reboot, such as the room temperature setpoint. This is to prevent to store a parameter value that has become invalid but is still sent as it is stored in the EEPROM. Room units commonly used with heating systems that support PPS are the QAA50 and the QAA70.","title":"The BSB/LPB/PPS Bus"},{"location":"bus_systems.html#the-bsblpbpps-bus","text":"Developed at the end of the last millenium based on the BatiBUS (more information can be found here and here ), many Siemens heating system controllers still use the same kind of physical bus to \"talk\" to room units as well as other heating devices. While a bus speed of a mere 4800 bits per second might sound anachronistic these days, it still provides for a stable and robust transmission protocol that is even today perfectly sufficient when it comes to transmitting short messages of a few dozen bytes over lines sometimes as long as one kilometer. The bus topology also allows you to connect BSB-LAN at any point: At the room unit, at the heating system or anywhere where the bus lines are available. You can even add the two wires for BSB-LAN in an already \"occupied\" slot, and it won't harm the other device (proper installation assumed). On top of the same physical layer, three bus systems, BSB, LPB and PPS, cater for different tasks, and while BSB and LPB should always be preferred if available, PPS nevertheless provides a set of parameters that is usually quite enough for the average user. BSB-LAN runs on any of these busses and swapping between them is just changing a few settings away.","title":"The BSB/LPB/PPS Bus"},{"location":"bus_systems.html#the-boiler-system-bus-bsb","text":"BSB is the most common bus system in Siemens controllers for the last 10-15 years. It is the successor of the PPS system with which it shares the same physical parameters, but is much more versatile: Instead of just a few dozen parameters, it can access hundreds of parameters and group them into various categories for easier navigation. It is a transaction-based protocol where most messages are being sent from one device to another and the recipient returning some kind of feedback, for example whether the task could be completed or whether it contained invalid data. While BSB is capable of addressing multiple devices on the bus, it is not used in systems with more than one heating device. The heating device always has the ID 0 , the display unit on the heating system has the ID 10 (or 0x0A in hexadecimal) and the standard room unit has the ID 6 . BSB-LAN has the ID 66 or 0x42 in hexadecimal. Room units that \"speak\" BSB are, for example, the QAA55 and the QAA75.","title":"The Boiler System Bus (BSB)"},{"location":"bus_systems.html#the-local-process-bus-lpb","text":"LPB was introduced more or less around the same time as PPS which it complemented in terms of communication with other heating devices: While PPS was used to communicate with the room unit, LPB was used to send commands from one main heating device to one or more auxilliary heating devices, for example in a cascade setup. At that time, most of the information transmitted via LPB was related to the internals of the heating system (such as sensor data or internal setpoint temperatures), whereas the parameters relevant for the user (such as comfort temperature setpoint etc.) were only available via PPS. Nowadays, heating devices that offer both LPB and BSB have the same kind of parameter data available on both bus systems. LPB uses a specific addressing scheme with segments and devices. Each segment from 0 to 15 can contain up to 15 devices (from 1 to 15). When writing these addresses, segment and device are separated by a colon: 00:01 or 04:03 . To convert the segment-based address into the destination ID required for BSB-LAN, the formula is as this: SEGMENT multiplied by 16 plus DEVICE minus one. Example: Device 3 in segment 4 equals to 4 * 16 + 3 - 1 = 66. The main heating unit is by definition 00:01 , so this equals to a destination ID 0. To learn more about the LPB system and how it should be deployed, you may refer to these two documents from the end of the 1990s, one covers the basic system data that covers the conceptualization of an LPB network, and the other one deals with the basic engineering data and provides details about cable lengths and diameters etc. Except for some Weishaut heaters, room units are not connected to the heating system via LPB. Newer models use BSB for this task while older models use either PPS or in some cases also OpenTherm.","title":"The Local Process Bus (LPB)"},{"location":"bus_systems.html#the-point-to-point-interface-pps","text":"The Point-to-Point Interface (PPS deriving from the German term \"Punkt-zu-Punkt Schnittstelle\") is compatible to the other systems on a physical layer, but not in the way message telegrams are being exchanged. While BSB and LPB talk to each other by sending telegrams and acknowledging their receipt respectively, PPS is dominated by the heating unit. The heating unit constantly sends its data to the room unit and tells the room unit when and what kind of information it should send. So it may take up to a few minutes until a value that is set in BSB-LAN is actually requested by the heating system and shown there. It is also a very timing sensitive protocol, therefore long other tasks that BSB-LAN is told to do will lead to a temporary interruption and possible error message on the heating system. However, after a short while, this should be clearing by itself when the two components \"talk\" to each other again. Other than BSB and LPB, changes made in BSB-LAN do not take immediate effect. Changing values, for example like the room temperature comfort setpoint, will be stored internally in BSB-LAN first to be sent out to the heating system once it tells the room unit (i.e. BSB-LAN) to do so. This may take up to a minute or so, so one should not be confused that settings do not show up on the heater immediately, as is the case with BSB and LPB. With PPS, BSB-LAN can run in two modes: either listening passively or as a room unit. In passive mode, BSB-LAN can just listen to the data exchanged between the room unit and the heating device. It is not possible to send one's own data, for the simple fact that it would be overwritten in no time by the same type of data coming from the room unit. In order to send parameter data to the heating system, BSB-LAN mus run in \"room unit\" mode, and this means that any room unit will have to be removed from the heating system. In this case, it is especially important to regularly send a room temperature value to BSB-LAN which in turn will send this value to the heating device. Only if the heater runs solely on outside temperature then this value can be ignored. BSB-LAN stores some values in its non-volatile EEPROM, but some values need to be set anew after a reboot, such as the room temperature setpoint. This is to prevent to store a parameter value that has become invalid but is still sent as it is stored in the EEPROM. Room units commonly used with heating systems that support PPS are the QAA50 and the QAA70.","title":"The Point-to-Point Interface (PPS)"},{"location":"configure.html","text":"Configuration There are two ways to configure BSB-LAN: Through the configuration file BSB_LAN_config.h Through the web-interface by calling http://bsb-lan.local/C (or the corresponding IP address) For the initial configuration, some settings have to be configured in the configuration file (such as language and network settings). Any further changes can be done also in the web-interface. It may, however, be useful to do the configuration (also) in the configuration file in case one needs to change the microcontroller. Almost all settings exist also in the web-interface and vice versa. On an ESP32-based microcontroller, BSB-LAN will set up its own wireless access point named BSB-LAN if it cannot connect to any network. So even without any further configuration, you can connect to this access point with the password BSB-LPB-PPS-LAN and access BSB-LAN via the IP address http://192.168.4.1 and proceed with the configuration via this way. Keep in mind that if you have set a passkey or HTTP username and password, these are still required if these details are stored in EEPROM or BSB_LAN_config.h . Configuration through `BSB_LAN_config.h`` The configuration file consists of variables that are used in other parts of BSB-LAN. It is therefore important to only change the contents of the variables (i.e. the settings) and not the type of the variables. So if there is for example the setting byte ip_addr[4] = {192,168,178,88}; you must not alter the byte ip_addr[4] = part, only the contents, in this case the comma-separated IP address. Configuration through the web-interface Configuring BSB-LAN through the web-interface is pretty straightforward, as you don't have to deal with variable names but clear descriptions. Initially, only a selected number of configuration options are displayed in the webinterface. To have access to all of them, you have to set the \"extended configuration\" option to \"on\". Overview of configuration options table th:first-of-type { width: 20%; } table th:nth-of-type(2) { width: 20%; } table th:nth-of-type(3) { width: 40%; } table th:nth-of-type(4) { width: 20%; } General Settings Web-Interface Configuration File Functionality Possible settings - #define LANG Set language DE , EN , FR and other ISO country codes Display extended configuration - Show all configuration options On Off Read config from EEPROM UseEEPROM Read configuration from EEPROM or file On ( 1 ) Off ( 0 ) Write access (level) - If DEFAULT_FLAG is set to FL_SW_CTL_RONLY , you can set the level of write access here. Off (read-only) On (Standard) On (Complete) Check for updates enable_version_check Query BSB-LAN server for new available version On ( true ) OTA Update enable_ota_update Enable over-the-air (OTA) update On ( true ) Energy saving esp32_save_energy Reduces speed, saves energy. Do not enable when using WiFi. On ( true ) Off ( false ) Webserver file system webserver Enables serving files from SD card On ( true ) Off ( false ) - #define DEFAULT_FLAG Set read/write access to heating system. FL_RONLY sets all parameters to read-only. FL_SW_CTL_RONLY allows setting read/write access via web-interface configuration setting. 0 makes all parameters that could be written writeable. Do not use this option unless instructed otherwise! FL_RONLY FL_SW_CTL_RONLY 0 Bus settings Web-Interface Configuration File Functionality Possible settings Bus type bus_type Bus type (BSB/LPB/PPS) BSB ( 0 ) LPB ( 1 ) PPS ( 2 ) PPS: mode pps_write BSB-LAN can act as a PPS room unit (only if no real room unit is connected) or just listen passively. passive ( 0 ) as room unit ( 1 ) PPS: QAA model QAA_TYPE Room unit that should be simulated for PPS bus QAA70 ( 0x53 ), QAA50 ( 0x52 ), QAA95 ( 0x37 ), QAW10 ( 0x4D ), QAW20 ( 0x4E ), MCBA/REA70/DC225 ( 0x58 ), QAA10 ( 0x5A ), QAA20 ( 0x5B ), QAA12/13 ( 0x5D ), BMU ( 0x66 ), RVD130 ( 0x43 ) Own address own_address Own bus address (default 66 should not be changed) 66 ( 66 ) Destination address dest_address Destination bus address. For BSB always 0 . For LPB 0 if destination device is in segment 1, device address 0. To convert from LPB segment and device address notation to destination address, multiply segment by 16, add the device address and subtract one. For example, to address a device in segment 4 with device address 3, the destination address is (4 * 16) + 3 - 1 = 66 . For PPS not relevant. 0 ( 0 ) RX pin number TX pin number bus_pins Define the RX/TX pins to communicate with the BSB-LAN adapter. Leave at 0 for auto-detection. 0 and 0 ( 0, 0 ) Network settings Web-Interface Configuration File Functionality Possible settings Network device network_type Choose between WLAN and LAN to connect BSB-LAN to the network. LAN ( 0 ) WLAN ( 1 ) WLAN SSID wifi_ssid Set the WLAN network name when using WLAN. Your_WLAN_name ( Your_WLAN_name ) WLAN password wifi_pass Set the WLAN password when using WLAN. YourWLANpassword ( YourWLANpassword ) DHCP usage use_dhcp Set whether or not to use DHCP to get an IP address from the router. On ( true ) Off ( false ) IP address (fixed) ip_addr When not using DHCP, you can set a fixed IP address here. Otherwise leave at 0.0.0.0 . In the web-interface, you may use dot notation. In the configuration file, you have to use comma as a separator. 192.168.178.88 ( 192,168,178,88 ) Subnet subnet_addr Subnet when using fixed IP address. Same notation as with IP address. 255.255.255.0 ( 255,255,255,0 ) Gateway gateway_addr Gateway address when using fixed IP address. Same notation as with IP address. 192.168.178.1 ( 192,168,178,1 ) DNS Server dns_addr DNS server address when using fixed IP address. Same notation as with IP address. 192.168.178.1 ( 192,168,178,1 ) TCP Port HTTPPort HTTP port number to access the web-interface. Defaults to 80 . 80 ( 80 ) MAC address mac Set a fixed MAC address. Only relevant on Arduino. 00:80:41:19:69:90 ( 0x00, 0x80, 0x41, 0x19, 0x69, 0x90 ) mDNS Hostname mDNS_hostname Hostname for mDNS discovery BSB-LAN ( BSB-LAN ) HTTP authentification USER_PASS If not empty, this setting contains the username and password for HTTP authentification, separated by a colon. Username:Password ( Username:Password ) URL Passkey PASSKEY Passkey adds a user-defined sequence that needs to be added to the URL after the hostname. For example, a passkey of 1234 requires every URL to be written as http://bsb-lan.local/1234/ instead of just http://bsb-lan.local/1234/ . Leave empty for no passkey. 1234 ( 1234 ) Trusted IP address trusted_ip_addr Access to BSB-LAN is only possible from this IP address. Same notation as with IP address. 192.168.178.89 ( 192,168,178,89 ) Trusted IP address trusted_ip_addr2 Access to BSB-LAN is only possible from this IP address. Same notation as with IP address. 192.168.178.90 ( 192,168,178,90 ) - bssid Enter a specific BSSID address here to ensure connecting to a specific access point. Set to all zeros under normal circumstances. ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ) - ntp_server Set an NTP server here to acquire exact time for BSB-LAN. Set to empty string if you don't want to use NTP. ESP32-based microcontrollers only. ( pool.ntp.org ) - local_timezone Timezone to use for NTP. See here for a complete list. ( CET-1CEST,M3.5.0,M10.5.0/3 ) Logging Web-Interface Configuration File Functionality Possible settings Storage device LogDestination Select the destination for logging activities. SD card is highly recommended, as using the internal flash will wear out the internal flash eventually. SD card ( SDCARD ) Internal Flash Storage ( FLASH ) Logging mode LoggingMode Set the logging destinations/activities. Multiple selections are possible, for the configuration file, the values have to be added, for example, to send to MQTT broker and to UDP, set the value to 4 + 16 = 20 Write to SD card ( 1 ) Calculate 24h averages ( 2 ) Send to MQTT broker ( 4 ) Only send log parameters to MQTT ( 8 ) Send to UDP ( 16 ) Logging Interval log_interval Interval for logging activities (in seconds) 60 ( 60 ) Log Parameters log_parameters List of logging parameters. See addressing instructions below. 8700, 8743!2, 8314!2 ( {8700, -1}, {8743, 2}, {8314, 2} ) Log bus telegrams logTelegram Log raw bus telegrams, such as broadcast messages or unknown telegrams Off ( LOGTELEGRAM_OFF ) Log all bus telegrams ( LOGTELEGRAM_ON ) Log unknown bus telegrams only ( LOGTELEGRAM_UNKNOWN_ONLY ) Log broadcast bus telegrams only ( LOGTELEGRAM_BROADCAST_ONLY ) Log unknown broadcast bus telegrams only ( LOGTELEGRAM_UNKNOWN_ONLY + LOGTELEGRAM_BROADCAST_ONLY ) 24h averages parameters avg_parameters List of parameters for generating 24 hour averages. See addressing instructions below. 8700, 8743!2, 8314!2 ( {8700, -1}, {8743, 2}, {8314, 2} ) - #define DEFAULT_DAYS_TO_PLOT Define default number of days to plot logging data ( 3 ) MQTT Web-Interface Configuration File Functionality Possible settings MQTT Broker server mqtt_broker_addr Hostname/IP of the MQTT broker my-mqtt-broker.local ( my-mqtt-broker.local ) MQTT Username MQTTUsername Optional username for MQTT broker MyMQTTusername ( MyMQTTusername ) MQTT Password MQTTPassword Optional password for MQTT broker MyMQTTpassword ( MyMQTTpassword ) MQTT Device ID MQTTDeviceID Device identifier for MQTT BSB-LAN ( BSB-LAN ) MQTT Topic prefix MQTTTopicPrefix Topic prefix for MQTT BSB-LAN ( BSB-LAN ) MQTT Usage mqtt_mode Set the format for MQTT messages Plain text ( 1 ) - Send parameter number and value in plain text format JSON ( 2 ) - Send messages in JSON format (parameter number and value only) Rich JSON ( 3 ) - Send parameter number/name/value/unit/error in JSON format. Sensors and external devices Web-Interface Configuration File Functionality Possible settings OneWire Pins One_Wire_Pin Set the OneWire pin (use -1 in configuration file to disable) 10 ( 10 ) DHT Pins DHT_Pins Set the DHT22 sensor pins (use -1 in configuration file to disable) 11, 12, 13 ( 11, 12, 13, -1, -1, -1, -1, -1, -1, -1 ) BME280 sensors BME_Sensors Set number of BME280 sensors on the I2C bus. You need to have access to I2C pins. Fixed addresses 0x76 and 0x77 will be used. Use 0 to disable. 1 ( 1 ) MAX! Usage enable_max_cul Enable or disable connection to CUNO/CUNX/modified MAX!Cube On ( true ) Off ( false ) IP address cube max_cul_ip_addr IP address of the CUNO/CUNX/MAX!Cube 192.168.178.21 ( 192,168,178,21 ) MAX! Devices max_device_list IDs of MAX! devices to be polled. These IDs can be found on a sticker of the device. After entering them here, each device needs to be set into pairing mode. This has to be repeated every time the EEPROM layout of BSB-LAN is changed (see ChangeLog). KEQ0502326, KEQ0505080, KHA0002948 ( \"KEQ0502326\", \"KEQ0505080\", \"KHA0002948\" ) IPWE Usage enable_ipwe Enable IPWE extension ( /ipwe.cgi ) On ( true ) Off ( false ) IPWE Parameters ipwe_parameters List of parameters for display in IPWE extension. See addressing instructions below. 8700, 8743!2, 8314!2 ({8700, -1}, {8743, 2}, {8314, 2}) - #define CUSTOM_COMMANDS Enable custom functions Debugging Web-Interface Configuration File Functionality Possible settings Debugging Usage debug_mode Select debug output Off ( 0 ) Serial ( 1 ) Telnet ( 2 ) Verbosity mode verbose Enable or disable verbose debug messages (do not turn off unless advised) On ( 1 ) Off ( 0 ) Raw data mode monitor Enable or disable raw data mode (do not turn on unless advised!) On ( 1 ) Off ( 0 ) Display unknown parameters show_unknown Try and display also parameters not supported by destination device On ( true ) Off ( false ) Adressing different heating controllers In order to address parameters from devices other than the default destination device in the web-interface, you need to add an exclamation mark followed by the device address (see above for converting segment/device notation to device address). For example, parameter 8700 from device address 1 would be written as 8700!1 instead of just 8700 . For the configuration file, parameters are listed in the form {parameter number, destination address} . Parameter 8700 from device address 1 would thus be written as {8700, 1} . To address the default destination, you can do so by using -1 .","title":"Configuration"},{"location":"configure.html#configuration","text":"There are two ways to configure BSB-LAN: Through the configuration file BSB_LAN_config.h Through the web-interface by calling http://bsb-lan.local/C (or the corresponding IP address) For the initial configuration, some settings have to be configured in the configuration file (such as language and network settings). Any further changes can be done also in the web-interface. It may, however, be useful to do the configuration (also) in the configuration file in case one needs to change the microcontroller. Almost all settings exist also in the web-interface and vice versa. On an ESP32-based microcontroller, BSB-LAN will set up its own wireless access point named BSB-LAN if it cannot connect to any network. So even without any further configuration, you can connect to this access point with the password BSB-LPB-PPS-LAN and access BSB-LAN via the IP address http://192.168.4.1 and proceed with the configuration via this way. Keep in mind that if you have set a passkey or HTTP username and password, these are still required if these details are stored in EEPROM or BSB_LAN_config.h .","title":"Configuration"},{"location":"configure.html#configuration-through-bsb_lan_configh","text":"The configuration file consists of variables that are used in other parts of BSB-LAN. It is therefore important to only change the contents of the variables (i.e. the settings) and not the type of the variables. So if there is for example the setting byte ip_addr[4] = {192,168,178,88}; you must not alter the byte ip_addr[4] = part, only the contents, in this case the comma-separated IP address.","title":"Configuration through `BSB_LAN_config.h``"},{"location":"configure.html#configuration-through-the-web-interface","text":"Configuring BSB-LAN through the web-interface is pretty straightforward, as you don't have to deal with variable names but clear descriptions. Initially, only a selected number of configuration options are displayed in the webinterface. To have access to all of them, you have to set the \"extended configuration\" option to \"on\".","title":"Configuration through the web-interface"},{"location":"configure.html#overview-of-configuration-options","text":"table th:first-of-type { width: 20%; } table th:nth-of-type(2) { width: 20%; } table th:nth-of-type(3) { width: 40%; } table th:nth-of-type(4) { width: 20%; }","title":"Overview of configuration options"},{"location":"configure.html#general-settings","text":"Web-Interface Configuration File Functionality Possible settings - #define LANG Set language DE , EN , FR and other ISO country codes Display extended configuration - Show all configuration options On Off Read config from EEPROM UseEEPROM Read configuration from EEPROM or file On ( 1 ) Off ( 0 ) Write access (level) - If DEFAULT_FLAG is set to FL_SW_CTL_RONLY , you can set the level of write access here. Off (read-only) On (Standard) On (Complete) Check for updates enable_version_check Query BSB-LAN server for new available version On ( true ) OTA Update enable_ota_update Enable over-the-air (OTA) update On ( true ) Energy saving esp32_save_energy Reduces speed, saves energy. Do not enable when using WiFi. On ( true ) Off ( false ) Webserver file system webserver Enables serving files from SD card On ( true ) Off ( false ) - #define DEFAULT_FLAG Set read/write access to heating system. FL_RONLY sets all parameters to read-only. FL_SW_CTL_RONLY allows setting read/write access via web-interface configuration setting. 0 makes all parameters that could be written writeable. Do not use this option unless instructed otherwise! FL_RONLY FL_SW_CTL_RONLY 0","title":"General Settings"},{"location":"configure.html#bus-settings","text":"Web-Interface Configuration File Functionality Possible settings Bus type bus_type Bus type (BSB/LPB/PPS) BSB ( 0 ) LPB ( 1 ) PPS ( 2 ) PPS: mode pps_write BSB-LAN can act as a PPS room unit (only if no real room unit is connected) or just listen passively. passive ( 0 ) as room unit ( 1 ) PPS: QAA model QAA_TYPE Room unit that should be simulated for PPS bus QAA70 ( 0x53 ), QAA50 ( 0x52 ), QAA95 ( 0x37 ), QAW10 ( 0x4D ), QAW20 ( 0x4E ), MCBA/REA70/DC225 ( 0x58 ), QAA10 ( 0x5A ), QAA20 ( 0x5B ), QAA12/13 ( 0x5D ), BMU ( 0x66 ), RVD130 ( 0x43 ) Own address own_address Own bus address (default 66 should not be changed) 66 ( 66 ) Destination address dest_address Destination bus address. For BSB always 0 . For LPB 0 if destination device is in segment 1, device address 0. To convert from LPB segment and device address notation to destination address, multiply segment by 16, add the device address and subtract one. For example, to address a device in segment 4 with device address 3, the destination address is (4 * 16) + 3 - 1 = 66 . For PPS not relevant. 0 ( 0 ) RX pin number TX pin number bus_pins Define the RX/TX pins to communicate with the BSB-LAN adapter. Leave at 0 for auto-detection. 0 and 0 ( 0, 0 )","title":"Bus settings"},{"location":"configure.html#network-settings","text":"Web-Interface Configuration File Functionality Possible settings Network device network_type Choose between WLAN and LAN to connect BSB-LAN to the network. LAN ( 0 ) WLAN ( 1 ) WLAN SSID wifi_ssid Set the WLAN network name when using WLAN. Your_WLAN_name ( Your_WLAN_name ) WLAN password wifi_pass Set the WLAN password when using WLAN. YourWLANpassword ( YourWLANpassword ) DHCP usage use_dhcp Set whether or not to use DHCP to get an IP address from the router. On ( true ) Off ( false ) IP address (fixed) ip_addr When not using DHCP, you can set a fixed IP address here. Otherwise leave at 0.0.0.0 . In the web-interface, you may use dot notation. In the configuration file, you have to use comma as a separator. 192.168.178.88 ( 192,168,178,88 ) Subnet subnet_addr Subnet when using fixed IP address. Same notation as with IP address. 255.255.255.0 ( 255,255,255,0 ) Gateway gateway_addr Gateway address when using fixed IP address. Same notation as with IP address. 192.168.178.1 ( 192,168,178,1 ) DNS Server dns_addr DNS server address when using fixed IP address. Same notation as with IP address. 192.168.178.1 ( 192,168,178,1 ) TCP Port HTTPPort HTTP port number to access the web-interface. Defaults to 80 . 80 ( 80 ) MAC address mac Set a fixed MAC address. Only relevant on Arduino. 00:80:41:19:69:90 ( 0x00, 0x80, 0x41, 0x19, 0x69, 0x90 ) mDNS Hostname mDNS_hostname Hostname for mDNS discovery BSB-LAN ( BSB-LAN ) HTTP authentification USER_PASS If not empty, this setting contains the username and password for HTTP authentification, separated by a colon. Username:Password ( Username:Password ) URL Passkey PASSKEY Passkey adds a user-defined sequence that needs to be added to the URL after the hostname. For example, a passkey of 1234 requires every URL to be written as http://bsb-lan.local/1234/ instead of just http://bsb-lan.local/1234/ . Leave empty for no passkey. 1234 ( 1234 ) Trusted IP address trusted_ip_addr Access to BSB-LAN is only possible from this IP address. Same notation as with IP address. 192.168.178.89 ( 192,168,178,89 ) Trusted IP address trusted_ip_addr2 Access to BSB-LAN is only possible from this IP address. Same notation as with IP address. 192.168.178.90 ( 192,168,178,90 ) - bssid Enter a specific BSSID address here to ensure connecting to a specific access point. Set to all zeros under normal circumstances. ( 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ) - ntp_server Set an NTP server here to acquire exact time for BSB-LAN. Set to empty string if you don't want to use NTP. ESP32-based microcontrollers only. ( pool.ntp.org ) - local_timezone Timezone to use for NTP. See here for a complete list. ( CET-1CEST,M3.5.0,M10.5.0/3 )","title":"Network settings"},{"location":"configure.html#logging","text":"Web-Interface Configuration File Functionality Possible settings Storage device LogDestination Select the destination for logging activities. SD card is highly recommended, as using the internal flash will wear out the internal flash eventually. SD card ( SDCARD ) Internal Flash Storage ( FLASH ) Logging mode LoggingMode Set the logging destinations/activities. Multiple selections are possible, for the configuration file, the values have to be added, for example, to send to MQTT broker and to UDP, set the value to 4 + 16 = 20 Write to SD card ( 1 ) Calculate 24h averages ( 2 ) Send to MQTT broker ( 4 ) Only send log parameters to MQTT ( 8 ) Send to UDP ( 16 ) Logging Interval log_interval Interval for logging activities (in seconds) 60 ( 60 ) Log Parameters log_parameters List of logging parameters. See addressing instructions below. 8700, 8743!2, 8314!2 ( {8700, -1}, {8743, 2}, {8314, 2} ) Log bus telegrams logTelegram Log raw bus telegrams, such as broadcast messages or unknown telegrams Off ( LOGTELEGRAM_OFF ) Log all bus telegrams ( LOGTELEGRAM_ON ) Log unknown bus telegrams only ( LOGTELEGRAM_UNKNOWN_ONLY ) Log broadcast bus telegrams only ( LOGTELEGRAM_BROADCAST_ONLY ) Log unknown broadcast bus telegrams only ( LOGTELEGRAM_UNKNOWN_ONLY + LOGTELEGRAM_BROADCAST_ONLY ) 24h averages parameters avg_parameters List of parameters for generating 24 hour averages. See addressing instructions below. 8700, 8743!2, 8314!2 ( {8700, -1}, {8743, 2}, {8314, 2} ) - #define DEFAULT_DAYS_TO_PLOT Define default number of days to plot logging data ( 3 )","title":"Logging"},{"location":"configure.html#mqtt","text":"Web-Interface Configuration File Functionality Possible settings MQTT Broker server mqtt_broker_addr Hostname/IP of the MQTT broker my-mqtt-broker.local ( my-mqtt-broker.local ) MQTT Username MQTTUsername Optional username for MQTT broker MyMQTTusername ( MyMQTTusername ) MQTT Password MQTTPassword Optional password for MQTT broker MyMQTTpassword ( MyMQTTpassword ) MQTT Device ID MQTTDeviceID Device identifier for MQTT BSB-LAN ( BSB-LAN ) MQTT Topic prefix MQTTTopicPrefix Topic prefix for MQTT BSB-LAN ( BSB-LAN ) MQTT Usage mqtt_mode Set the format for MQTT messages Plain text ( 1 ) - Send parameter number and value in plain text format JSON ( 2 ) - Send messages in JSON format (parameter number and value only) Rich JSON ( 3 ) - Send parameter number/name/value/unit/error in JSON format.","title":"MQTT"},{"location":"configure.html#sensors-and-external-devices","text":"Web-Interface Configuration File Functionality Possible settings OneWire Pins One_Wire_Pin Set the OneWire pin (use -1 in configuration file to disable) 10 ( 10 ) DHT Pins DHT_Pins Set the DHT22 sensor pins (use -1 in configuration file to disable) 11, 12, 13 ( 11, 12, 13, -1, -1, -1, -1, -1, -1, -1 ) BME280 sensors BME_Sensors Set number of BME280 sensors on the I2C bus. You need to have access to I2C pins. Fixed addresses 0x76 and 0x77 will be used. Use 0 to disable. 1 ( 1 ) MAX! Usage enable_max_cul Enable or disable connection to CUNO/CUNX/modified MAX!Cube On ( true ) Off ( false ) IP address cube max_cul_ip_addr IP address of the CUNO/CUNX/MAX!Cube 192.168.178.21 ( 192,168,178,21 ) MAX! Devices max_device_list IDs of MAX! devices to be polled. These IDs can be found on a sticker of the device. After entering them here, each device needs to be set into pairing mode. This has to be repeated every time the EEPROM layout of BSB-LAN is changed (see ChangeLog). KEQ0502326, KEQ0505080, KHA0002948 ( \"KEQ0502326\", \"KEQ0505080\", \"KHA0002948\" ) IPWE Usage enable_ipwe Enable IPWE extension ( /ipwe.cgi ) On ( true ) Off ( false ) IPWE Parameters ipwe_parameters List of parameters for display in IPWE extension. See addressing instructions below. 8700, 8743!2, 8314!2 ({8700, -1}, {8743, 2}, {8314, 2}) - #define CUSTOM_COMMANDS Enable custom functions","title":"Sensors and external devices"},{"location":"configure.html#debugging","text":"Web-Interface Configuration File Functionality Possible settings Debugging Usage debug_mode Select debug output Off ( 0 ) Serial ( 1 ) Telnet ( 2 ) Verbosity mode verbose Enable or disable verbose debug messages (do not turn off unless advised) On ( 1 ) Off ( 0 ) Raw data mode monitor Enable or disable raw data mode (do not turn on unless advised!) On ( 1 ) Off ( 0 ) Display unknown parameters show_unknown Try and display also parameters not supported by destination device On ( true ) Off ( false )","title":"Debugging"},{"location":"configure.html#adressing-different-heating-controllers","text":"In order to address parameters from devices other than the default destination device in the web-interface, you need to add an exclamation mark followed by the device address (see above for converting segment/device notation to device address). For example, parameter 8700 from device address 1 would be written as 8700!1 instead of just 8700 . For the configuration file, parameters are listed in the form {parameter number, destination address} . Parameter 8700 from device address 1 would thus be written as {8700, 1} . To address the default destination, you can do so by using -1 .","title":"Adressing different heating controllers"},{"location":"faq.html","text":"Frequently Asked Questions (FAQ) Will my settings remain when updating BSB-LAN? That depends. Minor updates will not affect any settings, but sometimes it is unavoidable that changes in the code also affect the settings. In that case, it is mentioned in the file CHANGELOG.md , and BSB-LAN rewrites the settings in the EEPROM based on the settings in BSB_LAN_config.h . That's why it's best to always make significant changes in the settings also in that file. Updates never affect any parameters in the heating system. My heater has a OpenTherm/eBus/L-Bus/R-Bus connector, can I use BSB-LAN? No, these controllers are not compatible with BSB-LAN. Do not try and connect the adapter to your heating system! I'm missing function XYZ BSB-LAN offers the possibility to create own functions using the files BSB_LAN_custom_global.h , BSB_LAN_custom_setup.h and BSB_LAN_custom.h . Please see the folder custom_functions in the repository for more details and examples. Feel free to contribute your solutions to the public!","title":"FAQ"},{"location":"faq.html#frequently-asked-questions-faq","text":"","title":"Frequently Asked Questions (FAQ)"},{"location":"faq.html#will-my-settings-remain-when-updating-bsb-lan","text":"That depends. Minor updates will not affect any settings, but sometimes it is unavoidable that changes in the code also affect the settings. In that case, it is mentioned in the file CHANGELOG.md , and BSB-LAN rewrites the settings in the EEPROM based on the settings in BSB_LAN_config.h . That's why it's best to always make significant changes in the settings also in that file. Updates never affect any parameters in the heating system.","title":"Will my settings remain when updating BSB-LAN?"},{"location":"faq.html#my-heater-has-a-openthermebusl-busr-bus-connector-can-i-use-bsb-lan","text":"No, these controllers are not compatible with BSB-LAN. Do not try and connect the adapter to your heating system!","title":"My heater has a OpenTherm/eBus/L-Bus/R-Bus connector, can I use BSB-LAN?"},{"location":"faq.html#im-missing-function-xyz","text":"BSB-LAN offers the possibility to create own functions using the files BSB_LAN_custom_global.h , BSB_LAN_custom_setup.h and BSB_LAN_custom.h . Please see the folder custom_functions in the repository for more details and examples. Feel free to contribute your solutions to the public!","title":"I'm missing function XYZ"},{"location":"homeautomation.html","text":"Connecting BSB-LAN to home automation systems BSB-LAN provides four ways to connect to home automation systems: Using supported modules for specific home automation systems Exchanging data via MQTT Exchanging data via JSON Exchanging data via URL commands and screen scraping Using supported modules for specific home automation systems For some systems, specific modules exist that can be used to access BSB-LAN seamlessly: Home Assistant While the official plugin no longer works, the MQTT approach (see below) works well with Home Assistant, including the auto-discovery feature. Here is a link to a video in the BSB-LAN YouTube channel that shows how to set up BSB-LAN in Home Assistant using the auto-discovery feature of Home Assistant. For further details of the implementation, you may also refer to these tutorials: GitHub user @ryann72 wrote detailed instructions for BSB-LAN and HomeAssistant/Mosquitto . It is also available in French . YouTuber @StoneTime has created two videos (in German) where he shows the installation of BSB-LAN as well as setting it up in Home Assistant . Dankesch\u00f6n! YouTuber @ArminasTV has created two videos (in French) where he shows the installation of BSB-LAN as well as how to set it up with Home Assistant and MQTT . Merci beacoup! Homebridge BSB-LAN user Michael has written a plugin for Homebridge . Thank you! ioBroker GitHub user @hacki11 has developed an adapter for ioBroker . Thank you! Jeedom GitHub user @bernard-dandrea has written a plugin for Jeedom (with a French description). Thank you! Node-RED GitHub user @konne wrote a module for Node-RED . Thank you! FHEM FHEM forum user Luposoft has written a compact explanation of the configuration for using FHEM via MQTT. Thank you! openHAB Since version 2.5.4, there exists a binding that is officially part of OpenHAB. Homematic FHEM forum user PaulM has written a few scripts to showcase the integration of BSB-LAN into Homematic. Thank you! SmartHomeNG GitHub user @thensty wrote a plugin for SmartHomeNG . Thank you! Volkszaehler GitHub user @lapixo has contributed a script for the Volkszaehler project . Thank you! Bash script GitHub user @khfm has written Bash scripts to query data and display it using gnuplot. Thank you! Exchanging data via MQTT This is the recommended way to connect BSB-LAN to home automation systems because it allows seamless exchange of data. As a prerequisite, a MQTT broker (such as mosquitto ) is needed, either running locally or via making use of a public service. Some home automation systems such as Home Assistant offer the installation of mosquitto as part of their software. Attention: Currently, the mosquitto broker seems to have an issue with handling larger numbers of messages from versions 2.0.16 onwards ( see this bug report ). If you encounter the problem that your BSB-LAN entities become \"unavailable\", especially after using the auto-discovery feature below, please downgrade to mosquitto version 2.0.15. However, be aware that this version has security issues, so make sure that your broker runs at least in a firewalled environment. In BSB-LAN, you need to make or enable at least the following configurations: Set Logging mode (additionally) to Send to MQTT Broker . Set Log Interval to the time (in seconds) you want the log parameters to be published. Select up to 20 Log Parameters you want to be sent to your home automation system. Set MQTT Usage to plain text . Set MQTT Broker Server to the hostname of your MQTT broker (such as the mosquitto server). If your home automation system supports MQTT auto-discovery (as is the case with Home Assistant), you can call URL command /M1! and BSB-LAN will send auto-discovery messages for all available parameters from device ID to the MQTT broker and thus to the home automation system. You may have to clean up afterwards or send a removal message for all these parameters using URL command /M0! if you don't want to use this feature anymore. Otherwise, if you want to set up your own connection details, the topic structure of BSB-LAN is as follows: /// whereas is defined in BSB-LAN's settings (defaults to BSB-LAN ), is the ID of the heating controller (usually 0 for the main controller), is the category number as it is used with URL-command /K , is the parameter number, such as 501.1 . This structure is followed by one of these topics that determine the action to be performed: /status - contains the value of the parameter in the MQTT payload. /set - used to set a parameter with the value contained in the published MQTT payload using the SET telegram (default way of setting parameters). /inf - same as /set , but uses the INF telegram (used for sending room temperature parameter 10000, for example). /poll - ignores the published value and forces BSB-LAN to immediately update /status of the same parameter with a freshly retrieved parameter value. /poll can also be accessed directly below the main topic (e.g. BSB-LAN/poll ) where it accepts a list of parameters separated by comma. These parameters will then immediately have their respective /status topics updated in one go. Addressing parameters can either be done in topic-style (with leading slash) or similar to the list of logging parameters in BSB-LAN's settings (see examples below). At the same time, the legacy way of sending URL commands via MQTT directly to the main topic (as defined in the settings, defaulting to BSB-LAN ), is still supported for compatibility reasons, but deprecated. Responses will always be written to /status of the above mentioned topic structure. The /status topic is updated in four ways: via logging parameters to MQTT as explained above every time a URL query is made to BSB-LAN (can be disabled by activating Only send log parameters to MQTT in configuration) every time a parameter is changed through the room unit (can be disabled by activating Only send log parameters to MQTT in configuration) every time the parameter is updated via the /poll topic as explained above In these cases, the respective values of the parameters affected will be sent to the MQTT broker, so even changes made outside of BSB-LAN are sent to the home automation system, which is why the MQTT approach is the recommended way to connect to a home automation system. This also means that, as an alternative to the built-in logging feature of BSB-LAN, you can also just periodically call a URL with the parameters you want to see updated. Since these parameters will also be sent to the MQTT broker, your home automation system will receive them as well. For example, if you periodically call the URL http://bsb-lan.local/700/8700 , both the operating mode of heat circuit 1 (parameter 700) as well as the current outside temperature (parameter 8700) will be sent to the MQTT broker. Examples for querying or setting parameters via MQTT using mosquitto Query the outside temperature (device ID 0, category no. 51, parameter 8700): mosquitto_sub -h my.mosquitto-broker.local -u USER -P PASSWORD -t BSB-LAN/0/51/8700/status Set the comfort temperature setpoint (device ID 0, category no. 16, parameter 710) to 20 degrees: mosquitto_pub -h my.mosquitto-broker.local -u USER -P PASSWORD -m \"20\" -t BSB-LAN/0/16/710/set Force immediate update of outside temperature (device ID 0, category no. 51, parameter 8700): mosquitto_pub -h my.mosquitto-broker.local -u USER -P PASSWORD -m \"\" -t BSB-LAN/0/51/8700/poll Force immediate update of parameters 700 and 8700 from default device as well as parameter 8326 from device ID 1: mosquitto_pub -h my.mosquitto-broker.local -u USER -P PASSWORD -m \"700,8700,8326!1\" -t BSB-LAN/poll or mosquitto_pub -h my.mosquitto-broker.local -u USER -P PASSWORD -m \"/0/16/700,/0/51/8700,/1/50/8326\" -t BSB-LAN/poll Attention: Take note that the category number differs from system to system and has to be compared with your system first! Exchanging data via JSON BSB-LAN allows to query and set parameters via JSON structures and also provides numerous information about the parameters and category structures this way. The JSON API is accessd via URL commands and the openapi.yaml file provided in this repository can be used with Swagger to explore its possibilities and functionalitites. Exchanging data via URL commands and screen scraping For simpler solutions, using the URL commands to query and set parameters can be used to control BSB-LAN from other systems. Screen scraping is possible since the project tries not to break certain ways of displaying data, so that parsing with regular expressions remains feasible. Nevertheless, for most scenarios one of the other options will probably be preferrable.","title":"Connect to your Smart Home"},{"location":"homeautomation.html#connecting-bsb-lan-to-home-automation-systems","text":"BSB-LAN provides four ways to connect to home automation systems: Using supported modules for specific home automation systems Exchanging data via MQTT Exchanging data via JSON Exchanging data via URL commands and screen scraping","title":"Connecting BSB-LAN to home automation systems"},{"location":"homeautomation.html#using-supported-modules-for-specific-home-automation-systems","text":"For some systems, specific modules exist that can be used to access BSB-LAN seamlessly:","title":"Using supported modules for specific home automation systems"},{"location":"homeautomation.html#home-assistant","text":"While the official plugin no longer works, the MQTT approach (see below) works well with Home Assistant, including the auto-discovery feature. Here is a link to a video in the BSB-LAN YouTube channel that shows how to set up BSB-LAN in Home Assistant using the auto-discovery feature of Home Assistant. For further details of the implementation, you may also refer to these tutorials: GitHub user @ryann72 wrote detailed instructions for BSB-LAN and HomeAssistant/Mosquitto . It is also available in French . YouTuber @StoneTime has created two videos (in German) where he shows the installation of BSB-LAN as well as setting it up in Home Assistant . Dankesch\u00f6n! YouTuber @ArminasTV has created two videos (in French) where he shows the installation of BSB-LAN as well as how to set it up with Home Assistant and MQTT . Merci beacoup!","title":"Home Assistant"},{"location":"homeautomation.html#homebridge","text":"BSB-LAN user Michael has written a plugin for Homebridge . Thank you!","title":"Homebridge"},{"location":"homeautomation.html#iobroker","text":"GitHub user @hacki11 has developed an adapter for ioBroker . Thank you!","title":"ioBroker"},{"location":"homeautomation.html#jeedom","text":"GitHub user @bernard-dandrea has written a plugin for Jeedom (with a French description). Thank you!","title":"Jeedom"},{"location":"homeautomation.html#node-red","text":"GitHub user @konne wrote a module for Node-RED . Thank you!","title":"Node-RED"},{"location":"homeautomation.html#fhem","text":"FHEM forum user Luposoft has written a compact explanation of the configuration for using FHEM via MQTT. Thank you!","title":"FHEM"},{"location":"homeautomation.html#openhab","text":"Since version 2.5.4, there exists a binding that is officially part of OpenHAB.","title":"openHAB"},{"location":"homeautomation.html#homematic","text":"FHEM forum user PaulM has written a few scripts to showcase the integration of BSB-LAN into Homematic. Thank you!","title":"Homematic"},{"location":"homeautomation.html#smarthomeng","text":"GitHub user @thensty wrote a plugin for SmartHomeNG . Thank you!","title":"SmartHomeNG"},{"location":"homeautomation.html#volkszaehler","text":"GitHub user @lapixo has contributed a script for the Volkszaehler project . Thank you!","title":"Volkszaehler"},{"location":"homeautomation.html#bash-script","text":"GitHub user @khfm has written Bash scripts to query data and display it using gnuplot. Thank you!","title":"Bash script"},{"location":"homeautomation.html#exchanging-data-via-mqtt","text":"This is the recommended way to connect BSB-LAN to home automation systems because it allows seamless exchange of data. As a prerequisite, a MQTT broker (such as mosquitto ) is needed, either running locally or via making use of a public service. Some home automation systems such as Home Assistant offer the installation of mosquitto as part of their software. Attention: Currently, the mosquitto broker seems to have an issue with handling larger numbers of messages from versions 2.0.16 onwards ( see this bug report ). If you encounter the problem that your BSB-LAN entities become \"unavailable\", especially after using the auto-discovery feature below, please downgrade to mosquitto version 2.0.15. However, be aware that this version has security issues, so make sure that your broker runs at least in a firewalled environment. In BSB-LAN, you need to make or enable at least the following configurations: Set Logging mode (additionally) to Send to MQTT Broker . Set Log Interval to the time (in seconds) you want the log parameters to be published. Select up to 20 Log Parameters you want to be sent to your home automation system. Set MQTT Usage to plain text . Set MQTT Broker Server to the hostname of your MQTT broker (such as the mosquitto server). If your home automation system supports MQTT auto-discovery (as is the case with Home Assistant), you can call URL command /M1! and BSB-LAN will send auto-discovery messages for all available parameters from device ID to the MQTT broker and thus to the home automation system. You may have to clean up afterwards or send a removal message for all these parameters using URL command /M0! if you don't want to use this feature anymore. Otherwise, if you want to set up your own connection details, the topic structure of BSB-LAN is as follows: /// whereas is defined in BSB-LAN's settings (defaults to BSB-LAN ), is the ID of the heating controller (usually 0 for the main controller), is the category number as it is used with URL-command /K , is the parameter number, such as 501.1 . This structure is followed by one of these topics that determine the action to be performed: /status - contains the value of the parameter in the MQTT payload. /set - used to set a parameter with the value contained in the published MQTT payload using the SET telegram (default way of setting parameters). /inf - same as /set , but uses the INF telegram (used for sending room temperature parameter 10000, for example). /poll - ignores the published value and forces BSB-LAN to immediately update /status of the same parameter with a freshly retrieved parameter value. /poll can also be accessed directly below the main topic (e.g. BSB-LAN/poll ) where it accepts a list of parameters separated by comma. These parameters will then immediately have their respective /status topics updated in one go. Addressing parameters can either be done in topic-style (with leading slash) or similar to the list of logging parameters in BSB-LAN's settings (see examples below). At the same time, the legacy way of sending URL commands via MQTT directly to the main topic (as defined in the settings, defaulting to BSB-LAN ), is still supported for compatibility reasons, but deprecated. Responses will always be written to /status of the above mentioned topic structure. The /status topic is updated in four ways: via logging parameters to MQTT as explained above every time a URL query is made to BSB-LAN (can be disabled by activating Only send log parameters to MQTT in configuration) every time a parameter is changed through the room unit (can be disabled by activating Only send log parameters to MQTT in configuration) every time the parameter is updated via the /poll topic as explained above In these cases, the respective values of the parameters affected will be sent to the MQTT broker, so even changes made outside of BSB-LAN are sent to the home automation system, which is why the MQTT approach is the recommended way to connect to a home automation system. This also means that, as an alternative to the built-in logging feature of BSB-LAN, you can also just periodically call a URL with the parameters you want to see updated. Since these parameters will also be sent to the MQTT broker, your home automation system will receive them as well. For example, if you periodically call the URL http://bsb-lan.local/700/8700 , both the operating mode of heat circuit 1 (parameter 700) as well as the current outside temperature (parameter 8700) will be sent to the MQTT broker.","title":"Exchanging data via MQTT"},{"location":"homeautomation.html#examples-for-querying-or-setting-parameters-via-mqtt-using-mosquitto","text":"Query the outside temperature (device ID 0, category no. 51, parameter 8700): mosquitto_sub -h my.mosquitto-broker.local -u USER -P PASSWORD -t BSB-LAN/0/51/8700/status Set the comfort temperature setpoint (device ID 0, category no. 16, parameter 710) to 20 degrees: mosquitto_pub -h my.mosquitto-broker.local -u USER -P PASSWORD -m \"20\" -t BSB-LAN/0/16/710/set Force immediate update of outside temperature (device ID 0, category no. 51, parameter 8700): mosquitto_pub -h my.mosquitto-broker.local -u USER -P PASSWORD -m \"\" -t BSB-LAN/0/51/8700/poll Force immediate update of parameters 700 and 8700 from default device as well as parameter 8326 from device ID 1: mosquitto_pub -h my.mosquitto-broker.local -u USER -P PASSWORD -m \"700,8700,8326!1\" -t BSB-LAN/poll or mosquitto_pub -h my.mosquitto-broker.local -u USER -P PASSWORD -m \"/0/16/700,/0/51/8700,/1/50/8326\" -t BSB-LAN/poll Attention: Take note that the category number differs from system to system and has to be compared with your system first!","title":"Examples for querying or setting parameters via MQTT using mosquitto"},{"location":"homeautomation.html#exchanging-data-via-json","text":"BSB-LAN allows to query and set parameters via JSON structures and also provides numerous information about the parameters and category structures this way. The JSON API is accessd via URL commands and the openapi.yaml file provided in this repository can be used with Swagger to explore its possibilities and functionalitites.","title":"Exchanging data via JSON"},{"location":"homeautomation.html#exchanging-data-via-url-commands-and-screen-scraping","text":"For simpler solutions, using the URL commands to query and set parameters can be used to control BSB-LAN from other systems. Screen scraping is possible since the project tries not to break certain ways of displaying data, so that parsing with regular expressions remains feasible. Nevertheless, for most scenarios one of the other options will probably be preferrable.","title":"Exchanging data via URL commands and screen scraping"},{"location":"install.html","text":"Installation Installing BSB-LAN requires three steps: Installing the Arduino IDE in order to flash the BSB-LAN software onto the microcontroller Assembling the hardware parts Connecting BSB-LAN to the heating system Installing the Arduino IDE and flashing BSB-LAN Download and unpack the current BSB-LAN version from the master repository or use git to clone the repository. Navigate to the BSB_LAN folder and rename the following files: BSB_LAN_custom_defs.h.default to BSB_LAN_custom_defs.h BSB_LAN_config.h.default to BSB_LAN_config.h . Download and install the Arduino IDE for your system. Connect your microcontroller (ESP32 or Arduino Due) to your computer and start the Arduino IDE. Go to Tools/Board/Board Manager and make sure that the framework for your board is installed (\"esp32 by Espressif Systems\" for ESP32 microcontroller, \"Arduino SAM Boards (32-bits ARM Cortex-M3) by Arduino\" for Arduino Due microcontroller) Again, go to Tools/Board and select your microcontroller: ESP32 Dev Module for the Joy-It ESP32 NodeMCU. Olimex ESP32-EVB for the ESP32-based Olimex EVB . Olimex ESP32-POE-ISO for the ESP32-based Olimex POE ISO Arduino Due (Programming Port) for the Arduino Due. Do not use the Native USB Port here ! Again, go to Tools/Board and select the proper upload speed (up to 460800 for ESP32, 115200 for Arduino Due). For ESP32-based microcontrollers, again, go to Tools/Board and select \"Minimal SPIFFS\" for partition scheme ( do not confuse this with the similar \"Minimal\" partition scheme which is different and not working in our case). If you don't set the correct parition scheme, the firmware will not fit into the ESP32! Go to File/Open and navigate to the BSB_LAN folder and double-click on BSB_LAN.ino . The project will open. You may now proceed to configure BSB-LAN. When you are done configuring, go to Sketch/Upload and upload the BSB-LAN software to the microcontroller. The same process has to be done with every future update, including when adding the device-specific parameter list. Subsequent updates on ESP32-based microcontrollers \"over the air\" (OTA) If you are running BSB-LAN on an ESP32-based microcontroller and have enabled Over-the-Air Updates in the settings , you can perform future updates of BSB-LAN using your browser. To do that, instead of using Sketch/Upload , you need to select Sketch/Export Compiled Binary . This will create a build folder in your BSB-LAN folder in which you will find among others the file BSB_LAN.ino.bin . Now open http://bsb-lan.local:8080 and select and upload that file. Do not interrupt the upload process. You may try to access BSB-LAN from a different browser window to see if the process is completed. Please take note that this only applies to ESP32-based microcontrollers. Arduinos do not support this functionality. Assembling the BSB-LAN adapter You can either get a fully assembled adapter from Frederik (bsb(\u00e4t)code-it.de) or build one on your own (see the folder schematics for the schematics). Once you have the BSB-LAN adapter ready, you just need to plug it into the microcontroller. If you are using an Olimex microcontroller, double-check that the adapter really sits in the center of the connector, because it still fits even if it is moved by one pin row to the left or right. Connecting BSB-LAN to the heating system Once the microcontroller and the BSB-LAN adapter are ready, perform the following steps to connect BSB-LAN to the heating system: Unplug the microcontroller from your computer and turn off your heating system. Locate the BSB/LPB/PPS connectors. You may have to open your heating system for that. Have a look at the list of supported heating systems to get an idea where the pins are located. Do all this at your own risk! If you are not careful, you may damage your equipment! Especially take care to prevent electrostatic discharge (ESD) which can destroy both BSB-LAN and the heating controller! Now plug the BSB-LAN adapter onto the microcontroller and connect the + screw connector to the CL+ (BSB), DB (LPB) or A6 (PPS, different connector names are possible) connector, and the - screw connector to the CL- (BSB), MB (LPB) or M (PPS) connector. If there is no empty connector, there is no problem adding the wires for BSB-LAN to an already \"used\" connector, provided the wires are inserted carefully. Regarding the cables, an (ideally screened/shielded) twisted two-core cable is recommended by Siemens . However, a number of users have also been successful with plain bell wire if the distances are not too long. Now you need to power on the microcontroller. Take note that the heating system does not power the microcontroller, even if the BSB-LAN adapter's LED turns on when you connect it to the heating system. You need to supply power to the microcontroller via its USB port (or via PoE on the Olimex POE-ISO). Make sure to use a stable power supply with at least 2 amperes. Once the microcontroller is powered on, turn on the heating system. The red LED of the BSB-LAN adapter should alight. It should flicker occasionally. Now open your webbrowser and open the IP address of BSB-LAN. If MDNS is enabled, you can directly go to http://bsb-lan.local . Otherwise, you can find the IP address of BSB-LAN either in your router, or you connect the microcontroller to your PC and open the Arduino IDE and go to Tools/Serial Monitor and set the serial monitor speed to 115200. Restart the microcontroller, and the IP address will be displayed upon connecting to the network. Generating the device-specific parameter list Once you access BSB-LAN for the first time, you will see that only very few parameters are shown on the device\u2019s web interface. This is because each model of the Siemens controller built into your heating system supports a different set of parameters. Previously, I provided a list of parameters collected from all different kinds of heating systems, but it turned out that this list was ambiguous or even contained errors that we couldn\u2019t fix reliably. This list is still available in release version 2.2.x of BSB-LAN and can be copied from there if needed. However, it is not advisable to do so because the said ambiguities and errors pose too great a risk of misconfiguring the heating system. Instead, it is recommended to click on the \" Device-specific parameter list \" button in BSB-LAN's menu and send the generated list to Frederik (bsb(\u00e4t)code-it.de). From this file, a parameter list can be generated that fits exactly the controller of your heating system. Unfortunately, this process cannot be automated yet, but at least it has to be done just once. These raw data do not contain any settings or other kinds of personal data, just the parameter structure of the heating system. It\u2019s in my own interest to create and return these parameter lists without any delay, but I ask for your understanding if it takes a bit longer due to work or family matters. Once you have received the parameter list (or taken the one from version 2.2.x), you have to replace the existing BSB_LAN_custom_defs.h file with the one sent to you, compile it and flash it again. Now you are ready to access all parameters.","title":"Installation"},{"location":"install.html#installation","text":"Installing BSB-LAN requires three steps: Installing the Arduino IDE in order to flash the BSB-LAN software onto the microcontroller Assembling the hardware parts Connecting BSB-LAN to the heating system","title":"Installation"},{"location":"install.html#installing-the-arduino-ide-and-flashing-bsb-lan","text":"Download and unpack the current BSB-LAN version from the master repository or use git to clone the repository. Navigate to the BSB_LAN folder and rename the following files: BSB_LAN_custom_defs.h.default to BSB_LAN_custom_defs.h BSB_LAN_config.h.default to BSB_LAN_config.h . Download and install the Arduino IDE for your system. Connect your microcontroller (ESP32 or Arduino Due) to your computer and start the Arduino IDE. Go to Tools/Board/Board Manager and make sure that the framework for your board is installed (\"esp32 by Espressif Systems\" for ESP32 microcontroller, \"Arduino SAM Boards (32-bits ARM Cortex-M3) by Arduino\" for Arduino Due microcontroller) Again, go to Tools/Board and select your microcontroller: ESP32 Dev Module for the Joy-It ESP32 NodeMCU. Olimex ESP32-EVB for the ESP32-based Olimex EVB . Olimex ESP32-POE-ISO for the ESP32-based Olimex POE ISO Arduino Due (Programming Port) for the Arduino Due. Do not use the Native USB Port here ! Again, go to Tools/Board and select the proper upload speed (up to 460800 for ESP32, 115200 for Arduino Due). For ESP32-based microcontrollers, again, go to Tools/Board and select \"Minimal SPIFFS\" for partition scheme ( do not confuse this with the similar \"Minimal\" partition scheme which is different and not working in our case). If you don't set the correct parition scheme, the firmware will not fit into the ESP32! Go to File/Open and navigate to the BSB_LAN folder and double-click on BSB_LAN.ino . The project will open. You may now proceed to configure BSB-LAN. When you are done configuring, go to Sketch/Upload and upload the BSB-LAN software to the microcontroller. The same process has to be done with every future update, including when adding the device-specific parameter list.","title":"Installing the Arduino IDE and flashing BSB-LAN"},{"location":"install.html#subsequent-updates-on-esp32-based-microcontrollers-over-the-air-ota","text":"If you are running BSB-LAN on an ESP32-based microcontroller and have enabled Over-the-Air Updates in the settings , you can perform future updates of BSB-LAN using your browser. To do that, instead of using Sketch/Upload , you need to select Sketch/Export Compiled Binary . This will create a build folder in your BSB-LAN folder in which you will find among others the file BSB_LAN.ino.bin . Now open http://bsb-lan.local:8080 and select and upload that file. Do not interrupt the upload process. You may try to access BSB-LAN from a different browser window to see if the process is completed. Please take note that this only applies to ESP32-based microcontrollers. Arduinos do not support this functionality.","title":"Subsequent updates on ESP32-based microcontrollers \"over the air\" (OTA)"},{"location":"install.html#assembling-the-bsb-lan-adapter","text":"You can either get a fully assembled adapter from Frederik (bsb(\u00e4t)code-it.de) or build one on your own (see the folder schematics for the schematics). Once you have the BSB-LAN adapter ready, you just need to plug it into the microcontroller. If you are using an Olimex microcontroller, double-check that the adapter really sits in the center of the connector, because it still fits even if it is moved by one pin row to the left or right.","title":"Assembling the BSB-LAN adapter"},{"location":"install.html#connecting-bsb-lan-to-the-heating-system","text":"Once the microcontroller and the BSB-LAN adapter are ready, perform the following steps to connect BSB-LAN to the heating system: Unplug the microcontroller from your computer and turn off your heating system. Locate the BSB/LPB/PPS connectors. You may have to open your heating system for that. Have a look at the list of supported heating systems to get an idea where the pins are located. Do all this at your own risk! If you are not careful, you may damage your equipment! Especially take care to prevent electrostatic discharge (ESD) which can destroy both BSB-LAN and the heating controller! Now plug the BSB-LAN adapter onto the microcontroller and connect the + screw connector to the CL+ (BSB), DB (LPB) or A6 (PPS, different connector names are possible) connector, and the - screw connector to the CL- (BSB), MB (LPB) or M (PPS) connector. If there is no empty connector, there is no problem adding the wires for BSB-LAN to an already \"used\" connector, provided the wires are inserted carefully. Regarding the cables, an (ideally screened/shielded) twisted two-core cable is recommended by Siemens . However, a number of users have also been successful with plain bell wire if the distances are not too long. Now you need to power on the microcontroller. Take note that the heating system does not power the microcontroller, even if the BSB-LAN adapter's LED turns on when you connect it to the heating system. You need to supply power to the microcontroller via its USB port (or via PoE on the Olimex POE-ISO). Make sure to use a stable power supply with at least 2 amperes. Once the microcontroller is powered on, turn on the heating system. The red LED of the BSB-LAN adapter should alight. It should flicker occasionally. Now open your webbrowser and open the IP address of BSB-LAN. If MDNS is enabled, you can directly go to http://bsb-lan.local . Otherwise, you can find the IP address of BSB-LAN either in your router, or you connect the microcontroller to your PC and open the Arduino IDE and go to Tools/Serial Monitor and set the serial monitor speed to 115200. Restart the microcontroller, and the IP address will be displayed upon connecting to the network.","title":"Connecting BSB-LAN to the heating system"},{"location":"install.html#generating-the-device-specific-parameter-list","text":"Once you access BSB-LAN for the first time, you will see that only very few parameters are shown on the device\u2019s web interface. This is because each model of the Siemens controller built into your heating system supports a different set of parameters. Previously, I provided a list of parameters collected from all different kinds of heating systems, but it turned out that this list was ambiguous or even contained errors that we couldn\u2019t fix reliably. This list is still available in release version 2.2.x of BSB-LAN and can be copied from there if needed. However, it is not advisable to do so because the said ambiguities and errors pose too great a risk of misconfiguring the heating system. Instead, it is recommended to click on the \" Device-specific parameter list \" button in BSB-LAN's menu and send the generated list to Frederik (bsb(\u00e4t)code-it.de). From this file, a parameter list can be generated that fits exactly the controller of your heating system. Unfortunately, this process cannot be automated yet, but at least it has to be done just once. These raw data do not contain any settings or other kinds of personal data, just the parameter structure of the heating system. It\u2019s in my own interest to create and return these parameter lists without any delay, but I ask for your understanding if it takes a bit longer due to work or family matters. Once you have received the parameter list (or taken the one from version 2.2.x), you have to replace the existing BSB_LAN_custom_defs.h file with the one sent to you, compile it and flash it again. Now you are ready to access all parameters.","title":"Generating the device-specific parameter list"},{"location":"list_of_controllers.html","text":"AVS37, AVS55 , AVS71, AVS74, AVS75, AVS77, AVS79, LMS14 , LMS15 , LMU54 , LMU64 , LMU74 , LMU75 , RVA33, RVA36, RVA43, RVA46, RVA47, RVA53 , RVA60, RVA61, RVA63 , RVA65, RVA66, RVC32, RVD110, RVD115, RVD120, RVD125, RVD130, RVD135, RVD139, RVD140, RVD144, RVD145, RVD230, RVD235, RVD240, RVD245, RVD250, RVD255, RVD260, RVD265, RVL469, RVL470, RVL471, RVL472, RVL479, RVL480, RVL481, RVL482, RVP340, RVP350, RVP351, RVP360, RVP361, RVP54 , RVP5xx, RVS13 , RVS21 , RVS23 , RVS26, RVS41 , RVS43 , RVS46 , RVS47, RVS51 , RVS53 , RVS61 , RVS63 , RVS65 , RVS68, RWI65, WRI80","title":"List of controllers"},{"location":"quickstart.html","text":"Quickstart instructions These quickstart instructions are for users who are familiar with installing and configuring software on their computer. If you need more detailed instructions, please head to the install instructions ! Make sure that your heating system is compatible with BSB-LAN! Download and unpack the current BSB-LAN version from the master repository or use git to clone the repository. Navigate to the BSB_LAN folder and rename the following files: BSB_LAN_custom_defs.h.default to BSB_LAN_custom_defs.h BSB_LAN_config.h.default to BSB_LAN_config.h . Download and install the Arduino IDE for your system. Connect your microcontroller (ESP32 or Arduino Due) to your computer and start the Arduino IDE. Go to Tools/Board/Board Manager and make sure that the framework for your board is installed (\"esp32 by Espressif Systems\" for ESP32 microcontroller, \"Arduino SAM Boards (32-bits ARM Cortex-M3) by Arduino\" for Arduino Due microcontroller) Again, go to Tools/Board and select your microcontroller: ESP32 Dev Module for the Joy-It ESP32 NodeMCU. Olimex ESP32-EVB for the ESP32-based Olimex EVB . Olimex ESP32-POE-ISO for the ESP32-based Olimex POE ISO Arduino Due (Programming Port) for the Arduino Due. Do not use the Native USB Port here ! Again, go to Tools/Board and select the proper upload speed (up to 460800 for ESP32, 115200 for Arduino Due). For ESP32-based microcontrollers, again, go to Tools/Partition Scheme and select \"Minimal SPIFFS\" or for partition scheme ( do not confuse this with the similar \"Minimal\" partition scheme which is different and not working in our case). If you don't set the correct parition scheme, the firmware will not fit into the ESP32! Go to File/Open and navigate to the BSB_LAN folder and double-click on BSB_LAN.ino . The project will open. Click on the tab with the filename BSB_LAN_config.h and configure at least the following: Search for #define LANG DE : Change DE to EN for English, FR for French etc. Search for uint8_t network_type : Set this to LAN if you are using Ethernet/LAN connection. Set this to WLAN if you are using WiFi/WLAN. If you are not using DHCP, configure the following options according to your network (make sure to use a comma, not a dot for IP addresses!): byte ip_addr[4] = {192,168,178,88}; byte gateway_addr[4] = {192,168,178,1}; byte dns_addr[4] = {192,168,178,1}; byte subnet_addr[4] = {255,255,255,0}; char wifi_ssid[32] = \"Your_Wifi_network_name\"; char wifi_pass[32] = \"Your_WiFi_network_password\"; Now go to Sketch/Upload and upload the BSB-LAN software to the microcontroller. Unplug the microcontroller and turn off your heating system. Locate the BSB/LPB/PPS connectors. You may have to open your heating system for that. Do all this at your own risk! Now plug the BSB-LAN adapter onto the microcontroller and connect the + screw connector to the CL+ (BSB), DB (LPB) or A6 (PPS, different connector names are possible) connector, and the - screw connector to the CL- (BSB), MB (LPB) or M (PPS) connector. Power on the microcontroller via the USB port or via PoE (Olimex POE-ISO only). Then power on the heating system. The red LED of the BSB-LAN adapter should turn on. It should flicker occasionally. Now open your webbrowser and open the IP address of BSB-LAN. If MDNS is enabled, you can directly go to http://bsb-lan.local . You can find the IP address of BSB-LAN either in your router, or you connect the microcontroller to your PC and open the Arduino IDE and go to Tools/Serial Monitor . Restart the microcontroller, and the IP address will be displayed upon connecting to the network. Done :-) It's not working! Please make sure you check every entry in the Troubleshooting-Section first before getting in touch with us! Why do I only see so few parameters? Once you access BSB-LAN for the first time, you will see that only very few parameters are shown on the device\u2019s web interface. This is because each model of the Siemens controller built into your heating system supports a different set of parameters. Previously, I provided a list of parameters collected from all different kinds of heating systems, but it turned out that this list was ambiguous or even contained errors that we couldn\u2019t fix reliably. This list is still available in release version 2.2.x of BSB-LAN and can be copied from there if needed. However, it is not advisable to do so because the said ambiguities and errors pose too great a risk of misconfiguring the heating system. Instead, it is recommended to click on the \" Device-specific parameter list \" button in BSB-LAN's menu and send the generated list to Frederik (bsb(\u00e4t)code-it.de). From this file, a parameter list can be generated that fits exactly the controller of your heating system. Unfortunately, this process cannot be automated yet, but at least it has to be done just once. These raw data do not contain any settings or other kinds of personal data, just the parameter structure of the heating system. It\u2019s in my own interest to create and return these parameter lists without any delay, but I ask for your understanding if it takes a bit longer due to work or family matters.","title":"Quickstart"},{"location":"quickstart.html#quickstart-instructions","text":"These quickstart instructions are for users who are familiar with installing and configuring software on their computer. If you need more detailed instructions, please head to the install instructions ! Make sure that your heating system is compatible with BSB-LAN! Download and unpack the current BSB-LAN version from the master repository or use git to clone the repository. Navigate to the BSB_LAN folder and rename the following files: BSB_LAN_custom_defs.h.default to BSB_LAN_custom_defs.h BSB_LAN_config.h.default to BSB_LAN_config.h . Download and install the Arduino IDE for your system. Connect your microcontroller (ESP32 or Arduino Due) to your computer and start the Arduino IDE. Go to Tools/Board/Board Manager and make sure that the framework for your board is installed (\"esp32 by Espressif Systems\" for ESP32 microcontroller, \"Arduino SAM Boards (32-bits ARM Cortex-M3) by Arduino\" for Arduino Due microcontroller) Again, go to Tools/Board and select your microcontroller: ESP32 Dev Module for the Joy-It ESP32 NodeMCU. Olimex ESP32-EVB for the ESP32-based Olimex EVB . Olimex ESP32-POE-ISO for the ESP32-based Olimex POE ISO Arduino Due (Programming Port) for the Arduino Due. Do not use the Native USB Port here ! Again, go to Tools/Board and select the proper upload speed (up to 460800 for ESP32, 115200 for Arduino Due). For ESP32-based microcontrollers, again, go to Tools/Partition Scheme and select \"Minimal SPIFFS\" or for partition scheme ( do not confuse this with the similar \"Minimal\" partition scheme which is different and not working in our case). If you don't set the correct parition scheme, the firmware will not fit into the ESP32! Go to File/Open and navigate to the BSB_LAN folder and double-click on BSB_LAN.ino . The project will open. Click on the tab with the filename BSB_LAN_config.h and configure at least the following: Search for #define LANG DE : Change DE to EN for English, FR for French etc. Search for uint8_t network_type : Set this to LAN if you are using Ethernet/LAN connection. Set this to WLAN if you are using WiFi/WLAN. If you are not using DHCP, configure the following options according to your network (make sure to use a comma, not a dot for IP addresses!): byte ip_addr[4] = {192,168,178,88}; byte gateway_addr[4] = {192,168,178,1}; byte dns_addr[4] = {192,168,178,1}; byte subnet_addr[4] = {255,255,255,0}; char wifi_ssid[32] = \"Your_Wifi_network_name\"; char wifi_pass[32] = \"Your_WiFi_network_password\"; Now go to Sketch/Upload and upload the BSB-LAN software to the microcontroller. Unplug the microcontroller and turn off your heating system. Locate the BSB/LPB/PPS connectors. You may have to open your heating system for that. Do all this at your own risk! Now plug the BSB-LAN adapter onto the microcontroller and connect the + screw connector to the CL+ (BSB), DB (LPB) or A6 (PPS, different connector names are possible) connector, and the - screw connector to the CL- (BSB), MB (LPB) or M (PPS) connector. Power on the microcontroller via the USB port or via PoE (Olimex POE-ISO only). Then power on the heating system. The red LED of the BSB-LAN adapter should turn on. It should flicker occasionally. Now open your webbrowser and open the IP address of BSB-LAN. If MDNS is enabled, you can directly go to http://bsb-lan.local . You can find the IP address of BSB-LAN either in your router, or you connect the microcontroller to your PC and open the Arduino IDE and go to Tools/Serial Monitor . Restart the microcontroller, and the IP address will be displayed upon connecting to the network. Done :-)","title":"Quickstart instructions"},{"location":"quickstart.html#its-not-working","text":"Please make sure you check every entry in the Troubleshooting-Section first before getting in touch with us!","title":"It's not working!"},{"location":"quickstart.html#why-do-i-only-see-so-few-parameters","text":"Once you access BSB-LAN for the first time, you will see that only very few parameters are shown on the device\u2019s web interface. This is because each model of the Siemens controller built into your heating system supports a different set of parameters. Previously, I provided a list of parameters collected from all different kinds of heating systems, but it turned out that this list was ambiguous or even contained errors that we couldn\u2019t fix reliably. This list is still available in release version 2.2.x of BSB-LAN and can be copied from there if needed. However, it is not advisable to do so because the said ambiguities and errors pose too great a risk of misconfiguring the heating system. Instead, it is recommended to click on the \" Device-specific parameter list \" button in BSB-LAN's menu and send the generated list to Frederik (bsb(\u00e4t)code-it.de). From this file, a parameter list can be generated that fits exactly the controller of your heating system. Unfortunately, this process cannot be automated yet, but at least it has to be done just once. These raw data do not contain any settings or other kinds of personal data, just the parameter structure of the heating system. It\u2019s in my own interest to create and return these parameter lists without any delay, but I ask for your understanding if it takes a bit longer due to work or family matters.","title":"Why do I only see so few parameters?"},{"location":"supported_heating_systems.html","text":"Supported heating systems BSB-LAN supports heating systems that communicate using either the BSB (Boiler System Bus) , the LPB (Local Process Bus) or the PPS (Punkt-zu-Punkt-Schnittstelle) . These controllers are usually manufactured by Siemens, older controllers might still bear the company name \"Landis & Stafea\" or \"Landis & Gyr\". We have compiled a list of working models from various heating system manufacturers who have been confirmed working with BSB-LAN, although there is no 100% guarantee that the manufacturers keep the model name but change the controller to a different system. So always make sure to double-check that the right connectors are available. Here are a few examples from heating controllers and the connectors that are used to connect to BSB-LAN. Some connectors have three pins, some have two pins. If there are three pins, make sure you choose the correct two (CL+ and CL-) as the third von (G+) is to provide background lighting for the room unit. It won't harm BSB-LAN, but it might be misleading because BSB-LAN's LED will be on even though it's not connected to the right pin. By the way: If you only have one connector and it is already occupied with a room unit, it's no problem to add BSB-LAN to the same connector. Just be careful when adding the wires for BSB-LAN. Controller Image Remarks LMS14 LMS15 BSB connection: + = Left - = Center LMS14 LMS15 BSB connection: CL+/CL- LMS14 LMS15 Baxi Luna Platinum, Chappee Klista BSB connection: Terminal block M2 Pin 2: CL- Pin 3: CL+ See detailed instructions here for Baxi Luna Platinum . LMU54 LMU64 LPB connection: via additional OCI420 plugin, see details below . LMU74 LMU75 BSB connection: + = Top - = Center LPB connection: via additional OCI420 plugin RVA53 PPS connection: A6/MD RVA63 LPB connection: MB/DB PPS connection: A6/MD RVP54 PPS connection: A6/M RVS13 BSB connection: CL+/CL- RVS21 BSB connection via connector X86 + = rightmost pin - = second pin from right RVS21 with AVS55 AVS55 extension module, sitting on top of RVS21. BSB connection either via connector X86: + = rightmost pin - = second pin from right or via connector X150: + = topmost pin - = second pin from top RVS23 LPB connection: LPB/M RVS41 BSB connection: CL+/CL- LPB connection: MB/DB RVS43 LOGON B BSB connection: CL+/CL- LPB connection: MB/DB RVS46 ISR-ZR1 BSB connection: CL+/CL- LPB connection: MB/DB RVS46 BSB connection: CL+/CL- LPB connection: MB/DB RVS51 BSB connection: CL+/CL- RVS53 BSB connection: CL+/CL- RVS61 BSB connection: CL+/CL- LPB connection: MB/DB RVS63 BSB connection: CL+/CL- LPB connection: MB/DB RVS65 BSB connection: CL+/CL- LPB connection: MB/DB Configuration settings for OCI420 Getting the OCI420 to work properly can be a bit challenging if it is not already part of an existing LPB network. If you connect the OCI420 for the first time to your heater and have no other LPB heating device, you will most likely get \"error 81\" which indicates that there is a bus error. But don't worry, most likely it's just a matter of configuring a few parameters to get it going. For the LMU64, the corresponding parameter is 604 ( LPBKonfig0 ). It needs to be set as follows for using BSB-LAN as the only device connected to the OCI420: 604.0 = 0 604.1 = 1 604.2 = 1 604.3 = 1 604.4 = 1 604.5 = 0 604.6 = 0 604.7 = 0 Then you need to set the LPB address of the OCI420 in parameters 605 (needs to be set to 1) and 606 (needs to be set to 0). Afterwards, there should be no more error message and the red LED of the OCI420 should blink in regular intervals and you are ready to connect and use BSB-LAN. Attention: If the OCI420 is already connected to another LPB device, do not make any changes here and rather connect BSB-LAN to the other LPB device. It should work without any adjustments. List of working controller models There are a many more controllers that are likely to work with BSB-LAN. Look out for these Siemens controller models in your heating system: AVS37, AVS55 , AVS71, AVS74, AVS75, AVS77, AVS79, LMS14 , LMS15 , LMU54 , LMU64 , LMU74 , LMU75 , RVA33, RVA36, RVA43, RVA46, RVA47, RVA53 , RVA60, RVA61, RVA63 , RVA65, RVA66, RVC32, RVD110, RVD115, RVD120, RVD125, RVD130, RVD135, RVD139, RVD140, RVD144, RVD145, RVD230, RVD235, RVD240, RVD245, RVD250, RVD255, RVD260, RVD265, RVL469, RVL470, RVL471, RVL472, RVL479, RVL480, RVL481, RVL482, RVP340, RVP350, RVP351, RVP360, RVP361, RVP54 , RVP5xx, RVS13 , RVS21 , RVS23 , RVS26, RVS41 , RVS43 , RVS46 , RVS47, RVS51 , RVS53 , RVS61 , RVS63 , RVS65 , RVS68, RWI65, WRI80","title":"Supported Heating Systems"},{"location":"supported_heating_systems.html#supported-heating-systems","text":"BSB-LAN supports heating systems that communicate using either the BSB (Boiler System Bus) , the LPB (Local Process Bus) or the PPS (Punkt-zu-Punkt-Schnittstelle) . These controllers are usually manufactured by Siemens, older controllers might still bear the company name \"Landis & Stafea\" or \"Landis & Gyr\". We have compiled a list of working models from various heating system manufacturers who have been confirmed working with BSB-LAN, although there is no 100% guarantee that the manufacturers keep the model name but change the controller to a different system. So always make sure to double-check that the right connectors are available. Here are a few examples from heating controllers and the connectors that are used to connect to BSB-LAN. Some connectors have three pins, some have two pins. If there are three pins, make sure you choose the correct two (CL+ and CL-) as the third von (G+) is to provide background lighting for the room unit. It won't harm BSB-LAN, but it might be misleading because BSB-LAN's LED will be on even though it's not connected to the right pin. By the way: If you only have one connector and it is already occupied with a room unit, it's no problem to add BSB-LAN to the same connector. Just be careful when adding the wires for BSB-LAN. Controller Image Remarks LMS14 LMS15 BSB connection: + = Left - = Center LMS14 LMS15 BSB connection: CL+/CL- LMS14 LMS15 Baxi Luna Platinum, Chappee Klista BSB connection: Terminal block M2 Pin 2: CL- Pin 3: CL+ See detailed instructions here for Baxi Luna Platinum . LMU54 LMU64 LPB connection: via additional OCI420 plugin, see details below . LMU74 LMU75 BSB connection: + = Top - = Center LPB connection: via additional OCI420 plugin RVA53 PPS connection: A6/MD RVA63 LPB connection: MB/DB PPS connection: A6/MD RVP54 PPS connection: A6/M RVS13 BSB connection: CL+/CL- RVS21 BSB connection via connector X86 + = rightmost pin - = second pin from right RVS21 with AVS55 AVS55 extension module, sitting on top of RVS21. BSB connection either via connector X86: + = rightmost pin - = second pin from right or via connector X150: + = topmost pin - = second pin from top RVS23 LPB connection: LPB/M RVS41 BSB connection: CL+/CL- LPB connection: MB/DB RVS43 LOGON B BSB connection: CL+/CL- LPB connection: MB/DB RVS46 ISR-ZR1 BSB connection: CL+/CL- LPB connection: MB/DB RVS46 BSB connection: CL+/CL- LPB connection: MB/DB RVS51 BSB connection: CL+/CL- RVS53 BSB connection: CL+/CL- RVS61 BSB connection: CL+/CL- LPB connection: MB/DB RVS63 BSB connection: CL+/CL- LPB connection: MB/DB RVS65 BSB connection: CL+/CL- LPB connection: MB/DB","title":"Supported heating systems"},{"location":"supported_heating_systems.html#configuration-settings-for-oci420","text":"Getting the OCI420 to work properly can be a bit challenging if it is not already part of an existing LPB network. If you connect the OCI420 for the first time to your heater and have no other LPB heating device, you will most likely get \"error 81\" which indicates that there is a bus error. But don't worry, most likely it's just a matter of configuring a few parameters to get it going. For the LMU64, the corresponding parameter is 604 ( LPBKonfig0 ). It needs to be set as follows for using BSB-LAN as the only device connected to the OCI420: 604.0 = 0 604.1 = 1 604.2 = 1 604.3 = 1 604.4 = 1 604.5 = 0 604.6 = 0 604.7 = 0 Then you need to set the LPB address of the OCI420 in parameters 605 (needs to be set to 1) and 606 (needs to be set to 0). Afterwards, there should be no more error message and the red LED of the OCI420 should blink in regular intervals and you are ready to connect and use BSB-LAN. Attention: If the OCI420 is already connected to another LPB device, do not make any changes here and rather connect BSB-LAN to the other LPB device. It should work without any adjustments.","title":"Configuration settings for OCI420"},{"location":"supported_heating_systems.html#list-of-working-controller-models","text":"There are a many more controllers that are likely to work with BSB-LAN. Look out for these Siemens controller models in your heating system: AVS37, AVS55 , AVS71, AVS74, AVS75, AVS77, AVS79, LMS14 , LMS15 , LMU54 , LMU64 , LMU74 , LMU75 , RVA33, RVA36, RVA43, RVA46, RVA47, RVA53 , RVA60, RVA61, RVA63 , RVA65, RVA66, RVC32, RVD110, RVD115, RVD120, RVD125, RVD130, RVD135, RVD139, RVD140, RVD144, RVD145, RVD230, RVD235, RVD240, RVD245, RVD250, RVD255, RVD260, RVD265, RVL469, RVL470, RVL471, RVL472, RVL479, RVL480, RVL481, RVL482, RVP340, RVP350, RVP351, RVP360, RVP361, RVP54 , RVP5xx, RVS13 , RVS21 , RVS23 , RVS26, RVS41 , RVS43 , RVS46 , RVS47, RVS51 , RVS53 , RVS61 , RVS63 , RVS65 , RVS68, RWI65, WRI80","title":"List of working controller models"},{"location":"supported_models.html","text":"Supported models from various manufacturers This is a list of models from various manufacturers that have in the past been tested with BSB-LAN. Please take note that manufacturers may at any time change the technical specifications, including the controller, without changing the model name (or just a very minor part of it). Where we get to know about such a change, we will list it here, but obviously this list is not complete, in both ways. So in any case, please do a final check yourself if your heating system has the necessary connectors to use BSB-LAN. Br\u00f6tje: BBK, BBS, BGB, BLW ( see exceptions below! ), BMK, BMR, BOB, BSK, BSW, Eurocontrol, ISR, LogoBloc, SGB, SOB, SPK, WBC, WBS, WGB ( see exceptions below! ), WMC, WMS, WOB Not working Br\u00f6tje models: BOK, BLW Neo, BLW Split-P, BLW Split C, BLW Split-K C, WGB-K, WGB 14.1/22.1/28.1/38.1, WHC, WHS, WLC, WLS B\u00f6sch: heat pumps with RVS controller type Elco: Aerotop ( not Aerotop Mono! ), Aquatop, Rendamax, Straton, Thision ( not Thision Mini! ), Thision S, Thision S Plus, Trigon S Plus ATAG: QR Atlantic: Alf\u00e9a, Axeo, Excellia, Extensa, Hynea hybrid duo gaz, Navistem, Perfinox, Varmax Austria Email: LWP, LWPK Baxi: Luna Platinum, Luna Duo, Block Kondens Boesch: SLS Chapp\u00e9e: Luna, Klista CitrinSolar: proClima CTA: Optiheat CTC: 380 IC Deville: 9942, 9981 Eco: AiWA, AW, BW, DW, heatLite, Star, TBW, WW, WWi, TWW Ecostar: Ecodense WT-S 45 EVI Heat: Combi-7 Fernw\u00e4rme: RVD230 Froeling: Rendagas Plus Fujitsu Waterstage: Comfort, Duo, WOHA, WSHA, WSYA, WSYK, WSYP Geminox: Thrs General: (aka Fujitsu Waterstage) WC13F / WOC13RIYF / WGHA 100DG Gruenenwald: Greenheat GS: UnoTec Hansa: SND Herz: Commotherm 5 DeLuxe Interdomo: Domostar GBK 25H/SH MAN/MHG: Ecostar 200 MHG: ecoWP Xe, Procon E Oilon: SH, SHx Olymp: SHS, WHS Palazzetti: Choro Sistema Calore Sieger: TG11 \u0160ildymo Technologij\u0173 Centras (\u0160TC): STC9 Sixmadun: TG11BE SSP: Proburner Sunex: Nexus Termomax: Termo \u00d6V Thermics: Energie Thermital: TBox Clima TOP Tifell: Biofell Viessmann: Vitotwin 300-W Wamak: AiWa, DB Weishaupt: WTU","title":"Supported models from various manufacturers"},{"location":"supported_models.html#supported-models-from-various-manufacturers","text":"This is a list of models from various manufacturers that have in the past been tested with BSB-LAN. Please take note that manufacturers may at any time change the technical specifications, including the controller, without changing the model name (or just a very minor part of it). Where we get to know about such a change, we will list it here, but obviously this list is not complete, in both ways. So in any case, please do a final check yourself if your heating system has the necessary connectors to use BSB-LAN. Br\u00f6tje: BBK, BBS, BGB, BLW ( see exceptions below! ), BMK, BMR, BOB, BSK, BSW, Eurocontrol, ISR, LogoBloc, SGB, SOB, SPK, WBC, WBS, WGB ( see exceptions below! ), WMC, WMS, WOB Not working Br\u00f6tje models: BOK, BLW Neo, BLW Split-P, BLW Split C, BLW Split-K C, WGB-K, WGB 14.1/22.1/28.1/38.1, WHC, WHS, WLC, WLS B\u00f6sch: heat pumps with RVS controller type Elco: Aerotop ( not Aerotop Mono! ), Aquatop, Rendamax, Straton, Thision ( not Thision Mini! ), Thision S, Thision S Plus, Trigon S Plus ATAG: QR Atlantic: Alf\u00e9a, Axeo, Excellia, Extensa, Hynea hybrid duo gaz, Navistem, Perfinox, Varmax Austria Email: LWP, LWPK Baxi: Luna Platinum, Luna Duo, Block Kondens Boesch: SLS Chapp\u00e9e: Luna, Klista CitrinSolar: proClima CTA: Optiheat CTC: 380 IC Deville: 9942, 9981 Eco: AiWA, AW, BW, DW, heatLite, Star, TBW, WW, WWi, TWW Ecostar: Ecodense WT-S 45 EVI Heat: Combi-7 Fernw\u00e4rme: RVD230 Froeling: Rendagas Plus Fujitsu Waterstage: Comfort, Duo, WOHA, WSHA, WSYA, WSYK, WSYP Geminox: Thrs General: (aka Fujitsu Waterstage) WC13F / WOC13RIYF / WGHA 100DG Gruenenwald: Greenheat GS: UnoTec Hansa: SND Herz: Commotherm 5 DeLuxe Interdomo: Domostar GBK 25H/SH MAN/MHG: Ecostar 200 MHG: ecoWP Xe, Procon E Oilon: SH, SHx Olymp: SHS, WHS Palazzetti: Choro Sistema Calore Sieger: TG11 \u0160ildymo Technologij\u0173 Centras (\u0160TC): STC9 Sixmadun: TG11BE SSP: Proburner Sunex: Nexus Termomax: Termo \u00d6V Thermics: Energie Thermital: TBox Clima TOP Tifell: Biofell Viessmann: Vitotwin 300-W Wamak: AiWa, DB Weishaupt: WTU","title":"Supported models from various manufacturers"},{"location":"troubleshooting.html","text":"Troubleshooting BSB-LAN tries to make accessing your heating system as easy as possible, but there are always things that can go wrong. If you still have a problem after reading this document as well as the FAQ , please open up a bug report on the project's GitHub page and make sure that you provide us with all the necessary log files and further required details, especially from the Serial Monitor (or SerMo in short). Before doing so, however, make sure that you install the most recent version of BSB-LAN from the master repository (not the release version), even if yours is \"just\" a few days old. Still, a lot could have happned since then :)! Using the Serial Monitor Access the Serial Monitor by going to Tools/Serial Monitor in the Arduino IDE. Set the transmission speed to 115200 at the top right corner of the serial monitor window. Make sure you copy the messages right from the moment your microcontroller boots (indicated by the READY message) until the moment you encounter the problem. Please do not send screenshots, only plain text files. The Serial Monitor in the Arduino IDE currently has a bug that allows you to only copy those parts of the Serial Monitor messages that you can see on the screen. Although this means that copying larger portions of log messages is tedious, you still have to provide the complete log in order to get support. Increasing the size of the Serial Monitor window helps a little. Compiling fails: \"Sketch too big\" Select the Minimal SPIFFS partition scheme in the Arduino IDE under Tools/Partition Scheme . Attention: This setting is reset to default when updating the ESP32 framework! If you are using over-the-air updates, you have to flash the software once via USB after changing the partition scheme before OTA updates will work again. No access to web-interface anymore If you have changed the settings in such a way that you cannot access the web-interface anymore, there are two ways to restore the system: If you can flash the device: Configure BSB_LAN_config.h with correct, working settings. Set UseEEPROM to 0 . Flash BSB-LAN onto the microcontroller. You can now access BSB-LAN. Go to \"Settings\" and save the settings. This will store the working settings to the EEPROM. Now edit BSB_LAN_config.h again (!) and set UseEEPROM to 1 and flash BSB-LAN again to the microcontroller. Only now will BSB-LAN read and use the settings from the EEPROM, so you can make further changes in the web-interface. If you cannot flash the device: If you cannot flash the device on site, you can reset BSB-LAN to the last BSB_LAN_config.h setting by connecting two pins before and during booting the microcontroller : ESP32-Olimex: Connect pins 34 and 3V3. ESP32-NodeMCU: Connect pins 21 and 3V3. Arduino Due: Connect pins 31 and 33. If the pins were successfully connected, the built-in LED of the microcontroller will flash slowly for four seconds. Afterwards open the configuration in the web-interface, check all settings in the configuration and save them. This will store the working settings to the EEPROM. Temporary access point on an ESP32-based microcontroller On an ESP32-based microcontroller, BSB-LAN will set up its own wireless access point named BSB-LAN if it cannot connect to any network. In this casee, you can connect to this access point with the password BSB-LPB-PPS-LAN and access BSB-LAN via the IP address http://192.168.4.1 and see if you can fix the configuration this way. Keep in mind that if you have set a passkey or HTTP username and password, these are still required if these details are stored in EEPROM or BSB_LAN_config.h . I can only access very few parameters via BSB/LPB! Initially, BSB-LAN only comes with a small set of parameters that work on (almost) every heating system. You need to get a device specific parameter list . Category list suddenly so small BSB-LAN needs to detect the heating system's controller to determine the categories to display. If BSB-LAN is not connected to the controller or the detection otherwise fails, only a few universal categories are displayed. Cannot read any parameters / device family is 0 Wrong bus type (BSB instead of LPB or vice versa). If the red LED of the adapter is not on (and ideally slightly flickering), there is a problem with the wiring between the adapter and the heating system. The red LED will come one once the adapter is connected correctly, even if the BSB-LAN adapter isn't even connected to the microcontroller! No data even though the adapter's red LED is on Make sure the adapter is connected to CL+/CL- and not to the third (G+) pin: G+ will drive the LED, but it's not a data line. Make sure you have powered on the microcontroller . You may think that the heating system powers the microcontroller because the LED on the BSB-LAN adapter is on, but it doesn't. You need to power it separately. With the adapter for the Olimex microcontrollers: Make sure that the BSB-LAN adapter board sits exactly in the center of the UEXT connector. It will still fit in, if it's shifted one pin left or right, but it won't work. Make sure the RX/TX pins are set/detected correctly. The startup sequence in the Serial Monitor will show you what pins have are used or have been auto-detected. No or unreliable network connection Try powering the microcontroller via USB from a laptop. We have had many cases where power supplies were unreliable despite having sufficient ratings. Look at the Serial Monitor log to check if the microcontroller could acquire an IP address. If not, then your network settings or physical connection may be faulty. No connection to hidden WiFi network possible Yes, that is a known restriction. The only way to do that is to set the BSSID explicitly in BSB_LAN_config.h . Room temperature (or any other parameter) cannot be set Check BSB-LAN's settings and make sure that write access is enabled and set to standard or complete . Web-interface freezes when making new connection BSB-LAN is not a multi-tasking system. This means it can attend to one task at a time. So even if a URL command is aborted (by closing the browser window), BSB-LAN might not detect this and only start serving new requests once the previous one is finished. The Serial Monitor is not showing readable data Make sure the speed is set correctly to 115200 bps. Make sure the correct port is selected.","title":"Troubleshooting"},{"location":"troubleshooting.html#troubleshooting","text":"BSB-LAN tries to make accessing your heating system as easy as possible, but there are always things that can go wrong. If you still have a problem after reading this document as well as the FAQ , please open up a bug report on the project's GitHub page and make sure that you provide us with all the necessary log files and further required details, especially from the Serial Monitor (or SerMo in short). Before doing so, however, make sure that you install the most recent version of BSB-LAN from the master repository (not the release version), even if yours is \"just\" a few days old. Still, a lot could have happned since then :)!","title":"Troubleshooting"},{"location":"troubleshooting.html#using-the-serial-monitor","text":"Access the Serial Monitor by going to Tools/Serial Monitor in the Arduino IDE. Set the transmission speed to 115200 at the top right corner of the serial monitor window. Make sure you copy the messages right from the moment your microcontroller boots (indicated by the READY message) until the moment you encounter the problem. Please do not send screenshots, only plain text files. The Serial Monitor in the Arduino IDE currently has a bug that allows you to only copy those parts of the Serial Monitor messages that you can see on the screen. Although this means that copying larger portions of log messages is tedious, you still have to provide the complete log in order to get support. Increasing the size of the Serial Monitor window helps a little.","title":"Using the Serial Monitor"},{"location":"troubleshooting.html#compiling-fails-sketch-too-big","text":"Select the Minimal SPIFFS partition scheme in the Arduino IDE under Tools/Partition Scheme . Attention: This setting is reset to default when updating the ESP32 framework! If you are using over-the-air updates, you have to flash the software once via USB after changing the partition scheme before OTA updates will work again.","title":"Compiling fails: \"Sketch too big\""},{"location":"troubleshooting.html#no-access-to-web-interface-anymore","text":"If you have changed the settings in such a way that you cannot access the web-interface anymore, there are two ways to restore the system: If you can flash the device: Configure BSB_LAN_config.h with correct, working settings. Set UseEEPROM to 0 . Flash BSB-LAN onto the microcontroller. You can now access BSB-LAN. Go to \"Settings\" and save the settings. This will store the working settings to the EEPROM. Now edit BSB_LAN_config.h again (!) and set UseEEPROM to 1 and flash BSB-LAN again to the microcontroller. Only now will BSB-LAN read and use the settings from the EEPROM, so you can make further changes in the web-interface. If you cannot flash the device: If you cannot flash the device on site, you can reset BSB-LAN to the last BSB_LAN_config.h setting by connecting two pins before and during booting the microcontroller : ESP32-Olimex: Connect pins 34 and 3V3. ESP32-NodeMCU: Connect pins 21 and 3V3. Arduino Due: Connect pins 31 and 33. If the pins were successfully connected, the built-in LED of the microcontroller will flash slowly for four seconds. Afterwards open the configuration in the web-interface, check all settings in the configuration and save them. This will store the working settings to the EEPROM. Temporary access point on an ESP32-based microcontroller On an ESP32-based microcontroller, BSB-LAN will set up its own wireless access point named BSB-LAN if it cannot connect to any network. In this casee, you can connect to this access point with the password BSB-LPB-PPS-LAN and access BSB-LAN via the IP address http://192.168.4.1 and see if you can fix the configuration this way. Keep in mind that if you have set a passkey or HTTP username and password, these are still required if these details are stored in EEPROM or BSB_LAN_config.h .","title":"No access to web-interface anymore"},{"location":"troubleshooting.html#i-can-only-access-very-few-parameters-via-bsblpb","text":"Initially, BSB-LAN only comes with a small set of parameters that work on (almost) every heating system. You need to get a device specific parameter list .","title":"I can only access very few parameters via BSB/LPB!"},{"location":"troubleshooting.html#category-list-suddenly-so-small","text":"BSB-LAN needs to detect the heating system's controller to determine the categories to display. If BSB-LAN is not connected to the controller or the detection otherwise fails, only a few universal categories are displayed.","title":"Category list suddenly so small"},{"location":"troubleshooting.html#cannot-read-any-parameters-device-family-is-0","text":"Wrong bus type (BSB instead of LPB or vice versa). If the red LED of the adapter is not on (and ideally slightly flickering), there is a problem with the wiring between the adapter and the heating system. The red LED will come one once the adapter is connected correctly, even if the BSB-LAN adapter isn't even connected to the microcontroller!","title":"Cannot read any parameters / device family is 0"},{"location":"troubleshooting.html#no-data-even-though-the-adapters-red-led-is-on","text":"Make sure the adapter is connected to CL+/CL- and not to the third (G+) pin: G+ will drive the LED, but it's not a data line. Make sure you have powered on the microcontroller . You may think that the heating system powers the microcontroller because the LED on the BSB-LAN adapter is on, but it doesn't. You need to power it separately. With the adapter for the Olimex microcontrollers: Make sure that the BSB-LAN adapter board sits exactly in the center of the UEXT connector. It will still fit in, if it's shifted one pin left or right, but it won't work. Make sure the RX/TX pins are set/detected correctly. The startup sequence in the Serial Monitor will show you what pins have are used or have been auto-detected.","title":"No data even though the adapter's red LED is on"},{"location":"troubleshooting.html#no-or-unreliable-network-connection","text":"Try powering the microcontroller via USB from a laptop. We have had many cases where power supplies were unreliable despite having sufficient ratings. Look at the Serial Monitor log to check if the microcontroller could acquire an IP address. If not, then your network settings or physical connection may be faulty.","title":"No or unreliable network connection"},{"location":"troubleshooting.html#no-connection-to-hidden-wifi-network-possible","text":"Yes, that is a known restriction. The only way to do that is to set the BSSID explicitly in BSB_LAN_config.h .","title":"No connection to hidden WiFi network possible"},{"location":"troubleshooting.html#room-temperature-or-any-other-parameter-cannot-be-set","text":"Check BSB-LAN's settings and make sure that write access is enabled and set to standard or complete .","title":"Room temperature (or any other parameter) cannot be set"},{"location":"troubleshooting.html#web-interface-freezes-when-making-new-connection","text":"BSB-LAN is not a multi-tasking system. This means it can attend to one task at a time. So even if a URL command is aborted (by closing the browser window), BSB-LAN might not detect this and only start serving new requests once the previous one is finished.","title":"Web-interface freezes when making new connection"},{"location":"troubleshooting.html#the-serial-monitor-is-not-showing-readable-data","text":"Make sure the speed is set correctly to 115200 bps. Make sure the correct port is selected.","title":"The Serial Monitor is not showing readable data"},{"location":"using.html","text":"Using BSB-LAN Controlling the heating system via the web-interface As a first step \u2013 or if you just want to turn your heating system on or off \u2013 you can simply open the BSB-LAN web-interface and go to the Settings menu. This will display a list of categories from your heating controller. You can click on each category and will get a list of corresponding parameters. If you see a Set button, it means the parameter can be changed, and clicking on the button will send the new value to the heater. If there is no Set button, the parameter is read-only and there is no way to change the parameter. Using BSB-LAN's URL commands Most of BSB-LAN's functionality can be controlled using URL commands. These are useful or even necessary when connecting BSB-LAN to a home automation system , but also provide access to functions not directly accessible via the web-interface. URL commands are called right after BSB-LAN's hostname and an (optional) passkey. So to get a list of categories, one would have to open the URL http://bsb-lan.local/K (or http://bsb-lan.local/1234/K if the passkey 1234 is in use). Querying and setting parameters table th:first-of-type { width: 20%; } table th:nth-of-type(2) { width: 80%; } URL command Functionality / Query setting of parameter /! Query setting of parameter from controller at destination address /// Query settings of parameters , and . Parameters can include ! to address different controllers. /- Query settings of parameters to /!- Query settings of parameters to from controller at destination address /K List all parameter categories from controller at default destination address /K! List all parameter categories from controller at destination address /K Query all parameters of category from controller at default destination address /K! Query all parameters of category from controller at destination address /S= Set parameter from controller at default destination address to value . To set a parameter to --- (off/deactivated), just send an empty value: S= /S!= Set parameter from controller at destination address to value . /I= Send value y as INF telegram to parameter . So far only required with setting room temperature (parameters 10000 ff.). Configuration URL command Functionality /C Configuration /CO Dump BSB-LAN's configuration /P,, Temporarily set bus type to , own address to and target address to . /V Enable ( 1 ) or disable ( 0 ) verbose output mode. Should remain enabled unless specifically instructed. Logging URL command Functionality /DG Graphical display (graph plot) of an active log file /D or /DD Dumps log file datalog.txt from storage. Contains the logged parameters and values when logging to SD card is active. /D Dumps the most recent calender days of the log file /D, Dumps data from log file between and . and have to be set in the format yyyy-mm-dd (e.g. /D2024-04-01,2024-04-30 ) /D0 Reset both log files datalog.txt and journal.txt and create new headers. Should be executed before first logging. /DK Purges data older than days from the log file /LN Forces logging irrespective of current interval and restarts the configured interval at this point of time /L=,, Set logging interval to seconds and (optionally) reset logging parameters to , etc. until reboot /L=0,0 Deactivate logging to storage until reboot /LB= Log only broadcast telegrams ( 1 ) or all telegrams ( 0 ). Setting active until reboot. /LU= Log only unknown bus telegrams ( 1 ) or all telegrams ( 0 ). Setting active until reboot. /A=0 Disable 24h average calculation until reboot /A=,, Change 24h average value calculation to parameters , and until reboot /B0 Reset stats for accumulated burner-runtime and -cycles /DD0 Remove log file datalog.txt only /DJ Dumps log file journal.txt from storage /DJ0 Remove log file journal.txt only /LD Disable logging of telegrams to journal.txt until reboot /LE Enable logging of telegrams to journal.txt Parameter information URL command Functionality /E Displays parameter options of parameter . Only available for option-type parameters such as data types VT_ENUM , VT_CUSTOM_ENUM , VT_BITS and VT_CUSTOM_BITS . /R Query default setting of parameter GPIO control URL command Functionality /G Displays the actual state of GPIO pin /G= Set GPIO pin to HIGH ( = 1 ) or LOW ( = 0 ) JSON interface For a complete structure of the JSON API, please see here for the OpenAPI documentation . URL command Functionality /JQ=,, Query parameters , and and return a JSON structure /JQ Query parameters based on a received JSON structure via HTTP POST /JS Set parameters based on a received JSON structure via HTTP POST /JR Query default value of parameter and return a JSON structure /JK=ALL Dump parameter ranges for all available categories as JSON structure /JK= Dump the parameter structure for all parameters of category /JC=,, Dump the parameter structure for parameters , and . Same JSON structure as /JK= . `/JC Dump the parameter structure for a parameter list received as a JSON structure via HTTP POST. /JB Backup of all writeable parameters received as a JSON structure that can be used to restore using /JS . /JB! Backup of all writeable parameters from controller at destination address in a JSON structure that can be used to write back using /JS . /JL Creates a JSON structure of BSB-LAN's configuration settings` /JW Writes configuration settings based on a JSON structure created by /JL /JI Dump runtime information of BSB-LAN as JSON structure` /JV Return the version of BSB-LAN's JSON-API as a JSON structure Misceallaneous URL command Functionality /M! Send ( =1 ) or revoke ( =0 ) MQTT auto-discovery messages for all parameters from controller at destination address . /N Reset and reboot microcontroller (takes approx. 15 seconds) /NE Erase EEPROM and reboot the microcontroller. All configuration settings will subsequently be read from configuration file until set and saved again in the web-interface to be written to EEPROM. /QD Dump parameter structure from heating system /W With a preceding /W the URL commands C , S and Q return data without HTML header and footer (e.g.: /WC or /WS= ). Using the graphical plot functionality If logged data on storage (either SD card or internal flash) is available, the Display log file becomes clickable. By default, it will display the logged data in the browser. To access the logged data itself (in the file datalog.txt ), use the /D URL command mentioned above. By default, \"Display log file\" displays the log data of the most recent n calendar days ( n=DEFAULT_DAYS_TO_PLOT , configurable in BSB_LAN_config.h ). Subsequently, controls on the web page can be used to select a different range, depending on the data contained in the log file. Mouseover, click and mouse wheel actions within the graphical display provide various control options: Better legibility for value numbers with plot lines close to each other (mouseover on plot) Users can interactively highlight plot lines for improved overview (mouseover on legend entries) Users can interactively disable plot lines for improved overview and vertical scaling (click on legend entries) Zoom (mousewheel/pinch on plot) and pan capability (drag zoomed-in plot) For further processing, you can use this Python script that takes BSB-LAN's log output to create pivoted CSV files that can be used for more insightful diagrams.","title":"BSB-LAN's functions"},{"location":"using.html#using-bsb-lan","text":"","title":"Using BSB-LAN"},{"location":"using.html#controlling-the-heating-system-via-the-web-interface","text":"As a first step \u2013 or if you just want to turn your heating system on or off \u2013 you can simply open the BSB-LAN web-interface and go to the Settings menu. This will display a list of categories from your heating controller. You can click on each category and will get a list of corresponding parameters. If you see a Set button, it means the parameter can be changed, and clicking on the button will send the new value to the heater. If there is no Set button, the parameter is read-only and there is no way to change the parameter.","title":"Controlling the heating system via the web-interface"},{"location":"using.html#using-bsb-lans-url-commands","text":"Most of BSB-LAN's functionality can be controlled using URL commands. These are useful or even necessary when connecting BSB-LAN to a home automation system , but also provide access to functions not directly accessible via the web-interface. URL commands are called right after BSB-LAN's hostname and an (optional) passkey. So to get a list of categories, one would have to open the URL http://bsb-lan.local/K (or http://bsb-lan.local/1234/K if the passkey 1234 is in use).","title":"Using BSB-LAN's URL commands"},{"location":"using.html#querying-and-setting-parameters","text":"table th:first-of-type { width: 20%; } table th:nth-of-type(2) { width: 80%; } URL command Functionality / Query setting of parameter /! Query setting of parameter from controller at destination address /// Query settings of parameters , and . Parameters can include ! to address different controllers. /- Query settings of parameters to /!- Query settings of parameters to from controller at destination address /K List all parameter categories from controller at default destination address /K! List all parameter categories from controller at destination address /K Query all parameters of category from controller at default destination address /K! Query all parameters of category from controller at destination address /S= Set parameter from controller at default destination address to value . To set a parameter to --- (off/deactivated), just send an empty value: S= /S!= Set parameter from controller at destination address to value . /I= Send value y as INF telegram to parameter . So far only required with setting room temperature (parameters 10000 ff.).","title":"Querying and setting parameters"},{"location":"using.html#configuration","text":"URL command Functionality /C Configuration /CO Dump BSB-LAN's configuration /P,, Temporarily set bus type to , own address to and target address to . /V Enable ( 1 ) or disable ( 0 ) verbose output mode. Should remain enabled unless specifically instructed.","title":"Configuration"},{"location":"using.html#logging","text":"URL command Functionality /DG Graphical display (graph plot) of an active log file /D or /DD Dumps log file datalog.txt from storage. Contains the logged parameters and values when logging to SD card is active. /D Dumps the most recent calender days of the log file /D, Dumps data from log file between and . and have to be set in the format yyyy-mm-dd (e.g. /D2024-04-01,2024-04-30 ) /D0 Reset both log files datalog.txt and journal.txt and create new headers. Should be executed before first logging. /DK Purges data older than days from the log file /LN Forces logging irrespective of current interval and restarts the configured interval at this point of time /L=,, Set logging interval to seconds and (optionally) reset logging parameters to , etc. until reboot /L=0,0 Deactivate logging to storage until reboot /LB= Log only broadcast telegrams ( 1 ) or all telegrams ( 0 ). Setting active until reboot. /LU= Log only unknown bus telegrams ( 1 ) or all telegrams ( 0 ). Setting active until reboot. /A=0 Disable 24h average calculation until reboot /A=,, Change 24h average value calculation to parameters , and until reboot /B0 Reset stats for accumulated burner-runtime and -cycles /DD0 Remove log file datalog.txt only /DJ Dumps log file journal.txt from storage /DJ0 Remove log file journal.txt only /LD Disable logging of telegrams to journal.txt until reboot /LE Enable logging of telegrams to journal.txt","title":"Logging"},{"location":"using.html#parameter-information","text":"URL command Functionality /E Displays parameter options of parameter . Only available for option-type parameters such as data types VT_ENUM , VT_CUSTOM_ENUM , VT_BITS and VT_CUSTOM_BITS . /R Query default setting of parameter ","title":"Parameter information"},{"location":"using.html#gpio-control","text":"URL command Functionality /G Displays the actual state of GPIO pin /G= Set GPIO pin to HIGH ( = 1 ) or LOW ( = 0 )","title":"GPIO control"},{"location":"using.html#json-interface","text":"For a complete structure of the JSON API, please see here for the OpenAPI documentation . URL command Functionality /JQ=,, Query parameters , and and return a JSON structure /JQ Query parameters based on a received JSON structure via HTTP POST /JS Set parameters based on a received JSON structure via HTTP POST /JR Query default value of parameter and return a JSON structure /JK=ALL Dump parameter ranges for all available categories as JSON structure /JK= Dump the parameter structure for all parameters of category /JC=,, Dump the parameter structure for parameters , and . Same JSON structure as /JK= . `/JC Dump the parameter structure for a parameter list received as a JSON structure via HTTP POST. /JB Backup of all writeable parameters received as a JSON structure that can be used to restore using /JS . /JB! Backup of all writeable parameters from controller at destination address in a JSON structure that can be used to write back using /JS . /JL Creates a JSON structure of BSB-LAN's configuration settings` /JW Writes configuration settings based on a JSON structure created by /JL /JI Dump runtime information of BSB-LAN as JSON structure` /JV Return the version of BSB-LAN's JSON-API as a JSON structure","title":"JSON interface"},{"location":"using.html#misceallaneous","text":"URL command Functionality /M! Send (