PacketGen

Trystan, Glyn,

I'm watching the development of PacketGen with great interest, as I would like the ability to start controlling things in my house including radiators, and the boiler. I am considering switching from the Rock Solid Gateway approach to the Harddrive RPi method.

I'm not sure where this has got to, but can you advise on the possibility of doing the following;

1. Time clock control. E.g., to be able to switch radiators on/off at certain times, in different rooms.

2. Remote access control- I note you have included packetgen for the "Raspberry Pi + Harddrive + Emoncms" option, which doesn't allow remote access from the web. As you say, it is good to have the control 'brains' local to the hardware in case the internet connection dropped out. But on the other hand it would be really useful to be able to change settings from somewhere else in the world- e.g., to switch the boiler/heating/hot water on or off if I plan to stay late at work!

3. Respond to sensed values in field devices. Generally I think it is good to have distributed intelligence in the system i.e., each field device (be it an emonTX or some modified version thereof) being programmed to drive actuators (e.g., heating valves) according to sensed values. But it might also be appropriate sometimes to have these calculations done by emoncms. For example, if I detect low external temperatures from an externally location sensor node, I might want to fire my boiler earlier, and thus send a control signal to a different device (i.e., the one next to the boiler).

On 3, as I understand it is possible to broadcast from one device (e.g., emonTX) to ALL other devices. So I could get external temp data sent from one node to another without having to go through emoncms. Is there mileage here?

Interested to hear your thoughts (or to discover that the above is possible already!)

Chris

TrystanLea's picture

Re: PacketGen

Hello Chris

Thanks for the interest, yes time clock control would be great to do or maybe temperature curve based control? you could draw using a series of sliders the temperature you want in the room at different hours of the day?

Remote access can be done by using port forwarding on your router, this wikihow here covers it pretty well http://www.wikihow.com/Set-Up-Port-Forwarding-on-a-Router

Point 3 also needs some work but yes agreed it would be good and also I agree on distributed intelligence for most of it and emoncms for the things that cant be done on the nodes themselves as you say.

At the moment there are these basic examples built on top of packetgen http://openenergymonitor.blogspot.co.uk/2013/12/emoncms-control-developm... the more advanced things need to be added.

charliemic's picture

Re: PacketGen

Hi Trystan,

Yes, you're right, you'd want to be able to control the setpoint to vary across the day, with a 'setback' temperature (or off if you want) when the heating not required.

By the way, I've been using one of these actuators to control a radiator from an Arduino;

http://www.heatingcontrolsonline.co.uk/emmeti-m-20.html/normally-open-th...

I have the normally closed version (24V=valve opened). Saves the trouble of using motorised valves (=noise and positional feedback issues). You would need a relay with 5V input to switch the supply to the valve (I've actually used an h-bridge motor driver, as the current is small). I'll soon be logging room temps to see how well the valve controls temperature.

Thanks for the info on port forwarding, I will take a look.

Chris

 

 

 

Bra1n's picture

Re: PacketGen

The actuator looks interesting, how do you install it, I checked the manufacturer's website but it wasn't clear how it works.

charliemic's picture

Re: PacketGen

Hi there,
You fit it like a normal TRV head, it just screws on. You have to have the right type of valve or use an adapter. Best to check with them.

Schism's picture

Re: PacketGen

I assume the loss from running some kind of transformer and powering the radiators is more than offset by the gains in not heating when you don't need to. Ultimately something I'd quite like to do... how do you power at 24V?

Bra1n's picture

Re: PacketGen

OK thanks, I don't have any TRVs here just standard on/off valves so probably not an option for me.

charliemic's picture

Re: PacketGen

Yes, the numbers are pretty good. The device uses 3W, I expect the transformer uses a similar amount, but need to test this. For a 1000W radiator you're looking at less than 1% extra energy use. You're right though, don't want this on all day.- hence why I want to be able to switch the system on or off according to time of day.

To control the 24V supply you can used an arduino compatible relay which uses a 5V signal to switch 24V. I'm actually using a h-bridge motor driver which I built onto a prototype board. I'll post some details soon.

TrystanLea's picture

Re: PacketGen

As a basic concept of time clock control I've put together a script that updates packetgen with the desired heating state and setpoint for a given day of the week and time of day. No GUI yet but fairly easy to change the settings in the script.
I have attached it below:

To run it just run $ php scheduler.php

Here's the main logic:

    $heatingstate = false;
    $heatingsetpoint = 5;

    if ($dayofweek>=1 && $dayofweek<=5) // Week days
    {
      // Heating period A: 6am to 8am
      if ($hourofday>=6 && $hourofday<=8)
      {
        print "- Weekday heating period A\n";
        $heatingstate = true;
        $heatingsetpoint = 18.0;
      }
     
      // Heating period B: 5pm to 23pm
      if ($hourofday>=18 && $hourofday<=23)
      {
        print "- Weekday heating period B\n";
        $heatingstate = true;
        $heatingsetpoint = 18.0;
      }
    }
   
    if ($dayofweek==0 || $dayofweek==6) // Saturday and Sunday
    {
      // Heating period A: 6am to 8am
      if ($hourofday>=7 && $hourofday<=23)
      {
        print "- Weekend heating period A\n";
        $heatingstate = true;
        $heatingsetpoint = 18.0;
      }
    }

The script needs to run all the time and would be something ran as a service script. Another approach would be to run it as cron but then your limited to 1 minute updates.

charliemic's picture

Re: PacketGen

Trystan,

I'm not familiar with PHP yet, but makes sense.

The next step would be to set up separate schedules for each room (times and temps), which I guess could be done by adding more variables to the above.
 

Going back to Schism's comment- it would be quite easy to set up monitoring of the boiler flow pipe as a means of determining when the heating is on (e.g., if it rises above 40deg or so). This could then be broadcast to any radiator controllers to tell them to switch on, and would save the actuators being needlessly on when there was no heat in the system. 

Obviously if the script above can be developed that will provide the required function anyway.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.