eBus monitoring

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • dty
    Automated Home Ninja
    • Aug 2016
    • 489

    eBus monitoring

    I leave this image here with no further comment...

    Boiler Dashboard 2.jpg
  • dty
    Automated Home Ninja
    • Aug 2016
    • 489

    #2
    OK, a bit of comment, for those who are interested...

    This is a dashboard monitoring the eBus comms on my Vaillant EcoFit Pure 625 system boiler.

    The moving parts are...

    * Physical eBus connection to this eBus level converter/opto-isolator: https://wiki.fhem.de/wiki/EBUS
    * Connection from that (via an FTDI RS232 to USB converter) to a Raspberry Pi 3
    * RPi running ebusd: https://github.com/john30/ebusd
    * My own custom script (based heavily on a concept from bruce_miranda, thanks Bruce) to poll data from ebusd and push it into Domoticz
    * Domoticz data-push to push data into InfluxDB (a time-series database)
    * The final dashboard is built in Grafana, reading data from InfluxDB

    Oh, and if you're interested, the boiler is controlled by EvoHome via OpenTherm and a Vaillant VR33 OpenTherm to eBus converter.

    Sooooo many converters.

    Comment

    • bruce_miranda
      Automated Home Legend
      • Jul 2014
      • 2307

      #3
      Looks great. Why not amend your script to publish to Domoticz and InfluxDB simultaneously. Avoids needing to use the Domoticz datapush. I do that. It allows data to be captured even while Domoticz may be down for some reason.

      Comment

      • dty
        Automated Home Ninja
        • Aug 2016
        • 489

        #4
        I have considered it, and I think that will be my next step. The Domoticz data-push stuff is not very flexible. In particular, you can't control the names of the measurements, and you can only push a single value per measurement. It would be nice to have, for example, both the flow and return temperatures as attributes of the same measurement which would make calculating delta-t easier (or, indeed, possible!)

        Comment

        • StuartW
          Automated Home Jr Member
          • May 2017
          • 15

          #5
          I'm looking at doing something similar with my EcoTech plus 832. Could you share more details on setting this up with a "beginner level" bias please

          My main objective to start with is just having a log of the boiler firing on and off, but long term a dashboard like posted above would be great!

          Thanks

          Comment

          • bruce_miranda
            Automated Home Legend
            • Jul 2014
            • 2307

            #6
            Start here first and work out what hardware you plan to use. https://github.com/john30/ebusd/wiki/6.-Hardware

            The rest is just 0s and 1s.

            Comment

            • StuartW
              Automated Home Jr Member
              • May 2017
              • 15

              #7
              Thanks Bruce - was just reading there as you posted.

              Plan is to use a RaspPi. As for the eBUS interface, I'd much prefer the purchased option rather than solder up my own.
              Last edited by StuartW; 11 April 2018, 11:19 PM.

              Comment

              • StuartW
                Automated Home Jr Member
                • May 2017
                • 15

                #8
                I've finally found some time to get this setup. I went with the pre-made device from https://www.esera.de/produkte/ebus/1...re-hub-platine

                and following the guidance from the link above I get:

                pi@raspberrypi:~$ ebusd -f -c /tmp --logareas bus --loglevel info --lograwdata=bytes -d /dev/ttyUSB0
                2018-08-08 17:52:05.610 [bus notice] bus started with own address 31/36
                2018-08-08 17:52:05.647 [bus notice] <aa
                2018-08-08 17:52:05.647 [bus notice] signal acquired
                2018-08-08 17:52:05.691 [bus notice] <aa
                2018-08-08 17:52:05.734 [bus notice] <aa
                2018-08-08 17:52:05.777 [bus notice] <aa
                2018-08-08 17:52:05.822 [bus notice] <aa
                2018-08-08 17:52:05.863 [bus notice] <aa

                but not a lot else.

                Is there anything that specifically needs to be enabled to the boiler to enable the ebus comms, as it seems nothing is ever heard on the bus.

                Running:

                pi@raspberrypi:~$ sudo ebusd -f --scanconfig
                2018-08-08 17:54:03.425 [main notice] ebusd 3.2.v3.2-5-g671c8d2 started with auto scan
                2018-08-08 17:54:03.817 [bus notice] bus started with own address 31/36
                2018-08-08 17:54:03.845 [bus notice] signal acquired

                just sits there with no further output.

                Any starting pointers would be appreciated, as I don't even know where to start on this stuff

                Thanks

                Comment

                • bruce_miranda
                  Automated Home Legend
                  • Jul 2014
                  • 2307

                  #9
                  Have you tuned the pot to make sure it's set correctly to detect the HIGH and LOW bits? There is a procedure on the ebusd site for that, if you don't have a 30V variable power supply.

                  Comment

                  • StuartW
                    Automated Home Jr Member
                    • May 2017
                    • 15

                    #10
                    Yes, have done that as described. I get the output as shown here - https://github.com/john30/ebusd/wiki/6.-Hardware

                    I have been doing some further reading and think perhaps my understanding (and expectations) were wrong. I now understand that ebusd is just the demon and that I should be making queries with ebusctl to get some data.

                    I'm going to rebuild the pi (as who knows what mess I've put it in) and give that a go.

                    Would you mind sharing some of the script for putting the data into InfluxDB (which I have installed on a second pi, along with Grafana.)

                    Thanks
                    StuartW
                    Last edited by StuartW; 9 September 2018, 01:51 PM.

                    Comment

                    • StuartW
                      Automated Home Jr Member
                      • May 2017
                      • 15

                      #11
                      So it turns out a bad connection between the usb/ebus converter and the boiler was the cause of some dodgy readings.

                      A little bank holiday reading and around 100 lines of python code has produced something that I can start to work with.

                      Boiler_Dashboard.jpg

                      Thanks to @jdp80 for some script "getting started" pointers

                      Comment

                      • dty
                        Automated Home Ninja
                        • Aug 2016
                        • 489

                        #12
                        Sorry I didn't reply to this - I've been away for a few weeks. Looks like you've got it going now.

                        I don't use a script any more. I have a flow in NodeRed which gathers the data I want (and cleans it) and puts it into InfluxDB.

                        Comment

                        • StuartW
                          Automated Home Jr Member
                          • May 2017
                          • 15

                          #13
                          Bringing back the old thread rather than start a fresh...

                          I've had the current monitoring going for a while now, have added the functionality to read the fault log from the boiler as well and I'm pretty happy.

                          Next step is that I've decided to make the jump to OpenTherm, and have order the VR33 and EvoHome OpenTherm module. Can anyone with this setup confirm if FlowTempDesired is still the register with ebusd to monitor to see what calls are being made to the boiler (I'm expecting this value to change, rather than stay fixed as it does now) or if I should be looking at something else?

                          As an aside, what registers are others monitoring? I'm really keen on seeing actual heat output (in kw) the boiler is producing (i.e - when the flame icon on the display ramps up), as so far have only managed to find HeatingPartLoad, which (again) stays fixed at the value I've set on the boiler.

                          Thanks

                          Comment

                          • dty
                            Automated Home Ninja
                            • Aug 2016
                            • 489

                            #14
                            I monitor the following:

                            FlowTemp, ReturnTemp, StateNumber, Flame, WP, WaterPressure, RemainingBoilerblocktime, FlowTempDesired, TargetFlowTemperature, ModulationTempDesired

                            I extract using the following: read -m 15 -V <variable>

                            I parse the response as follows: If it starts with 'ERR:', drop it. If it is 'on', return 1. If it is 'off', return 0. Otherwise, try and parse the response as a number. If that fails, drop the response.

                            So, now I have a variable and a number. I apply the following rules:

                            Power: if Flame is 1, ModulationTempDesired * 0.3, else 0. My boiler returns either the last value for this variable, or else the smallest observed non-zero value for this variable if the flame is not on. That skews any analysis I do about output power, so I force it to 0 if the flame isn't on. The 0.3 comes from observation. I turned the hot water on, observed how high this went, and calculated the 0.3 based on my boiler's power. My 25kW boiler gets to 83.3333, and goes as low as 20 (which represents 6kW, which is right). I didn't find a better way to capture the output power, and other people with different boilers have reported that this approach didn't work for them.

                            DeltaT: max(0, FlowTemp - ReturnTemp). Sometimes (when the pump is on, and the flame off) my system reports a flow temp lower than the return temp which results in a negative number here. This is technically correct. Why I have this situation, I don't know - I expect it's because of my low loss header.

                            Condensing: if Flame is 1 and ReturnTemp < 55, set this to 1, otherwise 0. This is a horrible rule-of-thumb.

                            Then I rename the following:

                            WP -> Pump. WP means "Water Pump", I think. It corresponds to the pump being on or off, either way!
                            TargetFlowTemperature -> RequestedFlowTemp. This is the flow temperature being requested by eBus.
                            FlowTempDesired -> TargetFlowTemp. This is the temperature the boiler is trying to achieve. This is the same as the requested flow temperature, except it's limited by the configured maximum flow temperature. So, when EvoHome requests 90, this will be 70.
                            RemainingBoilerblocktime -> RemainingLockoutTime.

                            Other variables get copied over unchanged. This results in the following (JSON):

                            Code:
                            {
                              "FlowTemp":75.06,
                              "ReturnTemp":66.06,
                              "StateNumber":4,
                              "Flame":1,
                              "WaterPressure":2.01,
                              "Power":12.27,
                              "DeltaT":9,
                              "Condensing":0,
                              "Pump":1,
                              "RemainingLockoutTime":0,
                              "RequestedFlowTemp":90,
                              "TargetFlowTemp":75
                            }

                            Comment

                            • bruce_miranda
                              Automated Home Legend
                              • Jul 2014
                              • 2307

                              #15
                              All I would add is that, one of the best uses of being hooked on the eBus and Evohome, is being able to vary the flow temperature when there is HW demand.

                              In terms of my experience with ModulationTempDesired is that, the multiplier you use depends on the Range rating. What worked for my 438 When it was 28kw, didn't work for when it was set to 18kw. What was surprising was that at 18kw, my boiler seemed to modulate lower, than when it was set to 28kw. I don't have an AUTO range setting on my boiler unfortunately. I would say, before you add any multiplier, just capture the raw data for a while an observe the max and min, before applying a the multiplier. Also don't be surprised if the boiler goes to 0 just before firing up. Don't know why the boiler reports it that way. Normally the low end is the constant that the boiler will sit at over night when there is no heat demand.

                              Comment

                              Working...
                              X