[RELEASE] Tile Builder - Build Beautiful Dashboards

@garyjmilne
Good morning.
Since upgrading to the latest versions (via HPM) this morning (06/08/24),

image

I’m getting the following errors in the Multi Attribute Monitor:

I can’t load some of the tiles either. The affected tile - which is no longer populating, is connected to an Ecowitt Weather Station. It was working properly prior to this morning’s update. This is the error I get when trying to load the tile connected to the weather station.

Yesterdays update did not include any updates for Multi Attribute Monitor, that code remains at version 1.2.1 from November last year.

The error you are getting is on this line:
dataType = getDataType( settings["myDevice$i"].currentValue(settings["myAttribute$i"]).toString() )

My guess is that you have recently removed a device that was in the selected list. Go into the gear setting and down at the bottom you will find a list of devices. See if there is anything in that list that no longer exists and let me know.

I have been moving the weather station from the default LAN to the IoT VLAN, but it's temporarily back where it started on the default LAN. At one point, the device did disappear, so I put it back in place and then re-pointed each attribute in the tile back to the re-added weather station (device). So , although the WS still exists (under a different IP address), from your comments, I'm sure the movements caused the issue - even though I'm sure it was working last evening and earlier this morning -after establishing the proper linkage to the moved WS device.

Anyway, we're here somehow and since I cannot load the tile that's causing the unexpected error shown above, I guess I cannot do anything other than possibly deleting it and recreating it from scratch.

PS: and it sounds like I should recreate the tile once the WS is at its final IP address.

You don't need to delete the tile. Go to the gear symbol and look through the devices\attributes

Add this code:

    app.updateSetting("myDevice1",[type:"capability",value:[]])
    app.updateSetting("myAttribute1",[type:"enum",value:""])

Near the very top of the app.

Change the device number to whichever one you think is most likely causing the problem.
Refresh the app page to run the code.
If the page loads O.K. your guess was good and you can now remove the code you added.
If not look for the next most likely culprit and change the device number.

That should work.

Thanks for the detailed info. I’ll give it a try later today or tomorrow and let you know.

I did your first step and found that all 15 'myDevice's) are empty. All 15 devices are really just a single device and should say, " Ecowitt RF Sensor". Here's the clip:

Down farther however, it appears that the attributes are linked:

I'm a bit confused. Since all 15 devices are empty, would your code modifications work? would I need to run it 15 times changing the device number each time? ? Any thoughts?

It does make sense that they are all gone given they were all connected to the same device. I tried to reproduce your error by adding a device, connecting to it in MAM, deleting the underlying device and going back into MAM but it handled it O.K. with no errors and just let me repick the device.

It should look more like this.

Notice, when I deleted my actual device, which was connected to myDevice1 variable, it removed the whole attribute because it is null. Yours did not do that and I can't replicate it.

So I would say repeating this line for values 1 - 15 should do it, but that is only a guess.
app.updateSetting("myDevice1",[type:"capability",value:])
app.updateSetting("myDevice2",[type:"capability",value:])
app.updateSetting("myDevice3",[type:"capability",value:])
....

You should really have a look at Grid. It is the evolved version of MAM and gives you a ton more power and flexibility. You would have to use Free Form Mode and to make things as easy as possible make the Ecowitt the default device and then pick each of the attributes you are interested in. It supports 40 - 50 variables, up to 5 columns and you can place variables and text anywhere. Plus a lot more.