Thermostat - Call-service error. required key not provided @ data['value']

Node-Red
openweathermap for calling Weather data.

I have a Function that checks the weather outside, then creates a message with the temp and returns it. The next Node is just Call Service and set the Thermostat to Heat/Cool/etc. I get an API error here: Call-service error. required key not provided @ data[‘value’]

[{"id":"8290ed8312189cb0","type":"debug","z":"3cba77a27291426f","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":630,"y":140,"wires":[]},{"id":"55eb57ca9369dfd5","type":"api-call-service","z":"3cba77a27291426f","name":"Set Heat","server":"7873febe.5d419","version":5,"debugenabled":false,"domain":"climate","service":"set_hvac_mode","areaId":["hallway"],"deviceId":["d78db88642b83646b7978a7c87cc854b"],"entityId":["climate.thermostat"],"data":"heat","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":820,"y":280,"wires":[["9adda37acf084141"]]},{"id":"542df7ecd8c5407a","type":"function","z":"3cba77a27291426f","name":"If Weather Temp <= 65","func":"if (msg.payload.tempk <= 291.48) {\n    //65 degrees\n    msg.payload = ((msg.payload.tempk)*(9/5)-459.67)\n    return msg\n}\n    return null; \n    ","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":590,"y":280,"wires":[["55eb57ca9369dfd5"]]},{"id":"9adda37acf084141","type":"api-call-service","z":"3cba77a27291426f","name":"Fan Auto","server":"7873febe.5d419","version":5,"debugenabled":false,"domain":"climate","service":"set_fan_mode","areaId":["hallway"],"deviceId":["d78db88642b83646b7978a7c87cc854b"],"entityId":["climate.thermostat"],"data":"'Auto low'","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1040,"y":280,"wires":[[]]},{"id":"666d53bd3a3ff4d5","type":"openweathermap in","z":"3cba77a27291426f","name":"Home Weather","wtype":"current","lon":"-96.51486218777559","lat":"33.097175473851735","city":"","country":"","language":"en","x":320,"y":280,"wires":[["542df7ecd8c5407a","8290ed8312189cb0"]]},{"id":"7873febe.5d419","type":"server","name":"","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"","connectionDelay":false,"cacheJson":false,"heartbeat":false,"heartbeatInterval":""}]
if (msg.payload.tempk <= 291.48) {
    //65 degrees
    msg.payload = ((msg.payload.tempk)*(9/5)-459.67)
    return msg
}
    return null;

The API I have works. It calls the data perfectly fine and I’ve not used the daily max. But I can’t seem to get past this error and it’s keeping me from automating the temp in my house. Any ideas what is going on?

Remove area and device. Place quotes around "heat"

Perfect! Those dang quotes!

I’m getting the same error when using the call service node, i’m just trying to send notification to my phone

I have no idea of how the message coming in is structured, as you did not provide it.

It should look like this

(see below)

Edit: my config was old, entity_id is no longer in data, it’s in target. The link above has more information.

Screenshot 2024-01-29 195420