Read the statement by Michael Teeuw here.
[MMM-ValuesByNotification] Display the payloads of notifications with titles and icons
-
@BKeyport Hi,
i formatted your output to understand the JSON structure you are using:{ "data": { "did": "001D0A71573B", "ts": 1675287003, "conditions": [ { "lsid": 434637, "data_structure_type": 1, "txid": 1, "temp": 47.4, "hum": 52.8, "dew_point": 31.0, "wet_bulb": 38.4, "heat_index": 46.4, "wind_chill": 47.4, "thw_index": 46.4, "thsw_index": null, "wind_speed_last": 2.00, "wind_dir_last": 31, "wind_speed_avg_last_1_min": 2.62, "wind_dir_scalar_avg_last_1_min": 6, "wind_speed_avg_last_2_min": 2.81, "wind_dir_scalar_avg_last_2_min": 358, "wind_speed_hi_last_2_min": 5.00, "wind_dir_at_hi_speed_last_2_min": 340, "wind_speed_avg_last_10_min": 1.43, "wind_dir_scalar_avg_last_10_min": 36, "wind_speed_hi_last_10_min": 5.00, "wind_dir_at_hi_speed_last_10_min": 336, "rain_size": 1, "rain_rate_last": 0, "rain_rate_hi": 0, "rainfall_last_15_min": 0, "rain_rate_hi_last_15_min": 0, "rainfall_last_60_min": 0, "rainfall_last_24_hr": 0, "rain_storm": 0, "rain_storm_start_at": null, "solar_rad": null, "uv_index": null, "rx_state": 0, "trans_battery_flag": 0, "rainfall_daily": 0, "rainfall_monthly": 0, "rainfall_year": 1750, "rain_storm_last": 4, "rain_storm_last_start_at": 1674798601, "rain_storm_last_end_at": 1675000860 }, { "lsid": 434634, "data_structure_type": 4, "temp_in": 79.4, "hum_in": 20.5, "dew_point_in": 35.5, "heat_index_in": 77.4 }, { "lsid": 434633, "data_structure_type": 3, "bar_sea_level": 30.125, "bar_trend": -0.013, "bar_absolute": 29.660 } ] }, "error": null }
The
hum
value is part of the first element with index0
of theconditions
object which is part of thedata
object.
This results in a more advancedjsonpath
ā¦{ module: "MMM-ValuesByNotification", position: "top_left", header: "Module-1", config: { groups: [ { items: [ { notification: "WEATHERLINK", itemTitle: "Item-1", values: [ { valueTitle: "Value-1", jsonpath: "data.conditions[0].hum", }, ] }, ] }, ] }, },
This config works out of the box ;-)
Edit:
If the order of the elements of conditions varies you can use
jsonpath: "data.conditions..hum"
This one selects the hum value of any element of
conditions
. -
@wishmaster270 Brilliant. Thank you. JSON is still quite the mystery to me sometimes. :)
-
One last thing - where in the CSS do I adjust the font size for the module? I want it to use the MM āLargeā font, as itās on a wall display across from my desk. Canāt seem to find it.
-
@BKeyport
Hi, great that it works now.
There are two different ways of how to change the font-size.
Either by using theclasses
option and addlarge
to the element you want the font-size to be changed. i.e.:{ module: "MMM-ValuesByNotification", position: "top_left", header: "Module-1", config: { groups: [ { items: [ { notification: "WEATHERLINK", itemTitle: "Item-1", values: [ { classes: "large", valueTitle: "Value-1", jsonpath: "data.conditions..hum", }, ] }, ] }, ] }, },
The main problem with this solution is that the font-size of the
valueTitle
and thevalue
itself is changed.Or you can use
custom.css
to do the job:.MMM-ValuesByNotification .vbn .groupTitle, .MMM-ValuesByNotification .vbn .itemTitle, .MMM-ValuesByNotification .vbn .value, .MMM-ValuesByNotification .vbn .valueTitle { font-size: var(--font-size-large); line-height: 1; }
In this example the font-size of all titles and the value is changed. I use the
font-size-large
CSS variable of themain.css
for this job. -
Thanks again, man. :)
I might not have to work up my own module to get the notifications. š¤£
-
Iām using the example scripts in CommandToNotification using a BME280. Iām trying to keep the temperature in F to two digits, as the script or BME module is producing LONG temperature values. (76.0000000000000000000000001)
Using the configuration below, Iām not getting any rounding on output. The āvalueFormatā is directly from your README.md.
{ module: "MMM-ValuesByNotification", // https://github.com/Tom-Hirschberger/MMM-ValuesByNotification position: "top_bar", config: { animationSpeed: 0, updateInterval: 15, groups: [ { items: [ { notification: "WEATHERLINK", values: [ { valueTitle: "Closet", valueUnit: "Ā°F", jsonpath: "data.conditions[1].temp_in", naValue: "0", }, ] }, ] }, { items: [ { notification: "TEMPROOM", itemTitle: "Room", values: [ { valueTitle: "Temp", valueUnit: "Ā°F", naValue: "0", valueFormat: "Number(${value}).toFixed(2)", jsonpath: "temperature_f", }, ], }, ] }, ] }, },
-
@BKeyport
Hi,thatās definitly a bug. It is related to the problem you described in the issue on github.
I found a fix already but i need a moment to solve it proper.
As a quickfix you can change line 299 in MMM-ValuesByNotification.js fromvalue = value.replace(/(?:\r\n|\r|\n)/g, newlineReplacement)
to
value = String(value).replace(/(?:\r\n|\r|\n)/g, newlineReplacement)
-
@BKeyport
Just released version 0.0.8 of the module which should fix both issues -
@wishmaster270 Submitted a pull - please tell me what you thinkā¦ I didnāt update the documentation however. I figured you could handle that, as Iām a horrible documentation writer.
š¤£š¤£š¤£
-
@BKeyport Hi, and thanks for the contribution. I only had a view moments to look at the changes.
Currently the changes do not look very critical and I will be happy to merge them.
I only want to make sure there is no more universal way (especially for the space) feature.Documentation is one of my favourites (Not). But it should no big deal to add it.
I will try to do a deeper look the code the next days and will merge as fast as I can.