I had an existing rule that turns on my Kitchen ceiling lights to 100% when motion is detected.
I want to make a change so that when Vera is in Night Mode the lights will instead turn on to 25% brightness.
I have added a Constraints Group in to the Set Reaction and set it to OR :
Is this likely to work or not ?
Or do I need two Constraints Groups within the Set Reaction ?
I can test it later on when its time to put Vera in to Night mode.
How are folks handling situations where they want to have Conditional Actions or Branching Logic in their Set Reactions for a rule? Are you creating Duplicating the same trigger and setting different conditions and Actions?
Is there an approach where you combine a main rule with your entity triggers with sub rules that trigger off Expressions? You then could write your conditions as Set Variable actions in the Main Rule for the Expressions that evaluate to true or false. Each sub rule would trigger based on the expression changing to true and then could also change it back to false after.
Not sure if that's worth the complexity for the reusability and control over duplicate triggers.
I am not a programmer, so I am picking this up piece by piece.
I would like to use a rule-based expression to store the current value of a dimmer, change the dimmer value, then change it back to the stored value.
I have a working global expression that I have used.getEntity( "VeraShop>device_24" ).attributes.dimming.level
I have a blank global expression ready to use in "set variable" that is available to set.
I am stuck with the formatting of the "set variable" field to set the variable. If I get pointed in the right direction, I am fairly confident I can get the rest going on my own. .
Thanks in advance
This was working and tested previously, but now doesn't seem to be.
I turned the heating on earlier, however I have since turned if off again. However the trigger in this rule still says the current set point value is 21. Its not its currently 10.
A window was just opened and a TTS heard, which drew my attention to this rule now as it should not of fired its actions.
Vera variable now:
Thermostat device information from the Entities:battery_power.level=0.49 battery_power.since=1620139135000 hvac_control.mode=null hvac_control.state=null hvac_heating_unit.setpoint=21 hvac_heating_unit.state=null hvac_heating_unit.units="c" power_switch.state=null value_sensor.units="c" value_sensor.value=18.1 x_vera_device.configured=true x_vera_device.device_number=189 x_vera_device.device_type="urn:schemas-upnp-org:device:Heater:1" x_vera_device.failed=false x_vera_device.mapped_by="*;device_type=urn:schemas-upnp-org:device:Heater:1" x_vera_device.mapped_class="heatonly_thermostat" x_vera_svc_micasaverde_com_HaDevice1.AutoConfigure="-1" x_vera_svc_micasaverde_com_HaDevice1.BatteryDate="1620139135" x_vera_svc_micasaverde_com_HaDevice1.BatteryLevel="49" x_vera_svc_micasaverde_com_HaDevice1.CommFailure="0" x_vera_svc_micasaverde_com_HaDevice1.CommFailureAlarm="1612455867,0" x_vera_svc_micasaverde_com_HaDevice1.CommFailureTime="0" x_vera_svc_micasaverde_com_HaDevice1.Commands="heater_setpoint" x_vera_svc_micasaverde_com_HaDevice1.Configured="1" x_vera_svc_micasaverde_com_HaDevice1.FirstConfigured="1485879775" x_vera_svc_micasaverde_com_HaDevice1.LastUpdate="1607103908" x_vera_svc_micasaverde_com_HaDevice1.ModeSetting="1:;2:H,10.0;3:H,10.0;4:H,10.0" x_vera_svc_micasaverde_com_HaDevice1.PollRatings="5.00" x_vera_svc_micasaverde_com_HaDevice1.WakeupRatings="5.00" x_vera_svc_micasaverde_com_HaDevice1.sl_BatteryAlarm="0" x_vera_svc_micasaverde_com_ZWaveDevice1.AssociationGet="2,190,;" x_vera_svc_micasaverde_com_ZWaveDevice1.AssociationNum="5" x_vera_svc_micasaverde_com_ZWaveDevice1.AssociationSet="2,190" x_vera_svc_micasaverde_com_ZWaveDevice1.Capabilities="18,150,0,1,8,0,B,|49:1,67,112,114,128,132:2,133,134," x_vera_svc_micasaverde_com_ZWaveDevice1.ConfiguredAssoc="2,190" x_vera_svc_micasaverde_com_ZWaveDevice1.ConfiguredName="" x_vera_svc_micasaverde_com_ZWaveDevice1.ConfiguredVariable="1-variable 1,1d,255,2-variable 2,1d,1,3-variable 3,1d,10" x_vera_svc_micasaverde_com_ZWaveDevice1.ConfiguredWakeupInterval="300" x_vera_svc_micasaverde_com_ZWaveDevice1.FirmwareInfo="" x_vera_svc_micasaverde_com_ZWaveDevice1.LastArr="1620138237,69" x_vera_svc_micasaverde_com_ZWaveDevice1.LastNnu="1620137632,69" x_vera_svc_micasaverde_com_ZWaveDevice1.LastReset="1485882104" x_vera_svc_micasaverde_com_ZWaveDevice1.LastRouteUpdate="1620109432" x_vera_svc_micasaverde_com_ZWaveDevice1.LastWakeup="1620152934" x_vera_svc_micasaverde_com_ZWaveDevice1.ManufacturerInfo="89,1,3" x_vera_svc_micasaverde_com_ZWaveDevice1.MeterScale="" x_vera_svc_micasaverde_com_ZWaveDevice1.MeterType="" x_vera_svc_micasaverde_com_ZWaveDevice1.MultiChCapabilities="" x_vera_svc_micasaverde_com_ZWaveDevice1.MultiChEndpoint="" x_vera_svc_micasaverde_com_ZWaveDevice1.NodeInfo="31,43,70,72,80,84,85,86," x_vera_svc_micasaverde_com_ZWaveDevice1.PollNoReply="378" x_vera_svc_micasaverde_com_ZWaveDevice1.PollOk="16295" x_vera_svc_micasaverde_com_ZWaveDevice1.PollSettings="10800" x_vera_svc_micasaverde_com_ZWaveDevice1.SensorBiType="" x_vera_svc_micasaverde_com_ZWaveDevice1.SensorMlScale="" x_vera_svc_micasaverde_com_ZWaveDevice1.SensorMlType="" x_vera_svc_micasaverde_com_ZWaveDevice1.SetPointInfo="H1," x_vera_svc_micasaverde_com_ZWaveDevice1.SubscribedAlarms="" x_vera_svc_micasaverde_com_ZWaveDevice1.TemperatureScale="1,0,2" x_vera_svc_micasaverde_com_ZWaveDevice1.VariablesGet="1,255,2,1,3,10," x_vera_svc_micasaverde_com_ZWaveDevice1.VariablesSet="1-variable 1,1d,255,2-variable 2,1d,1,3-variable 3,1d,10" x_vera_svc_micasaverde_com_ZWaveDevice1.VersionInfo="2,2,78,6,0" x_vera_svc_micasaverde_com_ZWaveDevice1.WakeupInterval="300" x_vera_svc_micasaverde_com_ZWaveNetwork1.ConsecutivePollFails="0" x_vera_svc_micasaverde_com_ZWaveNetwork1.LastPollSuccess="1620149034" x_vera_svc_upnp_org_Dimming1.LoadLevelTarget="58" x_vera_svc_upnp_org_HVAC_UserOperatingMode1.ModeStatus="HeatOn" x_vera_svc_upnp_org_SwitchPower1.Target="0" x_vera_svc_upnp_org_TemperatureSensor1.CurrentTemperature="18.10" x_vera_svc_upnp_org_TemperatureSetpoint1.AllSetpoints="10.00,0.00,5.00" x_vera_svc_upnp_org_TemperatureSetpoint1.CurrentSetpoint="10.00" x_vera_svc_upnp_org_TemperatureSetpoint1.NewCurrentSetpointC="23" x_vera_svc_upnp_org_TemperatureSetpoint1.NewCurrentSetpointF="73.4" x_vera_svc_upnp_org_TemperatureSetpoint1.Range="0,0/0,0;0,0/0,0;5,30/41,86" x_vera_svc_upnp_org_TemperatureSetpoint1.SetpointTarget="10.00" x_vera_svc_upnp_org_TemperatureSetpoint1_Heat.CurrentSetpoint="21.00" zwave_device.capabilities="18,150,0,1,8,0,B,|49:1,67,112,114,128,132:2,133,134," zwave_device.failed=false zwave_device.manufacturer_info="89,1,3" zwave_device.node_id=57 zwave_device.version_info="2,2,78,6,0" Capabilities: battery_power, hvac_control, hvac_heating_unit, power_switch, toggle, value_sensor, x_vera_device, x_vera_svc_micasaverde_com_HVAC_OperatingState1, x_vera_svc_micasaverde_com_HaDevice1, x_vera_svc_micasaverde_com_ZWaveDevice1, x_vera_svc_micasaverde_com_ZWaveNetwork1, x_vera_svc_upnp_org_Dimming1, x_vera_svc_upnp_org_HVAC_UserOperatingMode1, x_vera_svc_upnp_org_SwitchPower1, x_vera_svc_upnp_org_TemperatureSensor1, x_vera_svc_upnp_org_TemperatureSetpoint1, x_vera_svc_upnp_org_TemperatureSetpoint1_Heat, zwave_device Actions: hvac_control.set_mode, hvac_heating_unit.set_setpoint, power_switch.off, power_switch.on, toggle.toggle, x_vera_device.set_variable, x_vera_svc_micasaverde_com_HaDevice1.AllowPairing, x_vera_svc_micasaverde_com_HaDevice1.Poll, x_vera_svc_micasaverde_com_HaDevice1.Reconfigure, x_vera_svc_micasaverde_com_HaDevice1.Remove, x_vera_svc_micasaverde_com_HaDevice1.SetPollFrequency, x_vera_svc_micasaverde_com_HaDevice1.StressTest, x_vera_svc_micasaverde_com_HaDevice1.ToggleState, x_vera_svc_micasaverde_com_ZWaveNetwork1.AddNodes, x_vera_svc_micasaverde_com_ZWaveNetwork1.BackupDongle, x_vera_svc_micasaverde_com_ZWaveNetwork1.DownloadNetwork, x_vera_svc_micasaverde_com_ZWaveNetwork1.HealNetwork, x_vera_svc_micasaverde_com_ZWaveNetwork1.PollAllNodes, x_vera_svc_micasaverde_com_ZWaveNetwork1.PutByte, x_vera_svc_micasaverde_com_ZWaveNetwork1.ReconfigureAllNodes, x_vera_svc_micasaverde_com_ZWaveNetwork1.RemoveNodes, x_vera_svc_micasaverde_com_ZWaveNetwork1.ResetNetwork, x_vera_svc_micasaverde_com_ZWaveNetwork1.SendData, x_vera_svc_micasaverde_com_ZWaveNetwork1.SetPolling, x_vera_svc_micasaverde_com_ZWaveNetwork1.SimulateIncomingData, x_vera_svc_micasaverde_com_ZWaveNetwork1.UpdateNeighbors, x_vera_svc_micasaverde_com_ZWaveNetwork1.UpdateNetwork, x_vera_svc_upnp_org_Dimming1.PauseRamp, x_vera_svc_upnp_org_Dimming1.ResumeRamp, x_vera_svc_upnp_org_Dimming1.SetLoadLevelTarget, x_vera_svc_upnp_org_Dimming1.SetOnEffect, x_vera_svc_upnp_org_Dimming1.SetOnEffectLevel, x_vera_svc_upnp_org_Dimming1.SetRampRate, x_vera_svc_upnp_org_Dimming1.SetStepDelta, x_vera_svc_upnp_org_Dimming1.StartRampDown, x_vera_svc_upnp_org_Dimming1.StartRampToLevel, x_vera_svc_upnp_org_Dimming1.StartRampUp, x_vera_svc_upnp_org_Dimming1.StepDown, x_vera_svc_upnp_org_Dimming1.StepUp, x_vera_svc_upnp_org_Dimming1.StopRamp, x_vera_svc_upnp_org_HVAC_UserOperatingMode1.SetEnergyModeTarget, x_vera_svc_upnp_org_HVAC_UserOperatingMode1.SetModeTarget, x_vera_svc_upnp_org_HVAC_UserOperatingMode1.SetName, x_vera_svc_upnp_org_SwitchPower1.SetTarget, x_vera_svc_upnp_org_TemperatureSensor1.SetApplication, x_vera_svc_upnp_org_TemperatureSensor1.SetName, x_vera_svc_upnp_org_TemperatureSetpoint1.SetApplication, x_vera_svc_upnp_org_TemperatureSetpoint1.SetCurrentSetpoint, x_vera_svc_upnp_org_TemperatureSetpoint1.SetName, x_vera_svc_upnp_org_TemperatureSetpoint1_Heat.SetApplication, x_vera_svc_upnp_org_TemperatureSetpoint1_Heat.SetCurrentSetpoint, x_vera_svc_upnp_org_TemperatureSetpoint1_Heat.SetName, zwave_device.poll
In the rule if I change the trigger to use this Entity Attribute instead, then now its correctly showing 10 as the current set point.
In my Vera config I have two SiteSensors (one for Ambient Wx, one for OpenWxMap) that point to two unique Reactor devices for controlling HVAC in my home. This is done for redundancy - if the Ambient API drops it returns zero data which then triggers a standalone Master API Reactor device to flip on the OWM SiteSensor and corresponding HVAC Reactor device to continue controlling the house conditions.
Once the Ambient API returns to available the Master API Reactor device flips back to the Ambient SiteSensor and corresponding HVAC Reactor device, turning OFF the SiteSensor for OWM to save on API calls.
I've been able to duplicate one half of this, including the Master API role, in MSR. But... here's the tricky part... I can't turn "off" the MSR Rule Sets for the OWM version. As such, HVAC is sent conflicting data and doesn't know what to do.
Before I go alls deep into explaining how all of this currently works, am I missing something somewhere that would allow me to trigger the on/off of MSR Rule Sets?
Knowing that MSR Preview may not yet fully implement LuaXP (CORRECTION: MSR uses a different language lexpjs), I could not resist whipping up some text expressions for fun. Whereupon two things popped out at me:The new scaling (0.00 - 1.00) of Dimming Level will require a rewrite of certain Expressions that I use to balance my light levels. For example, it was my custom to monitor one lamp's brightness (0 - 100) with Reactor Luup, then set another lamp to 93% of that level, using this Expression: floor(getstate( 9, "urn:upnp-org:serviceId:Dimming1", "LoadLevelTarget" ) * 0.93)
Now, in MSR, it will become necessary to modify that to read:floor ((getEntity( "vera>device_9" ).attributes.dimming.level * 0.93)*100)/100
which effectively scales the value up x 100 (so that floor() can act upon it correctly), then downscale it / 100. Just an FYI to ponder.I'm noticing that every edit, however minor, of an Expression in MSR requires an immediate SAVE click before the 'Run' button will become active. That is to say, I cannot repeatedly evaluate the Expression during editing, without clicking SAVE first.
Only mentioning this latter behavior since it departs so dramatically from Reactor Luup's paradigm.
OK, people, here we go! At long last, Multi-System Reactor developer preview is available!
The package can be downloaded from the Reactor bug tracker, a MantisBT system (at https://reactor.toggledbits.com/mantisbt/). There is a download button in the left margin, as well as links to the documentation, which you will need for installation.
UPDATE 2021-02-24 -- To keep spammers off, I've locked down registration on the Bug Tracker. To get access to the Bug Tracker and preview downloads, please PM me (not reply here) your full name and email address and I will set up an account for you.
This version of MSR will run on Linux systems, including RPi's under Raspios Buster, running node.js version 12.10 or higher (v14.15.1). For RPi users, there is an installation script that will install a local copy of node.js (for the logged-in user).
Bugs reports will be handled through the bug tracker only. Discussion and questions in this forum are fine, though (if that leads to a bug report, we'll transition).
This version supports Vera (and openLuup to the degree it's compatible with Vera Luup), Hubitat, and Home Assistant. Some of the device support on the H platforms is still a bit basic, but it is largely controlled by configuration and progress can be made quickly.
The documentation beyond installation is a mess. Of course, I started with the existing documentation and have been massaging into MSR's particulars, but it still has a long way to go on the detail.
I know I don't have to say this, but I will anyway... let me know how it goes!
Inspired by my love for MSR as a logic engine, as well as my undying nostalgia for two early console games -- Merlin (1978) by Parker Brothers and Lights Out (1995) by Tiger -- I decided to try my hand at recreating "LIGHTS OUT" just using MSR.
After an evening of playing around with Expressions inside a single Rule, my gambit succeeded. The result is a 3x3 version of "Lights Out" that can be played on any suitably configured Dashboard (Home Remote, Imperihome, MSR's built-in, etc.), where multiple buttons can be arranged in a grid. To play without a Dashboard, one can advance play manually and monitor game status under Rule Sets.
Each button press must send an HTTP GET Request (examples to follow) to MSR. (Alternatively, game play could involve inputs from another Rule or even physical device.) In turn, MSR will toggle the virtual switch corresponding to that position on the grid along with those adjacent to it in the up/down/left/right directions. The objective is to turn all of the devices (e.g. lights) OFF.
NOTE: This on/off behavior (of devices) is not yet implemented, as it would require nine virtual or actual switches that I have not installed. (Suitable candidate: Multi-switch VS in Switchboard on Vera.) Instead, as a proof of concept, the 3x3 playing grid is -- for now at least -- represented internally by a 9-element array of 0's (Off) and 1's (On). A player 'wins' once the array contains all zeroes.
In the posts below, I present how I crafted "Lights Out" in MSR.
One of the things I really like about Home Assistant are these "input_boolean", "input_number", "input_text" and "input_select" components that serve as data containers. The "input_boolean" component, for example, functions in the same way as a virtual switch, holding a boolean state and allowing you to modify that state. The "input_select" holds a defined set of values, as opposed to "input_text" which just accepts anything. There's even an "input_datetime" object.
I can see these being far more useful than trying to shoehorn more flexible behavior into virtualized models of existing devices, so this is the direction I'm thinking of going for MSR. One thing I really like is that the flexibility of them is sufficient to eliminate the need for expressionless variables in many, if not most, cases.
I just added a GET for this as well just for simplicity/basic use only, to be in next build:
I updated and tried this:http://192.168.0.100:8111/api/v1/variable/run/set?value=123
"run" is the name of my Global Expression.
In the web browser I get this response:Cannot GET /api/v1/variable/run/set
I can't see anything related in the reactor log file.
I would like to replicate a burglar alarm setup I currently have configured with Vera scenes.
I need an entry timer of 60 seconds before the siren goes off.
So the door sensor is armed, I enter the house, this trips and starts a 60 second count down timer.
If within the 60 seconds I have disarm the house, then the siren does not sound and all the door / window contact sensors are disarmed etc and Vera put in to Home Mode.
If I do not disarm the house within the 60 seconds then the siren should sound etc.
Currently I am using three scenes in Vera and the Count Down Timer plugin to achieve this.
The first scene "Burglar Alarm" its triggers are that an armed door / window sensor is tripped. It then also starts the 60 second count down timer.
The second scene "Burglar Alarm Delayed" its trigger is that the count down timer completes. i.e. I have not disarmed the house within the 60 seconds count down, so this second scene would then sound the siren.
If I did disarm the house within the 60 seconds, which is the third scene "Home" which cancels the count down timer, then the second scene is not triggered and therefore the siren does not sound.
I am not sure what is the best way to handle this? or even how to do this count down timer in MSR ? A count down timer that I can stop when I disarm the house, so it does not complete or it does complete if I haven't disarmed the house in time.
This is all I have so far the triggers and the constraints that those door sensors must be in Armed state.
For those using the Home Remote dashboard app, this maybe of interest, Bill has just shown me how to more easily either create buttons on your own custom pages or "Scene" devices / tiles on Group pages, that when pressed will send out HTTP commands to MSR, to then run either a Global Reaction or a Rule Set that is triggered via a Global Expression value change.Apr 29 Feature Request - Make it easier to create button to send HTTP requests Feature Request - Make it easier to create button to send HTTP requests
I have managed to create two buttons that when pressed they send out a HTTP request. One button was an ON command and the other button was an OFF command. I followed the example here However for creating lots of buttons with this functionality I can see it being very difficult and a lot of hassle...
Been wanting to be able to do this for a while now.
This is a custom page with regular buttons, these two test buttons are initiating Global Reactions in MSR:
This is a GROUP page with "Scene" tiles, these are initiating Rule Sets in MSR:
Everyone: for some weeks now, I've buried myself in getting as much done on MSR as possible before this coming week. This is the week I had planned to put out the first developer preview of MSR, and it's looking good for that to happen.
The first previews will be for Linux-based systems only, and will not be docker containers, but stand-alone installs. You'll need to be running a fairly modern version of Ubuntu, Debian, etc. (so that includes RPi Raspios Buster).
What I really need at this early stage is people who will give me good, solid data on what doesn't go well. I really cannot, at this stage, spend time with anyone who isn't functionally fluent with Linux system administration. While I suspect most of the people here are already firmly in the former camp, I'm about to make a public announcement on the Vera forums that I suspect will drive a new cadre of people here, so the mix may change a bit. But it's simply a fact that the better the information I get up front, the faster I can fix things that have gone wrong, thus the more I can fix in any given period of time, and the sooner it will be that my time will be freed so I can start helping everyone.
I will be using this community as the focus of communication, as in, announcements and discussions. For issues, however, I have set up a MantisBT (Mantis Bug Tracker) server at https://reactor.toggledbits.com/mantisbt/ and I invite and encourage you to sign up. I will only address bugs opened in that tool. This is an administrative choice to keep me somewhat sane and not be overwhelmed by juggling feedback from however it might come at me. I'm pipelining the process.
There's still a lot to do. I've been running my own house on it, but as I've often said, that's me running it one way -- one data point. I'm sure there will be a lot to look at. There are still some functional gaps, and the documentation is a mess, but I think that's less of an issue for current Reactor users than it is for newcomers.
Stay tuned... more to follow....
I just tried editing an existing rule with quite a lot of actions in its Reaction, at the end of all these I added a new Constraints Group however I then cannot save the rule the save button is not selectable.
There is also a red line down the side of the Constraints Group what does this mean ?
Build 21117 for longer Comments and HTTP Requests you now cannot see the contents of those fields, you have to drag the box down to make it bigger each time:
After making the box bigger, I can then read the entire comment
And HTTP Requests now always look like this:
"This feature applies to rule-based reactions only; it is not a feature of global reactions (and for the removal of doubt, will not be in future)"
Good news about the option for additional further conditions within actions.
I have a few existing rules I can rebuild for this new feature.
Also If not with Global Reactions, will we at some point be able to initiate a rule sets actions via a http request sent in to MSR?
And have no other trigger on that rule set?
A manually triggered "scene" if you like.
I have a docker running smoothly now, thought i'd share it. (and BTW, it looks awesome, Patrick!)
So far i've only opened 8111, and /config as volume. Mabye the full /reactor folder should be exposed for easy updating?
docker compose:version: "3.9" services: MSR: container_name: MSR restart: always image: perhu/msr-alpine:latest ports: - "8111:8111" networks: HAnett: ipv4_address: 192.168.0.8 volumes: - type: bind source: /etc/localtime target: /etc/localtime - type: volume source: MSR-config target: /etc/reactor/config - type: volume source: MSR-storage target: /etc/reactor/storage logging: driver: "json-file" options: max-file: "5" max-size: 10m networks: HAnett: name: HAnett driver: bridge ipam: config: - subnet: 192.168.0.0/16 gateway: 192.168.0.254 volumes: MSR-config: name: MSR-config MSR-storage: name: MSR-storage
dockerfile for those who want to modify the image: (this works if you have unzipped MSR zip file to the same folder as the dockerfile)FROM alpine:latest COPY /reactor/. /etc/reactor/ RUN apk add --update nodejs npm && cd /etc/reactor \ && npm install --loglevel error --no-save \ && cp dist-config/* config/ VOLUME ["/etc/reactor/config"] VOLUME ["/etc/reactor/storage"] EXPOSE 8111 CMD ["/bin/sh"] WORKDIR /etc/reactor CMD ["node", "/etc/reactor/app.js"]
EDIT: 20210307 - updated with localtime bind
I have a rule that closes my curtains when I start my Xbox activity on the Harmony hub.
In the Contraints I have that it's day time.
In the Reset Reaction it opens the curtains when I end the Xbox activity etc.
Today it was day time and I started the Xbox activity and the curtains closed.
When I turned off the Xbox it was night time, however my curtains then opened.
I expected the curtains to remain closed as by then it was night time.
Not sure the best way to handle this? But I want a rule that closes the curtains if it's day time and I want to play on the Xbox. If it's still day time when I end that Harmony Activity then open the curtains again. Or if it's night time then keep the curtains closed.
I figure if I start playing the Xbox and it's already night time then the curtains would already be closed anyway via the sunset offset schedule that closes the curtains.
Can't see VeraPlus and Hubitat (config question)
Him ... Got The reactor up and running but I can't see my Vera Plus and Hubitat.
I have restarted the reactor after doing necessary input in the reactor.yaml file.reactor:
What could I be doing wrong? Runs on a RPI
Is it correct ?
location:node app js
city: "Stockholm City"
# Non-US users please use "province"
# Must be ISO two-character country code (i.e. the ISO 3166-1 Alpha 2 code)
# Must be properly set for sunset/sunrise calculation.
# Units of elevation are meters (multiply feet by 0.3408 to get meters)
name: A Home Assistant system
access_token: "place long-lived access token within"
Matohl last edited by
location:node app js is not correct, it should be:
toggledbits last edited by toggledbits
If this is in
dist-configthen you are off to a good start. A couple of notes:
- Remove the
province, and place a
state-- you modified the data, but didn't comment/uncomment the fields.
- The way you posted it lost the indenting, which is critical for YAML. It needs to be indented using spaces only (no tabs) exactly as the original version was. If you are not sure, the original distribution versions of the config files are in
dist-configand you can use them as a reference, or copy them to
configand start over.
Like the Vera Community, if you want to post a code block, put three back-ticks ``` on a line by itself, then your code, and then a line with three back-ticks again, and it will format it properly and not wreck the quotation marks and indenting.
Also, please start new threads for new topics. If every discussion happens in this one thread, we're going to have a bad time.
- Remove the
@toggledbits Ok Thanx a lot. Got it working with Vera but got stuck with Hubitat for a couple of hours trying everything until I read that Hubitat has limitations when you have more Maker API connections.
I have an RPI connected with Homebridge running against Maker API so I guess its the problem so if you can boost a solution was you mentioned it wood be greeeeat...
So no I will start playing with the Vera until a solution is ready..:)
Do you know, does HomeBridge set the POST URL automatically, or did you have to set it (e.g. copy-paste from somewhere)?
@toggledbits I can't remember doing it... Here is a link for the Maker API homebridge instruction...
Guess we'll just have to try it and see what happens. I think there's a high probability it sets it itself, which will be a problem. I was so gung-ho on Hubitat until I started really getting into it and finding things like this. Bummer.
@toggledbits I have deleted the homebridge Maker API app and installed homebridge v2 that does not use Maker API but the reactor still doesn't want to connect to Hubitat. you have got it to work with Hubitat?
I read on a Hubitat thread that the Post has to be sent to the Maker API as you mentioned ...
I have played a bit with my vera and MSR and it works good so far. So nice to be back to Reactor, have missed it a lot . It still sits in thespinal cord! :).
you have got it to work with Hubitat?
Yes. There are two parts to the connection, so even if the POST URL is a problem, you should be able to see your devices. Make sure you are following the installation instructions correctly, and have the correct IP address in the configuration. You might also look at 'logs/reactor.log' after startup and see if there are any helpful messages there.
Been trying around and did new installation of MSR but still not work with Hubitat. I cant se any devices.
The MSR logs says:
2021-02-23T05:47:10.927Z Controller:ERR HubitatController#hubitat failed to connect/query http://192.168.68.145: Error: Request failed: 404 Not Found
2021-02-23T05:47:15.934Z Controller:NOTICE HubitatController#hubitat not ready; performing initial connect/query
The HUBITAT logs says:
sys:12021-02-23 11:37:32.680 Received local request for App 8 that does not exist, path: /devices/* from unknown
They are not from same time.... The msr is bombing the Hubitat with tries. ( so often that the Hubitat has hard doing stuff)
Ive done the installation as in the instructions.... Can the old Maker API still keep the 1 and only connection even if I have deleted it?..
If I had to guess, you have the access token wrong. Please PM me your the Hubitat controller configuration from your reactor.yaml file, and make a screen shot of your Maker API app where it shows the local URLs with the access token on them (scroll down).
OK. I see the issue. I assumed something about the structure of their URLs that apparently I can not, so I'll need to fix that. Today's daily build will have a fix.
OK, so when you upgrade to 21054 later today or tomorrow (should be published tonight my time Eastern US), you will just copy-paste the "Get Device Info" URL given there, or you can right-click the "Get All Devices" link above it and then paste that into your configuration. The updated HubitatController will just take that URL apart to get the information it needs. You should not even need to specify
access_tokenany more (if it's on the URL, it will grab it). Coming soon...
ok perfect. that's the way other Maker API apps works , uses the hole url string with token.. Good work Patric!
Yeah, what I got wrong was that number in the middle. I assumed, very incorrectly apparently, that is was a universal application ID or an API version number, something relatively static. Well, it's an application ID, but not universal, or static--it's apparently going to be different on every Hubitat. Teething pains. And cheesus ghost, their documentation is horrible.
Speaking of documentation, and forums, on their forums is much discussion about the Post URL magically vanishing, or not working. So that's the next thing to watch out for.
Not just the documentation.... their Rulemachine can be soooo annoying! Speaking of documentation Whats the easiest way to update the msr?
Easiest way? I think... read the documentation! Look at the "Installation" page. You can use the "Manual" link in the left navigation of MSR, or click the link below:
MSR docs: Installation