Boiler control from MAX! Cube to Drayton Boiler via Raspberry Pi/Vera/Mysensors.



  • Hi Guys. A rather specific project that may not be much use to many others but maybe of interest if you are looking for individual radiator heater control.

    I tried the Stella-Z radiator controllers with Vera and in all honesty they were crap, they talk to the system only rarely and they only hold one setpoint at a time, all in all no good.

    So I ended up getting a full set of the eq-3 MAX! kit with 7 radiator controllers, 3 wall thermostats an eco button and the central Cube controller. Apart from the supplied software being a little annoying with it sometimes messing with the heating times it is great. I solved the software problem in the app store with MAX! Remote unofficial replacement software, very good. The only problem I was left with was my Boiler.

    British Gas Boiler fitted with a single wireless wall thermostat in the living room. I had already upgraded the simple thermostat to a Drayton +3RF giving me daily timings but it still just took the one temperature. The problem being if the temp was up in the living room at night the heat would go off and the bedrooms would not heat up for going to bed.

    So to my solution. I already have a Vera automation controller and Mysensors nodes, so I now have a Raspberry Pi that polls the Cube to get all the valve open percentages if it decides the boiler needs to be on it sends a message to the Vera which transmits out on a Mysensors 433Mhz transmitter node to turn the boiler on. The Rpi has a web interface accessible in the house so I can see current temps and boiler state and also a graph of past temps for each room. I hope to implement the Cube controls in the web interface eventually so I don't need 2 pieces of software.

    Web UI
    2015-11-29.png

    Graph
    2015-11-29 (1).png

    Rpi2 very stock and I code in Python
    Heating Pi2.jpg

    And Finally the Mysensor Board, Just done today, has been running on a breadboard until now.
    heating_Mysensor.jpg

    It still needs a box printing.

    I could wire the RPi into the boiler switch direct but I want to have the old Thermostat as backup just in case.

    So if you have a Vera and MAX! radiator valves and an Rpi and a Drayton controlled Boiler, this is for you πŸ™‚

    If anyone is interested I will post the code. It is very much my code as in an actual Python developer would go "What the!!" but it works. So far.



  • @stephenmhall Wow, wow, wow.

    So you may have just solved my issue with heating controls. I have been evaluating a number of heating solutions and somehow the MAX! slipped by. Although without your work here I'm not sure I would have the ability to get this far. I was sat patiently waiting (IIRC last summer) for heat genius to make their API available, but even then the cost was very high and would mean me doubling up on some sensors around the house.
    I would be over the moon if you were happy to share your work here, as I am tempted to buy a set to get me started tonight although I may just wait for your reply in case you have any suggestions. (btw I'm in the UK).

    I will wait excitedly for more info. thank you.



  • Hey twisted,

    More than happy to help, how close to my system is yours? Boiler switching method, Vera etc, I realise this is the Mysensors forum and I am using that for my switching but it could be switched direct from the Pi with a relay if nesesary, we just wont mention that to the moderators 😏

    I got all my MAX! stuff from http://www.conrad-electronic.co.uk/ I think they are the only distributor. Nearly everything came in a few days. I started off with a cube, 3 radiator valves and 2 wall thermostats. I have a mix of the + Valve and the standard, I was going to try the cheap one but they were out of stock. They are quite bulky compared to a standard thermostat and my plumbing was not great so some ended up mounted facing the wall to clear skirting and pipes but it's not an issue if you are using the software to adjust them. They come with mountings for 3 or so different fittings.

    I got all the details to interface with the cube at Github Max_Cube_protocol

    And the vera supports sending in commands to activate switches. Found that in their documentation.

    The 433Mhz Mysensor node just uses the cheapo Tx units off fleabay.

    I will post all the code to github when I work out how to use it πŸ™‚

    This is definitely a work in progress, butt seems to be working fine so far.



  • Ok Sort of got my head around Github Here is the first upload

    https://github.com/stephenmhall/PiHeating

    Started a new Repository, the original got confused, or I did.



  • My system is not that close, but I am in the process of getting the eq-3 ordered from conrad. I am planning on the following:
    A cube gateway
    Start with 7 thermostat heads (non +)
    Not sure if I need the wall mount thermostats as they don't look wife friendly and was thinking about putting a mysensors temp sensor in each room.

    I held off getting a device to switch my heating and water as I wasn't sure the best route, so far I have considered:
    Secure dual channel zwave.
    fibaro dual relay
    custom home made.

    I liked the idea of the horst dual channel as it automatically shuts down if the signal controlling it doesn't 'phone home' every, IIRC 20min.
    Still not sure though as I need something bullet proof to make it wife friendly.

    Thanks for the posting of you work I am just trying to go through it now.



  • Just a question, are the eq-3 radiator valves quiet? As I have a wood burner and my thought was ramp up the heat when the fire is lit, but then once the rooms are at temperature, close the valves to minimum to keep the fire going for as long as possible, this is usually when we are sleeping πŸ™‚



  • Lawrence, 6 out of 7 are quiet. One sounds like a World War 2 tank, But I have it in the bathroom, I am not sure if it was the fitting that caused the noise as it was a tight fit between the valve and the wall to get it on i.e. some amount of forced contact was made during installation. It seems to work OK.



  • @twisted I would prefer wall thermostats everywhere if possible as you get a live temperature to 0.1 deg. The radiator valves report temps when they open and close, at that point they know what temperature they are at. Plus you can get the thermostat where you are looking for the heat to be. I think they would be wife usable as my 75 year old Dad can work them. I have them set to show the actual temp, a push of either + or - will show the set temp and further pushes change it. The Boost gives you 5 mins of 80% valve. The sun and moon jump to pre-set comfort and eco temps and the menu/mode goes between auto/manual/holiday set points.

    Pretty much if you keep it on auto and use + and - you cant go wrong. You can change the current auto set-point but it will change to the next timed temperature change when it comes around.



  • Just for info on how it's working, this is a day in the life of the downstairs Dining room / Extension which are almost one big room also connected to the living room by a large opening. A single wall thermostat controls a radiator in each of the two rooms. As you can see once the room is up to temp the boiler is off about 60 or 65% of the time. The heating switches to the Living room about 10pm that is why the boiler is on with no valve use shown. I set the boiler on value to 12 and the valve % is /10 to keep the temps clearly visible.

    Temps.PNG



  • Registered just to post that this is fantastic, I'm only doing research at the moment, but this is exactly what I want to do, so thanks for sharing.

    A question for the people who've purchased the radiator valves, which ones did you get? I see on the Conrad electronics page there are 3 (http://www.conrad-electronic.co.uk/ce/en/overview/0812043/MAX-Wireless-Heating-Control)

    As far as I can see, the 2 non-plus versions offer the same functionality, but are physically different, while the plus version offers something more? What's the differnce between all of these?



  • @lhw455 As far as I know the new version of this radiator valve has a new design (that one that is available a '+' version). The old ones have the longer, more diagonal design.
    The difference between plus and nonplus depends on how you want to use. The normal can only be programmed by wall mount thermostat or cube. You can only set actual setpoint the the valve, but no schedule.
    The plus version can be programmed at the valve (if used alone), but more comfortable with wall mount thermostat or cube. I also read somewhere that this can be secured with keycode, so children/... can not change settings, but don't know that for sure.



  • @stephenmhall Thanks for this, I found it really interesting, and whilst I'm not (yet) planning to control my CH in a similar way, I took the liberty of adapting your graphing.py script to graph a number of temperatures from my Domoticz controller (similar to your examples). I'm not using a database, but I'm writing values to a .csv file every 10 minutes, creating a new file every day. My version of the script then creates an html file, which produces a webpage like that below.

    Screen Shot 2015-12-11 at 13.50.31.png

    I've done a few tweaks, by following the Google Charts documentation. I prefer Google Charts, as you get 'live' tooltips and can combine several data series (as with plotly), but unlike plotly you create a local webpage rather than uploading / streaming.

    (Sorry if this is a bit off-topic.)



  • nice, I need to rework my time plot more like yours, mine is just plotting the times as text points so if there are gaps in the data it just ignores them, I need to convert to a proper time field I think.

    Just to update, my system isn't working too bad, I did have a problem with the cube last weekend, all of a sudden it was just empty, no attached devices. I had to re pair everything. Also I occasionally get the set points jumping to the open widow temp even though I have no window sensors although that seems to have gone since the rebuild. What replaced it after the rebuild was a couple of the valves picking seemingly random set points at the time of a change, hitting AUTO again would apply the correct temp. I have removed the bedroom 1 valve and wall thermostat and factory reset them before re adding them to see if that helps.

    What I haven't managed to get working yet is sending messages to the cube, I have a test script to set a valve/Thermostat to Manual - at a lower temp but I have been unable to get it working. probably my conversion from openhab's Java to Ptyhon that is the problem.



  • Finally sorted out the Max send command, it was the base64encode function of Python giving a different encoding . So now I can set mode and temperature via the web UI. I have not implemented the Auto/eco/comfort buttons at the top yet as I am not sure if it's a single command or you have to send for each rfAddress separately. Next update probably.

    2015-12-13.png

    I seem to have fixed the random temperature changes by factory resetting and re-adding some of the valves and wall thermostats, no random changes seen lately.



  • Just an update, I hope my kit will be delivered by the end of the month now, so very much looking forward to trying this out! Thanks for all your hard work.



  • Hi, This is all very interesting. I bought the MAX! System 2 months ago and only one thing is missing is to control my boiler when there is no heating demand from my zones. What do I need to do to make it all work and is there any way I can access your system to control it ? What do I need to buy to make it all work like you have, please?



  • Hi,
    did any one of you manage to send S: command that works to the cube ?
    I want to control changing the ECO/AUTO mode but i can't.



  • The eco auto message is the one I have yet to find as well. I wondered if pressing it while the MAX software is connected would save a copy of the message in the logs



  • I read few documentation and finnaly I manage to post something that is understood by the Cube. I got short python3 script

    import socket
    import binascii
    
    def getBits(value):
        return "{0:b}".format(value)
    
    def toHex(value):
        return hex(int(value,2))
    
    def get_S_String(rfAddress, roomId, temp=None, mode=None):
        if temp:
            msgH = toHex(getBits(int(int(temp) * 2)))[2:]
        else:
            msgH = mode
        cmdStr = "00 04 40 00 00 00 " + rfAddress.lower() + " " + roomId + " " + msgH
        base = binascii.b2a_base64(binascii.unhexlify(cmdStr.replace(" ","")))
        return "s:" + base.decode() + "\r\n"
    
    def send_raw_data(host, port, data):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect((host, port))
        s.settimeout(2)
        return s.send(data.encode())
    
    host = "10.0.0.110"
    port = 62910
    
    address = "12E023"
    room = "02"
    
    address = "126010"
    room = "01"
    
    temp = "14"
    ## auto MODE
    x = get_S_String(address, room, mode="00")
    print(x)
    ## setup MANUAL temp
    #x = get_S_String(address, room, temp)
    #print(x)
    
    send_raw_data(host, port, x)
    


  • Stephen the work you have done is fantastic !

    This is very useful for everybody using a MAX! Cube, regardless of the Vera. As you can read in the comments (and on other sites) the main missing feature with the MAX! Cube is a direct link with the boiler, in order to have the boiler running only when at least one valve requires it.
    I strongly suggest you to work in this direction, and provide example on how to switch on/off the boiler from the Raspberry Pi directly (either wired or wireless link) when needed.
    Also, you instructions in installation.txt worked fine for me but it took me a while to find them and "decode" them. First I would suggest to explicitly point to that file from README.md and second to explain what's the NeoPixel thing. I still don't know, I just assumed it could work without it but I wonder what it is.

    For those of you still wonder whether the MAX! Cube is worth its money: yes yes yes! I've never found such a good solution for that price! It gave me all I need and, with Stephen's code, it's more than I can dream of.



  • @Lawrence-Helm they are not noisy to me but you can hear them if there's silence in the house. Noise it's very subjective of course. It sounds like a small motor turning for say 3 or 4 seconds. Once a week when they run the de-scale program, but you can set it at any point in the week. At that time they make the same noise, but for a longer time.



  • @sebgudek
    At the very minimum you need to buy a Raspberry Pi (around Β£ 30 ), a charger and an SD card and follow the instructions on www.raspberrypi.org/downloads/ to install Raspbian on the Raspberry PI, then follow Stephen's instructions on the file installation.txt:
    https://github.com/stephenmhall/PiHeating/blob/master/PiHeating/src/heating/installation.txt

    You need to know a little bit how to work on Linux do to so. If you have even a very limited linux experience, the instructions are enough, although they are very very condensed.

    When the code is running you can control it simply with a browser within the same network, again this is explained in installation.txt . It is in fact nicer (and easier) to use this interface than the MAX! Cube application, although they are not exactly the same thing and you still need the official application (I believe) to set the weekly program and other things.



  • Thanks for all that @p_battino , Any recent updates have been in the Neopixel branch rather than the master, I have added direct relay support in that branch for those with no Vera. The main changes have been to change the local display from individual led's to a neopixel ring controlled by a WeMos D1 mini ESP2866 board. I only use the serial and I2C connections on the GPIO to talk to the ESP and an I2C real time clock board (which is not necessary if the RPi can see the interwebs ) All the buttons and outputs are done by the ESP. The neopixel Libraries are much better for the Arduino based boards.

    I will post some pictures when I remember how to do that 😞

    ah got it πŸ™‚
    The connector by the WeMos is for the Relay.
    0_1460565562795_IMG_20160413_170002.jpg

    0_1460565773407_IMG_20160413_170015.jpg

    link to small video of it running



  • @stephenmhall what I still don't get is the purpose of the Neopixel ! what's for? what are you displaying with that led wheel?



  • North is Boiler function On/Off, East is Max Cube state, West is Vera state, South is heating normal/On/Off. The others are a Red-Heating on, Blue Heating off heartbeat.

    An update to the Mk1 version. as in this link

    Mk1 videot



  • So, I finally got most of my bits and I have this up and running. This is quite simply awesome, but tbh I am now looking to see if there is some way to get this into node-red. I could be wrong but I am starting to see my home automation fracture into multiple different systems and my original plan was to try and keep everything to one interface where possible. Therefore I am starting to see node-red as maybe being my glue between each of them, the benefit of this is I might be able to drag in emoncms and better data analysis.



  • @twisted Glad to be of service πŸ™‚ I was unaware of node-red before your post, It may have brushed past my awareness but not stuck. I don't see why you could not use it if you can create decoders for the MAX messages as the Cube is happy to spit out data all day. How are you physically switching your boiler?



  • At the moment nodered is still at my limit of knowledge, but I am getting there. In the end I went with a dual channel SSR302 from secure. To be honest if I needed to do it again, I would probably just use a twin relay z-wave module.



  • THANK YOU THANK YOU THANK YOU!

    I've got a system running that does exactly what you've got here, but I've not had time to finish it up, make it pretty and write the web interface. THANK YOU!

    πŸ˜†



  • Thanks for that Stuart, always good to see it is getting used. Here is my latest live unit in its natural environment.

    alt text

    and a link to a video of it running on my gdrive

    Running video

    The video does not pick it up that good, it is less glowie than the film.


  • Admin

    Cool. Does it say: "I'm sorry Dave..." ??



  • its programmed never to apologise, but I make sure it has no connection to the doors.



  • @Stuart-Middleton Just to let you know I have updated the master branch on Github I found an error in the MAX code I borrowed that messed up the reported temps if the actual temperature went over 25.5 as you can understand in Scotland we don't see that very often. Anyway it's fixed in the Master. Also cleaned up some errors that popped up if not using the neopixel display.



  • Ah, excellent thanks. I've noticed some of the temps have been reporting zero on the hot days. I'll grab it and give it a go.



  • I'm seeing 0.0 readings from radiators for some reason. They were all valid last night but just seem to drop out randomly. Do you know if this is a bug or just the MAX system being a bit crappy? I've not had time to look at the code yet, just thought someone may know.

    And while I'm here, I can't get to the graphs on any rooms with a ' in them (i.e. Luke's Room) due to a database error (I'm guessing the DB lookup isn't escaped. πŸ™‚ I'll try and take a look at this at some point over the weekend.

    ![alt text](0_1470388092692_Capture.PNG image url)



  • This is problem of Max System - very often the temp is sended as 0.0 in comunication with the box



  • BTW, I fixed the ' issue by changing graphing.py to use urllib.unquote() on the room name then replaced a single ' with a double ''. I then had to replace the single ' again for the html print or the page just came out empty.



  • If they are radiators without wall thermostats 0.0's are usual. It only seems to know when it is at temperature as it crosses the preset threshold. Then it will send out a correct temp.

    I have tried to save a copy of the last correct temperature to use until a new one comes in but not managed to get it working yet. I was doing a backward search through the database to find a good temperature but it was taking upwards of 3 seconds a room as my DB is about 56MB now. I tried creating a global dictionary to save them but ended up getting lost in the code πŸ™‚

    I might create a new text file like the variables to save them in as it does annoy me also. If you have wall thermostats its not a problem.



  • @Stuart-Middleton said:

    BTW, I fixed the ' issue by changing graphing.py to use urllib.unquote() on the room name then replaced a single ' with a double ''. I then had to replace the single ' again for the html print or the page just came out empty.

    Good find Stuart I will get that into the files on Github.

    If you are interested I have a new branch that sends temperatures to Vera if you have one, to populate "Virtual" Thermometers, i.e ones with no hardware. It's pretty easy to add them from the developer page. You can turn the feature on and off in the variables so it will become the main branch at some point.

    Stephen



  • @Stuart-Middleton said:

    BTW, I fixed the ' issue by changing graphing.py to use urllib.unquote() on the room name then replaced a single ' with a double ''. I then had to replace the single ' again for the html print or the page just came out empty.

    Stuart, I have made changes could you backup your graphing.py and try my one. This should be a link.

    Link to graphing.py on Github

    This shows you never know what you don't know about Python πŸ™‚ I was manually removing the html %20 spaces and never thought of other non text characters. And didn't know about the urllib functions. Old dog learning new tricks.

    Stephen



  • Stuart
    I have added a new table to the DB to store good heating values. I only have one room without a wall thermostat so it is a bit hard for me to test for a 0.0 temp, it seems to work fine if there is a good temp from the room. would you be able to give it a go for me? the main changes are in the database.py and webui.py scripts. in the vera_virtual_thermostats branch.

    make sure you back up your current files before you try just in case I breaks it :). your DB too just in case. I tend to make a copy of the whole heating folder onto my PC before using changes on my live system just in case I muck it up.

    Stephen



  • Corrected an error in the webui.py code for the 0.0 temps was causing a crash.



  • I'm going to try and find time to test this later. Just super busy at the moment. Stupid day job! πŸ™‚



  • hehe know what you mean, 2 weeks off for me atm, good job as I just noticed the heating has been off for a while, oops.



  • Another tiny update to fix a problem if any of the temperatures went over 25.5 and buy tiny I mean one extra character of code in a binary format string. yesh.



  • Hey, just got around to trying your fix and there's a little issue. The converted name works for the web page but not for the DB query. I've changed the following line in graphing from

    tempData = DB.getTemps(cleanName, currentTime)
    to
    tempData = DB.getTemps(cleanName.replace(''', "''"), currentTime)

    to get it to work. Hope that helps

    Now it's all happy I should really get around to connecting it to my boiler instead of just looking at the pretty graphs! πŸ™‚



  • grrr, can you send me a copy of your database? I am wondering if it set the room name before the other changes if there is something extra in there.

    And just to check, you are replacing one ' (quote) with two of them?



  • Ah, yes. My room names are already set up. Yes, replacing a single quote with two single quotes. I'll PM you my DB. It may have worked if I'd started from scratch.



  • OK, I have no idea how to PM you πŸ™‚



  • This is my rooms table from the database

    1 Living Room 12DA70
    3 Hall 137F27
    2 Kitchen 12DBCB
    5 Master Bedroom 1245D7
    4 Landing 12E19F
    7 Lara's Room 12DA58
    6 Luke's Room 12DA35



  • LOL me either maybe you cant. You could save it to google drive or dropbox and post a link i think.



  • kk cheers, I wonder why it is needing 2 quotes? I will have a better look.


  • Mod

    Here is how to open a private chat. Click the persons name at the top of a post. Then click the blue three-dot menu.

    0_1471554567321_image.png



  • Ah, sql syntax (according to a website I found) uses double single-quote to escape a single quote when used in a table.



  • Ok after faffing about for ages I ended up just moving your replace quote code into the database file, keeps it out of the way and seems to work ok if I simulate a room with a quote in it and without.

    It is happy saving names with a quote in to the DB it is just searching after that needs it doubled. Something else learned.



  • Cool, thanks. I'll grab it so the version I'm running is in sync.



  • For @simrob problem.

    I think the problem is in the database, and my code of course, With the way I developed it over time I think I added features later that cause a problem with a fresh install because It asks for the room names before it creates them. Where my database already had room names populated before I got to that point.
    Could you install "DB Browser for SQLite" and have a look at the heating.db file that was created. Under brows data there should be a rooms table like mine.

    "4" "Living Room" "1051D6"
    "5" "Dining-Extension" "106FD5"
    "2" "Bathroom" "1051DA"
    "3" "Bedroom 1" "116B63"
    "1" "Bedroom 2" "1163A5"

    If it is empty possibly just adding one record with the correct name and a random GroupID might be enough to get it past the point where it fails so it can fully populate the table. Also I think you must be using an older version as your line numbers don't quite match what I have. Try downloading the vera Virtual Thermostats branch and see if that helps, not saying it will but that will become the main branch when I sync it up.
    I will look at getting in installed again on a blank Pi so I can test and fix this properly. But hopefully putting a line of data in the DB rooms table will get you past the problem.



  • I have now changed the folder layout on github to make installing easier, also updated some of the files to hopefully stop the error on first run.

    I tried on a blank Raspberry and it all seemed to work ok.

    Give the README instructions a once over and see how it goes.



  • After many delays and other items got in the way I finally have almost sully working system. I do have one issue I am struggling with and that is that I can't seem to turn the boiler off once the temperatures have been met.

    Also is there any way some of the configuration page could be clarified as there are a number of options I am a little unsure about.

    Thanks



  • @twisted I have added a text file to explain the variables. As for not turning the heating off, not sure, remember that normally the Max system will gradually close the valves on the radiators as the temp goes over the requested temp, you will normally get a half degree or so higher. if it never shuts off I don't understand that it just sends the same vera command with a 1 or a 0.

    link to variables file on Git.



  • Just saw the explanation txt appear, thank you so much, it means I can double check what I set was correct.
    Funnily I noticed as it just appeared when I was searching the code to work out a couple of bits.



  • Is the Max Boiler Controller from eq-3 not an option to do this more easily? It was introduced by eq-3 for the British market, but is now not available anymore. Google for BC-TS-Sw2-WM to get the manual from eq-3. Maybe we should push eq-3 to reintroduce this product again.



  • Never seen that before, reading the instructions it looks like it switches the boiler on using a daily timer function like the room heating and and a thermostat temperature, possibly if it switches on if any of the rooms are cold that would work. Not saying mine is better but it monitors the valves and gives you heat on demand when any of the radiators call for it.



  • I have to say using Vera and the boiler switch attached to that is a great solution, if I could just get past one problem. I wonder if anyone else is experiencing this, but I find the time taken for the valves to respond to the temperature changes is a little slow. Lets say I set the required temperature to 19c most rooms jump to 20/21 before the valves close enough to actually prevent further heating to the room.

    My thoughts at the moment are to see if I can somehow directly communicate with the valves or maybe set offsets for each temp on the valves so they read a couple of degrees high.

    Anyone have any thoughts?



  • What I do is only supply heat if valve is open more than 80% or more than 2 valves open 60% so heat shuts off at about 21.9 if you are looking for 22, then the residual heat in the radiator takes temp to about 22.2 before the room starts to slowly cool over the next hour or so down to 21.7 when the valve opens up enough to bring the heat back on.



  • twisted, unfortunately you can't directly communicate with the valves. AFAIK the way the work is that they initiate communication with the cube every 2(?) minutes and not the other way around. The cube just listens for the data and then sends data back to the valve. This is to conserve battery so the valve doesn't need to be active all the time. I'm sure stephenmhall will correct me if I'm wrong πŸ™‚



  • As far as Cube to valves and valves to cube comms, I think it must be bi-directional as if you change anything on the cube app it happens pretty much instantly. How the cube and valves communicate could be magic for all I know πŸ™‚ they are on the 868Mhz band but what the protocol is I don't know.

    I recently read about a company in Germany called busware.de that makes a Raspberry interface card that has firmware that speaks MAX protocol, I have sent them an email looking to confirm this but not heard anything back yet. If I could cut the Cube out of my system I would be very happy as it is the least reliable part, it seems to factory reset itself every couple of months.



  • Ah, well, I think the cube tells you it happens instantly but queues the requests up and waits to be contacted by a valve. I think that's what the memory slot parameters are for when you get the cube data. It fills them up with outgoing data ready for when the device makes contact. I'm not 100% sure about this but when researching it a while ago (I was going to go down the 868Mhz radio route before I found your project) I'm sure I read that's how it worked. I'll see if I can find the article.



  • I'm having a small issue, and I can't see why. I had to reload and now every time I try to load it I get the following before it terminates. This is from fresh install.

    Traceback (most recent call last):
    File "main.py", line 204, in <module>
    Main()
    File "main.py", line 96, in init
    self.doLoop()
    File "main.py", line 111, in doLoop
    buttonCheckHeat("main")
    File "/home/pi/PiHeating/heatinggpio.py", line 173, in buttonCheckHeat
    MaxInterface().checkHeat(0)
    File "/home/pi/PiHeating/max.py", line 56, in checkHeat
    self.switchHeat()
    File "/home/pi/PiHeating/max.py", line 486, in switchHeat
    roomTemps = CreateUIPage().createRooms()
    File "/home/pi/PiHeating/webui.py", line 224, in createRooms
    actualTemp, roomOpen, roomMode)
    UnboundLocalError: local variable 'roomOpen' referenced before assignment



  • That error suggests you don't have a settings file?



  • @stephenmhall - I'm getting a lot of issues that seem to plague the MAX system (not your excellent software of course πŸ™‚ ) where the cube forgets the valves randomly or updating timings don't get sent to the valves. I also hate that the realtime temp isn't reported.

    With this said, I was wondering if you (or anyone else) had seen the BlueTooth version of the valves that they sell. And if so, has anyone taken a peek at the messages to see if the temp is reported? I'd rather control the whole thing via BT than go via the dodgy cube! πŸ™‚



  • Looks eq-3 at least have plans for eq-3 MAX! compatible boiler/hot water controller, the manual is already there, just cannot see the product anywhere.

    http://www.eq-3.de/Downloads/eq3/downloads_produktkatalog/max/bda/en/BC-TS-Sw2-WM_UM_E_eQ-3_160420.pdf



  • For anyone looking in having a setup like above, theres a way without extra buying the cube or the ccu2 when using homematic thermostats. Please have a look at https://www.homegear.eu , which eliminates the need of those boxes as it runs on a raspberry pi which most of us already have. You will have to add a CUL or better build yourself a NanoCUL (arduino nano + CC1101 ). Homegear does all the pairing and communication (also scripts) and best of all its converting and outputs all the communication via MQTT, so you can use Node Red.



  • Damn, just weeks after I changed to a Honeywell system. Talk about bad timing.



  • FYI, I bought a CC1101 connected it up to an RPI, setup openhab, homegear, the homeatic binding, and within minutes I had all of the devices listed and complete control over them all. Well I can say that is where it has ended, I am struggling to either find pre-written logic or writing my own to control everything. The issue isn't so much writing it as such, but choosing which system should host it. This dilemma exists, as I have everything else in my vera, I am getting into node-red, and now also have openhab/homegear in the loop, I don't want to fracture my set up too much from a control interface point. I like the idea of keeping the WAF where it is, so I will probably still need to have some sort of control via the vera and therefore one of the apps that the other half is still happy with.



  • I've got a CC1101 on its way from China. I'm hoping it'll be here soon. My plan was to rewrite the excellent Python code from this page to talk to them directly rather than through the cube. Currently, I don't have an off the shelf home system. I'm kind of writing it all myself as I go (maybe a mistake, I know). I'll let you know how I get on when mine arrives.



  • @Stuart-Middleton Although I mentioned my difficulties, I would suggest that you at least have a look at homegear and openhab (or the openhabian bundle to make it easier) as it does give great access to the devices and opens up very easy use of MQTT.



  • Thanks. I'll take a look at that first.



  • @Stuart-Middleton attached is an example of the items that get loaded when connected to openhab2 via homegear and the homematic binding.0_1484525182006_Rad1-Paper UI.png 0_1484525185963_Rad2-PaperUI.png 0_1484525188699_Thermostat-PaperUI.png



  • That pretty much covers all the settings. When my radio arrives I'll hopefully be able to get it working quickly and I may come to you for help with setting it up with openhab so I can at least see a working system before I start playing with the code. Thanks



  • For a beginner, what shall I read (links) to understand what it means to do this. I have MAX cube and 3 actuators and I need a boiler control device. I called eq-3 and they reply they are not selling boiler controller device BC-TS-Sw2-WM (The MAX! boiler controller has been withdrawn from the market due to poor customer uptake. We do not believe there to be any devices available in the sales channel.) Thanks a lot !



  • @Maciej-Jablonski
    They are not selling any more this. (Their answer: The MAX! boiler controller has been withdrawn from the market due to poor customer uptake. We do not believe there to be any devices available in the sales channel.)



  • It depends on how much of a beginner you are. If you're OK with very basic electronics, happy to install some software on a Raspberry Pi and can connect a mains voltage wire to your boiler without killing yourself, then it's pretty simple.

    At a minimum, you'll need a Raspberry Pi PC, a mains relay board controllable from the Pi (very cheap on eBay) and some cable.



  • @Stuart-Middleton
    Thanks. Of course, I can do these. I have Raspberry Pi B and other required things. What I need to know is a schematic of connections and what software to install (on PC, on Raspberry Pi...)

    Again, Thanks a lot !



  • The software is all written in python and is linked somewhere near the top of this post. There are instructions of how to install and use it included if I remember right.

    The wiring is very simple. The boiler on output pin is defined in the software, so just change it to any GPIO pin that you want and connect your relay (3.3v I believe) to the pin and GND. I used a solid state 250v AC relay that accepts 3.3v input. Then just connect the "call for heat" wire on your boiler to the mains side of the relay. This is on your boiler schemaic, but is usually just the two wired to your wall thermostat.

    I've got a combi boiler so just set it to be on all the time and let the Pi contol the heating.



  • Thank you a lot! I will try it and let you now the progress. I need some time to do it...



  • if you need any help with my software let me know, I have swapped to a Honywell system myself so no longer use it but if I can help I will.



  • @twisted It's arrived! I've got a CC1101 module! I presume It's just connected to the Pi via SPI? I think there's a wiring diagram on the website. I'll dig out a spare Pi and let you know what happens. πŸ™‚



  • I use a diagram from homegear to connect it and it is working. No problem with connection.





  • OK, so I've got my module, connected it to my Pi and installed homegear (used the Rasbian version with homegear and openhad installed). I connected to the Pi, ran homegear -r, families select 0, pairing on and started pairing on a device. However, I don't see anything in the peers list.

    So, any ideas or obvious things I'm missing?



  • it should be families select 4 I believe, did you go into the max.conf and uncomment all the lines under ti cc1101 module? you may need to set gpio to 25 (not 23) and don't uncomment the the additional section. Reboot, then you should see 4 max! when "sudo homegear -r", "ls"

    0_1486862348134_2017-02-12 01_17_56-mRemoteNG - confCons.xml.png



  • OK, so I uncommented the settings in max.conf (I hadn't got to those) and I do get the following

    0_1486895529486_upload-52da0d3f-d4c9-4bc8-b6ed-e0e4b4f57ba1

    But no pairing when I do 'families select 4' then 'pon' and try to pair. The device just times out and an 'ls' doesn't show any devices.

    I may try a cleaner install and start again. I've been following a few posts and translating them into English, but it's still not working. It could, of course, be my hardware.

    Is there a log output somewhere that shows the hardware initializing?



  • Sorry on the road ATM, but will look when i get home. Here is some pics of my wiring I have on my phone in case that is some use.0_1486896983992_IMG_20170210_165744.jpg 0_1486897020158_IMG_20170210_165751.jpg



  • Quick thought did you factory reset the max! devices before trying to pair? I found mine wouldn't work until they had been reset due to the pairing with the cube.



  • Thanks. I'm using a different module, but the wiring looks the same. I'll try again later.

    I didn't factory reset them. I'll try that.



  • You dont need to do reset. IT is enought to unpair with the cube. Try to set log debug in console of homegear with the option 10. Then logs should tell you what is wrong



  • It looks like I've got the wrong module. I ordered from ebay about 3 months ago and the title said "CC1101 315/433/868/915Mhz Wireless Module SMA Antenna Transceiver fr Arduino New", but the description talks about a default "433 mhz". I'm not sure if it's switchable, but it doesn't seem to work. I've ordered another for the grand price of Β£1.95, but it'll take a month or so to get here. 😞



  • I've had a Honeywell wireless programmable thermostat for several years and the LCD is now a little temperamental so was looking for something new.

    Found the Honeywell evoHome, then saw a link mention the MAX! products and then I found this thread which looks like what I'm after.

    Its been 8 months since the last post on here so I was wondering what ever happened to this project? Its just seems to have stopped. Is it complete?

    Did the CC1101 work so that the MAX! Cube is not required?
    Did @Stuart-Middleton switch over to openhab2 and homegear?

    Just wondering do I use @stephenmhall code or go the openhab2/homegear route?

    Thanks
    Anthony



  • Hey, @demusss. I'm still using the python script talking to the MAX! Cube. It's a little temperamental but works most of the time. I finally got my hardware (CC1101) but, if I remember right, the homegear instructions listed above don't seem to work anymore. There's a missing module? I can't recall now. I'm sure I could sort it out but I just haven't had time.

    Ideally, I'd like to talk to the system myself via the CC1101 and write the software myself instead of relying on OpenHAB but time is the limiting factor, unfortunately.

    Maybe I'll pick it up again this weekend and try and get the CC1101 comms working.

    Stu


 

320
Online

7.8k
Users

8.7k
Topics

93.0k
Posts