-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DS18x20 only some out of all sensors published #1215
Comments
If a sensor readout supplies wrong data according to crc I do not want to send the unreliable data so sometimes a sensor is not reported. |
I see. A retry is not an option? Any other ideas how to resolve this? |
send |
that's not solving the issue. I'm asking for a controller side retry... |
A correct reread of the sensor involves a re-convert taking up to almost a second for 12-bit conversion which in turn hold up the reporting cycle. If all is well the next teleperiod this re-convert cycle is performed and the sensor should provide a valid readout. |
Yes, understood. Still the issue remains: The json response does not contain data expected by openHAB and will hence yield the warning seen above. Because of possible causes for such a case I'd say that openHAB behaves right and this needs to be addressed on the Sonoff side. Do you see a possible solution or will we have to live with that warning? It's not ideal, on the other side I am probably one of only a few users with more than one sensor connected. |
I see no other solution than that openHAB has to check what data is in the JSON message. If a sensor is not there openHAB should not try to use it. That's the advantage of JSON; you can dynamically provide information. |
I see. I suppose you are right. The problem is, that openHAB offers MQTT topic subscription and jsonpath transformation as two separate functions. We would need to check which part needs to be improved to support partial json responses. Either the jsonpath or all transformation services or the MQTT binding or a combination of both. |
what information is missing?
|
I rewrote xsns_05_ds18x20.ino to accomodate the DS1822 (obsolete but nice to have). Other changes that might influence your experience are:
To be released in next (pre)release. |
5.9.1i * Fix Arilux LC11 restart exception 0 after OTA upgrade * Disabled CRC lookup-table in OneWire.h (#define ONEWIRE_CRC8_TABLE 0) to save some code space * Rewrite xsns_05_ds18x20.ino adding support for DS1822, correct address calculation and force setting 12-bit resolution (#1222) * DS18x20 sensor reconfiguration now only probed at restart removing dynamic connection and intermittent sensor loss (#1215)
5.9.1j * Revert changes to xsns_05_ds18x20.ino and rename to xsns_05_ds18x20_legacy.ino still needing library OneWire and providing legacy JSON message: * "DS18x20":{"DS1":{"Type":"DS18B20","Address":"284CC48E04000079","Temperature":19.5},"DS2":{"Type":"DS18B20","Address":"283AC28304000052","Temperature":19.6}} * Add new xdrv_05_ds18x20.ino free from library OneWire and add the following features: * Add support for DS1822 * Add forced setting of 12-bit resolution for selected device types (#1222) * Add read temperature retry counter (#1215) * Fix lost sensors by performing sensor probe at restart only thereby removing dynamic sensor probe (#1215) * Fix sensor address sorting using ascending sort on sensor type followed by sensor address * Rewrite JSON resulting in shorter message allowing more sensors in default firmware image: * "DS18B20-1":{"Id":"00000483C23A","Temperature":19.5},"DS18B20-2":{"Id":"0000048EC44C","Temperature":19.6} * Add additional define in user_config.h to select either single sensor (defines disabled), new multi sensor (USE_DS18X20) or legacy multi sensor (USE_DS18X20_LEGACY) * Add support for Sonoff Dual R2 (#1249) * Fix ADS1115 detection (#1258)
@ThomDietrich The proposed new OpenHab/ESH MQTT Things and their channels can be configured with an optional transformation. If the requested transformation does not yield a valid result, the Thing channel is not updated. "partial json" as you call it works out of the box. |
@davidgraeff amazing! ;) Thanks again for the said PR. |
@arendst, Can the dynamic probing be made into an compile option? All above reasons are greet but dynamic probing is something i use. I also use OH2 and i made script that controls that part of the dynamic probing as a feature. ( I also alter the Tasmota firmware every time to add CLEINT_ID to the TELE and STAT json because OpenHab doesn't have the capability to parse the topic to a script and my sensor are all on the same topic see also #975) |
@jhlweb Just stick to the legacy version then which still has dynamic probing (and loss). |
5.10.0 20171201 * Upgrade library ArduinoJson to 5.11.2 * Upgrade library IRRemoteEsp8266 to 2.2.1 + 2 commits but disabled some protocols (code size reduction) * Upgrade library NeoPixelBus to 2.2.9 * Upgrade library OneWire to 2.3.3 + 6 commits and disabled CRC lookup-table (#define ONEWIRE_CRC8_TABLE 0) (code size reduction) * Update library PubSubClient to 2.6 + 9 commits and additional delay (#790) * Update core_esp8266_wiring_digital.c to latest (staged) level * Patch library I2Cdevlib-Core for esp8266-core 2.4.0-rc2 compatibility * Remove command EnergyReset 1..3 now replaced by ENergyReset1 to EnergyReset3 * Remove spaces in JSON messages (code size reduction) * Renamed xsns_05_ds18x20.ino to xsns_05_ds18x20_legacy.ino still using library OneWire and providing dynamic sensor scan * Fix possible iram1_0_seg compile error by shrinking ICACHE_RAM_ATTR code usage * Fix PWM watchdog timeout if Dimmer is set to 100 or Color set to 0xFF (#1146) * Fix Sonoff Bridge Learn Mode hang caused by unrecognised RF code (#1181) * Fix blank console log window by using XML character encoding (#1187) * Fix wrong response name for command HlwISet (#1214) * Fix DHT type sensor timeout recognition by distinguish "signal already there" from "timeout" (#1233) * Add fixed color options 1..12 to command Color * Add + (plus) and - (minus) to commands Dimmer (+10/-10), Speed and Scheme * Add + (plus) and - (minus) to command Color to select 1 out of 12 preset colors * Add + (plus) and - (minus) to command Ct to control ColdWarm led ColorTemperature (+34/-34) * Add commands EnergyReset1 0..42500, EnergyReset2 0..42500 and EnergyReset3 0..42500000 * to (Re)set Energy Today, Yesterday or Total respectively in Wh (#406, #685, #1202) * Add optional ADS1115 driver as alternative for unsupported I2Cdevlib in esp8266-core 2.4.0-rc2 * Add support for INA219 Voltage and Current sensor to be enabled in user_config.h with define USE_INA219 * Add support for Arilux LC11 (Clearing RF home code when selecting no Arilux module) * Add support for WS2812 RGBW ledstrips to be enabled in user_config.h with define USE_WS2812_CTYPE (#1156) * Add SettingsSaveAll routine to command SaveData to be used before controlled power down (#1202) * Add option PUSHBUTTON_TOGGLE (SwitchMode 7) to allow toggling on any switch change (#1221) * Add new xdrv_05_ds18x20.ino free from library OneWire and add the following features: * Add support for DS1822 * Add forced setting of 12-bit resolution for selected device types (#1222) * Add read temperature retry counter (#1215) * Fix lost sensors by performing sensor probe at restart only thereby removing dynamic sensor probe (#1215) * Fix sensor address sorting using ascending sort on sensor type followed by sensor address * Rewrite JSON resulting in shorter message allowing more sensors in default firmware image: * "DS18B20-1":{"Id":"00000483C23A","Temperature":19.5},"DS18B20-2":{"Id":"0000048EC44C","Temperature":19.6} * Add additional define in user_config.h to select either single sensor (defines disabled), new multi sensor (USE_DS18X20) or legacy multi sensor (USE_DS18X20_LEGACY) * Add clock support for more different pixel counts (#1226) * Add support for Sonoff Dual R2 (#1249) * Add FriendlyName to web page tab and add program information to web page footer (#1275)
5.9.1i * Fix Arilux LC11 restart exception 0 after OTA upgrade * Disabled CRC lookup-table in OneWire.h (#define ONEWIRE_CRC8_TABLE 0) to save some code space * Rewrite xsns_05_ds18x20.ino adding support for DS1822, correct address calculation and force setting 12-bit resolution (arendst#1222) * DS18x20 sensor reconfiguration now only probed at restart removing dynamic connection and intermittent sensor loss (arendst#1215)
5.9.1j * Revert changes to xsns_05_ds18x20.ino and rename to xsns_05_ds18x20_legacy.ino still needing library OneWire and providing legacy JSON message: * "DS18x20":{"DS1":{"Type":"DS18B20","Address":"284CC48E04000079","Temperature":19.5},"DS2":{"Type":"DS18B20","Address":"283AC28304000052","Temperature":19.6}} * Add new xdrv_05_ds18x20.ino free from library OneWire and add the following features: * Add support for DS1822 * Add forced setting of 12-bit resolution for selected device types (arendst#1222) * Add read temperature retry counter (arendst#1215) * Fix lost sensors by performing sensor probe at restart only thereby removing dynamic sensor probe (arendst#1215) * Fix sensor address sorting using ascending sort on sensor type followed by sensor address * Rewrite JSON resulting in shorter message allowing more sensors in default firmware image: * "DS18B20-1":{"Id":"00000483C23A","Temperature":19.5},"DS18B20-2":{"Id":"0000048EC44C","Temperature":19.6} * Add additional define in user_config.h to select either single sensor (defines disabled), new multi sensor (USE_DS18X20) or legacy multi sensor (USE_DS18X20_LEGACY) * Add support for Sonoff Dual R2 (arendst#1249) * Fix ADS1115 detection (arendst#1258)
Hello,
I've got a Sonoff Basic with two DS18b20 connected. It's well configured and values for both sensors are correct. The problem is, that at times only one of the two sensors is covered by the SENSOR topic message.
openHAB prints an error message each time that happens. openHAB will look for the defined JSONpath selector and print an error if it can't be found:
I could live with the error and it doesn't cause any further issues. However I wonder if this is the desired way of operation. If there are two sensors, shouldn't both be published at all times?
Best!
The text was updated successfully, but these errors were encountered: