Read the statement by Michael Teeuw here.
JSON request module
-
hello,
I am looking for a module that would display several JSON replies.
I tested MMM-JSON but does not work black screen, MMM-JsonTable
but is not multi url, MMM-json-feed the same.My urls are coordinated as follows:
http://192.168.100.244:3000/ROOMTIME
And the answer is
// 20221123185334
// http://192.168.100.244:3000/ROOMTIME{
“status”: “successful”,
“url”: “/ROOMTIME”,
“method”: “GET”,
“data”: 21.4
}I will therefore need a module where I can display a specific name for each url, ex:
Temp. Room 21.4°cThank you in advance for your help.
And sorry for my English.:face_savoring_food: :face_savoring_food: -
-
@ELMAGO I am not aware of any module that does interconnection between fetched tables.
black screen, see the black screen item pinned at top of troubleshooting section
-
@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/TEMPSALLE2So 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 thevoption 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
updateIntervalto60 -
@wishmaster270
You are phenomenal…but I still have three problems:
1 - When I look for several values, it only shows me the first one.
2- The Celsius symbol does not seem to be accepted
3- 3- If I may abuse…is it possible to do the same formatting as this one. CSS and me…

Here is my code :
//TEMPERATURE MAISON { 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-CommandToNotification", disabled: false, config: { updateInterval: 60, commands: [ { script: "/usr/bin/curl", args: "-s http://192.168.100.244:3000/TEMPBUREAU", timeout: 5000, notifications: [ "TEMPBUREAU", ], }, ] }, }, // AFFICHAGE { module: "MMM-ValuesByNotification", position: "top_right", header: "TEMPERATURE MAISON", config: { groups: [ { items: [ { notification: "TEMPSALLE", values: [ { valueTitle: "SALLE A MANGER", valueUnit: "°C", jsonpath: "data", }, ] }, { notification: "TEMPBUREAU", values: [ { valueTitle: "BUREAU", valueUnit: "°C", jsonpath: "data", }, ] }, ] }, ] }, },Once again thank you for everything.
-
@ELMAGO Step by Step closer to the goal😉
1: You can/need to use one instance of the command module to fetch the data of the to urls.
2: I use the Celsius sign in my setup without any problems but it may depend of the encoding of your operating system and Browser. You can try to use the html encoding°instead.//TEMPERATURE MAISON { 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", ], }, { script: "/usr/bin/curl", args: "-s http://192.168.100.244:3000/TEMPBUREAU", timeout: 5000, notifications: [ "TEMPBUREAU", ], }, ] }, }, // AFFICHAGE { module: "MMM-ValuesByNotification", position: "top_right", header: "TEMPERATURE MAISON", config: { groups: [ { items: [ { notification: "TEMPSALLE", values: [ { valueTitle: "SALLE A MANGER", valueUnit: "°C", jsonpath: "data", }, ] }, { notification: "TEMPBUREAU", values: [ { valueTitle: "BUREAU", valueUnit: "°C", jsonpath: "data", }, ] }, ] }, ] }, },3: I provided a lot examples with screenshots in the modules
docdirectory (screenshots). You will find the corresponding config and css of each screenshot in the configs. Maybe there is a styling included you like. If not feel free to ask again. -
This post is deleted! -
@wishmaster270 said in JSON request module:
valueTitle
I’m really sorry but I’m really bad at this.
I did this:
config://TEMPERATURE MAISON { 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", ], }, { script: "/usr/bin/curl", args: "-s http://192.168.100.244:3000/TEMPBUREAU", timeout: 5000, notifications: [ "TEMPBUREAU", ], }, ] }, }, // AFFICHAGE { module: "MMM-ValuesByNotification", position: "top_left", header: "TEMPERATURE MAISON", config: { updateInterval: 10, reuseCount: 100, addClassesRecursive: true, groups: [ { items: [ { notification: "TEMPSALLE", itemTitle: "Salle: ", classes: "withIcons", values: [ { valueIcon: "fa fa-thermometer-full", valueUnit: "°C", valueFormat: "Number(${value}).toFixed(2)", jsonpath: "data", }, { valueUnit: "%rH", valueFormat: "Number(${value}).toFixed(1)", jsonpath: "humidity", }, ] }, { notification: "TEMPBUREAU", itemTitle: "Bureau ", values: [ { valueUnit: "°CC", valueFormat: "Number(${value}).toFixed(2)", jsonpath: "data", }, { valueUnit: "%rH", valueFormat: "Number(${value}).toFixed(1)", jsonpath: "humidity", }, ] }, ] }, ] }, },And use css :
.MMM-ValuesByNotification .vbn .itemWrapper { flex-direction: row; } .MMM-ValuesByNotification .vbn .itemTitle { min-width: 105px; text-decoration: none; } .MMM-ValuesByNotification .vbn .itemTitle.withIcons { margin-top: 17px; } .MMM-ValuesByNotification .vbn .itemWrapper.withIcons { line-height: 22px; } .MMM-ValuesByNotification .vbn .itemWrapper:not(.withIcons) { line-height: 10px; }and nothing is displayed
-
@ELMAGO
Great to see the data beeing displayed. We get the styling, too.
Please do not edit files in the module folder. You can modify/override all css in the custom.css file in the css directory of MagicMirror.
The examples only overrides the things needed.
Currently I only have my mobile and can not test any things. Maybe I can look at it tomorrow. -
@wishmaster270
The custom file?there is no problem, you help me already it is a lot.
There is nothing urgent, I just have this display to do on a whole home automation installation.
I await your return and thank you again.
-
@ELMAGO the CSS design is a stack, top down
css/custom.css
module_provided_css (in the module folder)
css/main.css (provided by MM).so a search for a css setting starts with custom.css and stops at the 1st occurrence.
-
I correct myself, it is displayed but thus, having created the custom.css file in css:


Here is my config file:
// AFFICHAGE { module: "MMM-ValuesByNotification", position: "top_right", header: "TEMPERATURE MAISON", config: { updateInterval: 10, reuseCount: 100, addClassesRecursive: true, groups: [ { items: [ { notification: "TEMPSALLE", itemTitle: "Salle ", classes: "withIcons", values: [ { valueUnit: " °C", valueFormat: "Number(${value}).toFixed(2)", jsonpath: "data", }, ] }, { notification: "TEMPBUREAU", itemTitle: "Bureau ", values: [ { valueUnit: " °C", valueFormat: "Number(${value}).toFixed(2)", jsonpath: "data", }, ] }, ] }, ] }, },
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login
