[RELEASE] OmniThing v0.8.2 - ESP8266/ESP32/RaspberryPi/Linux/Windows Web-based Configuration Tool

image

Thank you @Bill_Warwick_jmrwbil. This definitely helps. I’ll try to get something set up tonight to try and debug this issue.

1 Like

Looking the live log over, it look like there maybe a common thread. I have the sensor polling 60 seconds, it appears to be reporting incorrect at same time it appears to “skip a beat” parsing past the set poll increment… I will let the log run longer to see if that is consistent.

Please try updating BOTH the Child Temperature and Child Humidity Device Handlers. We tweaked both of them a little bit to make them more efficient. I cannot get either of them to not round the decimal places to just two. Both appear to work fine on my iOS ST Classic App.

@Bill_Warwick_jmrwbil @leinax

Should I add my devices or no? This has me confused and I’m not sure if they should be added as temperature or humidity sensors since they read both types of data or do I add two devices - one as temperature sensor and separate one for humidity sensor?

What does this refer to? My first devices I’d like to use are DHT11 temperature/humidity sensors - should I do something special for them?

Also still not sure what to use here?

Additionally what would the Composite Peripherals section be used for? It’s got something about DHT sensors there…

I updated it about a hour ago, thus far temp seems to be perfect.

Humidity now rounds, but is doing the same thing the temperature was doing, intermittently reporting long sting, then back to rounded.

That is so strange, as the Device Handler performs a 2 decimal place rounding function immediately before updating the Humidity Attribute. I cannot understand how the value is anything but two decimal places… :thinking:

1st, get your network receiver/sender all setup.
now to add your temp/humidity senors, before adding in the ‘devices’ tab you have to add the Composite Peripherals for your sensor. So add one, name it, the type is going to be DHTReader. Then fill out the pin location and other options, then save and update config. Here’s mine for a DTH22 for example

Now head over to the devices tab. Yes, the temp and Humidity have to be setup as 2 devices.
So for temp, your going to add a device and name it. Under triggers, you are setting up how often the sensor is going to report to ST, this is in milliseconds. Most likely in your case you can ignore subscriptions for now, just focus on get something working. Next you have to tell omnithing where this device’s sensor is. So under input press ‘create’, type: inputfloatref’. Here is where you point to the Composite Peripheral you created earlier. Then select if this for temp or humidity, select temp. save and update.

now the thermometer has been created, if the omnithing parent is setup correct in ST, in a few minutes, it will add the child device on its own and the temp will be added in ST.

3 Likes

I’m not sure what is going on. however, full-disclosure, I have the sensor on ~15’ lead, using 3.3v Vcc, with no filter. while it Should be fine, the length of wire concerns me. I have not pulled out a spectrum analyzer yet to verify anything, however I in good practice and going jump it up to 5v Vcc and add cap to filter any noise that may or may not be present. if said noise is present, it has the possibility of messing with the polled values…

So the devices showed up in SmartThings app but for some reason they’re both showing as zero - 0° and 0%. Any idea why? I follwodon’t d the steps in this YouTube videos and plugged in my wires exactly like he plugged in his - signal wire is in GPIO 7. Any advice?

Hi Gene,

The instructions from the README about “Only Add Devices if Required” are under the contribution guidelines section. Those are instructions for people adding code to the project, not configuring devices in the web interface.

As for you issue with 0%, can you provide your json configuration file? It would help in debugging if anything is configured incorrectly. You can download it from the web tool using the “Download JSON Config” button. You could also copy and paste the json text from the webpage itself.

Here’s the configuration I’ve got right now.

Json Configuration

