Read the statement by Michael Teeuw here.
MMM-NotificationTrigger
-
MMM-NotificationTrigger
This module could relay or convert notifications from some module’s to other module’s.
Modules have their own incoming and outgoing notifications, but most of them are not compatible with each other. Some modules may have the user-configurable notification name or payload, but most are not. In that case, you should modify the module to make possible to understand or to broadcast other’s notification. Those are normally hardcoded in the modules, it means you should re-edit after upgrading.With MMM-NotificationTrigger, you can TRANSLATE one notification from other notification(s). And you can make a CHAIN to activate multi-modules together, even conditionally.
For example, You might be using
MMM-motion-detection
andMMM-Remote-Control
, but your MMM-motion-detection can emit onlymotion-detected
andmotion-stopped
notifications unless you modify the module itself.Now with
MMM-NotificationTrigger
,- you can translate
motion-detected
notification toREMOTE_ACTION {action:"MONITORON"}
which is understandable byMMM-Remote-Control
module. - At the same time, you can activate another
ALERT
module for showing greeting message automatically, - And even more, you can change the greeting message by time.(or any condition)
Ok, this is just an example. I believe you can find more usages for your real purpose by yourself.
Screenshot
This module works in background, so there is no screenshot.
See the details and download
[card:eouia/MMM-NotificationTrigger]
UPDATE
2018-10-02
exec
is added. Now you can execute your external shell command or script by notification.
{ module: "MMM-NotificationTrigger", config: { triggers:[ { trigger: "DOM_OBJECTS_CREATED", fires: [ { fire:"MY_COMMAND", exec: "sleep 5; ls -l" }, ], }, ] } },
- you can translate
-
UPDATE
2018-10-02
exec
is added. Now you can execute your external shell command or script by notification.
{ module: "MMM-NotificationTrigger", config: { triggers:[ { trigger: "DOM_OBJECTS_CREATED", fires: [ { fire:"MY_COMMAND", exec: "sleep 5; ls -l" }, ], }, ] } },
-
Hi Everyone,
Can some help me create a Notification trigger that fires multiple commands?So I have a gate that calls PLAY_SOUND when the gate button is pressed. Besides playing the sound I would like to show an alert and wake up the screen.
So playing the sound and wakening the screen works. But I would like to add an Alert as well. The working config is like this:
{ module: "MMM-NotificationTrigger", config: { triggers:[ { trigger: "PLAY_SOUND", fires: [ { fire:"USER_PRESENCE", payload: function(payload) { return false }, }, ], }, ] } },
Now, if I wan’t and alert on the same event, I tried this:
{ module: "MMM-NotificationTrigger", config: { triggers:[ { trigger: "PLAY_SOUND", fires: [ { fire:"USER_PRESENCE", payload: function(payload) { return false }, { fire:"SHOW_ALERT", payload: function() { return { type:"notification", title:"Porten", message: "Der er nogen ved porten!" }, }, ], }, ] } },
But it does not work.
Any help appreciated…
Best
MilkShake -
@MilkShake
It works.Anyway, this is more cleaner configuration.
{ module: "MMM-NotificationTrigger", config: { triggers:[ { trigger: "PLAY_SOUND", fires: [ { fire:"USER_PRESENCE", }, { fire:"SHOW_ALERT", payload: { type:"notification", title:"Porten", message: "Der er nogen ved porten!", }, }, ], }, ] } },
-
@Sean I also tried that. The Alert does not show up in MM. It wakes the screen with USER_PRESENCE and plays the sound, but no Alert.
-
@MilkShake Well, I don’t know why your ALERT module is not working, but as you see the screenshot, it should work. And, probably the reason might not be this module’s responsibility.
-
@Sean Yeah, I see that. When I fire this
http://MM_IP:8080/remote?action=SHOW_ALERT&message=Der%er%nogen%ved%porten!&title=PORT&timer=10&type=alert
it displays the alert.
-
@Sean I got it to work using:
{ module: "MMM-NotificationTrigger", config: { triggers:[ { trigger: "PLAY_SOUND", fires: [ { fire:"USER_PRESENCE", payload: function(payload) { return false }, { fire:"SHOW_ALERT", payload: function(payload) { return { type:"notification", title:"Porten", message: "Der er nogen ved porten!" }, }, ], }, ] } },
Thanks for helping!