Heaty - a flexible heating control, facilitating schedules and manual intervention

I understand, but why isn’t possible to only rely on home assistant? What does it need hass does not provide ?

@gsemet The purpose of relying on a framework is to not have to reinvent the wheel. It could probably be written for plain Home Assistant as well, but would be far more complicated to structure. That was a design decision I made about a year ago. However, feel free to fork it and rewrite yourself.

what appdaemon provides can in theory be done in python without appdaemon, just it would be way more complicated.
appdaemon provides an easy way to communicate with hass in python.

i dont understand your problem with AD. heaty could also have been written without the need to install hass, but it is written as it is.

1 Like

Thanks @roschi I finally came around writing the schedule and it is working as intended therefore if somebody is interested here it goes.

  rooms:
    # Define such a block for each room you want to control.
    bedroom:
      replicate_changes: true
      thermostats:
        climate.left_bedroom_radiator:
        climate.right_bedroom_radiator:
      schedule:
      - temp: 21
        start: "6:00"
        end: "23:00"
      - temp: Add(-3) if is_off("binary_sensor.presence") else Skip()
        start: "08:00"
        end: "17:00"
      - temp: 21
        start: "17:00"
        end: "23:00"
      - temp: off

Only problem now is that it seems when I fire the heaty_reschedule event via the hass web interface nothing happens…

The configuration look great, and it is what I am about to rewrite in plain automation yaml, so heaty does the job. But I do not have appdaemon deployed yet on my system :frowning:

installing AD is simple.
the docs cover almost all optional possibilities.

how do you have HA installed?

And using the AIA for hass-apps is even simpler :slight_smile:

1 Like

@snizzleorg The rules 2 and 3 of that schedule never get used… Think about it again, from top to bottom, first match wins.

@snizzleorgMaybe you want to read the docs for writing schedules and expressions from the development version, there have been some decent changes to explain it better.

https://hass-apps.readthedocs.io/en/latest/apps/heaty/writing-schedules.html
https://hass-apps.readthedocs.io/en/latest/apps/heaty/temperature-expressions.html

Alright, the final heaty v0.17 is out now. That will be the last release.

Best regards
Robert

@roschi
That means when a rule is matched the others will be ignored?

So if I put it like this it makes more sense…

  rooms:
    # Define such a block for each room you want to control.
    bedroom:
      replicate_changes: true
      thermostats:
        climate.left_bedroom_radiator:
        climate.right_bedroom_radiator:
      schedule:
      - temp: Add(-3) if is_off("binary_sensor.presence") else Skip()
        start: "08:00"
        end: "17:00"
      - temp: 21
        start: "6:00"
        end: "23:00"
      - temp: 21
        start: "17:00"
        end: "23:00"
      - temp: off

@snizzleorg Yes, but the third rule is now obsolete because its times are included in the second as well, do you see? Apart from that, it looks good.

Hi all,

I’ve got a working version ready to migrate to. The docs aren’t completed yet, but if you used Heaty before, you should feel right home.

Here are the docs:
https://hass-apps.readthedocs.io/en/schedy/apps/schedy/index.html

In order to use it, you need to install from GitHub as described in the docs, but you need to use an alternative clone command:

git clone -b schedy https://github.com/efficiosoft/hass-apps

The rest is identical.

Heaty will continue to work simultaneously, because the latest Heaty v0.17.0 is included in that branch as well.

I’ll update the docs bit by bit during the weekend and they’ll be online instantly. Use the upgrading instructions for GitHub-based installations to fetch code updates.

IMPORTANT
Please post Schedy-related things to the other thread: Heaty will die, Schedy be born!
We’ll get really confused otherwise.

Please be brave, test and - of course - have fun with Schedy!

Best regards
Robert

I installed HA the hardest way, with pipenv and a monkey patch to have HA use pipenv instead of pip, alongside of Configurator. I ll give a try to DA

dont forget that its better not to have HA and AD in the same env.

Hi all,

Apart from the custom actor type that probably will be used rarely anyway, the documentation is complete.

I’ve merged Schedy over to the master branch, hence the usual installation instructions for the development version as written in the docs now count for Schedy as well.

The latest docs are at https://hass-apps.readthedocs.io/en/latest/

You may now switch over from Heaty if you like.

Best regards
Robert

Thanks again for the tip to use nginx. Since the weekend the connection between Heaty/Appdaemon and HA works :slight_smile:

