Read the statement by Michael Teeuw here.
JSON request module
-
-
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” -
@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. -
@wishmaster270
HelloNo, not al all.
the returned value will be “false” or “true” and I would like to replace it with “Non” or “Oui” in French. -
@ELMAGO
You can usevalueFormat
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”.
-
great, thank you.
Is there a “lexicon” with these commands? -
@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 invalueFormat
there are nearly endless possibilities. -
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.
Would you know why?
Thanks
-
@ELMAGO As
valueFormat
settings further down in the hierarchy override setting further up you only have to muchvalueFormat
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", }, ] }, ] }, ] }, },
-
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.