I have several Xiaomi FlowerCare/Miflora sensors. These are small plant sensors that use Bluetooth for communication and I use miflora-mqtt-daemon on external Raspberry pi to send the data via MQTT to my fresh install of OH3.
Recently, the daemon has been updated to support Homie 3 convention (even if the README still says that it supports only v.2.0.5), so the sensors get auto-detected - brilliant.
By default, each sensor is identified by its MAC address, which will be used as its identifier and therefore become its Thing-id in OH. However, this can be changed in the daemon’s config, where one can assign names to the addresses - which sounds like a good idea, but what if I move the sensor to a different plant? Since Thing-id in OH cannot be changed, I would have to delete the Thing, change the name in the daemon and then let OH auto-detect the renamed sensor as a new thing.
Alternatively, I can either keep identifying the sensors by MAC addresses or assign names like “miflora-1”, “miflora-2”, etc and then use the Thing’s name for the name of the plant (since a name can be changed)?
Or should I even name the Thing as “Miflora sensor X” and use the plant name in a different place/level of abstraction?
I guess this is a more general question: which entities (thing, item, equipment, point, group) should refer to the sensor as a piece of equipment and which should refer to the plant that the sensor is measuring? (Taking into account that the sensor can be moved to a different plant.)
What I do is use generic names for the Thing. Something like your miflora-1 approach.
But the Items are named based on what the actual device is.
For example, I have five Peanut Plugs. These are Zigbee smart plugs. I took a Sharpie and wrote a different number on the underside of each one so if I ever put them in a box or something I know which one is which.
The Things are labeled “Peanut Plug 1” and so on.
But the Items are named and labeled based on what the plug is controlling. For example, the switch for Peanut Plug 2 is linked to an Item named “Mainfloor_Humidifier_Control” because that’s what it controls. Peanut Plug 4’s switch Channel is linked to an Item named “Familyroom_Lamp2_Control”.
So I’d recommend use a naming scheme for the Thing that lets you easily tell which Thing goes with which physical Miflora. Then name the Items based on the plant it’s monitoring. When you move the device, delete the old Items and create new ones with the right names for the new plant.
Thanks, that makes sense.
As I am trying to do things the new OH3- way, I did not create Items explicitly, but rather created an Equipment with Points from the auto-detected Thing and its Channels.
Following your logic, should I keep the “Miflora_x” names for the Equipment and then use plant names in the names of the Points (which, if I understand the new system, are just Items with extra meta-data)?
The equipment are just Items too. All your Items and most especially those Items that are part of the semantic model (note: not all Items should be in the semantic model) should have names that are meaningful to your actual home automation. It’s not the “miflora-1 sensors”, it’s the “ficus sensors”. Name the equipment based on what it’s actually sensing in human terms. Once you get to the Item and semantic model level, no one cares that it’s a miflora.
Aha, so Equipment is just a group item, including the items corresponding to its points? I must admit I missed that, rather important, part of the semantic model - thanks
Locations are just Groups too. It’s all Items.