🔥 Advanced Heating Control

Just check the log level in your blueprint configuration and set it to debug.

I set all 10 AHC/Blueprints to debug. Since then no more errors in the log

This were just info logs but no errors. I’d just added the option to set the log level because it’s may difficult for non-yaml users to setup the logger in the configuration. Hope everything is fine now. :wink:

1 Like

Thank you !

Hi. I’m seeing some strange behaviour over the last few days. I’ve tried to identify cause but not clear to me yet. I’ve added the latest version.

Having issues with schedule triggered heating and the heating schedule adjustments functionality.

Here is an example today with log entries etc…

Schedule set to heat at 2:30. Log entry for the schedule shows the schedule triggered at 2:30 (trace attached and log screenshot). AC entity log did not show it changing state until I manually did at 2:37pm, but I see an event in the advanced heating control automation (see link below to trace).

Also, I set a manual schedule adjustment to change comfort temp to 19c at 2:38; the log entry for the AC thermostat entity shows it turning to off and then heat but no temp change.

I’ve had this working reliably for many months and something has clearly changed - but cannot detect what / why yet.

Help appreciated! Thanks




Log_AC entity events|690x382

Trace file download: Public - Google Drive
!

@panhans

First of all thanks a lot for Advance Heating Control, keep up with the good work!

And now my (noobs) questions

  • Does the automation creates some variables I can use for my notifications? I´d like to get a Telegram message each time the status of the heating has changed, e.g. going from Eco to Comfort, so a message “The heating has not gone into %heating_status” would be useful w/o the need to go and log (remotely) into the system
  • I´d like to control the dynamic values of the automation through a single thermostat card, i.e. with 2 numbers (eco/comfort?) and perhaps the different heat modes. Would you recommend it? If yes, have you seen any example around?

Thanks
Max

1 Like

@ajb538 Hey, thanks for your feedback. First you just go to set the comfort temperature if somebody is home and otherwise your ac is off.

You’d defined two options for enabling comfort:

  • presence sensor combined with a scheduler
  • guest mode

The guest mode entity is off → no heating
Your presence sensor is on but the presence scheduler is off → no heating

Both the scheduler and the sensor must be on to enable cooling/heating.


I would recommend to setup this template sensor. (One for each automation) This sensor can be used for further evaluation or also automations.

Atm I don’t know any solution for this. But maybe I can integrate the option of a generic thermostat to control these values. I will think about it and will add this to the planned feature list.

//EDIT: This custom card looks promissing but only allows one input number entity.

1 Like

I’m not able to subscribe to your yaml in GitHub for updates. Is there another way to get notified?

Hello,

I am pretty new to HA but there is one behavior I do not understand in AHC.
When I turno on the automation (from the automation panel or in any other way - like with a button), AHC turns on, but does not run. In fact all my thermostat valves do not change their state from off to on and with the set temperature.

However, if in automation tab I right click and select “Run”, then the automation seems to be really triggered and I see the changes to happen. So at this stage, I always need to click on “run” to have the thermostats going into the desierd “on” state.

From the logs I do not see issues.
Neverthless I am attaching here the trace. (password: AeEFRdRNGi)

Hey, maybe this helps.

Yes, atm the automation doesn’t get triggered when you enable it. I will add this trigger but I also recommend to use an input_boolean and set this entity as an on/off entity in the automation settings. The automation will set all your climates to off when turning this entity to off and will block further automation runs. Is there a reason why you disable automations instead of using condition blockers?

1 Like

Thanks!

Yeah, I had the guest mode as I originally had a person set and the guest was to disbale that in case other were staying over when I’m not in the house, but have removed that.

Cause seemed to be my intesis box which routinely drops (cant fix, is old). Reboot seems to have brought it back to life - whenever that dropped the automation became ‘unavilable’ and nothig triggered.

Longer term, might need to move the intesis to working via MQTT, or something that queues at any rate…and is always an available climate entity.

1 Like

Thanks a lot!
Indeed I have something similar to trigger a “turn off” automation. Will work with the input_boolean then as you recomend :slight_smile:

