EvoControl - custom Alexa skill for Evohome

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • philchillbill
    Automated Home Legend
    • Jan 2017
    • 1044

    EvoControl - custom Alexa skill for Evohome

    Note: this intro post is always up-to-date



    I've created a new Alexa skill called EvoControl Smart Heat for controlling Evohome. Being a custom skill, it does a lot that the standard Resideo (smart-home) skill cannot do e.g. it extends Evohome with non-native capabilities like multiple schedules, schedule-shifting (advance/delay), groups, and an activity/scene paradigm. Because it's multimodal, you get to choose whether to use voice control and/or touch-inputs on Echos with screens.
    • Every Echo Show becomes a hi-res touchscreen controller/display to clone your Evotouch in any room where you have Alexa.
    • There's support for up to 12 user-defined scenes/activities that address multiple zones/setpoints simultaneously. Scenes can be immediately activated or scheduled for later today. For example, "Activate 'MovieTime'", "Activate 'Workout' for 30 mins" or "Schedule 'GoodNight' for 10:30PM".
    • Up to 3 separate schedules [ABC] can be saved/recalled per zone (+DHW). Uploading can be done by voice or touch and can apply to a single zone, a list of zones, a named group, or all zones. The 'Live' schedule is separate so in reality the skill manages 4 schedules for you. Schedules can be displayed in a grid/table per week or in graphical form spanning 24h or one week.
    • You can advance or delay 4 named schedule blocks ('Waking Up', 'Lunch Time', 'Dinner Time', 'Going to Bed') by 3 hours either way e.g. "Defer getting up tomorrow by 30 mins" or "Move bedtime forward by 15 mins". From a time perspective, you can also reschedule starting times or lengthen/shorten ending times. Setpoint-wise, you can sidestep blocks to coast over them with a single continuous zone-specific SP, or you can request a temperature adjustment to make the target zones warmer or cooler than usual throughout the block.
    • You can define up to 12 groups to allow specifying a setpoint or adjustment for several zones at once. For example, "Set the Bedrooms Group to 20° for 30 mins", or "Raise the Upstairs Group by 2° until 11PM".
    • For all commands, you can specify an until or duration to time-limit any changes ("constrained overrides"). That concept works for zone-overrides, system-mode overrides, schedule-edits, and activity-triggering.
    • You can specify changes that should apply later today rather than starting now. For example, if at 13:15 you say "Set the Kitchen to 20° until 2PM" that change starts now and ends at 2PM. But you can also say e.g. "Make it 20° at 4 PM for 30mins" and the change will not be immediate but will take effect at 4PM (and last until 4:30PM). This is achieved by dynamically modifying the active schedule. The amended schedule can be discarded after use by reverting to a saved [ABC].
    • Because you can specify multiple zones (and even 'the whole house') within each command, using EvoControl can reduce repetitive steps on your panel/app to just a single utterance.
    • In the skill's schedule editor, you can bulk-change an entire week's worth of switchpoints for a zone in increments of ± 10 mins and ± 0.5°. Cherry-picking switchpoints is supported, as is copying schedules between zones.
    • If present, DHW (Hot Water) is fully supported, as are multiple locations/heating-systems.
    • You can use a Customised Routine with EvoControl to include any typed command you would normally say to the skill inside an Alexa Routine. Routines → + → Add action → Customised.
    • In addition to its TCC connector, EvoControl can optionally communicate with Evohome via RF using e.g. a HGI-80 (or equivalent) and Domoticz or Home Assistant. This gives 0.1° resolution, shows % heat-demand per zone, shows % battery levels, allows detailed fault messages, and facilitates graphing to draw plots of the actual/setpoint for the previous 24h for any zone/dhw. It retrieves all chart data from Domoticz/HA, meaning no regular polling of TCC is required.



    example showing schedule-editing and browsing/selecting multiple schedules




    example showing the scene/setpoint-editor and several self-defined activities/scenes

    Some example commands:

    Set the Studio to 18° until 2 PM
    Set the Guestroom to 22° for 20 minutes
    Set the Garage to 10° permanently
    Raise the Bathroom by 1° for 30 minutes
    Lower the Livingroom by 0.5°
    Reduce the whole house by 1° for 1 hour
    Raise all zones by 1° until 11 PM
    Set the Bathroom to 20°
    Make it 20° in the Livingroom & Kitchen
    Make it 19° → in the default zone
    Cancel the Bathroom override

    Show Activities
    Activate 'Watch TV'
    Trigger 'Studying' until 9 PM
    Start 'MovieTime' for 90 minutes
    Activate Standby permanently
    Schedule 'GoodNight' for 10PM
    Schedule 'Workout' from 4PM to 5:30PM
    Plan 'Siesta' starting at 2PM for 1 hour
    Show the setpoint-editor
    Set all zones to Follow Schedule → 'reverses' an Activity

    Set the Bedrooms group to 20° for 30 mins
    Increase the Bedrooms by 0.5° until 11PM
    Make it 20° in the Upstairs Group
    Reduce the Upstairs Group by 2°
    List my groups
    Show the group-creator

    Show the Bathroom schedule
    Make it 19° at 4 PM
    Make it 18° at 5 PM for 45 mins
    Make it 17° at 8 PM until 21:30
    I'd like it to be 20° in the Guestroom at 22:00
    Upload schedule 'A' in the Kitchen
    Restore schedule 'B' in the Livingroom, Bathroom & Bedroom
    Revert to schedule 'C' everywhere
    Upload schedule 'A' to the Upstairs Group
    Restore schedule 'C' in the Bedrooms

    Start my day tomorrow at 6AM
    I'm going to bed at 10PM
    My lunch break tomorrow starts at 1PM
    Dinner today will be at 17:00
    Sidestep my lunch break tomorrow
    Increase suppertime temperatures by 1°
    Lower bedtime temperatures by 2°

    Delay bedtime by 20 mins
    Move suppertime forward by 15 mins
    I'm going to bed 30 mins earlier than usual
    I want to get up half an hour earlier tomorrow
    Defer getting up tomorrow by 2 hours
    Lunchtime tomorrow should be 20 mins later than usual
    Dinner will be 15 mins earlier today
    Postpone dinner tomorrow by 30 mins
    Revert to baseline
    When is bedtime today?
    At what time is lunch tomorrow?

    Set the system mode to Auto
    Set the heating to Economy until 9 PM
    Set the system to Boost for 30 minutes
    Set the heating mode to Away, ending March 5th
    Set the system mode to Day-Off for 2 days
    Set the mode to Custom
    Set the heating to Frost Protection
    Reset the system
    What's the system mode?

    What's the Livingroom temperature?
    What's the Kitchen set to?
    What's the average temperature?
    What's the coldest room?
    What's the warmest zone?
    What's the Outside temperature?
    Is there any heat-demand?
    What's the Bedroom climate?
    Give me a system summary
    Show today's roster
    What's next for the Bathroom?

    Turn off Hot Water
    Turn on Hot Water for 20 mins
    Turn on HotWater at 5PM for 45mins
    Turn on Hot Water from 10PM until 11:30PM
    Turn off Hot Water at 18:00
    Show the Hot Water schedule
    Upload schedule 'B' for Hot Water
    What's the Hot Water state?

    List my locations
    What's the selected location?
    Select location #2

    Show the Bedroom Graph
    Show the Outside graph
    Show the forecast

    What's the forecast?
    Show the setpoint-editor
    List my Activities
    List my Groups
    The default zone is the 'Bedroom'
    What's the default zone?
    Delete the default zone
    Help
    Go Back
    Say that Again
    Undo
    Next
    Previous
    Cancel
    What's new?
    Update my configuration

    There's a website for EvoControl at https://smartskills.tech/evocontrol. This is not just a marketing site but has enough detail on each feature to serve as a how-to reference.

    You can read some user reviews at https://www.amazon.co.uk/dp/B0BL1CN6WS

    EDIT: While this thread was initially about the beta invites, the skill is now certified by Amazon and published in the en-GB, en-US and de-DE locales.
    To enable it, sign-up at https://smartskills.tech/ec/register.




    It's all demoed in the video at https://vimeo.com/924690145?share=copy.

    Last edited by philchillbill; 17 April 2024, 09:46 AM.
  • Ghostrider
    Automated Home Jr Member
    • Jan 2018
    • 38

    #2
    That looks and sounds brilliant, I have always wondered why Honeywell never expanded their skill to allow set for time etc.

    Email sent.

    Comment

    • chrisgare
      Automated Home Guru
      • Dec 2013
      • 184

      #3
      and me - email sent.

      Comment

      • chrisgare
        Automated Home Guru
        • Dec 2013
        • 184

        #4
        I assume the existing controller is set to a Quick Action 'Off'?

        Comment

        • CT1
          Automated Home Guru
          • Apr 2016
          • 194

          #5
          Sounds as if it would be more useful than the current skill, which I found of very limited use.

          email sent.

          Comment

          • philchillbill
            Automated Home Legend
            • Jan 2017
            • 1044

            #6
            Originally posted by chrisgare View Post
            I assume the existing controller is set to a Quick Action 'Off'?
            No, because that just turns off your heating system. This skill co-exists with the Evotouch — any Echo Show just complements your Evotouch so they both display the same info. Any change on one is instantly reflected on the other and vice versa.

            Think of it as being like the mobile app. You don't set the controller to 'Off' when you use the app...
            Last edited by philchillbill; 25 August 2023, 12:59 PM.

            Comment

            • digital
              Automated Home Jr Member
              • Jan 2015
              • 28

              #7
              Had a good look at the website and video.
              Looks excellent and very useful. Much better than the Honeywell skill which is very limited.
              I don't have an Echo show so not able to take full advantage of the skill but will be watching your progress with great interest.
              John

              Comment

              • philchillbill
                Automated Home Legend
                • Jan 2017
                • 1044

                #8
                Originally posted by digital View Post
                Had a good look at the website and video.
                Looks excellent and very useful. Much better than the Honeywell skill which is very limited.
                I don't have an Echo show so not able to take full advantage of the skill but will be watching your progress with great interest.
                John
                Well the display is really only needed when you are using the extra-schedules features. If all you want is to change setpoints while specifying either until-times or durations, you'll still have that above the standard skill's functionality. If you want to try the beta and maybe provide feedback from the perspective of somebody without a display, that may be useful to have. Just email me if you want to participate.

                Comment

                • bruce_miranda
                  Automated Home Legend
                  • Jul 2014
                  • 2438

                  #9
                  Just signed up. Looks great.

                  When the app is on the screen, the Back button on the Left top doesn't seem to do anything.

                  No HW?

                  Comment

                  • philchillbill
                    Automated Home Legend
                    • Jan 2017
                    • 1044

                    #10
                    Originally posted by bruce_miranda View Post
                    Just signed up. Looks great.

                    When the app is on the screen, the Back button on the Left top doesn't seem to do anything.

                    No HW?
                    That's due to an Alexa bug. I'm supposed to be able to determine what event is sent when the back button is pressed, but it's always 'goBack' even when I specify otherwise. There's no screen to go 'back' to from the Dashboard as it's already the top level but I had intended that when you press back when on that screen it would forced refresh from TCC immediately instead of waiting on the 30 sec poll. Just as an extra reassurance when you've changed something that TCC processed it.

                    I reported a bug to Amazon and they may fix it in which case I'll leave the back button. If they don't then I'll just remove it from the Dashboard but leave it there for the other screens because it does work on those to take you back to the dashboard.

                    Did you happen to play with the settings cog on the top right?

                    p.s. I presume you mean that the back button does not work on the main Dashboard but does work on e.g. the settings or schedule screens? Or do you mean it works nowhere for you?
                    Last edited by philchillbill; 13 March 2022, 09:00 PM.

                    Comment

                    • philchillbill
                      Automated Home Legend
                      • Jan 2017
                      • 1044

                      #11
                      For anybody with trouble invoking the skill: 'EvoControl' is a contrived word and Alexa has problems with those. Also, skills are supposed to have at least 2 words for invocation so we think we're saying EvoControl but to her it's 2 separate words: Evo and Control. The problem with that is she then wants you to say Evvo Control (like revolution) and will not work with Evo as in eeeeevo. So the workardound was to trick her that it's actually 3 words: Eve Oh Control.

                      If she doesn't understand you, just say those 3 words more distinctly and it will work. Then when she has run the skill a few times for you, you'll be able to morph more towards EvoControl and it will still work.

                      The joys of AI
                      Last edited by philchillbill; 13 March 2022, 09:05 PM.

                      Comment

                      • bruce_miranda
                        Automated Home Legend
                        • Jul 2014
                        • 2438

                        #12
                        I did click the Settings cog. But from a UI point, it looks greyed out, I think it needs to be brighter.

                        Comment

                        • philchillbill
                          Automated Home Legend
                          • Jan 2017
                          • 1044

                          #13
                          Originally posted by bruce_miranda View Post
                          I did click the Settings cog. But from a UI point, it looks greyed out, I think it needs to be brighter.
                          I've removed the redundant back button on the main Dashboard view.
                          The settings cog is now still quite opaque but is changed to bluish instead of grayish (it is intended to be discreet so not full brightness, but I agree that gray has a different connotation).

                          The TCC iPhone app stopped working for me this morning and https://status.resideo.com/ reports a 'major outage' currently. The skill still works ok but I've been thrown out of a session twice due to 'rate limit exceeded' issues. Probably related to their outage. Sigh.

                          Comment

                          • bruce_miranda
                            Automated Home Legend
                            • Jul 2014
                            • 2438

                            #14
                            What data is stored on the servers for this skill to operate? Clearly my user ID and password. My zone names, schedules. What else? My home address?

                            Comment

                            • philchillbill
                              Automated Home Legend
                              • Jan 2017
                              • 1044

                              #15
                              Originally posted by bruce_miranda View Post
                              What data is stored on the servers for this skill to operate? Clearly my user ID and password. My zone names, schedules. What else? My home address?
                              The principle behind all my skills is to use data on an as-needed basis and either not store it at all (if possible) or to encrypt it strongly when I must store it. Almost all the data this skill uses is treated as ephemeral: it's retrieved from TCC for a particular skill-session, used, then discarded after a session closes. The skill doesn't store it because it can just retrieve it every time and that retrieval is quick enough and safe enough (https).

                              The home address mentioned when you first link the skill is read from your TCC account profile and said out loud so that people with multiple locations will know which location the skill has accessed (it's the first location in the locations array but that could be anything). That information is not stored by the skill because after that initial welcome, it's not needed.

                              The version of your ABC schedules that I store is very different to the raw data that comes from TCC. It's converted to a seconds-since-midnight-on-sunday format which makes it trivial to compare schedules and make switchpoint insertions. This also reduces the storage requirements by about 10x compared to what TCC uses. I have to store this for you because TCC doesn't support multiple schedules. But there's absolutely nothing in that storage that links to you. It does contain your zone names, but everybody has zones called livingroom, bathroom, etc. Also, the database is strongly encrypted.

                              Your TCC credentials are served to the skill for each session by my own oauth server that creates a salted AES-256 access token that's different for each skill session. The skill extracts your credentials from this token and logs in to TCC with the decrypted details. If that token were to be intercepted then it can only be used once because the salting is epoch-related. I've asked Resideo for my own API key which would allow their oauth servers to always send me a token I could just use without having to store your credentials, but they have not yet responded. The 'problem' with our community access to TCC (via the watchforstock API and the jzwack application-ID) is that the refresh-token does not work after a short period and a full login is required. This actually goes completely against the principles of oauth so it's a mystery why Resideo does this.

                              Just FYI, when you link a skill, Amazon assigns you a long random UserID string that will change if you disable a skill and re-enable it. So even if a skill previously stored information about you it would not be able to recognize you as being you when you 'returned' to the fold. Same goes for Echo DeviceIDs. I have no idea that your Echo is called e.g. 'Kitchen Echo' and all I get is a long string that will also change if you disable/re-enable the skill. Amazon takes security and privacy (luckily) very seriously.


                              EDIT: The skill now has its own API key and no longer needs your credentials to operate. The oauth server is now Resideo's rather than my own.
                              Last edited by philchillbill; 20 September 2022, 09:43 PM.

                              Comment

                              Working...
                              X