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. TTS in MSR?
Set Reaction > Script Action
wmarcolinW
Topic thumbnail image
Multi-System Reactor
Errors after updating to MQTTController build 25139
tunnusT
I'm running MSR build 25139 on Docker, using MQTT controller 24293, and everything working as expected. But if I try to upgrade to MQTTController build 25139, I'm getting the following errors on MSR UI: An Entity Attribute condition in "Lay-Z-Spa auto heating off" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute value_sensor.god Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa auto heating off" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute temperature_sensor.green Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa filter pump auto off" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute temperature_sensor.red Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa filter pump auto run" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute value_sensor.pump Last 11:20:37 An Entity Attribute condition in "Lay-Z-Spa watchdog" (Terrace) failed because the referenced entity "Lay-Z-Spa States" (mqtt>layzspa_states) does not have attribute value_sensor.status Last 11:20:37 My MQTT configuration (local_mqtt_devices.yaml) for the related entity is: layzspa_message: type: ValueSensor capabilities: ["temperature_sensor", "value_sensor", "power_sensor"] primary_attribute: power_sensor.value events: "layzspa/message": "power_sensor.value": json_payload: true if_expr: '! isnull( payload?.PWR )' expr: "float(payload.PWR)" "value_sensor.air": json_payload: true if_expr: '! isnull( payload?.AIR )' expr: "float(payload.AIR)" "value_sensor.pump": json_payload: true if_expr: '! isnull( payload?.FLT )' expr: "float(payload.FLT)" "value_sensor.god": json_payload: true if_expr: '! isnull( payload?.GOD )' expr: "float(payload.GOD)" "value_sensor.lock": json_payload: true if_expr: '! isnull( payload?.LCK )' expr: "float(payload.LCK)" "value_sensor.unit": json_payload: true if_expr: '! isnull( payload?.UNT )' expr: "float(payload.UNT)" "value_sensor.error": json_payload: true if_expr: '! isnull( payload?.ERR )' expr: "float(payload.ERR)" "temperature_sensor.green": json_payload: true if_expr: '! isnull( payload?.GRN )' expr: "float(payload.GRN)" "temperature_sensor.red": json_payload: true if_expr: '! isnull( payload?.RED )' expr: "float(payload.RED)" "temperature_sensor.target": json_payload: true if_expr: '! isnull( payload?.TGT )' expr: "float(payload.TGT)" "temperature_sensor.value": json_payload: true if_expr: '! isnull( payload?.TMP )' expr: "float(payload.TMP)" "temperature_sensor.virtual": json_payload: true if_expr: '! isnull( payload?.VTM )' expr: "round(float(payload.VTM), 1)" "temperature_sensor.ambient": json_payload: true if_expr: '! isnull( payload?.AMB )' expr: "float(payload.AMB)" "layzspa/Status": "value_sensor.status": if_expr: '! isnull( payload )' expr: "payload" "layzspa/button": "value_sensor.button": if_expr: '! isnull( payload )' expr: "payload" and in reactor.yaml I have: "layzspa_states": name: "Lay-Z-Spa States" friendly_name: 'Lay-Z-Spa States' include: layzspa_message I realize my MQTT configuration might be a bit unorthodox, but could there still be something unintentional in the latest MQTTController build? If needed, I can provide detailed logs.
Multi-System Reactor
🎉 My very first MSR controller: OpenSprinkler
therealdbT
Since today is my birthday - and I still pretend to be unconventional - I'm giving away a present to this wonderful community and I'm releasing my first OpenSprinkler controller for MSR. It was real fun to code it - and while it's still WIP, it seems to work OK for me. It's polling-based at the moment, but I'll add support for updates via MQTT very soon (it's already partially coded). Get it at (install is similar to MQTTController and such): https://github.com/dbochicchio/reactor-opensprinkler Feel free to try it. It's beta software, but it's stable. I'll update it weekly until all the tasks from my todo list are empty. Since I've learnt a lot from this controller, I'll explore new controllers soon.
Multi-System Reactor
Advice reqeusted to migrate MSR from Bare Metal to Container
T
Good day all, I'm in the process of trying to shut down my 10 year old Linux home server that served many purposes, but primarily it's what I used for my NAS/Plex Media server. I migrated the NAS aspect of the server in November of last year to a true NAS solution (Ubiquti UNAS Pro), which is rack mount and much more efficient than my old tower, which it's only side benefit was heating my home office during the winter. Unfortunately it also means heating my home office during the summer, which were about to be in full swing. I have two things running on this 10 year old server at this point. MSR and pi-hole. I'm running Plex Media Server on Fedora Workstation in Podman on mini PC, which is much more energy efficient than my old tower. My next step is to migrate MSR. I know there are images of MSR out there, and creating it is well documented. I'm going to be using Podman instead of Docker for various reasons, but they work very similar. What I don't know, is what I need to do to migrate my existing Bare Metal installation over to a container. Has anyone done this? Any advice?
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
Can´t restart or upgrade/deploy MSR
F
Topic thumbnail image
Multi-System Reactor
[Solved] Limit HA Entity in MSR
wmarcolinW
Topic thumbnail image
Multi-System Reactor
Organizing/ structuring rule sets and rules
R
Hi guys, Just wondering how you guys organize your rule sets and rules. I wish I had an extra layer to have some more granularity, but my feature request was not popular. Maybe there are better ways to organize my rule sets. I use the rule sets now primarily for rooms. So a rule set per room. But maybe grouping by functionality works better. Any examples/ suggestions would be appreciated.
Multi-System Reactor
Moving MSR from a QNAP container to RP 5 - some issues
Tom_DT
Topic thumbnail image
Multi-System Reactor
Widget deletion does not work and landing page (status) is empy
M
Topic thumbnail image
Multi-System Reactor
Need help reducing false positive notifications
T
Topic thumbnail image
Multi-System Reactor
Deleting widgets
tunnusT
Hopefully a trivial question, but how do you delete widgets in a status page? Using build 22266
Multi-System Reactor
MQTT configuration question
tunnusT
I have the following yaml configuration in local_mqtt_devices file x_mqtt_device: set_speed: arguments: speed: type: str topic: "command/%friendly_name%" payload: type: json expr: '{ "fan": parameters.speed }' While this works fine, I'm wondering how this could be changed to "fixed" parameters, as in this case "fan" only accepts "A", "Q" or a numeric value of 1-5?
Multi-System Reactor
System Configuration Check - time is offset
F
Hi! I get this message when I'm on the status tab: System Configuration Check The time on this system and on the Reactor host are significantly different. This may be due to incorrect system configuration on either or both. Please check the configuration of both systems. The host reports 2025-04-01T15:29:29.252Z; browser reports 2025-04-01T15:29:40.528Z; difference 11.276 seconds. I have MSR installed as a docker on my Home Assistant Blue / Hardkernel ODROID-N2/N2+. MSR version is latest-25082-3c348de6. HA versions are: Core 2025.3.4 Supervisor 2025.03.4 Operating System 15.1 I have restarted HA as well as MSR multiple times. This message didn´t show two weeks ago. Don´t know if it have anything to do with the latest MSR version. Do anyone know what I can try? Thanks in advance! Let's Be Careful Out There (Hill Street reference...) /Fanan
Multi-System Reactor
Programmatically capture HTTP Request action status code or error
therealdbT
I have a very strange situation, where if InfluxDB restarts, other containers may fail when restarting at the same time (under not easy to understand circumstances), and InfluxDB remains unreachable (and these containers crashes). I need to reboot these containers in an exact order, after rebooting InfluxDB. While I understand what's going on, I need a way to reliable determine that InfluxDB is not reachable and these containers are not reachable, in order to identify this situation and manually check what's going on - and, maybe, in the future, automatically restart them if needed. So, I was looking at HTTP Request action, but I need to capture the HTTP response code, instead of the response (becase if ping is OK, InfluxDB will reply with a 204), and, potentially, a way to programmatically detect that it's failing to get the response. While I could write a custom HTTP controller for this or a custom HTTP virtual device, I was wondering if this is somewhat on you roadmap @toggledbits Thanks!
Multi-System Reactor
ZwaveJSUI - RGBWW BULB - Warm/Cold White interfered with RGB settings - Bulb doesn't change color if in WarmWhite state.
N
Hi , I'm on -Reactor (Multi-hub) latest-25067-62e21a2d -Docker on Synology NAS -ZWaveJSUI 9.31.0.6c80945 Problem with ZwaveJSUI: When I try to change color to a bulb RGBWW, it doesn't change to the RGB color and the bulb remains warm or cold white. I tryed with Zipato RGBW Bulb V2 RGBWE2, Hank Bulb HKZW-RGB01, Aentec 6 A-ZWA002, so seems that it happens with all RGBWW bulb with reactor/zwavejsui. I'm using from reator the entity action: "rgb_color.set" and "rgb_color.set_rgb". After I send the reactor command, It changes in zwavejsui the rgb settings but doesn't put the white channel to "0", so the prevalent channel remains warm/cold White and the bulb doesn't change into the rgb color. This is the status of the bulb in zwavejsui after "rgb_color.set" (235,33,33,) and the bulb is still warmWhite. x_zwave_values.Color_Switch_currentColor={"warmWhite":204,"coldWhite":0,"red":235,"green":33,"blue":33} The "cold white" and "warm white" settings interfer with the rgb color settings. Reactor can change bulb colors with rgb_color set — (value, ui8, 0x000000 to 0xffffff) or rgb_color set_rgb — (red, green, blue, all ui1, 0 to 255) but if warm or cold white are not to "0", zwavejsui doesn't change them and I can't find a way to change into rgb or from rgb back to warm white. So if I use from reactor: rgb_color set_rgb — (235,33,33) in zwavejsui I have x_zwave_values.Color_Switch_targetColor={"red":235,"green":33,"blue":33} 14/03/2025, 16:43:57 - value updated Arg 0: └─commandClassName: Color Switch └─commandClass: 51 └─property: targetColor └─endpoint: 0 └─newValue └──red: 235 └──green: 33 └──blue: 33 └─prevValue └──red: 235 └──green: 33 └──blue: 33 └─propertyName: targetColor 14/03/2025, 16:43:57 - value updated Arg 0: └─commandClassName: Color Switch └─commandClass: 51 └─property: currentColor └─endpoint: 0 └─newValue └──warmWhite: 204 └──coldWhite: 0 └──red: 235 └──green: 33 └──blue: 33 └─prevValue └──warmWhite: 204 └──coldWhite: 0 └──red: 235 └──green: 33 └──blue: 33 └─propertyName: currentColor In zwavejsui, the bulb changes rgb set but warm White remains to "204" and the bulb remais on warm White channel bacause is prevalent on rgb set. x_zwave_values.Color_Switch_currentColor_0=204 x_zwave_values.Color_Switch_currentColor_1=0 x_zwave_values.Color_Switch_currentColor_2=235 x_zwave_values.Color_Switch_currentColor_3=33 x_zwave_values.Color_Switch_currentColor_4=33 Is it possible to targetColor also for "warmWhite" and "coldWhite" and have something similar to this? x_zwave_values.Color_Switch_targetColor={"warmWhite":0,"coldWhite":0,"red":235,"green":33,"blue":33} Thanks in advance.
Multi-System Reactor
Problem with simultaneous notifications.
T
Topic thumbnail image
Multi-System Reactor
Problem after upgrading to 25067
R
MSR had been running fine, but I decided to follow the message to upgrade to 25067. Since the upgrade, I have received the message "Controller "<name>" (HubitatController hubitat2) could not be loaded at startup. Its ID is not unique." MSR throws the message on every restart. Has anyone else encountered this problem? I am running MSR on a Raspberry Pi4 connecting to two Hubitat units over an OpenVPN tunnel. One C8 and a C8 Pro. Both are up-to-date. It appears that despite the error message that MSR may be operating properly.
Multi-System Reactor
Global expressions not always evaluated
tunnusT
Topic thumbnail image
Multi-System Reactor
[Solved] Local expression evaluation
V
Topic thumbnail image
Multi-System Reactor

