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.
CrilleC

Crille

@Crille
Requesting a proper ARM64/aarch64 Docker image (Pi 5 support)
M
Hi, I'm in the process of migrating from a Raspberry Pi 4 (ARMv7) to a Raspberry Pi 5 (ARMv8/aarch64), but I’ve run into an issue: there is no proper ARMv8/aarch64 image available. None of the existing images run on the Pi 5 - they all exit immediately with code 139 (segmentation fault), which typically indicates that the binaries inside the image are not compatible with the ARM64/aarch64 architecture used by the Pi 5. Would it be possible to publish a correct ARMv8/aarch64 (linux/arm64) image? Building one should be relatively straightforward using docker buildx with multi-arch support. For example, my own Node.js images are built this way: docker buildx build --push \ -t <localrepo>/<project>:<tag> \ --platform=linux/arm64,linux/amd64 \ --file ./apps/<project>/Dockerfile . This produces both the AMD64 and ARM64/v8 variants automatically. Also, as a side note, it may be best to avoid using Alpine as the base image for the ARM64 build, since musl-based builds often cause compatibility issues and unnecessary headaches. A glibc-based base image (e.g., Debian or Ubuntu) tends to work far more reliably on ARM64, especially for Node.js applications. @toggledbits - tagging you in case you missed this. Thanks, mgvra
Multi-System Reactor
Script action and custom timers
therealdbT
Sorry to write here without trying, but I’m flying today. Am I correct if i say that script action with alarm() makes it possible to execute a reaction in a given interval, lets say 15 seconds or 3.5 minutes? That sounds amazing, since I’ve used weird tricks, including a custom controller, just to do this.
Multi-System Reactor
Help resolve change in behaviour post update
CatmanV2C
Topic thumbnail image
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
There is an alternative to homebridge-mqttthing
CrilleC
Just throwing out a general hint to the people running Homebridge and MQTT. Homebridge MQTT-Thing hasn't been updated in almost 2 years and it falls behind on compatibility with the development of Homebridge. I was looking for a replacement and found Homebridge Easy MQTT and I think it's a good replacement for MQTT-Thing. I particularly find Easy MQTT Value tranformers easier to to understand and use compared to MQTT-Thing Apply function. It took a while to migrate everything but I'm pleased and can recommend.
Software
Reactor w/HA 2025.11 error on set_datetime service call setting only time
CrilleC
@toggledbits Do you know if this is related to that PR or is it a change they made in 2025.11.1? [latest-25310]2025-11-11T13:16:24.319Z <HassController:INFO> HassController#hass perform x_hass_input_datetime.set_datetime on Entity#hass>input_datetime_vvb_dag with { "time": "10:45" } [latest-25310]2025-11-11T13:16:24.320Z <HassController:INFO> HassController#hass: sending payload for x_hass_input_datetime.set_datetime on Entity#hass>input_datetime_vvb_dag action: { "type": "call_service", "service_data": { "date": (null), "time": "10:45", "datetime": (null), "timestamp": (null) }, "domain": "input_datetime", "service": "set_datetime", "target": { "entity_id": "input_datetime.vvb_dag" } } [latest-25310]2025-11-11T13:16:24.321Z <HassController:ERR> HassController#hass request 1762866984320<2025-11-11 14:16:24> (call_service) failed: [Error] Not a parseable type for dictionary value @ data['date'] [-] [latest-25310]2025-11-11T13:16:24.321Z <HassController:WARN> HassController#hass action x_hass_input_datetime.set_datetime({ "time": "10:45" }) on Entity#hass>input_datetime_vvb_dag failed! [latest-25310]2025-11-11T13:16:24.321Z <HassController:INFO> Service call payload: {"type":"call_service","service_data":{"date":null,"time":"10:45","datetime":null,"timestamp":null},"domain":"input_datetime","service":"set_datetime","target":{"entity_id":"input_datetime.vvb_dag"},"id":1762866984320} [latest-25310]2025-11-11T13:16:24.322Z <HassController:INFO> Service data: {"fields":{"date":{"example":"\"2019-04-20\"","selector":{"text":{"multiline":false,"multiple":false}}},"time":{"example":"\"05:04:20\"","selector":{"time":{}}},"datetime":{"example":"\"2019-04-20 05:04:20\"","selector":{"text":{"multiline":false,"multiple":false}}},"timestamp":{"selector":{"number":{"min":0,"max":9223372036854776000,"mode":"box","step":1}}}},"target":{"entity":[{"domain":["input_datetime"]}]}} [latest-25310]2025-11-11T13:16:24.322Z <Engine:ERR> Engine#1 reaction rule-mgb8pfhs:S step 0 perform x_hass_input_datetime.set_datetime failed: [Error] Not a parseable type for dictionary value @ data['date'] [-] [latest-25310]2025-11-11T13:16:24.322Z <Engine:INFO> Engine#1 action args: { "time": "10:45" } [latest-25310]2025-11-11T13:16:24.322Z <Engine:INFO> Resuming reaction Sätt Schema VVB i Home Assistant<AKTIV> (rule-mgb8pfhs:S) from step 1 [latest-25310]2025-11-11T13:16:24.323Z <HassController:INFO> HassController#hass perform x_hass_input_datetime.set_datetime on Entity#hass>input_datetime_vvb_natt with { "time": "03:00", "timestamp": 0 } [latest-25310]2025-11-11T13:16:24.323Z <HassController:INFO> HassController#hass: sending payload for x_hass_input_datetime.set_datetime on Entity#hass>input_datetime_vvb_natt action: { "type": "call_service", "service_data": { "date": (null), "time": "03:00", "datetime": (null), "timestamp": 0 }, "domain": "input_datetime", "service": "set_datetime", "target": { "entity_id": "input_datetime.vvb_natt" } } [latest-25310]2025-11-11T13:16:24.324Z <HassController:ERR> HassController#hass request 1762866984323<2025-11-11 14:16:24> (call_service) failed: [Error] Not a parseable type for dictionary value @ data['date'] [-] [latest-25310]2025-11-11T13:16:24.324Z <HassController:WARN> HassController#hass action x_hass_input_datetime.set_datetime({ "time": "03:00", "timestamp": 0 }) on Entity#hass>input_datetime_vvb_natt failed! [latest-25310]2025-11-11T13:16:24.324Z <HassController:INFO> Service call payload: {"type":"call_service","service_data":{"date":null,"time":"03:00","datetime":null,"timestamp":0},"domain":"input_datetime","service":"set_datetime","target":{"entity_id":"input_datetime.vvb_natt"},"id":1762866984323} [latest-25310]2025-11-11T13:16:24.324Z <HassController:INFO> Service data: {"fields":{"date":{"example":"\"2019-04-20\"","selector":{"text":{"multiline":false,"multiple":false}}},"time":{"example":"\"05:04:20\"","selector":{"time":{}}},"datetime":{"example":"\"2019-04-20 05:04:20\"","selector":{"text":{"multiline":false,"multiple":false}}},"timestamp":{"selector":{"number":{"min":0,"max":9223372036854776000,"mode":"box","step":1}}}},"target":{"entity":[{"domain":["input_datetime"]}]}} [latest-25310]2025-11-11T13:16:24.324Z <Engine:ERR> Engine#1 reaction rule-mgb8pfhs:S step 1 perform x_hass_input_datetime.set_datetime failed: [Error] Not a parseable type for dictionary value @ data['date'] [-] [latest-25310]2025-11-11T13:16:24.324Z <Engine:INFO> Engine#1 action args: { "time": "03:00", "timestamp": 0 } [latest-25310]2025-11-11T13:16:24.325Z <Engine:INFO> Resuming reaction Sätt Schema VVB i Home Assistant<AKTIV> (rule-mgb8pfhs:S) from step 2 [latest-25310]2025-11-11T13:16:24.325Z <Engine:INFO> Sätt Schema VVB i Home Assistant<AKTIV> all actions completed.
Multi-System Reactor
Reactor Version 25310 : Office Light control via rule in reactor no longer working since last update.
P
Hello, I currently have an office light (connected via a Leviton Zwave Dimmer switch) controlled from a Gen5 Aeotech Zwave switch installed on my Synology 720+ NAS. I run HA(2025.11.10) in a virtual machine from my NAS and Reactor on the container manager of the same NAS. Prior to updating to 25304 the rule I had set to turn the light on to a specific dimming value worked correctly. Now the rule appears to follow the decision tree, however the reaction does not trigger setting the dimming or turning on the office light? Strangely I can still turn the light on and off as well as dim it directly from HASS..? I have tried using the ''try this action'' button in the rules reaction setting and it will not control the light and does not throw an error flagÉ Please help, P.S Reactor has been rock steady for me over the last few years and I'm a big fan of this solution.
Multi-System Reactor
Shelly Wall Display XL
therealdbT
I don't know if you guys are into dashboards, but I am. For a second home I tried the Shelly Wall Display 2, and while not so big, it worked well over the summer. Since we're remodeling our house, I just swapped my old Fire Tablet (with its own problems) with two new Shelly Wall Display XL. I just removed the standard firmware, and I added mine (https://github.com/dbochicchio/ShellyElevate), forked from https://github.com/RapierXbox/ShellyElevate I just managed to support buttons (this thing has 4 of them) and it's all auto-discovered by Home Assistant and accessible via Reactor. I also have a new build in the works with support for buttons inside HA. I added a bonus Javascript interface sending events (screen/screensaver status, buttons, motion) to automatically drive the dashboard (all doing in HTML+Javascript and monitoring Reactor's variable). This specifical thing excluded, go get one of them, the device has a decent CPU for HA dashboards and blends wonderfully in the decor.
Hardware
[Solved] alarm() in global expression throws error in log.
CrilleC
Topic thumbnail image
Multi-System Reactor
[Solved] Define function issue in latest-25304
CrilleC
Topic thumbnail image
Multi-System Reactor
No Upgrade Notification for Build 25308?
CatmanV2C
FWIW I'm no longer getting a notification from MSR that there's an update. Just thought I'd mention it C
Multi-System Reactor
Strange behavior in MSR latest-25304 with disabled groups in Reaction
therealdbT
Topic thumbnail image
Multi-System Reactor
Do you Matter?
akbooerA
Is anyone using the Matter protocol to connect devices?
General Discussion
[Reactor] Variables not updating correctly in latest-25201-2aa18550
therealdbT
Topic thumbnail image
Multi-System Reactor
The reaction stopped working (Google Nest max playing a video)
F
Topic thumbnail image
Multi-System Reactor
Caution: zwave-js-ui docker 11.4.0 is broken
toggledbitsT
About 20 hours ago, the author of zwave-js-ui posted build 11.4.0 of that product, and it contains an error and won't start (at all) under docker. The author is aware and working on a fix. In the meanwhile, stick with 11.3.1 or earlier. Ref: Issue 4401
Software
Handling Dead Entities and Renamed Entities
PablaP
Hello all.. been a minute! I recently rebuilt my Z wave network and migrated to a new z wave stick. In order to prevent any downtime I kept my original z wave network up and ran a docker version of Z Wave JS UI with my new controller. This way I could add device by device without having any devices down. I finally moved all the devices over to my new stick today. The final step was to migrate everything from my Docker instance of Z Wave JS UI to the HA add-on of Z Wave JS UI. However during this migration some of the names didn't populate correctly which I later managed to import back into Z Wave JS UI. The issue was in Reactor it is stuck on the default names and the entities are not updating. I removed the controller from Reactor, restarted, hard refreshed, and added the controller back however the new entity names have not updated. Also it seems like the old entities from my previous instance of Z Wave JS UI are lingering and not being marked as dead (I believe a certain amount of time needs to lapse before they're marked as dead in Reactor). My goal is to basically purge all the entities for the 'ZWaveJS' controller in Reactor so it can pull all the updated entity names and only the entities that exist in Z Wave JS UI. I cannot find a quick way to do this, I know entities can be deleted one by one, but with over 100 entities this would take long I am guessing that if I added the controller with a new name in in the Reactor config it would pull the updated entities and names but I think that would break my rules since the entity IDs would change (I made sure to name all the entities the exact same as they were previously to prevent this issue).
Multi-System Reactor
Strange behavior for MQTT templates using payload and attributes
therealdbT
Topic thumbnail image
Multi-System Reactor
[MSR] reactor-mqtt-contrib package for additional MQTT templates
therealdbT
I'm slowly migrating all my stuff to MQTT under MSR, so I have a central place to integrate everything (and, in a not-so-distant future, to remove virtual devices from my Vera and leave it running zwave only). Anyway, here's my reactor-mqtt-contrib package: https://github.com/dbochicchio/reactor-mqtt-contrib Simply download yaml files (everything or just the ones you need) and you're good to go. I have mapped my most useful devices, but I'll add others soon. Feel free to ask for specific templates, since I've worked a lot in the last weeks to understand and operate them. The templates are supporting both init and query, so you have always up-to-date devices at startup, and the ability to poll them. Online status is supported as well, so you can get disconnected devices with a simple expression. Many-many thanks to @toggledbits for its dedication, support, and patience with me and my requests
Multi-System Reactor
HA 2025.9.4 Supported Yet?
CatmanV2C
Tangentially did I miss 2025.9.4 getting blessed in MSR? I've been holding off Cheers C
Multi-System Reactor
About
Posts
340
Topics
36
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • Reactor w/HA 2025.11 error on set_datetime service call setting only time
    CrilleC Crille

    Sounds good, thank you for your work!

    Multi-System Reactor

  • Reactor w/HA 2025.11 error on set_datetime service call setting only time
    CrilleC Crille

    OK, thanks. Strange because it works in developer tools for me...
    date_time.PNG

    Multi-System Reactor

  • There is an alternative to homebridge-mqttthing
    CrilleC Crille

    Just throwing out a general hint to the people running Homebridge and MQTT.

    Homebridge MQTT-Thing hasn't been updated in almost 2 years and it falls behind on compatibility with the development of Homebridge.

    I was looking for a replacement and found Homebridge Easy MQTT and I think it's a good replacement for MQTT-Thing. I particularly find Easy MQTT Value tranformers easier to to understand and use compared to MQTT-Thing Apply function.

    It took a while to migrate everything but I'm pleased and can recommend.

    Software

  • Reactor w/HA 2025.11 error on set_datetime service call setting only time
    CrilleC Crille

    @toggledbits Do you know if this is related to that PR or is it a change they made in 2025.11.1?

    [latest-25310]2025-11-11T13:16:24.319Z <HassController:INFO> HassController#hass perform x_hass_input_datetime.set_datetime on Entity#hass>input_datetime_vvb_dag with { "time": "10:45" }
    [latest-25310]2025-11-11T13:16:24.320Z <HassController:INFO> HassController#hass: sending payload for x_hass_input_datetime.set_datetime on Entity#hass>input_datetime_vvb_dag action: { "type": "call_service", "service_data": { "date": (null), "time": "10:45", "datetime": (null), "timestamp": (null) }, "domain": "input_datetime", "service": "set_datetime", "target": { "entity_id": "input_datetime.vvb_dag" } }
    [latest-25310]2025-11-11T13:16:24.321Z <HassController:ERR> HassController#hass request 1762866984320<2025-11-11 14:16:24> (call_service) failed: [Error] Not a parseable type for dictionary value @ data['date'] [-]
    [latest-25310]2025-11-11T13:16:24.321Z <HassController:WARN> HassController#hass action x_hass_input_datetime.set_datetime({ "time": "10:45" }) on Entity#hass>input_datetime_vvb_dag failed!
    [latest-25310]2025-11-11T13:16:24.321Z <HassController:INFO> Service call payload:
    {"type":"call_service","service_data":{"date":null,"time":"10:45","datetime":null,"timestamp":null},"domain":"input_datetime","service":"set_datetime","target":{"entity_id":"input_datetime.vvb_dag"},"id":1762866984320}
    [latest-25310]2025-11-11T13:16:24.322Z <HassController:INFO> Service data:
    {"fields":{"date":{"example":"\"2019-04-20\"","selector":{"text":{"multiline":false,"multiple":false}}},"time":{"example":"\"05:04:20\"","selector":{"time":{}}},"datetime":{"example":"\"2019-04-20 05:04:20\"","selector":{"text":{"multiline":false,"multiple":false}}},"timestamp":{"selector":{"number":{"min":0,"max":9223372036854776000,"mode":"box","step":1}}}},"target":{"entity":[{"domain":["input_datetime"]}]}}
    [latest-25310]2025-11-11T13:16:24.322Z <Engine:ERR> Engine#1 reaction rule-mgb8pfhs:S step 0 perform x_hass_input_datetime.set_datetime failed: [Error] Not a parseable type for dictionary value @ data['date'] [-]
    [latest-25310]2025-11-11T13:16:24.322Z <Engine:INFO> Engine#1 action args: { "time": "10:45" }
    [latest-25310]2025-11-11T13:16:24.322Z <Engine:INFO> Resuming reaction Sätt Schema VVB i Home Assistant<AKTIV> (rule-mgb8pfhs:S) from step 1
    [latest-25310]2025-11-11T13:16:24.323Z <HassController:INFO> HassController#hass perform x_hass_input_datetime.set_datetime on Entity#hass>input_datetime_vvb_natt with { "time": "03:00", "timestamp": 0 }
    [latest-25310]2025-11-11T13:16:24.323Z <HassController:INFO> HassController#hass: sending payload for x_hass_input_datetime.set_datetime on Entity#hass>input_datetime_vvb_natt action: { "type": "call_service", "service_data": { "date": (null), "time": "03:00", "datetime": (null), "timestamp": 0 }, "domain": "input_datetime", "service": "set_datetime", "target": { "entity_id": "input_datetime.vvb_natt" } }
    [latest-25310]2025-11-11T13:16:24.324Z <HassController:ERR> HassController#hass request 1762866984323<2025-11-11 14:16:24> (call_service) failed: [Error] Not a parseable type for dictionary value @ data['date'] [-]
    [latest-25310]2025-11-11T13:16:24.324Z <HassController:WARN> HassController#hass action x_hass_input_datetime.set_datetime({ "time": "03:00", "timestamp": 0 }) on Entity#hass>input_datetime_vvb_natt failed!
    [latest-25310]2025-11-11T13:16:24.324Z <HassController:INFO> Service call payload:
    {"type":"call_service","service_data":{"date":null,"time":"03:00","datetime":null,"timestamp":0},"domain":"input_datetime","service":"set_datetime","target":{"entity_id":"input_datetime.vvb_natt"},"id":1762866984323}
    [latest-25310]2025-11-11T13:16:24.324Z <HassController:INFO> Service data:
    {"fields":{"date":{"example":"\"2019-04-20\"","selector":{"text":{"multiline":false,"multiple":false}}},"time":{"example":"\"05:04:20\"","selector":{"time":{}}},"datetime":{"example":"\"2019-04-20 05:04:20\"","selector":{"text":{"multiline":false,"multiple":false}}},"timestamp":{"selector":{"number":{"min":0,"max":9223372036854776000,"mode":"box","step":1}}}},"target":{"entity":[{"domain":["input_datetime"]}]}}
    [latest-25310]2025-11-11T13:16:24.324Z <Engine:ERR> Engine#1 reaction rule-mgb8pfhs:S step 1 perform x_hass_input_datetime.set_datetime failed: [Error] Not a parseable type for dictionary value @ data['date'] [-]
    [latest-25310]2025-11-11T13:16:24.324Z <Engine:INFO> Engine#1 action args: { "time": "03:00", "timestamp": 0 }
    [latest-25310]2025-11-11T13:16:24.325Z <Engine:INFO> Resuming reaction Sätt Schema VVB i Home Assistant<AKTIV> (rule-mgb8pfhs:S) from step 2
    [latest-25310]2025-11-11T13:16:24.325Z <Engine:INFO> Sätt Schema VVB i Home Assistant<AKTIV> all actions completed.
    
    Multi-System Reactor

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

    Yes sir, your magic has worked for sure!
    No more errors, thank you very much.

    Multi-System Reactor

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

    New variable, another entity but same error with alarm()
    There must be something off in my system then.

    [latest-25310]2025-11-07T17:14:14.037Z <Engine:NOTICE> Engine#1 creating global expression neverusedbeforevariable
    [latest-25310]2025-11-07T17:14:14.039Z <Engine:CRIT> Engine#1 alarm() scheduled neverusedbeforevariable tick for 1762535669039<2025-11-07 18:14:29> = now 1762535654039<2025-11-07 18:14:14> + delay 15000
    [latest-25310]2025-11-07T17:14:22.195Z <Engine:ERR> Engine#1: error evaluating expression neverusedbeforevariable: [ReferenceError] alarm() can only be used in global expressions [-]
    [latest-25310]2025-11-07T17:14:22.195Z <Engine:ERR> Engine#1: expression: alarm(15),
    getEntity( "vera>device_56" ).attributes.x_vera_svc_micasaverde_com_EnergyMetering1.momentary_active_import
    [latest-25310]2025-11-07T17:14:22.195Z <Engine:CRIT> ReferenceError: alarm() can only be used in global expressions [-]
    ReferenceError: alarm() can only be used in global expressions
        at /home/homebridge/reactor/server/lib/Engine.js:1455:23
        at _run (/home/homebridge/reactor/common/lexp.js:1704:34)
        at /home/homebridge/reactor/common/lexp.js:1426:29
        at Array.forEach (<anonymous>)
        at _run (/home/homebridge/reactor/common/lexp.js:1425:28)
        at Object.run (/home/homebridge/reactor/common/lexp.js:1855:24)
        at Engine._eval_expr (/home/homebridge/reactor/server/lib/Engine.js:1170:141)
        at Engine._expr_dependency (/home/homebridge/reactor/server/lib/Engine.js:1555:82)
        at /home/homebridge/reactor/server/lib/MessageBus.js:114:195
        at Array.forEach (<anonymous>)
    [latest-25310]2025-11-07T17:14:27.526Z <Rule:INFO> Notifiering - Auto off laddning poolrobot  (rule-md7japbd in Notifieringar) starting rule state evaluation; because entity-changed Switch#mosquitto-mqtt>laddning_poolrobot
    [latest-25310]2025-11-07T17:14:29.039Z <Engine:CRIT> Engine#1 neverusedbeforevariable alarm() tick
    [latest-25310]2025-11-07T17:14:29.039Z <Engine:CRIT> Engine#1 alarm() scheduled neverusedbeforevariable tick for 1762535684039<2025-11-07 18:14:44> = now 1762535669039<2025-11-07 18:14:29> + delay 15000
    [latest-25310]2025-11-07T17:14:30.681Z <Engine:ERR> Engine#1: error evaluating expression neverusedbeforevariable: [ReferenceError] alarm() can only be used in global expressions [-]
    [latest-25310]2025-11-07T17:14:30.681Z <Engine:ERR> Engine#1: expression: alarm(15),
    getEntity( "vera>device_56" ).attributes.x_vera_svc_micasaverde_com_EnergyMetering1.momentary_active_import
    [latest-25310]2025-11-07T17:14:30.681Z <Engine:CRIT> ReferenceError: alarm() can only be used in global expressions [-]
    ReferenceError: alarm() can only be used in global expressions
        at /home/homebridge/reactor/server/lib/Engine.js:1455:23
        at _run (/home/homebridge/reactor/common/lexp.js:1704:34)
        at /home/homebridge/reactor/common/lexp.js:1426:29
        at Array.forEach (<anonymous>)
        at _run (/home/homebridge/reactor/common/lexp.js:1425:28)
        at Object.run (/home/homebridge/reactor/common/lexp.js:1855:24)
        at Engine._eval_expr (/home/homebridge/reactor/server/lib/Engine.js:1170:141)
        at Engine._expr_dependency (/home/homebridge/reactor/server/lib/Engine.js:1555:82)
        at /home/homebridge/reactor/server/lib/MessageBus.js:114:195
        at Array.forEach (<anonymous>)
    
    Multi-System Reactor

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

    Sorry but no

    Multi-System Reactor

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

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

    Multi-System Reactor

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

    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 
    
    
    Multi-System Reactor

  • [Solved] alarm() in global expression throws error in log.
    CrilleC Crille
    [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?

    Multi-System Reactor

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

    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...

    Multi-System Reactor

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

    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.

    Multi-System Reactor

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

    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
    
    Multi-System Reactor

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

    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
    
    Multi-System Reactor

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

    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)

    Multi-System Reactor

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

    Understandable, thank you for the quick fix.

    Multi-System Reactor

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

    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
    
    
    Multi-System Reactor

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

    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.

    Multi-System Reactor

  • [Solved] Define function issue in latest-25304
    CrilleC Crille

    Super, thank you very much. You're the real MVP!

    Multi-System Reactor
  • Login

  • Don't have an account? Register

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