BSB-Lan is a boiler system bus over lan interface. It consist of an Arduino with a custom board that is connected to the heating system over BSB connection. Here is the git page BSB-Lan git
On the Arduino runs a server that has multiple interfaces to communicate with. Post requests and MQTT are 2 of them.
I have now finished a basic thermostat integration using the python library bsblan. This will be in hopefully the next release of home-assistant. In the next release I will iterate over this plugin and add more features like:
passkey
login and password
sensors
binary sensor (like switching on the hot water boiler if you got that in your config)
scanning for available sensors, features. Not all heating system are the same so this way it will hopefully support more out of the box. But to get this to work I need community support. I have only 1 specific heating system.
a way to push temperature to the heating system. (if you don’t have a thermostat and a separate temp sensor)
if you got multiple heating system connected. (this one will be a bit tricky to test, but with support of Holger we should get this working?)
Ok it took a bit more time than I expected to get it working nicely.
But finally here is my first custom component!
It only contains a sensor for now. Climate module is the next on my list if all goes well.
It is easy to configure. You need to add only your host ip followed by /JQ and the parameters you want to read.
I’d like to test the custom component, but first need some clarification:
What bsb-lan software version is recommended?
I am currently using the passkey method to query my heating system (http://a.b.c.d/xxxx/), is this supported and how do I need to configure it with the component? Add the key to the host entry like a.b.c.d/xxxx/JQ?
I have been neglecting this component for a while. Last week I just started updating it again.
The current version isn’t working with the latest home assistant version. They changed the climate system in a few ways. So at home I can’t run the latest home assistant even.
Luckily last weekend I started to update it to make it work with the current dev build and it runs again. I have to do some more testing and will release it in github.
For passkey. I have to implement this and test it. Some parts of the code are there. But there was no testing yet.
The other thing is that I didn’t test it with the latest BSB-Lan firmware. It should work but I am not sure if there were major changes. From my github emails I couldn’t see any warnings from BSB-Lan.
So maybe next weekend I put a release out that is compatible with the current HA. When you want to test it. You need to disable passkey for BSB-Lan. I hope no other persons are on your network. Otherwise you need to wait a little longer.
About the compatibility with current Home Assistant version, I am gonna write a python lib first to communicate with BSBLan board. This is the required approach for components to communicate with devices. (if I want to submit is to hacs) This will make is also a bit easier and give cleaner code.
So it will take a bit longer than a weekend I suggest. But it will include paskey and other authorizations methods.
I got the python-bsblan lib almost ready for release. I just want to check how you are using the bsblan-board. Which parameters are you requesting and setting? Just to make sure that it’s going to work. My baby-lan board is connected to Fujitsu Waterstage system. And I am requesting status of pump and thermostat at 8000 range. And setting temperature and hvac-mode in 700 range. Do you have some specific request?
You are logging quite a few parameters! I1000 where do you get this parameter? is JQ=8740 not the same?
When I request this parameter I get an error. Maybe I have to update my BSBLan module?
I’ll have a look how to get more parameters support by the lib. Not sure yet how. But you can request datatype from the parameter so it should be doable.
Passkey should be in there with the first release.
I am now working on how to set it up with HomeAssistant new config-flow. It looks not that hard.
I’ll soon release the python-bsblan lib on pypi. Not sure what the requirements are.
Ah that is that command you do using get request. If you do post request you can send data to set temperature. You can than set parameter 8740 with a value. So I don’t need to bother with i1000. manual
Have you tried that successfully? For me it does not work and this is in line with what the manual describes:
Send INF-message to parameter with value
Some values can’t be set directly, the controller gets these values by a TYPE_INF-message. As an example, the room temperature of 19.5°C should be transmitted: http://<ip-address>/I10000=19.5
I am not sure what that part in the manual means. Maybe it’s old? Or if you want to set it with the other method they describe?
Set value <y> for parameter <x> with optional destination address <z>
Command for setting values (therefore, write-access must be defined previously in BSB_lan_config.h!). Additionally a destination address can be set by using <z>. If <!z> isn’t used, the standard destination address will be used.
To set a parameter to ‘off/deactivated’, just use an empty value: http://<ip-address>/S<x>=.
So with node red you could test this code also. It’s the same as you want to request code only you have to get the url with JS
I use the app postman to test out stuff.
10.0.1.60/JS?Parameter=710&Value=19&Type=0
is for example the code you want to set the room temperature to 19 degree.
Type=0 means you want to test it and only get info back if it worked. if you do Type=1 it really sets the value
Now I am confused?? 8740 is what the system is reading. Like the current temperature of room1. Why do you want to set this?
And for parameter 10000 this one is for me blanco. There are no values to read or set for me. So I can’t really test this one for now. I shall update my bsblan board so I am sure that isn’t the issue.
So for you param 10000 is the one you need to set for the target room temperature? What is the difference with param 710 for you? You can use 710? So it shouldn’t be a problem to use this instead of i10000 command?
Maybe I just need to finish it first and we can test and see what works?
Or maybe share screenshots of how your system works?
My heating system is 25% controlled by the outside temperature and 75% controlled by the ACTUAL inside temperature. This is a complex algorithm inside the Broetje heating system.
750 Heizkreis 1 - Raumeinfluss: 75 %
I am simulating a room thermostat - because I don’t have one and for Broetje a room thermostat with wireless is crazy expensive.
So every 5 minutes I send the ACTUAL MINIMUM house temperature (measured by 2 Zigbee temperature sensors in the living room and dining room) to my heating system via /I10000=.
This has to be done frequently, as the heating system is resetting the value after 10 minutes and will then revert back to the outside temperature model.
The target temperature is most of the time not changed, as the heating system will be automatically set to Komfort (when somebody is home) or Automatik (schedule that changes between Komfort (comfort=20.5°C) and Reduziert (reduced=18°C) heating.
I need to send the actual temperature every 5 minutes for the heating system to respect that setting and adjust the power).
This makes it clear. I will try to incorporate the i1000 temperature push. I am not able to test it but sure you can when having the lib ready. unit test covers now around 80 procent of the code. Should be enough for release I guess.
btw. Can’t the bsblan module not have a sensor on the board and send the temperature to the heating system? Maybe ask the developer? It’s connected like a thermostat. So maybe it could?
The board supports additional sensors. However, this is not an option for me, as the heating system and the Arduino with the board are located in the basement of my house. Living room and dining room are one or two floors above.
Hi, just tried a google search with our Brötje BBK 22 F and was really surprised that there has been a component to work with HA.
Is there a chance that it will be updated to newest HA Version?
By the way, what do I need to connect the Brötje heating system? Is this Feature on board the Brötje control circuit?