Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,

 

as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.

 

As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!

 

Regards,

Smart Home Forum by FIBARO Team


team to develop smart heating


Recommended Posts

Guest Kuuno
Posted

this has been covered here many times and maybe we can gather a team of few people interested in contributing to this

maybe we can write down the project and develop it

few tasks:

system that monitors heat changes in the house and can make decisions accordingly

wife friendly

Please login or register to see this image.

/emoticons/default_smile.png" alt=":)" srcset="https://forum.fibaro.com/uploads/emoticons/[email protected] 2x" width="20" height="20" />

i have some brains here that can for sure help a lot on the logics side

Please login or register to see this image.

/emoticons/default_smile.png" alt=":)" srcset="https://forum.fibaro.com/uploads/emoticons/[email protected] 2x" width="20" height="20" />

maybe someone or few people who are willing to do the coding.?

let me know who is up to this...

Please login or register to see this image.

/emoticons/default_smile.png" alt=":)" srcset="https://forum.fibaro.com/uploads/emoticons/[email protected] 2x" width="20" height="20" />

one latest topic:

Please login or register to see this link.

Posted

Good to hear someone else for this topic! I was actualy drawing some diagrams for a better system today, I will definitely help with a better system.... Was hoping that we could build a plugin into version 4.xx

Please login or register to see this image.

/emoticons/default_smile.png" alt=":)" srcset="https://forum.fibaro.com/uploads/emoticons/[email protected] 2x" width="20" height="20" />

I will through out some pseudo code here this week on my thoughts

Please login or register to see this image.

/emoticons/default_smile.png" alt=":)" srcset="https://forum.fibaro.com/uploads/emoticons/[email protected] 2x" width="20" height="20" />

Posted

I wouldn't call it really "smart" yet, since that would mean that the thermostat learns the room and the way the mechanicals operate inside it. Anyway, to deal with the overshoot-problem as sjauquet describes it in your link and to save on gas, I've incorporated some lines in my heating schedule. Adjustments are made manually.

It can be found here:

Please login or register to see this link.