{
“NetworkReceiver”: {
“type”: “NetworkReceiverHttpLib”,
“port”: 8090
},
“NetworkSender”: {
“type”: “NetworkSenderHttpLib”,
“ip”: “10.0.0.87”,
“port”: 39500
},
“CompositePeriphs”: [
{
“type”: “DhtReader”,
“name”: “dht7”,
“pin”: 7,
“pullup”: false,
“dht11”: false
}
],
“Devices”: [
{
“triggers”: [
{
“interval”: 50000,
“offset”: null,
“command”: “poll”
}
],
“subscriptions”: ,
“type”: “RelativeHumidityMeasurement”,
“name”: “dht7humidity”,
“input”: {
“type”: “InputFloatRef”,
“compositeName”: “dht7”,
“paramName”: “humidity”
}
},
{
“triggers”: [
{
“interval”: 50000,
“offset”: null,
“command”: “poll”
}
],
“subscriptions”: ,
“type”: “TemperatureMeasurement”,
“name”: “dht7temperature”,
“input”: {
“type”: “InputFloatRef”,
“compositeName”: “dht7”,
“paramName”: “temperature”
}
}
]
}

And this is for the DHT11 correct? Try setting the dht11 option in the composite peripheral to true. I believe this changes some timings that are specific to the DHT11 compared to the other DHT variants. Note that I haven’t ever tested the 11, only the 22.

If that doesn’t solve the problem, you can ssh to the raspberry pi and run “tail -F /opt/omnithing/logs/omnithing.log”

That will let you view the OmniThing log output, and maybe it will give useful information about what’s going on.

1 Like

At this point are the DHT sensors the only temp sensors supported? I see that St Anything supports a few, however that isn’t for RasPi.

What i’m trying to accomplish: recently our furnace decided it wasn’t going to light, turned out to be the glow plug. Which is no big deal since it goes out periodically, and a easy change. However here in CNY, it can get cold. Last time it went out while we were at work and got home it was only in the 30s in the house, and dog was shivering. My goal here isn’t only the whole “smart thermostat” out of a raspi, but also monitor the furnace. My plan is 1 raspi running parallel to my current thermostat (basically as safe guard if raspi quits for whatever reason) working as a thermostat. Then a second pi, monitoring everything. I have right now one set to watch when heat, cooling, and fan are turned on from the thermostat to the furnace control module. Now i want to also watch if the burners ignite. My plan to do this is a thermocouple on a burner, obviously if hot, the burner is lit. The idea is not just to give me a alert that something is wrong, but also a diagnostic tool.

Does CNY = Corning, NY by any chance?

As far as I know, only the DHT series of temperature sensors are currently supported in OmniThing.

ST_Anything, which runs on very low cost but very effective ESP8266 boards (plus many others) supports a wide array of temperature sensors, including a thermocouple board from Adafruit. If you want something quick and proven, ST_Anything is probably your best bet as it is a more mature platform. My son and I wrote ST_Anything years ago. OmniThing is much more recent and was created by my son. It runs on a lot of platforms, is designed to be configurable (versus having to write code), and is very object oriented. He took what we learned from ST_Anything and rewrote it completely with one of the goals being to correct some of the issues we discovered with our original design. He also wanted it to run on Linux, RPi, Windows, and ArduinoIDE-based MCUs.

If you want to give ST_Anything a try, let me know and I can help whip up a quick Arduino sketch to get you kick-started. I am not sure how quickly my son is planning on adding support for additional sensor types to OmniThing.

Changing the setting to true still didn’t work and ran the command you’d suggested - here is the output. Definitely seems like I’ve got some sort of issue, but this is my first attempt at using the Pi’s GPIO.

pi@PECAN:~ $ tail -F /opt/omnithing/logs/omnithing.log
DigitalOutputPinRaspberryPi: pin=7 val=0
ERROR: error reading temp/humidity (-2)
ERROR: Failed to get float=humidity from dht7
{“name”: “dht7humidity”, “type”: “RelativeHumidityMeasurement”, “humidity”: “0.000000”}

Poll triggered for TemperatureMeasurement dht7temperature
{“name”: “dht7temperature”, “type”: “TemperatureMeasurement”, “temperature”: “0.000000”}

Sending json: {“updates”: [{“name”: “dht7humidity”, “type”: “RelativeHumidityMeasurement”, “humidity”: “0.000000”},{“name”: “dht7temperature”, “type”: “TemperatureMeasurement”, “temperature”: “0.000000”}]}
Return value: 202
Poll triggered for RelativeHumidityMeasurement dht7humidity
DigitalOutputPinRaspberryPi: pin=7 val=0
ERROR: error reading temp/humidity (-2)
ERROR: Failed to get float=humidity from dht7
{“name”: “dht7humidity”, “type”: “RelativeHumidityMeasurement”, “humidity”: “0.000000”}

