Piston Speak is repeating 3 times


1) Give a description of the problem
Pistion speak is repeating and is very loud on my phone. I cannot adjust the sound level from my phone

2) What is the expected behavior?
Only be notified once. Control volume of the phone speaker

3) What is happening/not happening?
Repeatibf the notification.

**4) Post a Green Snapshot of the piston![image|45x37]

**5) Attach any logs (From [ST IDE](https://graph-na02-8/24/2018, 1:10:33 PM +704ms
+0ms ╔Starting piston… (v0.3.104.20180323)
+648ms ║╔Subscribing to devices…
+722ms ║║Subscribing to Brandon.presence…
+741ms ║║Subscribing to Carmen.presence…
+909ms ║║Subscribing to Camera - Arlo Backyard…
+910ms ║║Subscribing to Camera - Garage Arlo…
+911ms ║║Subscribing to Lock - August Z-Wave…
+912ms ║╚Finished subscribing (282ms)
+946ms ║Comparison (time) 47434640 is_between (time) 25320000 … (time) 72000000 = true (8ms)
+949ms ║Time restriction check passed
+958ms ║Comparison (enum) not present is (string) not present = true (1ms)
+967ms ║Comparison (enum) present is (string) present = true (2ms)
+985ms ║Comparison (enum) not present is (string) present = false (1ms)
+992ms ║Comparison (enum) present is (string) not present = false (2ms)
+1010ms ║Comparison (enum) not present is (string) present = false (1ms)
+1017ms ║Comparison (enum) present is (string) present = true (1ms)
+1032ms ║Comparison (enum) not present is (string) not present = true (1ms)
+1042ms ║Comparison (enum) present is (string) not present = false (1ms)
+1064ms ╚Piston successfully started (1064ms)


I’m curious what speakers you are using. I have a number of Sonos speakers and if some or all of them are grouped, sending a single ‘speak’ command to all of them can cause the behavior you describe. This is because the piston is actually sending the ‘speak’ command to each individual speaker in @speakers, and each grouped speaker that receives the speak command mirrors it in turn to the other speakers in the group. So if three speakers are grouped, it’s possible you could hear the TTS audio three times.

I actually use a separate piston to handle all ‘speak’ commands I want sent to my speakers. The piston checks for grouped speakers and eliminates any slaved speakers to avoid such duplication.

There are some ways I might reorganize your piston, but everyone has their own style and I’m doubtful any such changes would affect the repetition issue. Unfortunately the log you posted is insufficient to see exactly what’s happening as it appears to be a snapshot of the log just after the piston was saved, rather than an actual execution of the piston. Depending on your answer regarding the speakers, we can decide whether to look at that further.


I’m use my S8+, Google Homes and Fire Tablets.

The issue is in my phone though. The speak is super loud and repeats as I mentioned.


I am not sure where the third speech comes from, but I see double speak commands in each scenario…

If you are using my Tasker strategy mentioned elsewhere, then you only want one “Send PUSH” to get the voice to your phone.

As far as controlling the volume on your phone, you need to edit the Task in Tasker.
Specifically, edit the “Say” command. Notice under “Stream” you have 6 choices. (Call, System, Ringer, Media, Alarm, Notification) I believe you can choose any of them, but keep in mind on Android, they each have a separate volume control.

To help with troubleshooting, it helps to remember that “Speak text” is likely going to your WiFi speaker, and “Send PUSH notification” is going to your phone.

Your particular phone may not have all 6 volume controls, so you might want to check your phone’s capabilities before tweaking that line in Tasker.


Making voice announcements & controlling Amazon Alexa Echo

In not using Tasker. I’m using lannouncer. I adjusted the volume but still is super loud.


I see… Your commands using the ® symbol threw me.


This is the exact method I use to get webCoRE to talk to Tasker…
(but I’ve never seen any other use for that symbol here in webCoRE)

WebCoRE cannot change the volumes on your phone. (one reason why I use Tasker)

That being said, try manually changing one of the OTHER volumes besides the media volume.
Depending on which version of Android, you may have 5-7 different volumes to choose from.

Volume Controls on Samsung Galaxy S8+

From Home Screen, go to Settings > Sounds and vibration > Volume
You should find a handful of extra volume controls there.

If those don’t resolve your problem, it might be the Alarm volume…
I believe you have to go into the alarm app to set that volume.
(and Alarm volume might be greyed out during ‘Do Not Disturb’ times)


This is just future proofing the piston. In case I want to use it with Tasker.

I’ll try both and see if it works.

The reason I have two is because I want to have a push notification because the phone speaks. I didn’t see a way to combine those in one command.


I have read your last post 5 times, and I do not understand what you mean…

Both of what?

My PUSH notification is what makes my phone speak. (one command does both)


I run the Google cast server on my computer. I use that with this piston so the voice command work in my Google homes


If you are using a server on your PC to speak the text, then why is your phone also talking outloud? I am sorry, I am still confused.

If this is a fairly new setup, I would make a new piston with only ONE command, to try to iron out the kinks in your text to speech command. Once it is working as you want, it will be easy to incorporate that in your real pistons…


The server is needed to interface with the Google homes.


Which devices on your network are running node.js 24/7??


My server


I reread my comment above. Sorry. I am using this with Tasker as well as the Google Cast api. the speak command is needed for the Google Cast while the push command is needed for the Tasker task that’s why it’s in there twice. Don’t have any other way of pushing the notification. Maybe if I got rid of the register mark on my push it would only speak under the speak command but I thought I needed a push for the Tasker options work.

Really sorry I confused your replies


Is your node.js running on your computer, an Android device, a Raspberry Pi or some other device?

The reason I ask is you said earlier that you “run the Google cast server on your computer”… but this topic was about the piston speak repeating 3 times on your phone.

Can you confirm that all 3 speeches are on your phone, and none on Google Home?
Or is it happening once on your phone, and twice on your Google Homes?

(I think the confusion is because you are troubleshooting too many things at once)

My extra confusion is because you said you are not using Tasker to speak the text, yet you are sending a command to Tasker for some reason. Is there any chance the Tasker Speech profile we worked on earlier is still active?


This piston does two things 1. Runs the variable through Tasker (I was wrong before as I was working on anither issue and I told you I didn’t use Tasker). That command is spoken on my phone. This is the issue I have (too loud and repeats). The repeating is only on my phone

2 it also uses the cast api to speak on my Google home devices. Those work fine and do not repeat it or are too loud. The node.js runs on a computer to achieve this.


To help narrow this down, can you please import this piston and press TEST:

How many times does it speak on your phone?


Once. So the repeating was the registration mark used in the Speak command. I removed it and that seems to work. I also add alarm 3 in Tasker and that fixed the sound issue. (Media volume didn’t)


Excellent. Breaking down problem pistons is a great way to determine the issue at hand.