@toggledbits I installed the reactor plugin on the advice in the manual,
Could you please give me an advice here?
Warm regards,
Hans
Following on from my last thread, some progress has been made over the weekend.
With 18G of spanky RAM in my Synology DS224+. I've jumped into the murky world of virtualisation and already eliminated the need for two Raspberry Pi's from my system.
Home Assistant: In theory they provide an OVA file which is supported by the Synology. I couldn't get it to work, however, so grabbed a copy of the .img file they supply, renamed it .iso and imported it as a VM. Restored from my full back up and that all seems fantastic.
Minidnla Music server: Trivial. Grabbed a Debian .iso for Bookworm and copied that onto the NAS. Created a new machine which mirrored the specs of the Raspberry Pi, booted from the ISO then did an expert install. Once that was all stable with a basic core of stuff and networking, I've made a copy of that as a good base system. Then fired up minidnla on it, mounted my media and that's also woking. Not bad for a short weekend's work.
Still not sure about the main NUC though. I'm thinking of buying a new USB stick so I can mess around getting it working on the Synology before I do anything drastic.
Once that hurdle is sorted I'm torn between:
Using a brand new install of Bookworm, re-installing Z-way server, OpenLuup, AltUI, MSR and HA bridge, then restoring across or Making an ISO of the current system, importing that and upgrading in place (which will be pretty risk free since I can snapshot everything before I make any changes.)Decisions, decisions.
C
Morning, experts. Hard on learning about the internet check script in MSR tools, I was wondering what suggestions anyone has about a local (i.e. non-internet dependent) notification method.
This was prompted by yesterday's fun and games with my ISP.
I've got the script Cronned and working properly but short of flashing a light on and off, I'm struggling to think of a way of alerting me (ideally to my phone)
I guess I could set up a Discord server at home, but that feels like overkill for a rare occasion. Any other suggestions?
TIA
C
Hi everyone. Thanks for all your input recently on the topic of local notifications. I think we got some really interesting solutions 🙂
Back to more prosaic matters. Most of you will know that I've been messing around with this stuff for some years. My last major change was when I migrated from Vera, which was something like 4-5 years ago.
While my system has grown, it's not really altered very regularly, although I try to keep most of it kind of up to date.
Current set up:
Intel NUC that runs:
Bare metal install of Debian
Z-way server with Z-wave.me USB stick
Openluup
Altui
Multi system reactor
HA Bridge
Mosquito
Raspberry Pi
Running Home Assistant
About 40 varied Z-wave and Wifi devices
I also have a Synology DS224+ which may inform some responses.
Home Assistant recovery is pretty simple. I get a full backup of the system every night dumped onto my SAN and I know from experience that it would simply be a case of booting up a new install and feeding it the backup.
The NUC on the other hand....
Coming from a commercial IT world, I am becoming more and more conscious that I don't really feel I have a suitable disaster recovery plan, and my core system is running on hardware heading for 10 years old.
My initial thought, which I've kept putting off as it's awkward would be to grab a nice SSD, reboot the NUC into Mint or something similar and simply do a dd copy onto a new drive. I can get a replacement NUC on ebay simply enough, and keep it in a cupboard if anything other than the hard drive fails on the existing one, but this feels rather like a stop gap. However one immediate question:
If I had to use the replacement NUC would all the Z-wave devices simply carry on talking to the stick, or would they all need to be re-paired?
How easy would it be to move everything the NUC does (as a start) onto the NAS? Create a VM and clone the disc onto it?
Should I move to Docker? Something else?
What are the hive mind's thoughts?
Apologies if we've done this before, but while it all just works...
Cheers!
C
Morning world. Looking for some thoughts on recent experience 🙂
Yesterday my ISP had something of a catastrophic failure (in theory not yet fixed but seems OK for now)
While this is annoying for several reasons, one thing that I wasn't expecting was for AltUI to become pretty much un-usable.
Unless I have a tab already open and active, connecting to the Home page is pretty much random / impossible, just presenting with a white page and (sometimes) 'Waiting for initial data' on the bottom. Everything works (i.e. where I have controllers or Reactions I can trigger, they function flawlessly) it's just something of a pain since 99.9% of my control is via Alexa now, and not being able to access devices in AltUI makes things like turning some lights of a bit tricky 😉
I suspect that this is due to AltUI trying to pull licence info and Weather data, and failing. What I should do is probably access the OpelLuup console direct and see if that works better in future.
Does that make sense to anyone, or am I completely off track?
Cheers
C
Hi all. First post so please be gentle.
I have an Eachen two-gang smart wall switch wired no neutral (with capacitor) connected to existing bathroom lights which works perfectly. It's also wired to a Sonoff Mini R4 Extreme connected to LED lights. I want the LED lights to switch on when the bathroom lights switch on (and vice versa). The Mini R4 works separately on my phone via Ewelink as well as on the Mini R4 itself (physical button). The switch is installed inside the wall and the rest of the components are in the ceiling / attic / roof cavity. The Mini R4 is set to Edge switch mode which works in my example I wired.
How I wired it:
cb919874-6933-460a-8cd0-f063bac88674-image.png
I have a video showcasing the example I wired today works. I could share it if required. Ignore the white cable. I only used it to power the example.
77ebbc23-83de-48ee-a4bf-247bfd24f121-image.png
3827ede6-cf5c-47aa-8fdb-c75470101c4a-image.png
The wiring diagram I used for the mini R4.
485de912-e656-4da3-b6f6-81cb076e0261-image.png
I wired it together with the existing lights of the bathroom so that L1 switches on both the Mini R4 and the bathroom lights:
a3ea5c93-a9ae-4aaf-8dce-24018bcdb4d1-image.png
This is the wiring diagram for the Eachen switch:
b867a3c7-c1ac-428c-a90f-7f0f4b62a609-image.png
The Eachen's first gang (L1) doesn't trigger the Mini R4 in any way.
Any help or advice will be much appreciated.
Thanks,
R
Hi,
I'm trying to integrate the sonos-mqtt (https://sonos2mqtt.svrooij.io/) with the MSR and it's coming along nicely so far.
But cannot wrap my head around how to define custom capabilities in MQTT templates. I need this for the TTS announcements and similarly for the notification sounds where I would pass the sound file as parameter.
So this is what I have in the local_mqtt_devices.yaml
capabilities: x_sonos_announcement: attributes: actions: speak: arguments: text: type: string volume: type: int delay: type: intAnd this is the template:
templates: sonos-announcement: capabilities: - x_sonos_announcement actions: x_sonos_announcement: speak: topic: "sonos/cmd/speak" payload: expr: > { "text": parameters.text, "volume": parameters.volume, "delayMs": parameters.delay, "onlyWhenPlaying": false, "engine": "neural" } type: jsonSo the speak action should send something like this to topic sonos/cmd/speak
{ "text": "message goes here", "volume": 50, "delayMs": 100, "onlyWhenPlaying": false, "engine": "neural" }At startup the MSR seems to be quite unhappy with my configuration:
reactor | [latest-25016]2025-02-09T08:19:59.029Z <MQTTController:WARN> MQTTController#mqtt entity Entity#mqtt>sonos-announcement unable to configure capabilities [Array][ "x_sonos_announcement" ] reactor | i18n: missing fi-FI language string: Configuration for {0:q} is incomplete because the following requested capabilities are undefined: {1} reactor | i18n: missing fi-FI language string: Configuration for {0:q} has unrecognized capability {1:q} in actions reactor | Trace: Configuration for {0:q} is incomplete because the following requested capabilities are undefined: {1} reactor | at _T (/opt/reactor/server/lib/i18n.js:611:28) reactor | at AlertManager.addAlert (/opt/reactor/server/lib/AlertManager.js:125:25) reactor | at MQTTController.sendWarning (/opt/reactor/server/lib/Controller.js:627:30) reactor | at MQTTController.start (/var/reactor/ext/MQTTController/MQTTController.js:268:26) reactor | at async Promise.allSettled (index 0) Configuration for "sonos-announcement" has unrecognized capability "x_sonos_announcement" in actions Controller: MQTTController#mqtt Last 10:21:37 AM Configuration for "sonos-announcement" is incomplete because the following requested capabilities are undefined: x_sonos_announcement Controller: MQTTController#mqtt Last 10:21:37 AMThis is probably a pretty stupid question and the approach may not even work at all, but maybe someone or @toggledbits for sure, could point me to the right direction.
Basically the idea is to be able to send TTS messages from reactions using entity actions. I've previously used HTTP requests to Sonos HTTP API (https://hub.docker.com/r/chrisns/docker-node-sonos-http-api/) for the same functionality, but since moving to sonos-mqtt, I need a way to send the TTS notifications using MQTTController. Along with the actual message, volume and delay must also be parameterizable.
br,
mgvra
MSR latest-25016-d47fea38 / MQTTController [0.2.24293]
Hi, @toggledbits
I just noticed that following a reboot of my raspberry pi, some of the rules, that I was expecting to recover, are not catching up following a reboot. I have made a simple test rule (rule-m6rz6ol1) with only "after Date/time" as trigger and "turn on a lamp" as a set reaction. All my infrastructure is on the same board so Reactor, Hass, Zwavejs, ... are all rebooting.
Here is the sequence of the test case (All time converted to Zulu to match logs):
Rule "after Date/Time" set to 14:05:00z Shutdown on Raspberry Pi at 14:04:00z Power back up at 14:08:00z Rule overview shows true as of 14:08:14z waiting for 00:00:00 in GUIFrom the log I can see that MSR is picking up the rule and knows that the state of the rule has changed from false to true and tries to send the update to HASS but failed with websocket error.
Here is what I see from the log:
14:04:04z shutdown complete 14:08:08z Power up 14:08:13.111z websocket connection 14:08:15:323z Reaction to the light failed, Websocket not opened After there is a series of websocket connection attempt until 14:08:51z where it seemed to be really ready.Back in 2021 we had a discussion (https://smarthome.community/topic/700/solved-start-up?_=1738766986566) and you proposed to add a startup_delay:xxxx and startup_wait:xxxx parameter in the engine section of "reactor.yaml". When I try the startup_delay (this used to be a hard delay), the engine failed to start (I think). I then try the startup_wait:xxxx without any success. Since it wait for the connection status to be up to cancel the delay, it does not do anyting since Hass is reporting the socket up without really being up ( I think...).
Questions:
Did I figured it all wrong? should the startup_delay:xxxxx have worked? Any ideas?Here is the log:
OK now I am stuck. I did add the log but when I submit the editor complained saying that I am limited to 32767 characters. The log from the shutdown to the time the websocket is stable is about 300000 character long. What are my options?
Not a big issue simply a request if easily doable.
The MSR logs files inside the container are owned by root witch is fine however, the permissions are very restrictive. I do not know if there is something wrong with my installation but the logs permission are set to 222 (write only). Even if the docker volume is set for Read/Write the log files are retaining these values.
I go around the problem by doing a chmod 777 on all reactor logs but every time there is an MSR log rotation the permissions are set back to 222. So unless the permission are implemented in the container there is no permanent solution to this (that I know of).
I do not know much about Docker container so I do not know what is involved here.
Can the logfiles permission be simply chaged in the container to at least allow "other" read permission?
Could the MSR log rotation routine implement a chmod to set the permission?
Just a small anoyance
Thanks
@toggledbits In the MSR documentation, under Standard Capabilities, I noticed that the
button.since attribute was deprecated as of version 22256 and the metadata is the preferred way to access the last-modified time of an attribute.
Am I reading this right? Should I stop using it in my rules?
Thanks
When on my bare metal RPi with MSR I had a rule that ran every minute to check Internet status via a script in MSR called reactor_inet_check.sh
I've moved to containerized MSR and see in the instructions that this cannot be run from the container.
The script cannot run within the Reactor docker container. If you are using Reactor in a docker container, the script needs to be run by cron or an equivalent facility on the host system (e.g. some systems, like Synology NAS, have separate task managers that may be used to schedule the repeated execution of tasks such as this).
I've put a script on my container host that calls the reator_inet_check.sh script and it isn't erroring... but I still see the internet status within MSR as null.
Before I go diving down the rabbit hole... should this work?
My cronjob on the proxmox host:
909fe6f0-77fd-4734-80a4-c9e354c910b6-image.png
The contents of msr_internet_check_caller.sh
16337528-cf31-4968-bffe-af1149f7103e-image.png
Just bought a couple of generic smart plugs and set them up easily using SmartLife app in the house I then plugged one into a workshop over 100m away This workshop has a hardwired internet connection with a separate wireless access router (not mesh) after doing a reset on the device and pairing to the new router it actually works from the house when my phone is connected to a completely separate wifi network - how is that possible ?
I did read something about these devices connecting to a server somewhere in China similar to IP cameras but there is no lag
I need to replace about 15 traditional wall light switches (no neutral wire) to turn on/off all lights with one operation inside the warehouse. And still maintain the ability to control each light individually.
The preference is not to set up a Wifi for each switch to reduce the number of devices connected to the network, and also, they change the Wifi password regularly, so they do not want to change all 15 switches.
I am looking for some solution that will achieve this with either Bluetooth/RF or any other technology.
The warehouse dimensions are about 100ftx100ft with sheetrock walls.
Please assist.
Background: this is a Windows MSR install I've done for our local pool/amenity center just to run some fans and lights (not my daily driver at home). Install went perfectly fine.
Scenario: I want the lights to go on when it's dark enough (even if during a storm, not just after sunset) so I'm using solarRadiation from my weather station to drive that Trigger. Easy stuff.
Issue: sometimes, someone goes in the office and just starts flipping switches and the result can be lights turned on in the daytime or off at night. I'm trying to create a "catch-all" wherein if it is daytime and the lights somehow find their way ON, they will turn themselves back OFF.
I have the following Reaction built:
b30eab5b-5a14-4a3a-8c9a-47e3e7e53dc3-image.png
I also have this Reaction for opposite, ie the lights find themselves turned off after dark and they will turn themselves back on:
5c6946b1-297c-4eb1-9618-74820979df29-image.png
Here are my two rules:
288cba86-f941-4157-86d9-d8e7487905f7-image.png *NOTE that in my manual testing, ie I turn on the light switch at the incorrect time, when the solarRadiation level changes the Lights ON rule flags and shows as SET. On the next change of solarRadiation it goes back to reset again.
My expectation is that Lights OFF rule should see the lights are on, the solarRadiation is above the set limit, and turn them off. Instead, every other run, the ON rule moves to SET and then reset again on the following run.
Logs appear angry:
[latest-25016]2025-01-26T22:03:31.696Z <Engine:INFO> Enqueueing "Lights ON<RESET>" (rule-m6e4ajh7:R) [latest-25016]2025-01-26T22:03:31.712Z <Engine:NOTICE> Starting reaction Lights ON<RESET> (rule-m6e4ajh7:R) [latest-25016]2025-01-26T22:03:31.713Z <Engine:INFO> Lights ON<RESET> all actions completed. [latest-25016]2025-01-26T22:03:42.565Z <wsapi:INFO> client "127.0.0.1#3" closed, code=1001, reason= [latest-25016]2025-01-26T22:03:42.753Z <httpapi:INFO> [HTTPAPI]#1 API request from ::ffff:127.0.0.1: GET /api/v1/lang [latest-25016]2025-01-26T22:03:42.754Z <httpapi:INFO> [HTTPAPI]#1 request for /api/v1/lang from ::ffff:127.0.0.1 user anonymous auth none matches /api/v1/lang ACL (#7): [Object]{ "url": "/api/v1/lang", "allow": true, "index": 7 } [latest-25016]2025-01-26T22:03:42.790Z <wsapi:INFO> wsapi: connection from ::ffff:127.0.0.1 [latest-25016]2025-01-26T22:03:42.839Z <wsapi:INFO> [WSAPI]wsapi#1 client "127.0.0.1#6" authorized [latest-25016]2025-01-26T22:03:43.353Z <httpapi:INFO> [HTTPAPI]#1 API request from ::ffff:127.0.0.1: GET /api/v1/systime [latest-25016]2025-01-26T22:03:43.353Z <httpapi:INFO> [HTTPAPI]#1 request for /api/v1/systime from ::ffff:127.0.0.1 user anonymous auth none matches /api/v1/systime ACL (#5): [Object]{ "url": "/api/v1/systime", "allow": true, "index": 5 } [latest-25016]2025-01-26T22:03:48.146Z <wsapi:INFO> client "127.0.0.1#6" closed, code=1001, reason= [latest-25016]2025-01-26T22:03:48.308Z <httpapi:INFO> [HTTPAPI]#1 API request from ::ffff:127.0.0.1: GET /api/v1/lang [latest-25016]2025-01-26T22:03:48.309Z <httpapi:INFO> [HTTPAPI]#1 request for /api/v1/lang from ::ffff:127.0.0.1 user anonymous auth none matches /api/v1/lang ACL (#7): [Object]{ "url": "/api/v1/lang", "allow": true, "index": 7 } [latest-25016]2025-01-26T22:03:48.346Z <wsapi:INFO> wsapi: connection from ::ffff:127.0.0.1 [latest-25016]2025-01-26T22:03:48.390Z <wsapi:INFO> [WSAPI]wsapi#1 client "127.0.0.1#7" authorized [latest-25016]2025-01-26T22:03:49.412Z <httpapi:INFO> [HTTPAPI]#1 API request from ::ffff:127.0.0.1: GET /api/v1/systime [latest-25016]2025-01-26T22:03:49.413Z <httpapi:INFO> [HTTPAPI]#1 request for /api/v1/systime from ::ffff:127.0.0.1 user anonymous auth none matches /api/v1/systime ACL (#5): [Object]{ "url": "/api/v1/systime", "allow": true, "index": 5 } [latest-25016]2025-01-26T22:03:52.734Z <wsapi:INFO> client "127.0.0.1#7" closed, code=1001, reason= [latest-25016]2025-01-26T22:03:52.891Z <httpapi:INFO> [HTTPAPI]#1 API request from ::ffff:127.0.0.1: GET /api/v1/lang [latest-25016]2025-01-26T22:03:52.892Z <httpapi:INFO> [HTTPAPI]#1 request for /api/v1/lang from ::ffff:127.0.0.1 user anonymous auth none matches /api/v1/lang ACL (#7): [Object]{ "url": "/api/v1/lang", "allow": true, "index": 7 } [latest-25016]2025-01-26T22:03:52.925Z <wsapi:INFO> wsapi: connection from ::ffff:127.0.0.1 [latest-25016]2025-01-26T22:03:52.965Z <wsapi:INFO> [WSAPI]wsapi#1 client "127.0.0.1#8" authorized [latest-25016]2025-01-26T22:03:54.383Z <httpapi:INFO> [HTTPAPI]#1 API request from ::ffff:127.0.0.1: GET /api/v1/systime [latest-25016]2025-01-26T22:03:54.384Z <httpapi:INFO> [HTTPAPI]#1 request for /api/v1/systime from ::ffff:127.0.0.1 user anonymous auth none matches /api/v1/systime ACL (#5): [Object]{ "url": "/api/v1/systime", "allow": true, "index": 5 } [latest-25016]2025-01-26T22:04:01.590Z <wsapi:INFO> [WSAPI]wsapi#1 rpc_echo [Object]{ "comment": "UI activity" } [latest-25016]2025-01-26T22:04:39.646Z <Rule:INFO> Lights OFF (rule-m6e33ja3 in Atrium Lights) evaluated; rule state transition from RESET to SET! [latest-25016]2025-01-26T22:04:39.656Z <Rule:INFO> Lights ON (rule-m6e4ajh7 in Atrium Lights) evaluated; rule state transition from RESET to SET! [latest-25016]2025-01-26T22:04:39.663Z <Engine:INFO> Enqueueing "Lights OFF<SET>" (rule-m6e33ja3:S) [latest-25016]2025-01-26T22:04:39.665Z <Engine:INFO> Enqueueing "Lights ON<SET>" (rule-m6e4ajh7:S) [latest-25016]2025-01-26T22:04:39.668Z <Engine:NOTICE> Starting reaction Lights OFF<SET> (rule-m6e33ja3:S) [latest-25016]2025-01-26T22:04:39.669Z <Engine:NOTICE> Starting reaction Lights ON<SET> (rule-m6e4ajh7:S) [latest-25016]2025-01-26T22:04:39.669Z <Engine:INFO> Lights ON<SET> all actions completed. [latest-25016]2025-01-26T22:04:39.675Z <Rule:INFO> Lights OFF (rule-m6e33ja3 in Atrium Lights) evaluated; rule state transition from SET to RESET! [latest-25016]2025-01-26T22:04:39.680Z <Engine:NOTICE> ReactionHistory: no entry for [latest-25016]2025-01-26T22:04:39.683Z <Engine:NOTICE> [Engine]Engine#1 entry 256 reaction rule-m6e33ja3:S-1q2f1j0p: [Error] terminated [parent terminating] [latest-25016]2025-01-26T22:04:39.683Z <Engine:CRIT> Error: terminated [parent terminating] Error: terminated at Engine._process_reaction_queue (C:\Users\Jalan\msr\reactor\server\lib\Engine.js:1644:47) [latest-25016]2025-01-26T22:04:39.699Z <Engine:NOTICE> [Engine]Engine#1 entry 254 reaction rule-m6e33ja3:S: [Error] terminated [preempted by rule state change] [latest-25016]2025-01-26T22:04:39.699Z <Engine:CRIT> Error: terminated [preempted by rule state change] Error: terminated at Engine._process_reaction_queue (C:\Users\Jalan\msr\reactor\server\lib\Engine.js:1644:47) [latest-25016]2025-01-26T22:04:39.700Z <Engine:INFO> Enqueueing "Lights OFF<RESET>" (rule-m6e33ja3:R) [latest-25016]2025-01-26T22:04:39.704Z <Engine:NOTICE> Starting reaction Lights OFF<RESET> (rule-m6e33ja3:R) [latest-25016]2025-01-26T22:04:39.705Z <Engine:INFO> Lights OFF<RESET> all actions completed. [latest-25016]2025-01-26T22:05:48.822Z <Rule:INFO> Lights ON (rule-m6e4ajh7 in Atrium Lights) evaluated; rule state transition from SET to RESET! [latest-25016]2025-01-26T22:05:48.831Z <Engine:INFO> Enqueueing "Lights ON<RESET>" (rule-m6e4ajh7:R) [latest-25016]2025-01-26T22:05:48.847Z <Engine:NOTICE> Starting reaction Lights ON<RESET> (rule-m6e4ajh7:R) [latest-25016]2025-01-26T22:05:48.847Z <Engine:INFO> Lights ON<RESET> all actions completed.Hi @toggledbits
I found this very old post that talked about a way to limit device reading to avoid the throttled problem, because it's not a question of logic, it's that the device actually sends a lot of information, in my case the NUT ups installed in HE.
https://smarthome.community/topic/687/flapping-device?_=1737652139854
It mentions engine section of reactor.yaml by setting update_rate_limit, but I looked in the current MSR documentation and I can't find this information, so I don't know if it's still valid, its effect and parameters.
My situation is simple, when I have a UPS problem the NUT is sending dozens of reports per second and then I have the throttled problem. The same rule applies when the power is normal.
This is the rule, and the parameter that fails is the Tripp Lite UPS status.
cf9ddabf-3144-4e5a-80a4-0dc7664b9573-image.png
a813a077-974e-4737-897c-e383085b3d8f-image.png
All error is the same scenario.
[latest-25016]2025-01-23T12:01:32.753Z <Rule:WARN> (13) NUT Disconected (rule-l4djr0p7 in Warning) update rate 121/min exceeds limit (120/min)! Logic loop? Throttl> [latest-25016]2025-01-23T12:01:32.756Z <Rule:WARN> (27) Falta de Energia (rule-l4h9ceod in Warning) update rate 121/min exceeds limit (120/min)! Logic loop? Thrott> [latest-25016]2025-01-23T12:01:32.769Z <Rule:WARN> (73) UPS Battery Low (rule-l4hj850o in Warning) update rate 121/min exceeds limit (120/min)! Logic loop? Throttl> [latest-25016]2025-01-23T12:01:32.772Z <Rule:WARN> (74) UPS Comm Fail (rule-l4kbs5cp in Warning) update rate 121/min exceeds limit (120/min)! Logic loop? Throttlin> [latest-25016]2025-01-23T12:01:32.776Z <Rule:WARN> (76) UPS Utility Back (rule-l4hjhs6m in Warning) update rate 121/min exceeds limit (120/min)! Logic loop? Thrott> [latest-25016]2025-01-23T12:01:32.780Z <Rule:WARN> UPS On Battery (rule-l4hjuka5 in Datacenter) update rate 121/min exceeds limit (120/min)! Logic loop? Throttling> [latest-25016]2025-01-23T12:01:32.781Z <Rule:WARN> UPS Info (rule-l4gheo63 in Datacenter) update rate 121/min exceeds limit (120/min)! Logic loop? Throttling... [latest-25016]2025-01-23T12:01:40.757Z <Rule:WARN> (13) NUT Disconected (rule-l4djr0p7 in Warning) update rate 121/min exceeds limit (120/min)! Logic loop? Throttl> [latest-25016]2025-01-23T12:01:40.759Z <Rule:WARN> (27) Falta de Energia (rule-l4h9ceod in Warning) update rate 121/min exceeds limit (120/min)! Logic loop? Thrott> [latest-25016]2025-01-23T12:01:40.776Z <Rule:WARN> (73) UPS Battery Low (rule-l4hj850o in Warning) update rate 121/min exceeds limit (120/min)! Logic loop? Throttl> [latest-25016]2025-01-23T12:01:40.777Z <Rule:WARN> (74) UPS Comm Fail (rule-l4kbs5cp in Warning) update rate 121/min exceeds limit (120/min)! Logic loop? Throttlin> [latest-25016]2025-01-23T12:01:40.778Z <Rule:WARN> (76) UPS Utility Back (rule-l4hjhs6m in Warning) update rate 121/min exceeds limit (120/min)! Logic loop? Thrott>Thanks.
Hello -
Long time. Hope everyone is good.
I have a rule that looks at a number of temperature sensors around the house. It simply sends a general alert if any of them fall below their threshold. (A basic “House is too cold” alert for when we’re away)
Generally, this has worked well. But I was wondering if there’s a way to make the message somewhat dynamic without creating separate rules for each sensor.
E.g. “House is too cold due to Sump Temperature below 45 degrees.”
I thought I remember reading about someone doing this in the past but couldn’t find it.
Thanks for any ideas!
After upgrade from 24366 to 25016 toggle on Vera (openLuup) lock entity doesn't seem to work.
VeraController log level 5
24366:
25016:
[latest-25016]2025-01-20T20:30:25.457Z <VeraController:INFO> VeraController#vera perform action toggle.toggle on Lock#vera>device_10016 with [Object]{ } [latest-25016]2025-01-20T20:30:25.458Z <VeraController:5:VeraController.js:1210> VeraController#vera no configured implementation for toggle.toggle on Lock#vera>device_10016; calling super [latest-25016]2025-01-20T20:30:25.458Z <VeraController:INFO> VeraController#vera perform action lock.set on Lock#vera>device_10016 with [Object]{ "state": false } [latest-25016]2025-01-20T20:30:25.461Z <VeraController:5:VeraController.js:1255> VeraController#vera sending action request [Object]{ "newTargetValue": "0", "DeviceNum": 10016, "id": "action", "serviceId": "urn:upnp-org:serviceId:DoorLock1", "action": "SetTarget" } [latest-25016]2025-01-20T20:30:25.461Z <VeraController:5:VeraController.js:515> [VeraController:verarequest] requesting http://127.0.0.1:3480/data_request?newTargetValue=0&DeviceNum=10016&id=action&serviceId=urn%3Aupnp-org%3AserviceId%3ADoorLock1&action=SetTarget&output_format=json&_r=1737405025461 ([Object]{ }) [latest-25016]2025-01-20T20:30:25.463Z <VeraController:NOTICE> VeraController#vera action lock.set([Object]{ "state": false }) on Lock#vera>device_10016 succeededI tried to log an issue in Mantis Bug Tracker but I can't log in anymore?
Trying to understand what cause a local expresssion to be evaluated. I have read the manual but I am still not clear about it. Using the test rule below, I can see in the log that the rule is being automatically evaluated every time the temperature entity is changing. That is great...
What I am trying to understand is why the expression is not evaluated based on time as well since the "case" statement has time dependencies.
Any help would be appreciated
I have the following test rule:
eba6a3ea-ff61-4610-88c9-9b9864f11ff8-Screenshot 2025-01-21 095244.png
2d9c1ff5-7b73-4005-b324-9029c2709db9-Screenshot 2025-01-21 095302.png
Here is the expressioncode:
vFrom1 = "09:25:00", vFrom2 = "09:30:00", vFrom3 = "09:41:00", vTo = "10:55:00", # Get current time (format HH:MM:SS) vToDay = strftime("%H:%M:%S"), #Get current house temperature CurrentHouseTemp = getEntity( "hass>Thermostat2 " ).attributes.temperature_sensor.value, case when CurrentHouseTemp <= 19 and vToDay >= vFrom1 && vToDay <= vTo: "true1" # From1 when CurrentHouseTemp <= 20 and vToDay >= vFrom2 && vToDay <= vTo: "true2" # From2 when CurrentHouseTemp < 26 and vToDay >= vFrom3 && vToDay <= vTo: "true3" # From3 else "false" endI’ve set up an automation in Apple Home to turn on the lights when the first person arrives. However, the lights also turn on when I leave for work. It seems like the automation is triggered when I cross the geofence, whether arriving or leaving.
I’m using Matter-compatible Tapo smart plugs. Is there a way to fix this behavior?
Hi,
I started home automation in 2013 and using Vera controllers from the start. When Reactor plugin became available (super plugin of @toggledbits !!) I transferred all scenes to Reactor.
I must say everything here works still okay and I have a lot of devices, plugins and Reactors. But I fear at some point my Vera's will stop working.
I recognize many of your names here from the Vera forum. I also was banned a couple of years ago.
Recently I decided to switch to Home Assistant. I already transferred some of my zwave devices from Vera to HA and made some new automations.
I must say HA is great and with huge amount of integrations, add-ons, the HACS store and many examples (like blueprints) the opportunites to increase home automation are huge.
HA will be for sure my central system (incl UI)
But... the learning curve is quite steap (YAML is completely different from Lua/luup).
So for the time being I will keep my most complex Reactor automations.
I already found how I can connect/integrate Vera for binairy sensors via webhooks (as an example: changes in my home modes are directly send from Vera to HA).
Now I also want to use some data like sensors or Reactor variables automatically to HA via https requests (put those in Reactor).
I know I can create virtual sensors in HA via templates.
As an example: I have my own PWS with a rainmeter. In Reactor I compare the amount of rain (in mm) in the actual year with historical figures (past 15 years) and calculate the difference actual vs history in % Every day at 0.00h these figures are updated. I defined variables in Reactor and use Multistring plugin (Variable container) to show the data.
I know several specialists in coding with experience in both Vera and HA are active here on this forum.
Who can help me with this ?
And then MSR...
My first issue: I'm logged into the msr CT as reactor (I used the suggested username just to keep things simple as this is new space for me and I was high off my success of migrating HA over).
When I run
docker pull toggledbits/reactor:latest-amd64... it assigns the \reactor\ subdirectory where installed root ownership. I am absolutely logged in with the correct non-root user.
1c58aead-85ca-4b2c-8f48-c3d1f57d7fe3-image.png
Second issue: I copied over the following folders:
67e7e4a5-cee8-4de1-90c7-1df35f1070b9-image.png
When MSR loads, all of my Global Expressions are missing.
Third issue:
All controllers connect wonderfully (Hubitat, etc)... except HA.
After changing ownership of the logs to reactor again I can see this when MSR calls HA:
Yes, I created a fresh new long-lived access token for the MSR containerized install and updated the reactor.yaml config file correctly.
Honestly, all-in-all, for my total lack of expertise here I'm very pleased that I only have these three issues. But they are def blockers atm.
My RPi bare metal install of MSR hooked right up to the new HA and is humming along just fine (I used hostnames were possible and shuffled some IPs in other places so I wouldn't run into things later that were mapped incorrectly that I'd forgotten about.)
Proxmox 8.3.2 MSR lives in an Ubuntu 24.04 Proxmox container MSR is latest docker versionWhat else can I provide to those smarter than me here?
@toggledbits I installed the reactor plugin on the advice in the manual,
Could you please give me an advice here?
Warm regards,
Hans
I just installed the Reactor plugin for home assistant and tried to move my configuration by copying the reactor-data files to the same location in the home assistant files. Unfortunately this does not work.
I tried rebooting, restarting but the reactor in home assistant stays clean. I tried adding some rules, they do stick but I soo no difference in the reactor-files.
I guess I am missing something very obvious???
No idea what however.... So I would appreciate some pointers.
Warm regards
Hans
Aha, problem solved! Hitting the menu icon in the right top corner toggles the screen.
Hey guys,
is there a bug in the UI of MSR (and also in the history pane of HASS btw) or do I have an issue with my iPhone? Or am I the only iPhone 12 min user which seems unlikely.
I cannot use MSR on my iPhone, the right pane does not show up on the screen, just the left pane. This is the same on chrome and safari, also when I hold the phone horizontally.
I can simulate this on the MacBook when I crop the safari window.
Thanks a lot for your elaborate answer and explanation @toggledbits! I do appreciate this and it helps me further, also with other issues, to make better use of your wonderful tool! I was not aware of this ${{ }} construction and I have no idea from which language this syntax is but I guess it forces the bit in between to be evaluated.
Anyway, it solved the problem! Thanks a lot!!
Thanks @toggledbits , the variables I showed you in my earlier post and I corrected them zo they evaluate properly now into a string DeviceTrackerMessage which holds the friendly name of the devices offline, separated with comma's. As a string it does not have "" around it.
My rule has a lot of Entity Attribute checks of all devices checked on x_hass.state <> home and combined into an OR.
Then as a constraint I check the Variable Value DeviceTrackerMessage <> ""
And then the Set Reaction holds:
Entity Action hass>system x_hass_system.call_service with service: notify.my_device and the data: holding
{ "title": "Some devices failed: ", "message": XXXXX }
Where on the position of XXXX I tried all I could think of.
I know the rule might not be perfect yet but just testing the Set Reaction should generate a message. When replacing the XXXX with "test" I get a message.
Also I tried adding a variable called JSONString and populating that using to JSON but I cannot get the result to look like a JSON string nor to work.
Hope this helps.....
Thanks again for your help @toggledbits. I had been looking at the wrong place (in HASS) for the entities but your pointer was a great help also for other uses of reactor. The expressions are working like a charm now.
Still having trouble getting the JSON correct using the Variable though. I am using the x_hass_system.call_service and whatever I try it fails.
The string looks like:
{ "title": "The following devices fail: ", "message": XXXX } Where at the location of the XXXX I probably need a trick to insert the DeviceTrackerMessage with surrounding double quotes but I don't have a clue.
I even tried building the JSON into a global variable but it looks like the escape characters do not work or maybe I overlook something obvious.
Well, I have been trying to use the above example to get a message reporting LAN connectivity failure of devices in my network.
So I have set up an array with devices the Global expressions named DeviceTrackerList:
['hass>device_tracker_airport_time_capsule_van_hw','hass>device_tracker_airport_time_capsule_van_hw','hass>device_tracker_akita','hass>device_tracker_altherma_lan_adapter','hass>device_tracker_ap_bijkeuken' etc]
Then I run into problems defining the loop into a variable DeviceTrackerNotHome:
each id in DeviceTrackerList:getEntity( id).state == not_home ? id: null
Which returns the entire list. I have tried a few dozen of other options but either the entire list or an empty list is returned. Obviously my .state does not do the trick but what is the correct syntax to use here? (And where could I have found that myself?...)
Then the next step is to use the names of the failing devices in a message.
My last global variable is named DeviceTrackerMessage and holds
join(each id in DeviceTrackerNotHome:getEntity(id).name, ', ')
which returns a nice list of friendly names but I have no idea how to use that in my message.
I expected { "message": {DeviceTrackerMessage} }
to work but it did not and all other attempts to construct something failed as well.
So I do hope someone can help here to point out to me what is probably obvious but difficult for a novice user to see.
@toggledbits said in Sending HASS notifications from MSR:
and sys_system from the capabilities
Thanks, that did it!
@toggledbits Well, I have 21257 running now but still no hass>system entity... Only hass>controller. Should I enable something somewhere?
@toggledbits said in Sending HASS notifications from MSR:
It should be 21257
Thanks. It turns out that to upgrade a container on a QNAP you need to delete the old container first, than delete the image (which is locally stored as well) through the image menu and after that you can create a new image which will than all the real latest from the docker hub. Just specifying to get it from docker hub like I did the first time did not work, it used the locally stored image anyway.
@toggledbits And as an addition question on this new feature, is there any way to get for instance the friendly name of the trigger into the parameter section? I have for instance 9 doors which I would like to combine into one rule where, if one of them opens or closes, I get a message which tells me which door was opened/closed. It is not a big deal of course, I could easily have 9 rules but still would be nice also for other situations reporting temperatures and such.
@toggledbits, I tried but the hass>system entity is not there. I do have a hass>controller entity but no action to choose from. I am running your container on a qnap though so maybe selecting the latest build had no effect since you didn't rebuild that version? Or I did not manage to update the image in the right way. What I did was stopping the image, creating a new one using the latest-genereric-amd64 build and than starting that new image. It reports: Reactor (Multi-hub) latest-21243-a5028fc
@toggledbits holy cow, you are fast! I am going to try this out!
Yes I mean HASS native push messages to my iPhone. I would ;ike to stay with MSR for my automation instead of diving into the complexity of HASS automation, templates and blueprints but the notify action of MSR is limited to alert, email, prowl, pushover, syslog, callmebot and telegram. I would like to use the native messages and its different interruption levels
Hello anyone,
is there a simple trick to send native HASS notifications from MSR? I guess I could call a scene or something with some parameters but I have little experience so would need some clear pointers on this. Thanks in advance!
Thank, I will give it a spin and see where it leads me too!
I am trying to get rid of my Vera and moving to HA on Qnap.
It has been quite a challenge up to now especial since I have a NX584 so needed to set up a separate Pi for that but I keep on it.
My NX584 used to set the house modes and your reactor took care of the lights and the heating.
The house modes were nice although I would have preferred something more fancy like:
At home daylight
At home dark
At home alarm on
Away alarm on
Aha, I should have been able to figure that out myself but I had no idea that option existed. Thanks anyway, I just imported the file and it worked!
Thanks for your excellent work, your software is very intuitive as compared to others.
Is there any advice or good practice for replacing the vera house modes?
Aha, thanks for your swift response! Any pointer to which file(s) to use? There are a few hundred of them and multiple with Reactor in the name..