I’ve created some LoraWan sensors reporting their status via a RAK-Wireless WisGate EdgPro gateway brdiged to HA. I get the mqtt/json values, but the actual sensor data is stored in the json as:
...
"data": "SwhZGQIkLNMDADM=",
"data_encode": "base64",
...
and is actually a small C struct encoded as base64, and looks this:
typedef struct {
int32_t lat;
int32_t lon;
uint16_t hAcc; // accuracy in meters
uint8_t batt;
} GPSMsg_t ;
I’ve seen some examples of how to extract a single sensor value from a b64 encoded string, but is that the best solution when multiple values are in a single b64 “blob ?”
Does it make sense, or is it possible to create a single sensor with attributes corresponding to the “resurrected” C struct and if so, are those attributes stored with the sensor history (by default) ?
Would it be better to create a custom integration that knows the sensor and creates the approriate discrete sensor values?
Any suggestions are greatly appreciated!