Sure.
My setup here is pretty simple: a handful of temp/humidity sensors that push their readings to an MQTT queue, which then is read by Telegraf an written to InfluxDB. Optional complexity: I would prefer these sensors to delay the acutal send events, so they can push a batch of readings in one go.
Now, ideally HA would be able to read the data from Influx as a sensor and even import the history. I tried the Influx integration, was told to configure that in the config files and literally for days I tried to get everything to work, but it just would not work. I can’t even list the different error messages here, it’s been a few weeks, but the consensus seems to be, that Influx is essentially not readable for HA for reasons. Like, there’s no error message that I could make sense of, it’s just generalFuckYouError 5446.
Ok, then maybe I can read the measuements directly from MQTT? I would have duplicated data, but I can always delete old data in HA, so that’s ok. All my sensors currently write in the same topic and each message contains the sensor name, a timestamp and two measurements. That data structure however is utterly unreadable in for HA. Obviously, I need to split the messages into different (HA-)sensors based on the sensor name field and then differentiate between the different sensor values (humidity/temp). That is not possible. Like, it is completely not supported and the official stance is to put a bunch of MQTT listeners for each sensor/value pair in your config and then filter the messages based on sensor name and reading. Well, that’s really convenient! Especially for the completely outlandish case, that someone might want to automatically add new sensors.
But ok, I played ball. I set up two testsensors (so four listeners in total). And it kind of worked. Until I noticed, that each message is processed once, which is perfectly in line with MQTT semantics, but it meant that messages that didn’t fit the listener they happened to collide with were just dropped. Awesome!
But ok, next try, I’ve got Telegraf, that thing can probably help out. So I created new topics for each sensor and value, in a nice hierarchy and created a bunch of HA listeners, each having its very own topic.
And that finally kind of worked. I still can’t batch-import messages, because HA ignores MQTT timestamps, I still can’t dynamically add new sensors, I still can’t “fuse” sensors belonging together (hum/temp do kind of correlate, after all), etc. etc.
My case isn’t really unusual and not really complicated, yet it took me literally weeks to get to this point and it’s still a clunky, semi-functional clusterfuck, whos only benefit compared to Influx is, that it has an Android app.
Disclaimer: I might mixed some thing up in the description above, it’s been a while. And I’m certain I could make some things nicer, but that’s not the point. I’m a senior software developer and can’t get this pile of Python to run. Maybe I’m really stupid, but I’d say HA is the culprit here.
ashok36@lemmy.world 1 year ago
You spent four paragraphs describing your unusual and unique set up and then asserted that your setup isn’t actual either of those things. I think you just don’t realize how out of the norm your requirements are.
agressivelyPassive@feddit.de 1 year ago
What exactly?
Seriously, reading data from Influx isn’t unusual, it’s kind of the whole point of a database to be read from. And sensor data kind of represent a time series. There even is an official plugin, it just doesn’t work right.
What you seem to conveniently ignore is that I’m starting at two very simple points. And all those paragraphs are just attempts to make one of those work. That’s it.
And again, this is exactly the attitude I’m referring to. Oh that is totally weird. That can’t work, obviously!
Why? Why does the very simple use case to read data from a db not work?