node-red-contrib-home-assistant-websocket icon indicating copy to clipboard operation
node-red-contrib-home-assistant-websocket copied to clipboard

events: state Home Assistant State Boolean always false

Open Noneangel opened this issue 3 weeks ago • 1 comments

Describe the bug

input_boolean.* don't work with "entity state as Home Assistant boolean": it is always mapped to false. (not tested for other entity domain)

To Reproduce

  1. create a node events: state using a configuration generated before < 0.80. using an input_boolean entity id (input_boolean.heating in this example).
  2. map payload to "entity state as Home Assistant boolean"
  3. change the value of input_boolean.heating using the home assistant ui (turn it on).
  4. the reported value of the node is false.

Expected behavior

"on" state should be mapped to true with "entity state as Home Assistant boolean"

Screenshots

config (old configuration, after adding "state boolean"): Image

debug value should be true Image

Example Flow

[{"id":"f1fa7690bc78f745","type":"server-state-changed","z":"1465d4a6d07024e9","name":"test","server":"e483dc6d.59eb5","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["input_boolean.heating"],"substring":[],"regex":[]},"outputInitially":false,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"ha_boolean","valueType":"entityState"}],"x":1290,"y":660,"wires":[["c3ce41696c2c7d1d"]]},{"id":"c3ce41696c2c7d1d","type":"debug","z":"1465d4a6d07024e9","name":"debug 3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1470,"y":660,"wires":[]},{"id":"e483dc6d.59eb5","type":"server","name":"Home Assistant","addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":["y","yes","on","true","home","open"],"connectionDelay":false,"cacheJson":false,"heartbeat":false,"heartbeatInterval":"","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":":","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m:s","enableGlobalContextStore":false},{"id":"fd967a082084899a","type":"global-config","env":[],"modules":{"node-red-contrib-home-assistant-websocket":"0.80.3"}}]

Environment Information

Version: 0.80.3

Home Assistant instances: 2 Server: e483dc6d.59eb5 Home Assistant version: 2025.11.2 Companion version: 4.1.3 Server: 37ccf82afc6cf035 Home Assistant version: 2025.11.2 Companion version: 4.1.3

Node-RED version: 4.1.1 Docker: yes Add-on: no

Node.js version: v20.19.5 x64 linux OS: Linux 6.12.48+deb13-amd64 x64

Additional context

I use an old "home assistant" configuration in Node red (it has been here for multiple version).

If I use a newly "home assistant configuration", it is correctly mapped to true.

Side note: in the old config, I had to add all the default value to "State boolean" (it was empty).

Exported old configuration:

{
    "addon": false,
    "areaSelector": "friendlyName",
    "cacheJson": false,
    "connectionDelay": false,
    "deviceSelector": "friendlyName",
    "enableGlobalContextStore": false,
    "entitySelector": "friendlyName",
    "ha_boolean": [
        "y",
        "yes",
        "on",
        "true",
        "home",
        "open"
    ],
    "heartbeat": false,
    "heartbeatInterval": "",
    "id": "e483dc6d.59eb5",
    "name": "Home Assistant",
    "rejectUnauthorizedCerts": true,
    "statusDay": "numeric",
    "statusHourCycle": "h23",
    "statusMonth": "short",
    "statusSeparator": ":",
    "statusTimeFormat": "h:m:s",
    "statusYear": "hidden",
    "type": "server"
}

Exported new configuration:

{
    "addon": false,
    "areaSelector": "friendlyName",
    "cacheJson": true,
    "connectionDelay": true,
    "deviceSelector": "friendlyName",
    "enableGlobalContextStore": false,
    "entitySelector": "friendlyName",
    "ha_boolean": [
        "y",
        "yes",
        "true",
        "on",
        "home",
        "open"
    ],
    "heartbeat": false,
    "heartbeatInterval": 30,
    "id": "37ccf82afc6cf035",
    "name": "Home Assistant new",
    "rejectUnauthorizedCerts": true,
    "statusDay": "numeric",
    "statusHourCycle": "default",
    "statusMonth": "short",
    "statusSeparator": ": ",
    "statusTimeFormat": "h:m",
    "statusYear": "hidden",
    "type": "server",
    "version": 6
}

Noneangel avatar Nov 21 '25 09:11 Noneangel