Then ESPHome is what you are looking for. Configured with a simple yaml config. Like this:
esphome:
name: hot-water-monitor
platform: ESP32
board: mhetesp32minikit
wifi:
ssid: 'WAPRU'
password: !secret wifi_pwd
manual_ip:
static_ip: 10.1.1.197
gateway: 10.1.1.1
subnet: 255.255.255.0
api:
password: !secret api_password
encryption:
key: !secret api_encryption_key
logger:
ota:
password: !secret esp_pwd
dallas:
- pin: GPIO33
update_interval: 3s
binary_sensor:
- platform: status
name: "Hot Water Monitor Status"
sensor:
- platform: wifi_signal
name: "Hot Water Monitor WiFi Signal"
update_interval: 15s
filters:
- sliding_window_moving_average:
window_size: 15
send_every: 15
send_first_at: 1
- platform: dallas
address: 0x1a3c01e07605b228
name: "Tank Temperature"
filters:
- sliding_window_moving_average:
window_size: 10
send_every: 10
send_first_at: 1
- platform: dallas
address: 0x58000000167d7228
name: "HP Inlet Temperature"
filters:
- sliding_window_moving_average:
window_size: 10
send_every: 10
send_first_at: 1
- platform: dallas
address: 0xa23c01e07646d628
name: "HP Return Temperature"
filters:
- sliding_window_moving_average:
window_size: 10
send_every: 10
send_first_at: 1
- platform: dallas
address: 0x2000000018fee128
name: "Hot Water Temperature"
filters:
- sliding_window_moving_average:
window_size: 10
send_every: 10
send_first_at: 1
- platform: dallas
address: 0xec00000019647a28
name: "Tempered Water Temperature"
filters:
- sliding_window_moving_average:
window_size: 10
send_every: 10
send_first_at: 1
- platform: dallas
address: 0x7900000018552628
name: "Air Temperature"
filters:
- sliding_window_moving_average:
window_size: 10
send_every: 10
send_first_at: 1
switch:
- platform: restart
name: "Hot Water Monitor Restart"
Load it up to an ESP board from your web browser, then after it is discovered by home assistant you can do whatever you want with the sensors, e.g.