[Solved] alarm() in global expression throws error in log.
-
OK. I respun buld 25310. Pull the new zip and give it another go.
-
You're fast! It's now behaving as expected (even though it's logged as CRIT? but that's your court so you set the rules
)[latest-25310]2025-11-06T19:44:05.638Z <Engine:CRIT> Engine#1 alarmTest alarm() tick 5000ms [latest-25310]2025-11-06T19:44:05.638Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762458250638<2025-11-06 20:44:10> = now 1762458245638<2025-11-06 20:44:05> + delay 5000 [latest-25310]2025-11-06T19:44:10.639Z <Engine:CRIT> Engine#1 alarmTest alarm() tick 5000ms [latest-25310]2025-11-06T19:44:10.639Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762458255639<2025-11-06 20:44:15> = now 1762458250639<2025-11-06 20:44:10> + delay 5000 [latest-25310]2025-11-06T19:44:15.641Z <Engine:CRIT> Engine#1 alarmTest alarm() tick 5000ms [latest-25310]2025-11-06T19:44:15.642Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762458260642<2025-11-06 20:44:20> = now 1762458255642<2025-11-06 20:44:15> + delay 5000 -
Just debug elevated. Next build it will be quiet.
-
I'm still having some (other) issues...
First a question, isdo...donein a Global expression considered out of scope to the function? because whenalarm()is put in the statement block it shows error. Whenalarm()is put before the statement block it seems to be working a bit inconsistent, probably related to the observations further down.

Another issue. I cleared the alarmTest, restarted Reactor, hard refreshed browser and put
alarm(5), getEntity( "reactor_system>system" ).attributes.reactor_system.reactor_uptimeAll good and now there's no error (and no statement block) but when I changed
alarm(5)toalarm(10)and saved, on first tick, an error is logged and a minor misleading tick at 5000ms lingers but the + delay says 10000ms as expected. This error happens every time I change anything in the expression.[latest-25310]2025-11-07T09:15:54.492Z <Engine:CRIT> Engine#1 alarmTest alarm() tick 5000ms [latest-25310]2025-11-07T09:15:54.492Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762506964492<2025-11-07 10:16:04> = now 1762506954492<2025-11-07 10:15:54> + delay 10000 [latest-25310]2025-11-07T09:15:55.349Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T09:15:55.349Z <Engine:ERR> Engine#1: expression: alarm(10), getEntity( "reactor_system>system" ).attributes.reactor_system.reactor_uptime [latest-25310]2025-11-07T09:15:55.349Z <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:1435: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:1156:165) at Engine._expr_dependency (/home/homebridge/reactor/server/lib/Engine.js:1529:96) at /home/homebridge/reactor/server/lib/MessageBus.js:57:289 at Array.forEach (<anonymous>) [latest-25310]2025-11-07T09:16:04.494Z <Engine:CRIT> Engine#1 alarmTest alarm() tick 5000ms [latest-25310]2025-11-07T09:16:04.495Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762506974494<2025-11-07 10:16:14> = now 1762506964494<2025-11-07 10:16:04> + delay 10000 [latest-25310]2025-11-07T09:16:14.495Z <Engine:CRIT> Engine#1 alarmTest alarm() tick 5000msTrying this, an entity that is updating faster than the tick. The GUI is flapping between error and OK value and the log goes crazy

