Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Unsolved
Collapse
Discussion Forum to share and further the development of home control and automation, independent of platforms.
  1. Home
  2. Software
  3. Multi-System Reactor
  4. [Solved] alarm() in global expression throws error in log.
Arming Envisalink panel from MSR
T
Topic thumbnail image
Multi-System Reactor
[Solved] DynamicGroupController updating members issue
CrilleC
Edit: Solved in latest-26221. Bare-metal latest-26193 I have this group: "OKforLarm": name: OK för Larm select: - include_controller: vera - include_capability: door_sensor filter_expression: entity.attributes.door_sensor.state It contains the entities I expect but behaves a bit odd. When I open vera>device_10097 the entity attribute door_sensor.state changes to true but it won't show up as member in the group, when I also open vera>device_10095 they both shows as members and when I close vera>device_10095 it disappear from the group but when I close vera>device_10097 it lingers in the group until I restart Reactor.
Multi-System Reactor
Reactor (Multi-System/Multi-Hub) Announcements
toggledbitsT
Build 21228 has been released. Docker images available from DockerHub as usual, and bare-metal packages here. Home Assistant up to version 2021.8.6 supported; the online version of the manual will now state the current supported versions; Fix an error in OWMWeatherController that could cause it to stop updating; Unify the approach to entity filtering on all hub interface classes (controllers); this works for device entities only; it may be extended to other entities later; Improve error detail in messages for EzloController during auth phase; Add isRuleSet() and isRuleEnabled() functions to expressions extensions; Implement set action for lock and passage capabilities (makes them more easily scriptable in some cases); Fix a place in the UI where 24-hour time was not being displayed.
Multi-System Reactor
DynamicGroupController and attributes
therealdbT
Hey @toggledbits I'm back to trying to optimize a couple of things based on dynamic group. First of all, I think I found a typo in the doc: primary_attribute: "binary_sensor.state" primary_attribute_value: | d = false; each id in members: d = getEntity(id)?.attributes?.power_switch?.state or d, d I think the correct code snippet is d = false, All that said, my use case for dynamic groups is to group 3 different climate devices, so I could easily command them at the same time. Commands are good, but sometimes I want to check if any of the devices are on, and that's easily done with a similar snippet as the one you have in the docs. But this is limited to the primary attribute, while I want to have any of the attributes in the group to be driven by a similar logic (while all are null in the group). ie, access hvac_control.mode and see if any of the unit is set to cool, or heat. Is that possible, without re-defining an expression in each of my rules? Thanks!
Multi-System Reactor
Upgrade Issues
T
Topic thumbnail image
Multi-System Reactor
[SOLVED] Conflicting Set Reaction Groups Appear to Fire Simultaneously in Single Rule Evaluation
G
Topic thumbnail image
Multi-System Reactor
[SOLVED] Question regarding "in" vs "contains" vs contents of the string
G
Topic thumbnail image
Multi-System Reactor
Logon screen timeout
G
Noticing since 170 that the lock screen doesn't switch to the logon prompt but, rather, stays on the active UI until such time as you go to click something within it. Then it jumps to the login screen. Brave browser Brave 1.92.139 (Official Build) (arm64) Chromium: 150.0.7871.114
Multi-System Reactor
[MSR] Copy&past of actions and/or drag&drop between set/reset
therealdbT
Hey @toggledbits One thing that bothers me while doing work on new systems/new features, is that I cannot copy&paste actions, and I cannot drag&drop between set and resets. #1 is for when I want to copy an action between different rules opened in two separate browser windows, while #2 is when I just need to flip a bunch of actions in the reset, or move some logic back and forth. Both will be appreciated, but I understand the technical challenges. Thanks!
Multi-System Reactor
Upgrade advice - upgrade from aarch64 to ARM64 image
T
I'm currently on version 26011. I understand that the aarch64 image is no longer supported. So, I therefore need to update to the ARM64 image. Can anyone possibly suggest how I update my docker compose.yaml file (see below). Ideally I'd like to keep my existing reactions etc. rather than start from scratch. # Multi-System Reactor template docker-compose.yml (version 22160) # # Change the lines indicated by "DO"... # services: reactor: container_name: reactor environment: # DO change the TZ: line to set your local time zone. # See valid TZ list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones TZ: GB # # DO NOT change this path. Your directory location is in "source" below. REACTOR_DATA_PREFIX: /var/reactor # DO change the image below to the one you are using (e.g. armv7l or aarch64 for RPi 4) image: toggledbits/reactor:latest-aarch64 restart: "always" expose: - 8111 ports: - 8111:8111 volumes: # DO change the /home/username/reactor below to the directory you created for # your local data; DO NOT change the /var/reactor part - /home/pi/docker/reactor:/var/reactor - /etc/localtime:/etc/localtime:ro tmpfs: /tmp
Multi-System Reactor
Alexa for MSR, any interest?
MikeReadingtonM
Topic thumbnail image
Multi-System Reactor
[RESOLVED] Telegram notification broke with latest update
3
Topic thumbnail image
Multi-System Reactor
[RESOLVED] Phantom device, “INFO” appears
wmarcolinW
Topic thumbnail image
Multi-System Reactor
[RESOLVED] Mode Status NULL
wmarcolinW
Topic thumbnail image
Multi-System Reactor
[RESOLVED] HTTP query failing after version 26177
wmarcolinW
Topic thumbnail image
Multi-System Reactor
Question about the find function
wmarcolinW
Topic thumbnail image
Multi-System Reactor
[Answered] OK to remove old json files?
3
Topic thumbnail image
Multi-System Reactor
Deprecation Announcement: 32-bit ARM *docker* images
toggledbitsT
If you are using the armv7l docker image, the OpenJS Foundation that publishes node is no longer producing 32-bit builds as of v24. That means the last supported LTS version of node for armv7l is v22, which will go End-of-Life in May 2027. Therefore, the Reactor armv7l image is now deprecated and will only be produced until node v22 goes EOL, and I will not publish armv7l images beyond that date. If you are running an RPi 3 or earlier with Reactor, you are on this image, and will need to upgrade hardware to a 64-bit model and use the arm64 image. If you need help getting it done, ask in this category.
Multi-System Reactor
[Solved] build 26150 - engine not starting
G
@toggledbits I pulled the image (well, Watchtower did) and within minutes the whole system went offline. The log looks like it ends with 26143. [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-mkahsmgf/26qq82mw-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lqyfljfi/22f8on0t-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lsb61rw8/24oenqi2-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lrh58he0/rule-lrh58he0:S-1c00gfib-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lrh58he0/1c00dylr-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lrh58he0/1nam9w5u-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-miuh2qqi/22ls4lql-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-kwc6rmci/rule-kwc6rmci:S-1vj8sdfc-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-kwc6rmci/rule-kwc6rmci:S-1qanz01x-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-ladyja6a/24lq19p6-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-mk0o8iox/23oy468y-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-miscg2h3/rule-miscg2h3:S-22gmbq1c-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-kxgrfjke/238p0old-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-m7ccsso5/re-m7ccsso5-1r0myjxa-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-ladyja6a/19nl9wq2-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-ladyja6a/rule-ladyja6a:S-yl3xk9t-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-ladyja6a/rule-ladyja6a:S-yl3vv5m-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-ln7j2nqp/re-ln7j2nqp-22mx9lzd-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-ln7j2nqp/22mx87c8-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-licneppy/1mzwe7ht-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-ml3194ih/25jqt1j4-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-kxgrg7kf/227hshak-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-reactorexmachina/13ua1p95-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-reactorexmachina/13uagam7-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-grpvl9oypg/rule-grpvl9oypg:R-134x4cbv-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-grpvl9oypg/rule-grpvl9oypg:R-134x2fyl-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-lscjrws1/238p5c22-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lbwr0jvq/1xkczf03-cons [latest-26143]2026-05-31T15:23:44.547Z <Structure:NOTICE> Structure Structure#1 stopped [latest-26143]2026-05-31T15:23:44.547Z <app:NOTICE> Closing APIs... [latest-26143]2026-05-31T15:23:44.547Z <wsapi:NOTICE> wsapi: closing... [latest-26143]2026-05-31T15:23:44.547Z <wsapi:NOTICE> wsapi: disconnecting from "192.168.1.23#82" (1001 service closing) [latest-26143]2026-05-31T15:23:44.548Z <httpapi:NOTICE> HTTP API closing... [latest-26143]2026-05-31T15:23:44.549Z <wsapi:NOTICE> wsapi: server closed [latest-26143]2026-05-31T15:23:44.549Z <httpapi:INFO> HTTP server closed. [latest-26143]2026-05-31T15:23:44.549Z <app:NOTICE> Stopping timers... [latest-26143]2026-05-31T15:23:44.551Z <app:null> Shutdown complete, process ID 1 [latest-26143]2026-05-31T15:23:44.551Z <app:null> Closing logs... [latest-26143]2026-05-31T15:23:44.551Z <default:null> Closing log I can SSH to the VM. Alas, I do not have the previous image for 26143 as I'm a little too quick sometimes on housekeeping.
Multi-System Reactor
http request action & digest auth
tunnusT
I’m using the HTTP Request action in MSR and need to authenticate against an endpoint that uses HTTP Digest authentication. Now that endpoint was changed to use SHA-256 in digest auth, so I would like to know if MSR supports it, or is it limited to MD5-based digest auth?
Multi-System Reactor

[Solved] alarm() in global expression throws error in log.

Scheduled Pinned Locked Moved Multi-System Reactor
26 Posts 2 Posters 4.8k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • CrilleC Offline
    CrilleC Offline
    Crille
    wrote on last edited by
    #5

    Understandable, thank you for the quick fix.

    1 Reply Last reply
    0
    • CrilleC Offline
      CrilleC Offline
      Crille
      wrote on last edited by
      #6

      I'm still having some (other) issues...
      First a question, is do...done in a Global expression considered out of scope to the function? because when alarm() is put in the statement block it shows error. When alarm() is put before the statement block it seems to be working a bit inconsistent, probably related to the observations further down.
      dodone.PNG dodone_ok.PNG dodone_error.PNG

      Another issue. I cleared the alarmTest, restarted Reactor, hard refreshed browser and put

      alarm(5),
      getEntity( "reactor_system>system" ).attributes.reactor_system.reactor_uptime
      

      All good and now there's no error (and no statement block) but when I changed alarm(5) to alarm(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 5000ms
      

      Trying this, an entity that is updating faster than the tick. The GUI is flapping between error and OK value and the log goes crazy
      alarm0_ok.PNG alarm0.PNG

      [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)

      1 Reply Last reply
      0
      • toggledbitsT Online
        toggledbitsT Online
        toggledbits
        wrote on last edited by
        #7

        Respun again. Give it a try.

        Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

        1 Reply Last reply
        0
        • CrilleC Offline
          CrilleC Offline
          Crille
          wrote on last edited by
          #8

          Testing with

          alarm(0),
          alarm(15),
          getEntity( "mosquitto-mqtt>smartmeter" ).attributes.x_momentary_active_import.value
          

          Same 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
          
          1 Reply Last reply
          0
          • toggledbitsT Online
            toggledbitsT Online
            toggledbits
            wrote on last edited by
            #9

            Can you show me an alarm tick message?

            Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

            1 Reply Last reply
            0
            • CrilleC Offline
              CrilleC Offline
              Crille
              wrote on last edited by
              #10

              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
              
              1 Reply Last reply
              0
              • toggledbitsT Online
                toggledbitsT Online
                toggledbits
                wrote on last edited by
                #11

                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?

                Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                1 Reply Last reply
                0
                • CrilleC Offline
                  CrilleC Offline
                  Crille
                  wrote on last edited by
                  #12

                  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.

                  1 Reply Last reply
                  0
                  • toggledbitsT Online
                    toggledbitsT Online
                    toggledbits
                    wrote on last edited by toggledbits
                    #13

                    Can you show the log starting with "expression alarmTest has changed" (context before the error message)?

                    Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                    1 Reply Last reply
                    0
                    • CrilleC Offline
                      CrilleC Offline
                      Crille
                      wrote on last edited by
                      #14

                      Unfortunately that's long gone by testing level 5 but before that the expression was the simple string "hello" so there were only rule related log entries before it. I can reproduce it if you want though...

                      1 Reply Last reply
                      0
                      • toggledbitsT Online
                        toggledbitsT Online
                        toggledbits
                        wrote on last edited by
                        #15

                        Yes, please reproduce. Level 4 is fine. You can also set gvar_debug: true in the engine config section -- that will be verbose but a lot less verbose than level 5.

                        Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                        1 Reply Last reply
                        0
                        • CrilleC Offline
                          CrilleC Offline
                          Crille
                          wrote on last edited by
                          #16
                          [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 do 
                          
                          

                          More?

                          1 Reply Last reply
                          0
                          • toggledbitsT Online
                            toggledbitsT Online
                            toggledbits
                            wrote on last edited by
                            #17

                            No errors now?

                            Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                            1 Reply Last reply
                            0
                            • CrilleC Offline
                              CrilleC Offline
                              Crille
                              wrote on last edited by
                              #18

                              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 
                              
                              
                              1 Reply Last reply
                              0
                              • toggledbitsT Online
                                toggledbitsT Online
                                toggledbits
                                wrote on last edited by
                                #19

                                Where else are you using that variable, and how?

                                Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                                1 Reply Last reply
                                0
                                • CrilleC Offline
                                  CrilleC Offline
                                  Crille
                                  wrote on last edited by
                                  #20

                                  Nowhere, strictly to test the function before I put it in production

                                  1 Reply Last reply
                                  0
                                  • toggledbitsT Online
                                    toggledbitsT Online
                                    toggledbits
                                    wrote on last edited by
                                    #21

                                    It's not mentioned in a substitution somewhere?

                                    Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                                    1 Reply Last reply
                                    0
                                    • CrilleC Offline
                                      CrilleC Offline
                                      Crille
                                      wrote on last edited by
                                      #22

                                      Sorry but no

                                      1 Reply Last reply
                                      0
                                      • CrilleC Offline
                                        CrilleC Offline
                                        Crille
                                        wrote on last edited by
                                        #23

                                        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>)
                                        
                                        1 Reply Last reply
                                        0
                                        • toggledbitsT Online
                                          toggledbitsT Online
                                          toggledbits
                                          wrote on last edited by
                                          #24

                                          OK. I think I've got it. Pull it once again and restart... this time for sure!!!

                                          Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Recent Topics

                                          • Arming Envisalink panel from MSR
                                            T
                                            tamorgen
                                            0
                                            7
                                            176

                                          • [Solved] DynamicGroupController updating members issue
                                            CrilleC
                                            Crille
                                            0
                                            5
                                            118

                                          • Reactor (Multi-System/Multi-Hub) Announcements
                                            toggledbitsT
                                            toggledbits
                                            5
                                            148
                                            129.8k

                                          • DynamicGroupController and attributes
                                            therealdbT
                                            therealdb
                                            1
                                            5
                                            121

                                          • Upgrade Issues
                                            T
                                            tbully
                                            0
                                            9
                                            241

                                          • [SOLVED] Conflicting Set Reaction Groups Appear to Fire Simultaneously in Single Rule Evaluation
                                            toggledbitsT
                                            toggledbits
                                            0
                                            10
                                            267

                                          • [SOLVED] Question regarding "in" vs "contains" vs contents of the string
                                            G
                                            gwp1
                                            0
                                            5
                                            144

                                          • openLuup console disappeared - 500 - Internal Server Error
                                            A
                                            a-lurker
                                            0
                                            2
                                            176

                                          • Logon screen timeout
                                            G
                                            gwp1
                                            0
                                            5
                                            197

                                          • [MSR] Copy&past of actions and/or drag&drop between set/reset
                                            toggledbitsT
                                            toggledbits
                                            0
                                            9
                                            366

                                          • Upgrade advice - upgrade from aarch64 to ARM64 image
                                            toggledbitsT
                                            toggledbits
                                            0
                                            4
                                            216
                                          Powered by NodeBB | Contributors
                                          Hosted freely by 10RUPTiV - Solutions Technologiques | Contact us
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Unsolved