THIS IS GREAT!! You've made it very clear, thank you so much. I'm going to try it right now. Thank you for the detailed instructions. Reactor is a great plug-in!
-
ChatGPT samples:
Me:
Tell me about an iot program called openLuup.
It:
OpenLuup is an open source home automation system that is built on the VeraLuup platform. It is designed to be easy to install and configure, and provides users with a powerful and versatile way to control their home automation devices. OpenLuup offers a wide range of features, including support for many popular home automation devices, scheduling, scripting, and integration with other services. OpenLuup is designed to be customizable, allowing users to create their own home automation systems. It is an excellent choice for those looking to create their own home automation system without spending a lot of money.
Me:
Write an iot program using openLuup.
It:
--openLuup IoT Program-- -- Initialize Variables -- local device_id = "MyHomeDevice" local temperature_sensor_id = "MyTemperatureSensor" local temperature_threshold = 75 -- Create Devices -- luup.create_device("OpenLuup Temperature Sensor", 0, device_id, "D_GenericSensor1.xml", "I_GenericSensor1.xml", "S_TemperatureSensor1.xml", "") luup.variable_set("urn:upnp-org:serviceId:TemperatureSensor1", "CurrentTemperature", 0, device_id) -- Start Timer -- luup.call_delay("check_temperature", 10, "", false) --Function to Check Temperature-- function check_temperature() local current_temperature = luup.variable_get(temperature_sensor_id, "CurrentTemperature", 0) --Check Temperature Threshold-- if current_temperature >= temperature_threshold then --Send Alert-- luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "SendTextMessage", {PhoneNumber="1234567890", Message="ALERT! Temperature exceeded threshold!"}, 0) end --Reset Timer-- luup.call_delay("check_temperature", 10, "", false) endMe:
Write an iot program using openLuup.
It:
Write an iot program using openLuup. -- openLuup IOT Program -- -- Variables local lampState = false local lampTime = 0 -- Functions function lampTimer() if lampTime > 0 then lampTime = lampTime - 1 if lampTime == 0 then luup.variable_set('urn:upnp-org:serviceId:SwitchPower1', 'Status', 0, lampDeviceID) lampState = false end end end -- Setup luup.call_delay('lampTimer', 60, 0) -- Main Loop while true do -- Check for motion if luup.variable_get('urn:micasaverde-com:serviceId:MotionSensor1', 'Tripped', motionSensorDeviceID) == '1' then if not lampState then luup.variable_set('urn:upnp-org:serviceId:SwitchPower1', 'Status', 1, lampDeviceID) lampState = true -- Set lamp timer to 5 minutes lampTime = 300 end end luup.sleep(1) endWhat??
luup.sleep(1)Not good - looks like I still have some semblance of a job to fulfill.
Me:
An iot program called openLuup was written by akbooer. Who is akbooer?
It: (note: answer redacted and as I understand it, also incorrect re: AltUI):
akbooer is the pseudonym of the software developer and home automation enthusiast. He is the creator of the openLuup home automation software, which is an open-source version of the Vera home automation system. He is also the creator of the AltUI graphical user interface for openLuup.
Me:
Who created of the AltUI graphical user interface for openLuup.
and
Me:
Who created of the AltUI graphical user interface for the home automation system Vera.
Names two different people - mmmm.
Regardless very impressive - give it a few more years.
-
Some background
I have MQTTController based entities that I want to use in time calculations in my rules. These entities represent two separate time ranges, one for the weekdays and the other for the weekends. In this particular example they are used to control my doorbell activity (whether it's enabled or disabled).
MQTT message which is used to update the entities. NOTE: time is in 24h format
{ "data": { "weekdays": { "enable": "09:28", "disable": "20:00" }, "weekends": { "enable": "09:00", "disable": "21:00" } } }Entity definitions (here's only the definition for the weekdays for brevity)
doorbell-weekdays-enable: name: 'Ovikello päälle (arkisin)' topic: 'doorbell/settings' capabilities: - string_sensor primary_attribute: string_sensor.value events: "%topic%": "string_sensor.value": json_payload: true expr: "payload.data.weekdays.enable" doorbell-weekdays-disable: name: 'Ovikello pois päältä (arkisin)' topic: 'doorbell/settings' capabilities: - string_sensor primary_attribute: string_sensor.value events: "%topic%": "string_sensor.value": json_payload: true expr: "payload.data.weekdays.disable"I have verified that the entities are populated correctly and the values are working in local expressions.
The entity (only the range start for brevity):
Screenshot from 2023-03-22 09-27-54.pngThe rule:
Screenshot from 2023-03-22 09-28-28.pngAnd the local expression within the rule:
weekdays_enabled = (time() >= time(getEntity( "mqtt>doorbell-weekdays-enable" ).attributes.string_sensor.value )) && (time() <= time(getEntity( "mqtt>doorbell-weekdays-disable" ).attributes.string_sensor.value ))The problem
Local expression doesn't seem to evaluate to true even if the current time gets within the range. But if the related entities are updated, then the expression is evaluated and the rule is triggered.As seen from the screenshots, the current time is 09:28:12 and the start time in corresponding entity is set to 09:28. But still the rule is not triggered. However, if I update the entity e.g. to 09:27, the local expression will get evaluated and the rule is triggered.
My understanding is that the local expression is working correctly but since it's not evaluated, it will not trigger the rule.
Is this a bug or have I misunderstood something? If so, how should I implement this kind of functionality?
br,
mgvraReactor (Multi-hub) latest-23078-d592d400 + MQTTController [0.1.23010]
-
I know this Forum has never focused much on SmartThings or Hubitat, thus not surprisingly I find virtually nothing here concerning the Groovy programming language or creating drivers/apps for those platforms.
I'm curious: Is there any interest at all for co-authoring a "Definitive Guide to Coding Drivers & Apps for Hubitat" among our motley crew?
-
Hi,
I am a student and recently i am working on smart home project and writing a seminar paper about the way users handle and manage IoT devices. I you have 3 min, please fill below survey. Its really short.
Thank you in advance, I really appreciate everyone's help. -
For what it's worth, I've been putting the finishing touches on a much-updated version of my DP Apps spreadsheet -- specifically intended for HE users, at least for now -- and invite you all to take a gander http://bit.ly/hedb23 at the PDF one-page version.
Corrections and edits welcome (esp. for the HOMEKIT column, just added yesterday)! Thanks in advance, especially because I'm not a big dashboard user myself, but somehow accepted this role as "keeper of the list" as it were.
-
Converting from Vera Plus to Hubitat at two different locations. The two sites are interconnected via a router-to-router VPN. I currently have a Hubitat C7 running at Site One and a Vera Plus at Site Two. The MSR Raspberry Pi is co-located with the Vera Plus at Site Two. I "activated" a Hubitat C8 (ethernet connected) at Site Two including the installation of Hub Information Driver and its associated device. I also installed a single zwave outlet module (GE ZW4202). I restarted MSR. The C8 and its associated devices appear on both the Entities page and the MSR Dashboard, but the C8 reports as down on the MSR Status page and the GE outlet does not respond when "clicked". I am not sure where to look to try to find the source of the problem and will greatly appreciate any suggestions.
-
I have a use case where I need to have a boolean variable that will be set to true/false by reactions.
I see that i can define a local variable by giving it a name and leaving the definition empty. This leaves it at state "null" until a reaction tells it that its a boolean.
Is there a way to tell it that it should start out as "false" (i.e when reactor has restarted), and not null?
Am i going about this the wrong way?
-- The use case is that I have a sensor on my fireplace, and the following logic is for notifying when its time to get up en refill with firewood.. I also want to reset the MaxInInterval to CurrentTemp when notification is sent..
1fd2951f-cb6b-4a2f-b957-1e0698171f4d-image.png dd99634e-f0ad-4878-bb87-0284c2df5535-image.png
Edit: better screenhots. Reactor version 23010-7dd2c9e9
-
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. -
Hi guys,
I want to import my reactor sensors in the MSR addon for Home Assistant, but I can't find the app.js file anywhere. So now I don't know where to put the backup file.
I have not tried to put it in the main directory (config/reactor) yet. Wanted to know if I'm the only one with the problem.
Reactor addon: v0.0.8
MSR: 23063-c464b685
Home Assistant 2023.3.3
Supervisor 2023.03.1
Operating System 9.5
Frontend 20230202.0 - latestI started with v0.0.7, have just updated everything. Still no file.
-
Home Automation means you have to have a way of describing the logical steps you want your home to implement automatically.
Whilst I've always been a fan of the Lua language, as used in Vera (and openLuup) for scenes and plugins, it's perhaps not ideal. For this reason, there has been a long development history of plugins with their own "language" to help define the automation logic: PLEG (for those with a long memory), AltUI workflows, Rules Engine, Reactor, MSR, ...
It's always seemed to me that the 'best' way of describing logic would be a language designed for that purpose – a "logic programming language". Perhaps one of the most famous, and venerable, is Prolog, which had its fiftieth birthday last year in 2022.
Thanks to some relatively recent research A Hitchhiker’s Guide to Reinventing a Prolog Machine, Paul Tarau (2017) it's become possible to implement a very efficient Prolog engine in a reasonably concise way. So, just for fun, I'm developing a CGI plugin for describing openLuup actions in Prolog.
I have an early prototype running (written in Lua, of course). It presents a web page which looks like a fairly typical Interactive Development Environment (IDE) and contains some primitives which allow basic access to the Luup engine.
Screenshot 2023-03-10 at 18.27.33.png
In a subsequent post, I'll give a glimpse of its capabilities...
-
I'm a little bit confused how to configure extended capabilities for the entities in the MQTTController.
mqtt_cababilities.yaml states that: "...You can add your own capabilities by adding a "capabilities" section to your own local_mqtt_capabilities.yaml file in your config directory."
So I did this in my local_mqtt_capabilities.yaml in the config directory:
version: 22353 revision: 1 format: 1 capabilities: x_my_config: attributes: partyMode: type: bool actions: some_action: topic: '%topic/write' payload: "some value"And in my reactor.yaml I have following configuration entry:
my-config: name: 'My custom configuration' topic: 'my-config' query: "%topic%/read" init: "%topic%/read" capabilities: - x_my_config primary_attribute: x_my_config.partyMode events: "%topic%/status": "x_my_config.partyMode": json_payload: true expr: "payload.partyMode"This sort of works but not quite. The partyMode attribute gets updated when messages arrive for that specific topic, so that's fine. But I don't see x_my_config capability in the Capabilities list in the UI and also the some_action is missing.
Screenshot from 2023-03-09 19-42-49.png
Addition to that the primary value is not set and I'm getting the following error:
Screenshot from 2023-03-09 19-30-42.pngHave I completely misunderstood the idea behind the capability extension and the attributes? If so, could someone point me to the right direction with few explanatory example configs.
What I'm trying to achieve is a set of configuration options that could be updated thru the MQTT, and also provide some actions that the rules could invoke.
Reactor (Multi-hub) latest-23063-c464b685 + MQTTController [0.1.23010]
br,
mgvra -
-
Hello guys,
I would like to achieve two different things with lights, but I am not sure it could be done. I am starting with smart things, and I am far from any electrician knowledge, wo any help is really appreciated.
I have dumb switches in my hall, controlled from 3 places. I understood that installing one smart module before first switch will make them "hybrid", both smart controlled and dumb controlled.
I would like to buy ceiling light with two bulb sockets. What I would like to achieve is I would like to have one bulb for normal daily usage (lets say cold white full brightness), and second for night time (aprox from 10pm till morning) with some red/orange - minimum brightness.
So question are:
Is there a way to keep both bulbs turning-on separated? So only one will be on during day, and then only second during night?
And could that be done with pressing dumb switch? What would I need to achieve it? (maybe another module into the ceiling lights)
Thank you in advance
-
Installing MQTTController on Home Assistant Core when Reactor is installed as an Add-In (VirtualBox)
Running Home Assistant Core under VirtualBox (on Windows) and Reactor is installed and working fine as an add-in. What I can't figure out is how to install MQTTController in this situation. I can upload the files and unzip them, but I can't run install.sh in a terminal window because npm is not a part of the Core installation.
It does appear that somewhere in the stack there is a version of docker there between VirtualBox and HA, (I see some references go by in the VirtualBox startup log) but it appears minimal and will not execute the install via the docker technique in your documentation from the VB console.
Is there a way to do this?
Thanks.
-
I've done a bit of repackaging of MSR to make it work as an add-on under Home Assistant mostly for my own purposes but hopefully it makes it a bit easier to install and get going.
GitHub - mrw298/hassio-reactor-addon GitHub - mrw298/hassio-reactor-addon
Contribute to mrw298/hassio-reactor-addon development by creating an account on GitHub.
-
I have the following issue: In my Vera, I have created a dimmer using the Switchboard plugin. I want this light always turn on at 100% brightness when turn the light on. By default, the dimmer remembers its last used setting. I have created the following scene: when the light is turned off, the LoadLevelLast should be 100.
9937e326-2453-43bd-bd32-917803b38e90-image.png
Manually, this works through the test Luup code (Lua), but not through the scene's action by execute the following Luup code.
I also tried in MSR, but no result
Does anyone know the solution to this?
-
Hi @akbooer
Just bringing this over as suggested..
I’ve started to use the console view a lot more, mainly for it’s look and simplicity , but I noticed it does not do any live updates compared to ALTUI, you have to do a full browser reload. Is that by design, or is mine not working?
Also if I want to go strait to the console view, rather than into ALTUI, I recall seeing something abut altering that in the guide by for the life of me I can’t find it. Is it possible to do, if so how would I do that..
You suggested this was something you were looking at ? Also you said You don't need a "full browser reload", just click on the display menu item to refresh the screen. - what do you mean by `display menu?
-
@toggledbits somewhere I thought I read that MSR goes thru the items in set reaction and reset reaction in stack order, ie from top to bottom/first to last.
Am I mistaken?
Latest posts made by bhummel99
-
RE: I need help with Reactor for VERA.
-
Anyone with Reactor experience? Will this work?
I am no longer using any VERA scenes. I am only using a REACTOR trigger and activities.
Will my activities do what I need them to do? See below:
Here's what I am trying to accomplish:
AT SUNRISE
- Turn ON a light called LETTUCE LAMP and keep it ON.
2a) Turn on a device called LETTUCE PUMP for 15 min each hour.
2b) Repeat the pump cycle all day long.
AT SUNSET
- Turn OFF a light called LETTUCE LAMP and keep it OFF.
2a) Turn on a device called LETTUCE PUMP for 15 min then wait 2 hours..
2b) Repeat the pump cycle all night long.
- Turn ON a light called LETTUCE LAMP and keep it ON.
-
RE: I need help with Reactor for VERA.
I redid the Vera scenes just a few minutes ago. I can see I need to update my Reactor activites.
-
RE: I need help with Reactor for VERA.
Sure, here they are. Because I can't wrap my head around Reactor's operation, Im just using it to trigger two scenes in Vera. Here are the screenshots.
-
RE: I need help with Reactor for VERA.
Thanks Pablo. I'm not having problems with the interval logic, its STOPPING the other scene from running when its not supposed to be running. They fight with each other.
-
I need help with Reactor for VERA.
I've been trying to figure out Reactor but I'm not very good at programming.
I have two scenes in VERA.
One scene should only run during the DAY and then stop running.
One scene should only run during the NIGHT and then stop running.My scenes start off at the right times, but they do not turn off. I created a Sunrise/Sunset Reactor trigger and added it as a condition to each of my scenes.
However, the Reactor trigger when tripping or untripping does not prevent my Vera scenes from running. It will start them correctly the first day, but after that, both scene stay running and fight with each other. What am I doing wrong?
Thanks for any help!
If you are interested, here are the actions I wish to perform with each scene.
FARM STAND - DAY (runs at Sunrise)
- Turn ON a device called LETTUCE LAMP
2a) Every 60 min, turn ON a device called LETTUCE PUMP
2b) Wait 15 min then turn OFF a device called LETTUCE PUMP
FARM STAND - NIGHT (runs at Sunset)
- Turn OFF a device called LETTUCE LAMP
2a) Every 135 min, turn ON a device called LETTUCE PUMP
2b) Wait 15 min then turn OFF a device called LETTUCE PUMP
This sounds simple, but I cannot figure out how to disable these scenes when the theyre not supposed to run.
- Turn ON a device called LETTUCE LAMP