Alexa and Evohome

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • gordonb3
    Automated Home Ninja
    • Dec 2016
    • 273

    #31
    Not completely following that. The way I read it is that you want to be able to either delay or advance what I suppose to be a subset of the active schedules on individual occasions. The way you like to implement it though is by making a permanent change that presumably somehow needs to be reverted at some later time. That doesn't seem like the right way to target this to me.

    Comment

    • philchillbill
      Automated Home Legend
      • Jan 2017
      • 590

      #32
      Well, yes - it's effectively a temporary override but it does not start now so the only way to effect it is by changing the schedule. You are correct that the schedule then needs to be reverted. My schedules here are dynamically created anyway from Google Calendar entries so they are constantly being modded and 'reverted' to a baseline. My scripts for doing that currently interact with TCC but I'd rather they interact with my HGI-80. As I mentioned earlier, the HGI-80 polling script I got from DanD sometimes conflicts with Domoticz polling it (Domoticz seems to assume 'ownership' of the serial connection to the HGI-80). So if the schedules could be queried/changed via JSON --> Domoticz --> HGI-80 then the conflicts would be over and I would not have to do all this via TCC. If JSON is too difficult then being able to PUT or GET to Domoticz endpoints with the right query parameters would be just as useful.

      Comment

      • gordonb3
        Automated Home Ninja
        • Dec 2016
        • 273

        #33
        Seems to me you could create a delay by setting a temporary override with the same setpoint as the current active schedule. Advancing would be a tad more difficult as this involves creating a timed event or possibly a series of them. An alternative could be to create a selector switch for say 15 minute intervals in a range of -120 to (+)120 and have a `time`type script (LUA/Blockly/dzVents) reference the state of that selector to create overrides on the fly and reset the state of that selector to 0 at some `safe` time, e.g. 4:00AM.

        Just thinking out loud.

        Comment

        • philchillbill
          Automated Home Legend
          • Jan 2017
          • 590

          #34
          Sure that would work. But the advantage of doing it via schedule-edit is that looking at the Evotouch or the phone App will show what a user 'normally' sees as a control paradigm without having to concatenate the results of any sub-steps. Also if queried via Alexa as to "what's next for the bathroom".

          Comment

          • gordonb3
            Automated Home Ninja
            • Dec 2016
            • 273

            #35
            Originally posted by philchillbill View Post
            Sure that would work. But the advantage of doing it via schedule-edit is that looking at the Evotouch or the phone App will show what a user 'normally' sees as a control paradigm without having to concatenate the results of any sub-steps. Also if queried via Alexa as to "what's next for the bathroom".
            You mean to tell that you pop up the schedule view on a regular base? I never do that myself. In fact the only reason for me adding the `until` time in the Evohome Web API method is to allow overrides to default to the next scheduled switchpoint, similar to turning the dial on e.g. a Y87.

            In my view, the main issue with your approach is that there is no `cancel` action associated with the change you propagate through the system and bad things could happen if commands are somehow executed twice.

            Comment

            • philchillbill
              Automated Home Legend
              • Jan 2017
              • 590

              #36
              Actually, there is a cancel possibility - revert to normal schedule. A skill can keep a copy of the normal unedited schedule which can be applied in full at will. It's possible to have multiple named schedules and install any one of them with a single voice command. So, for example, a shift worker could have a 'Days' and a 'Nights' schedule if desired. Or 'Summer' and 'Winter'. You also get vocal feedback whenever you initiate a delay or pull-forward. So 'Bedtime will now start at 10:30 PM instead of 10:00 PM' after asking to 'Delay bedtime by 30 mins'. If you did it twice by accident, the spoken feedback would tell you.

              Comment

              • gordonb3
                Automated Home Ninja
                • Dec 2016
                • 273

                #37
                Originally posted by philchillbill View Post
                Actually, there is a cancel possibility - revert to normal schedule. A skill can keep a copy of the normal unedited schedule which can be applied in full at will. It's possible to have multiple named schedules and install any one of them with a single voice command. So, for example, a shift worker could have a 'Days' and a 'Nights' schedule if desired. Or 'Summer' and 'Winter'. You also get vocal feedback whenever you initiate a delay or pull-forward. So 'Bedtime will now start at 10:30 PM instead of 10:00 PM' after asking to 'Delay bedtime by 30 mins'. If you did it twice by accident, the spoken feedback would tell you.
                I was actually thinking more in the line of the actuator returning something unexpected and Alexa retrying when the original command was in fact executed. Having multiple `normal` schedules would actually confuse it even more, because which of this schedules should it load when you tell it to revert to `normal`? You would require something of a memory and that will get very complicated very quickly.

                Comment

                • philchillbill
                  Automated Home Legend
                  • Jan 2017
                  • 590

                  #38
                  Originally posted by gordonb3;
                  I was actually thinking more in the line of the actuator returning something unexpected and Alexa retrying when the original command was in fact executed. Having multiple `normal` schedules would actually confuse it even more, because which of this schedules should it load when you tell it to revert to `normal`? You would require something of a memory and that will get very complicated very quickly.
                  Alexa does not concern herself with actuators. She just passes JSON back and forth with no retries - if the command is not confirmed then it's "Sorry, *whatever* is not responding" and it's up to the user to try again. Reverting a schedule is not an undo, it's applying a known baseline. These are not incremental but are absolute. Your schedule save/restore script just loads a JSON file and dumps it to TCC. Same idea here except you trigger it by voice and get to say which file you want uploaded.

                  Comment

                  • gordonb3
                    Automated Home Ninja
                    • Dec 2016
                    • 273

                    #39
                    Oh but that is not the point. I obviously do get the schedule save and restore. Switching between a Summer schedule, Winter schedule, vacation schedule, Covid home working schedule - sure why not? The worrying part for me is the schedule shift that as I understand is supposed to be temporary and so you need to have something to return to. Preferably scheduled itself because when delaying bedtime I suspect you would not want to enter a stone cold bathroom the next morning.

                    Come to think of it, mentioning bedtime rather than schedule appears to imply that you like schedules to be composed by combining various activities that each may or may not depend on seasonal settings. That all seems extremely complex and prone to errors like the sum of all activities resulting in more than 6 switchpoints for a single zone. It's a bold idea and should you ever be able to set up a prototype I'd definitely like to see it, but I truly think you're in over your head.

                    Comment

                    • philchillbill
                      Automated Home Legend
                      • Jan 2017
                      • 590

                      #40
                      I have it all working for 2 years already and I'd say 99% reliably.

                      I regularly manage about 16 switchpoints/day for one of my zones. A python script on a 10 minute cron checks Google Calendar for changes to the Pilates Studio schedule. A perl script (on cron) then parses this result and figures out what the next 6 switchpoints should be using a shift register / FIFO concept. This gets pushed to the TCC cloud using perl bindings. Calendar events in the past automatically drop off the front end of the shift register to make place for new ones at the 'other end'. On the rare occasion that TCC is unresponsive, a spoken TTS message emanates from all my Squeezeboxes to tell me to manage the schedule manually which I then do via the HGI-80- and Domoticz. So yes, it is key to have a supervisor script running on cron to manage the 6-setpoint shift register. This also resets all my zones to baseline schedules every day at 02:00 AM. In 2 years it might have gone wrong twice.

                      I tried to get this all working via the DanD script talking to the HGI-80 instead of via TCC. But as I mentioned, Domoticz regularly talks to the HGI-80 at will and messes up the schedule restore and I could never sync it to work flawlessly. So it's not the 6 switchpoints that's hard to figure out, but rather syncing access to the HGI-80. If that was part of Domoticz then I'd be set. Or I need to know how to back-off if Domoticz needs HGI-80 access and gracefully retry.

                      Comment

                      • philchillbill
                        Automated Home Legend
                        • Jan 2017
                        • 590

                        #41
                        New Domoticz skill also queries Evohome in a useful manner

                        Today I published a free custom Alexa skill for Domoticz called StateReport that has a few commands that are useful with Evohome. It's described at https://www.domoticz.com/forum/viewt...p?f=69&t=36380.

                        For the 'Thermostats' query, Evohome Zones are scanned to report the Current Temperature, SetPoint, and Override/Until-time (where relevant) of each TRV/zone.
                        The current server time is subtracted from the until-time to report back as a time remaining value. Your EvoTouch Controller Mode is also queried.
                        By subtracting the setpoint from the current temperature, heat-demand is mentioned as a Boolean true/false for each zone. You can therefore easily query if any zones in your home are calling for heat.

                        The skill also sorts results according to current temperature and calls out both the coolest and warmest zones in the house.

                        Saying "Alexa, ask StateReport about my Thermostats" gives a system-state summary, while e.g. "Alexa, ask StateReport about the Bathroom zone" drills down.

                        Comment

                        • philchillbill
                          Automated Home Legend
                          • Jan 2017
                          • 590

                          #42
                          Originally posted by gordonb3 View Post
                          It's a bold idea and should you ever be able to set up a prototype I'd definitely like to see it, but I truly think you're in over your head.
                          Just found this old thread again. Take a look at https://smartskills.tech/evocontrol. The demo videos show how all of this was made to work via a combination of TCC cloud and schedule/activity backup in AWS

                          Comment

                          Working...
                          X