Quite a number of years ago I set up a few Arduino sensors that reported temperature to my VeraLite running UI5. I did this with MySensors, a quite nice community based platform.
I discontinued this mostly because that the combination of a rather flaky Vera and that the Vera when rebooting lost the USB connected gateway.
Some time ago I started to look at this again, but this time using ESP8266’s and Tasmota. I think the credit for this partially is the plugin for Shelly and Tasmota that @therealdb has written, even though I have still to use the plugin. The other reason for reentering into this area is that my electrical supplier is replacing the electrical meters for a new smart meter. Today I use a blink meter from Effergy, but the new meter will have a port for reading out data. This also led me to Tasmota, there seems to be a functioning solution for this.
I must say that Tasmota is brilliant! Support for all kind of devices and sensors and super easy to use, also for multi-sensors, OTA update, good documentation etc. You can get parts on ebay etc quite cheap. It has also so far been very stable. You can also very easily adjust the sensors readout, e.g. TempOffset -1.5 gives an offset of -1.5 degrees.
I have put together sensors for temperature and humidity for use in the garage, the outhouse, on the attic etc. I have tested DHT22, DS1820B, BME280 and BH1750 so far and they all work without issues. The latter two I installed in an outdoor enclosure to use as a simple weather station reporting temperature, humidity, air pressure and light level.
I also got a MH-Z19B CO2 meter for testing to monitor the indoor CO2 levels. The initial feeling is that it does what it should.
In general I have pretty good wifi coverage with a few Unifi access points. One of the sensors is in a building some 25 meters from the house where the wifi is not that strong, but the NodeMCU has no problem with this. Quite impressive and a good addition to Z-wave for that kind of location.
Not owning a 3D printer I have had to resort to purchased enclosures and the old Dremel. 😊
For the CO2 sensor I put it in an old smoke detector enclosure for now.
I am sure that there are a lot of talent here that can do much better with a 3D printer!
You can get the data from the Tasmota devices into OpenLuup in a number of ways. The obvious way is via MQTT. I have still to set this up at some point in time. The second way is to use the excellent SiteSensor plugin. I tested this but had some problems with reporting stopping after a few days for some reason. I probably got something wrong in the setup. The third option, that I currently use is via adding rules to each sensor. You can quite easily add rules for reporting data to a virtual sensor in OpenLuup, e.g:
Rule1 ON tele-AM2301#Temperature DO Var1 %value% ENDON ON tele-AM2301#Temperature DO WebSend [IP_adress:3480]/data_request?id=lu_action&DeviceNum=65&id=variableset&serviceId=urn:upnp-org:serviceId:TemperatureSensor1&Variable=CurrentTemperature&Value=%Var1% ENDON
With TelePeriod you can change the polling interval as required.
This method I think could be super useful for reporting back e.g. switch status from a Tasmota node much like I understand Shelly can do.
Some resources and notes I made on the way:
Using Tazmotizer to flash the ESP’s is very easy
List of supported sensors including how to connect, commands etc
A good pinout reference for ESP8266 variants
Tasmota rules documentation
Most sensors are either “Generic (0)” or “Generic (18)”, check for each sensor type what to use
For I2C sensors e.g. BME280 one must use tasmota-sensors.bin
For the MH-Z19B I had to flash the ESP before attaching the sensor, this could be a good practice always
Use the following url for the query in SiteSensor:
This became a rather long post but hopefully it can be of some use.