Ok, this is the REST sensor part from my configuration.yaml:
sensor:
- platform: rest
name: BSB-LAN Status
resource: "http://192.168.0.95/JQ=700,1600,8000,8003,6705,710,712,720,721,1610,1612,5400"
method: POST
username: !secret bsb_lan_user
password: !secret bsb_lan_pass
scan_interval: 5
value_template: "{{ value_json['6705'].value }}"
json_attributes:
- "700"
- "1600"
- "6705"
- "8000"
- "8003"
- "710"
- "712"
- "720"
- "721"
- "1610"
- "1612"
- "5400"
headers:
Content-Type: application/json
- platform: template
sensors:
bsb_lan_betriebsart:
friendly_name: BSB-LAN Betriebsart
value_template: "{% if states('sensor.bsb_lan_status') is defined and states('sensor.bsb_lan_status') != 'unavailable' %}{{ state_attr('sensor.bsb_lan_status', '700')['value'] }}{% else %}{{ states('sensor.bsb_lan_betriebsart') }}{% endif %}"
attribute_templates:
desc: "{% if states('sensor.bsb_lan_status') is defined and states('sensor.bsb_lan_status') != 'unavailable' %}{{ state_attr('sensor.bsb_lan_status', '8000')['desc'] }}{% else %}{{ state_attr('sensor.bsb_lan_betriebsart', 'desc') }}{% endif %}"
bsb_lan_trinkwasserbetrieb:
friendly_name: BSB-LAN Trinkwasserbetrieb
value_template: "{% if states('sensor.bsb_lan_status') is defined and states('sensor.bsb_lan_status') != 'unavailable' %}{{ state_attr('sensor.bsb_lan_status', '1600')['value'] }}{% else %}{{ states('sensor.bsb_lan_trinkwasserbetrieb') }}{% endif %}"
attribute_templates:
desc: "{% if states('sensor.bsb_lan_status') is defined and states('sensor.bsb_lan_status') != 'unavailable' %}{{ state_attr('sensor.bsb_lan_status', '8003')['desc'] }}{% else %}{{ state_attr('sensor.bsb_lan_trinkwasserbetrieb', 'desc') }}{% endif %}"
bsb_lan_komfortsollwert:
friendly_name: BSB-LAN Komfortsollwert
value_template: "{% if states('sensor.bsb_lan_status') is defined and states('sensor.bsb_lan_status') != 'unavailable' %}{{ state_attr('sensor.bsb_lan_status', '710')['value'] }}{% else %}{{ states('sensor.bsb_lan_komfortsollwert') }}{% endif %}"
unit_of_measurement: °C
device_class: temperature
bsb_lan_reduziertsollwert:
friendly_name: BSB-LAN Reduziertsollwert
value_template: "{% if states('sensor.bsb_lan_status') is defined and states('sensor.bsb_lan_status') != 'unavailable' %}{{ state_attr('sensor.bsb_lan_status', '712')['value'] }}{% else %}{{ states('sensor.bsb_lan_reduziertsollwert') }}{% endif %}"
unit_of_measurement: °C
device_class: temperature
bsb_lan_kennlinie_steilheit:
friendly_name: BSB-LAN Kennlinie Steilheit
value_template: "{% if states('sensor.bsb_lan_status') is defined and states('sensor.bsb_lan_status') != 'unavailable' %}{{ state_attr('sensor.bsb_lan_status', '720')['value'] }}{% else %}{{ states('sensor.bsb_lan_kennlinie_steilheit') }}{% endif %}"
bsb_lan_kennlinie_verschiebung:
friendly_name: BSB-LAN Kennlinie Verschiebung
value_template: "{% if states('sensor.bsb_lan_status') is defined and states('sensor.bsb_lan_status') != 'unavailable' %}{{ state_attr('sensor.bsb_lan_status', '721')['value'] }}{% else %}{{ states('sensor.bsb_lan_kennlinie_verschiebung') }}{% endif %}"
unit_of_measurement: °C
device_class: temperature
bsb_lan_tww_nennsollwert:
friendly_name: BSB-LAN TWW Nennsollwert
value_template: "{% if states('sensor.bsb_lan_status') is defined and states('sensor.bsb_lan_status') != 'unavailable' %}{{ state_attr('sensor.bsb_lan_status', '1610')['value'] }}{% else %}{{ states('sensor.bsb_lan_tww_nennsollwert') }}{% endif %}"
unit_of_measurement: °C
device_class: temperature
bsb_lan_tww_reduziertsollwert:
friendly_name: BSB-LAN TWW Reduziertsollwert
value_template: "{% if states('sensor.bsb_lan_status') is defined and states('sensor.bsb_lan_status') != 'unavailable' %}{{ state_attr('sensor.bsb_lan_status', '1612')['value'] }}{% else %}{{ states('sensor.bsb_lan_tww_reduziertsollwert') }}{% endif %}"
unit_of_measurement: °C
device_class: temperature
bsb_lan_tww_dle_komfortsollwert:
friendly_name: BSB-LAN TWW DLE Komfortsollwert
value_template: "{% if states('sensor.bsb_lan_status') is defined and states('sensor.bsb_lan_status') != 'unavailable' %}{{ state_attr('sensor.bsb_lan_status', '5400')['value'] }}{% else %}{{ states('sensor.bsb_lan_tww_dle_komfortsollwert') }}{% endif %}"
unit_of_measurement: °C
device_class: temperature
bsb_lan_temperaturspreizung:
friendly_name: BSB-LAN Temperaturspreizung
value_template: "{{ (states('sensor.bsb_lan_vorlauftemperatur') | float - states('sensor.bsb_lan_rucklauftemperatur') | float) | round(1) }}"
unit_of_measurement: °C
device_class: temperature
As the HTTP query is quite slow on the Arduino (the more values you read out, the slower it gets), I use MQTT to acquire all constantly changing values (mainly temperatures). You need to have a MQTT broker of course and the Arduino configured to use it:
Have you got a climate card with your rest commands ? what is your code ?
I want to use 2 heating circuits (floor and etage) and heating water circuit so if I understand correctly, itâs not possible with the actual integration ?
Hi
Iam very new at BSB Lan. I use a ESP32 with the BSB-Lan adapter and first off all: It works!
Now I triy to integrate it in my HomeAssistant. I needed to flash the newest Version of BSB Lan, because for the ESP32 I need the wifi integration. SO the HA BSB integration does not work. I tried, buit it doesnât
Now I want to use mqtt like tiger42 did.
What do I have to configure in the BSB-LAN adapter to gett mqtt working
MQTT verwenden: Plain text, JSON, Rich Json ???
MQTT IP Adress, Passwort, Username, GerĂ€teID, Topic Prefix â got it!
SOmething else? In the logging section?
BSBLan has changed a lot the last few months. So I have to pick up where it is and what is best for HA integration. For now you could follow @tiger42 instructions to get the most out of it.
When I have some time available I am planning te rewrite the integration.
This will be more mqqt based because it will work like local push.
The plan is to have support for the platforms climate , hot water, and maybe some customs stuff.
If someone has interest to get things started let me know. I will enjoy to watch it from the sideline.
Iâve updated the BSB-Lan in Arduino and HA to the latest version, and now I am getting the negative amounts for this component⊠Iâve tried to sniff the network, and it seems the BSB-Lan itself return the correct values. Where can be the issue? Thanks!
Bsblan firmware has changed a lot so I cannot tell whatâs broken.
For example they shuffled the parameters around.
Thatâs why itâs documented the version number of the firmware you have to install to be able to use this integration. You can still download the firmware version on GitHub that works with the integration.
Version 1.0 is the latest tested
I am spending time once in a while to overhaul the integration. But progress is slow.
My BSB-lan adapter is on itâs way and Iâll be using an ESP32, so Iâm not sure version 1.0 will work for me. Can I help in getting the integration updated so itâll work with the current version of the firmware?
I hope to start soon. I think I am going to start a custom component and will make it available on hacs first. This makes development and iterations a bit faster than doing pull request on the core. A lot need to be changed.
@konicekdavid, go to the BSB-LAN Github page or the documentation and you can find there the developerâs,
Frederik, email.
Send an email to him with your boilerâs model number to confirm that it will work and ask him for the BSB-LAN adapter.
You can order the board from him, assembled or non-assembled. He will tell you which board you need depending on you ESP board.
If you ask this question in English, then someone might can answer it.
But looking at your question, it is better to ask it on the BSB-LAN Github repo under the Discussions. Probably you will get an answer there easier as this is really a heater specific question.
The command set mqtt2Server publish BSB-LAN /S700=1 sends from the MQTT broker named âmqtt2Serverâ the command â/S700=1â with the topic âBSB-LANâ and causes a mode switch to automatic mode.
But that simply does not do anything, although it looks to me like the bulb on the BSB-LAN board very shortly flashing, like the command would at least reach it.