Never mind. I found the issue, this works as expected isRuleEnabled('rule-mj4xiyr8') where the rule id needs to be quoted with ' or ".
Not obvious in the docs, my bad for not testing that first.
Crille
Posts
-
[Solved] function isRuleEnabled() issue -
[Solved] function isRuleEnabled() issue -
[Solved] function isRuleEnabled() issueEdit: Rule id needs to be quoted, e.g. isRuleEnabled( 'rule_id' )
Bare metal 25325.
I'm getting
nullin both global and local expressions for the functionisRuleEnabled(). It doesn't matter if the rule is enabled or disabled. Let me know if you can't replicate and need logs at higher level or I'm doing something wrong.[latest-25325]2026-01-12T14:15:04.773Z <Rule:INFO> Laddning - Lastbalansering (rule-lj5kfvi6 in Funktioner) starting rule state evaluation; because timer-trigger Timer#rule-lj5kfvi6 [latest-25325]2026-01-12T14:15:07.348Z <Rule:NOTICE> rule-mkb8uytt (rule-mkb8uytt in Funktioner) configuration changed; reloading [latest-25325]2026-01-12T14:15:07.349Z <Engine:INFO> Engine#1 rule Rule#rule-mkb8uytt changed; reloading and restarting it [latest-25325]2026-01-12T14:15:07.349Z <Rule:NOTICE> rule-mkb8uytt (rule-mkb8uytt in Funktioner) stopping [latest-25325]2026-01-12T14:15:07.350Z <Rule:NOTICE> rule-mkb8uytt (rule-mkb8uytt in Funktioner) stopped [latest-25325]2026-01-12T14:15:07.350Z <Rule:NOTICE> rule-mkb8uytt (rule-mkb8uytt in Funktioner) starting [latest-25325]2026-01-12T14:15:07.350Z <Rule:NOTICE> rule-mkb8uytt (rule-mkb8uytt in Funktioner) can't start -- rule is disabled [latest-25325]2026-01-12T14:15:09.589Z <Rule:INFO> Ljusstyrka - Baksida (rule-kz3ygi32 in Ljusstyrka) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>baksida [latest-25325]2026-01-12T14:15:09.772Z <Rule:INFO> Laddning - Lastbalansering (rule-lj5kfvi6 in Funktioner) starting rule state evaluation; because expression-state-changed GlobalExpression#chargeAmps [latest-25325]2026-01-12T14:15:09.773Z <Rule:INFO> Laddning - Återstarta om stoppad av lastbalansering (rule-m3yhrbvs in Funktioner) starting rule state evaluation; because expression-state-changed GlobalExpression#chargeAmps [latest-25325]2026-01-12T14:15:09.787Z <Rule:INFO> Laddning - Lastbalansering (rule-lj5kfvi6 in Funktioner) starting rule state evaluation; because timer-trigger Timer#rule-lj5kfvi6 [latest-25325]2026-01-12T14:15:10.024Z <Rule:INFO> Laddning - Ladda bil (rule-mgb4e7bl in Funktioner) starting rule state evaluation; because timer-trigger Timer#rule-mgb4e7bl [latest-25325]2026-01-12T14:15:10.025Z <Rule:INFO> Rule#rule-mgb4e7bl local values has_local_deps false has_object_deps true need_eval false [latest-25325]2026-01-12T14:15:10.025Z <Rule:INFO> Rule#rule-mgb4e7bl local title has_local_deps false has_object_deps true need_eval false [latest-25325]2026-01-12T14:15:10.025Z <Rule:INFO> Rule#rule-mgb4e7bl local text has_local_deps false has_object_deps true need_eval false [latest-25325]2026-01-12T14:15:10.025Z <Rule:INFO> Rule#rule-mgb4e7bl local chargingTime has_local_deps true has_object_deps false need_eval true [latest-25325]2026-01-12T14:15:10.025Z <Rule:INFO> Rule#rule-mgb4e7bl evaluating eligible local chargingTime [latest-25325]2026-01-12T14:15:10.025Z <Rule:INFO> Rule#rule-mgb4e7bl local currentValues has_local_deps true has_object_deps false need_eval true [latest-25325]2026-01-12T14:15:10.025Z <Rule:INFO> Rule#rule-mgb4e7bl evaluating eligible local currentValues [latest-25325]2026-01-12T14:15:10.746Z <Rule:INFO> Ljusstyrka - Badrummet (rule-m23jno54 in Ljusstyrka) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>badrummet [latest-25325]2026-01-12T14:15:10.983Z <Rule:NOTICE> rule-mkb8uytt (rule-mkb8uytt in Funktioner) configuration changed; reloading [latest-25325]2026-01-12T14:15:10.984Z <Engine:INFO> Engine#1 rule Rule#rule-mkb8uytt changed; reloading and restarting it [latest-25325]2026-01-12T14:15:10.984Z <Rule:NOTICE> rule-mkb8uytt (rule-mkb8uytt in Funktioner) stopping [latest-25325]2026-01-12T14:15:10.985Z <Rule:NOTICE> rule-mkb8uytt (rule-mkb8uytt in Funktioner) stopped [latest-25325]2026-01-12T14:15:10.985Z <Rule:NOTICE> rule-mkb8uytt (rule-mkb8uytt in Funktioner) starting [latest-25325]2026-01-12T14:15:10.986Z <Rule:INFO> rule-mkb8uytt (rule-mkb8uytt in Funktioner) starting rule state evaluation; because startup [latest-25325]2026-01-12T14:15:10.986Z <Rule:INFO> Rule#rule-mkb8uytt initializing expressions: stage one - compile and dependency scan [latest-25325]2026-01-12T14:15:10.987Z <Rule:INFO> Rule#rule-mkb8uytt initializing expressions: stage two - topological sort [latest-25325]2026-01-12T14:15:10.987Z <Rule:INFO> Rule#rule-mkb8uytt initializing expressions: stage three - startup evaluation [latest-25325]2026-01-12T14:15:10.987Z <Rule:INFO> Rule#rule-mkb8uytt evaluating eligible local test [latest-25325]2026-01-12T14:15:10.989Z <Rule:INFO> rule-mkb8uytt (rule-mkb8uytt in Funktioner) started [latest-25325]2026-01-12T14:15:14.787Z <Rule:INFO> Laddning - Lastbalansering (rule-lj5kfvi6 in Funktioner) starting rule state evaluation; because timer-trigger Timer#rule-lj5kfvi6 [latest-25325]2026-01-12T14:15:15.026Z <Rule:INFO> Varmvattenberedare (rule-mgffrozr in Funktioner) starting rule state evaluation; because timer-trigger Timer#rule-mgffrozr -
Logic Assistance: Exterior Lights on when Illuminance Below Threshold@CatmanV2 This is from my hallway and the sensor is placed near a light source so the level goes up when lights are on. This is to handle cloudy days and the hallway is a bit dark and needs artificial light but when the sun finds its way in, the lights turn off.
-
Logic Assistance: Exterior Lights on when Illuminance Below ThresholdI have a local variable as trigger for cases like this. When
lightsOnistruethe rule sets.
lightsOn =do lux = getEntity( "mosquitto-mqtt>rorelse_hallen" ).attributes.light_sensor.value, lights = getEntity( "mosquitto-mqtt>hallen1" ).attributes.power_switch.state, case when lux <= 17 : bool(true) when lights and lux >= 18 and lux <= 25 : bool(true) else bool(false) end done -
MQTT templates for ZIgbee scene controller, or a better way?You may take a look at the Reactor docs for Handling Home Assistant Events or build/modify your own MQTT template where you need to map all published actions to standard actions e.g.
1_singletosingle. -
[Solved] Local expression in Rule does not evaluate as they used to doSuper, it now behaves as expected. Once again thank you!
-
[Solved] Local expression in Rule does not evaluate as they used to doNo change after restart, files uploaded.
-
[Solved] Local expression in Rule does not evaluate as they used to doEdit: Solved in 25323.
I experience some issues since local expressions changed behavior in some previous build.
I've set up a test rule to verify my suspicions.
Previously this worked, when Reactor uptime changed all local expressions were evaluated but now only timeNowis updated andtriggerNowdoes not change (even though it is dependent ontimeNow), so the Rule never sets.
I can work around the issue bygetEntity(...uptime)intriggerNow, then the expression is evaluated and changes totrueand the rule sets.Log from different test time:
[latest-25321]2025-11-18T14:16:44.026Z <Rule:INFO> TEST - time in expression as trigger (rule-mi4ldhta in Funktioner) started [latest-25321]2025-11-18T14:17:33.345Z <Rule:INFO> TEST - time in expression as trigger (rule-mi4ldhta in Funktioner) starting rule state evaluation; because entity-changed System#reactor_system>system [latest-25321]2025-11-18T14:17:33.345Z <Rule:INFO> Rule#rule-mi4ldhta local triggerNow is a dependency of another variable [latest-25321]2025-11-18T14:17:33.348Z <Rule:INFO> TEST - time in expression as trigger (rule-mi4ldhta in Funktioner) starting rule state evaluation; because entity-changed System#reactor_system>system [latest-25321]2025-11-18T14:17:33.348Z <Rule:INFO> Rule#rule-mi4ldhta local triggerNow is a dependency of another variable [latest-25321]2025-11-18T14:17:33.350Z <Rule:INFO> TEST - time in expression as trigger (rule-mi4ldhta in Funktioner) starting rule state evaluation; because entity-changed System#reactor_system>system [latest-25321]2025-11-18T14:17:33.350Z <Rule:INFO> Rule#rule-mi4ldhta local triggerNow is a dependency of another variable [latest-25321]2025-11-18T14:17:33.354Z <Rule:INFO> TEST - time in expression as trigger (rule-mi4ldhta in Funktioner) starting rule state evaluation; because entity-changed System#reactor_system>system [latest-25321]2025-11-18T14:17:33.355Z <Rule:INFO> Rule#rule-mi4ldhta local triggerNow is a dependency of another variable [latest-25321]2025-11-18T14:17:38.345Z <Rule:INFO> TEST - time in expression as trigger (rule-mi4ldhta in Funktioner) starting rule state evaluation; because timer-trigger Timer#rule-mi4ldhta [latest-25321]2025-11-18T14:17:38.345Z <Rule:INFO> Rule#rule-mi4ldhta local triggerNow is a dependency of another variableIs this the expected behavior?
Bare metal, latest-25321
-
Home Assistant 2025.11.2 and latest-25315Yes, solved. Thank you! Next time I will remember to do a manual backup of HASS before upgrading

