• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

JSON request module

Scheduled Pinned Locked Moved Solved Requests
41 Posts 3 Posters 12.4k Views 4 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E Offline
    ELMAGO @wishmaster270
    last edited by Nov 26, 2022, 10:33 PM

    @wishmaster270

    Re Goodnight

    It’s awesome, it’s exactly what I wanted.

    Thank you so much.

    b3cb1a61-c845-4689-91a3-53944fca4ee8-image.png

    1 Reply Last reply Reply Quote 1
    • E Offline
      ELMAGO @wishmaster270
      last edited by Dec 7, 2022, 6:25 PM

      @wishmaster270

      Hello

      sorry to bother you again but is it possible to display an answer following the answer of the request.

      example :
      The JSON request returns false I would like to display “NON”

      W 1 Reply Last reply Dec 7, 2022, 7:37 PM Reply Quote 0
      • W Offline
        wishmaster270 Module Developer @ELMAGO
        last edited by Dec 7, 2022, 7:37 PM

        @ELMAGO Sorry, but i do not understand exactly what you mean. You can override the “na” value which is the one displayed if no value could be parsed in the JSON.

        The config option is:

        naValue: "NON"
        

        There might also be a chance to do add a valueFormat which checks for the “false” value in the JSON but that would be a little more complex and i need to know the exact format of the output.

        E 1 Reply Last reply Dec 8, 2022, 6:24 AM Reply Quote 0
        • E Offline
          ELMAGO @wishmaster270
          last edited by Dec 8, 2022, 6:24 AM

          @wishmaster270
          Hello

          No, not al all.
          the returned value will be “false” or “true” and I would like to replace it with “Non” or “Oui” in French.

          W 1 Reply Last reply Dec 8, 2022, 3:57 PM Reply Quote 0
          • W Offline
            wishmaster270 Module Developer @ELMAGO
            last edited by Dec 8, 2022, 3:57 PM

            @ELMAGO
            You can use valueFormat for this purpose.

            valueFormat: "\"${value}\".replace(\"false\",\"Non\").replace(\"true\",\"Oui\")",
            

            This will convert the value to a string (if needed) and replaces all “false” with “Non” and “true” with “Oui”.

            E 1 Reply Last reply Dec 8, 2022, 7:34 PM Reply Quote 0
            • E Offline
              ELMAGO @wishmaster270
              last edited by Dec 8, 2022, 7:34 PM

              @wishmaster270

              great, thank you.
              Is there a “lexicon” with these commands?

              W 1 Reply Last reply Dec 9, 2022, 2:10 PM Reply Quote 0
              • W Offline
                wishmaster270 Module Developer @ELMAGO
                last edited by Dec 9, 2022, 2:10 PM

                @ELMAGO
                I added some to the [documentation] (https://github.com/Tom-Hirschberger/MMM-ValuesByNotification/blob/main/doc/value.md) of the module.
                As there can be used any build-in JavaScript function in valueFormat there are nearly endless possibilities.

                E 1 Reply Last reply Dec 11, 2022, 6:36 PM Reply Quote 0
                • E Offline
                  ELMAGO @wishmaster270
                  last edited by Dec 11, 2022, 6:36 PM

                  @wishmaster270

                  good evening,

                  I tested the replace function:

                  {
                  		module: "MMM-ValuesByNotification",
                  		position: "top_right",
                  		header: "INFORMATION MÉGANE",
                  		config: {
                  			updateInterval: 300,
                  			reuseCount: 100,
                  			addClassesRecursive: true,
                  			valueFormat: "\"${value}\".replace(\"false\",\"Non\").replace(\"true\",\"Oui\")",
                  			groups: [
                  				{
                  					items: [
                  						
                  						{
                  							notification: "AUTBATTMEGANE",
                  							itemTitle: "Autonomie  ",
                  							values: [
                  								{
                  									valueUnit: " Km",
                  									valueFormat: "Number(${value}).toFixed(2)",
                  									jsonpath: "data",
                  								},
                  							]
                  						},
                  						{
                  							notification: "BATTMEGANE",
                  							itemTitle: "Charge batterie  ",
                  							values: [
                  								{
                  									valueUnit: " %",
                  									valueFormat: "Number(${value}).toFixed(2)",
                  									jsonpath: "data",
                  								},
                  							]
                  						},
                  						{
                  							notification: "PLUGMEGANE",
                  							itemTitle: "Voirture branchée ",
                  							classes: "withIcons",
                  							valueFormat: "\"${value}\".replace(\"false\",\"Non\").replace(\"true\",\"Oui\")",
                  							values: [
                  								{
                  									
                  									valueFormat: "Number(${value}).toFixed(2)",
                  									jsonpath: "data",
                  								},
                  							]
                  						},
                  						
                  					]
                  				},
                  			]
                  		},
                  	},
                  
                  
                  

                  But unfortunately it doesn’t work.

                  504f3bb6-cb32-49fa-97b6-c872e2b1aa31-image.png

                  Would you know why?

                  Thanks

                  W 1 Reply Last reply Dec 11, 2022, 6:51 PM Reply Quote 0
                  • W Offline
                    wishmaster270 Module Developer @ELMAGO
                    last edited by Dec 11, 2022, 6:51 PM

                    @ELMAGO As valueFormat settings further down in the hierarchy override setting further up you only have to much valueFormat settings.

                    This config should do the trick:

                    	{
                    		module: "MMM-ValuesByNotification",
                    		position: "top_right",
                    		header: "INFORMATION MÉGANE",
                    		config: {
                    			updateInterval: 300,
                    			reuseCount: 100,
                    			addClassesRecursive: true,
                    			groups: [
                    				{
                    					items: [
                    						
                    						{
                    							notification: "AUTBATTMEGANE",
                    							itemTitle: "Autonomie  ",
                    							values: [
                    								{
                    									valueUnit: " Km",
                    									valueFormat: "Number(${value}).toFixed(2)",
                    									jsonpath: "data",
                    								},
                    							]
                    						},
                    						{
                    							notification: "BATTMEGANE",
                    							itemTitle: "Charge batterie  ",
                    							values: [
                    								{
                    									valueUnit: " %",
                    									valueFormat: "Number(${value}).toFixed(2)",
                    									jsonpath: "data",
                    								},
                    							]
                    						},
                    						{
                    							notification: "PLUGMEGANE",
                    							itemTitle: "Voirture branchée ",
                    							classes: "withIcons",
                    							values: [
                    								{
                    									valueFormat: "\"${value}\".replace(\"false\",\"Non\").replace(\"true\",\"Oui\")",
                    									jsonpath: "data",
                    								},
                    							]
                    						},
                    						
                    					]
                    				},
                    			]
                    		},
                    	},
                    
                    1 Reply Last reply Reply Quote 0
                    • E Offline
                      ELMAGO
                      last edited by Jan 23, 2023, 7:36 PM

                      Hi @wishmaster270

                      I come back here, it will be simpler.

                      My code is:

                      //INFORMATION HOMEY EUFY
                      
                      {
                         module: "MMM-CommandToNotification",
                         disabled: false,
                         config: {
                          updateInterval: 300,
                          commands: [
                           
                      
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/ETATEUFY",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "ETATEUFY",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/CAMSALLE",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "CAMSALLE",
                                  ],
                                },
                      
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/CAMPALIER",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "CAMPALIER",
                                  ],
                                },
                      
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/CAMARRIERE",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "CAMARRIERE",
                                  ],
                                },
                      
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/CAMGARAGE",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "CAMGARAGE",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/CAMGAUCHE",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "CAMGAUCHE",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/CAMAVANT",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "CAMAVANT",
                                  ],
                                },
                      {
                            script: "/usr/bin/curl",
                            args: "-s  http://192.168.100.244:3000/TEMPSALLE",
                            timeout: 1000,
                            notifications: [
                             "TEMPSALLE",
                             ],
                           },
                      
                           {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/TEMPBUREAU",
                                 timeout: 1000,
                                 notifications: [
                                  "TEMPBUREAU",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/TEMPCHELENA",
                                 timeout: 1000,
                                 notifications: [
                                  "TEMPCHELENA",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/TEMPCHLOUCA",
                                 timeout: 1000,
                                 notifications: [
                                  "TEMPCHLOUCA",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/TEMPCHALAN",
                                 timeout: 1000,
                                 notifications: [
                                  "TEMPCHALAN",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/TEMPCHPARENT",
                                 timeout: 1000,
                                 notifications: [
                                  "TEMPCHPARENT",
                                  ],
                                },
                      {
                            	script: "/usr/bin/curl",
                            	args: "-s  http://192.168.100.244:3000/AUTBATTMEGANE",
                            	timeout: 1000,
                            	notifications: [
                             	"AUTBATTMEGANE",
                             	  ],
                           		},
                      
                           {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/BATTMEGANE",
                                 timeout: 1000,
                                 notifications: [
                                  "BATTMEGANE",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/PLUGMEGANE",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "PLUGMEGANE",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/CHARGEMEGANE",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "CHARGEMEGANE",
                                  ],
                                },
                      
                           ]
                         },
                        },
                      

                      So I think it launches all requests at the same time, because my server which must answer crashes.

                      I wanted to split it like this:

                      //INFORMATION HOMEY EUFY
                      
                      {
                         module: "MMM-CommandToNotification",
                         disabled: false,
                         config: {
                          updateInterval: 300,
                          commands: [
                           
                      
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/ETATEUFY",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "ETATEUFY",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/CAMSALLE",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "CAMSALLE",
                                  ],
                                },
                      
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/CAMPALIER",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "CAMPALIER",
                                  ],
                                },
                      
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/CAMARRIERE",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "CAMARRIERE",
                                  ],
                                },
                      
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/CAMGARAGE",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "CAMGARAGE",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/CAMGAUCHE",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "CAMGAUCHE",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/CAMAVANT",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "CAMAVANT",
                                  ],
                                },
                           ]
                         },
                        },
                      
                      
                      

                      and

                      //INFORMATION HOMEY EUFY
                      
                      {
                         module: "MMM-CommandToNotification",
                         disabled: false,
                         config: {
                          updateInterval: 300,
                          commands: [
                           
                      
                      
                      {
                            script: "/usr/bin/curl",
                            args: "-s  http://192.168.100.244:3000/TEMPSALLE",
                            timeout: 1000,
                            notifications: [
                             "TEMPSALLE",
                             ],
                           },
                      
                           {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/TEMPBUREAU",
                                 timeout: 1000,
                                 notifications: [
                                  "TEMPBUREAU",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/TEMPCHELENA",
                                 timeout: 1000,
                                 notifications: [
                                  "TEMPCHELENA",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/TEMPCHLOUCA",
                                 timeout: 1000,
                                 notifications: [
                                  "TEMPCHLOUCA",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/TEMPCHALAN",
                                 timeout: 1000,
                                 notifications: [
                                  "TEMPCHALAN",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/TEMPCHPARENT",
                                 timeout: 1000,
                                 notifications: [
                                  "TEMPCHPARENT",
                                  ],
                                },
                      
                      
                           ]
                         },
                        },
                      
                      
                      

                      and :

                      //INFORMATION HOMEY EUFY
                      
                      {
                         module: "MMM-CommandToNotification",
                         disabled: false,
                         config: {
                          updateInterval: 300,
                          commands: [
                           
                      
                      
                      
                      {
                            	script: "/usr/bin/curl",
                            	args: "-s  http://192.168.100.244:3000/AUTBATTMEGANE",
                            	timeout: 1000,
                            	notifications: [
                             	"AUTBATTMEGANE",
                             	  ],
                           		},
                      
                           {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/BATTMEGANE",
                                 timeout: 1000,
                                 notifications: [
                                  "BATTMEGANE",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/PLUGMEGANE",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "PLUGMEGANE",
                                  ],
                                },
                      {
                                 script: "/usr/bin/curl",
                                 args: "-s  http://192.168.100.244:3000/CHARGEMEGANE",
                                 timeout: 1000,
                      			
                                 notifications: [
                                  "CHARGEMEGANE",
                                  ],
                                },
                      
                           ]
                         },
                        },
                      
                      
                      

                      But it doesn’t work, only the last element appears.

                      W 1 Reply Last reply Jan 24, 2023, 4:44 AM Reply Quote 0
                      • 1
                      • 2
                      • 3
                      • 4
                      • 5
                      • 3 / 5
                      • First post
                        Last post
                      Enjoying MagicMirror? Please consider a donation!
                      MagicMirror created by Michael Teeuw.
                      Forum managed by Sam, technical setup by Karsten.
                      This forum is using NodeBB as its core | Contributors
                      Contact | Privacy Policy