3rd party One Wire sensors (DS2438)

What would be the direction/place to start looking to use esphome to read data from a third partu temp and humidity sensor?

Have handful of these [1wire T&H](https://www.unipi.technology/products/1-wire-temperature-and-humidity-sensors-382?categoryId=28&categorySlug=sensors) available. Currently the address is picked up, but not recognized

[15:38:06][C][gpio.one_wire:082]:     0x63858d5709646128 (DS18B20)
[15:38:06][C][gpio.one_wire:082]:     0x45187a441f64ff28 (DS18B20)
[15:38:06][C][gpio.one_wire:082]:     0x51096e441f64ff28 (DS18B20)
[15:38:06][C][gpio.one_wire:082]:     0x36000002815d0126 (Unknown)

Have the python code they use for reading the data
owdevice.py. Have some coding experience myself, may get a friendly developer to help and would be happy to contribute back to the community. Need some guidance on where to start and how to approach.

Appreciate any comment/direction! Maybe it’s wrong idea alltogether? :smiley:

this would be awesome :slight_smile:

connect the two 1 wire connectors together and it should work. For some reason they decided 1 wire should be two wires. The linked page has some info on using it with other controllers that are true to the 1 (really 3 with power and ground) wire philosophy.

also not clear why people like these. They seem expensive for what they are.

i have in my system modules from Tobias and they working great.

Hi @falke1987 ,

those sensor kits seem to be very interesting. May I ask for an example of your yaml config file to understand, how you managed to get them running?

Thank you.

I just bought two of those: 1-​Wire Präzisions-​Luftfeuchte-​Modul mit SHT35 (±1,5%) - DS2438 / H, 34,50 €
The Firmware is flahed as 2xDS18B20.

And it is even easier than expected:

  - platform: dallas_temp
    address: 0x7703000084eb7228
    name: "tm3d_1_humidity"
    unit_of_measurement: "%r.F."
    update_interval: 1200s
    icon: "mdi:water-percent"
    device_class: "humidity"
    state_class: "measurement"
    accuracy_decimals: 2
  - platform: dallas_temp
    address: 0x2e03000084eb7128
    name: "tm3d_1_temperature"
    unit_of_measurement: "°C"
    update_interval: 1200s
    icon: "mdi:thermometer"
    device_class: "temperature"
    state_class: "measurement"
    accuracy_decimals: 2

Hello… awesome which firmware have you used?

finally got my hands trying out the 3 wire setup. Connecting in&out on unipi DS2438 makes sense … I wonder, has anyone managed to get it working on esphome afterwards? Looks like the default one_wire, platform:dallas_temp won’t work out of the box.

Mean while have ordered few of DS2438 / HIH4030 from tm3d with 2ds18b20 firmware option. Hope that will work. Just trying to find a use/get the DS2438 from shelf working.
appreciate any hint/ideas on direction how to proceed.

It looks like @janSpub got it working so I suspect it can work.

You didn’t show exactly what you did both YAML and wiring, so hard to say why it didn’t work for you.

Thank you @neel-m for getting back so quickly, despite the long pause from my side. Much appreciated!!
janSpub linked 1wire from tm3d, but he mentions he actually bought 2x ds18b20 option (I have ordered the same) and not the vanilla DS2438.

With my unipi DS2438 I have wired it in powered mode. in/ou to data, vcc&gnd to + and -.

Sensor is showing up in the log with unknown type (same as it was back in December)
[22:38:06][C][gpio.one_wire:082]: 0xb2000002815d8326 (Unknown)

I tried in yaml to just replace the address and use the same syntax as for dallas_temp, but I understand it might be wrong platform for the DS2438.

one_wire:
  - platform: gpio
    pin: GPIO14

   - platform: dallas_temp
     address:  0xb2000002815d8326
     name: "TEMP_01" 
     resolution: 10

Also tried coming up with custom external component using chat-gpt friend, but ended up going in loops with the errors. I don’t dare to share those results here :smiley: :slight_smile:

which firmware have you used?

He says: the Firmware is flahed as 2xDS18B20.
I took the same. Hope for a quick delivery to be able to test it out before other things steal all the time :slight_smile:

look here

you have your Dallas sensor under the one_wire config setting. it needs to be under sensor.

You do not need a custom component and creating one is not easy and I doubt any of the AI models can help, since there is so little training data of value.

ehh, was my bad copying stuff out of the yaml.

one_wire:
  - platform: gpio
    pin: GPIO14

sensor:
   - platform: dallas_temp
     address:  0xb2000002815d8326
     name: "TEMP_01" 
     resolution: 10

I have some handful of proper DS18B20 sensors there as well - those are working alright. Just this DS2438 (which I bought mostly to get the humidity from the same cable) reading the address, but the type not being recognized (nor values).

I have a feeling there might be some platform difference, since it reports two values (where as the sensor mentioned by janSpub behaves like two separate DS18B20 temp sensors, just one value giving humidity instead of temp)

I tried them out with nodered and iobroker in the past but after the exchange to home assistant i was not able to hock them up in the new world.

Good morning any news?