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.
-
@ELMAGO Hi,
thats right. The module does not support multi instance configurations.
You will need to copy the complete module folder and change some things to get it work.
But to me it looks like your server is stressed with the 16 calls straight after each other. So you do not need more parallelism but less.
So i will check if i can at a configurable delay after each command to stretch the time the calls get made to your server a little bit.