1 Like

@panhans do you know ca. the calendar and inside treshold function release?

Link in the blueprint send you to a 404 page on this forum.

1 Like

@stephanschleichstr13

I am a little busy right now and not able no give a eta. Hopefully I find the time before the next heating period. :wink:

@Tntdruid
Thanks for the hint. The link is fixed now.

2 Likes

I would like to quote myself. I that possible to integrate?

This is not working for me as it keeps turning on my AC when I am not home. I have set it for presence when I arrive and my person is there (zone) and schedule time. I also saw above where you suggest using party mode with my device tracker, and that did not work either. Attached is my last trace.

    "trace": {
      "trigger/27": [
        {
          "path": "trigger/27",
          "timestamp": "2024-08-30T14:44:19.060438+00:00",
          "changed_variables": {
            "this": {
              "entity_id": "automation.mb_ac_schedule",
              "state": "on",
              "attributes": {
                "id": "1724317315969",
                "last_triggered": "2024-08-30T14:13:51.667873+00:00",
                "mode": "queued",
                "current": 0,
                "max": 10,
                "friendly_name": "🔥 MB AC Schedule"
              },
              "last_changed": "2024-08-30T14:13:51.659151+00:00",
              "last_reported": "2024-08-30T14:13:53.915315+00:00",
              "last_updated": "2024-08-30T14:13:53.915315+00:00",
              "context": {
                "id": "01J6HT59XC5NV698DQDXJ92ZB1",
                "parent_id": "01J6HT59FC0A5546BWGCR9ZSS6",
                "user_id": null
              }
            },
            "trigger": {
              "id": "calibration_aggressive_mode_thermostat_change",
              "idx": "27",
              "alias": null,
              "platform": "state",
              "entity_id": "climate.midea_ac_150633093658640",
              "from_state": {
                "entity_id": "climate.midea_ac_150633093658640",
                "state": "cool",
                "attributes": {
                  "hvac_modes": [
                    "fan_only",
                    "dry",
                    "cool",
                    "auto",
                    "off"
                  ],
                  "min_temp": 61,
                  "max_temp": 86,
                  "target_temp_step": 1,
                  "fan_modes": [
                    "low",
                    "medium",
                    "high",
                    "auto"
                  ],
                  "preset_modes": [
                    "none",
                    "sleep"
                  ],
                  "swing_modes": [
                    "off",
                    "vertical"
                  ],
                  "current_temperature": 77,
                  "temperature": 85,
                  "fan_mode": "auto",
                  "preset_mode": "none",
                  "swing_mode": "vertical",
                  "follow_me": false,
                  "friendly_name": "Midea AC 150633093658640",
                  "supported_features": 441
                },
                "last_changed": "2024-08-30T14:13:51.904122+00:00",
                "last_reported": "2024-08-30T14:13:51.904122+00:00",
                "last_updated": "2024-08-30T14:13:51.904122+00:00",
                "context": {
                  "id": "01J6HT59XC5NV698DQDXJ92ZB1",
                  "parent_id": "01J6HT59FC0A5546BWGCR9ZSS6",
                  "user_id": null
                }
              },
              "to_state": {
                "entity_id": "climate.midea_ac_150633093658640",
                "state": "cool",
                "attributes": {
                  "hvac_modes": [
                    "fan_only",
                    "dry",
                    "cool",
                    "auto",
                    "off"
                  ],
                  "min_temp": 61,
                  "max_temp": 86,
                  "target_temp_step": 1,
                  "fan_modes": [
                    "low",
                    "medium",
                    "high",
                    "auto"
                  ],
                  "preset_modes": [
                    "none",
                    "sleep"
                  ],
                  "swing_modes": [
                    "off",
                    "vertical"
                  ],
                  "current_temperature": 79,
                  "temperature": 85,
                  "fan_mode": "auto",
                  "preset_mode": "none",
                  "swing_mode": "vertical",
                  "follow_me": false,
                  "friendly_name": "Midea AC 150633093658640",
                  "supported_features": 441
                },
                "last_changed": "2024-08-30T14:13:51.904122+00:00",
                "last_reported": "2024-08-30T14:43:19.045199+00:00",
                "last_updated": "2024-08-30T14:43:19.045199+00:00",
                "context": {
                  "id": "01J6HVV7W5KAYA1E5G4EY134GN",
                  "parent_id": null,
                  "user_id": null
                }
              },
              "for": {
                "__type": "<class 'datetime.timedelta'>",
                "total_seconds": 60
              },
              "attribute": "current_temperature",
              "description": "state of climate.midea_ac_150633093658640"
            },
            "input_mode_winter": null,
            "input_mode_party": [
              "device_tracker.pixel_7a"
            ],
            "input_mode_guest": null,
            "input_force_max_temperature": null,
            "input_hvac_mode": "cool",
            "input_temperature_comfort": null,
            "input_temperature_minimum": null,
            "input_time_based_temperature_change_valve_target": "[]",
            "input_schedulers": [],
            "input_scheduler_selector": null,
            "input_scheduler_presence": null,
            "input_trvs": [
              "climate.midea_ac_150633093658640"
            ],
            "input_windows": [],
            "input_temperature_sensor": null,
            "input_persons": [
              "person.neofax"
            ],
            "input_presence_sensor": null,
            "input_calibration_timeout": {
              "hours": 0,
              "minutes": 1,
              "seconds": 0
            },
            "input_proximity": "",
            "input_proximity_duration": {
              "hours": 0,
              "minutes": 2,
              "seconds": 0
            },
            "input_proximity_distance": 500,
            "input_mode_outside_temperature": null,
            "input_mode_outside_temperature_threshold": 15,
            "input_frost_protection_duration": {
              "days": 0,
              "hours": 0,
              "minutes": 0,
              "seconds": 0
            },
            "input_tweaks": [
              "fahrenheit"
            ],
            "is_heat_only_if_below_real_temp": false,
            "factor": -1,
            "input_temperature_comfort_static": 75,
            "input_temperature_minimum_static": 19,
            "input_frost_protection_temp": 5,
            "input_windows_reaction_time_open": {
              "hours": 0,
              "minutes": 0,
              "seconds": 30
            },
            "input_windows_reaction_time_close": {
              "hours": 0,
              "minutes": 0,
              "seconds": 30
            },
            "input_people_entering_home_duration": {
              "hours": 0,
              "minutes": 0,
              "seconds": 2
            },
            "input_people_leaving_home_duration": {
              "hours": 0,
              "minutes": 0,
              "seconds": 2
            },
            "input_presence_reaction_off_time": {
              "hours": 0,
              "minutes": 5,
              "seconds": 0
            },
            "input_presence_reaction_on_time": {
              "hours": 0,
              "minutes": 5,
              "seconds": 0
            },
            "input_calibration_delta": 0.5,
            "input_service_call_delay": {
              "hours": 0,
              "minutes": 0,
              "seconds": 2
            },
            "input_aggressive_mode_offset": 0,
            "input_aggressive_mode_range": 0,
            "input_custom_action": null,
            "input_calibration_options": [],
            "input_away_offset": 90,
            "input_away_options": [],
            "is_reset_temperature": false,
            "is_off_instead_min": false,
            "is_not_off_but_min": false,
            "is_fahrenheit": true,
            "is_aggresive_mode": false,
            "is_generic_calibration": false,
            "is_rounded_values": false,
            "is_scheduler_away_mode": false,
            "is_presence_away_mode": false,
            "valves": [
              "climate.midea_ac_150633093658640"
            ],
            "valves_unsupported": [],
            "valves_off_mode": [
              "climate.midea_ac_150633093658640"
            ],
            "valves_without_off_mode": [],
            "active_party_entity": null,
            "state_mode_party": false,
            "party_temp": null,
            "state_mode_guest": false,
            "state_mode_winter": true,
            "state_outside_temp": true,
            "state_force_max_temperature": false,
            "state_window": false,
            "active_scheduler": null,
            "up_time_sensor": "sensor.uptime",
            "is_person_based": true,
            "is_anybody_home": false,
            "is_presence_sensor_defined": false,
            "is_presence_scheduler_defined": false,
            "state_presence_sensor": false,
            "state_presence_scheduler": false,
            "state_presence_sensor_presence_scheduler_combined": false,
            "is_presence_on": false,
            "is_scheduled_heating": false,
            "state_scheduler": false,
            "is_scheduled_heating_on": false,
            "is_somebody_on_way_home_state": false,
            "is_somebody_on_way_home": false,
            "is_presence_based": false,
            "is_frost_protection": false,
            "entry": null,
            "entry_time": "",
            "entry_comfort_temp": null,
            "entry_eco_temp": null,
            "entry_calibration": true,
            "new_comfort_temperature": null,
            "new_eco_temperature": null,
            "is_heat_only_if_diff": false,
            "set_comfort": false,
            "state_temperature_comfort": 75,
            "is_away_temperature": false,
            "state_temperature_min": 19,
            "temperature": 19,
            "mode": "cool",
            "is_physical_change": false,
            "is_manual_timer_start": false,
            "is_reset": false,
            "is_calibration": false,
            "is_refresh_comfort_entity": false,
            "is_refresh_eco_entity": false,
            "is_temperature_change": false,
            "changes": [],
            "VAR_UNIT_OF_MEASUREMENT": "unit_of_measurement",
            "is_metric": true,
            "rounding": 2,
            "valves_tado": [],
            "calibration_tado": {},
            "valves_xiaomi_xiaomi": [],
            "valves_xiaomi_aqara": [],
            "valves_xiaomi": [],
            "calibration_xiaomi": {},
            "valves_danfoss": [],
            "valves_popp": [],
            "valves_hive": [],
            "valves_external_sensor": [],
            "is_periodical_popp_calibration": false,
            "is_difference_popp_calibration": false,
            "calibration_external_sensor": {},
            "valves_calibration_common": [
              "climate.midea_ac_150633093658640"
            ],
            "calibration_common": {},
            "calibration_number": {},
            "is_heating": false,
            "is_warning": false
          }
        }
      ],

I want to use this blueprint as I have a couple of A/C automations I want to move here but trying to understand the blueprint. I have a couple of questions first. I’m using an Ecobee thermostat.

1.) How do I make the a/c use my already preset home auto, which is set for 70-75F for the day and my 60-65F for the night?

