Announcement

Collapse
No announcement yet.

Problems with Temperature Actions

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Problems with Temperature Actions

    I'm having great problems getting the Temperature Action to do what I want and I'm not sure whether I'm trying to get it to do something it is not desgined for whether I'm just being plain stupid.

    Here's the dilemma:

    I would like to control the heating in my house by switching a series of X10 relays on or off (these controls valvles turns the radiators on and off). I'm using 1-wire devices as the 'thermoters' in each room.

    I want to be able to have one set of temperature intervals during the day and anohter during night time (eg 20-22 degrees C during day time but 18-20 during night time).

    I've created two events that are time dependent (one runs between 0600 AND 2200, the other runs before 0600 OR after 2200) each event is triggered purely based on time of day.

    Each event then has a Temperature Action that turns the relevant X10 relay on or off based on the UL or LL of the corresponding 1wire thermometer (read via mcsTemperature).

    THE PROBLEM (at long last) is that whilst the events get executed the relevant Control does not always get activated. In some cases I endup with both Controls active. In some case NO Control is active. And not in all cases have these Controls been automatically created (eg there may be a Control for the day time Event/Action but none exist for the night time).

    Not sure what is causing this but would *really* appreciate some help. WAF is very low at the minute (she doesn't like freezing and she doen't like frying)

    Thanks
    Nicolai L

    #2
    The basic strategy I would suggest is to have one Temperature Action event per device being controlled. For the UL and LL use a DeviceCode and change the DeviceString of this DeviceCode in the events where you want to change the set point. As an Example assume A1 is your setpoint and you want to control within 1 degree of that setpoint. The LL would be A1-1 and the UL would be A1+1. In you time-based events you will set the DeviceString of A1 to 21 and 19 in your example. (e.g. &hs.setdevicestring "A1","19")

    The Temperature Action event should be started when Homeseer starts and let run as long as you want to control the temperature. There is a known problem with the startup synchronization in HS2 and there is a Help Desk ticket submitted to get this fixed. Until fixed, you will need to go through a dance to assure the simulated thermostat is in the desired state at startup. There are a couple recent threads in this subforum that describe the workaround some have used with HS2.

    If you want me to look at your specific scenario where you are trying to create new simulated thermostats for each set point change then enable the debug and collect some data and point me to the time when the behavior is not as desired.

    Comment


      #3
      Looks promising, but ..

      Thanks, this looks like a promising option but I have a couple of problems/questions:

      1) As part of myt test to get this to work I've set up the action as a manually triggered event (not yet run from the start up script). There is no trigger and the action is set up to use I10-1 and I10+1 as the LL and UL and to continue "until manually turned on or off". PROBLEM: The Temperature action does read the I10 value but ignores the +/-1 (and thus the interval is 19 to 19 instead of 18 to 20 etc.)

      2) I've got two (manually triggered at this stage) events to set the Device Value. They execute perfectly and set I10 accordingly, but I need to execute the above Temperature Action Event to get it to react. QUESTION: I would have thought it would automatically pick up on the new values? (not a big issue but I want to make sure I have understood and used the action correctly)

      3) If I do wait a while it would appear that the Temperature Action does update itself (witnessed by the heating device turning on) but the Control still says Inactive. If I then manually run the event controlling the Temperature Action it correctly updates the display as well.

      Any ideas what is going on?? Let me know if you need any debugs for this stuff?

      Thanks

      By the way I am on HS2.1 with MCS Temperature V5.1.0
      Nicolai L

      Comment


        #4
        1. I gave you wrong info about using the device code. To do computed limits the expression must start with a numeric. So if the desired temperature is stored in the DeviceValue of I10 the syntax will be as an example.

        1+hs.DeviceValue("I10")

        HS2 had some problems in the past with the quotes entered on a browser page. I do not know if that has been fixed or not.

        2. If the TemperatureAction is active then it will do the evaluation each minute and use the new/current values from I10. When using the syntax that starts with a non-numeric (i.e. a device code) then it retrieves the value from the DeviceString and not the DeviceValue. It strips HTML tags when it get the data from the DeviceString. If your are also changing the DeviceString then I will need to look at the debug output to understand.

        3. There are know startup sync problems with HS2, but if this is done withour restarting HS then the easiest thing to do is enable debug, keep track of what activity you performed and then post the debug output and what actions you took vs. what you expected.

        Comment


          #5
          Getting there

          Great thanks. That was definitely useful. I can now correctly manipulate the range for the Action based on your suggestion below (had to 1-2+hs.DeviceValue("I10") for the LL as HS2 does not allow -1+hs.DeviceValue("I10") as a statement).

          Yes, HS2 definitely still has an issue with quotes. It basically drops everything after the " when you go back in to edit the statement again.

          Final problem (I hope). The DeviceString of the Control gets set to "Control Inactive" even though it is still running in the background and switching the relay on/off. Is this something I can fix (I like the status message normally displayed).

          Thanks
          Nicolai L

          Comment


            #6
            Take a look at the latest update and post at the end of the thread http://board.homeseer.com/showthread...=116165&page=1 about the new syntax provisions and a fix for quotes.

            It has been too long since I wrong the logic for the control devices to provide top of the head guidance. The best thing to do is enable debug and collect some data and point out what was happening vs what was expected.

            Comment


              #7
              Event creating the wrong triggers

              Thanks for your help so far. Am now on v5.2.6 which definitely fixed the quotes issue.

              I'm still having problems with the event/control actions. I've set up an event for the Lounges to control the temperature (sensor: t13). The problem is that executing the event creates the action but the variable it seems to monitor is the one for the Nursery (t24). I've tried deleting the control action and restarting HS, running the event to recreate the action, but no change. Corruption in a file somewhere perhaps?

              The text for the Event in the list of events looks like the following:

              Heating Control (Lounges) Manual Only

              Last ran: Today 21:38

              mcsTemperature: Turn ON I4: Temperature Heating - LoungesIf I20: Temperature Heating Season is ON AND t13: Temperature Temperature (VWS Inside) - Lounges is Below 1-2+hs.DeviceValue("I14"), Turn OFF I4: Temperature Heating - Lounges AND I20: Temperature Heating Season is ON AND t13: Temperature Temperature (VWS Inside) - Lounges is Above 1+hs.DeviceValue("I14")


              Conversely this is the status message on the Device overview:

              Control Active t24 Limits [17 to 19] Now 18.5, Controlled Device I3 On for 0:11:51

              I've included output from the logfile and the mcsTemperature.ini in the hope that you can figure out what is going on. Let me know if you need any othe debugs or other files.

              Thanks
              Attached Files
              Nicolai L

              Comment


                #8
                my system going to repaired with delete all control devices, restart and one manual event run...

                Comment


                  #9
                  Already tried, but not fixing the issue

                  Yes, I've tried deleting the control devices and restarting HS, running even just one event for creating one control device/action. Event still creates the action against the wrong temp. sensor though.
                  Nicolai L

                  Comment


                    #10
                    The following is what was in the log having anything to do with mcsTemperature triggers and actions. You have something based upon a trigger for device ]1. As far as event actions as of 21:38 there were none defined. It looks like at 21:39 you triggered the event that caused the device ^37 to be created to contain the status of the control for Lounges Heating. That is the end of the log posted.

                    After this time the condition for the controlled device to become active needs to occur. That means the sensor/device being monitored needs to pass through the control band so the controlled output will become active. Until this happens there will be no status information available. Since you should only need to execute this event once it should be only a one-time nuisance.

                    The devices you describe t13, t24, i3, i4, i14, and i20 do not exist in the log segment that I focused on so I do not know what they are associated with.

                    The important information from the log is that as of 21:38 the DeviceActionCollection.Count=0, MonitoredEventCount=0 indicate that mcsTempeature does not know about any Temperature Actions and no Temperature Actions are active. Since you have them defined per your descriptions of what you see in the HS Event/Device views it means that what you are seeing is the known problem with HS2 and the lack of event information when mcsTemperature goes through its initialization. There is a help desk ticket on this matter. As a workaround for those that use HS2, I believe they turn the control OFF and then ON in their startup.txt file so mcsTemperature is aware that it exists.

                    15/11/2006 21:39:46 mcsTemperature Debug CreateDeviceActionStatusDevice Heating Control (Lounges), DC=^37
                    15/11/2006 21:39:46 Database Item Saving Device Heating Control (Lounges)
                    15/11/2006 21:39:46 mcsTemperature Debug Trigger Action
                    15/11/2006 21:39:46 Info Event Trigger "Heating Control (Lounges)"

                    15/11/2006 21:38:30 mcsTemperature Debug Trigger Action
                    15/11/2006 21:38:29 Info Event Trigger "Heating Control (Lounges)"
                    15/11/2006 21:38:10 mcsTemperature Debug EvaluateDeviceAction DeviceActionCollection.Count=0, MonitoredEventCount=0
                    15/11/2006 21:38:10 mcsTemperature Debug (7) Reset Trigger States
                    15/11/2006 21:38:10 mcsTemperature Debug (7) Trigger Device (7) T20, UpperLimit Compare 19 vs Compare Value= priorValue =19, event Started=False
                    15/11/2006 21:38:10 mcsTemperature Debug (3) Reset Trigger States
                    15/11/2006 21:38:10 mcsTemperature Debug (3) Trigger Device T20, LowerLimit Compare vs Compare Value= priorValue =19, event Started=False
                    15/11/2006 21:38:10 mcsTemperature Debug (2) Reset Trigger States
                    15/11/2006 21:38:10 mcsTemperature Debug (2) Trigger Device T20, LowerLimit Compare vs Compare Value= priorValue =19, event Started=False
                    15/11/2006 21:38:10 mcsTemperature Debug (0) Reset Trigger States
                    15/11/2006 21:38:10 mcsTemperature Debug (0) Trigger Device (0) T20, UpperLimit Compare 19 vs Compare Value= priorValue =19, event Started=False
                    15/11/2006 21:38:10 mcsTemperature Debug (6) Reset Trigger States
                    15/11/2006 21:38:10 mcsTemperature Debug (6) Trigger Device (6) ]1, UpperLimit Compare 19.2 vs Compare Value= priorValue =19.2, event Started=False
                    15/11/2006 21:38:10 mcsTemperature Debug (5) Reset Trigger States
                    15/11/2006 21:38:10 mcsTemperature Debug (5) Trigger Device (5) ]1, UpperLimit Compare 19.2 vs Compare Value= priorValue =19.2, event Started=False
                    15/11/2006 21:38:10 mcsTemperature Debug (4) Reset Trigger States
                    15/11/2006 21:38:10 mcsTemperature Debug (4) Trigger Device ]1, LowerLimit Compare vs Compare Value= priorValue =19.2, event Started=False
                    15/11/2006 21:38:10 mcsTemperature Debug (1) Reset Trigger States
                    15/11/2006 21:38:10 mcsTemperature Debug (1) Trigger Device ]1, LowerLimit Compare vs Compare Value= priorValue =19.2, event Started=False

                    Comment


                      #11
                      I'm there (I think)

                      Thanks, I think I'm there now. A little more scripts and events than I had first thought.

                      Ultimately it was the device off/on for the controls that did it for me.

                      Thanks for all your help.
                      Nicolai L

                      Comment


                        #12
                        Creating a SetPoint device

                        I'm sure this is a dumb HomeSeer newbie question but how do I create a Device in HS2 to hold my SetPoint value? I have tried a Virtual Device but this only displays/allows On or Off. How do I create a device that can display the numeric value?

                        Originally posted by Michael McSharry
                        The basic strategy I would suggest is to have one Temperature Action event per device being controlled. For the UL and LL use a DeviceCode and change the DeviceString of this DeviceCode in the events where you want to change the set point. As an Example assume A1 is your setpoint and you want to control within 1 degree of that setpoint. The LL would be A1-1 and the UL would be A1+1. In you time-based events you will set the DeviceString of A1 to 21 and 19 in your example. (e.g. &hs.setdevicestring "A1","19")

                        The Temperature Action event should be started when Homeseer starts and let run as long as you want to control the temperature. There is a known problem with the startup synchronization in HS2 and there is a Help Desk ticket submitted to get this fixed. Until fixed, you will need to go through a dance to assure the simulated thermostat is in the desired state at startup. There are a couple recent threads in this subforum that describe the workaround some have used with HS2.

                        If you want me to look at your specific scenario where you are trying to create new simulated thermostats for each set point change then enable the debug and collect some data and point me to the time when the behavior is not as desired.

                        Comment


                          #13
                          dlock, Create the device as per normal, say, z1. Let's say you want to set the value to 24.

                          Using a bit of script in either the Control tab or via an event you run the following command hs.SetDeviceValue("z1") = 24 (put an & in front of hs if you are executing from the Control tab).

                          Hope this helps
                          Nicolai L

                          Comment


                            #14
                            dlock,
                            mcsTemperature allows thermostat devices to be created from its setup page. You specify the limits and the resolution and it will create a device that can be controlled from the HS screens as a setpoint. I'm not certain, but I think it is on the Devices/Files page.

                            Comment

                            Working...
                            X