Read the statement by Michael Teeuw here.
JSON request module
-
@sdetweil thank.
-
@ELMAGO Hi,
You can use a simple curl command to fetch the data and get the data send as notification with my MMM-CommandToNotification module. The module supports to call commands periodically.
As you do have the data as payload of a notification then you can use my MMM-ValuesByNotification module to display it. This module is very powerful, allows parsing the payload as Json, selecting values in the Json with JSONPath syntax and even reformatting. -
Thank you for your reply.
So I installed the two modules and configured my config as follows://TEMPERATURE MAISON { module: "MMM-CommandToNotification", disabled: false, config: { updateInterval: 10, commands: [ { script: "http://192.168.100.244:3000/TEMPSALLE", args: "-10 10", timeout: 5, notifications: [ "TEMPSALLE", ], }, ] }, }, // AFFICHAGE { module: "MMM-ValuesByNotification", position: "top_right", header: "Module-1", config: { groups: [ { items: [ { notification: "TEMPSALLE", itemTitle: "Item-1", values: [ { valueTitle: "Value-1", valueUnit: "°C", jsonpath: "data", }, ] }, ] }, ] }, },
and i get :
Can you help me ?
-
@ELMAGO You can NOT enter the url directly into the Command module. You need to call a valid Shell Command.
In your case I will suggestcurl
.The full command will be:
curl -vs http://192.168.100.244:3000/TEMPSALLE2
So the command configuration should be something like:
{ module: "MMM-CommandToNotification", disabled: false, config: { updateInterval: 10, commands: [ { script: "/usr/bin/curl", args: "-vs http://192.168.100.244:3000/TEMPSALLE2", timeout: 5, notifications: [ "TEMPSALLE", ], }, ] }, },
As a result the output of the curl command will be send as notification “TEMPSALE”.
You can test the curl command in a terminal.
-
@wishmaster270 said in JSON request module:
Good evening(I am in France)
Thanks for your answer but I still have the same result.
//TEMPERATURE MAISON { module: "MMM-CommandToNotification", disabled: false, config: { updateInterval: 10, commands: [ { script: "/usr/bin/curl", args: "-vs http://192.168.100.244:3000/TEMPSALLE", timeout: 5, notifications: [ "TEMPSALLE", ], }, ] }, }, // AFFICHAGE { module: "MMM-ValuesByNotification", position: "top_right", header: "TEMPERATURE MAISON", config: { groups: [ { items: [ { notification: "TEMPSALLE", itemTitle: "TEMPSALLE", values: [ { valueTitle: "TEMPSALLE", valueUnit: "C", jsonpath: "data", }, ] }, ] }, ] }, },
I have to miss something but I don’t see what
-
@ELMAGO Hi, no problem let’s dive deeper. Can you please run the curl command manually on the console and paste the result here, please.
-
There she is
-
@ELMAGO
Sorry, my fault.
Can you please remove thev
option of the curl command. It needs to becurl -s ...
. -
It’s same
//TEMPERATURE MAISON { module: "MMM-CommandToNotification", disabled: false, config: { updateInterval: 10, commands: [ { script: "/usr/bin/curl", args: "-s http://192.168.100.244:3000/TEMPSALLE", timeout: 5, notifications: [ "TEMPSALLE", ], }, ] }, }, // AFFICHAGE { module: "MMM-ValuesByNotification", position: "top_right", header: "TEMPERATURE MAISON", config: { groups: [ { items: [ { notification: "TEMPSALLE", itemTitle: "TEMPSALLE", values: [ { valueTitle: "TEMPSALLE", valueUnit: "C", jsonpath: "data", }, ] }, ] }, ] }, },
-
@ELMAGO
Sorry, took me a moment to set up a test environment…
I think if your webserver is not very very fast you need to increase the timeout value in the command module.
The timeout is in milliseconds and you configured5
. I guess it should be5000
.
This config works fine in my development environment.{ module: "MMM-CommandToNotification", disabled: false, config: { updateInterval: 60, commands: [ { script: "/usr/bin/curl", args: "-s http://192.168.100.244:3000/TEMPSALLE", timeout: 5000, notifications: [ "TEMPSALLE", ], }, ] }, }, { module: "MMM-ValuesByNotification", position: "top_right", header: "TEMPERATURE MAISON", config: { groups: [ { items: [ { notification: "TEMPSALLE", itemTitle: "TEMPSALLE", values: [ { valueTitle: "TEMPSALLE", valueUnit: "C", jsonpath: "data", }, ] }, ] }, ] }, },
Edit: I increased the
updateInterval
to60