EvoControl - custom Alexa skill for Evohome

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

    #16
    Some testers reported difficulty invoking the skill so I've changed the invocation to just two words: "Evo Control". Hopefully that won't break anybody who was not having difficulty — if so then please let me know.

    Comment

    • philchillbill
      Automated Home Legend
      • Jan 2017
      • 591

      #17
      New: EvoControl adds Scenes/Activities to Evohome




      EvoControl has been extended to support the notion of Scenes/Activities. Basically, with a single voice command, groups of zones can have their setpoints all changed at the same time. Examples include the likes of

      Watch TV
      BedTime
      Studying
      Nobody Upstairs
      etc

      Activities can be triggered until the next scheduled switchpoint for each zone, until a specified until/duration for all involved zones, and can even be scheduled for later today (Also with a duration/until if desired).

      Some new commands that have been added to the skill:

      Show activities
      Activate 'Watch TV'
      Start activity 'Studying' until 9 PM
      Start 'Bathroom Occupied' for 30 minutes
      Schedule 'Bedtime' at 10PM
      Schedule 'Working' at 4PM for 45 mins
      Show the setpoint-editor
      List my activities

      There's a new video demo showing all of this:
      A demo video showing how the EvoControl Alexa skill adds the notion of Scenes/Activities to Evohome



      The features are already live in the skill and current beta testers can use them without having to install/change anything. The skill's built-in help has also been updated.

      New beta testers are still welcome. Enjoy !
      Last edited by philchillbill; 5 February 2023, 11:08 PM.

      Comment

      • philchillbill
        Automated Home Legend
        • Jan 2017
        • 591

        #18


        Beta testers should note a few changes:
        • You can now assign names to Schedules ABC via the settings screen. For new linkers, schedule A is assigned the nickname 'Normal'.
        • When you have more zones than will fit on the screen of the Echo Show, a new scroll indicator is shown that will scroll down a page when tapped.
        • The scene/setpoint editor screen now has a sticky footer when buttons are displayed


        Also, fixed a bug pertaining to setting system mode for a specified duration/until.
        Last edited by philchillbill; 5 December 2022, 09:28 AM.

        Comment

        • philchillbill
          Automated Home Legend
          • Jan 2017
          • 591

          #19
          I'm in the process of adding support for multiple locations in EvoControl, whereby you can say the likes of 'List my locations' and 'Select location N' (only if you have >1 location).

          Does anybody know if the result of the API call to "/WebApi/emea/api/v1/userAccount" always only lists the primary address of the account-holder or does it change format to somehow include multiple addresses?

          I presume the call to "/WebApi/emea/api/v1/location/installationInfo?userId=${userId}&includeTemperatu reControlSystems=True" will return an array with multiple similarly-populated 'locationInfo' entries when somebody has multiple locations?

          I don't use DHW control via Evohome myself, but is there any point in adding support for it to this skill?

          Comment

          • philchillbill
            Automated Home Legend
            • Jan 2017
            • 591

            #20
            Beta testers should note a few changes:
            • There is now a rotating/random 'hints' footer on the main dashboard that appears by default on larger rectangular Echo Shows. These have the form "Try: Alexa, list my activities..."
            • An extra slider switch has been added to the settings screen to disable it if this hints feature is not wanted.
            • The summary/average/coldest/warmest/zones-demanding responses are now customised (they used to all just produce the same long summary).
            • The reported average temperature is now rounded/reduced to a single digit of precision.

            Comment

            • philchillbill
              Automated Home Legend
              • Jan 2017
              • 591

              #21
              Beta testers should note a few changes:
              • Activities now retain their numbering/order whenever new activities are defined
              • There are new buttons for Show Activities (Film-roll icon) and Help (? icon) on the main dashboard
              • The settings button has been moved down from the top right corner to join this button-row
              • All of these buttons have low opacity but are not greyed-out. They're just intended to not be too obtrusive.

              Comment

              • gordonb3
                Automated Home Ninja
                • Dec 2016
                • 273

                #22
                Originally posted by philchillbill View Post
                I'm in the process of adding support for multiple locations in EvoControl, whereby you can say the likes of 'List my locations' and 'Select location N' (only if you have >1 location).

                Does anybody know if the result of the API call to "/WebApi/emea/api/v1/userAccount" always only lists the primary address of the account-holder or does it change format to somehow include multiple addresses?
                There is no array element in the response, so I'm pretty sure this call only supports returning a single address

                I presume the call to "/WebApi/emea/api/v1/location/installationInfo?userId=${userId}&includeTemperatu reControlSystems=True" will return an array with multiple similarly-populated 'locationInfo' entries when somebody has multiple locations?
                Correct. As you probably found the return from the API is crippled and starts with an array bracket. This array needs to be named, e.g. `locations` so then locationInfo can be accessed as `jsonObject["locations"][0]["locationInfo"]`. The next one then becomes `jsonObject["locations"][1]["locationInfo"]`

                Comment

                • philchillbill
                  Automated Home Legend
                  • Jan 2017
                  • 591

                  #23
                  Sorry if this is a dumb question, but I don't have DHW as I have a combi.

                  It can only be turned on/off, right? You can retrieve what its current actual temperature is but not set a particular setpoint, i.e. the temperature is read-only?

                  On/off is normally scheduled. Does the concept of TemporaryOverride-until apply to DHW too?

                  IS there any value in being able to include DHW in actitivies? I'm going to take a shower so I'd like the radiator zone to get warm but also the DHW to kick-in for a while. That type of thing.

                  Comment

                  • bruce_miranda
                    Automated Home Legend
                    • Jul 2014
                    • 2307

                    #24
                    DHW set point can be changed but not via the API. You can only do that via the radio.
                    Temporary Override Until is actually the exact way how Resideo implemented the HW Boost. So when you select Boost, what is actually happening is the DHW is switched On as a Temporary Override for an hour.
                    Having the option of including the HW in a scene sounds like a good thing.

                    Comment

                    • DerekWilliamsUK
                      Automated Home Jr Member
                      • Jan 2018
                      • 32

                      #25
                      Originally posted by bruce_miranda View Post
                      Having the option of including the HW in a scene sounds like a good thing.
                      +1. I would welcome this additional functionality.

                      Comment

                      • philchillbill
                        Automated Home Legend
                        • Jan 2017
                        • 591

                        #26
                        Originally posted by bruce_miranda View Post
                        DHW set point can be changed but not via the API. You can only do that via the radio.
                        Temporary Override Until is actually the exact way how Resideo implemented the HW Boost. So when you select Boost, what is actually happening is the DHW is switched On as a Temporary Override for an hour.
                        Having the option of including the HW in a scene sounds like a good thing.
                        When an until is set for dhw, it is { "dhw": "stateStatus": { "state": "On|Off", "mode": "TemporaryOverride", "until": "2022-04-16T16:00:00Z" } or does it use timeUntil like the system mode does for overrides?

                        Comment

                        • philchillbill
                          Automated Home Legend
                          • Jan 2017
                          • 591

                          #27
                          DHW is now supported

                          There's now full support for DHW in EvoControl Some example commands:

                          Turn off Hot Water
                          Turn on Hot Water for 20 mins
                          Turn on Hot Water at 5PM for 45mins [adds a switchpoint]
                          Turn on Hot Water at 10PM until 11:30PM [adds 2 switchpoints]
                          Show the Hot Water schedule
                          Upload schedule B for Hot Water
                          What's the Hot Water state?

                          Hot Water can fully participate in Activities/Scenes and also be scheduled as part of a scene. When DHW is installed, the DHW tile is always shown first on your dashboard in the skill.

                          New account-linkings of the skill will discover DHW automatically. Existing Beta testers can say "Alexa, update my configuration" when in-session to pick up DHW if they have it.

                          Some other improvements:
                          • In schedule view, the most recent active switchpoint for a zone is highlighted, even if it was late yesterday rather than earlier today
                          • There's a 4th button bottom left of the dashboard, to open the setpoint-editor view
                          • Zones reporting a fault condition will show an orange triangle in their tile
                          • Tiles for TRVs not reporting temperature (e.g. bound but sitting in a drawer as a spare without batteries) will have lower opacity on the dashboard and be sorted at the end
                          • Unusual TCC setups with ghost devices from e.g. a replaced Evotouch will now be more gracefully handled (thanks Jim for being the Guinea Pig on that)


                          The in-skill Help has been updated with the new commands. Enjoy!

                          Comment

                          • philchillbill
                            Automated Home Legend
                            • Jan 2017
                            • 591

                            #28
                            Fixed a bug introduced a week or so ago that was causing regular 429 rate limit exceeded errors with TCC Should be back to normal now.

                            Comment

                            • philchillbill
                              Automated Home Legend
                              • Jan 2017
                              • 591

                              #29
                              Fuzzy matching

                              EvoControl uses the Fuse.js fuzzy-matching library to match your zone names as spelled for TCC against Alexa's expected spelling thereof.

                              Not unexpectedly, Alexa can't get around homophones — words that sound the same but are spelled differently. Think of ate/eight, flour/flower, bare/bear, cellar/seller. Luckily, misinterpretations are unlikely to occur with zone names because EvoControl uses the AMAZON.Room slot type for zoning which clues up Alexa to expect something akin to a room name when she's in doubt.

                              Then there's abbreviations. If you have a TCC zone called 'Master Bedrm' or 'Mstr Bedrm', Alexa will hear 'Master Bedroom' when you wish to address it by voice. Thanks to EvoControl's fuzzy matching, the correct zone will be addressed (it does depend to some extent on how 'close' your other zone names are).

                              There should therefore be no need to rename your TCC zones to work with EvoControl. If you have any issues with names, it's more likely down to how Alexa is interpreting you rather than how the skill is handling Alexa. But if any beta testers have specific examples of room names that are proving problematic, please drop me a line so I can look at implementing a special-cases list.

                              Comment

                              • philchillbill
                                Automated Home Legend
                                • Jan 2017
                                • 591

                                #30
                                I've rewritten the code around configuration-updating and scenes/activities so if you rename zones your scenes will not be messed up.

                                Comment

                                Working...
                                X