Page 1 of 2 12 LastLast
Results 1 to 10 of 13

Thread: Evohome HGI80 MQTT

  1. #1

    Default Evohome HGI80 MQTT

    Is anyone aware of software that takes info from an HGI80 and publishes as MQTT, looking for logging only at this stage, although longer term MQTT control would be ideal

  2. #2
    Automated Home Guru
    Join Date
    Feb 2016
    Posts
    230

    Default

    Hi Stuart.

    The only one that I've come across which links Evohome wireless message decoding to an MQTT broker is https://github.com/smar000/evohome-Listener. It look like a great piece of work which builds on the Evohome message interpretation logic within Domoticz to produce a standalone interpreter.

    Regards,

    Dan

  3. #3

    Default

    Thanks for the pointer Dan. Will take a look.

  4. #4
    Automated Home Ninja
    Join Date
    Aug 2016
    Posts
    489

    Default

    I have some NodeRed components that can read an HGI80 and decode it, but they're not as fully featured as the Domoticz stuff.

  5. #5

    Default

    Ok, so a quick test of the evohome-listener, and it's not as featured as domoticz. So I'm now wondering is there anyway to get the data from the HGI80 into both domoticz, and evohome-listener.

    dty: have you got any more info / code you could share ?

    Node-red would probably be an ideal way to bridge to MQTT amongst other things.

  6. #6
    Automated Home Guru
    Join Date
    Feb 2016
    Posts
    230

    Default

    If you're going to set-up Domoticz you'll probably not need the python stuff. Have you seen the Domoticz MQTT wiki https://www.domoticz.com/wiki/MQTT?

  7. #7
    Automated Home Ninja
    Join Date
    Aug 2016
    Posts
    489

    Default

    The components are here: https://github.com/codeaholics/node-red-contrib-evohome

    Unlike the Domoticz code, mine makes no attempt to learn about your config, so you probably already need to have identified all the things in your system, and their addresses, etc. in order to configure it.

    The "receiver" node connects to a TCP port to read HGI80 data - I did this because my radio is connected to a Pi that's remote to my server and I use ser2net to expose it over the network. It spits out lines. If you want to connect to a serial port, I think the are other NodeRED components that will do that. You will need to split your serial data into lines.

    Put the lines into an "HGI80 parser" node. Put the output of that into a "decoder" node.

    You now have decoded messages! If you want, you can run them through an "InfluxDB formatter", and then put them into InfluxDB, but the schema will be the one I use which might not work for you.

    There are some large gaps between my components and Dan's Domoticz code. Most notably, hot water stuff and controller mode. But it also has some things that it handles better - like battery info.

    You'll also need a site config node, which just takes a giant JSON blob for now, because I didn't know what I'd want in the final version. It looks like this:

    Code:
    {
        "controllers": [
            "01:080777"
        ],
        "zones": {
            "1": "Basement",
            "2": "Conservatory",
            "3": "Master Bedrm",
            "4": "Lounge",
            "5": "Study",
            "7": "Downstairs",
            "8": "Bathroom"
        },
        "devices": {
            "04:025896": {
                "zone": 4,
                "name": "Lounge Rad - Back Wall"
            },
            "04:025900": {
                "zone": 7,
                "name": "Downstairs Rad - Breakfast Room"
            },
            "22:167017": {
                "zone": 3,
                "name": "Master Bedrm Thermostat"
            },
            "34:011457": {
                "zone": 4,
                "name": "Lounge Thermostat"
            },
            "34:011469": {
                "zone": 5,
                "name": "Study Thermostat"
            }
        }
    }
    The config appears to support multiple controllers, but it doesn't really!

    The decoded messages look like this:

    Code:
    {
      "original": "---  I --- 04:025896 --:------ 04:025896 30C9 003 0006FA",
      "parsed": {
        "unk0": "---",
        "type": "I",
        "unk1": "---",
        "addr": [
          "04: 025896",
          "--:------",
          "04: 025896"
        ],
        "cmd": "30C9",
        "len": 3,
        "payload": "0006FA"
      },
      "decoded": {
        "type": "ZONE_TEMP",
        "device": {
          "addr": "04:025896",
          "type": "zone",
          "name": "Lounge Rad - Back Wall",
          "zone": 4,
          "zoneName": "Lounge"
        },
        "zone": 4,
        "zoneName": "Lounge",
        "temperature": 17.86
      }
    }

  8. #8

    Default

    Got it working, looks great, a bit more tweaking of config needed.

  9. #9
    Automated Home Guru
    Join Date
    Feb 2016
    Posts
    230

    Default

    Excellent! I hope my suggestion to try out the Python listener stuff didn't waste too much of your time. I still haven't found time to have a look at the dty's Node-RED Evohome implementation. I'm interested to hear what you think.

  10. #10
    Automated Home Ninja
    Join Date
    Aug 2016
    Posts
    489

    Default

    Quote Originally Posted by StuartP View Post
    Got it working, looks great, a bit more tweaking of config needed.
    My NodeRED components? That's good to hear! I'd be keen to hear your feedback. I'm re-envigorated to develop it further, so could look at adding things.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •