node-red-contrib-tts-ultimate 1.0.52 → 1.0.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  [![Donate via PayPal](https://img.shields.io/badge/Donate-PayPal-blue.svg?style=flat-square)](https://www.paypal.me/techtoday)
4
4
 
5
+ <p>
6
+ <b>Version 1.0.54</b> February 2023<br/>
7
+ - OWNFILE: there was a 60 secs timeout, waiting for end play. Now it has been incfeased to 10 minutes.<br/>
8
+ </p>
9
+ <p>
10
+ <b>Version 1.0.53</b> February 2023<br/>
11
+ - Now in the list of sonos player, you can see the single speakers belonging to a group as well.<br/>
12
+ </p>
5
13
  <p>
6
14
  <b>Version 1.0.52</b> September 2022<br/>
7
15
  - Updated microsoft azure sdk for compatibility with node 18 LTS<br/>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-red-contrib-tts-ultimate",
3
- "version": "1.0.52",
3
+ "version": "1.0.54",
4
4
  "description": "Transforms the text in speech and hear it using Sonos player or generate an audio file to be used with third parties nodes. Works with voices from Amazon, Google (without credentials as well), Microsoft TTS Azure, or your own voice. You can also only create a TTS file to be read by third party nodes. Update of the popular SonosPollyTTS node.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -260,6 +260,17 @@ module.exports = function (RED) {
260
260
  for (let index = 0; index < groups.length; index++) {
261
261
  const element = groups[index];
262
262
  jListGroups.push({ name: element.Name, host: element.host })
263
+ // 02/03/2023 If there are speakers grouped, read the single speaker
264
+ if (element.hasOwnProperty("ZoneGroupMember") && element.ZoneGroupMember.length > 0) {
265
+ try {
266
+ for (let i = 0; i < element.ZoneGroupMember.length; i++) {
267
+ const single = element.ZoneGroupMember[i];
268
+ jListGroups.push({ name: single.ZoneName, host: single.Location.split("//")[1].split(":")[0] }) // Get Name and IP from Location field
269
+ }
270
+ } catch (error) {
271
+ }
272
+
273
+ }
263
274
  }
264
275
  res.json(jListGroups)
265
276
  //return groups[0].CoordinatorDevice().togglePlayback()
@@ -739,7 +739,7 @@ module.exports = function (RED) {
739
739
  state = "";
740
740
  node.timerbTimeOutPlay = setTimeout(() => {
741
741
  node.bTimeOutPlay = true;
742
- }, 60000);
742
+ }, 60000*10); // 10 minutes timeout
743
743
  while (state !== "stopped" && !node.bTimeOutPlay) {
744
744
  try {
745
745
  state = await getCurrentStateSync();