I've posted this before, but it got buried and other people have asked about it so I figured I'd put it in its own thread. I find the notification light very annoying at night, but the only way I could find to shut off the notifications was buggy at best. This way will allow you to pick whatever triggers you have access too in tasker to control whether the light is allowed to turn on or not.
Some background: when a notification comes in, the system sets the file led_pattern in /sys/devices/virtual/sec/led to something non-zero. 3 is a slow blinking blue light, 1 is solid red, I forget what the others are now. When the screen is turned on, this is reset to zero, and when the screen is turned off, if the notification bar hasn't been opened (and the program with the notification hasn't been opened) the value is reset to something non-zero. So, I created a simple task to change the value back to zero:
Create a new task, then select Script>Shell. Enter the following command:
echo 0 > /sys/devices/virtual/sec/led/led_pattern
Check the 'Use Root' box
Then your task is done. Try it once to make sure you have accepted whatever superuser popups (you'll need to always allow this for it to work on its own).
Now create a profile, and for the context select Event>UI>Notification. You may need to check tasker on the accessibility menu if you haven't already (it will prompt you if necessary). Add whatever other contexts you want (I have a variable that's set when I turn on my nighttime menu that I check for so the light will blink during the day but not at night). You could easily just pick a block of time to turn it off instead. If you don't add other contexts this will always block your light, so make sure you've done some check to block it only at night. Add the task you created to this profile.
Next create another profile with the context State>Display>Display State set to Off, and add in the other secondary (ie night time) contexts. Call the same task you created above. This will prevent the light coming back on if you turn the display on and off at night after receiving a notification.
The only quirk I've found so far is that if you receive a google voice text, the light instantly turns purplish/pink normally. On my phone it will come on for a split second before tasker can kill it.
If you have any issues with this please let me know and I'll see what I can figure out.
I turn my phone over so the light and screen are face down. Case has a lip on it so screen doesn't touch the table. Problem solved.
-Hai guise don't feel like looking at 5 pages but I haz problems on the pre-alpha release and I don't know why.
joshindc said:
I've posted this before, but it got buried and other people have asked about it so I figured I'd put it in its own thread. I find the notification light very annoying at night, but the only way I could find to shut off the notifications was buggy at best. This way will allow you to pick whatever triggers you have access too in tasker to control whether the light is allowed to turn on or not.
Some background: when a notification comes in, the system sets the file led_pattern in /sys/devices/virtual/sec/led to something non-zero. 3 is a slow blinking blue light, 1 is solid red, I forget what the others are now. When the screen is turned on, this is reset to zero, and when the screen is turned off, if the notification bar hasn't been opened (and the program with the notification hasn't been opened) the value is reset to something non-zero. So, I created a simple task to change the value back to zero:
Create a new task, then select Script>Shell. Enter the following command:
echo 0 > /sys/devices/virtual/sec/led/led_pattern
Check the 'Use Root' box
Then your task is done. Try it once to make sure you have accepted whatever superuser popups (you'll need to always allow this for it to work on its own).
Now create a profile, and for the context select Event>UI>Notification. You may need to check tasker on the accessibility menu if you haven't already (it will prompt you if necessary). Add whatever other contexts you want (I have a variable that's set when I turn on my nighttime menu that I check for so the light will blink during the day but not at night). You could easily just pick a block of time to turn it off instead. If you don't add other contexts this will always block your light, so make sure you've done some check to block it only at night. Add the task you created to this profile.
Next create another profile with the context State>Display>Display State set to Off, and add in the other secondary (ie night time) contexts. Call the same task you created above. This will prevent the light coming back on if you turn the display on and off at night after receiving a notification.
The only quirk I've found so far is that if you receive a google voice text, the light instantly turns purplish/pink normally. On my phone it will come on for a split second before tasker can kill it.
If you have any issues with this please let me know and I'll see what I can figure out.
Click to expand...
Click to collapse
Tasker is a confusing app to me. I've tried to enter this in a few times but can't seem to get it to work. Is there any chance you could help me out and let me know more of a step by step? This guide seems to jump around a bit (it could be my extreme lack of experience with Tasker). This sounds like it is exactly what I am looking for though. The led on the GS3 is so freaking bright it lights up my whole room when it is charging at night. I *could* turn it over as suggested above but I have two problems with that:
A) We are better than our phones, aren't we? We should be able to get them to bend however we want! Why compromise?
B) I use my phone as my alarm clock and I don't want to fumble around to flip it over before I can silence it while I'm still mostly asleep.
Thanks for the guide. I will have to give this a try. I tried something else but it didn't seem to have any effect. Any idea where to find the other codes to make the LED turn on differently when you want?
---------- Post added at 06:29 PM ---------- Previous post was at 06:24 PM ----------
Relentless D said:
Tasker is a confusing app to me. I've tried to enter this in a few times but can't seem to get it to work. Is there any chance you could help me out and let me know more of a step by step? This guide seems to jump around a bit (it could be my extreme lack of experience with Tasker). This sounds like it is exactly what I am looking for though. The led on the GS3 is so freaking bright it lights up my whole room when it is charging at night. I *could* turn it over as suggested above but I have two problems with that:
A) We are better than our phones, aren't we? We should be able to get them to bend however we want! Why compromise?
B) I use my phone as my alarm clock and I don't want to fumble around to flip it over before I can silence it while I'm still mostly asleep.
Click to expand...
Click to collapse
Don't know if you are aware or not, but you can turn off the LED while charging using the build in settings. Go to Settings -> LED indicator and uncheck Charging. It shouldn't light up at all until you get some kind of notification.
ADC_112358132134 said:
Thanks for the guide. I will have to give this a try. I tried something else but it didn't seem to have any effect. Any idea where to find the other codes to make the LED turn on differently when you want?
---------- Post added at 06:29 PM ---------- Previous post was at 06:24 PM ----------
Don't know if you are aware or not, but you can turn off the LED while charging using the build in settings. Go to Settings -> LED indicator and uncheck Charging. It shouldn't light up at all until you get some kind of notification.
Click to expand...
Click to collapse
Yea I know. The thing is that I would like it to light up while charging (and change color when charged) just not between 11PM and 7AM
So, I haven't tested it for this (although I am now...) because I just have the charging LED setting turned off. I think this should work fine, although if you've killed the battery full notification you might get the green light coming on once charging completes (which you can probably deal with with an additional profile). Here's a more detailed description of the task setup:
1) Open Tasker and go to the 'Tasks' tab at the top of the screen.
2) Click on the green [+] at the bottom of the page to create a new task. Then name it something (LED kill?) and tap the green check button.
3) Click the [+] in the lower right hand corner to add an Action to your task.
4) Select 'Script', then 'Run Shell' from the Menus that pop up.
5) Under 'Command' type "echo 0 > /sys/devices/virtual/sec/led/led_pattern" without the quotes
6) Check the 'Use Root' box, then click the green check at the bottom of the window.
7) Now you should see the Task Edit window. Click the blue 'play' button at the bottom right of the window to run the task now. If you get a Superuser popup make sure you've checked the box to remember your selection, and accept the SU request. Now tap the green check box to save the task.
* Now you have a task that can turn off the light, but you need a way to trigger it. In tasker you do this by setting up profiles, which you can think of as triggers that will call the task. We want to trigger it to kill the LED whenever the phone turns it on. The phone will turn on or change the light at 2 different times:
A) When you receive a notification
B) When you turn off the screen (This will 'reset' the led if you turn on the screen and then turn it back off without clearing the notification) It will also turn on the led if the phone is charging and you've left that setting checked.
So, lets proceed:
8) Tap the 'Profiles' Tab at the top of the screen.
9) Tap the green [+] to create a new profile. Name it something like "Notification Kill" and click the green check box.
10) Select 'Event', then 'UI', then 'Notification' from the menus that pop up. Click the green check at the bottom of the Notification window that pops up (all the default settings are fine).
10a) At this point I think I was prompted the first time I did this to add Tasker to the accessibility permissions. If this happens, scroll down in the accessibility settings window that pops up and check the box next to Tasker. Then hit the back button to go back to Tasker.
11) Now select the task you just created (LED Kill) from the Task Selection window that pops up
* Now if you leave Tasker you should be blocking all notification LED lights. But you only want to turn them off at night! So you need to add another Context to this profile.
12) Long press on the Context (left hand side of the profile you just created where it says 'Notification *,*' and has a Orange ! triangle)
13) Select 'Add' from the popup, then select 'Time'
14) Pick the time range that you want the LED turned *OFF*. In your case you should pick From: 23:00 and To: 07:00.
15) Click the green Check and you're done with this profile.
* Now you've taken care of the (A) reason for the light coming on. But you need to take care of (B) as well, in case you check your phone during the 'night' hours, or if it's plugged in.
16) Repeat step (9), but name it 'ScreenOffLEDKill' or something easier to type.
17) Select 'State', then 'Display', then 'Display State' from the popup menus.
18) Make sure 'Off' is selected from the 'Is' dropdown menu, and click the green check box.
19) Select the task you created earlier again (LED Kill)
20) Repeat Steps 12-15 for this profile (Long press on 'Display State Off'...)
Now you should be set! If this still isn't working let me know and I'll try and troubleshoot it with you.
Relentless D said:
Yea I know. The thing is that I would like it to light up while charging (and change color when charged) just not between 11PM and 7AM
Click to expand...
Click to collapse
ADC_112358132134 said:
Thanks for the guide. I will have to give this a try. I tried something else but it didn't seem to have any effect. Any idea where to find the other codes to make the LED turn on differently when you want?
Click to expand...
Click to collapse
Just try different numbers. You can test it out and actually make the lights come on with the screen on from terminal emulator/adb or play with the tasker shell options. Try the following commands after getting superuser rights (by typing 'su' in the terminal emulator):
echo 7 > /sys/devices/virtual/sec/led/led_pattern
You get a slightly pulsing blue led. Substitute other numbers for the 7 and play around. You can turn off the LED by setting it to 0. You can also try echoing a value to led_b, led_g, or led_r, which will turn on the blue, green, and red leds (probably 255 is the maximum value). From what I've seen, whatever you set last overwrites whatever else you've done. So, if you set pattern to 7, then led_b to 255, the led will switch to solid blue from the pulsing light. If you then set led_r to 100, it will switch to dim red, but it won't maintain the led_b setting. I don't really have any interest in further customizing the led so I haven't played around with it much more. I haven't really figured out how to use led_blink either. If you find out more post here!
Josh
joshindc said:
Now you should be set! If this still isn't working let me know and I'll try and troubleshoot it with you.
Click to expand...
Click to collapse
Beautiful! I'll punch this in tomorrow at work. Thank you so much for helping me out!
Thank you so much for this post. Your method works perfectly. This is exactly something that I was trying to do but couldn't figure out. Great job! :good:
Just FYI, when Tasker updates from the market, it appears that sometimes the update disables the tasker accessibility service. If that happens this technique will no longer work. So, make sure to check that the accessibility service is still enabled after a Tasker update.
Thought I add a mapping of the colors to save some time to the next person...
Code:
0 = Disabled
1 = Static Red
2 = Blinking red (fast)
3 = Blinking blue (slow)
4 = Blinking red (slow)
5 = Green
6 = Static blue
7 = Static pulsing blue
Awesome, informative thread! Giving it a bump for those who want more, better information. Could anybody post the XML code in color-coded format? It helps me understand how to set it up exactly. Thanks to you for the hard work!
joshindc said:
I haven't really figured out how to use led_blink either. If you find out more post here!
Click to expand...
Click to collapse
This is a bit off topic, but since you went there I'll share some of my findings on led_blink. It turns out you can use it to create any color, but I haven't figured out how to make it... uh... blink.
At first, since led_blink usually contains 0 0 0, I thought it was simply the rgb colors with values up to 255 (just like with led_r, led_g, led_b). But, after a lot of trial-and-error, I found that it's actually hex. But that's not all. You also have to send led_blink additional information. Let me try to explain.
If you echo a string of numbers to led_blink, it seems to ignore the first two. The next two are red, then green, then blue (spaces are interpreted as zero, it seems). So, if you sent:
echo 00ff0000 > /sys/devices/virtual/sec/led/led_blink
you'd get a solid bright red light. But, here's the thing... led_blink would only contain "ff 0 0", since the first two numbers don't seem to stick. If you tried to send green the way you would intuitively think ("0 255 0"), you'd get led_blink set to "25 50 0" - which, to be fair, is still mostly green. Using the hex values plus the leading two digits, you can make the led any solid color you want.
So, what's left to figure out is:
What do the first two numbers mean, if anything? It doesn't seem to matter what they are.
How do you make it blink?
I swear, at one point when I was messing around with numbers (I wrote a Tasker task to make it easier to write to and read from led_blink) that I saw it rapidly blinking, but I don't know how I got there.
If someone can figure out how to get it blinking, Tasker would become a serious Light Flow alternative.
LightFlow can handle this and all notification aspects so much easier and with 1 button click (versus Tasker).
I use the hell out of Tasker, but I use LightFlow for ALL notifications - lights, sounds, vibrations, pop-up windows, etc. And you can set it to kill any notifications of any type you set by time of day. At 10:30pm all my lights stop flashing and come back on at 6:30am for example.
Does it work on any device? Or it is only for Galaxy S3
Sent from my GT-I9300 using Tapatalk 2
iirc led control from the play store has "night time" setting that will disable the led during times you specify
I'm using this command to turn off the led for specific Whatsapp groups, using specific contexts.
Sent from my GT-I9300 using Tapatalk 2
joshindc said:
So, I haven't tested it for this (although I am now...) because I just have the charging LED setting turned off. I think this should work fine, although if you've killed the battery full notification you might get the green light coming on once charging completes (which you can probably deal with with an additional profile). Here's a more detailed description of the task setup:
1) Open Tasker and go to the 'Tasks' tab at the top of the screen.
2) Click on the green [+] at the bottom of the page to create a new task. Then name it something (LED kill?) and tap the green check button.
3) Click the [+] in the lower right hand corner to add an Action to your task.
4) Select 'Script', then 'Run Shell' from the Menus that pop up.
5) Under 'Command' type "echo 0 > /sys/devices/virtual/sec/led/led_pattern" without the quotes
6) Check the 'Use Root' box, then click the green check at the bottom of the window.
7) Now you should see the Task Edit window. Click the blue 'play' button at the bottom right of the window to run the task now. If you get a Superuser popup make sure you've checked the box to remember your selection, and accept the SU request. Now tap the green check box to save the task.
* Now you have a task that can turn off the light, but you need a way to trigger it. In tasker you do this by setting up profiles, which you can think of as triggers that will call the task. We want to trigger it to kill the LED whenever the phone turns it on. The phone will turn on or change the light at 2 different times:
A) When you receive a notification
B) When you turn off the screen (This will 'reset' the led if you turn on the screen and then turn it back off without clearing the notification) It will also turn on the led if the phone is charging and you've left that setting checked.
So, lets proceed:
8) Tap the 'Profiles' Tab at the top of the screen.
9) Tap the green [+] to create a new profile. Name it something like "Notification Kill" and click the green check box.
10) Select 'Event', then 'UI', then 'Notification' from the menus that pop up. Click the green check at the bottom of the Notification window that pops up (all the default settings are fine).
10a) At this point I think I was prompted the first time I did this to add Tasker to the accessibility permissions. If this happens, scroll down in the accessibility settings window that pops up and check the box next to Tasker. Then hit the back button to go back to Tasker.
11) Now select the task you just created (LED Kill) from the Task Selection window that pops up
* Now if you leave Tasker you should be blocking all notification LED lights. But you only want to turn them off at night! So you need to add another Context to this profile.
12) Long press on the Context (left hand side of the profile you just created where it says 'Notification *,*' and has a Orange ! triangle)
13) Select 'Add' from the popup, then select 'Time'
14) Pick the time range that you want the LED turned *OFF*. In your case you should pick From: 23:00 and To: 07:00.
15) Click the green Check and you're done with this profile.
* Now you've taken care of the (A) reason for the light coming on. But you need to take care of (B) as well, in case you check your phone during the 'night' hours, or if it's plugged in.
16) Repeat step (9), but name it 'ScreenOffLEDKill' or something easier to type.
17) Select 'State', then 'Display', then 'Display State' from the popup menus.
18) Make sure 'Off' is selected from the 'Is' dropdown menu, and click the green check box.
19) Select the task you created earlier again (LED Kill)
20) Repeat Steps 12-15 for this profile (Long press on 'Display State Off'...)
Now you should be set! If this still isn't working let me know and I'll try and troubleshoot it with you.
Click to expand...
Click to collapse
I have à Sony xperia Z with jelly bean.
Do you know where i can find the folder there?
In the folder sys/devices/virtual there is no folder sec....
I can't find where i can turn off the charging led at night.
Thanks @joshindc! You are the man. I've been looking for something like this forever. This LED Profile works great! Thanks again. :highfive:
Cheers.
joshindc said:
So, I haven't tested it for this (although I am now...) because I just have the charging LED setting turned off. I think this should work fine, although if you've killed the battery full notification you might get the green light coming on once charging completes (which you can probably deal with with an additional profile). Here's a more detailed description of the task setup:
1) Open Tasker and go to the 'Tasks' tab at the top of the screen.
2) Click on the green [+] at the bottom of the page to create a new task. Then name it something (LED kill?) and tap the green check button.
3) Click the [+] in the lower right hand corner to add an Action to your task.
4) Select 'Script', then 'Run Shell' from the Menus that pop up.
5) Under 'Command' type "echo 0 > /sys/devices/virtual/sec/led/led_pattern" without the quotes
6) Check the 'Use Root' box, then click the green check at the bottom of the window.
7) Now you should see the Task Edit window. Click the blue 'play' button at the bottom right of the window to run the task now. If you get a Superuser popup make sure you've checked the box to remember your selection, and accept the SU request. Now tap the green check box to save the task.
* Now you have a task that can turn off the light, but you need a way to trigger it. In tasker you do this by setting up profiles, which you can think of as triggers that will call the task. We want to trigger it to kill the LED whenever the phone turns it on. The phone will turn on or change the light at 2 different times:
A) When you receive a notification
B) When you turn off the screen (This will 'reset' the led if you turn on the screen and then turn it back off without clearing the notification) It will also turn on the led if the phone is charging and you've left that setting checked.
So, lets proceed:
8) Tap the 'Profiles' Tab at the top of the screen.
9) Tap the green [+] to create a new profile. Name it something like "Notification Kill" and click the green check box.
10) Select 'Event', then 'UI', then 'Notification' from the menus that pop up. Click the green check at the bottom of the Notification window that pops up (all the default settings are fine).
10a) At this point I think I was prompted the first time I did this to add Tasker to the accessibility permissions. If this happens, scroll down in the accessibility settings window that pops up and check the box next to Tasker. Then hit the back button to go back to Tasker.
11) Now select the task you just created (LED Kill) from the Task Selection window that pops up
* Now if you leave Tasker you should be blocking all notification LED lights. But you only want to turn them off at night! So you need to add another Context to this profile.
12) Long press on the Context (left hand side of the profile you just created where it says 'Notification *,*' and has a Orange ! triangle)
13) Select 'Add' from the popup, then select 'Time'
14) Pick the time range that you want the LED turned *OFF*. In your case you should pick From: 23:00 and To: 07:00.
15) Click the green Check and you're done with this profile.
* Now you've taken care of the (A) reason for the light coming on. But you need to take care of (B) as well, in case you check your phone during the 'night' hours, or if it's plugged in.
16) Repeat step (9), but name it 'ScreenOffLEDKill' or something easier to type.
17) Select 'State', then 'Display', then 'Display State' from the popup menus.
18) Make sure 'Off' is selected from the 'Is' dropdown menu, and click the green check box.
19) Select the task you created earlier again (LED Kill)
20) Repeat Steps 12-15 for this profile (Long press on 'Display State Off'...)
Now you should be set! If this still isn't working let me know and I'll try and troubleshoot it with you.
Click to expand...
Click to collapse
Seems cool. Will try out
I stumbled upon a Tasker plugin from BlackDino that lets you change the Galaxy S3 LED settings. It might be a bit easier to use and gives some extra functionality.
http://forum.xda-developers.com/showthread.php?t=2117829
I am setting up a new Moto G7 Power (1955-2) running Android Pie. My current phone is an LG Stylo 3 with Android 8.
On the LG I made liberal use of the direct dial widget to have a page of one-touch dial icons for people I regularly called. The nice thing was that the DD widget icon shows 'Mobile", or, "Home", or, "Work" directly on the icon with the person's name as the label. That way, I could have multiple numbers for the same person side-by-side on the page and easily distinguish which icon to touch to dial. Works really well.
Now, on the Moto G7 Power with Android 9, the same direct dial widget icon process results in an icon that shows a handset object on the icon with no indication of which number is programmed. So, there is no way to tell the difference for mobile, home, and work DD widgets for the same person.
Any suggestions on how to get the same functionality on my new G7?
Your thoughts are greatly appreciated!
jlsatt4 said:
I am setting up a new Moto G7 Power (1955-2) running Android Pie. My current phone is an LG Stylo 3 with Android 8.
On the LG I made liberal use of the direct dial widget to have a page of one-touch dial icons for people I regularly called. The nice thing was that the DD widget icon shows 'Mobile", or, "Home", or, "Work" directly on the icon with the person's name as the label. That way, I could have multiple numbers for the same person side-by-side on the page and easily distinguish which icon to touch to dial. Works really well.
Now, on the Moto G7 Power with Android 9, the same direct dial widget icon process results in an icon that shows a handset object on the icon with no indication of which number is programmed. So, there is no way to tell the difference for mobile, home, and work DD widgets for the same person.
Any suggestions on how to get the same functionality on my new G7?
Your thoughts are greatly appreciated!
Click to expand...
Click to collapse
Can you specify which app exactly you use? I can't find "direct dial widget" ...
Go to a home page with some open space.
Press and hold. The screen will pop up with choices.
Select widgets.
Scroll down to Contacts. There should be at least three choices for contacts. Direct Message, Direct Dial, and, Contact.
Press and hold on Direct Dial. Drag it to an open spot on the page.
A list of contacts and their numbers will pop up. Chose one.
The widget will be on the home page.
jlsatt4 said:
Go to a home page with some open space.
Press and hold. The screen will pop up with choices.
Select widgets.
Scroll down to Contacts. There should be at least three choices for contacts. Direct Message, Direct Dial, and, Contact.
Press and hold on Direct Dial. Drag it to an open spot on the page.
A list of contacts and their numbers will pop up. Chose one.
The widget will be on the home page.
Click to expand...
Click to collapse
yes, it got it - maybe the only fix of the problem is to have different names for each number for the contacts you want in the widget :>
Right now, the best solution I can find is to link to the complete contact record instead of a single number for that contact. So, instead of a quick, direct dial for a person, I touch the contact icon first, and then chose the telephone number I want to dial.
I wonder if changing to another launcher, like Nova Launcher, would give more options.....?