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.
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
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
[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
Cloning actions in reactions does not work
tunnusT
With build 26140 (on Docker) I'm not able to clone any actions in reactions. Using Chrome if it has any relevance.
Multi-System Reactor
Has ping command been removed?
tunnusT
Topic thumbnail image
Multi-System Reactor
ReferenceError with Home Assistant data & build 26140
tunnusT
Topic thumbnail image
Multi-System Reactor
Integrations and 'Loaded'
CatmanV2C
Thanks again for the recent release. One thing I wanted to ask about integrations and their 'loaded' condition: Is there something similar that applies to the entire controller? So if I have (for example) a helper in HA that is used to trigger an automation in MSR, is it possible to effectively exclude it until MSR is 'happy' that HA is stable and its values can be trusted? This, actually goes back to the issue I had. I've got a use case where a 30 second delay from triggering is a bit of a PITA (sustained for...) and was just wondering if there's a way of knowing that 'native' HA functions are working correctly. Probably asking wrong, or it's hideously obvious, but... TIA C
Multi-System Reactor
Possible mismatch between binary_sensor in HA and MSR
CatmanV2C
Hi. First off this is an unsupported version of HS 2026.5.2 so happy to be told it's that. Currently running latest-26130-3d2a489a on a Debian Buster bare metal VM. I've been working on moving away from OpenLuup completely and up until now have been using some virtual switches t manage things like 'Is there anyone home' I have a binary sensor in HA that provides the same thing binary_sensor.someone_home which appears in MSR as hass>binary_sensor_someone_home HA shows on or off. MSR shows true or false All fine. The odd thing happened after an update of HA and a restart. From HA 13:07:04 it turned off 13:07:11 it turned on However that does not appear to have been reflected in MSR which turned all the heating and so on off as it is supposed to do, and I got all my notifications as I should. Here's a huge log section (sorry) as I wanted to show how MSR identifies that HA is up and running at 12:07:08 (Zulu) but triggers the 'There's no one here' at 12:07:17 some 6 seconds after HA updated to on. Checking in the interface MSR said the status was 'False' while HA stated 'On' rule-mkwk2fwa.dval:[{"id":1,"container":2,"value":3,"serial":92,"tss":93,"tsc":93},"rule-mkwk2fwa","rules",{"id":1,"serial":4,"triggers":5,"constraints":21,"expressions":24,"name":25,"react_set":26,"react_reset":88,"ruleset":91},16,{"type":6,"id":7,"op":8,"conditions":9,"editor_version":20},"group","trig","and",[10],{"id":11,"type":12,"data":13},"condmkwk2fwa","entity",{"entity":14,"attribute":15,"op":16,"value":17},"hass>person_rachel_matthews","x_hass.state","change",[18,19],null,"not_home",25351,{"type":6,"id":22,"op":8,"conditions":23},"cons",[],{},"Rachel is on the move",{"id":27,"actions":28,"rule":1,"editor_version":87,"set":61},"rule-mkwk2fwa:S",[29,35,62,83],{"id":30,"type":31,"data":32},"24kv27go","setvar",{"var":33,"value":34},"g_CurrentHour","${{int(strftime(\"%H\", time()))}}",{"id":36,"type":6,"actions":37,"constraints":46},"rule-mkwk2fwa:S-24kv7qgg",[38],{"id":39,"type":12,"data":40},"24kv4y1v",{"entity":41,"action":42,"args":43},"hass>system","x_hass_system.call_service",{"service":44,"data":45},"notify.alexa_media","{\n\"message\":\"Good ${{g_Greeting}} Chris. , Rachel has left the ${{g_rachel_last_area}} zone and is in transit \",\n\"data\":{\"type\":\"announce\", \"method\":\"speak\"},\n\"target\":[\"media_player.everywhere\"]\n}",{"id":47,"name":48,"type":6,"op":8,"conditions":49,"editor_version":20},"rule-mkwk2fwa:S-24kv7qgg-cons","Group Constraints Copy",[50,55],{"id":51,"type":52,"data":53},"cond24kv89zv","comment",{"comment":54},"Should speak only when I'm home",{"id":56,"type":12,"data":57},"cond24kv7qgh",{"entity":58,"attribute":59,"op":60,"value":61},"mqqt>catman_iphone","binary_sensor.state","=",true,{"id":63,"type":6,"actions":64,"constraints":72},"rule-mkwk2fwa:S-24kv2lon",[65],{"id":66,"type":67,"data":68},"28xz6paf","notify",{"method":69,"message":70,"profile":71},"Telegram","Rachel has left the ${{g_rachel_last_area}} zone and is in transit","default",{"id":73,"name":48,"type":6,"op":8,"conditions":74,"editor_version":20},"rule-mkwk2fwa:S-24kv2lon-cons",[75,79],{"id":76,"type":52,"data":77},"cond24kvlpae",{"comment":78},"Should telegram while I am away",{"id":80,"type":12,"data":81},"cond24kvkyz7",{"entity":58,"attribute":59,"op":60,"value":82},false,{"id":84,"type":52,"data":85},"24kv7hvk",{"comment":86},"Enter comment text",25314,{"id":89,"actions":90,"rule":1,"set":82},"rule-mkwk2fwa:R",[],"rs-l5sdq41x",2,1779017869959] rule-mkwk2fwa.json:{"id":"rule-mkwk2fwa","container":"rules","value":{"id":"rule-mkwk2fwa","serial":16,"triggers":{"type":"group","id":"trig","op":"and","conditions":[{"id":"condmkwk2fwa","type":"entity","data":{"entity":"hass>person_rachel_matthews","attribute":"x_hass.state","op":"change","value":[null,"not_home"]}}],"editor_version":25351},"constraints":{"type":"group","id":"cons","op":"and","conditions":[]},"expressions":{},"name":"Rachel is on the move","react_set":{"id":"rule-mkwk2fwa:S","actions":[{"id":"24kv27go","type":"setvar","data":{"var":"g_CurrentHour","value":"${{int(strftime(\"%H\", time()))}}"}},{"id":"rule-mkwk2fwa:S-24kv7qgg","type":"group","actions":[{"id":"24kv4y1v","type":"entity","data":{"entity":"hass>system","action":"x_hass_system.call_service","args":{"service":"notify.alexa_media","data":"{\n\"message\":\"Good ${{g_Greeting}} Chris. , Rachel has left the ${{g_rachel_last_area}} zone and is in transit \",\n\"data\":{\"type\":\"announce\", \"method\":\"speak\"},\n\"target\":[\"media_player.everywhere\"]\n}"}}}],"constraints":{"id":"rule-mkwk2fwa:S-24kv7qgg-cons","name":"Group Constraints Copy","type":"group","op":"and","conditions":[{"id":"cond24kv89zv","type":"comment","data":{"comment":"Should speak only when I'm home"}},{"id":"cond24kv7qgh","type":"entity","data":{"entity":"mqqt>catman_iphone","attribute":"binary_sensor.state","op":"=","value":true}}],"editor_version":25351}},{"id":"rule-mkwk2fwa:S-24kv2lon","type":"group","actions":[{"id":"28xz6paf","type":"notify","data":{"method":"Telegram","message":"Rachel has left the ${{g_rachel_last_area}} zone and is in transit","profile":"default"}}],"constraints":{"id":"rule-mkwk2fwa:S-24kv2lon-cons","name":"Group Constraints Copy","type":"group","op":"and","conditions":[{"id":"cond24kvlpae","type":"comment","data":{"comment":"Should telegram while I am away"}},{"id":"cond24kvkyz7","type":"entity","data":{"entity":"mqqt>catman_iphone","attribute":"binary_sensor.state","op":"=","value":false}}],"editor_version":25351}},{"id":"24kv7hvk","type":"comment","data":{"comment":"Enter comment text"}}],"rule":"rule-mkwk2fwa","editor_version":25314,"set":true},"react_reset":{"id":"rule-mkwk2fwa:R","actions":[],"rule":"rule-mkwk2fwa","set":false},"ruleset":"rs-l5sdq41x"},"serial":2,"tss":1779017869959,"tsc":1779017869959} rule-mkwlg11o.dval:[{"id":1,"container":2,"value":3,"serial":92,"tss":93,"tsc":93},"rule-mkwlg11o","rules",{"id":1,"serial":4,"triggers":5,"constraints":20,"expressions":23,"name":24,"react_set":25,"react_reset":88,"ruleset":91},5,{"type":6,"id":7,"op":8,"conditions":9,"editor_version":19},"group","trig","and",[10],{"id":11,"type":12,"data":13},"condmkwk2fwa","entity",{"entity":14,"attribute":15,"op":16,"value":17},"hass>person_rachel_matthews","x_hass.state","change",[18],"not_home",25351,{"type":6,"id":21,"op":8,"conditions":22},"cons",[],{},"Rachel has arrived",{"id":26,"actions":27,"rule":1,"editor_version":87,"set":65},"rule-mkwlg11o:S",[28,33,39,66,83],{"id":29,"type":30,"data":31},"24kvboht","script",{"expr":32},"g_rachel_last_area = getEntity(\"hass>person_rachel_matthews\").attributes['x_hass'].state",{"id":34,"type":35,"data":36},"24kvbohu","setvar",{"var":37,"value":38},"g_CurrentHour","${{int(strftime(\"%H\", time()))}}",{"id":40,"type":6,"actions":41,"constraints":50},"rule-mkwlg11o:S-rule-mkwlg11o-24kvbohv",[42],{"id":43,"type":12,"data":44},"24kvbohw",{"entity":45,"action":46,"args":47},"hass>system","x_hass_system.call_service",{"service":48,"data":49},"notify.alexa_media","{\n\"message\":\"Good ${{g_Greeting}} Chris. , Rachel has arrived in the ${{g_rachel_last_area}} zone.\",\n\"data\":{\"type\":\"announce\", \"method\":\"speak\"},\n\"target\":[\"media_player.everywhere\"]\n}",{"id":51,"name":52,"type":6,"op":8,"conditions":53,"editor_version":19},"24kvbohv-cons","Group Constraints Copy",[54,59],{"id":55,"type":56,"data":57},"cond24kv89zv","comment",{"comment":58},"Should speak only when I'm home",{"id":60,"type":12,"data":61},"cond24kv7qgh",{"entity":62,"attribute":63,"op":64,"value":65},"mqqt>catman_iphone","binary_sensor.state","=",true,{"id":67,"type":6,"actions":68,"constraints":76},"rule-mkwlg11o:S-rule-mkwlg11o-24kvbohx",[69],{"id":70,"type":71,"data":72},"24kvbohy","notify",{"method":73,"message":74,"profile":75},"Telegram","Rachel has arrived in the ${{g_rachel_last_area}} zone.","default",{"id":77,"name":52,"type":6,"op":8,"conditions":78,"editor_version":19},"24kvbohx-cons",[79],{"id":80,"type":12,"data":81},"cond24kvmzfp",{"entity":62,"attribute":63,"op":64,"value":82},false,{"id":84,"type":56,"data":85},"24kvbohz",{"comment":86},"Enter comment text",25314,{"id":89,"actions":90,"rule":1,"set":82},"rule-mkwlg11o:R",[],"rs-l5sdq41x",1,1770023368433] rule-mkwlg11o.json:{"id":"rule-mkwlg11o","container":"rules","value":{"id":"rule-mkwlg11o","serial":5,"triggers":{"type":"group","id":"trig","op":"and","conditions":[{"id":"condmkwk2fwa","type":"entity","data":{"entity":"hass>person_rachel_matthews","attribute":"x_hass.state","op":"change","value":["not_home"]}}],"editor_version":25351},"constraints":{"type":"group","id":"cons","op":"and","conditions":[]},"expressions":{},"name":"Rachel has arrived","react_set":{"id":"rule-mkwlg11o:S","actions":[{"id":"24kvboht","type":"script","data":{"expr":"g_rachel_last_area = getEntity(\"hass>person_rachel_matthews\").attributes['x_hass'].state"}},{"id":"24kvbohu","type":"setvar","data":{"var":"g_CurrentHour","value":"${{int(strftime(\"%H\", time()))}}"}},{"id":"rule-mkwlg11o:S-rule-mkwlg11o-24kvbohv","type":"group","actions":[{"id":"24kvbohw","type":"entity","data":{"entity":"hass>system","action":"x_hass_system.call_service","args":{"service":"notify.alexa_media","data":"{\n\"message\":\"Good ${{g_Greeting}} Chris. , Rachel has arrived in the ${{g_rachel_last_area}} zone.\",\n\"data\":{\"type\":\"announce\", \"method\":\"speak\"},\n\"target\":[\"media_player.everywhere\"]\n}"}}}],"constraints":{"id":"24kvbohv-cons","name":"Group Constraints Copy","type":"group","op":"and","conditions":[{"id":"cond24kv89zv","type":"comment","data":{"comment":"Should speak only when I'm home"}},{"id":"cond24kv7qgh","type":"entity","data":{"entity":"mqqt>catman_iphone","attribute":"binary_sensor.state","op":"=","value":true}}],"editor_version":25351}},{"id":"rule-mkwlg11o:S-rule-mkwlg11o-24kvbohx","type":"group","actions":[{"id":"24kvbohy","type":"notify","data":{"method":"Telegram","message":"Rachel has arrived in the ${{g_rachel_last_area}} zone.","profile":"default"}}],"constraints":{"id":"24kvbohx-cons","name":"Group Constraints Copy","type":"group","op":"and","conditions":[{"id":"cond24kvmzfp","type":"entity","data":{"entity":"mqqt>catman_iphone","attribute":"binary_sensor.state","op":"=","value":false}}],"editor_version":25351}},{"id":"24kvbohz","type":"comment","data":{"comment":"Enter comment text"}}],"rule":"rule-mkwlg11o","editor_version":25314,"set":true},"react_reset":{"id":"rule-mkwlg11o:R","actions":[],"rule":"rule-mkwlg11o","set":false},"ruleset":"rs-l5sdq41x"},"serial":1,"tss":1770023368433,"tsc":1770023368433} catman@openluup:~/reactor/storage/rules$ exit logout Connection to 192.168.70.249 closed. catman@ChrisMBP2021 ~ % ./NotVera ** WARNING: connection is not using a post-quantum key exchange algorithm. ** This session may be vulnerable to "store now, decrypt later" attacks. ** The server may need to be upgraded. See https://openssh.com/pq.html Linux openluup 4.19.0-20-amd64 #1 SMP Debian 4.19.235-1 (2022-03-17) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Mon May 18 12:13:38 2026 from 192.168.70.69 cdcatman@openluup:~$ cd reactor/lo locales/ logs/ catman@openluup:~$ cd reactor/logs/ catman@openluup:~/reactor/logs$ ls console.log hass_config.json hass_services-2025-11-1.json hass_services-2026-1-0.json hass_services-2026-5-2.json reactor.log reactor.log.4 vera-user_data-initial.json device_32 hass_device_registry.json hass_services-2025-11-2.json hass_services-2026-1-1.json hass_services.json reactor.log.1 reactor.log.5 e hass_entity_registry.json hass_services-2025-11-3.json hass_services-2026-4-2.json hass_sources.json reactor.log.2 unhandled.json hass_area_registry.json hass_integrations.json hass_services-2025-7-2.json hass_services-2026-4-4.json hass_states.json reactor.log.3 vera-status-initial.json catman@openluup:~/reactor/logs$ less reactor.log catman@openluup:~/reactor/logs$ tail reactor.log [latest-26130]2026-05-19T12:20:08.296Z <httpapi:INFO> httpapi#1 API request from ::ffff:192.168.70.249: GET /api/v1/netstatus [latest-26130]2026-05-19T12:21:03.391Z <httpapi:INFO> httpapi#1 API request from ::ffff:192.168.70.249: GET /api/v1/netstatus [latest-26130]2026-05-19T12:21:08.729Z <Rule:INFO> Rule#rule-mova0cpn re-evaluating local variable L_Cinema_Light_Level for dependency notification from ValueSensor#hass>sensor_cinema_multi_sensor_illuminance [latest-26130]2026-05-19T12:21:08.734Z <Rule:INFO> Rule#rule-mova0cpn requesting eval for changed dependent locals Array(1) ["L_Cinema_Light_Level"] [latest-26130]2026-05-19T12:22:03.501Z <httpapi:INFO> httpapi#1 API request from ::ffff:192.168.70.249: GET /api/v1/netstatus [latest-26130]2026-05-19T12:22:08.614Z <Rule:INFO> Rule#rule-mova0cpn re-evaluating local variable L_Cinema_Light_Level for dependency notification from ValueSensor#hass>sensor_cinema_multi_sensor_illuminance [latest-26130]2026-05-19T12:22:08.624Z <Rule:INFO> Rule#rule-mova0cpn requesting eval for changed dependent locals Array(1) ["L_Cinema_Light_Level"] [latest-26130]2026-05-19T12:23:03.590Z <httpapi:INFO> httpapi#1 API request from ::ffff:192.168.70.249: GET /api/v1/netstatus [latest-26130]2026-05-19T12:23:08.503Z <Rule:INFO> Rule#rule-mova0cpn re-evaluating local variable L_Cinema_Light_Level for dependency notification from ValueSensor#hass>sensor_cinema_multi_sensor_illuminance [latest-26130]2026-05-19T12:23:08.506Z <Rule:INFO> Rule#rule-mova0cpn requesting eval for changed dependent locals Array(1) ["L_Cinema_Light_Level"] catman@openluup:~/reactor/logs$ less reactor.log [latest-26130]2026-05-19T12:07:17.946Z <Rule:INFO> Cyrus Stream Vol+ (rule-ml9yjy9z in Living Room) starting rule state evaluation; because predicate-state-changed Predicate#rule-ml9yjy9z/trig [latest-26130]2026-05-19T12:07:17.947Z <Rule:INFO> Cyrus Stream Vol+ (rule-ml9yjy9z in Living Room) evaluated; rule state transition from RESET to 'SET' [latest-26130]2026-05-19T12:07:17.961Z <Rule:INFO> Cyrus Stream Vol- (rule-ml9ylxw3 in Living Room) starting rule state evaluation; because predicate-state-changed Predicate#rule-ml9ylxw3/trig [latest-26130]2026-05-19T12:07:17.962Z <Rule:INFO> Cyrus Stream Vol- (rule-ml9ylxw3 in Living Room) evaluated; rule state transition from RESET to 'SET' [latest-26130]2026-05-19T12:07:17.995Z <Engine:INFO> Enqueueing "Heating Control Mode is Home<RESET>" (rule-l680lif2:R) [latest-26130]2026-05-19T12:07:17.996Z <Engine:INFO> Enqueueing "House Mode is Home<RESET>" (rule-l5sdqazh:R) [latest-26130]2026-05-19T12:07:17.997Z <Engine:INFO> Enqueueing "Cyrus Stream Play / Pause<SET>" (rule-ml9y0xqo:S) [latest-26130]2026-05-19T12:07:17.997Z <Engine:INFO> Enqueueing "Cyrus Stream Vol+<SET>" (rule-ml9yjy9z:S) [latest-26130]2026-05-19T12:07:17.998Z <Engine:INFO> Enqueueing "Cyrus Stream Vol-<SET>" (rule-ml9ylxw3:S) [latest-26130]2026-05-19T12:07:18.000Z <Engine:NOTICE> Starting reaction Heating Control Mode is Home<RESET> (rule-l680lif2:R) [latest-26130]2026-05-19T12:07:18.000Z <Engine:INFO> Engine#1 perform power_switch.off on Entity#hass>input_boolean_heating_mode with { } by reaction Heating Control Mode is Home<RESET> (rule-l680lif2:R) step 1 [latest-26130]2026-05-19T12:07:18.000Z <HassController:INFO> HassController#hass perform power_switch.off on Entity#hass>input_boolean_heating_mode with { } [latest-26130]2026-05-19T12:07:18.001Z <HassController:INFO> HassController#hass service homeassistant.turn_off target data is { } (empty), assuming default entity target [latest-26130]2026-05-19T12:07:18.001Z <HassController:INFO> HassController#hass: sending payload for power_switch.off on Entity#hass>input_boolean_heating_mode action: { "type": "call_service", "service_data": { }, "domain": "homeassistant", "service": "turn_off", "target": { "entity_id": "input_boolean.heating_mode" } } [latest-26130]2026-05-19T12:07:18.017Z <Engine:NOTICE> Starting reaction House Mode is Home<RESET> (rule-l5sdqazh:R) [latest-26130]2026-05-19T12:07:18.018Z <Engine:INFO> House Mode is Home<RESET> all actions completed. [latest-26130]2026-05-19T12:07:18.074Z <Engine:NOTICE> Starting reaction Cyrus Stream Play / Pause<SET> (rule-ml9y0xqo:S) [latest-26130]2026-05-19T12:07:18.076Z <Engine:INFO> Engine#1 perform x_hass.call_service on Entity#hass>text_living_room_remote_ir_code_to_send with { "service": "text.set_value", "data": "{ \"value\": \"BfcG9wZ8A+ABAeABDRP3BvcGfAN8A/cG9wb///cG9wZ8A+ABAeABDRP3BvcGfAN8A/cG9wb///cG9wZ8A+ABAeABDQv3BvcGfAN8A/cG9wY=\" }" } by reaction Cyrus Stream Play / Pause<SET> (rule-ml9y0xqo:S) step 1 [latest-26130]2026-05-19T12:07:18.076Z <HassController:INFO> HassController#hass perform x_hass.call_service on Entity#hass>text_living_room_remote_ir_code_to_send with { "service": "text.set_value", "data": "{ \"value\": \"BfcG9wZ8A+ABAeABDRP3BvcGfAN8A/cG9wb///cG9wZ8A+ABAeABDRP3BvcGfAN8A/cG9wb///cG9wZ8A+ABAeABDQv3BvcGfAN8A/cG9wY=\" }" } [latest-26130]2026-05-19T12:07:18.077Z <HassController:INFO> HassController#hass: sending payload for x_hass.call_service on Entity#hass>text_living_room_remote_ir_code_to_send action: { "type": "call_service", "service_data": { "value": "BfcG9wZ8A+ABAeABDRP3BvcGfAN8A/cG9wb///cG9wZ8A+ABAeABDRP3BvcGfAN8A/cG9wb///cG9wZ8A+ABAeABDQv3BvcGfAN8A/cG9wY=" }, "domain": "text", "service": "set_value", "target": { "entity_id": "text.living_room_remote_ir_code_to_send" } } [latest-26130]2026-05-19T12:07:18.090Z <Engine:NOTICE> Starting reaction Cyrus Stream Vol+<SET> (rule-ml9yjy9z:S) [latest-26130]2026-05-19T12:07:18.091Z <Engine:INFO> Engine#1 perform x_hass.call_service on Entity#hass>text_living_room_remote_ir_code_to_send with { "service": "text.set_value", "data": "{ \"value\": \"BXsDewP3BkABAXsD4AUBBfcG9wZ7A+ABAQf//3sDewP3BkABAXsD4AUBBfcG9wZ7A+ABAQf//3sDewP3BkABAXsD4AUBD/cG9wZ7A3sDewN7A3sDewM=\" }" } by reaction Cyrus Stream Vol+<SET> (rule-ml9yjy9z:S) step 1 [latest-26130]2026-05-19T12:07:18.092Z <HassController:INFO> HassController#hass perform x_hass.call_service on Entity#hass>text_living_room_remote_ir_code_to_send with { "service": "text.set_value", "data": "{ \"value\": \"BXsDewP3BkABAXsD4AUBBfcG9wZ7A+ABAQf//3sDewP3BkABAXsD4AUBBfcG9wZ7A+ABAQf//3sDewP3BkABAXsD4AUBD/cG9wZ7A3sDewN7A3sDewM=\" }" } [latest-26130]2026-05-19T12:07:18.092Z <HassController:INFO> HassController#hass: sending payload for x_hass.call_service on Entity#hass>text_living_room_remote_ir_code_to_send action: { "type": "call_service", "service_data": { "value": "BXsDewP3BkABAXsD4AUBBfcG9wZ7A+ABAQf//3sDewP3BkABAXsD4AUBBfcG9wZ7A+ABAQf//3sDewP3BkABAXsD4AUBD/cG9wZ7A3sDewN7A3sDewM=" }, "domain": "text", "service": "set_value", "target": { "entity_id": "text.living_room_remote_ir_code_to_send" } } [latest-26130]2026-05-19T12:07:18.093Z <Engine:NOTICE> Starting reaction Cyrus Stream Vol-<SET> (rule-ml9ylxw3:S) [latest-26130]2026-05-19T12:07:18.093Z <Engine:INFO> Engine#1 perform x_hass.call_service on Entity#hass>text_living_room_remote_ir_code_to_send with { "service": "text.set_value", "data": "{ \"value\": \"AXoD4AEBA/EGegPgBQEF8QbxBnoDgAFACQP//3oD4AEBQBHgBQEP8QbxBnoDegN6A3oD8QZ6Aw==\" }" } by reaction Cyrus Stream Vol-<SET> (rule-ml9ylxw3:S) step 1 [latest-26130]2026-05-19T12:07:18.094Z <HassController:INFO> HassController#hass perform x_hass.call_service on Entity#hass>text_living_room_remote_ir_code_to_send with { "service": "text.set_value", "data": "{ \"value\": \"AXoD4AEBA/EGegPgBQEF8QbxBnoDgAFACQP//3oD4AEBQBHgBQEP8QbxBnoDegN6A3oD8QZ6Aw==\" }" } [latest-26130]2026-05-19T12:07:18.111Z <HassController:INFO> HassController#hass: sending payload for x_hass.call_service on Entity#hass>text_living_room_remote_ir_code_to_send action: { "type": "call_service", "service_data": { "value": "AXoD4AEBA/EGegPgBQEF8QbxBnoDgAFACQP//3oD4AEBQBHgBQEP8QbxBnoDegN6A3oD8QZ6Aw==" }, "domain": "text", "service": "set_value", "target": { "entity_id": "text.living_room_remote_ir_code_to_send" } } [latest-26130]2026-05-19T12:07:18.113Z <Rule:INFO> Rule#rule-l5sdqazh reaction rule-l5sdqazh:R completed This is hardly the end of the world as HA restarting is rare and I simply hit refresh on the entity in MSR but is this some kind of race condition or something that needs addressing? Hoping I've given enough data to make it sensible C
Multi-System Reactor
[Solved] Rulesets with multiple groups in Set Reaction not working post-26116
G
Topic thumbnail image
Multi-System Reactor

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

Scheduled Pinned Locked Moved Multi-System Reactor
26 Posts 2 Posters 4.6k 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 Crille
    #1

    I'm testing the new alarm() function but I can't get it to do what I expect.
    alarm.PNG This does not re-evaluate the expression and an error is logged on first run and when run manually:

    [latest-25310]2025-11-06T19:02:45.379Z <Engine:NOTICE> Engine#1 creating global expression alarmTest
    [latest-25310]2025-11-06T19:02:50.381Z <Engine:ERR> Engine#1 failed alarm() update for $global: [Error] Expression name "" is invalid [-]
    [latest-25310]2025-11-06T19:02:50.381Z <Engine:CRIT> Error: Expression name "" is invalid [-]
    Error: Expression name "" is invalid
        at GlobalExpression.getInstance (/home/homebridge/reactor/server/lib/GlobalExpression.js:60:19)
        at Timer.callback (/home/homebridge/reactor/server/lib/Engine.js:1428:166)
        at Timer._fire (/home/homebridge/reactor/server/lib/Timer.js:219:46)
        at listOnTimeout (node:internal/timers:608:17)
        at process.processTimers (node:internal/timers:543:7)
    

    Nothing related before or after in the log. I've tried with existing variables but same behavior and log entry when saved or run manually, latest-25310

    EDIT: Bare Metal install and what I expect is the timestamp to update every 5 seconds.

    1 Reply Last reply
    0
    • toggledbitsT Offline
      toggledbitsT Offline
      toggledbits
      wrote on last edited by
      #2

      OK. I respun buld 25310. Pull the new zip and give it another go.

      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
      1
      • CrilleC Offline
        CrilleC Offline
        Crille
        wrote on last edited by
        #3

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

          Just debug elevated. Next build it will be quiet.

          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
            #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 Offline
                toggledbitsT Offline
                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 Offline
                    toggledbitsT Offline
                    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 Offline
                        toggledbitsT Offline
                        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 Offline
                            toggledbitsT Offline
                            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 Offline
                                toggledbitsT Offline
                                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 Offline
                                    toggledbitsT Offline
                                    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 Offline
                                        toggledbitsT Offline
                                        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
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Recent Topics

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

                                          • Logon screen timeout
                                            G
                                            gwp1
                                            0
                                            5
                                            121

                                          • Reactor (Multi-System/Multi-Hub) Announcements
                                            CatmanV2C
                                            CatmanV2
                                            5
                                            146
                                            124.2k

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

                                          • Upgrade advice - upgrade from aarch64 to ARM64 image
                                            toggledbitsT
                                            toggledbits
                                            0
                                            4
                                            134

                                          • Alexa for MSR, any interest?
                                            CatmanV2C
                                            CatmanV2
                                            2
                                            4
                                            280

                                          • Ezlo Paid Subscription for Vera Cloud Services
                                            therealdbT
                                            therealdb
                                            4
                                            2
                                            330

                                          • [RESOLVED] Telegram notification broke with latest update
                                            CatmanV2C
                                            CatmanV2
                                            0
                                            11
                                            638

                                          • [RESOLVED] Phantom device, “INFO” appears
                                            toggledbitsT
                                            toggledbits
                                            0
                                            2
                                            138

                                          • [RESOLVED] Mode Status NULL
                                            wmarcolinW
                                            wmarcolin
                                            0
                                            18
                                            468

                                          • [RESOLVED] HTTP query failing after version 26177
                                            wmarcolinW
                                            wmarcolin
                                            0
                                            3
                                            177
                                          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