Networked Speaker Driver

I have multiple Fabriq Riff and Chorus speakers integrated into SmartThings as TTS devices that ‘Speak’ statements. In ST they use @Ule’s Generic Media Renderer driver. Hopeful that a Hubitat driver can be made available.


I hope so too.
I use “speak’ a hell of a lot here.
WAF hits the floor if she doesn’t hear the laundry alerts :slight_smile:

Wow, I’ve never given laundy IoT a thought … that could be really useful. What appliances/devices are you using for that? (ok, ok, I will google on my own as well :slight_smile: )

If you use a smartplug with power monitoring for your washer, you can use load dropping below a threshold to trigger an event.


Exactly what I do with my smartthings setup currently

I’ve also read of people using a device with a vibration sensor.

Hoping to see this one soon and that it would be usable. What other vibration sensors are there? I’d love to setup notifications for our washer. It pauses for quite a long time during various cycles (it’s a European Bosch front loading), so it would have to be looking for no vibration after x minutes, but doable.

TL; DR = May be too sensitive, mileage may vary.

I have a couple ST Multipurpose Sensors, but never tried them for "laundry detection" because my house is small enough that I know the load is done when the house stops shaking! :rofl:


I just set up a Laundry Monitor piston in ST using power readings from the Zooz ZEN15 plug I’ve ported to Hubitat. Unfortunately, I had to do it in ST because because: 1) I don’t have a networked speaker in Hubitat, and 2) I’m still trying to wrap my dumb mind around Rule Machine. It was a pretty simple setup using the pushed Other Hub device data and a couple of virtual switches. I just hope I’ll be able to bring it back to Hubitat soon. I want to stay local!

I am using an Aeon HEM v1 to monitor my washer and dryer independently. I was able to move this from ST to Hubitat over the weekend. I am using an old Driver originally written by Mike Maxwell. I like the simplicity of the design, as it simply creates Button Pushed events when the wattage drops below a user configured wattage value (one for washer, another for dryer.)

You can then easily use whatever notification method you want, that can be triggered by a button event. I am using Rule Machine to send messages to our phones when either machine finishes a laundry cycle.

(Note: To get around the current 10 SMS text messages / day limit, I am using Pushover to send these messages to our phones/tablets. If anyone is interested, let me know and I will share my Pushover Device Driver.)

1 Like

Sorry to steer this thread off-topic, @Matthew!

I will get it back on track by saying that I’d also love to see TTS support on the Hubitat hub, but this has already been asked on this thread, and @bravenel stated that it’s on their roadmap.

I don’t have enough know how to understand whether the addition of a textToSpeech() function alone will allow for TTS notifications to be forwarded to a DLNA media renderer, as is done with Ule’s solution, but that’s what will be necessary for your Fabriq Riff and Chorus speakers to work.

I also have a couple of DLNA MR capable speakers, not Sonos, so I’m in the same boat as you and @Cobra.

As soon as we have textToSpeech then I will port Message Central across from ST
It has two different capabilities to be able to use power monitors for both voice and text alerts
I also plan to add vibration as a trigger

1 Like

I have been in conversation with Ule (Media Renderer original author)
He doesn’t have a hubitat hub and does not have anything to test/port with.
I have a question for the guys using media renderer on st that would like a port…

Would you be prepared to chip in a few bucks to get Ule a hub to work with?
I would personally be happy to contribute but am wondering if anyone else is interested.

My reliance on MR in ST has become apparent and I would really like the same facility in Hubitat.

Count me in! I’d be happy to contribute to get his stuff ported to Hubitat.

With all of the discussion over on the thread for the beta release of your MP3 Event Player, I realized I haven't checked in on the state of things with regards to getting Ule's Media Renderer working on Hubitat.

I didn't reply previously to the question of contributing - but yes, I would chip in some bucks towards this.

I just tried firing up the Media Renderer Connect app on my Hubitat and it gets further than before. I can start a search for a DLNA device, but it never finds either of my DLNA speakers that work fine in ST.

I will take a look again through the Media Renderer Connect code to see what I can figure out.

I haven’t spoken to Ule since as I didn’t get much response to my question.
I got impatient and went and bought two sonos speakers as soon as the support for them was announced :slight_smile:

He did actually say that if someone sent him a hub he would be happy to try the port and send it back when he was finished.
My original plan was to just let him keep it as a thank you for his work.


Oh well, that's more $$$ than I am willing/able to put into this "hope".

Just more incentive to figure out the code or find another way to integrate the DLNA speakers I've already bought.

Well, dlna works, that's what the sonos driver uses, transport subscriptions and all...
I'm not going to tell you how much fun parsing the xml is though, I think I've been perminantly traumatized...

The parent Media Renderer Connect app is discovering DLNA devices correctly (as seen in trace log messages), after I replace all instances of physicalgraph with hubitat, but they don't get added to the app's dynamically built options list to choose a DLNA device.

I'm out of my depths with this code, but far as I can tell, the problem is due to the HTTP GET for the XML on the DNLA device not creating an event for the app to parse.

When the discovery search is started, the app subscribes to location, to trigger a locationHandler routine:

subscribe(location, null, locationHandler, [filterEvents:false])

Using that subscription, events are generated from LAN discovery of DLNA Media Renderers:

sendHubCommand(new hubitat.device.HubAction("lan discovery urn:schemas-upnp-org:device:MediaRenderer:1", hubitat.device.Protocol.LAN))

All of the correct information for any appropriate Media Renderers discovered is parsed as part of the locationHandler() routine triggered by subscribed events.

But then no event seems to be created by the HTTP GET command, which looks like this:

sendHubCommand(new hubitat.device.HubAction("""GET $ssdpPath HTTP/1.1\r\nHOST: $ip\r\n\r\n""", hubitat.device.Protocol.LAN, "${deviceNetworkId}"))

I've added logging to display various strings and the GET string looks fine and using an external tool calling it does call up the XML text. Here's an example GET string:

GET /description.xml HTTP/1.1 HOST:

The deviceNetworkId is also correct, cross-checked with log output in SmartThings.

But that second sendHubCommand() call does not result in any events.

I'm at a total loss as to how to troubleshoot this. Any help would be greatly appreciated.

Well, I guess I'll keep talking it through with myself... :stuck_out_tongue_winking_eye:

So I figured out how to get locationHandler() to be called and parse the XML received from the HTTP GET command. Looking at the SmartThings Dev page on HubAction, I saw that HubAction can include a callback as part of its map options parameter.

Also, deviceNetworkId comes in as a string already, so I got rid of the ${____} wrapper (or whatever you coder people call it). And that got me this:

sendHubCommand(new hubitat.device.HubAction("""GET $ssdpPath HTTP/1.1\r\nHOST: $ip\r\n\r\n""", hubitat.device.Protocol.LAN, deviceNetworkId, [callback: locationHandler]))

...which allows the XML to be parsed and adds appropriate DNLA Media Renderers to the option list:

Because of the way the Hubitat refreshes the displayed web page, after the selecting the Media Renderer, the "Next" button needs to be clicked immediately. It took me a couple attempts, but then when I clicked "Done" back in the app's Main menu, it added my DLNA Media Renderer to my device list:

As can be seen in the Current States details, there may still be some issues to work through.

I will report back when I'm at home and have a chance to test whether the created DNLA Media Renderer device allows playback.


Download the Hubitat app