Multi-System Reactor

743 Topics 7.1k Posts
  • Rule for devices battery level ?

    Locked
    43
    0 Votes
    43 Posts
    2k Views

    @crille

    In my opinion, everything you put in: more efficient, more dynamic, less complex. Below is a screenshot of how I do it today, and it would be replaced only by the format expression already directly inside a message as per telegram.

    77669a6a-5057-4bfc-9370-a32da5a597b3-image.png

    I will also use it to easily know all the devices that will be tripped in the house, see the other post for what I am adding after the battery. Besides this, unifying devices that for example are triggered by a contact or movement and have different expressions, will help unify and set up the alarm trigger management.

  • Recommendation for new hub

    Locked
    7
    0 Votes
    7 Posts
    407 Views

    I went for Homeseer, I liked you could run it local either on Windows or roll your own PC with 30 days to try it out.
    Horses for courses, what suits one doesn't suit the other.

  • Pick the middle of 3 values.

    Locked Solved
    5
    0 Votes
    5 Posts
    252 Views

    Thanks! That works.

  • 0 Votes
    5 Posts
    200 Views

    IMO, if you're going to use this for production/home use, you need a broker that implements QOS and retain properly (MQTT protocol specification section 3.3.1.3 mandatory normative statement 3.3.1-5 among others). Make things work the way they are supposed to work, don't layer up exceptions and special cases. Just install Mosquitto or another compliant broker and be done with it. It's free anyway.

  • MQTTController map different values from same topic?

    Locked Unsolved
    5
    0 Votes
    5 Posts
    244 Views

    The issue is that the sensors do not report at the same time, one publish contains one or two devices and when source id is not found it's setting null values.
    Lets say I use source LYWSD03aa6def

    17:19:25.359 MQT: tele/Växthuset/SENSOR = {"Time":"2021-11-24T17:19:25","LYWSD03aa6def":{"mac":"a4c138aa6def","Temperature":7.0,"Humidity":98.0,"DewPoint":6.7,"Battery":24,"RSSI":-71},"Flora6cabfa":{"mac":"c47c8d6cabfa","Temperature":7.8,"Illuminance":265,"Moisture":20,"Fertility":85,"RSSI":-86}} 17:19:26.372 MQT: tele/Växthuset/SENSOR = {"Time":"2021-11-24T17:19:26","Flora6cab88":{"mac":"c47c8d6cab88","Temperature":8.6,"Illuminance":167,"Moisture":0,"Fertility":0,"RSSI":-81}} 17:19:37.399 MQT: tele/Växthuset/SENSOR = {"Time":"2021-11-24T17:19:37","Switch1":"ON","Switch2":"ON","ENERGY":{"TotalStartTime":"2021-05-04T07:45:50","Total":0.000,"Yesterday":0.000,"Today":0.000,"Period":[ 0, 0],"Power":[ 0, 0],"ApparentPower":[ 0, 0],"ReactivePower":[ 0, 0],"Factor":[0.00,0.00],"Frequency": 0,"Voltage": 0,"Current":[0.000,0.000]},"ESP32":{"Temperature":40.0},"TempUnit":"C"}

    It maps the temperature and humidity on the first tele but applies null on the next ones.

    Also, what to put in init?

  • 0 Votes
    13 Posts
    491 Views

    Unfortunately, I can't correlate with any specific builds but, yes, I've noticed recently it's WAE.

  • 0 Votes
    2 Posts
    118 Views

    There is no SendData on eZLO. That's not an MSR limitation, it's completely absent from the Ezlo APIs/capabilities. This has been pointed out to them. They have made no reply.

  • 1 Votes
    2 Posts
    104 Views

    That is exactly the way it is built to be used, and I do that myself extensively.

  • 0 Votes
    5 Posts
    230 Views

    @toggledbits WWW

    waiting waiting waiting

    f636f1e3-11db-425f-b013-839f95ebfeb3-image.png

    Lord, inspiration and patience to Patrick, you are in my prayers 🙂

  • 0 Votes
    9 Posts
    285 Views

    No, not yet. Probably in a couple of hours.

  • Build 21313 question

    Locked
    7
    0 Votes
    7 Posts
    287 Views

    @black-cat The improvement being requested is to put some meat on the bones of the thread topic. "Build 21313 question" - way too vague. Updating to something along the lines of "Build 21313: new system capability button questions" so readers know what the thread is about and whether it is something they would read or offer input on is where Patrick was pointing the OP to (hence the link to the pinned post about Best Practices.)

    Hope that helps!

  • Import Vera Rules in Docker Containers?

    Locked
    12
    0 Votes
    12 Posts
    605 Views

    @buxton said in Import Vera Rules in Docker Containers?:

    @3rdstng Ha! if you're in the US, I'll take it. I still have a veralite running in my garage that could do with an upgrade.

    I am in So Cal. I'll DM you.

  • 0 Votes
    20 Posts
    721 Views

    This is expected behavior for the moment, but will be changing. MSR has never had a need to persist entities over restarts because the controllers have the current data. It's not even an issue for MQTT, because retained messages, when used properly, update state correctly on restart/reconnect.

    But, I have been using a version of MSR in my own home that persists entities across restarts, for other reasons, and that will also serve to smooth out the bump for event handling here. I still have a few more wrinkles to smooth out... like how to detect when the user has changed their custom configuration for an entity, modified their own custom declaration of a capability, etc. These are rarely-used features, but I nonetheless want them to require less user intervention (e.g. manual forced purge of retention data, etc).

  • Replacing SiteSensor Plugin (Vera) with MSR

    Locked
    91
    3 Votes
    91 Posts
    6k Views

    The final update here was that I decided against the onboard OWM config and went with creating matching Global Expressions generated via API call that I was using for Ambient's API. Consistency goes a long way for me. Paired up with matching HVAC rulesets that pull from the appropriate expressions and viola.

    My biggest concern was around making useless calls to OWM's API (I try to be a responsible Netizen). I'd resolved that with SiteSensor by having the OWM version only arm itself when the Ambient one failed but, alas, that was not to be the path forward here. I bit the proverbial bullet and have the two running simultaneously and use NULL results from Ambient as my trigger for which rulesets actually action the HVAC. It's been working quite smoothly, knock on wood.

    I do see instances were Honeywell's API for the stats is just a bit finicky about setting both stats in a single call. To resolve this I've added some "course correction" rulesets that resend the correct setpoints after seven minutes. So far, so good.

  • Setting Other State Variables on Vera / Hubitat

    Locked
    15
    0 Votes
    15 Posts
    669 Views

    @librasun They changed from global variable in Rule Machine to Hub Variables. I glossed right over the naming when you asked and assumed you meant Hub Variables. Glad you got it working.

  • 0 Votes
    3 Posts
    155 Views

    @snowman Thank you. I opened PR 0000268 for this; and it's already fixed and will appear in the next build.

  • Finding Missing Devices & Migrating Devices

    Locked
    10
    1 Votes
    10 Posts
    290 Views

    @3rdstng said in Finding Missing Devices & Migrating Devices:

    Maybe just a stupid simple GUI to a fgrep cli command with collected variables

    I think Hubitat handles it by adding a reference - complete with hyperlink - for every Rule containing a specific device or virtual device. One click to jump over to the Rule. Kinda neat.

    As someone mentioned above, I think the idea place for MSR to have this (if it were to become a feature) is under Entities. Truly it could spare me many hours of hunting and pecking - and never being entirely certain - that I sadly do not have most days.

  • How To: Send TCP packet in Reaction

    Locked
    2
    1 Votes
    2 Posts
    162 Views

    I was able to do it pretty simply in Node-Red, so I set it up there and deleted the question. I put an http listener on the NR flow and call that URL from MSR when I want to trigger the TCP connection. I'll give this solution a try, as having it all in one place seems like a good idea.

    EDIT:

    So I tried and am getting this. I'm working on it, but you'll probably post a solution before I can figure it out. I'm running MSR in Docker on a RPi4.

    Rule<SET>" (rule-kvmgurr3:S) step 3 Shell action failed command "echo '?\"id\?' | nc -C -q 1 192.168.0.25 55443" (1) nc: unrecognized option: C BusyBox v1.31.1 () multi-call binary. Usage: nc [OPTIONS] HOST PORT - connect nc [OPTIONS] -l -p PORT [HOST] [PORT] - listen -e PROG Run PROG after connect (must be last) -l Listen mode, for inbound connects -lk With -e, provides persistent server -p PORT Local port -s ADDR Local address -w SEC Timeout for connects and final net reads -i SEC Delay interval for lines sent -n Don't do DNS resolution -u UDP mode -v Verbose -o FILE Hex dump traffic -z Zero-I/O mode (scanning)

    Edit 2:
    I used my usual brute force method of Googling various terms and mashing the keyboard (aka trial and error by a Linux novice) and finally made this work on my RPi4 Docker install of MSR.

    The '-C' didn't work, but I was able to add $'\r\n' to the end of the echo command which I believe achieved the same effect.

    The '-q 1' didn't work, but I was able to use '-w 1' which again I believe has the same effect.

    So I end up with a shell command of:

    echo '{"id":1,"method":"set_power","params":["on", "smooth", 250]}'$'\r\n' | nc -w 1 192.168.0.25 55443

    0dcb676f-e03e-4464-9b6c-0a4ac39f4176-image.png

    P.S. - I read the 'category topic guide' between my first reply and this edit and realize that I'm probably violating at least one of those rules. I got a good laugh from this part of that post: " I wrote Reactor as a tool for you to use to solve your automation/logic problems, not as a tool for me to use to solve your automation/logic problems." Hopefully I'm living up to that part a little bit by figuring this out for myself (with a initial help from Patrick).

  • 0 Votes
    18 Posts
    564 Views

    As I'm marking this as [SOLVED] I thought I'd update on how this all ended up playing out:

    Creation of two API rulesets, one for Ambient, one for OWM, that dump their data into Global Expressions. At issue was how to disable OWM to prevent needless API calls - I ended up doing the maths and making adjustments that this isn't an issue any longer. As such, one API ruleset for each dumping to clearly labeled Global Expressions. Yes, they both call out to their respective APIs but the volume is low enough not to trigger either for overuse.

    The only gotcha here is to make sure that you include in the rulesets for the secondary (OWM) a Trigger that checks for the primary API to be returning null so you don't have both flavors of rulesets competing for Honeywell's API (which is notoriously cranky) as you set the t-stats.

  • [SOLVED] Home Mode setting in Hubitat

    Locked
    9
    0 Votes
    9 Posts
    727 Views

    @librasun Ah, but I've checked the ignore case button and it works wonderfully.

Recent Topics