[DSF Extension] Exec On MCode (was: Shutdown SBC)
-
@chrishamm As of right now ExecOnMCode is a simple API client just connecting to the socket. It is not yet converted to an official plugin. It will be started by a user-provided systemd unit (or arbitrary other means) completely independent of DCS.
-
@wilriker
I once wrote you a PM in German. because I don't know if you understand what I am writing via google translator@All
I would like to send an http command using the Mxxxx command.Let's assume I've installed everything as shown in the video linked here.
What do I have to enter where and how around this line:
http://IP.Adrresse.Of.Shelly/relay/0?turn=off
to be able to send?
P.S or edit or next step
i installed the ExecOnMCode with help of the two videos. but the shutdown (poweroff) with M7722 don't work for me.
The Service is running:
but in DWC i see this message:
M7722
Warning: M7722: Command is not supportedAnd the Raspi is still working/running.
On Terminal (connected with Raspi) i see:
pi@CCC:~ $
2021/05/18 22:24:53 Connection to DCS closed
2021/05/18 22:24:53 EOF
pi@CCC:~ $ -
@crazycreator So, if you want to make a simple HTTP/GET call I'd say you need a
cURL
orwget
command:execonmcode -mCode 1234 -command 'wget -O /dev/null "http://IP.Adrresse.Of.Shelly/relay/0?turn=off"'
If you want to put that into the
ExecStart
line of a systemd unit you have to deal with systemd's escaping syntax. That will be a bit ugly but doable. Otherwise you could move thewget
call into a simple bash-script and call that - one foron
and one foroff
. -
Ok .. sounds good.
But actually the script is not running correct ... the error popup on web-gui is the only reaction when I send M7722. The Raspi don't shut down or restart after this M7722 command.
the terminal show what you see on my terminal screen in my last posting
pi@CCC:/usr/local/bin $ sudo ./execonmcode -mCode 7722 -command "poweroff"
2021/05/19 20:47:59 Connection to DCS closed
2021/05/19 20:47:59 EOFI think that's the problem. But i have no idea how to fix this.
I did the installation exactly as shown in the video. -
nobody answer me?
when i try the command in terminal, connected with the Pi, with additional parameter
i see this outputpi@CCC:~ $ sudo /usr/local/bin/execonmcode -mCode 7722 -command poweroff -debug -trace 2021/05/20 15:54:21 7722: poweroff 2021/05/20 15:54:21 [DEBUG] <Recv> {"version":11,"id":20} 2021/05/20 15:54:21 [DEBUG] <Send> {"Mode":"Intercept","Version":7,"InterceptionMode":"Pre"} 2021/05/20 15:54:21 [DEBUG] <Recv> {"success":true} 2021/05/20 15:54:21 [DEBUG] <Connect> Connection established
but the Pi don't reboot or shut down ... no reaction
on dwc the same ... no reaction -
@crazycreator Can you check if the command
poweroff
does work on your system in the first place?Also please check
execonmcode
version (parameter-version
). It looks to me as if you are using an older version. -
@wilriker said in [DSF Extension] Exec On MCode (was: Shutdown SBC):
Can you check if the command poweroff does work on your system in the first place?
How can i do this?
@wilriker said in [DSF Extension] Exec On MCode (was: Shutdown SBC):
Also please check execonmcode version (parameter -version). It looks to me as if you are using an older version.
pi@CCC:~ $ sudo /usr/local/bin/execonmcode -version 2021/05/20 16:20:43 0x24142bc pi@CCC:~ $
-
@crazycreator said in [DSF Extension] Exec On MCode (was: Shutdown SBC):
How can i do this?
Run
sudo poweroff
and check what that does.pi@CCC:~ $ sudo /usr/local/bin/execonmcode -version 2021/05/20 16:20:43 0x24142bc pi@CCC:~ $
That looks like a bug in previous version and it may be that DCS is rejecting this client. Please get the version 5.2.0 of
execonmcode
from GitHub and try again. -
@wilriker I used 5.1 so that I could imitate the tutorial 100%. now I'm back on 5.2
sudo poweroff
pi@CCC:~ $ sudo poweroff Connection to ccc.local closed by remote host. Connection to ccc.local closed.
Versionscheck
pi@CCC:~ $ sudo /usr/local/bin/execonmcode --version 5.2.0
Debug and Trace
pi@CCC:~ $ sudo /usr/local/bin/execonmcode -mCode 7722 -command -poweroff -debug -trace 2021/05/20 16:35:27 7722: -poweroff 2021/05/20 16:35:27 [DEBUG] <Recv> {"version":11,"id":21} 2021/05/20 16:35:27 [DEBUG] <Send> {"Mode":"Intercept","Version":10,"InterceptionMode":"Pre","Channels":["HTTP","Telnet","File","USB","Aux","Trigger","Queue","LCD","SBC","Daemon","Aux2","AutoPause","Unknown"],"Filters":["M7722"],"PriorityCodes":false} 2021/05/20 16:35:27 [DEBUG] <Recv> {"success":true} 2021/05/20 16:35:27 [DEBUG] <Connect> Connection established
put the M7722 command in DWC Console ... show me this in terminal
2021/05/20 16:35:58 Connection to DCS closed 2021/05/20 16:35:58 [DEBUG] <Close> Closing connection 2021/05/20 16:35:58 EOF
-
@crazycreator said in [DSF Extension] Exec On MCode (was: Shutdown SBC):
pi@CCC:~ $ sudo /usr/local/bin/execonmcode -mCode 7722 -command -poweroff -debug -trace
At least this time you used
-poweroff
which most likely is not a valid command. -
@wilriker
but in shutdownsbc.service is used and in the video tutorial too.What should I write / use that instead?
What else can I try to get the script to work?
-
@crazycreator Just remove the dash from the start of
poweroff
then it should work. -
@wilriker
you mean so:pi@CCC:~ $ sudo /usr/local/bin/execonmcode -mCode 7722 -command poweroff -debug -trace 2021/05/20 18:47:03 7722: poweroff 2021/05/20 18:47:03 [DEBUG] <Recv> {"version":11,"id":80} 2021/05/20 18:47:03 [DEBUG] <Send> {"Mode":"Intercept","Version":10,"InterceptionMode":"Pre","Channels":["HTTP","Telnet","File","USB","Aux","Trigger","Queue","LCD","SBC","Daemon","Aux2","AutoPause","Unknown"],"Filters":["M7722"],"PriorityCodes":false} 2021/05/20 18:47:03 [DEBUG] <Recv> {"success":true} 2021/05/20 18:47:03 [DEBUG] <Connect> Connection established
-
@wilriker
When I send M7722 in the DWC Console I get the familiar popup with the message:
M7722
Warning: M7722: Command is not supportedBut the Raspberry does not switch off or restarts!
When I send the M7722 command in the DWC console, I see the following lines in the terminal:
2021/05/20 18:47:47 Connection to DCS closed 2021/05/20 18:47:47 [DEBUG] <Close> Closing connection 2021/05/20 18:47:47 EOF
-
@crazycreator One note that I've found is that when rebooting or powering off the SBC from a custom mCode, DCW will report "Command not supported" as the API immediately shuts down. See this thread:
-
@oozebot
thanks for the hint. I've already read that while looking for a solution to my problem.if execonmcode would run, then the message would be pretty irrelevant to me;) ... but unfortunately I can't do that
-
@crazycreator TBH I have no idea why it does not work for you. Can you please post the output of
sudo journalctl -eu duetcontrolserver
after you sent
M7722
andexeconmcode
reported EOF?Also another idea, please try the absolute path to
poweroff
, i.e./usr/bin/poweroff
. -
@wilriker
this the output:pi@CCC:~ $ sudo /usr/local/bin/execonmcode -mCode 7722 -command poweroff -debug -trace 2021/05/20 20:27:38 7722: poweroff 2021/05/20 20:27:38 [DEBUG] <Recv> {"version":11,"id":114} 2021/05/20 20:27:38 [DEBUG] <Send> {"Mode":"Intercept","Version":10,"InterceptionMode":"Pre","Channels":["HTTP","Telnet","File","USB","Aux","Trigger","Queue","LCD","SBC","Daemon","Aux2","AutoPause","Unknown"],"Filters":["M7722"],"PriorityCodes":false} 2021/05/20 20:27:38 [DEBUG] <Recv> {"success":true} 2021/05/20 20:27:38 [DEBUG] <Connect> Connection established 2021/05/20 20:27:47 Connection to DCS closed 2021/05/20 20:27:47 [DEBUG] <Close> Closing connection 2021/05/20 20:27:47 EOF pi@CCC:~ $ sudo journalctl -eu duetcontrolserver May 20 18:31:16 CCC DuetControlServer[424]: [warn] IPC#67: Client with outdated protocol version connected (got 10, want 11) May 20 18:40:55 CCC DuetControlServer[424]: [warn] IPC#69: Client with outdated protocol version connected (got 10, want 11) May 20 18:43:43 CCC DuetControlServer[424]: [warn] IPC#70: Client with outdated protocol version connected (got 10, want 11) May 20 18:44:42 CCC DuetControlServer[424]: [warn] IPC#72: Client with outdated protocol version connected (got 10, want 11) May 20 18:45:54 CCC DuetControlServer[424]: [warn] IPC#75: Client with outdated protocol version connected (got 10, want 11) May 20 18:46:20 CCC DuetControlServer[424]: [warn] IPC#77: Client with outdated protocol version connected (got 10, want 11) May 20 18:46:25 CCC DuetControlServer[424]: [warn] IPC#78: Client with outdated protocol version connected (got 10, want 11) May 20 18:47:03 CCC DuetControlServer[424]: [warn] IPC#80: Client with outdated protocol version connected (got 10, want 11) May 20 18:47:06 CCC DuetControlServer[424]: [warn] IPC#81: Client with outdated protocol version connected (got 10, want 11) May 20 18:47:58 CCC DuetControlServer[424]: [warn] IPC#83: Client with outdated protocol version connected (got 10, want 11) May 20 18:48:08 CCC DuetControlServer[424]: [warn] IPC#85: Client with outdated protocol version connected (got 10, want 11) May 20 18:58:23 CCC DuetControlServer[424]: [info] Starting macro file homeall.g on channel HTTP May 20 18:58:23 CCC DuetControlServer[424]: [info] Starting macro file homey.g on channel HTTP May 20 18:58:28 CCC DuetControlServer[424]: [info] Finished macro file homey.g May 20 18:58:28 CCC DuetControlServer[424]: [info] Starting macro file homex.g on channel HTTP May 20 18:58:32 CCC DuetControlServer[424]: [info] Finished macro file homex.g May 20 18:58:32 CCC DuetControlServer[424]: [info] Starting macro file homez.g on channel HTTP May 20 18:58:47 CCC DuetControlServer[424]: [info] Starting macro file bed.g on channel HTTP May 20 18:59:14 CCC DuetControlServer[424]: [info] Finished macro file bed.g May 20 18:59:15 CCC DuetControlServer[424]: [info] Finished macro file homez.g May 20 18:59:15 CCC DuetControlServer[424]: [info] Finished macro file homeall.g May 20 20:26:35 CCC DuetControlServer[424]: [warn] IPC#109: Client with outdated protocol version connected (got 10, want 11) May 20 20:27:38 CCC DuetControlServer[424]: [warn] IPC#114: Client with outdated protocol version connected (got 10, want 11) lines 74-96/96 (END)
-
@wilriker
and with the absolute path:pi@CCC:~ $ sudo /usr/local/bin/execonmcode -mCode 7722 -command /usr/bin/poweroff -debug -trace 2021/05/20 20:31:12 7722: /usr/bin/poweroff 2021/05/20 20:31:12 [DEBUG] <Recv> {"version":11,"id":117} 2021/05/20 20:31:12 [DEBUG] <Send> {"Mode":"Intercept","Version":10,"InterceptionMode":"Pre","Channels":["HTTP","Telnet","File","USB","Aux","Trigger","Queue","LCD","SBC","Daemon","Aux2","AutoPause","Unknown"],"Filters":["M7722"],"PriorityCodes":false} 2021/05/20 20:31:12 [DEBUG] <Recv> {"success":true} 2021/05/20 20:31:12 [DEBUG] <Connect> Connection established 2021/05/20 20:31:48 Connection to DCS closed 2021/05/20 20:31:48 [DEBUG] <Close> Closing connection 2021/05/20 20:31:48 EOF pi@CCC:~ $ sudo journalctl -eu duetcontrolserver May 20 18:44:42 CCC DuetControlServer[424]: [warn] IPC#72: Client with outdated protocol version connected (got 10, want 11) May 20 18:45:54 CCC DuetControlServer[424]: [warn] IPC#75: Client with outdated protocol version connected (got 10, want 11) May 20 18:46:20 CCC DuetControlServer[424]: [warn] IPC#77: Client with outdated protocol version connected (got 10, want 11) May 20 18:46:25 CCC DuetControlServer[424]: [warn] IPC#78: Client with outdated protocol version connected (got 10, want 11) May 20 18:47:03 CCC DuetControlServer[424]: [warn] IPC#80: Client with outdated protocol version connected (got 10, want 11) May 20 18:47:06 CCC DuetControlServer[424]: [warn] IPC#81: Client with outdated protocol version connected (got 10, want 11) May 20 18:47:58 CCC DuetControlServer[424]: [warn] IPC#83: Client with outdated protocol version connected (got 10, want 11) May 20 18:48:08 CCC DuetControlServer[424]: [warn] IPC#85: Client with outdated protocol version connected (got 10, want 11) May 20 18:58:23 CCC DuetControlServer[424]: [info] Starting macro file homeall.g on channel HTTP May 20 18:58:23 CCC DuetControlServer[424]: [info] Starting macro file homey.g on channel HTTP May 20 18:58:28 CCC DuetControlServer[424]: [info] Finished macro file homey.g May 20 18:58:28 CCC DuetControlServer[424]: [info] Starting macro file homex.g on channel HTTP May 20 18:58:32 CCC DuetControlServer[424]: [info] Finished macro file homex.g May 20 18:58:32 CCC DuetControlServer[424]: [info] Starting macro file homez.g on channel HTTP May 20 18:58:47 CCC DuetControlServer[424]: [info] Starting macro file bed.g on channel HTTP May 20 18:59:14 CCC DuetControlServer[424]: [info] Finished macro file bed.g May 20 18:59:15 CCC DuetControlServer[424]: [info] Finished macro file homez.g May 20 18:59:15 CCC DuetControlServer[424]: [info] Finished macro file homeall.g May 20 20:26:35 CCC DuetControlServer[424]: [warn] IPC#109: Client with outdated protocol version connected (got 10, want 11) May 20 20:27:38 CCC DuetControlServer[424]: [warn] IPC#114: Client with outdated protocol version connected (got 10, want 11) May 20 20:27:57 CCC DuetControlServer[424]: [warn] IPC#116: Client with outdated protocol version connected (got 10, want 11) May 20 20:31:12 CCC DuetControlServer[424]: [warn] IPC#117: Client with outdated protocol version connected (got 10, want 11) May 20 20:31:58 CCC DuetControlServer[424]: [warn] IPC#119: Client with outdated protocol version connected (got 10, want 11) lines 77-99/99 (END)
-
@crazycreator Hm, there is something strange here. I can now reproduce your issue. I have to investigate that.
EDIT: It seems that you discovered a but in DCS 3.3-rc2 (and possibly earlier) that will be fixed in the next RC (I have to confirm that still).