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.
  • Tom_DT Offline
    Tom_DT Offline
    Tom_D
    wrote on last edited by toggledbits
    #15

    I am trying to enable MSR TTS on Google home devices. I found the local_hass_devices.yaml file already existed with the above example.
    So in the true spirit of cutting and pasting while not knowing what I am doing I ended up with the following file:

    # This file has local definitions for HomeAssistant devices.
    ---
    entities:
      # Entry shows how an entity can have a service added and its name forced
      "hass>sensor_connected_clients":
        name: "WebSocket Clients"
        services:
          - homeassistant
      # Sample Sonos device, add the Hass "tts" service for text-to-speech capability
      "hass>media_player_sonos_living_room":
        service:
          - tts
      # Sample Sonos device, add the Hass "tts" service for text-to-speech capability
      "hass>media_player.family_room_speaker":
        service:
          - tts
    

    latest-25082-3c348de6

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

      What you've done here (correct approach, one little error, see below) is declare that those two media_player devices have the tts service as an additional declared service. That will cause MSR to bring in the attributes and actions of that service as supported for the device.

      Hass doesn't publish what Hass services a Hass entity supports through its API. The only service that can be known for certain is the one that is part of the Hass entity ID (e.g. the Hass entity ID media_player.family_room_speaker tells you that it will support the media_player service). Any other supported services (like tts) aren't enumerated by the API, sadly (in a few cases, they can be inferred as related in a bit mask, but this is an extension and highly implementation/component dependent, not consistent at all, but I try to pick this up when known). This manual way of connecting additional services/capabilities to the entities is the best I could do at the moment.

      Other things you can do in this file are override the name of the device (by supplying name: "myoverridename" at the same indent level as service:), and change the primary attribute (primary_attribute: "servicename.attributename"). When setting/overriding the primary attribute, the service must be supported by the device (so known by the device ID or added via services: in this file).

      One small correction, though: the canonical ID for the third entry hass>media_player.family_room_speaker -- the dot (.) should probably be an underscore (_). Confirm on the Entities 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
      1
      • F Offline
        F Offline
        Fanan
        wrote on last edited by
        #17

        Picking up on my old thread. I just got Alexa working with tts in Home Assistant. Is it possible to get it to work with MSR as well? I added the speakers to my local_hass_devices.yaml, and then I got the same tts options as with google speakers. But that don't work for sending tts messages. In HA I have to add "Type: tts" for it to work. I also don't see the native Alexa voice as an option, only the same as the google speakers. It's not a personal big deal, but would be a fun and maybe useful feature in the future.

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

          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...

          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

            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