Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Unsolved
Collapse
Discussion Forum to share and further the development of home control and automation, independent of platforms.
  1. Home
  2. Software
  3. Multi-System Reactor
  4. MQTTController configuration with multiple topics per entity
Arming Envisalink panel from MSR
T
Topic thumbnail image
Multi-System Reactor
[Solved] DynamicGroupController updating members issue
CrilleC
Edit: Solved in latest-26221. Bare-metal latest-26193 I have this group: "OKforLarm": name: OK för Larm select: - include_controller: vera - include_capability: door_sensor filter_expression: entity.attributes.door_sensor.state It contains the entities I expect but behaves a bit odd. When I open vera>device_10097 the entity attribute door_sensor.state changes to true but it won't show up as member in the group, when I also open vera>device_10095 they both shows as members and when I close vera>device_10095 it disappear from the group but when I close vera>device_10097 it lingers in the group until I restart Reactor.
Multi-System Reactor
Reactor (Multi-System/Multi-Hub) Announcements
toggledbitsT
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.
Multi-System Reactor
DynamicGroupController and attributes
therealdbT
Hey @toggledbits I'm back to trying to optimize a couple of things based on dynamic group. First of all, I think I found a typo in the doc: primary_attribute: "binary_sensor.state" primary_attribute_value: | d = false; each id in members: d = getEntity(id)?.attributes?.power_switch?.state or d, d I think the correct code snippet is d = false, All that said, my use case for dynamic groups is to group 3 different climate devices, so I could easily command them at the same time. Commands are good, but sometimes I want to check if any of the devices are on, and that's easily done with a similar snippet as the one you have in the docs. But this is limited to the primary attribute, while I want to have any of the attributes in the group to be driven by a similar logic (while all are null in the group). ie, access hvac_control.mode and see if any of the unit is set to cool, or heat. Is that possible, without re-defining an expression in each of my rules? Thanks!
Multi-System Reactor
Upgrade Issues
T
Topic thumbnail image
Multi-System Reactor
[SOLVED] Conflicting Set Reaction Groups Appear to Fire Simultaneously in Single Rule Evaluation
G
Topic thumbnail image
Multi-System Reactor
[SOLVED] Question regarding "in" vs "contains" vs contents of the string
G
Topic thumbnail image
Multi-System Reactor
Logon screen timeout
G
Noticing since 170 that the lock screen doesn't switch to the logon prompt but, rather, stays on the active UI until such time as you go to click something within it. Then it jumps to the login screen. Brave browser Brave 1.92.139 (Official Build) (arm64) Chromium: 150.0.7871.114
Multi-System Reactor
[MSR] Copy&past of actions and/or drag&drop between set/reset
therealdbT
Hey @toggledbits One thing that bothers me while doing work on new systems/new features, is that I cannot copy&paste actions, and I cannot drag&drop between set and resets. #1 is for when I want to copy an action between different rules opened in two separate browser windows, while #2 is when I just need to flip a bunch of actions in the reset, or move some logic back and forth. Both will be appreciated, but I understand the technical challenges. Thanks!
Multi-System Reactor
Upgrade advice - upgrade from aarch64 to ARM64 image
T
I'm currently on version 26011. I understand that the aarch64 image is no longer supported. So, I therefore need to update to the ARM64 image. Can anyone possibly suggest how I update my docker compose.yaml file (see below). Ideally I'd like to keep my existing reactions etc. rather than start from scratch. # Multi-System Reactor template docker-compose.yml (version 22160) # # Change the lines indicated by "DO"... # services: reactor: container_name: reactor environment: # DO change the TZ: line to set your local time zone. # See valid TZ list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones TZ: GB # # DO NOT change this path. Your directory location is in "source" below. REACTOR_DATA_PREFIX: /var/reactor # DO change the image below to the one you are using (e.g. armv7l or aarch64 for RPi 4) image: toggledbits/reactor:latest-aarch64 restart: "always" expose: - 8111 ports: - 8111:8111 volumes: # DO change the /home/username/reactor below to the directory you created for # your local data; DO NOT change the /var/reactor part - /home/pi/docker/reactor:/var/reactor - /etc/localtime:/etc/localtime:ro tmpfs: /tmp
Multi-System Reactor
Alexa for MSR, any interest?
MikeReadingtonM
Topic thumbnail image
Multi-System Reactor
[RESOLVED] Telegram notification broke with latest update
3
Topic thumbnail image
Multi-System Reactor
[RESOLVED] Phantom device, “INFO” appears
wmarcolinW
Topic thumbnail image
Multi-System Reactor
[RESOLVED] Mode Status NULL
wmarcolinW
Topic thumbnail image
Multi-System Reactor
[RESOLVED] HTTP query failing after version 26177
wmarcolinW
Topic thumbnail image
Multi-System Reactor
Question about the find function
wmarcolinW
Topic thumbnail image
Multi-System Reactor
[Answered] OK to remove old json files?
3
Topic thumbnail image
Multi-System Reactor
Deprecation Announcement: 32-bit ARM *docker* images
toggledbitsT
If you are using the armv7l docker image, the OpenJS Foundation that publishes node is no longer producing 32-bit builds as of v24. That means the last supported LTS version of node for armv7l is v22, which will go End-of-Life in May 2027. Therefore, the Reactor armv7l image is now deprecated and will only be produced until node v22 goes EOL, and I will not publish armv7l images beyond that date. If you are running an RPi 3 or earlier with Reactor, you are on this image, and will need to upgrade hardware to a 64-bit model and use the arm64 image. If you need help getting it done, ask in this category.
Multi-System Reactor
[Solved] build 26150 - engine not starting
G
@toggledbits I pulled the image (well, Watchtower did) and within minutes the whole system went offline. The log looks like it ends with 26143. [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-mkahsmgf/26qq82mw-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lqyfljfi/22f8on0t-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lsb61rw8/24oenqi2-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lrh58he0/rule-lrh58he0:S-1c00gfib-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lrh58he0/1c00dylr-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lrh58he0/1nam9w5u-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-miuh2qqi/22ls4lql-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-kwc6rmci/rule-kwc6rmci:S-1vj8sdfc-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-kwc6rmci/rule-kwc6rmci:S-1qanz01x-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-ladyja6a/24lq19p6-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-mk0o8iox/23oy468y-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-miscg2h3/rule-miscg2h3:S-22gmbq1c-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-kxgrfjke/238p0old-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-m7ccsso5/re-m7ccsso5-1r0myjxa-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-ladyja6a/19nl9wq2-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-ladyja6a/rule-ladyja6a:S-yl3xk9t-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-ladyja6a/rule-ladyja6a:S-yl3vv5m-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-ln7j2nqp/re-ln7j2nqp-22mx9lzd-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-ln7j2nqp/22mx87c8-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-licneppy/1mzwe7ht-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-ml3194ih/25jqt1j4-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-kxgrg7kf/227hshak-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-reactorexmachina/13ua1p95-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-reactorexmachina/13uagam7-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-grpvl9oypg/rule-grpvl9oypg:R-134x4cbv-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-grpvl9oypg/rule-grpvl9oypg:R-134x2fyl-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#re-lscjrws1/238p5c22-cons [latest-26143]2026-05-31T15:23:44.547Z <default:INFO> Closing container Container#Predicate#rule-lbwr0jvq/1xkczf03-cons [latest-26143]2026-05-31T15:23:44.547Z <Structure:NOTICE> Structure Structure#1 stopped [latest-26143]2026-05-31T15:23:44.547Z <app:NOTICE> Closing APIs... [latest-26143]2026-05-31T15:23:44.547Z <wsapi:NOTICE> wsapi: closing... [latest-26143]2026-05-31T15:23:44.547Z <wsapi:NOTICE> wsapi: disconnecting from "192.168.1.23#82" (1001 service closing) [latest-26143]2026-05-31T15:23:44.548Z <httpapi:NOTICE> HTTP API closing... [latest-26143]2026-05-31T15:23:44.549Z <wsapi:NOTICE> wsapi: server closed [latest-26143]2026-05-31T15:23:44.549Z <httpapi:INFO> HTTP server closed. [latest-26143]2026-05-31T15:23:44.549Z <app:NOTICE> Stopping timers... [latest-26143]2026-05-31T15:23:44.551Z <app:null> Shutdown complete, process ID 1 [latest-26143]2026-05-31T15:23:44.551Z <app:null> Closing logs... [latest-26143]2026-05-31T15:23:44.551Z <default:null> Closing log I can SSH to the VM. Alas, I do not have the previous image for 26143 as I'm a little too quick sometimes on housekeeping.
Multi-System Reactor
http request action & digest auth
tunnusT
I’m using the HTTP Request action in MSR and need to authenticate against an endpoint that uses HTTP Digest authentication. Now that endpoint was changed to use SHA-256 in digest auth, so I would like to know if MSR supports it, or is it limited to MD5-based digest auth?
Multi-System Reactor

MQTTController configuration with multiple topics per entity

Scheduled Pinned Locked Moved Multi-System Reactor
6 Posts 2 Posters 2.2k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    mgvra
    wrote on last edited by
    #1

    Hi,
    This post is a kind of feature request and a question at the same time.
    I've just recently started to play with the MSR, thanks to friend of mine @tunnus
    who recommended to try it out. So bear with me if I'm asking trivial or stupid questions.

    Some background information of my setup

    I have a KNX bus as a hardware backbone which I'm accessing through my own KNXNet/IP protocol stack implementation. On top of that I have NodeJS based dockerized microservices which are communicating using the MQTT. Since I'm still lacking a good rule engine, I've decided to try the MSR, and so far everything is looking pretty promising.

    MSR version: latest-22274-24dfd72c (tested on Ubuntu but will eventually run on RPi 4)
    MQTTController version: 22260

    So what is the problem then?

    Having well over 100 entities (62 relays alone) definitely means that I have to go with the entity template configuration. I've already succesfully POCed some simple binary and value sensors, e.g. entities that provide only state changes and are so to speak read-only. These are working just fine, but the problem lies within the switches and generally speaking
    entities that have actions.

    Screenshot from 2022-10-08 13-11-28.png

    But let me first explain how I do the MQTT topic mapping for the KNX group addresses, which are basically unique identifiers for the attributes and functions of the KNX devices.

    For example a motion sensor has a single group address, let's say 0/6/0,
    for which we the following MQTT topics:

    For status updates: /knx/0-6-0/status
    And for the read operation: /knx/0-6-0/read

    The group address 0/6/0 is formatted as 0-6-0 since it would clash with the MQTT topic.

    motion-sensors.png knx-devices-ok.png

    The problem arises with swiches and gets even worse with dimmable lights.

    In the KNX world we have separate group addresses for the statuses and for the write operations.

    For example a simple switch would have a setup like this:

    0/0/55 write (toggle on/off)
    0/0/56 status (current status, can be also used to read the status)

    And for the dimmable light we may have:

    0/0/3 write (toggle on/off)
    0/0/4 write (absolute dimming value)
    0/0/5 write (relative dimming value)
    0/0/6 status (current status, can be also used to read the status)

    Now these would map to MQTT topics like this:

    knx/0-0-55/write
    knx/0-0-56/read
    knx/0-0-56/status

    knx/0-0-3/write
    knx/0-0-4/write
    knx/0-0-5/write
    knx/0-0-6/status
    knx/0-0-6/read

    And there lies the problem. Since the MQTTController configration is only interpolating the %topic% variable, it's not possible to pass those additional 'write' topics into the template.

    knx-switch-definition-problem.png

    knx-switch-nok.png

    I've tried to get my head around this and didn't find any easy solution. One that crossed mind was the possibility to interpolate all the entity's config keys into the template.

    I'm open to all suggestions since I would love get on writing the rules and logic with the MSR. Anyway, keep up the good work @toggledbits !

    br,
    mgvra

    1 Reply Last reply
    1
    • toggledbitsT Offline
      toggledbitsT Offline
      toggledbits
      wrote on last edited by toggledbits
      #2

      Is there a reason in the actions you don't just:

          actions:
            power_switch:
              "on":
                topic: "knx/%topic%/write"
                payload:
                  expr: true
                  type: json
              "off":
                topic: "knx/%topic%/write"
                payload:
                  expr: false
                  type: json
      

      Also, the %% substitutions will happen with any simple name from the top level on your entity configuration. So, for example:

          mh3-ceiling-light:
            name: "MH3 Ceiling Light"
            topic: "0-0-56"
            type: Switch
            flavor: raspberry
            uses_template: knx-switch
      

      The substitution %raspberry% would be valid in your configuration and template. As would %name% and %type%, if those had any use/meaning. So if you have different construction for read and write, you could just create readtopic and writetopic for your template to use instead of plain topic. Using topic isn't required, and it isn't the only thing you can use.

      I think it's much more flexible than you are imagining it is, and I'm hoping this key piece of information helps you discover that.

      Edit: Please don't screen shot code and formatted data like YAML. Using the fenced code block formatting available and pasting the actual text is preferable (at least, to me, so I can copy-paste from your code to modify it if necessary, rather than having to retype it).

      Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

      M 1 Reply Last reply
      0
      • toggledbitsT toggledbits

        Is there a reason in the actions you don't just:

            actions:
              power_switch:
                "on":
                  topic: "knx/%topic%/write"
                  payload:
                    expr: true
                    type: json
                "off":
                  topic: "knx/%topic%/write"
                  payload:
                    expr: false
                    type: json
        

        Also, the %% substitutions will happen with any simple name from the top level on your entity configuration. So, for example:

            mh3-ceiling-light:
              name: "MH3 Ceiling Light"
              topic: "0-0-56"
              type: Switch
              flavor: raspberry
              uses_template: knx-switch
        

        The substitution %raspberry% would be valid in your configuration and template. As would %name% and %type%, if those had any use/meaning. So if you have different construction for read and write, you could just create readtopic and writetopic for your template to use instead of plain topic. Using topic isn't required, and it isn't the only thing you can use.

        I think it's much more flexible than you are imagining it is, and I'm hoping this key piece of information helps you discover that.

        Edit: Please don't screen shot code and formatted data like YAML. Using the fenced code block formatting available and pasting the actual text is preferable (at least, to me, so I can copy-paste from your code to modify it if necessary, rather than having to retype it).

        M Offline
        M Offline
        mgvra
        wrote on last edited by
        #3

        Thanks for your quick response!

        @toggledbits said in MQTTController configuration with multiple topics per entity:

        Is there a reason in the actions you don't just:

            actions:
              power_switch:
                "on":
                  topic: "knx/%topic%/write"
                  payload:
                    expr: true
                    type: json
                "off":
                  topic: "knx/%topic%/write"
                  payload:
                    expr: false
                    type: json
        

        Well the problem with KNX is that you need at least two separate group addresses for read/updates and write. And the way the topics are defined in my configuration, there is no common section like %topic% in the middle. So I must do it like: /knx/%status%/read and /knx/%toggle%/write (e.g. /knx/0-0-1/read and /knx/0-0-2/write). Hopefully this makes sense in the config examples below.

        I think it's much more flexible than you are imagining it is, and I'm hoping this key piece of information helps you discover that.

        It definitely helped a lot and I've managed to get it working. Maybe I've just missed this in the docs. But thanks anyway!

        Entity definitions look like this:

              # Lights (on/off)
                mh3-ceiling-light:
                  name: "MH3 ceiling light"
                  toggle: 0-0-55
                  status: 0-0-56          
                  type: Switch
                  uses_template: knx-switch
        
              # Lights (dimmable)
                living-room-wall-lights:
                  name: "Living room wall lights"
                  toggle: 0-1-5
                  status: 0-1-16
                  absolute_dimming: 0-1-28        
                  type: Switch
                  uses_template: knx-dimmable
        

        And their respective template definitions:

          knx-switch:
            query: "knx/%status%/read"
            capabilities:
              - power_switch
              - toggle
            primary_attribute: power_switch.state
            events:
              "knx/%status%/status":
                "power_switch.state":
                  json_payload: true
                  expr: "payload.data.payload.value"
            actions:
              power_switch:
                "on":
                  topic: "knx/%toggle%/write"
                  payload:
                    expr: "true"
                    type: json
                "off":
                  topic: "knx/%toggle%/write"
                  payload:
                    expr: "false"
                    type: json
                set:
                  topic: "knx/%toggle%/write"
                  payload:
                    expr: "parameters.state"
                    type: json
        
          knx-dimmable:
            query: "knx/%status%/read"
            capabilities:
              - power_switch
              - toggle
              - dimming
            primary_attribute: power_switch.state
            events:
              "knx/%status%/status":
                "power_switch.state":
                  json_payload: true
                  expr: "bool(payload.data.payload.value)"
                "dimming.level":
                  json_payload: true
                  expr: "payload.data.payload.value / 100"
            actions:
              power_switch:
                "on":
                  topic: "knx/%toggle%/write"
                  payload:
                    expr: "true"
                    type: json
                "off":
                  topic: "knx/%toggle%/write"
                  payload:
                    expr: "false"
                    type: json
                set:
                  topic: "knx/%toggle%/write"
                  payload:
                    expr: "parameters.state"
                    type: json
              dimming:
                set:
                  topic: "knx/%absolute_dimming%/write"
                  payload:
                    expr: "parameters.level * 100"
                    type: json
        
        

        Edit: Please don't screen shot code and formatted data like YAML. Using the fenced code block formatting available and pasting the actual text is preferable (at least, to me, so I can copy-paste from your code to modify it if necessary, rather than having to retype it).

        My bad, should have used the formatted code section.

        toggledbitsT 1 Reply Last reply
        0
        • M mgvra

          Thanks for your quick response!

          @toggledbits said in MQTTController configuration with multiple topics per entity:

          Is there a reason in the actions you don't just:

              actions:
                power_switch:
                  "on":
                    topic: "knx/%topic%/write"
                    payload:
                      expr: true
                      type: json
                  "off":
                    topic: "knx/%topic%/write"
                    payload:
                      expr: false
                      type: json
          

          Well the problem with KNX is that you need at least two separate group addresses for read/updates and write. And the way the topics are defined in my configuration, there is no common section like %topic% in the middle. So I must do it like: /knx/%status%/read and /knx/%toggle%/write (e.g. /knx/0-0-1/read and /knx/0-0-2/write). Hopefully this makes sense in the config examples below.

          I think it's much more flexible than you are imagining it is, and I'm hoping this key piece of information helps you discover that.

          It definitely helped a lot and I've managed to get it working. Maybe I've just missed this in the docs. But thanks anyway!

          Entity definitions look like this:

                # Lights (on/off)
                  mh3-ceiling-light:
                    name: "MH3 ceiling light"
                    toggle: 0-0-55
                    status: 0-0-56          
                    type: Switch
                    uses_template: knx-switch
          
                # Lights (dimmable)
                  living-room-wall-lights:
                    name: "Living room wall lights"
                    toggle: 0-1-5
                    status: 0-1-16
                    absolute_dimming: 0-1-28        
                    type: Switch
                    uses_template: knx-dimmable
          

          And their respective template definitions:

            knx-switch:
              query: "knx/%status%/read"
              capabilities:
                - power_switch
                - toggle
              primary_attribute: power_switch.state
              events:
                "knx/%status%/status":
                  "power_switch.state":
                    json_payload: true
                    expr: "payload.data.payload.value"
              actions:
                power_switch:
                  "on":
                    topic: "knx/%toggle%/write"
                    payload:
                      expr: "true"
                      type: json
                  "off":
                    topic: "knx/%toggle%/write"
                    payload:
                      expr: "false"
                      type: json
                  set:
                    topic: "knx/%toggle%/write"
                    payload:
                      expr: "parameters.state"
                      type: json
          
            knx-dimmable:
              query: "knx/%status%/read"
              capabilities:
                - power_switch
                - toggle
                - dimming
              primary_attribute: power_switch.state
              events:
                "knx/%status%/status":
                  "power_switch.state":
                    json_payload: true
                    expr: "bool(payload.data.payload.value)"
                  "dimming.level":
                    json_payload: true
                    expr: "payload.data.payload.value / 100"
              actions:
                power_switch:
                  "on":
                    topic: "knx/%toggle%/write"
                    payload:
                      expr: "true"
                      type: json
                  "off":
                    topic: "knx/%toggle%/write"
                    payload:
                      expr: "false"
                      type: json
                  set:
                    topic: "knx/%toggle%/write"
                    payload:
                      expr: "parameters.state"
                      type: json
                dimming:
                  set:
                    topic: "knx/%absolute_dimming%/write"
                    payload:
                      expr: "parameters.level * 100"
                      type: json
          
          

          Edit: Please don't screen shot code and formatted data like YAML. Using the fenced code block formatting available and pasting the actual text is preferable (at least, to me, so I can copy-paste from your code to modify it if necessary, rather than having to retype it).

          My bad, should have used the formatted code section.

          toggledbitsT Offline
          toggledbitsT Offline
          toggledbits
          wrote on last edited by
          #4

          @mgvra said in MQTTController configuration with multiple topics per entity:

          Maybe I've just missed this in the docs.

          More likely I did, but I'll add that to the list.

          Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

          1 Reply Last reply
          0
          • toggledbitsT Offline
            toggledbitsT Offline
            toggledbits
            wrote on last edited by
            #5

            Just checked... it is mentioned in the docs... in the "tip" right before the "Echo Capability" heading:

            All topic strings will be put through substitution, and the keywords in the substititions are values from the device configuration (like topic). If you have devices with multiple relays, add keywords like channel or unit, mirror whatever the device manufacturer tends to use, so that you effectively parameterize your template and let it work the same for multiple instances of a device's components. To help clarify this, look at the implementation of the "real" shelly_relay template in MQTTController's mqtt_devices.yaml file.

            Probably needs some embellishment to be really clear.

            Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

            1 Reply Last reply
            0
            • toggledbitsT Offline
              toggledbitsT Offline
              toggledbits
              wrote on last edited by toggledbits
              #6

              By the way, you can also access the configuration values in the expressions you use, by access through the config object in your expressions. For example, you could refer to config.toggle or config.status to access those values from your entity configuration.

              This was not mentioned in the docs and I'm updating it now.

              Author of Multi-system Reactor and Reactor, DelayLight, Switchboard, and about a dozen other plugins that run on Vera and openLuup.

              1 Reply Last reply
              0
              • toggledbitsT toggledbits locked this topic on
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              Recent Topics

              • Arming Envisalink panel from MSR
                T
                tamorgen
                0
                7
                164

              • [Solved] DynamicGroupController updating members issue
                CrilleC
                Crille
                0
                5
                101

              • Reactor (Multi-System/Multi-Hub) Announcements
                toggledbitsT
                toggledbits
                5
                148
                129.5k

              • DynamicGroupController and attributes
                therealdbT
                therealdb
                1
                5
                111

              • Upgrade Issues
                T
                tbully
                0
                9
                226

              • [SOLVED] Conflicting Set Reaction Groups Appear to Fire Simultaneously in Single Rule Evaluation
                toggledbitsT
                toggledbits
                0
                10
                251

              • [SOLVED] Question regarding "in" vs "contains" vs contents of the string
                G
                gwp1
                0
                5
                130

              • openLuup console disappeared - 500 - Internal Server Error
                A
                a-lurker
                0
                2
                173

              • Logon screen timeout
                G
                gwp1
                0
                5
                192

              • [MSR] Copy&past of actions and/or drag&drop between set/reset
                toggledbitsT
                toggledbits
                0
                9
                362

              • Upgrade advice - upgrade from aarch64 to ARM64 image
                toggledbitsT
                toggledbits
                0
                4
                215
              Powered by NodeBB | Contributors
              Hosted freely by 10RUPTiV - Solutions Technologiques | Contact us
              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • Unsolved