@cw-kid I have not been able to login since the 28/03.
As to rebel, just a little more blunt than you. As I see it someone was on a purge.
Shame they are purging people that help others, specially vera support, still plenty of support here though.
Elcid
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.@toggledbits I understand that you do not perform testing on Mac computers but thought I'd share the following with you in case something can be done.
I started seeing these errors with version 24302. I thought that upgrading to 24343 would have fixed the issue but unfortunately not. I either have to close the browser or clear the cache for the errors to stop popping-up but they slowly come back.
I see these errors on the following browsers:
Safari 16.6.1 on macOS Big Sur Safari 18.1.1 on MacOS Sonoma DuckDuckGo 1.118.0 on macOS Big Sur and Sonoma Firefox 133.0.3 on macOS Big Sur Chrome 131.0.6778 on macOS Big SurHere are the errors
Safari while creating/updating an expression
@http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:543:91 makeExprMenu@http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:537:28 @http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:92:64 @http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:89:68 each@http://192.168.0.13:8111/node_modules/jquery/dist/jquery.min.js:2:3133 @http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:89:35 @http://192.168.0.13:8111/client/MessageBus.js:98:44 forEach@[native code] @http://192.168.0.13:8111/client/MessageBus.js:95:54 @http://192.168.0.13:8111/client/MessageBus.js:106:44 @http://192.168.0.13:8111/client/Observable.js:78:28 signalModified@http://192.168.0.13:8111/reactor/en-ca/lib/js/ee.js:146:21 signalModified@http://192.168.0.13:8111/reactor/en-ca/lib/js/expression-editor.js:40:29 reindexExpressions@http://192.168.0.13:8111/reactor/en-ca/lib/js/expression-editor.js:71:32 @http://192.168.0.13:8111/reactor/en-ca/lib/js/expression-editor.js:608:40 dispatch@http://192.168.0.13:8111/node_modules/jquery/dist/jquery.min.js:2:40040DuckDuckGo while clicking on status
http://192.168.0.13:8111/reactor/en-ca/lib/js/reactor-ui-status.js:789:44 asyncFunctionResume@[native code] saveGridLayout@[native code] dispatchEvent@[native code] _triggerEvent@http://192.168.0.13:8111/node_modules/gridstack/dist/gridstack.js:1401:30 _triggerAddEvent@http://192.168.0.13:8111/node_modules/gridstack/dist/gridstack.js:1383:31 makeWidget@http://192.168.0.13:8111/node_modules/gridstack/dist/gridstack.js:968:30 addWidget@http://192.168.0.13:8111/node_modules/gridstack/dist/gridstack.js:388:24 placeWidgetAdder@http://192.168.0.13:8111/reactor/en-ca/lib/js/reactor-ui-status.js:183:44Firefox while updating a rule
@http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:543:91 makeExprMenu@http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:537:28 @http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:92:64 @http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:89:68 each@http://192.168.0.13:8111/node_modules/jquery/dist/jquery.min.js:2:3133 @http://192.168.0.13:8111/reactor/en-ca/lib/js/reaction-editor.js:89:35 @http://192.168.0.13:8111/client/MessageBus.js:98:44 forEach@[native code] @http://192.168.0.13:8111/client/MessageBus.js:95:54 @http://192.168.0.13:8111/client/MessageBus.js:106:44 @http://192.168.0.13:8111/client/Observable.js:78:28 notifySaved@http://192.168.0.13:8111/reactor/en-ca/lib/js/ee.js:82:21 notifySaved@http://192.168.0.13:8111/reactor/en-ca/lib/js/expression-editor.js:47:26 @http://192.168.0.13:8111/reactor/en-ca/lib/js/reactor-ui-rules.js:1460:39 forEach@[native code] @http://192.168.0.13:8111/reactor/en-ca/lib/js/reactor-ui-rules.js:1459:58Chrome while creating/updating an expression
TypeError: Cannot read properties of undefined (reading 'getEditor') at RuleEditor.makeExprMenu (http://192.168.0.13:8111/reactor/en-ca/lib/js/rule-editor.js:1788:86) at Object.handler (http://192.168.0.13:8111/reactor/en-ca/lib/js/rule-editor.js:2174:54) at http://192.168.0.13:8111/client/MessageBus.js:98:44 at Array.forEach (<anonymous>) at MessageBus._sendToBus (http://192.168.0.13:8111/client/MessageBus.js:95:54) at MessageBus.send (http://192.168.0.13:8111/client/MessageBus.js:106:44) at ExpressionEditor.publish (http://192.168.0.13:8111/client/Observable.js:78:28) at ExpressionEditor.signalModified (http://192.168.0.13:8111/reactor/en-ca/lib/js/ee.js:146:14) at ExpressionEditor.signalModified (http://192.168.0.13:8111/reactor/en-ca/lib/js/expression-editor.js:40:15) at ExpressionEditor.reindexExpressions (http://192.168.0.13:8111/reactor/en-ca/lib/js/expression-editor.js:71:18) ``Not sure that it is the same issue but just got this on built 24302 when running a reaction for testing purpose. Despite the error message, the reaction ran properly.
Error: Command timeout (195 start_reaction)
at _ClientAPI._commandTimeout (http://192.168.2.163:8111/client/ClientAPI.js:552:136)
1a3422eb-d760-4609-a740-a40d04a6bab2-Screenshot 2024-12-29 231851.png
Build 24343 has fully HTTP actions, so cool things could be created (see docs). I've recently changed a couple of cams because better definition and I've found tha Reolink has a couple of cams that have spotlights. While the spotlights are driven by motion (so the cam could record in color), I wanted to drive them directly, so in case of any "security" event, like alarm on, door open, etc, I could use the lights to have a better video and make - you know - light.
So, if you want to use HTTP actions in VirtualController, just go to config, entities under your VirtualEntityController section in reactor.yaml, and add this:
- id: cams_retro_spotlights name: "Retro Cam - Spotlights" template: Binary Switch # update the status at interval http_request: interval: 900 # 15m url: "http://192.168.1.31/cgi-bin/api.cgi?user=foo&password=foo" method: "POST" force_json: true headers: "Content-Type": "application/json" "Accept": "application/json" body: '[{"cmd": "GetWhiteLed", "action": 0 , "param": { "channel": 0 }}]' capabilities: power_switch: attributes: state: expr: "isnull( response ) ? null : response[0]?.value?.WhiteLed?.state == 1" default: false actions: "on": http_request: url: "http://192.168.1.31/cgi-bin/api.cgi?user=foo&password=foo" method: "POST" force_json: true headers: "Content-Type": "application/json" "Accept": "application/json" body: '[{"cmd": "SetWhiteLed", "param": { "WhiteLed": {"bright" : 100, "channel": 0, "mode": 1, "state": 1}}}]' target: state expr: "isnull( response ) ? null: response[0]?.value?.rspCode == '200'" "off": http_request: url: "http://192.168.1.31/cgi-bin/api.cgi?user=foo&password=foo" method: "POST" force_json: true headers: "Content-Type": "application/json" "Accept": "application/json" body: '[{"cmd": "SetWhiteLed", "param": { "WhiteLed": {"bright" : 100, "channel": 0, "mode": 1, "state": 0}}}]' target: state expr: "isnull( response ) ? null : response[0]?.value?.rspCode == '200' ? false : null"Reolink has API where you have to post a JSON and the response will give you a JSON (in theory). It's not really JSON, so force_json: true will do the trick for you. I'm lefting this as an example of cool things you could do with the new capabilites added/documented in 24343. HTH.
Thanks to @toggledbits for adding a custom CSS. I've started doing a darker Reactor style.
Here's the file: https://gist.github.com/dbochicchio/825098ac13b7f8cac22012eae37ff7ce
A couple of things are still too bright and I'll eventually catch-up. Just place it under your /config directory, naming the file as customstyles.css. Hard refresh your browser.
Hi
Having to rebuild my Linux Debian box as the SSD failed. And I have forgotten exactly what I did the first time to get it all setup.
I have Debian 12 up and running on the new SSD, I only have console no Desktop GUI.
I am trying to do the bare metal install for MSR. However I am not sure if I am meant to install nodejs whlist logged in as the root user or as the none root user with my name ?
I used putty and connected via SSH and logged in as root and I installed nodejs but I think this was wrong as when logged in as my user name and I do a node -v command it says node is not installed or doesn't show any version number anyway.
But when logged in as root and I do a node -v command it does show me its installed and displays the version number. maybe its a path issue for my username and he can't see node is installed?
So now I am thinking I should of installed node whilst logged in as my user name and not as the root user.
This is how I installed nodejs as whilst logged in as root
ac7bf6c3-23ad-46fc-8ada-44af6704e63e-image.png
Thanks in advance.
As the title says, here's my OpenAI Controller for Reactor:
OpenAI Controller per Reactor. Contribute to dbochicchio/reactor-openai development by creating an account on GitHub.
It supports both OpenAI and Azure OpenAI endpoints. You'll need keys/endpoints, according to each service.
The controller supports multiple models, and each one could be mapped as an entity.
It's quite easy to use, and responses can be stored in variables, for easy access. Or sent to another action (Text To Speech, another endpoint, etc).
9013ae50-fd68-42a2-87c3-97479132e465-image.png
80a88eec-7c89-464a-8196-690b4b72d044-image.png
Have fun with LLM into your scenes!
I've switched to a virtual entity with both power_switch and string_sensor capabilities to represent the current holiday.
The power switch is used to indicate if it's a public holiday (so, no school/work), while the string sensor is a string with the actual holiday (Easter, Christmas, Halloween, etc - we don't have thanksgiving), mostly to drive lights.
I build it with some static dates (mostly birthdays/anniversaries) and then the dynamics ones are taken from webcal.guru. My lights/scenes are linked to events this way and it's easier to manage it in the long run: just a bunch of group action in the reaction driving the lights. This part is outside Reactor for me (because, legacy), but it's not difficult to completly drive it off a virtual sensor or a custom controller.
I don't know how people are doing this, but I'm lefting a note for the ones looking for a working solution.
In Home Assistant I have an integration that if I add entities to it, I will get the following error in MSR as certain entity values I'm using in expressions are null for a moment. This is more or less cosmetic issue and happens very rarely as I rarely modify that integration on the hass side.
Screenshot 2024-11-28 at 22.20.41.png
And the expression is
Screenshot 2024-11-28 at 22.38.19.png
Could I "wrap" hass-entity shown above somewhat differently to prevent this error from happening? Using build 24302.
Hello
I am trying to set up Multi System Reactor to automate routines across multiple smart home devices & platforms (e.g., Home Assistant, SmartThings, and Hubitat). While I have successfully linked the systems; I am facing issues with:
-Delays in triggering actions on secondary devices.
-Inconsistent execution of complex logic conditions.
-Synchronization of states between devices when one system updates.
Is there a recommended way to optimize performance & confirm seamless state sharing across systems?
I have checked https://smarthome.community/category/22/multi-system-reactor-msbi guide for reference but still need advice.
Any tips on debugging or log analysis to pinpoint where the issue arises would also be appreciated.
Thank you !
Hello AK
Have been writing about the openLuup email server as I was tinkering with it the other day. One minor problem: it looks like the domain part of the email address eg ...@openLuup.local is case sensitive in openLuup.
Looking round the net, it suggests that the local part is case sensitive but the domain part is not meant to be. To keep things so they are more likely to work, it's suggested the email address should be totally case insensitive regardless. Refer to rfc2821 page 13 or search on the word "sensitive". Suffice to say I was using mail@openluup.local rather than mail@openLuup.local, so it didn't work for me.
Next challenge was that the file saved in /etc/cmh-ludl/mail has "Content-Transfer-Encoding: base64" so the body of the email was encoded:
Received: from ((openLuup.smtp) [ip_address_1] by (openLuup.smtp v18.4.12) [ip_address_2]; Tue, 26 Nov 2024 14:21:22 +1000 From: "dali@switchboard" <dali@switchboard> To: "mail@openLuup.local" <mail@openLuup.local> Subject: Warning form R2E. MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: base64 QXV0byBXYXJuaW5nOiBDb2xkIHN0YXJ0IGV2ZW50The above base 64 text translates to "Auto Warning: Cold start event".
Is it your preference to leave the saved files in the raw mode or would you consider translating the base64 text in the openLuup code base?
On a side note, does the reception of an email by openLuup generate some sort of trigger that can be watched. In the case above; the email represents the restoration of power after a power outage. I would like to know about that by the email triggering a "Telegram" notification on my mobile.
I see that the images@openLuup.local images@openLuup.local can be associated with I_openLuupCamera1.xml, which spawns a movement detector child. Anything similar for the other email addresses?
I've managed to use MSR UI on iOS devices to some degree*, so that although UI elements (e.g. rule sets) are not visible in portrait mode, you've seen them in landscape. Now with recents builds (24302) this does not work anymore, elements (rule sets, entities) are not anymore visible in landscape mode.
Does anyone have similar experiences? Using iOS 18 and Safari/Chrome browser.
( *Drag & drop of rule conditions have never worked on a mobile)
@toggledbits Since I have upgraded ZWaveJSController to 24293 from 24257 I am seeing entries related to registering action set_volume, but action is not defined by the capability 143 every time I restart Reactor.
The Siren seems to be doing what it is supposed to do. The volume levels are fine. Should I worry about it?
Reactor version 24302
ZWaveJSController version 24293
Z-Wave JS UI version 9.27.4
zwave-js version 14.3.4
I have an oven that I need to manage the temperature of, keeping it in the neighborhood of 600° C (1100° F). I have not been able to find a Zigbee-enabled solution to measure temps that high. Does anyone know if such a thing exists? If not, any ideas for how to roll a custom solution that I could integrate into a Sonoff ihost controller? I have no trouble finding high temperature probes, but none of them interface with my automation stack.
Hi All
Hopefully this place looks like a helpful forum as I’m quite new to all this!
I’ve had a few devices all working separately /through their proprietary apps but we’re just finishing off a large house extension and this has added to the list.
I’d ideally like to be able to view/switch a number of different devices on one screen/head end but have no idea where to start.
The devices we have/will have shortly are as follows;
Zigbee Smart Sockets
Zigbee smart switches (for lights)
Heatmiser Neo Underfloor Heating (this runs from a Samsung ASHP but that part is automatic)
Samsung VRF air conditioning (currently using Smart Things App)
Hive (2xLTHW heating circuits in the existing house and Hot Water)
Ring (doorbell!)
Hik Vision PoE CCTV
We have lots of appliances (Neff N70) which we can control remotely but not too fussed about controlling those at the
Moment)
Any help/recommendations would be appreciated!
Thanks
Adrian
After a major hassle got z-way running on my ubuntu 16 VM with a USB pasthough UZB1 stick including license and connected to Vera...
I see:
I also see:
0d6e8c78-c8cd-4307-9474-23e0d6a55094-image.png
But how do I update that?
e09ffa19-a31d-4a03-8983-01228bc5478f-image.png
I have a legacy home automation set-up running on Windows XP. the computer and software have now died.
I have written a very nice Excel VBA program to replace the software and it can run on any modern Windows system.
My only remaining problem is to output the correct signal to a USB port to trigger the wireless switches.
Has anybody done a similar exercise. Please help.
The locksmith is trying to persuade me to purchase the BE-TECH K35 touchscreen lock with both Wi-Fi and Bluetooth, claiming it's better than the Yale Assure Lock 2. What are your thoughts on this? Which one would you recommend?
Here is the link to the Chinese brand BE-TECH: BE-TECH Smart Deadbolt K3S.
The other smart lock I am considering is the Schlage Encode Plus.
Thank you!
Posts
-
Not so quiet around here :) -
My WanderingI am a Electrician. I installed hundreds of smart devices for others prior to having my own home automation. In 2013 I bought a new house and decided to make it smart. I did some homework and settled on Z-wave and VeraPlus.
My installation comprises of
25 Z-wave dimmer/switch inserts
3 Z-wave door sensors
10 sonoff devices(basics,TH16 and Mini) ,
4 Tuya(lamps and RGB strips) ,
6 shellys(connected to motion sensors and 2 controlling dead DIY bolts )
3 Amazon Dots(gen2)
2 Broadlink (RMPro's)
4 DIY RF Venetian Blinds
2 Multi button DIY remotes
1 NVR
1 Network drive/Media server/ftp server.
1 smart thermostat heating and hot water
4 wired 240v/battery Aico smoke and heat detectors (connect to zwave via Relays)
1 robot hover.
1 Siren
Node-red server running on android.
Testing openluup on android.
Automate App running on andorid Boxes/phones.
All tv's are connected to android boxes.
No windows PC.
Debian running on android box.
Plugins Reactor, AlexaTTS, Switchboard and Virtual HTTP Switch.I can control all of my devices from anyone of these platforms Vera/OpenLuup, Node-red, Automate(phone/tv box) or Alexa.
All devices have a standard/manual switch for anyone to control, and can be controlled even if my VeraPlus stopped working or internet out. My system is stable and may get a luup reload every couple of weeks.None of my sonoff's or tuya have been flashed. I found Shelly very late into game and will be using these more now i found them, as they offer local control.
I have some coding knowledge from the 90's, but have never worked in the industry.
-
Alarm ClockI now have node-red setting a silent switching of a v device, by saying "wake me up at [any time and/or day]". also depending which echo i use i can set a different v device, so different morning routines for each bedroom.
@catman you can also do all your H A Bridge devices in node red to, as it has the local hue lights bridge to. So you could replace H A Bridge with node-red. It would not be difficult to set a http request to set your virtual alarm.
-
First post to say helloHi to all, Thought i would join as not to miss out on anygood information that you developers may share here.
note- The input box for text does not display to well.I can not see what i am typing.
Android 8 full sreen on tv box using firefox mobile view.
If i use desktop view everything is ok. -
This is me@CatmanV2 said in This is me:
Well, if I see further, it's because I stand of the shoulders of giants. I've got where I got because of the experts here.
Well said.
-
Not so quiet around here :)Yes i am here, as always I will help anyone who asks.
Just for info - I have no idea what the reason for my suspension, I have contacted CS but they seem to be just ignoring my request for a clear reason.
As to GDPR if they run servers in europe then we are covered by GDPR, even if they move the servers to the US, as I think there is a privacy agreement with the US.
-
Setting RGB colour values0.5019607843137255, 0, 0.5019607843137255 You may want to round them. LOL
-
Removing Orange NotificationYes thanks for your efforts @DesT
-
Lua example http post request with json body-- https request json body -- Enable potentially unsafe lua code in, user account - security local https = require "ssl.https" local http = require "socket.http" local ltn12 = require "ltn12" local json = require "dkjson" local payload = {{"test", "test", null, 0}} --payload to be sent local request_body = { secret = "1.KAddd87s8s8FasL7-ze4KG_p5hrVg4Kee1-t3vnwGFhI=", to = "test@gmail.com", device = null, priority = "high", payload = payload } --the json body local response_body = {} request_body = json.encode(request_body) local r, c, h, s = https.request { url = 'https://llamalab.com/automate/cloud/message', method = 'POST', headers = { ["Content-Type"] = "application/json", ["Content-Length"] = string.len(request_body) }, source = ltn12.source.string(request_body), sink = ltn12.sink.table(response_body) }
-
Expressions and LuaXP FunctionsisNaN([1,2,3]) and isNaN("ten"/2) and isNaN("ten" + "eight") are all true
-
Video DoorbellsMy door is covered by a hidden microwave sensor. when triggered reactor sends a http request to my phone or tv box, depending on home or away. My phone/box uses Automate to receive the http request, Automate then opens the camera app and displays the camera. I can talk and listen though the camera app. Normally takes 5-10 seconds to complete. If i am home vera sends a TTS to alexa, informing me there is some one at the door.
-
node-red Alexa OpenLuup/Vera voice integrationHere is a simple integration of OpenLuup/vera device to Alexa via Node-red.
The speed is fast sub 1 second responses.
Requirements -
node-red.
alexa.
node-red-contrib-amazon-echo(local Hue devices).
openluup or Vera (or any controller via http requests).Capabilities-
Binary switch.
dimming switch.
rgb switch.
Run scenes.Each alexa device node is configured in the topic of the amazon-echo device node -
(device number#type of switch)
bnary - 123#binary.
dimming - 123#dimming.
rgb - 123#colour (W/D is default 310 to adjust colour temp add value to end e.g. 123#colour#300
scene - 123#scene#124 (123 on 124 off. 124 can be omitted).Enter the ip of your controller in the http request block.
Just copy code and import into Node-red[ { "id": "de7838ac.ebead", "type": "amazon-echo-hub", "z": "8659fc6b.981b4", "port": "8980", "processinput": "0", "discovery": true, "x": 150, "y": 840, "wires": [ [ "cd0ae070.e98378", "a605448.899d8b8", "21ca89ff.b0f6ce" ] ] }, { "id": "a605448.899d8b8", "type": "amazon-echo-device", "z": "8659fc6b.981b4", "name": "bedroom four", "topic": "199#colour", "x": 410, "y": 860, "wires": [ [ "688830f.c57775" ] ] }, { "id": "21ca89ff.b0f6ce", "type": "amazon-echo-device", "z": "8659fc6b.981b4", "name": "app safe", "topic": "164#binary", "x": 390, "y": 900, "wires": [ [ "688830f.c57775" ] ] }, { "id": "cd0ae070.e98378", "type": "amazon-echo-device", "z": "8659fc6b.981b4", "name": "lounge 1", "topic": "8#dimming", "x": 390, "y": 940, "wires": [ [ "688830f.c57775" ] ] }, { "id": "688830f.c57775", "type": "function", "z": "8659fc6b.981b4", "name": "", "func": "let types = {\n \"dimming\":[\"urn:upnp-org:serviceId:Dimming1\",\"SetLoadLevelTarget\",\"newLoadlevelTarget\"],\n \"binary\":[\"urn:upnp-org:serviceId:SwitchPower1\",\"SetTarget\",\"newTargetValue\"],\n \"scene\":[\"urn:micasaverde-com:serviceId:HomeAutomationGateway1\",\"RunScene\",\"SceneNum\"],\n \"colour\":[\"urn:micasaverde-com:serviceId:Color1\",{\"tt\":\"SetColor\",\"hs\":\"SetColorRGB\",\"ct\":\"SetColorTemp\"},{\"tt\":\"newColorTarget\",\"hs\":\"newColorRGBTarget\",\"ct\":\"newColorTempTarget\"}] \t\n}\nfunction binaryPayload(device, type, turnOn, payload) {\n payload.id = \"action\";\n payload.serviceId = type[0];\n payload.DeviceNum = device;\n payload.action = type[1];\n payload[type[2]] = (turnOn === true ? 1 : 0);\n payload.message = payload[type[2]];\nreturn payload;\n}\n\nfunction dimmingPayload(device, type, level, payload) {\n payload.id = \"action\";\n payload.serviceId = type[0];\n payload.DeviceNum = device;\n payload.action = type[1];\n payload[type[2]] = level;\n payload.message = level;\nreturn payload;\n}\nfunction scenePayload(device, type, turnOn, payload) {\n payload.id = \"action\";\n payload.serviceId = type[0];\n payload.action = type[1];\n payload[type[2]] = (turnOn === true ? device[0] : (device[2] || device[0]));\n payload.message =\"Run Scene \" + payload[type[2]];\nreturn payload;\n}\n\nfunction rgbPayload(device, types, msg, payload) { \n if(msg.on === true && msg.meta.changes.on === false && msg.meta[\"input\"].on === true){\n payload = binaryPayload(device[0], types[\"binary\"], msg.on, {});\n }else if (msg.meta.changes.percentage && msg.on === true){\n payload = dimmingPayload(device[0], types[\"dimming\"], msg.percentage, {});\n }else if (msg.on === true && msg.colormode === \"hs\"){\n payload.id = \"action\";\n payload.serviceId = types[\"colour\"][0];\n payload.DeviceNum = device[0];\n payload.action = types[\"colour\"][1][\"hs\"];\n payload[types[\"colour\"][2][\"hs\"]] = msg.rgb.join(\",\");\n payload.message = msg.rgb.join(\",\");\n }else if (msg.on === true && msg.colormode === \"ct\"){\n let diff = msg.ct - (Number(device[2]) || 310);\n msg.ct = (diff < 0) ? \"D\" + Math.min(Math.abs(diff * 1.7),255).toFixed() : \"W\" + Math.abs(Math.min((diff * 1.7),255) - 255).toFixed();\n payload.id = \"action\";\n payload.serviceId = types[\"colour\"][0];\n payload.DeviceNum = device[0];\n payload.action = types[\"colour\"][1][\"ct\"];\n payload[types[\"colour\"][2][\"ct\"]] = msg.ct;\n payload.message = msg.ct;\n }\nreturn payload;\n}\n\nmsg.topic = msg.topic.split(\"#\").map(Function.prototype.call, String.prototype.trim);\nmsg.hold = msg.payload;\nmsg.payload = {};\nlet type = msg.topic[1] || \"binary\";\nif(msg.topic[1] === \"scene\"){\n msg.payload = scenePayload(msg.topic, types[\"scene\"], msg.on, {});\n}else if (msg.topic[1] === \"binary\" || msg.percentage === 0 || msg.on === false){\n msg.payload = binaryPayload(msg.topic[0], types[\"binary\"], msg.on, {});\n}else if(msg.topic[1] ===\"dimming\"){\n msg.payload = dimmingPayload(msg.topic[0], types[\"dimming\"], msg.percentage, {});\n}else if (msg.topic[1] === \"colour\"){\n msg.payload = rgbPayload(msg.topic, types, msg, {});\n}\nlet error = [\"green\", msg.topic[1] + \" | \" + msg.topic[0], msg.payload.message];\ndelete msg.payload.message;\nif (Object.keys(msg.payload).length < 1){\n error[0] =\"red\";\n error[2] =\"failed to create payload\";\n}\nnode.status({\"fill\": error[0],\"shape\":\"ring\",\"text\": error[1] + \" | \" + error[2]});\n\nreturn msg;\n", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "x": 590, "y": 940, "wires": [ [ "680d28ae.8a163" ] ] }, { "id": "680d28ae.8a163", "type": "http request", "z": "8659fc6b.981b4", "name": "Get request", "method": "GET", "ret": "txt", "paytoqs": "query", "url": "http://192.168.1.11:3480/data_request", "tls": "", "persist": false, "proxy": "", "authType": "", "x": 760, "y": 1000, "wires": [ [ "cb471442.5d60c8" ] ] } ]
-
Expression to randomly run Global Reactions ?@cw-kid said in Expression to randomly run Global Reactions ?:
Ideally I'd like for a different colour each time to be selected, but I guess the expression for the random numbers could select the same number again and therefore the colour would not change for that cycle.
I use this to generate a random number that has not been used last time. In the reaction use express variable randomVal, once the reaction is over set randomVal to
${{int(split(join(split("1234567", randomVal || 0),""),"")[floor(random()*6)])}}
Then every time you get a different number. -
Expression to randomly run Global Reactions ?@cw-kid This is probably more efficient
${{int(substr(replace("1234567", randomVal || 0,""),floor(random()*6),1))}}
Then I looked at moving this to MSR as I have it in Reactor, . I found the remove function and this is now easily expanded to larger number and you can easily set a range
${{remove( 1..7, randomVal - 1)[floor(random()*6)]}}
@toggledbits , possible bug
list(1..7]) gives [[1,2,3,4,5,6,7]] a nested array.
Is that expected. -
Vera account suspended for a 1000 yearsStange, That post is still up. If that was the cause i would have thought it would have been removed to. If they keep up this tyrannical behaviour the forum will die a death of a thousand cuts.
-
Video Doorbells@sender
Be careful with the placement as these sensors can see through doors and thin walls, You can block the sensor with thin metal to stop false trips.
I mounted my sensor in meter cupboard and place a section of angle iron at bottom to stop trips from cats etc. The white box at bottom contains the sensor and Shelly
-
Interfacing Alexa with Reactor via Routines and Dimmer VSI use an expression set to 0, I update the variable using node-red local alexa(similar to HA Bridge) In reactor I have several RS's that monitor this expression variable for different values, if the reaction is triggered one of the actions will be to set the variable back to 0. You must have no actions in the false reaction, as when expression is reset to 0 the true action will stop as reactor would want to run the false actions. So far no issues. i have 4 RS's monitoring this variable for different values, but it is unlimited.
-
Why is this Green and ticked when its not true ? And how to do ORYes will fire/go true, if one or more windows,
You can also add time condition, say you wanted to wait 60 seconds just in case some one just opened window for a few seconds.
click 3 dots for other options on trigger/condition -
Vera Alexa Plugin 7.32@librasun Have you tried to install JQuery on the vera, it's is now available with 7.32
-
Video DoorbellsI use a
https://www.ebay.co.uk/itm/AC-110-220V-Microwave-Radar-Sensor-Switch-Body-Motion-Detector-for-LED-Light/274176461640?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649
connected to a Shelly 1, which is integrated with @therealdb Virtul HTTP Switch as a sensor.