2.) For the people sensor I have to create a scheduler if I want to work if someone is home and the other person is away. As I work from home and leave for work. Will it stay on while she is at work?

3.) For frost protection that will be the degrees to turn on the heat to avoid pipes freezing correct?

4.) For the off/on Automation: is that to turn the A/C off and on for the winter or summer?

Could you provide a screenshot of the attributes of your climate entity and the yaml service / action call to set the valve position?


It seems you’re using fahrenheit but 19°F is some kind of too cold, isn’t it? Could you check your temperature settings in the blueprint again, especially the eco temperature? I will also need to check something in this context.
Do you want the AC to stay off when you’re away or should it fall back to an eco temperature?


Preset modes aren’t supported yet. This automation works for thermostats in manual mode (heat/cool) only.

If you choose people based heating/cooling the comfort temperature will be set if somebody is home. If add the schedule for people presence the both must be true to set the comfort temperature. That means somebody must be at home and the schedule must be on otherwise the the eco temperature will be set.

It’s the minimal temperature that will be set if no body is home for a longer time. It’s for preventing mould or pipe freezing.

If this entity is off the thermostat will be set to off and automation calls will be set to off. If you use your AC for heating and for cooling I would recommend to set up two automations and invert the state of the on/off entity. Maybe it’s a good addition to add this tweak to the blueprint settings.

Changed min temp to 75°F. Yes, I would like for the AC to stay off until I am at home and the temp inside is above 75°F. Preferably, I would also like for it to make sure I am in the room and ambient room temp as well, but that is asking alot.