Guest Kuuno
  • Topic Author
  • Posted

    i like the idea of learning the house thermal behaviour

    basically monitooring if heating is on then how much time does it take to raise temperature eg 1 degree and after heating is of how long does the temp keep rising

    there are aspects like outside temperature and water flow going into the radiators or floor

    sample 1

    outside -20

    water into floor 35 degrees

    time to raise 1 deg - 5h

    temp raise after heating stopped -1degree

    sample 2

    outside +5

    water into floor 28 degrees

    time to raise 1 degree 3h

    temp raise after heating stopped 1,5 degree

    fictional numbers but i belive it is something like that

    Posted

    Heating should use also forecast, because reacting only to current temperature leads to long reaction times. Heating should start before the temperature suddenly drops 10°C. This is also something that would need good fine tuning options, because every house reacts differently on changes with temperature.

    I'm not even close to this project yet, I have absolutely no clue of LUA, or even harware for controlling the heating. Just commenting here

    Please login or register to see this image.

    /emoticons/default_tongue.png" alt=":P" srcset="https://forum.fibaro.com/uploads/emoticons/[email protected] 2x" width="20" height="20" />

    Posted

    It will be possible, but at the same time, it may be unreliable too. How do you keep the self-learning mechanism from adjusting to temporary deviations? Eg. window open, door to the living room opened or closed, large parts of furniture cooled off over the weekend, etc.

    The missus for instance sometimes forgets to close a small window somewhere high up in the house. Even with several doors in between, at 5 degrees outside and the boiler off this makes the temperature drop from 19.5 in the morning to 17.5 in the evening. With the window closed, it will only drop to 18.5 degrees. Without a detection on that window (I'm installing a door sensor on it right now), this will go undetected and will have an impact in the intelligence, since your algoritme will think it will require longer and will compensate for that during the next heating cycle.

    Doing a measurement on how long it takes to increase the temperature by one degrees can be done quite easily and doesn't have to be changed after that any more, only compensated based on outside temperature and wind speed / direction if you want to go the extra mile. Same goes for the cooling down of your room at a certain outside temperature and wind speed / direction. Those 2 I would think should be set by the user, since when done correctly, it's much more reliable then having it changed automatically. Only the compensation is something that might need some tweaking. In the Netherlands we are usually between -5 and +10 during heating season, so for us it's not such a big problem, but I can imagine that you'll want something more sophisticated if the temperature varies between -20 and +10...

    Then an important item is the inertia in your system, preventing overshoot. I'm considering installing 2 temperature sensors on my boiler pipes to be able to determine delta-T more accurately within HC2. If it increases too much, then it's time to switch on the boiler again, something like that. In my opinion it's hard to rely on hard figures here, since sometime you'll only have 2 radiators dissipating heat and sometimes you have 7 of them. So measuring it real-time might be the best solution here.

    Posted

    I'm in!

    There's enough pain and enough brainpower here to give this a shot. Having said that, let's not try to reinvent the wheel!

    @team Fibaro - any chance you can share with us if we can expect any major developments in the heating panel functionality in version 4? Even more so: could you share the HC2 roadmap on this with us, so that we align our initiatives for everybody's benefit?

    Folks - I'll set-up a Trello board for collaboration & coordination of any activities on this topic and send you a pm in order to invite you to the board. Let's see if we can get this off the ground!

    **EDIT: Trello board is available

    Please login or register to see this link.

    . Readable by all - apply if you want to collaborate!

    Ronald

    Posted

    I'm interested too!

    I have a brand new heating system with a very sophisticated thermostate, but when the sun shines into the living room where the thermostate is, the rest of house stays cold because the thermostate gives no impulse any more.

    Grrr.

    Hope that we can come to a system that i can configure and "forget". I'm experimenting with a DanFoss LC and some LUA code.

    Any ideas are most welcome!

    Posted

    Great ideas, but please do not forget about simpler heating systems as well.

    I would be glad to see Fibaro as a whole to embrace the concept of electric radiators.

    Currently there is even no possibility to define a device like "electric radiator". If not for anything else, at least I could monitor their power consumption as a group separately from lighting and other electricity consuming devices. Also they could be then used in your planned smart heating app.

    Posted

    But wouldn't an electronic radiator be rather easy to do with the current heating panel? I guess for every radiator you have one actuator, so the problem with the linked devices panel as you have with only one boiler relay is not applicable.

    Guest Kuuno
  • Topic Author
  • Posted

    we are using electric radiators w manyprojects and thwey work very well f current setup. i even would say the easiest setup of them all!

    Posted

    Yes, easy to set up, but why not make a special device group. I mean what harm would it do? It would be great to monitor heating devices in energy panel, for example. How do I do it today?

    Guest Kuuno
  • Topic Author
  • Posted

    in our case we created a room called Heating

    added all devices there w corresponding power usage values and just tracked them from heating panel...

    if you leave them in rooms you can see consumption the same way. device type is other

    Posted
    It will be possible, but at the same time, it may be unreliable too. How do you keep the self-learning mechanism from adjusting to temporary deviations? Eg. window open, door to the living room opened or closed, large parts of furniture cooled off over the weekend, etc.

    The missus for instance sometimes forgets to close a small window somewhere high up in the house. Even with several doors in between, at 5 degrees outside and the boiler off this makes the temperature drop from 19.5 in the morning to 17.5 in the evening. With the window closed, it will only drop to 18.5 degrees. Without a detection on that window (I'm installing a door sensor on it right now), this will go undetected and will have an impact in the intelligence, since your algoritme will think it will require longer and will compensate for that during the next heating cycle.

    Doing a measurement on how long it takes to increase the temperature by one degrees can be done quite easily and doesn't have to be changed after that any more, only compensated based on outside temperature and wind speed / direction if you want to go the extra mile. Same goes for the cooling down of your room at a certain outside temperature and wind speed / direction. Those 2 I would think should be set by the user, since when done correctly, it's much more reliable then having it changed automatically. Only the compensation is something that might need some tweaking. In the Netherlands we are usually between -5 and +10 during heating season, so for us it's not such a big problem, but I can imagine that you'll want something more sophisticated if the temperature varies between -20 and +10...

    Then an important item is the inertia in your system, preventing overshoot. I'm considering installing 2 temperature sensors on my boiler pipes to be able to determine delta-T more accurately within HC2. If it increases too much, then it's time to switch on the boiler again, something like that. In my opinion it's hard to rely on hard figures here, since sometime you'll only have 2 radiators dissipating heat and sometimes you have 7 of them. So measuring it real-time might be the best solution here.

    Well, if your main goal looking for a more sophisticated mechanism to trigger the boiler is to save energy (thus, money), as it is mine, first of all you will take care of closing any window which may drain your heating budget

    Please login or register to see this image.

    /emoticons/default_icon_biggrin.gif" alt=":-D" />

    In the other hand, you are very right about the complexity of introducing such an efficient system like this. Elaborating a little more on your argument, I’d say that variation of temperature in time is not linear, i.e., it takes much longer to increase a room temp from 20º to 21º that from 16º to 17º when the outdoor temperature is 4ºC. And the cooling process works the other way around: when the boiler is off, room temperature will cool down faster from 21º to 20º that from 17º to 16º. The worse the room is isolated, the more different paces we will measure. These different speeds must be taken in account and modeled to build up an efficient boiler trigger algorithm.

    That is the reason why a small increment of 5% on the comfort temperature in the thermostat (e.g. from 20º to 21º) may translate into an increase of 15-20% of your bill.

    Having said this, I fully support the initiative. Just let`s start slow, with realistic goals, and move on progressively.

    Posted

    I fully agree on starting with a realistic goal.

    So I have started with something simple. That most of you have probably already done: sync my horstmann to my danfoss.

    I have set out some steps that I think we should be able to achieve. From that we can go much further and make more complicated things. but lets start with the basics (and make that work

    Please login or register to see this image.

    /emoticons/default_wink.png" alt=";)" srcset="https://forum.fibaro.com/uploads/emoticons/[email protected] 2x" width="20" height="20" /> )

    Please login or register to see this image.

    /emoticons/default_icon_exclaim.gif" alt=":!:" /> Step 1: sync danfoss to Horstmann.

    Please login or register to see this image.

    /emoticons/default_icon_exclaim.gif" alt=":!:" /> Step 2: switch on relay if the temp of one of the room thermostats is higher than the measured temp. otherwise switch it off. So just using one relay. (this part will get more complicated later, so make sure we make a func for this)

    Please login or register to see this image.

    /emoticons/default_icon_arrow.gif" alt=":arrow:" /> Step 3: (make step 1 better) the time will now be set to 2 hours. Make sure we set the time for the changed temp to the amount of hours until the next change point in our heating schedule. In this way the temp stays to what it is set until our schedule changes

    Please login or register to see this image.

    /emoticons/default_smile.png" alt=":)" srcset="https://forum.fibaro.com/uploads/emoticons/[email protected] 2x" width="20" height="20" />

    Please login or register to see this image.

    /emoticons/default_icon_arrow.gif" alt=":arrow:" /> Step 4: if certain door / window opens set the temp lower for 45 minutes. (afterwards change back to our first set temp or to schedule).

    Please login or register to see this image.

    /emoticons/default_icon_arrow.gif" alt=":arrow:" /> Step 5: Make it more intelligent.

    For step five I think the first simple step is:

    pseudocode:

    Please login or register to see this code.

    (just make sure we do not set it this time to long, because it can then overlap our previous setpoint).

    So the next time this loop will run. It will see that it has to set the manual time for an hour to the set temp. In this way it start earlier than your actual schedule to make sure the temp is correct at the time of your setpoint

    Please login or register to see this image.

    /emoticons/default_smile.png" alt=":)" srcset="https://forum.fibaro.com/uploads/emoticons/[email protected] 2x" width="20" height="20" />

    Please login or register to see this image.

    /emoticons/default_icon_arrow.gif" alt=":arrow:" /> Step 6: Don't use a relay?!

    I can program pretty well in C# but Lua is not really my strength yet. I will try to make a start with all this. If someone could help, it would be great!

    Posted

    Hi guys, thanks for thinking along. In general I agree; keep it simple at first. Adding a couple of user-filled parameters and providing proper explanation on what value to put in will make it more reliable in my opinion. Especially since this forum has no people with specific expertise in designing thermostats.

    1) What benefit would using a Horstmann provide? It provides a fysical button to adjust temperature. But apart from that, I don't see real benefits in doing so. It's rather expensive and it adds intelligence that could interfere with what we're trying to create; for the same money you can 2 different devices and average the temperature that they measure. I see that depending on time of day, movement in the room, if a door has been opened, etc the temperature between positions, can vary rather much. I therefor see benefits in averaging the measured values.

    My proposal would be to keep it as "open" as possible and not try to force people into buying a specific device when there is no specific need to do so.

    2) If I understand you correct, then this has already been covered by the relay script that I've put on this forum.

    3) Is covered in a virtual device that I posted on this forum. It's still rough around the edges and you can only set a countdown, since I haven't figured out yet how to convince LUA into converting the value for the countdown into an actual time.

    4) Would be very useful indeed. However, in my case if a window is left open, it's usually left open for the rest of the day since nobody is home. So the script needs to be easily modified to not return to the scheduled value for that room or the entire heating zone. Otherwise you're only heating for the birds.

    Please login or register to see this image.

    /emoticons/default_laugh.png" alt=":lol:" />

    Once the alarm scenes are working correct, this is probably minimized since you'll get a warning when you leave.

    5) Brick is right, it does indeed take longer to heat from 18 to 19, then from 19 to 20, but I don't know yet how big that impact is and if this is (another) factor that we should already consider at this stage. Surely when cooling of this effect can be observed, since it takes rather short to drop from 21 to 20, but it takes much longer to drop from 20 to 19. The other way around however, in most living rooms you'll have more than enough heating capacity available to minimize this effect.

    I would propose at first we try to keep it rather simple, for ourselves and for the users who later on should work with this script. If we simply instruct them "please put all valves fully open, switch the boiler on and measure how long it takes to increase from 19 to 20 degrees" that is understandable. Then later on it can be tweaked to take other factors into account.

    6) I don't understand, how could we do without a relay?

    Posted

    The only reason why I was using the Horstmann is that many of the bosses in house (the wife) want to have something to turn the heating higher or lower. I don't need it.

    correct I was just stating the facts.

    Step 3: where do you have that? I must have missed it?!

    Step 4:

    I don't agree, because sometimes I like to heat for the birds to keep it a nice temp but have a window open

    Please login or register to see this image.

    /emoticons/default_wink.png" alt=";)" srcset="https://forum.fibaro.com/uploads/emoticons/[email protected] 2x" width="20" height="20" /> So let's make sure it is flexible indeed.

    Step 5:

    I think your step is already more complicated. at least a little bit of helping with the temperature setpoint could do a lot! Because at this moment it is doable. I dont see how you would want to build an algorithm to check the temp difference and capacity of your room and system?

    Step 6:

    Opentherm or settings the temp to Nest, Nefit E thermostat, Danfoss Link CC, modulating something. Just better than a relay.

    [ Added: 2014-01-23, 11:45 ]

    I found the post of your script. Looks nice and does quite a bit of the job.

    An idea for your scripts to make it easier for other people to use as you suggested. Is to have users put the rooms of a heating section into an array.

    Then we just have to find the thermostat setpoints devices in the device list. and get the Id's with values.

    Then you could implement it in a for loop. Makes the scene nice and simple.

    Posted

    Perhaps I'm just being very enthusiastic due to my lack of programming experience.

    Please login or register to see this image.

    /emoticons/default_icon_mrgreen.gif" alt=":mrgreen:" /> As a "controlling device" I agree it should provide enough possibilities to control it, perhaps with an in-between script for each device.

    My vision for the future (step 35 or 36

    Please login or register to see this image.

    /emoticons/default_icon_wink.gif" alt=";-)" />) is to have a tablet at the table or wall showing a web interface, kinda like the "Eneco Toon" that I'm sure you know. Apart from other info from HC2 and other devices, this could show and control the thermostat.

    I don't see that happening with the Fibaro app, since this is too busy to use that way. Just a very slimmed down screen, with only a few buttons for the things you'll need every day.

    Step 3: it's at the bottom of this topic:

    Please login or register to see this link.

    Please keep in mind that I'm still trying to find the time to tidy up the script and to make it easier for people to install and adjust to their needs, including a tutorial. But hopefully for some people, they will be able to play around with it and perhaps improve it further.

    Step 4: I've already reached a big improvement, in the past the boss opened the window for the sleeping room at -5 degrees, for the entire day. "Proper ventilation is important."

    Please login or register to see this image.

    /emoticons/default_icon_rolleyes.gif" alt=":roll:" />

    Step 5: I wouldn't propose doing an algorithm, I agree it's too difficult. For now the only thing I would indeed propose to have the user to a 1-time measurement of how long it takes to increase the room temperature between 2 defined points and then doing the anticipation the way you proposed in your pseudo-code.

    Otherwise you end up in all kinds of problems with the algorithm. Do we also provide parameters for outside temperature, wind speed, the time the heating was turned low, etc? I think that is very nice for the future, but at the same time, we'll probably be in over our heads. And the benefits are there, but not problematic; the room will simply reach the required setpoint somewhat earlier or later than expected..

    Step 6: Ah you meant it that way. I was thinking wether the RGBW-module could be used for that. Somehow the PWM-signal needs to be converted into a 0-10v signal, some of the modern boilers can be controlled that way. But I'm not into electronics at all, so I don't know how realistic that is.

    Keep in mind however that the modulation is done by the boiler itself if an on/off thermostat is connected. With the proper user settings in the boiler, a properly tuned heating system and if we can get the anticipation right, I don't think a modulating thermostat will provide a real advantage anymore. Once the setpoint is almost reached, all modulating thermostats will go into "low load" mode anyway, effectively rendering the modulating thermostat in an on/off-thermostat...

    Nest might be possible in the future, I think they do quite a lot with API's, or have at least promised to provide them if I'm correct?

    Posted

    Just a comment for step5: correct modeling of the temperature bahaviour is very important for a reliable performance. Have a look to my living room measurements (time vs temp). If I decided to stick to the first section (21,5º-21º) the result would be completely different, specially in the cooling period. The "heat on" graph shows an interesting result: the slope of the first section (19º-19.5º) is flatter that the next one when it is expected the other way around. This is due to the time the water in the heating circuit takes to get the optimal temperature. What I have learned from this is that I must use several sections to model the behaviour.

    Please login or register to see this attachment.

    Please login or register to see this attachment.

    Posted

    I agree that depending on your heating system, the start-up will take longer or shorter. I have low-temperature convectors (with only 10% of the regular amount of water and already performing at low water temperatures) in my living room, so it will heat up very quickly. And if you've been away over the weekend, your furniture, walls etc will also contain more coldness then usual. So these factors can be an influence also, besides the cold water temperature. Perhaps we should have some sort of timer, that sets a global to "cold" if for instance the temperature has been below a certain threshold for an x-number of hours.

    For the water, some anticipation in this regard can be put in I guess, though it will require additional measurements for the users before it will provide reliable results.

    The alternative would be to mount temperature sensors on the water connections at your boiler. This could be even more reliable. But then we force users into buying more equipment, so perhaps this is an alternative that could be provided for those that are looking for that.

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Reply to this topic...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

    ×
    ×
    • Create New...