[latest-25310]2025-11-07T10:01:36.227Z <Engine:CRIT> Engine#1 alarmTest alarm() tick 5000ms [latest-25310]2025-11-07T10:01:36.227Z <Engine:CRIT> Engine#1 alarm(0) -- cancelling alarmTest timer [latest-25310]2025-11-07T10:01:36.227Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762509711227<2025-11-07 11:01:51> = now 1762509696227<2025-11-07 11:01:36> + delay 15000 [latest-25310]2025-11-07T10:01:41.200Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T10:01:41.200Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15), getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value [latest-25310]2025-11-07T10:01:41.200Z <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:1435: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:1156:165) at Engine._expr_dependency (/home/homebridge/reactor/server/lib/Engine.js:1529:96) at /home/homebridge/reactor/server/lib/MessageBus.js:57:289 at Array.forEach (<anonymous>) [latest-25310]2025-11-07T10:01:41.206Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T10:01:41.206Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15), getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value [latest-25310]2025-11-07T10:01:41.206Z <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:1435: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:1156:165) at Engine._expr_dependency (/home/homebridge/reactor/server/lib/Engine.js:1529:96) at /home/homebridge/reactor/server/lib/MessageBus.js:57:289 at Array.forEach (<anonymous>) [latest-25310]2025-11-07T10:01:41.209Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T10:01:41.209Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15), getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value [latest-25310]2025-11-07T10:01:41.209Z <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:1435: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:1156:165) at Engine._expr_dependency (/home/homebridge/reactor/server/lib/Engine.js:1529:96) at /home/homebridge/reactor/server/lib/MessageBus.js:57:289 at Array.forEach (<anonymous>) [latest-25310]2025-11-07T10:01:41.212Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T10:01:41.212Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15), getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value [latest-25310]2025-11-07T10:01:41.212Z <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:1435: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:1156:165) at Engine._expr_dependency (/home/homebridge/reactor/server/lib/Engine.js:1529:96) at /home/homebridge/reactor/server/lib/MessageBus.js:57:289 at Array.forEach (<anonymous>) [latest-25310]2025-11-07T10:01:41.215Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T10:01:41.215Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15), getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value [latest-25310]2025-11-07T10:01:41.215Z <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:1435: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:1156:165) at Engine._expr_dependency (/home/homebridge/reactor/server/lib/Engine.js:1529:96) at /home/homebridge/reactor/server/lib/MessageBus.js:57:289 at Array.forEach (<anonymous>) [latest-25310]2025-11-07T10:01:41.217Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T10:01:41.217Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15), getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value [latest-25310]2025-11-07T10:01:41.218Z <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:1435: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:1156:165) at Engine._expr_dependency (/home/homebridge/reactor/server/lib/Engine.js:1529:96) at /home/homebridge/reactor/server/lib/MessageBus.js:57:289 at Array.forEach (<anonymous>) [latest-25310]2025-11-07T10:01:41.220Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T10:01:41.220Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15), getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value [latest-25310]2025-11-07T10:01:41.220Z <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:1435: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:1156:165) at Engine._expr_dependency (/home/homebridge/reactor/server/lib/Engine.js:1529:96) at /home/homebridge/reactor/server/lib/MessageBus.js:57:289 at Array.forEach (<anonymous>) [latest-25310]2025-11-07T10:01:41.223Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T10:01:41.223Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15), getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value [latest-25310]2025-11-07T10:01:41.223Z <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:1435: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:1156:165) at Engine._expr_dependency (/home/homebridge/reactor/server/lib/Engine.js:1529:96) at /home/homebridge/reactor/server/lib/MessageBus.js:57:289 at Array.forEach (<anonymous>) [latest-25310]2025-11-07T10:01:41.230Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T10:01:41.230Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15), getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value [latest-25310]2025-11-07T10:01:41.230Z <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:1435: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:1156:165) at Engine._expr_dependency (/home/homebridge/reactor/server/lib/Engine.js:1529:96) at /home/homebridge/reactor/server/lib/MessageBus.js:57:289 at Array.forEach (<anonymous>) [latest-25310]2025-11-07T10:01:41.233Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T10:01:41.233Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15), getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value [latest-25310]2025-11-07T10:01:41.233Z <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:1435: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:1156:165) at Engine._expr_dependency (/home/homebridge/reactor/server/lib/Engine.js:1529:96) at /home/homebridge/reactor/server/lib/MessageBus.js:57:289 at Array.forEach (<anonymous>)(Bare Metal, latest-25310-dc2bb580)
-
Respun again. Give it a try.
-
Testing with
alarm(0), alarm(15), getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.valueSame behavior in GUI, log:
[latest-25310]2025-11-07T14:32:20.950Z <Engine:NOTICE> Engine#1 expression alarmTest has changed [latest-25310]2025-11-07T14:32:20.951Z <Engine:CRIT> Engine#1 alarm(0) -- cancelling alarmTest timer [latest-25310]2025-11-07T14:32:20.951Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762525955951<2025-11-07 15:32:35> = now 1762525940951<2025-11-07 15:32:20> + delay 15000 [latest-25310]2025-11-07T14:32:21.782Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T14:32:21.782Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15),getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value [latest-25310]2025-11-07T14:32:21.783Z <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-07T14:32:21.791Z <Engine:CRIT> Engine#1 alarm(0) -- cancelling alarmTest timer [latest-25310]2025-11-07T14:32:21.791Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762525956791<2025-11-07 15:32:36> = now 1762525941791<2025-11-07 15:32:21> + delay 15000 [latest-25310]2025-11-07T14:32:21.796Z <Engine:CRIT> Engine#1 alarm(0) -- cancelling alarmTest timer [latest-25310]2025-11-07T14:32:21.796Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762525956796<2025-11-07 15:32:36> = now 1762525941796<2025-11-07 15:32:21> + delay 15000 [latest-25310]2025-11-07T14:32:21.801Z <Engine:CRIT> Engine#1 alarm(0) -- cancelling alarmTest timer [latest-25310]2025-11-07T14:32:21.801Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762525956801<2025-11-07 15:32:36> = now 1762525941801<2025-11-07 15:32:21> + delay 15000 [latest-25310]2025-11-07T14:32:21.803Z <Engine:CRIT> Engine#1 alarm(0) -- cancelling alarmTest timer [latest-25310]2025-11-07T14:32:21.803Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762525956803<2025-11-07 15:32:36> = now 1762525941803<2025-11-07 15:32:21> + delay 15000 [latest-25310]2025-11-07T14:32:21.805Z <Engine:CRIT> Engine#1 alarm(0) -- cancelling alarmTest timer [latest-25310]2025-11-07T14:32:21.806Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762525956806<2025-11-07 15:32:36> = now 1762525941806<2025-11-07 15:32:21> + delay 15000 [latest-25310]2025-11-07T14:32:21.812Z <Engine:CRIT> Engine#1 alarm(0) -- cancelling alarmTest timer [latest-25310]2025-11-07T14:32:21.812Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762525956812<2025-11-07 15:32:36> = now 1762525941812<2025-11-07 15:32:21> + delay 15000 [latest-25310]2025-11-07T14:32:21.815Z <Engine:CRIT> Engine#1 alarm(0) -- cancelling alarmTest timer [latest-25310]2025-11-07T14:32:21.815Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762525956815<2025-11-07 15:32:36> = now 1762525941815<2025-11-07 15:32:21> + delay 15000 [latest-25310]2025-11-07T14:32:25.543Z <Rule:INFO> Luftrenare Sovrum (rule-lu9y668n in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:25.544Z <Rule:INFO> LV pump värme - Övervåningen (rule-lb10thf8 in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:25.544Z <Rule:INFO> Rule#rule-lb10thf8 local temp has object dependency [latest-25310]2025-11-07T14:32:25.835Z <Rule:INFO> Luftrenare Sovrum (rule-lu9y668n in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:25.836Z <Rule:INFO> LV pump värme - Övervåningen (rule-lb10thf8 in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:25.836Z <Rule:INFO> Rule#rule-lb10thf8 local temp has object dependency [latest-25310]2025-11-07T14:32:25.995Z <Rule:INFO> Luftrenare Sovrum (rule-lu9y668n in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:25.996Z <Rule:INFO> LV pump värme - Övervåningen (rule-lb10thf8 in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:25.996Z <Rule:INFO> Rule#rule-lb10thf8 local temp has object dependency [latest-25310]2025-11-07T14:32:26.338Z <Rule:INFO> Luftrenare Sovrum (rule-lu9y668n in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:26.339Z <Rule:INFO> LV pump värme - Övervåningen (rule-lb10thf8 in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:26.339Z <Rule:INFO> Rule#rule-lb10thf8 local temp has object dependency [latest-25310]2025-11-07T14:32:26.469Z <Rule:INFO> Luftrenare Sovrum (rule-lu9y668n in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:26.469Z <Rule:INFO> LV pump värme - Övervåningen (rule-lb10thf8 in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:26.469Z <Rule:INFO> Rule#rule-lb10thf8 local temp has object dependency [latest-25310]2025-11-07T14:32:26.882Z <Rule:INFO> Luftrenare Sovrum (rule-lu9y668n in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:26.883Z <Rule:INFO> LV pump värme - Övervåningen (rule-lb10thf8 in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:26.883Z <Rule:INFO> Rule#rule-lb10thf8 local temp has object dependency [latest-25310]2025-11-07T14:32:26.970Z <Rule:INFO> Luftrenare Sovrum (rule-lu9y668n in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:26.970Z <Rule:INFO> LV pump värme - Övervåningen (rule-lb10thf8 in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:26.970Z <Rule:INFO> Rule#rule-lb10thf8 local temp has object dependency [latest-25310]2025-11-07T14:32:27.400Z <Rule:INFO> Luftrenare Sovrum (rule-lu9y668n in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:27.400Z <Rule:INFO> LV pump värme - Övervåningen (rule-lb10thf8 in Funktioner) starting rule state evaluation; because entity-changed Entity#mosquitto-mqtt>sovrumsdorr [latest-25310]2025-11-07T14:32:27.401Z <Rule:INFO> Rule#rule-lb10thf8 local temp has object dependency [latest-25310]2025-11-07T14:32:29.986Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T14:32:29.986Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15),getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value [latest-25310]2025-11-07T14:32:29.987Z <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-07T14:32:31.727Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T14:32:31.727Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15),getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value [latest-25310]2025-11-07T14:32:31.727Z <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-07T14:32:31.735Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T14:32:31.735Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15),getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value [latest-25310]2025-11-07T14:32:31.735Z <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-07T14:32:31.738Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T14:32:31.738Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15),getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value -
Can you show me an alarm tick message?
-
Yes, if I lower the tick to 2000ms it's logged (different from before)
[latest-25310]2025-11-07T14:42:21.833Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762526543833<2025-11-07 15:42:23> = now 1762526541833<2025-11-07 15:42:21> + delay 2000 [latest-25310]2025-11-07T14:42:23.833Z <Engine:CRIT> Engine#1 alarmTest alarm() tick [latest-25310]2025-11-07T14:42:23.833Z <Engine:CRIT> Engine#1 alarm(0) -- cancelling alarmTest timer -
Odd. I'm not able to duplicate this, and there's a message missing from the log that I would expect to see in conjunction with the other messages. Can you re-apply the build and restart, and try again?
-
I downloaded it again, re-applied and restarted.
Changed entity to eliminate any issues with my x_mqtt entity but same behavior and this is whats logged at Engine level 4[latest-25310]2025-11-07T15:19:15.932Z <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-07T15:19:16.861Z <Engine:CRIT> Engine#1 alarmTest alarm() tick [latest-25310]2025-11-07T15:19:16.861Z <Engine:CRIT> Engine#1 alarm(0) -- cancelling alarmTest timer [latest-25310]2025-11-07T15:19:16.862Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762528771862<2025-11-07 16:19:31> = now 1762528756862<2025-11-07 16:19:16> + delay 15000 [latest-25310]2025-11-07T15:19:21.817Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T15:19:21.817Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15), getEntity( "hass>sensor_momentary_active_import" ).attributes.string_sensor.value [latest-25310]2025-11-07T15:19:21.817Z <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-07T15:19:21.823Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T15:19:21.823Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15), getEntity( "hass>sensor_momentary_active_import" ).attributes.string_sensor.value [latest-25310]2025-11-07T15:19:21.824Z <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-07T15:19:21.827Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T15:19:21.827Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15)...Tried Engine log level 5 but was to much for me to handle
I tested the same expression in a new variable but it produced the same error.
No related errors in the startup sequence of the log either. -
Can you show the log starting with "expression alarmTest has changed" (context before the error message)?
-
Yes, please reproduce. Level 4 is fine. You can also set
gvar_debug: truein theengineconfig section -- that will be verbose but a lot less verbose than level 5. -
[latest-25310]2025-11-07T16:16:41.926Z <Engine:INFO> Engine#1 expr alertElmatare result changed=false, was false now false [latest-25310]2025-11-07T16:16:41.926Z <Engine:INFO> Engine#1 evaluating global poolHeat expression do selling = getEntity( "virtual>time_series_selling" ).attributes.power_sensor.value, buying = getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value, rule = isRuleSet("rule-l3wyah83"), case when selling >= 1.8 : bool(true) when buying < 0.8 and rule : bool(true) when poolHeatTrigger == "on" : bool(true) else bool(false) end done source global [latest-25310]2025-11-07T16:16:41.926Z <Engine:INFO> Engine#1 global expression poolHeat old value=false [latest-25310]2025-11-07T16:16:41.926Z <Engine:INFO> Engine#1 evaluation context { "__lvar": { "MAXINT": 9007199254740991, "MININT": -9007199254740991, "MAXFLOAT": 1.7976931348623157e+308, "MINFLOAT": 5e-324, "testHere": "test", "chargeAmps": 16, "poolHeat": false, "poolHeatTrigger": "auto", "Växthuset": { "LYWSD03aa6def": { "x_mqtt_device": { "online": true, "templates": Array(1) ["tasmota_sensor_lyw"] }, "temperature_sensor": { "value": 7.3, "units": "C" }, "humidity_sensor": { "value": 96, "units": "%" }, "battery_power": { "level": 0.75, "since": 1762532173549, "alert_level": 0.5 }, "reactor_entity": { } }, "Flora1": { "x_mqtt_device": { "online": true, "templates": Array(1) ["my_tasmota_sensor_flora"] }, "temperature_sensor": { "value": 10.3, "units": "C" }, "light_sensor": { "value": 0, "units": "lux" }, "humidity_sensor": { "value": 0, "units": "%" }, "value_sensor": { "value": 0, "units": (null) }, "reactor_entity": { } }, "Flora1_Lux": 0.0001, "Flora2": { "x_mqtt_device": { "online": true, "templates": Array(1) ["my_tasmota_sensor_flora"] }, "temperature_sensor": { "value": 8.4, "units": "C" }, "light_sensor": { "value": 618, "units": "lux" }, "humidity_sensor": { "value": 0, "units": "%" }, "value_sensor": { "value": 0, "units": (null) }, "reactor_entity": { } }, "Flora2_Lux": 618 }, "Medeltemp": 8.67, "Luftfuktighet": 1.1162790697674418, "EzloDevicesNotResponding": Array(0) [], "prevEzloDevicesNotResponding": Array(0) [], "VeraDevicesNotResponding": Array(0) [], "openLuupWasDown": "No", "Charging": false, "ReactorRestarted": false, "HumOutdoor": 86, "TempOutdoor": 8.82, "Självförsörjande": 0, "Elpris": 178.405, "restartCameraRTSP": false, "lovVecka": false, "VVBsellingHigh": false, "HassElpriser": { "buy_sek": 1.86, "sell_sek": 1.53 }, "chargeNow": false, "alertBLE": true, "ElpriserMedelMedian": "Idag:86/87, Imorgon:78/65", "ChargingPaused": false, "alertElmatare": false, "functions": "Global functions", "functionsDEV": "Global functions", "alarmTest": "hello" }, "__depth": 0, "__tag": "$global", "__func": { "_compare": [Function (anonymous) (?,?,?)], "fileRead": [Function (anonymous) (?,?,?)], "fileWrite": [Function (anonymous) (?,?,?,?)], "fileExists": [Function (anonymous) (?,?)], "dumpVars": [Function (anonymous) (?)], "strftime": [Function (anonymous) (?)], "format": [Function (anonymous) (?)], "geodist": [Function (anonymous) (?)], "_assign": [Function (anonymous) (?,?,?)], "getEntity": [Function _0x498020 (?,?)], "entity": [Function _0x498020 (?,?)], "$": [Function _0x498020 (?,?)], "matchEntities": [Function (anonymous) (?,?)], "groupMembers": [Function (anonymous) (?,?)], "performAction": [Function _0x498020 (?,?,?,?)], "perform": [Function _0x498020 (?,?,?,?)], "getRule": [Function (anonymous) (?,?)], "isRuleSet": [Function (anonymous) (?,?)], "isRuleEnabled": [Function (anonymous) (?,?)], "alarm": [Function (anonymous) (?)], "getPrices": [Function (anonymous) (?)], "getSlots": [Function (anonymous) (?)], "cheapestHours": [Function (anonymous) (?)], "VVBdayRange": [Function (anonymous) (?)], "getChargingTime": [Function (anonymous) (?)], "getPricesOLD": [Function (anonymous) (?)], "SlotsOLD": [Function (anonymous) (?)], "cheapestHoursOLD": [Function (anonymous) (?)], "getChargingTimeOLD": [Function (anonymous) (?)] }, "__global": { "__lvar": (seen=.__lvar), "__depth": 0, "__tag": "$global", "__func": (seen=.__func), "__global": (seen=.__global), "__tree": Array(1) ["poolHeat"], "__suppress_dependencies": true }, "__tree": (seen=.__global.__tree), "__suppress_dependencies": true } [latest-25310]2025-11-07T16:16:41.926Z <Engine:INFO> Engine#1 expr poolHeat result changed=false, was false now false [latest-25310]2025-11-07T16:16:42.411Z <Engine:INFO> Engine#1 evaluating global Självförsörjande expression int(getEntity( "vera>device_56" ).attributes.x_vera_svc_micasaverde_com_GenericSensor1.self_sufficient) source global [latest-25310]2025-11-07T16:16:42.412Z <Engine:INFO> Engine#1 global expression Självförsörjande old value=0 [latest-25310]2025-11-07T16:16:42.412Z <Engine:INFO> Engine#1 evaluation context { "__lvar": { "MAXINT": 9007199254740991, "MININT": -9007199254740991, "MAXFLOAT": 1.7976931348623157e+308, "MINFLOAT": 5e-324, "testHere": "test", "chargeAmps": 16, "poolHeat": false, "poolHeatTrigger": "auto", "Växthuset": { "LYWSD03aa6def": { "x_mqtt_device": { "online": true, "templates": Array(1) ["tasmota_sensor_lyw"] }, "temperature_sensor": { "value": 7.3, "units": "C" }, "humidity_sensor": { "value": 96, "units": "%" }, "battery_power": { "level": 0.75, "since": 1762532173549, "alert_level": 0.5 }, "reactor_entity": { } }, "Flora1": { "x_mqtt_device": { "online": true, "templates": Array(1) ["my_tasmota_sensor_flora"] }, "temperature_sensor": { "value": 10.3, "units": "C" }, "light_sensor": { "value": 0, "units": "lux" }, "humidity_sensor": { "value": 0, "units": "%" }, "value_sensor": { "value": 0, "units": (null) }, "reactor_entity": { } }, "Flora1_Lux": 0.0001, "Flora2": { "x_mqtt_device": { "online": true, "templates": Array(1) ["my_tasmota_sensor_flora"] }, "temperature_sensor": { "value": 8.4, "units": "C" }, "light_sensor": { "value": 618, "units": "lux" }, "humidity_sensor": { "value": 0, "units": "%" }, "value_sensor": { "value": 0, "units": (null) }, "reactor_entity": { } }, "Flora2_Lux": 618 }, "Medeltemp": 8.67, "Luftfuktighet": 1.1162790697674418, "EzloDevicesNotResponding": Array(0) [], "prevEzloDevicesNotResponding": Array(0) [], "VeraDevicesNotResponding": Array(0) [], "openLuupWasDown": "No", "Charging": false, "ReactorRestarted": false, "HumOutdoor": 86, "TempOutdoor": 8.82, "Självförsörjande": 0, "Elpris": 178.405, "restartCameraRTSP": false, "lovVecka": false, "VVBsellingHigh": false, "HassElpriser": { "buy_sek": 1.86, "sell_sek": 1.53 }, "chargeNow": false, "alertBLE": true, "ElpriserMedelMedian": "Idag:86/87, Imorgon:78/65", "ChargingPaused": false, "alertElmatare": false, "functions": "Global functions", "functionsDEV": "Global functions", "alarmTest": "hello" }, "__depth": 0, "__tag": "$global", "__func": { "_compare": [Function (anonymous) (?,?,?)], "fileRead": [Function (anonymous) (?,?,?)], "fileWrite": [Function (anonymous) (?,?,?,?)], "fileExists": [Function (anonymous) (?,?)], "dumpVars": [Function (anonymous) (?)], "strftime": [Function (anonymous) (?)], "format": [Function (anonymous) (?)], "geodist": [Function (anonymous) (?)], "_assign": [Function (anonymous) (?,?,?)], "getEntity": [Function _0x498020 (?,?)], "entity": [Function _0x498020 (?,?)], "$": [Function _0x498020 (?,?)], "matchEntities": [Function (anonymous) (?,?)], "groupMembers": [Function (anonymous) (?,?)], "performAction": [Function _0x498020 (?,?,?,?)], "perform": [Function _0x498020 (?,?,?,?)], "getRule": [Function (anonymous) (?,?)], "isRuleSet": [Function (anonymous) (?,?)], "isRuleEnabled": [Function (anonymous) (?,?)], "alarm": [Function (anonymous) (?)], "getPrices": [Function (anonymous) (?)], "getSlots": [Function (anonymous) (?)], "cheapestHours": [Function (anonymous) (?)], "VVBdayRange": [Function (anonymous) (?)], "getChargingTime": [Function (anonymous) (?)], "getPricesOLD": [Function (anonymous) (?)], "SlotsOLD": [Function (anonymous) (?)], "cheapestHoursOLD": [Function (anonymous) (?)], "getChargingTimeOLD": [Function (anonymous) (?)] }, "__global": { "__lvar": (seen=.__lvar), "__depth": 0, "__tag": "$global", "__func": (seen=.__func), "__global": (seen=.__global), "__tree": Array(1) ["Självförsörjande"], "__suppress_dependencies": true }, "__tree": (seen=.__global.__tree), "__suppress_dependencies": true } [latest-25310]2025-11-07T16:16:42.412Z <Engine:INFO> Engine#1 expr Självförsörjande result changed=false, was 0 now 0 [latest-25310]2025-11-07T16:16:47.368Z <Engine:NOTICE> Engine#1 expression alarmTest has changed [latest-25310]2025-11-07T16:16:47.369Z <Engine:INFO> Engine#1 _compile_global_expr alarmTest [latest-25310]2025-11-07T16:16:47.369Z <Engine:INFO> Engine#1 global expression alarmTest refers to: Array(0) [] [latest-25310]2025-11-07T16:16:47.369Z <Engine:INFO> Engine#1 evaluating global alarmTest expression alarm(0), alarm(15), getEntity( "hass>sensor_momentary_active_import" ).attributes.string_sensor.value source global [latest-25310]2025-11-07T16:16:47.369Z <Engine:INFO> Engine#1 global expression alarmTest old value=hello [latest-25310]2025-11-07T16:16:47.369Z <Engine:INFO> Engine#1 evaluation context { "__lvar": { "MAXINT": 9007199254740991, "MININT": -9007199254740991, "MAXFLOAT": 1.7976931348623157e+308, "MINFLOAT": 5e-324, "testHere": "test", "chargeAmps": 16, "poolHeat": false, "poolHeatTrigger": "auto", "Växthuset": { "LYWSD03aa6def": { "x_mqtt_device": { "online": true, "templates": Array(1) ["tasmota_sensor_lyw"] }, "temperature_sensor": { "value": 7.3, "units": "C" }, "humidity_sensor": { "value": 96, "units": "%" }, "battery_power": { "level": 0.75, "since": 1762532173549, "alert_level": 0.5 }, "reactor_entity": { } }, "Flora1": { "x_mqtt_device": { "online": true, "templates": Array(1) ["my_tasmota_sensor_flora"] }, "temperature_sensor": { "value": 10.3, "units": "C" }, "light_sensor": { "value": 0, "units": "lux" }, "humidity_sensor": { "value": 0, "units": "%" }, "value_sensor": { "value": 0, "units": (null) }, "reactor_entity": { } }, "Flora1_Lux": 0.0001, "Flora2": { "x_mqtt_device": { "online": true, "templates": Array(1) ["my_tasmota_sensor_flora"] }, "temperature_sensor": { "value": 8.4, "units": "C" }, "light_sensor": { "value": 618, "units": "lux" }, "humidity_sensor": { "value": 0, "units": "%" }, "value_sensor": { "value": 0, "units": (null) }, "reactor_entity": { } }, "Flora2_Lux": 618 }, "Medeltemp": 8.67, "Luftfuktighet": 1.1162790697674418, "EzloDevicesNotResponding": Array(0) [], "prevEzloDevicesNotResponding": Array(0) [], "VeraDevicesNotResponding": Array(0) [], "openLuupWasDown": "No", "Charging": false, "ReactorRestarted": false, "HumOutdoor": 86, "TempOutdoor": 8.82, "Självförsörjande": 0, "Elpris": 178.405, "restartCameraRTSP": false, "lovVecka": false, "VVBsellingHigh": false, "HassElpriser": { "buy_sek": 1.86, "sell_sek": 1.53 }, "chargeNow": false, "alertBLE": true, "ElpriserMedelMedian": "Idag:86/87, Imorgon:78/65", "ChargingPaused": false, "alertElmatare": false, "functions": "Global functions", "functionsDEV": "Global functions", "alarmTest": "hello" }, "__depth": 0, "__tag": "$global", "__func": { "_compare": [Function (anonymous) (?,?,?)], "fileRead": [Function (anonymous) (?,?,?)], "fileWrite": [Function (anonymous) (?,?,?,?)], "fileExists": [Function (anonymous) (?,?)], "dumpVars": [Function (anonymous) (?)], "strftime": [Function (anonymous) (?)], "format": [Function (anonymous) (?)], "geodist": [Function (anonymous) (?)], "_assign": [Function (anonymous) (?,?,?)], "getEntity": [Function _0x498020 (?,?)], "entity": [Function _0x498020 (?,?)], "$": [Function _0x498020 (?,?)], "matchEntities": [Function (anonymous) (?,?)], "groupMembers": [Function (anonymous) (?,?)], "performAction": [Function _0x498020 (?,?,?,?)], "perform": [Function _0x498020 (?,?,?,?)], "getRule": [Function (anonymous) (?,?)], "isRuleSet": [Function (anonymous) (?,?)], "isRuleEnabled": [Function (anonymous) (?,?)], "alarm": [Function (anonymous) (?)], "getPrices": [Function (anonymous) (?)], "getSlots": [Function (anonymous) (?)], "cheapestHours": [Function (anonymous) (?)], "VVBdayRange": [Function (anonymous) (?)], "getChargingTime": [Function (anonymous) (?)], "getPricesOLD": [Function (anonymous) (?)], "SlotsOLD": [Function (anonymous) (?)], "cheapestHoursOLD": [Function (anonymous) (?)], "getChargingTimeOLD": [Function (anonymous) (?)] }, "__global": { "__lvar": (seen=.__lvar), "__depth": 0, "__tag": "$global", "__func": (seen=.__func), "__global": (seen=.__global), "__tree": Array(1) ["alarmTest"] }, "__tree": (seen=.__global.__tree) } [latest-25310]2025-11-07T16:16:47.371Z <Engine:CRIT> Engine#1 alarm(0) -- cancelling alarmTest timer [latest-25310]2025-11-07T16:16:47.371Z <Engine:CRIT> Engine#1 alarm() scheduled alarmTest tick for 1762532222371<2025-11-07 17:17:02> = now 1762532207371<2025-11-07 17:16:47> + delay 15000 [latest-25310]2025-11-07T16:16:47.371Z <Engine:INFO> Engine#1 getEntity evaluating global alarmTest with ValueSensor#hass>sensor_momentary_active_import dependency [latest-25310]2025-11-07T16:16:47.371Z <Engine:INFO> Engine#1 expr alarmTest result changed=true, was hello now "1.123" [latest-25310]2025-11-07T16:16:47.372Z <Engine:INFO> Engine#1 notify() expression state change GlobalExpression#alarmTest [latest-25310]2025-11-07T16:16:47.373Z <Engine:INFO> Engine#1 var alarmTest changed, evaluating dependents { } [latest-25310]2025-11-07T16:16:47.373Z <Engine:INFO> Engine#1 update dependencies for alarmTest, which are: Array(0) [] [latest-25310]2025-11-07T16:16:47.373Z <Engine:INFO> Engine#1 expr_tree is now { testHere: {}, chargeAmps: {}, poolHeat: {}, poolHeatTrigger: { poolHeat: {} }, 'Växthuset': {}, Medeltemp: {}, Luftfuktighet: {}, EzloDevicesNotResponding: {}, prevEzloDevicesNotResponding: {}, VeraDevicesNotResponding: {}, openLuupWasDown: {}, Charging: {}, ReactorRestarted: {}, HumOutdoor: {}, TempOutdoor: {}, 'Självförsörjande': {}, Elpris: {}, restartCameraRTSP: {}, lovVecka: {}, VVBsellingHigh: {}, HassElpriser: {}, chargeNow: {}, alertBLE: {}, ElpriserMedelMedian: {}, ChargingPaused: {}, alertElmatare: {}, functions: {}, functionsDEV: {}, alarmTest: {} } [latest-25310]2025-11-07T16:16:51.916Z <Engine:INFO> Engine#1 evaluating global chargeAmps expression doMore?
-
No errors now?
-
Oops, sorry. There's a lot going on with other stuff then this is logged.
[latest-25310]2025-11-07T16:16:51.930Z <Engine:INFO> Engine#1 global expression poolHeat old value=false [latest-25310]2025-11-07T16:16:51.930Z <Engine:INFO> Engine#1 evaluation context { "__lvar": { "MAXINT": 9007199254740991, "MININT": -9007199254740991, "MAXFLOAT": 1.7976931348623157e+308, "MINFLOAT": 5e-324, "testHere": "test", "chargeAmps": 16, "poolHeat": false, "poolHeatTrigger": "auto", "Växthuset": { "LYWSD03aa6def": { "x_mqtt_device": { "online": true, "templates": Array(1) ["tasmota_sensor_lyw"] }, "temperature_sensor": { "value": 7.3, "units": "C" }, "humidity_sensor": { "value": 96, "units": "%" }, "battery_power": { "level": 0.75, "since": 1762532173549, "alert_level": 0.5 }, "reactor_entity": { } }, "Flora1": { "x_mqtt_device": { "online": true, "templates": Array(1) ["my_tasmota_sensor_flora"] }, "temperature_sensor": { "value": 10.3, "units": "C" }, "light_sensor": { "value": 0, "units": "lux" }, "humidity_sensor": { "value": 0, "units": "%" }, "value_sensor": { "value": 0, "units": (null) }, "reactor_entity": { } }, "Flora1_Lux": 0.0001, "Flora2": { "x_mqtt_device": { "online": true, "templates": Array(1) ["my_tasmota_sensor_flora"] }, "temperature_sensor": { "value": 8.4, "units": "C" }, "light_sensor": { "value": 618, "units": "lux" }, "humidity_sensor": { "value": 0, "units": "%" }, "value_sensor": { "value": 0, "units": (null) }, "reactor_entity": { } }, "Flora2_Lux": 618 }, "Medeltemp": 8.67, "Luftfuktighet": 1.1162790697674418, "EzloDevicesNotResponding": Array(0) [], "prevEzloDevicesNotResponding": Array(0) [], "VeraDevicesNotResponding": Array(0) [], "openLuupWasDown": "No", "Charging": false, "ReactorRestarted": false, "HumOutdoor": 86, "TempOutdoor": 8.82, "Självförsörjande": 0, "Elpris": 178.405, "restartCameraRTSP": false, "lovVecka": false, "VVBsellingHigh": false, "HassElpriser": { "buy_sek": 1.86, "sell_sek": 1.53 }, "chargeNow": false, "alertBLE": true, "ElpriserMedelMedian": "Idag:86/87, Imorgon:78/65", "ChargingPaused": false, "alertElmatare": false, "functions": "Global functions", "functionsDEV": "Global functions", "alarmTest": "1.123" }, "__depth": 0, "__tag": "$global", "__func": { "_compare": [Function (anonymous) (?,?,?)], "fileRead": [Function (anonymous) (?,?,?)], "fileWrite": [Function (anonymous) (?,?,?,?)], "fileExists": [Function (anonymous) (?,?)], "dumpVars": [Function (anonymous) (?)], "strftime": [Function (anonymous) (?)], "format": [Function (anonymous) (?)], "geodist": [Function (anonymous) (?)], "_assign": [Function (anonymous) (?,?,?)], "getEntity": [Function _0x498020 (?,?)], "entity": [Function _0x498020 (?,?)], "$": [Function _0x498020 (?,?)], "matchEntities": [Function (anonymous) (?,?)], "groupMembers": [Function (anonymous) (?,?)], "performAction": [Function _0x498020 (?,?,?,?)], "perform": [Function _0x498020 (?,?,?,?)], "getRule": [Function (anonymous) (?,?)], "isRuleSet": [Function (anonymous) (?,?)], "isRuleEnabled": [Function (anonymous) (?,?)], "alarm": [Function (anonymous) (?)], "getPrices": [Function (anonymous) (?)], "getSlots": [Function (anonymous) (?)], "cheapestHours": [Function (anonymous) (?)], "VVBdayRange": [Function (anonymous) (?)], "getChargingTime": [Function (anonymous) (?)], "getPricesOLD": [Function (anonymous) (?)], "SlotsOLD": [Function (anonymous) (?)], "cheapestHoursOLD": [Function (anonymous) (?)], "getChargingTimeOLD": [Function (anonymous) (?)] }, "__global": { "__lvar": (seen=.__lvar), "__depth": 0, "__tag": "$global", "__func": (seen=.__func), "__global": (seen=.__global), "__alarmhandle": { "alarmTest": Timer(Timer#alarm:alarmTest) }, "__suppress_dependencies": true, "__tree": Array(1) ["poolHeat"] }, "__alarmhandle": (seen=.__global.__alarmhandle), "__suppress_dependencies": true, "__tree": (seen=.__global.__tree) } [latest-25310]2025-11-07T16:16:51.930Z <Engine:INFO> Engine#1 expr poolHeat result changed=false, was false now false [latest-25310]2025-11-07T16:16:51.932Z <Engine:INFO> Engine#1 evaluating global alarmTest expression alarm(0), alarm(15), getEntity( "hass>sensor_momentary_active_import" ).attributes.string_sensor.value source global [latest-25310]2025-11-07T16:16:51.932Z <Engine:INFO> Engine#1 global expression alarmTest old value="1.123" [latest-25310]2025-11-07T16:16:51.932Z <Engine:INFO> Engine#1 evaluation context { "__lvar": { "MAXINT": 9007199254740991, "MININT": -9007199254740991, "MAXFLOAT": 1.7976931348623157e+308, "MINFLOAT": 5e-324, "testHere": "test", "chargeAmps": 16, "poolHeat": false, "poolHeatTrigger": "auto", "Växthuset": { "LYWSD03aa6def": { "x_mqtt_device": { "online": true, "templates": Array(1) ["tasmota_sensor_lyw"] }, "temperature_sensor": { "value": 7.3, "units": "C" }, "humidity_sensor": { "value": 96, "units": "%" }, "battery_power": { "level": 0.75, "since": 1762532173549, "alert_level": 0.5 }, "reactor_entity": { } }, "Flora1": { "x_mqtt_device": { "online": true, "templates": Array(1) ["my_tasmota_sensor_flora"] }, "temperature_sensor": { "value": 10.3, "units": "C" }, "light_sensor": { "value": 0, "units": "lux" }, "humidity_sensor": { "value": 0, "units": "%" }, "value_sensor": { "value": 0, "units": (null) }, "reactor_entity": { } }, "Flora1_Lux": 0.0001, "Flora2": { "x_mqtt_device": { "online": true, "templates": Array(1) ["my_tasmota_sensor_flora"] }, "temperature_sensor": { "value": 8.4, "units": "C" }, "light_sensor": { "value": 618, "units": "lux" }, "humidity_sensor": { "value": 0, "units": "%" }, "value_sensor": { "value": 0, "units": (null) }, "reactor_entity": { } }, "Flora2_Lux": 618 }, "Medeltemp": 8.67, "Luftfuktighet": 1.1162790697674418, "EzloDevicesNotResponding": Array(0) [], "prevEzloDevicesNotResponding": Array(0) [], "VeraDevicesNotResponding": Array(0) [], "openLuupWasDown": "No", "Charging": false, "ReactorRestarted": false, "HumOutdoor": 86, "TempOutdoor": 8.82, "Självförsörjande": 0, "Elpris": 178.405, "restartCameraRTSP": false, "lovVecka": false, "VVBsellingHigh": false, "HassElpriser": { "buy_sek": 1.86, "sell_sek": 1.53 }, "chargeNow": false, "alertBLE": true, "ElpriserMedelMedian": "Idag:86/87, Imorgon:78/65", "ChargingPaused": false, "alertElmatare": false, "functions": "Global functions", "functionsDEV": "Global functions", "alarmTest": "1.123" }, "__depth": 0, "__tag": "$global", "__func": { "_compare": [Function (anonymous) (?,?,?)], "fileRead": [Function (anonymous) (?,?,?)], "fileWrite": [Function (anonymous) (?,?,?,?)], "fileExists": [Function (anonymous) (?,?)], "dumpVars": [Function (anonymous) (?)], "strftime": [Function (anonymous) (?)], "format": [Function (anonymous) (?)], "geodist": [Function (anonymous) (?)], "_assign": [Function (anonymous) (?,?,?)], "getEntity": [Function _0x498020 (?,?)], "entity": [Function _0x498020 (?,?)], "$": [Function _0x498020 (?,?)], "matchEntities": [Function (anonymous) (?,?)], "groupMembers": [Function (anonymous) (?,?)], "performAction": [Function _0x498020 (?,?,?,?)], "perform": [Function _0x498020 (?,?,?,?)], "getRule": [Function (anonymous) (?,?)], "isRuleSet": [Function (anonymous) (?,?)], "isRuleEnabled": [Function (anonymous) (?,?)], "alarm": [Function (anonymous) (?)], "getPrices": [Function (anonymous) (?)], "getSlots": [Function (anonymous) (?)], "cheapestHours": [Function (anonymous) (?)], "VVBdayRange": [Function (anonymous) (?)], "getChargingTime": [Function (anonymous) (?)], "getPricesOLD": [Function (anonymous) (?)], "SlotsOLD": [Function (anonymous) (?)], "cheapestHoursOLD": [Function (anonymous) (?)], "getChargingTimeOLD": [Function (anonymous) (?)] }, "__global": { "__lvar": (seen=.__lvar), "__depth": 0, "__tag": "$global", "__func": (seen=.__func), "__global": (seen=.__global), "__alarmhandle": { "alarmTest": Timer(Timer#alarm:alarmTest) }, "__suppress_dependencies": true, "__tree": Array(1) ["alarmTest"] }, "__alarmhandle": (seen=.__global.__alarmhandle), "__suppress_dependencies": true, "__tree": (seen=.__global.__tree) } [latest-25310]2025-11-07T16:16:51.932Z <Engine:ERR> Engine#1: error evaluating expression alarmTest: [ReferenceError] alarm() can only be used in global expressions [-] [latest-25310]2025-11-07T16:16:51.933Z <Engine:ERR> Engine#1: expression: alarm(0), alarm(15), getEntity( "hass>sensor_momentary_active_import" ).attributes.string_sensor.value [latest-25310]2025-11-07T16:16:51.945Z <Engine:INFO> Engine#1: path alarmTest->alarmTest [latest-25310]2025-11-07T16:16:51.945Z <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-07T16:16:51.947Z <Engine:INFO> Engine#1 expr alarmTest result changed=true, was "1.123" now (null) [latest-25310]2025-11-07T16:16:51.948Z <Engine:INFO> Engine#1 notify() expression state change GlobalExpression#alarmTest [latest-25310]2025-11-07T16:16:51.948Z <Engine:INFO> Engine#1 notify() expression state change GlobalExpression#alarmTest [latest-25310]2025-11-07T16:16:51.949Z <Engine:INFO> Engine#1 var alarmTest changed, evaluating dependents { } [latest-25310]2025-11-07T16:16:51.949Z <Engine:INFO> Engine#1 update dependencies for alarmTest, which are: Array(0) [] [latest-25310]2025-11-07T16:16:51.959Z <Engine:INFO> Engine#1 evaluating global chargeAmps expression do -
Where else are you using that variable, and how?
-
It's not mentioned in a substitution somewhere?






