How to call current target temperatures for thermostat in Node Red or anywhere

***TLDR at the bottom***

I use Node Red for automations but my question, i think, is generic enough as I am just trying to do a call_service or an event to be able to extract what target temperatures I have set.

I currently have House Modes setup for: Home, Away, Someone Asleep, Night, and Vacation. These flows get triggered with a vareity of ways: Homekit switches, physical switches, device_trackers, arming or disarming an alarm system, etc. This way I have multiple ways of triggering a flow just in case something fails.

however, as I am tinkering around something inevitably breaks and I get mad and go through all the stages of grief / anger and stomp my way to my PC to figure out what went wrong. Therefore, i would love to get some TTS on my sonos going to verify when something has changed.

I have TTS going with sonos where I send a JSON like this

{
"entity": "media_player.bedroom_sonos",
"message": "This is a test"
}

and it will beatufilly do everything for me. I got this all from this cookbook site on the HA site. The next phase will be to have a flow going that is triggered when a house mode changes to Night and gives a verbal tts confirmation through my bedroom sonos stating what changed. Specifically the temperature (my GF REALLY likes it cold and complains when the thermostat doesn’t change after I set it to change).

How can do I do this?

TLDR: what service do i call in node red to extract the target temp. If I just use a trigger state node for the climate. I get this whole mess of an object which doesn’t include the target temperatures. I also have 2 thermostats to ping each having 2 entities (one for heat and one for cool as they are ZWAVE).

{
    "topic": "sensor.house_mode",
    "payload": "heat_cool",
    "data": {
        "entity_id": "climate.trane_corporation_model_tcont624as42daa_heating_1",
        "state": "heat_cool",
        "attributes": {
            "hvac_modes": [
                "heat_cool",
                "off",
                "heat",
                "cool"
            ],
            "current_temperature": 73,
            "min_temp": 45,
            "max_temp": 95,
            "temperature": 70,
            "fan_mode": "Auto Low",
            "fan_modes": [
                "Auto Low",
                "Circulate",
                "On Low"
            ],
            "hvac_action": "idle",
            "preset_mode": "none",
            "preset_modes": [
                "Heat",
                "none"
            ],
            "node_id": 3,
            "value_index": 1,
            "value_instance": 1,
            "value_id": "72057594093551634",
            "friendly_name": "Downstairs Heating",
            "supported_features": 25
        },
        "last_changed": "2019-08-20T20:42:05.228551+00:00",
        "last_updated": "2019-08-21T04:20:47.883211+00:00",
        "context": {
            "id": "2baa41d20bfd4b70aac549462c64ffda",
            "parent_id": null,
            "user_id": null
        },
        "timeSinceChangedMs": 27562313
    },
    "_msgid": "f353e7fe.923418"
}

"temperature": 70 is the target temp in your example.

1 Like

Ahhh I don’t know how I didn’t see this before!!! So now I know I can use 1 current_state node for each thermostat and extract this temperature and make sure that it is set for the appropriate level.