-
Home Assistant 2025.11.2 and latest-25315Heads up!
It might be just my system or it might be a good idea to wait for HASSController to bless 2025.11.2 before you update HASS.
@toggledbits can you confirm?[latest-25315]2025-11-17T14:05:05.818Z <HassController:NOTICE> HassController#hass connecting to ws://192.168.1.180:8123/api/websocket [latest-25315]2025-11-17T14:05:05.820Z <HassController:NOTICE> HassController#hass connected, starting protocol [latest-25315]2025-11-17T14:05:05.821Z <HassController:INFO> HassController#hass successful authentication with ws://192.168.1.180:8123; fetching initial data... [latest-25315]2025-11-17T14:05:05.822Z <HassController:INFO> HassController#hass HA reports version "2025.11.2" location Hem timezone Europe/Stockholm state RUNNING safe_mode false [latest-25315]2025-11-17T14:05:05.822Z <HassController:ERR> HassController#hass error while attempting config dump: [TypeError] Cannot read properties of undefined (reading 'tag') [-] [latest-25315]2025-11-17T14:05:05.823Z <HassController:ERR> HassController#hass failed to complete startup: [TypeError] Cannot read properties of undefined (reading 'tag') [-] [latest-25315]2025-11-17T14:05:05.823Z <HassController:CRIT> TypeError: Cannot read properties of undefined (reading 'tag') [-] TypeError: Cannot read properties of undefined (reading 'tag') at /home/homebridge/reactor/server/lib/AlertManager.js:141:144 at Array.findIndex (<anonymous>) at AlertManager.addAlert (/home/homebridge/reactor/server/lib/AlertManager.js:141:114) at /home/homebridge/reactor/server/lib/HassController.js:1464:367 at process.processTicksAndRejections (node:internal/process/task_queues:103:5) [latest-25315]2025-11-17T14:05:05.825Z <HassController:NOTICE> HassController#hass websocket closing, 1000 -
Reactor w/HA 2025.11 error on set_datetime service call setting only timeSounds good, thank you for your work!
-
Reactor w/HA 2025.11 error on set_datetime service call setting only time -
There is an alternative to homebridge-mqttthingJust throwing out a general hint to the people running Homebridge and MQTT.
Homebridge MQTT-Thing hasn't been updated in almost 2 years and it falls behind on compatibility with the development of Homebridge.
I was looking for a replacement and found Homebridge Easy MQTT and I think it's a good replacement for MQTT-Thing. I particularly find Easy MQTT
Value tranformerseasier to to understand and use compared to MQTT-ThingApplyfunction.It took a while to migrate everything but I'm pleased and can recommend.
-
Reactor w/HA 2025.11 error on set_datetime service call setting only time@toggledbits Do you know if this is related to that PR or is it a change they made in 2025.11.1?
[latest-25310]2025-11-11T13:16:24.319Z <HassController:INFO> HassController#hass perform x_hass_input_datetime.set_datetime on Entity#hass>input_datetime_vvb_dag with { "time": "10:45" } [latest-25310]2025-11-11T13:16:24.320Z <HassController:INFO> HassController#hass: sending payload for x_hass_input_datetime.set_datetime on Entity#hass>input_datetime_vvb_dag action: { "type": "call_service", "service_data": { "date": (null), "time": "10:45", "datetime": (null), "timestamp": (null) }, "domain": "input_datetime", "service": "set_datetime", "target": { "entity_id": "input_datetime.vvb_dag" } } [latest-25310]2025-11-11T13:16:24.321Z <HassController:ERR> HassController#hass request 1762866984320<2025-11-11 14:16:24> (call_service) failed: [Error] Not a parseable type for dictionary value @ data['date'] [-] [latest-25310]2025-11-11T13:16:24.321Z <HassController:WARN> HassController#hass action x_hass_input_datetime.set_datetime({ "time": "10:45" }) on Entity#hass>input_datetime_vvb_dag failed! [latest-25310]2025-11-11T13:16:24.321Z <HassController:INFO> Service call payload: {"type":"call_service","service_data":{"date":null,"time":"10:45","datetime":null,"timestamp":null},"domain":"input_datetime","service":"set_datetime","target":{"entity_id":"input_datetime.vvb_dag"},"id":1762866984320} [latest-25310]2025-11-11T13:16:24.322Z <HassController:INFO> Service data: {"fields":{"date":{"example":"\"2019-04-20\"","selector":{"text":{"multiline":false,"multiple":false}}},"time":{"example":"\"05:04:20\"","selector":{"time":{}}},"datetime":{"example":"\"2019-04-20 05:04:20\"","selector":{"text":{"multiline":false,"multiple":false}}},"timestamp":{"selector":{"number":{"min":0,"max":9223372036854776000,"mode":"box","step":1}}}},"target":{"entity":[{"domain":["input_datetime"]}]}} [latest-25310]2025-11-11T13:16:24.322Z <Engine:ERR> Engine#1 reaction rule-mgb8pfhs:S step 0 perform x_hass_input_datetime.set_datetime failed: [Error] Not a parseable type for dictionary value @ data['date'] [-] [latest-25310]2025-11-11T13:16:24.322Z <Engine:INFO> Engine#1 action args: { "time": "10:45" } [latest-25310]2025-11-11T13:16:24.322Z <Engine:INFO> Resuming reaction Sätt Schema VVB i Home Assistant<AKTIV> (rule-mgb8pfhs:S) from step 1 [latest-25310]2025-11-11T13:16:24.323Z <HassController:INFO> HassController#hass perform x_hass_input_datetime.set_datetime on Entity#hass>input_datetime_vvb_natt with { "time": "03:00", "timestamp": 0 } [latest-25310]2025-11-11T13:16:24.323Z <HassController:INFO> HassController#hass: sending payload for x_hass_input_datetime.set_datetime on Entity#hass>input_datetime_vvb_natt action: { "type": "call_service", "service_data": { "date": (null), "time": "03:00", "datetime": (null), "timestamp": 0 }, "domain": "input_datetime", "service": "set_datetime", "target": { "entity_id": "input_datetime.vvb_natt" } } [latest-25310]2025-11-11T13:16:24.324Z <HassController:ERR> HassController#hass request 1762866984323<2025-11-11 14:16:24> (call_service) failed: [Error] Not a parseable type for dictionary value @ data['date'] [-] [latest-25310]2025-11-11T13:16:24.324Z <HassController:WARN> HassController#hass action x_hass_input_datetime.set_datetime({ "time": "03:00", "timestamp": 0 }) on Entity#hass>input_datetime_vvb_natt failed! [latest-25310]2025-11-11T13:16:24.324Z <HassController:INFO> Service call payload: {"type":"call_service","service_data":{"date":null,"time":"03:00","datetime":null,"timestamp":0},"domain":"input_datetime","service":"set_datetime","target":{"entity_id":"input_datetime.vvb_natt"},"id":1762866984323} [latest-25310]2025-11-11T13:16:24.324Z <HassController:INFO> Service data: {"fields":{"date":{"example":"\"2019-04-20\"","selector":{"text":{"multiline":false,"multiple":false}}},"time":{"example":"\"05:04:20\"","selector":{"time":{}}},"datetime":{"example":"\"2019-04-20 05:04:20\"","selector":{"text":{"multiline":false,"multiple":false}}},"timestamp":{"selector":{"number":{"min":0,"max":9223372036854776000,"mode":"box","step":1}}}},"target":{"entity":[{"domain":["input_datetime"]}]}} [latest-25310]2025-11-11T13:16:24.324Z <Engine:ERR> Engine#1 reaction rule-mgb8pfhs:S step 1 perform x_hass_input_datetime.set_datetime failed: [Error] Not a parseable type for dictionary value @ data['date'] [-] [latest-25310]2025-11-11T13:16:24.324Z <Engine:INFO> Engine#1 action args: { "time": "03:00", "timestamp": 0 } [latest-25310]2025-11-11T13:16:24.325Z <Engine:INFO> Resuming reaction Sätt Schema VVB i Home Assistant<AKTIV> (rule-mgb8pfhs:S) from step 2 [latest-25310]2025-11-11T13:16:24.325Z <Engine:INFO> Sätt Schema VVB i Home Assistant<AKTIV> all actions completed. -
[Solved] alarm() in global expression throws error in log.Yes sir, your magic has worked for sure!
No more errors, thank you very much. -
[Solved] alarm() in global expression throws error in log.New variable, another entity but same error with
alarm()
There must be something off in my system then.[latest-25310]2025-11-07T17:14:14.037Z <Engine:NOTICE> Engine#1 creating global expression neverusedbeforevariable [latest-25310]2025-11-07T17:14:14.039Z <Engine:CRIT> Engine#1 alarm() scheduled neverusedbeforevariable tick for 1762535669039<2025-11-07 18:14:29> = now 1762535654039<2025-11-07 18:14:14> + delay 15000 [latest-25310]2025-11-07T17:14:22.195Z <Engine:ERR> Engine#1: error evaluating expression neverusedbeforevariable: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T17:14:22.195Z <Engine:ERR> Engine#1: expression: alarm(15), getEntity( "vera>device_56" ).attributes.x_vera_svc_micasaverde_com_EnergyMetering1.momentary_active_import [latest-25310]2025-11-07T17:14:22.195Z <Engine:CRIT> ReferenceError: alarm() can only be used in global expressions [-] ReferenceError: alarm() can only be used in global expressions at /home/homebridge/reactor/server/lib/Engine.js:1455:23 at _run (/home/homebridge/reactor/common/lexp.js:1704:34) at /home/homebridge/reactor/common/lexp.js:1426:29 at Array.forEach (<anonymous>) at _run (/home/homebridge/reactor/common/lexp.js:1425:28) at Object.run (/home/homebridge/reactor/common/lexp.js:1855:24) at Engine._eval_expr (/home/homebridge/reactor/server/lib/Engine.js:1170:141) at Engine._expr_dependency (/home/homebridge/reactor/server/lib/Engine.js:1555:82) at /home/homebridge/reactor/server/lib/MessageBus.js:114:195 at Array.forEach (<anonymous>) [latest-25310]2025-11-07T17:14:27.526Z <Rule:INFO> Notifiering - Auto off laddning poolrobot (rule-md7japbd in Notifieringar) starting rule state evaluation; because entity-changed Switch#mosquitto-mqtt>laddning_poolrobot [latest-25310]2025-11-07T17:14:29.039Z <Engine:CRIT> Engine#1 neverusedbeforevariable alarm() tick [latest-25310]2025-11-07T17:14:29.039Z <Engine:CRIT> Engine#1 alarm() scheduled neverusedbeforevariable tick for 1762535684039<2025-11-07 18:14:44> = now 1762535669039<2025-11-07 18:14:29> + delay 15000 [latest-25310]2025-11-07T17:14:30.681Z <Engine:ERR> Engine#1: error evaluating expression neverusedbeforevariable: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T17:14:30.681Z <Engine:ERR> Engine#1: expression: alarm(15), getEntity( "vera>device_56" ).attributes.x_vera_svc_micasaverde_com_EnergyMetering1.momentary_active_import [latest-25310]2025-11-07T17:14:30.681Z <Engine:CRIT> ReferenceError: alarm() can only be used in global expressions [-] ReferenceError: alarm() can only be used in global expressions at /home/homebridge/reactor/server/lib/Engine.js:1455:23 at _run (/home/homebridge/reactor/common/lexp.js:1704:34) at /home/homebridge/reactor/common/lexp.js:1426:29 at Array.forEach (<anonymous>) at _run (/home/homebridge/reactor/common/lexp.js:1425:28) at Object.run (/home/homebridge/reactor/common/lexp.js:1855:24) at Engine._eval_expr (/home/homebridge/reactor/server/lib/Engine.js:1170:141) at Engine._expr_dependency (/home/homebridge/reactor/server/lib/Engine.js:1555:82) at /home/homebridge/reactor/server/lib/MessageBus.js:114:195 at Array.forEach (<anonymous>) -
[Solved] alarm() in global expression throws error in log.Sorry but no
-
[Solved] alarm() in global expression throws error in log.Nowhere, strictly to test the function before I put it in production











