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?