TTS in MSR?

Scheduled Pinned Locked Moved Solved Multi-System Reactor
33 Posts 12 Posters 4.5k Views 12 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.
  • toggledbitsT toggledbits

    Let me play around with this a bit. You can add the notify service to the entity (have you done this?), but I'm not sure about the rest of the parameters. Some are tricky. But I want to get something like this going in my house, so good excuse to figure it out...

    F Offline
    F Offline
    Fanan
    wrote on last edited by
    #19

    @toggledbits said in TTS in MSR?:

    You can add the notify service to the entity (have you done this?)

    @toggledbits No, I haven't used the notify service. I might give it a try later this week. If you (or anyone else) figure it out, please share!

    B toggledbitsT 2 Replies Last reply
    0
    • F Fanan

      @toggledbits said in TTS in MSR?:

      You can add the notify service to the entity (have you done this?)

      @toggledbits No, I haven't used the notify service. I might give it a try later this week. If you (or anyone else) figure it out, please share!

      B Offline
      B Offline
      Buxton
      wrote on last edited by
      #20

      @fanan Per this topic https://smarthome.community/topic/744/sending-a-service-request-to-home-assistant?_=1638829172919 I couldn't get Alexa tts to work in MSR, but I do have it working in openLuup with the following code that sits inside a simple plugin:

      myEchoDevice = "alexa_media_".. myEchoDevice
      myEchoMessage = table.concat(myEchoMessage)
      	
      local request_body = json.encode {message = myEchoMessage, data = {["type"] = "announce",method = "all"}}
      
      local response_body = {}
      	
      local theURL = 'http://'..HomeAssistantIP..':'..HomeAssistantPort..'/api/services/notify/'..myEchoDevice  
      	
      r, c, h = http.request {
         url = theURL,
         method = "POST",
         headers = {
         ["Content-Type"]   = "application/json",
         ["Authorization"] = "Bearer ".. HomeAssistantToken,
         ["Content-Length"] = request_body:len()
         },
      source = ltn12.source.string(request_body),
      sink   = ltn12.sink.table(response_body)
      }
      

      The variable "myEchoDevice" is the exact name of the specific echo device (or device group) as presented in the Amazon Alexa app. I typically broadcast to all my devices via a group, intercom style, so I catch the message wherever I am in my home. The variable "HomeAssistantToken" needs to be created in HA. "myEchoMessage "is a lua table in the above code, but you could just as easily capture the message as a string, and then trim the string prior to sending it to the HTTP post request.

      1 Reply Last reply
      0
      • F Fanan

        @toggledbits said in TTS in MSR?:

        You can add the notify service to the entity (have you done this?)

        @toggledbits No, I haven't used the notify service. I might give it a try later this week. If you (or anyone else) figure it out, please share!

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

        @fanan OK. So it turns out that this has (much) more to do with the way the Alexa Media Player service works than anything. You can simply use the call_service action on the controller's system object to call the notify.alexa_media service (or its variants, more on that below). If you do it through the system entity, you don't need to make exceptions in your local configuration to add the service -- you can run a service against any entity from the system entity, and if it's not supported, the (Hass) entity will either ignore it or log an error, but nobody dies, missiles do not launch, gravity still works, the sun continues to rise and set, etc.

        2ffaac01-0768-430b-bd18-8d2c6056831a-image.png

        Above are two different versions of the service call that do about the same thing. I'll work backwards because that's the way I figured it out...

        The green-circled "short" version of the service name requires that you specify the target in the service data. The service data is a structure as shown (always). Also see the docs for the component for more info about this service and its data. The target field must be specified when using this short form of the service name, and its value is an array of HomeAssistant entity IDs (not Reactor entity IDs) for the players (Dots and Echos) that will speak the phrase. The data substructure must be given as shown.

        The red-circled variant uses a longer service name that includes the Amazon device's name. Apparently the component creates a set of aliased services, each with the device name appended to the base service name. I find this annoying, because I have over a dozen Dots/Echos, so and it creates a bunch of data pollution. But, it's there, and it's usable. When you use a "long" service name, you don't need to specify target in the data, but it's otherwise the same, as shown.

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

        therealdbT F T 3 Replies Last reply
        1
        • toggledbitsT toggledbits

          @fanan OK. So it turns out that this has (much) more to do with the way the Alexa Media Player service works than anything. You can simply use the call_service action on the controller's system object to call the notify.alexa_media service (or its variants, more on that below). If you do it through the system entity, you don't need to make exceptions in your local configuration to add the service -- you can run a service against any entity from the system entity, and if it's not supported, the (Hass) entity will either ignore it or log an error, but nobody dies, missiles do not launch, gravity still works, the sun continues to rise and set, etc.

          2ffaac01-0768-430b-bd18-8d2c6056831a-image.png

          Above are two different versions of the service call that do about the same thing. I'll work backwards because that's the way I figured it out...

          The green-circled "short" version of the service name requires that you specify the target in the service data. The service data is a structure as shown (always). Also see the docs for the component for more info about this service and its data. The target field must be specified when using this short form of the service name, and its value is an array of HomeAssistant entity IDs (not Reactor entity IDs) for the players (Dots and Echos) that will speak the phrase. The data substructure must be given as shown.

          The red-circled variant uses a longer service name that includes the Amazon device's name. Apparently the component creates a set of aliased services, each with the device name appended to the base service name. I find this annoying, because I have over a dozen Dots/Echos, so and it creates a bunch of data pollution. But, it's there, and it's usable. When you use a "long" service name, you don't need to specify target in the data, but it's otherwise the same, as shown.

          therealdbT Offline
          therealdbT Offline
          therealdb
          wrote on last edited by
          #22

          @toggledbits Speaking of that, is there a way to easily compose re-usable actions, so I could just pass the arguments (message and device) and call the same function? I'll use for the very same purpose, since I have a couple of endpoints doing notifications/TTS. Thanks!

          --
          On a mission to automate everything.

          My MS Reactor contrib
          My Luup Plug-ins

          1 Reply Last reply
          0
          • toggledbitsT toggledbits

            @fanan OK. So it turns out that this has (much) more to do with the way the Alexa Media Player service works than anything. You can simply use the call_service action on the controller's system object to call the notify.alexa_media service (or its variants, more on that below). If you do it through the system entity, you don't need to make exceptions in your local configuration to add the service -- you can run a service against any entity from the system entity, and if it's not supported, the (Hass) entity will either ignore it or log an error, but nobody dies, missiles do not launch, gravity still works, the sun continues to rise and set, etc.

            2ffaac01-0768-430b-bd18-8d2c6056831a-image.png

            Above are two different versions of the service call that do about the same thing. I'll work backwards because that's the way I figured it out...

            The green-circled "short" version of the service name requires that you specify the target in the service data. The service data is a structure as shown (always). Also see the docs for the component for more info about this service and its data. The target field must be specified when using this short form of the service name, and its value is an array of HomeAssistant entity IDs (not Reactor entity IDs) for the players (Dots and Echos) that will speak the phrase. The data substructure must be given as shown.

            The red-circled variant uses a longer service name that includes the Amazon device's name. Apparently the component creates a set of aliased services, each with the device name appended to the base service name. I find this annoying, because I have over a dozen Dots/Echos, so and it creates a bunch of data pollution. But, it's there, and it's usable. When you use a "long" service name, you don't need to specify target in the data, but it's otherwise the same, as shown.

            F Offline
            F Offline
            Fanan
            wrote on last edited by
            #23

            @toggledbits That's great news! My only problem is that my Hass entity don't have any actions... :
            1580fec2-cbbb-45a3-b434-c4fe00eeb03d-image.png I don't know how you activated the x_hass_system.call_service?

            Do I have to change anything in my reactor.yaml?

              - id: hass
                enabled: true
                implementation: HassController
                name: Home Assistant
                config:
                  source: 'wss://f_______'
                  access_token: "eyJ0eXAi_______________________________________________________________________________________________________________________________2-nLoI369-iYcJf9z_3sviSiWA"
                  #
                  # ignore_cert - If true, suppresses certificate validation when using wss:// (Websocket
                  #               with SSL/TLS) and thus allows a self-signed certificate to be used on
                  #               the Hass system.
                  #ignore_cert: false
                  #
                  # dump_all_states - This is for troubleshooting. Do not enable unless asked.
                  #dump_all_states: false
                  log_events: false
            
            toggledbitsT 1 Reply Last reply
            0
            • F Fanan

              @toggledbits That's great news! My only problem is that my Hass entity don't have any actions... :
              1580fec2-cbbb-45a3-b434-c4fe00eeb03d-image.png I don't know how you activated the x_hass_system.call_service?

              Do I have to change anything in my reactor.yaml?

                - id: hass
                  enabled: true
                  implementation: HassController
                  name: Home Assistant
                  config:
                    source: 'wss://f_______'
                    access_token: "eyJ0eXAi_______________________________________________________________________________________________________________________________2-nLoI369-iYcJf9z_3sviSiWA"
                    #
                    # ignore_cert - If true, suppresses certificate validation when using wss:// (Websocket
                    #               with SSL/TLS) and thus allows a self-signed certificate to be used on
                    #               the Hass system.
                    #ignore_cert: false
                    #
                    # dump_all_states - This is for troubleshooting. Do not enable unless asked.
                    #dump_all_states: false
                    log_events: false
              
              toggledbitsT Offline
              toggledbitsT Offline
              toggledbits
              wrote on last edited by toggledbits
              #24

              @fanan That's not the system entity. It's probably named "Home Assistant" based on your configuration, and you can also filter by the sys_system capability.

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

              F 1 Reply Last reply
              0
              • toggledbitsT toggledbits

                @fanan That's not the system entity. It's probably named "Home Assistant" based on your configuration, and you can also filter by the sys_system capability.

                F Offline
                F Offline
                Fanan
                wrote on last edited by
                #25

                @toggledbits Ahh..! I see it now. Thanks! I'm struggeling with the indentation, but I guess it will come around after a few tries... 🙂
                The best of all is as you so well put it: "...and if it's not supported, the (Hass) entity will either ignore it or log an error, but nobody dies, missiles do not launch, gravity still works, the sun continues to rise and set, etc."
                Even Shakespeare him self would be impressed!

                1 Reply Last reply
                0
                • F Fanan marked this topic as a question on
                • F Fanan has marked this topic as solved on
                • W Offline
                  W Offline
                  whyfseeguy
                  wrote on last edited by
                  #26

                  What did I do wrong?

                  The service works in HA scripts but not in Reactor
                  cf98e30f-bc95-4b3c-8e3f-60ea0d96d470-image.png

                  toggledbitsT 1 Reply Last reply
                  0
                  • W whyfseeguy

                    What did I do wrong?

                    The service works in HA scripts but not in Reactor
                    cf98e30f-bc95-4b3c-8e3f-60ea0d96d470-image.png

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

                    @whyfseeguy said in TTS in MSR?:

                    What did I do wrong?

                    Well, you didn't post what the action logged. Did you look?

                    Off the top of my head looking at it, you've wrapped data in data. I think you just need it to be:

                    {
                        "entity_id": "media_player.media_room_tv",
                        "message": "hello there"
                    }
                    

                    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
                    • W Offline
                      W Offline
                      whyfseeguy
                      wrote on last edited by
                      #28

                      It is working now with your recipe. I had too many "data" in data field. I was following the examples above and got confused.

                      1 Reply Last reply
                      1
                      • toggledbitsT toggledbits referenced this topic on
                      • toggledbitsT toggledbits

                        @fanan OK. So it turns out that this has (much) more to do with the way the Alexa Media Player service works than anything. You can simply use the call_service action on the controller's system object to call the notify.alexa_media service (or its variants, more on that below). If you do it through the system entity, you don't need to make exceptions in your local configuration to add the service -- you can run a service against any entity from the system entity, and if it's not supported, the (Hass) entity will either ignore it or log an error, but nobody dies, missiles do not launch, gravity still works, the sun continues to rise and set, etc.

                        2ffaac01-0768-430b-bd18-8d2c6056831a-image.png

                        Above are two different versions of the service call that do about the same thing. I'll work backwards because that's the way I figured it out...

                        The green-circled "short" version of the service name requires that you specify the target in the service data. The service data is a structure as shown (always). Also see the docs for the component for more info about this service and its data. The target field must be specified when using this short form of the service name, and its value is an array of HomeAssistant entity IDs (not Reactor entity IDs) for the players (Dots and Echos) that will speak the phrase. The data substructure must be given as shown.

                        The red-circled variant uses a longer service name that includes the Amazon device's name. Apparently the component creates a set of aliased services, each with the device name appended to the base service name. I find this annoying, because I have over a dozen Dots/Echos, so and it creates a bunch of data pollution. But, it's there, and it's usable. When you use a "long" service name, you don't need to specify target in the data, but it's otherwise the same, as shown.

                        T Offline
                        T Offline
                        tbully
                        wrote on last edited by
                        #29

                        This thread has been super helpful. I have a few questions that are somewhat related:

                        1. Similar to @therealdb 's request. Is there a way to call this from the Alexa entity vs. a "call service" from the controller entity? I tried adding the TTS service but it's still not showing up under the entity. (see below - ignore multiple entries - was trying a few formats of the name)
                        2. In the service call, is there a way to make the announcement at a certain volume? Even better if it could snap back. You can see I'm setting the volume, delaying, and then announcing but was wondering if someone has a more elegant solution.

                        I realize this isn't all an MSR issue (much more HASS) but thought there are good minds here that may be able to help. Thanks.

                        9c294515-42be-4e95-84e6-6fd2b948980f-image.png

                        8f350c35-979b-4ef3-81e1-64796d65032d-image.png

                        T 1 Reply Last reply
                        0
                        • T tbully

                          This thread has been super helpful. I have a few questions that are somewhat related:

                          1. Similar to @therealdb 's request. Is there a way to call this from the Alexa entity vs. a "call service" from the controller entity? I tried adding the TTS service but it's still not showing up under the entity. (see below - ignore multiple entries - was trying a few formats of the name)
                          2. In the service call, is there a way to make the announcement at a certain volume? Even better if it could snap back. You can see I'm setting the volume, delaying, and then announcing but was wondering if someone has a more elegant solution.

                          I realize this isn't all an MSR issue (much more HASS) but thought there are good minds here that may be able to help. Thanks.

                          9c294515-42be-4e95-84e6-6fd2b948980f-image.png

                          8f350c35-979b-4ef3-81e1-64796d65032d-image.png

                          T Offline
                          T Offline
                          tbully
                          wrote on last edited by
                          #30

                          Here's everything from the entity page:

                          av_repeat.repeat_mode="unknown"
                          av_repeat.shuffle=null
                          av_transport.album_art=null
                          av_transport.current_album=null
                          av_transport.current_artist=null
                          av_transport.current_title=null
                          av_transport.current_track=null
                          av_transport.state="standby"
                          muting.state=false
                          power_switch.state=true
                          volume.level=0.15
                          x_hass.domain="media_player"
                          x_hass.entity_id="media_player.office_echo"
                          x_hass.services=["media_player"]
                          x_hass.state="standby"
                          x_hass_attr.available=true
                          x_hass_attr.bluetooth_list=[]
                          x_hass_attr.connected_bluetooth=null
                          x_hass_attr.friendly_name="Office Echo"
                          x_hass_attr.is_volume_muted=false
                          x_hass_attr.last_called=true
                          x_hass_attr.last_called_summary=""
                          x_hass_attr.last_called_timestamp=1660318076357
                          x_hass_attr.media_content_type="standby"
                          x_hass_attr.media_position_updated_at="2022-08-12T16:05:58.870619+00:00"
                          x_hass_attr.source="Local Speaker"
                          x_hass_attr.source_list=["Local Speaker"]
                          x_hass_attr.supported_features=56253
                          x_hass_attr.volume_level=0.15
                          Capabilities: av_repeat, av_transport, media_navigation, muting, power_switch, toggle, volume, x_hass, x_hass_media_player
                          Actions: av_repeat.repeat_all, av_repeat.repeat_off, av_repeat.repeat_one, av_repeat.set_repeat, av_repeat.set_shuffle, av_repeat.shuffle_off, av_repeat.shuffle_on, av_transport.fast_forward, av_transport.pause, av_transport.play, av_transport.rewind, av_transport.stop, media_navigation.next_chapter, media_navigation.next_media, media_navigation.next_track, media_navigation.previous_chapter, media_navigation.previous_media, media_navigation.previous_track, muting.mute, muting.set, muting.toggle, muting.unmute, power_switch.off, power_switch.on, power_switch.set, toggle.toggle, volume.decrease, volume.increase, volume.relative, volume.set, volume.set_db, x_hass_media_player.clear_playlist, x_hass_media_player.join, x_hass_media_player.media_next_track, x_hass_media_player.media_pause, x_hass_media_player.media_play, x_hass_media_player.media_play_pause, x_hass_media_player.media_previous_track, x_hass_media_player.media_seek, x_hass_media_player.media_stop, x_hass_media_player.play_media, x_hass_media_player.repeat_set, x_hass_media_player.select_sound_mode, x_hass_media_player.select_source, x_hass_media_player.shuffle_set, x_hass_media_player.toggle, x_hass_media_player.turn_off, x_hass_media_player.turn_on, x_hass_media_player.unjoin, x_hass_media_player.volume_down, x_hass_media_player.volume_mute, x_hass_media_player.volume_set, x_hass_media_player.volume_up
                          

                          df96e3dd-01bf-4718-a3f4-255706ec260b-image.png

                          1 Reply Last reply
                          0
                          • N Offline
                            N Offline
                            noelab
                            wrote on last edited by
                            #31

                            Hi, just playing around this topic with Alexa and I share it:
                            Example that works:

                            image.png

                            image.png

                            Still no lucky to play with "random" announce.
                            This example not work:

                            image.png

                            image.png

                            -Reactor (Multi-hub) 25082-3c348de6
                            -Docker on Synology NAS
                            -Ezlo firmware version 2.0.59.2471.8
                            -HASS Docker 2025.2.5
                            -ZWaveJSUI 10.1.3
                            -Update 30/03/2025

                            therealdbT 1 Reply Last reply
                            0
                            • N noelab

                              Hi, just playing around this topic with Alexa and I share it:
                              Example that works:

                              image.png

                              image.png

                              Still no lucky to play with "random" announce.
                              This example not work:

                              image.png

                              image.png

                              therealdbT Offline
                              therealdbT Offline
                              therealdb
                              wrote on last edited by toggledbits
                              #32

                              @noelab ciao! I randomize them in Reactor. Just use this:

                              messages[ floor( random() * len( messages) )

                              where messages is a local variable like this:

                              [
                              "Bentornato a casa",
                              "Casa, dolce casa!",
                              "Ciao!",
                              ]
                              

                              --
                              On a mission to automate everything.

                              My MS Reactor contrib
                              My Luup Plug-ins

                              N 1 Reply Last reply
                              0
                              • therealdbT therealdb

                                @noelab ciao! I randomize them in Reactor. Just use this:

                                messages[ floor( random() * len( messages) )

                                where messages is a local variable like this:

                                [
                                "Bentornato a casa",
                                "Casa, dolce casa!",
                                "Ciao!",
                                ]
                                
                                N Offline
                                N Offline
                                noelab
                                wrote on last edited by
                                #33

                                @therealdb said in TTS in MSR?:

                                [
                                "Bentornato a casa",
                                "Casa, dolce casa!",
                                "Ciao!",
                                ]

                                Grazie! and thanks to @toggledbits for the new dark theme, also my eyes are happy!

                                -Reactor (Multi-hub) 25082-3c348de6
                                -Docker on Synology NAS
                                -Ezlo firmware version 2.0.59.2471.8
                                -HASS Docker 2025.2.5
                                -ZWaveJSUI 10.1.3
                                -Update 30/03/2025

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


                                Recent Topics

                                • Set Reaction > Script Action
                                  therealdbT
                                  therealdb
                                  0
                                  6
                                  79

                                • Wiring Samotech SM308-S into light fitting
                                  akbooerA
                                  akbooer
                                  0
                                  2
                                  41

                                • Errors after updating to MQTTController build 25139
                                  toggledbitsT
                                  toggledbits
                                  0
                                  6
                                  72

                                • 🎉 My very first MSR controller: OpenSprinkler
                                  therealdbT
                                  therealdb
                                  5
                                  13
                                  631

                                • Advice reqeusted to migrate MSR from Bare Metal to Container
                                  T
                                  tamorgen
                                  0
                                  5
                                  94

                                • Reactor (Multi-System/Multi-Hub) Announcements
                                  toggledbitsT
                                  toggledbits
                                  5
                                  122
                                  37.3k

                                • Z-Wave Future....
                                  CatmanV2C
                                  CatmanV2
                                  0
                                  5
                                  176

                                • Can´t restart or upgrade/deploy MSR
                                  toggledbitsT
                                  toggledbits
                                  0
                                  4
                                  133

                                • [Solved] Limit HA Entity in MSR
                                  wmarcolinW
                                  wmarcolin
                                  0
                                  7
                                  261

                                • Disaster recovery and virtualisation
                                  CatmanV2C
                                  CatmanV2
                                  0
                                  5
                                  699

                                • Remote access of Zwave stick from Z-wave server
                                  CatmanV2C
                                  CatmanV2
                                  0
                                  3
                                  427
                                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