Read the statement by Michael Teeuw here.
Hi, there is a new Alexa Module
-
Hello again! I’ve another question…
I want to power off USB power at the same time I power off monitor from alexa module.I’ve seen on line 199 of node_helper.js the following:
exec("vcgencmd display_power 0", opts, (error, stdout, stderr) =>
Tried to add the command: echo ‘1-1’ |sudo tee /sys/bus/usb/drivers/usb/unbind (cut power from usb ports)
like that:exec("vcgencmd display_power 0 && echo '1-1' |sudo tee /sys/bus/usb/drivers/usb/unbind", opts, (error, stdout, stderr) =>
Command does not work (I think theres a syntax error) monitor powers off but usb power still on.
Command works from commandline.
Also tried to put it on a separate exec function without succeed.Can you give me a hand with this @JoChef2
Thanks!
-
Also created a couple of scripts (monitor_on.sh & monitor_off.sh) --> with 2 commands I mentioned before on them.
Both works from bash but cannot execute them from node_helper.js
any thoughts? sorry about asking but am not a coder & cannot find an answer anywere…Thanks!
-
@rubenix what do the scripts look like? if u replaced the vcgencmd strin with the scripts, they should work…
where are the scripts? they MUST be on the path, or have the full path specified in the command too
-
@rubenix Hi, I don’t really know why it doesn’t work. The syntax seems to be right. That’s the hole edit part around line 199. Maybe it helps. I tested this and it works great.
device.handler = function(action) { if(action === 1){ exec("vcgencmd display_power 1 && echo '1-1' |sudo tee /sys/bus/usb/drivers/usb/bind", opts, (error, stdout, stderr) => { _this.checkForExecError(error, stdout, stderr); }); }if(action === 0){ exec("vcgencmd display_power 0 && echo '1-1' |sudo tee /sys/bus/usb/drivers/usb/unbind", opts, (error, stdout, stderr) => { _this.checkForExecError(error, stdout, stderr); }); } }
-
@JoChef2 its because the exec() is launching A program… but the program is NOT a shell (sh., bash etc), and only THEY understand the | and && syntax… vcgencmd does not… it executes what it knows ‘display_power 1’ ,and ignores the rest
now, you CAN execute a script directly as long as it contains the processor name at the front
#!/bin/sh or #!/bin/bashexec(“/home/pi/MagicMirror/modules/MMM-AlexaControl/scriptname”)
or the script has to be in the path environment varible.
(unlike windows, the ‘current directory’ is NOT included in the path (for security reasons))if the script does NOT contain the processor path&name
then you have to launch the shellexec(“/bin/bash -c “command string with pipe and logic chars””)
-
got it working thanks!
if(action === 1){ exec('/home/pi/monitor_on.sh'); }if(action === 0){ exec('/home/pi/monitor_off.sh');
forgot to put the path :confounded_face:
Thanks buds!
-
Hi, mmm-alexacontrol is ok, i’m change pages,etc.
Can I ask alexa for something and alexa replies in the compliments module?
thanks -
@minomit Hi, no that’s not directly possible with my module because it emulates only smart home devices and haven’t anything to do with the speech of Alexa. It’s possible that you add to the compliments module notification support and then you can create devices with my module that sends notifications to the compliments module. You can complete this with routines in the Alexa app. So then you have a few sentences. But I think that’s not the thing you asked for. If you want to see all the answers of Alexa you should use MMM-awesome-alexa. I’m not sure if my module works with it but that’s the only way I see to realize that. Maybe someone else have a better idea.
-
@JoChef2 Will this module work with a google home mini?
-
@sgarg15 Hi, I don’t know if it works with a google home mini because I don’t have one. But I think the wemos devices I emulate should work with a google home. So test it. You could use the default config and test the preconfigured devices. Let me know if it works.