However, I still have two problems with my configuration.

  1. I added a window sensor. The sensor itself is working in HA fine and Heaty recognizes the changes of the sensor. Sadly it only decreases the temperature when the window is opened but does not increase it to the original value when the window is closed - althought it recognizes that the window is closed.
    Here is the important part of my log: (The repeated messages that the window has been closed should not be important, I think, because I was testing a couple of things with the sensor)

    2018-10-11 18:32:48.845053 INFO heaty_full: *** Welcome to heaty 0.17.0, running on AppDaemon 3.0.1.
    2018-10-11 18:32:48.848779 INFO heaty_full: ***
    2018-10-11 18:32:48.852485 INFO heaty_full: *** This is an app from the hass-apps package.
    2018-10-11 18:32:48.856144 INFO heaty_full: ***   DOCS: https://hass-apps.readthedocs.io/en/stable/
    2018-10-11 18:32:48.859781 INFO heaty_full: ***
    2018-10-11 18:32:48.863452 INFO heaty_full: *** If you like this app and want to honor the effort put into it,
    2018-10-11 18:32:48.867147 INFO heaty_full: *** please consider a donation.
    2018-10-11 18:32:48.870780 INFO heaty_full: ***   DONATE: https://hass-apps.readthedocs.io/en/stable/#donations
    2018-10-11 18:32:48.874461 INFO heaty_full: *** Thank you very much and enjoy heaty!
    2018-10-11 18:32:48.878106 INFO heaty_full: ***
    2018-10-11 18:32:48.906916 INFO heaty_full: --- Heaty id is: 'default'
    2018-10-11 18:32:49.018930 INFO heaty_full: --> [R:bad] [T:climate.bad_thermostat] Received target temperature of 20.0°.
    2018-10-11 18:32:49.140960 INFO heaty_full: <-- [R:bad] Setting heating to 10.0° due to an open window.
    2018-10-11 18:32:54.504731 INFO heaty_full: --> [R:bad] [T:climate.bad_thermostat] Received target temperature of 10.0°.
    2018-10-11 18:32:54.508312 INFO heaty_full: <-- [R:bad] Temperature set to 10.0°.  [manual]
    2018-10-11 18:32:54.544428 INFO heaty_full: *** Initialization done.
    2018-10-11 18:32:54.652162 WARNING AppDaemon: Excessive time spent in utility loop: 6039.0ms
    2018-10-11 18:33:34.023675 INFO heaty_full: --> [R:bad] Window has been closed.
    2018-10-11 18:38:31.026188 INFO heaty_full: --> [R:bad] Window has been closed.
    2018-10-11 18:38:36.020636 INFO heaty_full: --> [R:bad] Window has been closed.
    2018-10-11 18:41:40.019802 INFO heaty_full: --> [R:bad] Window has been opened.
    2018-10-11 18:41:40.027906 INFO heaty_full: <-- [R:bad] Setting heating to 10.0° due to an open window.
    2018-10-11 18:45:40.020584 INFO heaty_full: --> [R:bad] Window has been closed.
    

Here is my configuration:

heaty_full:
  module: hass_apps_loader
  class: HeatyApp

  master_off_temp: 12

  window_open_temp: 10

  thermostat_defaults:
    min_temp: 10
    max_temp: 30

    opmode_heat: "manual"
    opmode_off: "away"

  rooms:

    bad:
      reschedule_delay: 0

      thermostats:
        climate.bad_thermostat:
          
      window_sensors:
        binary_sensor.bad_window:
          delay: 20
          open_state: "on"

      schedule:
      - { temp: 20, start: "08:00", end: "21:00", weekdays: "1,2,3,4,5" }
      - { temp: 20, start: "10:00", end: "13:00", weekdays: "6,7" }
  1. Is it possible to include holidays to the weekend rule?
    I have a binary sensor for workdays called “binary_sensor.workday_sensor” set up, but how do I include it in my config?

Thank you again for your help :slight_smile:

i am glad you got it all working.
i have no clue about how heaty is setup , but i am sure that Robert wil help you with that.

@Gunna Regarding 1. - It’s not possible for me to understand what happened without a log with debug: true. Please reproduce the minimum steps needed to make that happening and file an issue on GitHub. Thanks

Regarding 2. - That’s something for you to work out with the docs.

I actually don’t recommend using Heaty for new deployments. Better switch over to Schedy directly. The docs therefor are also a lot better I think.

Hello,

First of all, thanks for this great app.
I have few questions:

  1. Is it possible to schedule multiple rooms at once?
  2. Is it possible to schedule something every two weeks/days?
  3. Is there anyway to enhance the thermostat algorithm and provide something smarter? I’m thinking of implementing a PID algorithm. Of course, I’ll be happy to help if someone with good knowledge in AppDaemon Apps dev can help me.
    Thanks again.