Snoring notification for wearables

From Rafa AM on 2015/12/22 10:34:11 +0000

Some devices that are not integrated with these app, like the Mi Band, can be paired with the phone and then vibrate when a notification from a certain app is received. If you could include the option that your app creates a notification when snoring is detected, those devices could, at least, be used to stop snoring. It will not be full integration with a wearable, but it will be better than nothing.

Copied from original feature request: http://urbandroid.uservoice.com/forums/264867-sleep-as-android/suggestions/11171775-snoring-notification-for-wearables

From RonnyBoy on 2017/03/31 09:51:31 +0000

Other same topic

Last message is from 2017, now it’s 2021 and the requested function is still not implemented :disappointed:

May I request it once again?
One addition though: Kill the notification after a minute pls. - its use is only to let the wearable vibrate. Otherwise the user has dozens of notifications in the morning.

(cross-posting from another thread bc. this one got 50 votes - the other one 1 vote)

Whilst I still do not understand such an easy feature hasn’t been added in 5 years:
For additional 3,49$ or 3,59€ there is a solution:
Buy and install tasker at the play store¹, then follow these instructions.

¹ a 7-day trial version is available to those willing and able to sideload an APK.

As Tasker isn’t too simple you might want to copy the code below into a file YourFileName.xml and import it as task into Tasker (long-press on the profiles tab to import).
This task reacts on the ‘snoring’ event by
1st: displaying a notification, waiting 5s, deleting the notification
2nd: waiting 3s (my wearable confused two messages immediately following each other as one)
3rd: displaying the very same notification again, waiting 5s, deleting the notification.
So you get two consecutive notifications (which results in my band vibrating 2x with ~8s in between) but do not have dozens notifications the next morning.

Do not forget to enable Tasker in SleepAsAndroid app!

HTH!

<TaskerData sr="" dvi="1" tv="5.13.5">
	<Profile sr="prof5" ve="2">
		<cdate>1630233699831</cdate>
		<edate>1630244397342</edate>
		<flags>8</flags>
		<id>5</id>
		<mid0>6</mid0>
		<nme>anti-snoring</nme>
		<Event sr="con0" ve="2">
			<code>801067335</code>
			<pri>0</pri>
			<Bundle sr="arg0">
				<Vals sr="val">
					<com.twofortyfouram.locale.intent.extra.BLURB>Anti-Snoring</com.twofortyfouram.locale.intent.extra.BLURB>
					<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
					<com.urbandroid.sleep.taskerplugin.extra.EVENT>com.urbandroid.sleep.ANTISNORING_ACTION</com.urbandroid.sleep.taskerplugin.extra.EVENT>
					<com.urbandroid.sleep.taskerplugin.extra.EVENT-type>java.lang.String</com.urbandroid.sleep.taskerplugin.extra.EVENT-type>
					<com.urbandroid.sleep.taskerplugin.extra.INT_VERSION_CODE>22471</com.urbandroid.sleep.taskerplugin.extra.INT_VERSION_CODE>
					<com.urbandroid.sleep.taskerplugin.extra.INT_VERSION_CODE-type>java.lang.Integer</com.urbandroid.sleep.taskerplugin.extra.INT_VERSION_CODE-type>
					<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
					<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
				</Vals>
			</Bundle>
			<Str sr="arg1" ve="3">com.urbandroid.sleep</Str>
			<Str sr="arg2" ve="3">com.urbandroid.sleep.addon.taskerplugin.ui.EditEventActivity</Str>
			<Int sr="arg3" val="1"/>
		</Event>
	</Profile>
	<Task sr="task6">
		<cdate>1630233716444</cdate>
		<edate>1630244397342</edate>
		<id>6</id>
		<nme>Snoring-Notification</nme>
		<pri>6</pri>
		<Action sr="act0" ve="7">
			<code>523</code>
			<Str sr="arg0" ve="3">Snoring</Str>
			<Str sr="arg1" ve="3">u snoring, dude!</Str>
			<Str sr="arg10" ve="3"/>
			<Str sr="arg11" ve="3"/>
			<Img sr="arg2" ve="2"/>
			<Int sr="arg3" val="0"/>
			<Int sr="arg4" val="0"/>
			<Int sr="arg5" val="5"/>
			<Int sr="arg6" val="1"/>
			<Int sr="arg7" val="8"/>
			<Int sr="arg8" val="0"/>
			<Str sr="arg9" ve="3"/>
			<ListElementItem sr="item0">
				<label></label>
			</ListElementItem>
		</Action>
		<Action sr="act1" ve="7">
			<code>30</code>
			<Int sr="arg0" val="0"/>
			<Int sr="arg1" val="5"/>
			<Int sr="arg2" val="0"/>
			<Int sr="arg3" val="0"/>
			<Int sr="arg4" val="0"/>
		</Action>
		<Action sr="act2" ve="7">
			<code>779</code>
			<Str sr="arg0" ve="3">Snoring</Str>
			<Int sr="arg1" val="0"/>
		</Action>
		<Action sr="act3" ve="7">
			<code>30</code>
			<Int sr="arg0" val="0"/>
			<Int sr="arg1" val="3"/>
			<Int sr="arg2" val="0"/>
			<Int sr="arg3" val="0"/>
			<Int sr="arg4" val="0"/>
		</Action>
		<Action sr="act4" ve="7">
			<code>523</code>
			<Str sr="arg0" ve="3">Snoring</Str>
			<Str sr="arg1" ve="3">u snoring, dude!</Str>
			<Str sr="arg10" ve="3"/>
			<Str sr="arg11" ve="3"/>
			<Img sr="arg2" ve="2"/>
			<Int sr="arg3" val="0"/>
			<Int sr="arg4" val="0"/>
			<Int sr="arg5" val="5"/>
			<Int sr="arg6" val="1"/>
			<Int sr="arg7" val="8"/>
			<Int sr="arg8" val="0"/>
			<Str sr="arg9" ve="3"/>
			<ListElementItem sr="item0">
				<label></label>
			</ListElementItem>
		</Action>
		<Action sr="act5" ve="7">
			<code>30</code>
			<Int sr="arg0" val="0"/>
			<Int sr="arg1" val="5"/>
			<Int sr="arg2" val="0"/>
			<Int sr="arg3" val="0"/>
			<Int sr="arg4" val="0"/>
		</Action>
		<Action sr="act6" ve="7">
			<code>779</code>
			<Str sr="arg0" ve="3">Snoring</Str>
			<Int sr="arg1" val="0"/>
		</Action>
	</Task>
</TaskerData>