EvoControl - custom Alexa skill for Evohome

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

    • Jan 2017
    • 1657

    Weather on Dashboard & ΔT plotting



    The skill can now display outside temperature plus a current-weather icon on the dashboard. It uses AccuWeather for this, which would seem to be the service that Honeywell uses under the hood for your Evotouch panel's outside-temperature so there should be good correlation (provided your get your location ID correct). On the settings page, there's a new slider '☀️ Show Local Weather40 different icons will appear in the top right corner of your dashboard corresponding to the current situation. You'll also see the latest outside temperature displayed next to the skill invocation name in the header, to the left of that icon. Note that if you have a HGI-80 and Domoticz and have already set up a different outside temperature sensor (e.g. a real hardware sensor in your garden) then that will take precedence over the AccuWeather number. The icon will still show regardless.

    Each time the weather service is polled, a 24-hour forecast will be picked up and similarly stored. This is used to drive a new feature whereby the ΔT between the forecasted outside temperature and your LIVE schedule for the coming 24h can be plotted.



    Whenever you tap on a dashboard tile to show the schedule for a zone, the button row in the footer will now display a new button ⛰️ ΔT (disabled for DHW and/or when weather is not enabled in settings). When you tap it, a graph as above is drawn which plots the scheduled setpoints for the zone for the coming 24h vs the expected outside temperature. The wider this ΔT is, the more energy you can expect will be required to heat the zone in question to the desired temperature. Of course it's only empirical/relative but with today's gas prices, every indicator helps!

    Comment

    • Midland45
      Automated Home Ninja

      • Jan 2022
      • 278

      This is a really good feature to add, as having the upcoming outside temperature is actually more useful than present temperature. I’ve added it, however I’m not getting the current outside temp displayed, just the current weather icon. The 24 hour forecast must have been downloaded as I can see the delta T graph ok. So not sure why this isn’t displayed?

      Comment

      • philchillbill
        Automated Home Legend

        • Jan 2017
        • 1657

        Originally posted by Midland45 View Post
        This is a really good feature to add, as having the upcoming outside temperature is actually more useful than present temperature. I’ve added it, however I’m not getting the current outside temp displayed, just the current weather icon. The 24 hour forecast must have been downloaded as I can see the delta T graph ok. So not sure why this isn’t displayed?
        Do you also have a HGI/Domoticz enabled? It would override your AccuWeather outside temp, even if it was misconfigured. In that case, nothing would be displayed.

        EDIT: It's now modded so that if you have Outside configured via Domoticz but that data is absent, it will not override the AccuWeather data. See if that makes a difference. You may need to exit the skill and start a new session to see the effect of the change.
        Last edited by philchillbill; 27 February 2023, 11:21 PM.

        Comment

        • Midland45
          Automated Home Ninja

          • Jan 2022
          • 278

          Originally posted by philchillbill View Post
          Do you also have a HGI/Domoticz enabled? It would override your AccuWeather outside temp, even if it was misconfigured. In that case, nothing would be displayed.

          EDIT: It's now modded so that if you have Outside configured via Domoticz but that data is absent, it will not override the AccuWeather data. See if that makes a difference. You may need to exit the skill and start a new session to see the effect of the change.
          Yes that’s now displaying a temperature, however it’s displaying as -3.2, it’s probably about +3 outside at the moment according to accuweather.com. If this was the “feel temperature/chill factor” and not the ambient temperature it probably would be correct.
          I do have HGI/Domoticz working and are presently using Accuweather via Domoticz, coincidentally yesterday I did try to use it as a source for Evocontrol, however had issues as the data is temp/humidity/barometer, so it failed to display. I’m presuming Evocontrol requires a pure temperature to be able to display. Did test with Buienradar previously and worked fine, think I used the “feel temp” as my source. Now you’ve rolled out the outside temperature upgrade, it’ll drop down the todo list again

          Comment

          • philchillbill
            Automated Home Legend

            • Jan 2017
            • 1657

            Originally posted by Midland45;
            Yes that’s now displaying a temperature, however it’s displaying as -3.2, it’s probably about +3 outside at the moment according to accuweather.com. If this was the “feel temperature/chill factor” and not the ambient temperature it probably would be correct.
            I do have HGI/Domoticz working and are presently using Accuweather via Domoticz, coincidentally yesterday I did try to use it as a source for Evocontrol, however had issues as the data is temp/humidity/barometer, so it failed to display. I’m presuming Evocontrol requires a pure temperature to be able to display. Did test with Buienradar previously and worked fine, think I used the “feel temp” as my source. Now you’ve rolled out the outside temperature upgrade, it’ll drop down the todo list again
            When your outside temp failed to show yesterday, you re-did the AccuWeather ID entry but used a different ID the 2nd time with one digit different. Not sure if that was deliberate or your typo, but might explain that you are seeing the weather for the wrong location. I don't use RealFeel so as to match (I hope) what the Evotouch displays for people. If you use any of the Honeywell weather-comp features, that will be the value things are based on so I think it makes sense to mirror it.

            I can easily parse the value returned by DOmoticz to correctly extract the temp when it is a combined temp/humidity/baro value. Do you have an example of what that field looks like for your installation? It's either the Data or Temp parameter in the JSON when you query /json.htm?type=devices&rid=xxx

            EDIT: Combined temp/humidity/baro devices are now supported
            Last edited by philchillbill; 28 February 2023, 06:53 PM.

            Comment

            • Midland45
              Automated Home Ninja

              • Jan 2022
              • 278

              Originally posted by philchillbill View Post
              When your outside temp failed to show yesterday, you re-did the AccuWeather ID entry but used a different ID the 2nd time with one digit different. Not sure if that was deliberate or your typo, but might explain that you are seeing the weather for the wrong location. I don't use RealFeel so as to match (I hope) what the Evotouch displays for people. If you use any of the Honeywell weather-comp features, that will be the value things are based on so I think it makes sense to mirror it.

              I can easily parse the value returned by DOmoticz to correctly extract the temp when it is a combined temp/humidity/baro value. Do you have an example of what that field looks like for your installation? It's either the Data or Temp parameter in the JSON when you query /json.htm?type=devices&rid=xxx
              Yes you were right it was a typo! So I’ve corrected then exited and relaunched the skill. Got a change in weather icon but was still a negative temp displayed. Hopefully may just need time to refresh and update, so will re-check later once home again.

              Comment

              • philchillbill
                Automated Home Legend

                • Jan 2017
                • 1657

                Originally posted by Midland45 View Post
                Yes you were right it was a typo! So I’ve corrected then exited and relaunched the skill. Got a change in weather icon but was still a negative temp displayed. Hopefully may just need time to refresh and update, so will re-check later once home again.
                Yes, the max refresh interval is 15 mins so if you just missed the window then the cached value would still show for max 15 mins after you corrected the ID.

                Comment

                • philchillbill
                  Automated Home Legend

                  • Jan 2017
                  • 1657

                  User input for new feature requested

                  I'd like to implement a feature in EvoControl which I believe will be a real potential energy saver for people. For want of a better term, I call the paradigm Moments and it'll be used to advance/postpone named schedule-blocks by voice.

                  Say you normally go to bed at 10:30 PM and have your upstairs rooms scheduled to start getting warmer at 10 PM. If you're watching a movie and want to stay up later, you could say e.g. "Delay Bedtime by 30 mins" or "Schedule Bedtime for 11 PM". Or the Movie is boring and you want to go to bed now: "Initiate Bedtime now" or "Expedite Bedtime". If you're going out and expect to be home at 1 AM, you could at any point in the day say "Schedule Bedtime for 1 AM".

                  Same thing for postponing morning blocks. If you want to slumber longer tomorrow morning, you could say "Postpone Wake-Up by an hour". Or if you will be off early on a business trip, say "Schedule Wake-Up for 6AM" or "Advance wake-up by 45 mins". You get the idea. It's editing the live schedule to change switchpoints before they occur. Only for either later today or tomorrow before noon.

                  The intention is that the Moments have names, like Wake-Up, Breakfast, Lunch, Dinner, Bedtime etc. Block-times would be defined as e.g. 00:00 - 07:00 = Wake-Up, 07:01- 10:00 = Breakfast, 16:30 - 19:30 = Dinner, etc. That all would have a pre-defined set of defaults which you could leave as-is if they suit you. However, they would be editable for both name and from-to times if you prefer.
                  In use, if at 07:10 you issue a command addressing Wake-Up you'd be told that today's Wake-Up block had already passed so that you couldn't get accidentally thwarted by not watching the clock. There is, however, the matter of what to do with implicit duration. Say your bedtime was normally a setpoint from 10:00PM-10:45PM. If you postpone the start to 10:25PM, should the finish shift to 11:10PM or not? I'd say yes if the next switchpoint was inside the defined block, no otherwise.

                  There's quite a potential for user confusion. What's the difference between an Activity and a Moment? An activity is just a name for a collection of setpoints to be applied to a set of zones. They can be scheduled, but certainly don't have to be and in fact most often are not. A Moment is always an edit to the Live schedule, for a set of zones, to the zones existing switchpoints, either later today or tomorrow. Is that difference clear or whaaaaa?

                  Then there's the voice model:

                  Postpone/Delay/Defer/Suspend/Retard/Wait for/Suspend.
                  Advance/Pull Forward/Bring Forward/Expedite/Hasten.
                  Initiate/Start/Plan/Schedule. A potential problem with 'Schedule' is overlap with Activities.

                  Any thoughts?

                  Comment

                  • philchillbill
                    Automated Home Legend

                    • Jan 2017
                    • 1657

                    New feature: Constrained Overrides via the touchscreen Setpoint Editor



                    The interactive setpoint editor has a new hourglass button labelled ⏳ Duration. Whenever you change any setpoints, in addition to the existing Upload button becoming unlocked, the new Duration button will also unlock. When you tap it, the above array of buttons will appear at the bottom of the screen. Tapping any of the values will immediately submit the changed setpoints to TCC with the tapped duration. Alexa will call out the zones you edited and also mention the end-time that duration will result in, calculated from now.

                    If you tap the X to the right, the row will disappear and you'll be back to the previous screen with your setpoint changes still intact. You can then either submit them without constraint by hitting Upload, or cancel.

                    If you made a mistake, the Undo command will revert things to the way they were, even if you already had existing overrides on any zones (they will re-appear). It does have to be the first thing you do/say. Otherwise, "Alexa, set all zones to Follow Schedule" will always work.

                    Comment

                    • philchillbill
                      Automated Home Legend

                      • Jan 2017
                      • 1657

                      Originally posted by philchillbill;
                      I'd like to implement a feature in EvoControl which I believe will be a real potential energy saver for people. For want of a better term, I call the paradigm Moments and it'll be used to advance/postpone named schedule-blocks by voice.

                      Say you normally go to bed at 10:30 PM and have your upstairs rooms scheduled to start getting warmer at 10 PM. If you're watching a movie and want to stay up later, you could say e.g. "Delay Bedtime by 30 mins" or "Schedule Bedtime for 11 PM". Or the Movie is boring and you want to go to bed now: "Initiate Bedtime now" or "Expedite Bedtime". If you're going out and expect to be home at 1 AM, you could at any point in the day say "Schedule Bedtime for 1 AM".

                      Same thing for postponing morning blocks. If you want to slumber longer tomorrow morning, you could say "Postpone Wake-Up by an hour". Or if you will be off early on a business trip, say "Schedule Wake-Up for 6AM" or "Advance wake-up by 45 mins". You get the idea. It's editing the live schedule to change switchpoints before they occur. Only for either later today or tomorrow before noon.

                      The intention is that the Moments have names, like Wake-Up, Breakfast, Lunch, Dinner, Bedtime etc. Block-times would be defined as e.g. 00:00 - 07:00 = Wake-Up, 07:01- 10:00 = Breakfast, 16:30 - 19:30 = Dinner, etc. That all would have a pre-defined set of defaults which you could leave as-is if they suit you. However, they would be editable for both name and from-to times if you prefer.
                      In use, if at 07:10 you issue a command addressing Wake-Up you'd be told that today's Wake-Up block had already passed so that you couldn't get accidentally thwarted by not watching the clock. There is, however, the matter of what to do with implicit duration. Say your bedtime was normally a setpoint from 10:00PM-10:45PM. If you postpone the start to 10:25PM, should the finish shift to 11:10PM or not? I'd say yes if the next switchpoint was inside the defined block, no otherwise.

                      There's quite a potential for user confusion. What's the difference between an Activity and a Moment? An activity is just a name for a collection of setpoints to be applied to a set of zones. They can be scheduled, but certainly don't have to be and in fact most often are not. A Moment is always an edit to the Live schedule, for a set of zones, to the zones existing switchpoints, either later today or tomorrow. Is that difference clear or whaaaaa?

                      Then there's the voice model:

                      Postpone/Delay/Defer/Suspend/Retard/Wait for/Suspend.
                      Advance/Pull Forward/Bring Forward/Expedite/Hasten.
                      Initiate/Start/Plan/Schedule. A potential problem with 'Schedule' is overlap with Activities.

                      Any thoughts?

                      Comment

                      • Midland45
                        Automated Home Ninja

                        • Jan 2022
                        • 278

                        So my overall thoughts on “Moments” is that it would give another element of control, which can only be a positive step. I think you’ve clearly identified the differences between Activities and Moments and the advantages of each.

                        My only reservation would be after a “Moment” had completed; would I then have to manually revoke back to my live schedule? Which I’m guessing if you were in the scenario that you’d brought forward “Wake Up” by 2 hours, revoking back to live schedule too early could potentially see you catching part or all of your actual scheduled Wake Up time period.

                        I also think it would be best to ensure duplicated names were prohibited in Activities/Moments, to circumvent the chance of scheduling an “Activity” when you were actually after a “Moment”. Not sure how you’d achieve this with people already having similar named activities.

                        Comment

                        • philchillbill
                          Automated Home Legend

                          • Jan 2017
                          • 1657

                          Originally posted by Midland45 View Post
                          So my overall thoughts on “Moments” is that it would give another element of control, which can only be a positive step. I think you’ve clearly identified the differences between Activities and Moments and the advantages of each.

                          My only reservation would be after a “Moment” had completed; would I then have to manually revoke back to my live schedule? Which I’m guessing if you were in the scenario that you’d brought forward “Wake Up” by 2 hours, revoking back to live schedule too early could potentially see you catching part or all of your actual scheduled Wake Up time period.

                          I also think it would be best to ensure duplicated names were prohibited in Activities/Moments, to circumvent the chance of scheduling an “Activity” when you were actually after a “Moment”. Not sure how you’d achieve this with people already having similar named activities.
                          Thanks for the feedback. I agree that ensuring no name-clash between Activities and Moments is paramount. I'm currently looking into auto-reverting schedules to baseline after a discardable schedule is created, so that would solve that problem. The idea is that at midnight, without your intervention the skill's Lambda would run on a cron and revert for you. In theory possible with Amazon Lambda functions. But I need to make sure it's rock-solid before I'd ever release it.

                          One way or another, the Moments concept is something for next Winter's heating and no longer this one.

                          Comment

                          • bruce_miranda
                            Automated Home Legend

                            • Jul 2014
                            • 2639

                            I think at the moment people will probably be considering moving to a Spring time schedule. So make sure the ability to backup and restore the Winter schedules in rock solid. March is an odd month which cannot decide if its Spring or Winter.

                            Comment

                            • Midland45
                              Automated Home Ninja

                              • Jan 2022
                              • 278

                              Talking about backups, I keep getting an error message now when trying to send a backup asking if the email address is valid. I’ve tried two different email addresses with the same result, so not sure what the issue is.

                              Comment

                              • philchillbill
                                Automated Home Legend

                                • Jan 2017
                                • 1657

                                I use an external library called node-email-validation to sanity-check the email address before sending because I cannot verify after a send-attempt if the address made sense. I changed nothing in the code recently and also have not updated the library files so strange that it would now reject an address that it validated ok before.

                                As a workaround, I can comment-out the code and then you're on your own if you mistype, but at least it will not reject the address outright.

                                I think also that I may have an explanation as to why some people never receive those emails when I send them. The '.tech' HLD (high level domain name) is rarely used and may not even be marked as valid in some older email software so anti-spam will sometimes reject such mails. It can be hit-and-miss because when you send a mail you never know how many hops it will make from sender to receiver and you may/may-not hit a hop that will reject.

                                I plan to switch from the 'send-me-an-email' approach to instead allowing you to save a file locally on your computer. That will then move the backup process from something you perform on an Echo to something you perform in a browser on a PC/mac. The good news is that you could then edit that file externally and upload it back to the skill yourself. So you could have dozens of schedules if you like and only 4 of them (Live/ABC) would be 'in' the skill at any time. However, that means allowing people to upload directly to my database and that's always an attack-vector for hacking so I need to be very restrictive on the file format that would be accepted for upload. You could always safely put back an unedited Live/ABC because I could store a peppered hash and if a file you upload has the same hash it would always be allowed.

                                Comment

                                Working...
                                X