My HGI80 equivalent Domoticz setup without HGI80

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • DanD
    Automated Home Ninja
    • Feb 2016
    • 250

    #46
    Another little success to celebrate, my RFBee family has grown! I've now completed my standalone RFBee, using a Xbee Carrier, an RFBee and an external Li-ion battery. It's currently running a simple message repeater sketch which I'll add to my Github area when I've completed testing. The repeater function is very simplistic at the moment and repeats all messages it receives. I'll have to see whether this causes any problems on my Evohome system.

    RFBee Family.JPG

    PS If you look closely at the new RFBee, you'll spot that it's a Duinopeak v1.2 (my other RFBee is a SeeedStudio v1.2). They seem identical apart from the different antenna designs.

    Comment

    • Shutty
      Automated Home Lurker
      • Mar 2017
      • 8

      #47
      Please keep up the good work Dan, My RFBee finally landed this morning and I have flashed it with the evohomewirelessfw code. Going to see if I can register it in domoticz later.... I dont have access to an evohome controller, so relying on resources from you and others to help me move forward with headerless control. Cheers.

      Comment

      • Shutty
        Automated Home Lurker
        • Mar 2017
        • 8

        #48
        @ Dan , et al
        Can you advise how you have connected the RFBee in Domoticz to do your development work. thanks.

        Comment

        • bruce_miranda
          Automated Home Legend
          • Jul 2014
          • 2307

          #49
          Originally posted by Shutty View Post
          Please keep up the good work Dan, My RFBee finally landed this morning and I have flashed it with the evohomewirelessfw code. Going to see if I can register it in domoticz later.... I dont have access to an evohome controller, so relying on resources from you and others to help me move forward with headerless control. Cheers.
          I really wouldn't recommend doing this with an RFBee at this stage. There are still too many issues that need ironing out. An HGI80 maybe, but not the RfBee. You can however join in the development if you want. There is a git branch going for this.

          Comment

          • Shutty
            Automated Home Lurker
            • Mar 2017
            • 8

            #50
            Originally posted by bruce_miranda View Post
            I really wouldn't recommend doing this with an RFBee at this stage. There are still too many issues that need ironing out. An HGI80 maybe, but not the RfBee. You can however join in the development if you want. There is a git branch going for this.
            Thanks Bruce, I hear you and i know it is at an early development stage, I want some basic hr92 scheduled zoning control in the house, without an evohome controller ! I dabbled with the hgi80 before sending back, Dan established that it cant provide the headerless control of the hr92's on its own so doing it from scratch with RFBee appears to be the only option. My programming skills are rusty, but I want to support this effort if i can... I am just looking to jump in at the right point without reinventing the wheel, I have no insight on the messaging structure to and from the hr92 and without a controller cant support working this out, but it looks like between you all and Dan's sterling efforts, this is largely known now. So relying on the good work this forum is doing to give me an insight... What is the git branch I should be following. thanks.

            Comment

            • DanD
              Automated Home Ninja
              • Feb 2016
              • 250

              #51
              @shutty

              As Bruce has said it's all work in progress at the moment, but if you're happy to dive in here's some info which should get you started:

              RFBee firmware: I suggest trying the master branch from my Github area, but you may have to try altering the baud rate to 74880 or 250000 to get sending to work OK. I'm sure I've got it to work on the default 115200, but I tested it again yesterday and had to change the baud rate to get sending to work. I've paused on further work on the firmware at the moment until some more hardware turns up, as I wasn't able to get to the bottom of some problems with *INCOMPLETE errors in some of the messages from HR80s. I hope to be able to do some more troubleshooting on these messages with my new toys in a few weeks.

              Domoticz: I can't remember how far you got with your HGI80, but to use the RFBee in Domoticz you follow the approach on the Domoticz Evohome wiki for the HGI80 and add it as new hardware device. As you don't have an evohome controller, you probably won't get any devices appearing automatically in your devices list, but if you choose the 'All sensors' function from hardware page you should see your HR92s appear as temperature sensors. However, there's still a lot of work to do to get Domoticz working properly if you're not simply removing a controller from a working system and replacing it with an RFBee + Domoticz. If you were simply replacing an existing controller, the RFBee + Domoticz could just copy the device ID of the controller and all the device binding would still exist. In your case we're going to have to set-up all the device binding functions from scratch in Domoticz too. I think a far quicker solution that you'll be able to easily develop further yourself might be to use some Python scripts as these will be able to perform the device binding and programming.

              I'll sketch out a Python script to get you started with device binding and setpoint control if this sounds OK to you? Once this is running OK, you might also be able to use Domoticz to at least monitor your HR9s until further functionality has been added to allow control.

              Dan

              Comment

              • Shutty
                Automated Home Lurker
                • Mar 2017
                • 8

                #52
                Originally posted by DanD View Post
                @shutty

                I'll sketch out a Python script to get you started with device binding and setpoint control if this sounds OK to you? Once this is running OK, you might also be able to use Domoticz to at least monitor your HR9s until further functionality has been added to allow control.

                Dan
                Many thanks Dan, sounds like a plan... do you have any documentation on the messaging structure to & from the HR92's that you have discovered to date or is this on a site somewhere.

                Comment

                • DanD
                  Automated Home Ninja
                  • Feb 2016
                  • 250

                  #53
                  @shutty

                  I've just added v0.1 of the simple Python script Evohome_Controller to my Github area. This is a very basic prototype and all it achieves at the moment is to bind and sync with a single HR92. I've put a few comments in the code which hopefully explain the basics.

                  Here's how to test it out:

                  Start the script and it should print out each message it receives via the serial port (check that it's using the correct baud rate for your RFBee).
                  Put your HR92 into binding mode (a single press, followed by a long press displays BIND and then another press starts binding). If it seems to sit displaying BINDING for a long time try a quick press again. If this doesn't work, start the process all over again (the code is a little temperamental).
                  You should see the code recognise the BIND command and then send a response.
                  It then listens for the SYNC request and then sends a response.
                  It continues forever printing each message received and listening for BIND and SYNC messages.
                  That's it!

                  Just quit out of the Python program with Ctrl-C.

                  You'll eventually get a NO_SYNC warning on your HR92 as it's not getting any regular SYNC message from the controller.

                  I'll hopefully have some time over the next few days to add in the setpoint command and a periodic SYNC to keep the HR92 happy. If you begin to get some ideas on how to expand/improve the script, just clone my code and submit them as pull requests and we can begin to collaborate on developing the code. Happy for anyone else to join in too!

                  do you have any documentation on the messaging structure to & from the HR92's that you have discovered to date or is this on a site somewhere
                  Sorry, no. There's some info over on the domoticaforum.eu, but it's pretty limited. I've just been focussing on expanding the Domoticz code rather than documentation. I think these new Python scripts will be more readable than the C++ code and should help to explain things a little more as each control message will simply be written in the following form in the script:

                  Code:
                  AA --- BB:BBBBBB CC:CCCCCC DD:DDDDDD EEEE FFF GG......
                  
                  KEY:
                  AA: message type I, RQ, RP or W
                  ---: This will always be '---' as it's not used by the Evohome system (it was used in previous systems and held a sequential message number)
                  BB:BBBBBB, CC:CCCCCC, DD:DDDDDD device type and IDs (decimal, --:------ is used if not applicable)
                  EEEE: Evohome command (Hex)
                  FFF: length of GG.. payload in (8bit) bytes (decimal)
                  GG...: payload ie. the parameters that go along with the Evohome command
                  Dan
                  Last edited by DanD; 20 March 2017, 12:49 AM.

                  Comment

                  • DanD
                    Automated Home Ninja
                    • Feb 2016
                    • 250

                    #54
                    @shutty

                    I've added v0.2 of my Evohome_Controller script to my Github area. The script can now handle multiple HR92s and has a basic command interpreter. With this version, you should be able to bind all your HR9s to the script controller and define each zone's setpoint. I've put some simple instructions for use in the README, but I'm sure I'll have missed out something important so just drop me a note if you get stuck. It's still very basic, but you'll see from the code that there's a lot of complexity to building just simple controller functions. We've got a long way to go to be able to build weekly schedules etc, but it's a start. Hopefully we can work out the main functions with this Python prototype and then integrate the functionality into the Domoticz Evohome code.

                    Dan

                    Comment

                    • Shutty
                      Automated Home Lurker
                      • Mar 2017
                      • 8

                      #55
                      Many thanks Dan, this is just the start I needed...although struggling to get the HR92 to accept and move off binding mode, although the script seems happy enough.
                      I have tried with and without the id in the zone info and I have had it say binding complete in the code, although I can see your placeholder saying that you need to add code to check the bind has successfully completed. Regardless of that, if it was working for you, I wonder if the HR92 is missing something.. (These are brand new and never setup on a controller before, could they be missing a "base" config item that you are not sending, ie.. your test ones already had it) ?
                      This example has the id in it, 04:137538...(Note, I need to look at your latest upload handling sync , it is not processing anything for me, had a quick play with the timing sync but nothing)
                      many thanks
                      Code:
                      C:\Python27>evorunsetup.bat
                      
                      C:\Python27>c:\python27\python.exe c:\python27\evohome_controller_setup.py
                      Zone 1:(04:137538):(Zone1):(8.5:0352)
                      ControllerID=0x055555 (01:087381)
                      # EvohomeWirelessFW v0.8 Copyright (c) 2015 Hydrogenetic
                      
                      # Licensed under GPL-3.0+ <http://spdx.org/licenses/GPL-3.0+>
                      
                      ---  I --- 04:137538 63:262142 --:------ 1FC9 006 0030C9121942
                      
                      Send:(I --- 01:087381 --:------ 01:087381 1FC9 018 0023090555550030C905555
                      5001FC9055555
                      )
                      
                      ---  I --- 04:137538 --:------ 63:262142 12B0 003 000000
                      
                      ===========================================================================
                      without id in zone info
                      ===========================================================================
                      C:\Python27>evorunsetup.bat
                      
                      C:\Python27>c:\python27\python.exe c:\python27\evohome_controller_setup.py
                      Zone 1:(04:123456):(Zone1):(8.5:0352)
                      ControllerID=0x055555 (01:087381)
                      # EvohomeWirelessFW v0.8 Copyright (c) 2015 Hydrogenetic
                      
                      # Licensed under GPL-3.0+ <http://spdx.org/licenses/GPL-3.0+>
                      
                      ---  I --- 04:137538 63:262142 --:------ 1FC9 006 0030C9121942
                      
                      Send:(I --- 01:087381 --:------ 01:087381 1FC9 018 0023090555550030C905555
                      5001FC9055555
                      )
                      Binding complete for Zone 1:(04:137538):(Zone1)
                      Zone_INFO:1:(04:137538):(Zone1):(0352)
                      ---  I --- 04:137538 --:------ 04:137538 30C9 003 0008BB
                      
                      Send:(I --- 01:087381 --:------ 01:087381 30C9 003 0008BB
                      )
                      --- ◄Unknown header=0xFF
                      Last edited by Shutty; 21 March 2017, 11:05 AM.

                      Comment

                      • DanD
                        Automated Home Ninja
                        • Feb 2016
                        • 250

                        #56
                        @shutty

                        Great, thanks for giving it a try. My initial thoughts are that it looks like your RFBee isn't actually successfully sending messages yet. Do you see the message shown in the Send : (XXXX) echoed straight after or sometimes one or two messages later? I would have expected the first message after the Send row to be the same message in your example output.

                        I don't think there should be any problem with your HR92s being straight out of the box, as I've completely reset mine during testing.

                        Here's some example output from my setup:

                        Code:
                        Send:(I --- 01:087381 --:------ 01:087381 1F09 003 FF0BB8
                        
                        )
                        Send:(I --- 01:087381 --:------ 01:087381 2309 006 00035201046A
                        
                        )
                        Send:(I --- 01:087381 --:------ 01:087381 30C9 006 0008280107A1
                        
                        )
                        ---  I --- 01:087381 --:------ 01:087381 1F09 003 FF0BB8
                        
                        
                        ---  I --- 01:087381 --:------ 01:087381 2309 006 00035201046A
                        
                        
                        ---  I --- 01:087381 --:------ 01:087381 30C9 006 0008280107A1
                        Dan
                        Last edited by DanD; 21 March 2017, 11:14 AM.

                        Comment

                        • dty
                          Automated Home Ninja
                          • Aug 2016
                          • 489

                          #57
                          Well, it's been a long time coming (for which I wholeheartedly apologise), but I'm now ready to publish version 2 of my firmware. See: https://github.com/codeaholics/evofw2

                          Right now, I can only make it reliably work at 38,400 with Domoticz, so if you're planning on using it on an actual SCC board, you'll need a hacked Domoticz for it to work properly.

                          Any questions, give me a shout.

                          Oh, and this is heavily based on EvohomeWirelessFW by GitHub user fullTalgoRythm. I need to add full credits and acknowledgments, licensing terms (do what you like; don't sue me), etc.

                          Comment

                          • dty
                            Automated Home Ninja
                            • Aug 2016
                            • 489

                            #58
                            Originally posted by DanD View Post
                            Code:
                            AA --- BB:BBBBBB CC:CCCCCC DD:DDDDDD EEEE FFF GG......
                            I note with interest that the messages sent by Domoticz to the HGI80 are in a slightly different format to those sent by the HGI80 to Domoticz (at least, as generated by the firmware I based mine on, and reading the Domoticz message parsing code). Specifically, the former is missing the first field (which is useless, and contains "---"). I presume that the HGI80 is cool with this, but I've never seen one so I don't know!

                            Comment

                            • DanD
                              Automated Home Ninja
                              • Feb 2016
                              • 250

                              #59
                              @dty

                              Congratulations on your firmware! I'm really interested to take a look at it and see if I can use it to help fix some of the problems we're having with the original FullTalgoRythm firmware.

                              If I've understood your comment correctly about the '---' bit of the messages. The first '---', which I didn't show in my message decode, is the RSSI (Received Signal Strength Indicator) and hence it's not actually part of the message at the sending end. It's just calculated by the HGI80 and printed at the start of its messages and Domoticz doesn't do anything with it.

                              Dan

                              Comment

                              • dty
                                Automated Home Ninja
                                • Aug 2016
                                • 489

                                #60
                                Originally posted by DanD View Post
                                I've paused on further work on the firmware at the moment until some more hardware turns up, as I wasn't able to get to the bottom of some problems with *INCOMPLETE errors in some of the messages from HR80s. I hope to be able to do some more troubleshooting on these messages with my new toys in a few weeks.
                                Could it be that the MCU can't keep up with the bit rate? Seems unlikely, but if you think about it, at 8MHz, being interrupted 38,400 times a second, you only have just over 200 clock cycles to deal with the interrupt. And if you use them all, you have none left for anything else! This is why, in my firmware, I make a concerted (and sometime contorted) effort to keep my interrupt handlers as lean as possible and offload work to the main loop via ring buffers.

                                Assumptions: you're running at 8MHz, and using the FullTalgoRythm technique of being synchronously clocked.

                                What MCU is on the RFBee?

                                Comment

                                Working...
                                X