Poll triggered for TemperatureMeasurement dht7temperature
{“name”: “dht7temperature”, “type”: “TemperatureMeasurement”, “temperature”: “0.000000”}

Sending json: {“updates”: [{“name”: “dht7humidity”, “type”: “RelativeHumidityMeasurement”, “humidity”: “0.000000”},{“name”: “dht7temperature”, “type”: “TemperatureMeasurement”, “temperature”: “0.000000”}]}
Error: No reply
Poll triggered for RelativeHumidityMeasurement dht7humidity
DigitalOutputPinRaspberryPi: pin=7 val=0
ERROR: error reading temp/humidity (-2)
ERROR: Failed to get float=humidity from dht7
{“name”: “dht7humidity”, “type”: “RelativeHumidityMeasurement”, “humidity”: “0.000000”}

Poll triggered for TemperatureMeasurement dht7temperature
{“name”: “dht7temperature”, “type”: “TemperatureMeasurement”, “temperature”: “0.000000”}

Sending json: {“updates”: [{“name”: “dht7humidity”, “type”: “RelativeHumidityMeasurement”, “humidity”: “0.000000”},{“name”: “dht7temperature”, “type”: “TemperatureMeasurement”, “temperature”: “0.000000”}]}
Error: No reply
Poll triggered for RelativeHumidityMeasurement dht7humidity
DigitalOutputPinRaspberryPi: pin=7 val=0
ERROR: error reading temp/humidity (-2)
ERROR: Failed to get float=humidity from dht7
{“name”: “dht7humidity”, “type”: “RelativeHumidityMeasurement”, “humidity”: “0.000000”}

Poll triggered for TemperatureMeasurement dht7temperature
{“name”: “dht7temperature”, “type”: “TemperatureMeasurement”, “temperature”: “0.000000”}

Sending json: {“updates”: [{“name”: “dht7humidity”, “type”: “RelativeHumidityMeasurement”, “humidity”: “0.000000”},{“name”: “dht7temperature”, “type”: “TemperatureMeasurement”, “temperature”: “0.000000”}]}
Error: No reply
Poll triggered for RelativeHumidityMeasurement dht7humidity
DigitalOutputPinRaspberryPi: pin=7 val=0
ERROR: error reading temp/humidity (-2)
ERROR: Failed to get float=humidity from dht7
{“name”: “dht7humidity”, “type”: “RelativeHumidityMeasurement”, “humidity”: “0.000000”}

Poll triggered for TemperatureMeasurement dht7temperature
{“name”: “dht7temperature”, “type”: “TemperatureMeasurement”, “temperature”: “0.000000”}

Sending json: {“updates”: [{“name”: “dht7humidity”, “type”: “RelativeHumidityMeasurement”, “humidity”: “0.000000”},{“name”: “dht7temperature”, “type”: “TemperatureMeasurement”, “temperature”: “0.000000”}]}
Return value: 202

further North, in the Syracuse area.

I’m relatively new to ST, and still getting my feet wet. Prior to ST I never heard of the NodeMCU board, but have done quite a bit with a RasPi, going back to version ‘A’. I have about 13 sitting around the house unused and figured i’d make use of them. I did go ahead and order a few ESP8266 boards since they sounded interesting. I ordered these having no clue which brands with worth a damn. I did attempt to make use of them, and start to understand them, but that’s when I discovered the compiling error, and have not attempted again since that was fixed…
I do have concerns though with using them for this purpose. 1 being the low number of devices i can monitor with the ESP8266 board. I’d like 1 item doing all the monitoring. Possibly more than what i already stated. The other being its WiFi… little pet peeve of mine, i try to keep all tvs, computers, and other devices off the wifi and only wired.

random thought, are you sure your circuitry is correct?

What do you have wired to where?

Understandable for you to ask. Went by this YouTube tutorial found here

He used pin 7 as well as the 5v at the top right of this diagram and the ground that’s two spots below.