zachowj / node-red-contrib-home-assistant-websocket

Node-RED integration with Home Assistant
https://zachowj.github.io/node-red-contrib-home-assistant-websocket/
MIT License
504 stars 93 forks source link

Call Service Node logbook:log with hassio-addons/addon-node-red v17.0.0 generates HomeAssistantError: value should be a string for dictionary value @ data['entity_id'] #1245

Closed alvinchen1 closed 10 months ago

alvinchen1 commented 10 months ago

Describe the bug

hassio-addons/addon-node-red v17.0.0 released https://github.com/hassio-addons/addon-node-red

call service node logbook:log generates this error:

"HomeAssistantError: value should be a string for dictionary value @ data['entity_id']\n at getErrorData (/config/node_modules/node-red-contrib-home-assistant-websocket/dist/common/errors/inputErrorHandler.js:40:13)\n at inputErrorHandler (/config/node_modules/node-red-contrib-home-assistant-websocket/dist/common/errors/inputErrorHandler.js:61:38)\n at CallServiceController._InputOutputController_preOnInput (/config/node_modules/node-red-contrib-home-assistant-websocket/dist/common/controllers/InputOutputController.js:69:51)

To Reproduce

Apologies is this is VERY specific (unique case)

image

worked with v16.0.2

Expected behavior

Worked before

image

Call Service logbook:log worked

Screenshots

No response

Example Flow

[{"id":"ac4bc590eed045e6","type":"api-call-service","z":"da8e8fcaab62edd9","name":"Logbook All In Data","server":"3a95bff3.8b691","version":5,"debugenabled":false,"domain":"logbook","service":"log","areaId":[],"deviceId":[],"entityId":[],"data":"{\"entity_id\":payloadlogbookentity,\"message\":payloadlogbook,\"domain\":payloadlogbookdomain}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":430,"y":2060,"wires":[[]]},{"id":"19cc37e9260e717e","type":"inject","z":"da8e8fcaab62edd9","name":"","props":[{"p":"payloadlogbookentity","v":"cover.guest_room_left_window_shade_cover","vt":"str"},{"p":"payloadlogbookdomain","v":"cover","vt":"str"},{"p":"payloadlogbook","v":"Set to 100 because Sunrise + 2 Hours","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":190,"y":2060,"wires":[["ac4bc590eed045e6"]]},{"id":"360c305641dcd073","type":"api-call-service","z":"da8e8fcaab62edd9","name":"Logbook moustache template Entity","server":"3a95bff3.8b691","version":5,"debugenabled":false,"domain":"logbook","service":"log","areaId":[],"deviceId":[],"entityId":["{{payloadlogbookentity}}"],"data":"{\"message\":payloadlogbook,\"domain\":payloadlogbookdomain}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":480,"y":2120,"wires":[[]]},{"id":"6a7576aeb653bdfa","type":"inject","z":"da8e8fcaab62edd9","name":"","props":[{"p":"payloadlogbookentity","v":"cover.guest_room_left_window_shade_cover","vt":"str"},{"p":"payloadlogbookdomain","v":"cover","vt":"str"},{"p":"payloadlogbook","v":"Set to 100 because Sunrise + 2 Hours","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":190,"y":2120,"wires":[["360c305641dcd073"]]},{"id":"e92b342fb8dc7c6a","type":"api-call-service","z":"da8e8fcaab62edd9","name":"Logbook Manually Set","server":"3a95bff3.8b691","version":5,"debugenabled":false,"domain":"logbook","service":"log","areaId":[],"deviceId":[],"entityId":["cover.guest_room_left_window_shade_cover"],"data":"{\"message\":\"Test\"}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":440,"y":2000,"wires":[[]]},{"id":"2b717a19277d3860","type":"inject","z":"da8e8fcaab62edd9","name":"","props":[{"p":"payloadlogbookdomain","v":"cover","vt":"str"},{"p":"payloadlogbook","v":"Set to 100 because Sunrise + 2 Hours","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":190,"y":2000,"wires":[["e92b342fb8dc7c6a"]]},{"id":"4b5dc6625ac9aae2","type":"catch","z":"da8e8fcaab62edd9","name":"","scope":null,"uncaught":false,"x":200,"y":2200,"wires":[["f5e8c3ce3ce352f3"]]},{"id":"f5e8c3ce3ce352f3","type":"debug","z":"da8e8fcaab62edd9","name":"debug 8","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":400,"y":2200,"wires":[]},{"id":"3a95bff3.8b691","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]

Environment Information

Version: 0.62.2 Home Assistant version: 2024.1.2 Companion version: 3.1.3 Node-RED version: 3.1.3 Docker: yes Add-on: undefined Node.js version: v18.19.0 x64 linux OS: Linux 6.1.70-haos x64

Additional context

No response

masman69 commented 10 months ago

This is larger than Calling EvoHome services. Any flow which calls Logbook which didn't pass the previously optional parm entity_id will now fail.