DS18b20 przewodowo do HA na terminalu

Cześć wszystkim.
Przygotowuje się do przejścia z Domoticza na HA. Domoticza posiadam ok 2 lat i jestem zadowolony lecz są aspekty, które przemawiają za HA…do meritum.
Mam obecnie RPI3b+ z SSD i sieć czujników DS18b20 (kilkanaście sztuk) na 1-Wire podłączone do GPIO Rpi. HA chciałbym postawić na jakimś terminalu 4 rdzeniowym a więc nie będę miał GPIO. Moje pytanie jest następujące w jaki najprostszy sposób mogę podłączyć istniejące czujniki przewodowo do terminala? Adapter USB 1-Wire? Czy może jakieś arduino po USB i My Sensors? Będę wdzięczny za w miarę rzeczową odpowiedź (prostą do zrozumienia dla mnie) jak fizycznie to połącznie będzie przebiegać i jak bym musiał to zrobić.
Zaznaczę tylko, że poczytałem sporo forum ale jeżeli nie zauważyłem odpowiedzi na moje pytanie to z góry przepraszam.

  1. Ja bym podszedł do tego za pomocą ESPHome (tak, wiem, nie każdy lubi bezprzewodowo, ale mimo wcześniejszych obaw podobne rozwiązanie się u mnie sprawdza i wystarczy do tego ESP8266)

ponadto można ogarnąć ESPHome przewodowo używając nieco innego sprzętu niż najprostszy moduł ESP (tu już ESP32 + LAN8720 jest tym minimum)

  1. Jeśli coś daje się ogarnąć w ESPHome to zazwyczaj można to też zrobić w Tasmota, oraz zapewne w innych projektach bazujących na ESP.

  2. Trochę szkoda tak mocnego sprzętu jakim jest RPI3B+ ale można też postawić minimalną konfigurację HA na tym RPi (nawet używając karty TF, a nie dysku - rezygnując np. z zapisu w recorderze) i użyć do tego “zdalnego HA” :

chociaż w sumie się nie zastanowiłem, czy mając RPi można podłączyć do HA Dallasy lokalnie, ale można

Inne możliwe rozwiązanie (które kojarzę, ale nie próbowałem), oczywiście w każdym ze wspomnionych przypadków (tych wyżej też) trzeba doczytać pełną dokumentację - ograniczyłem się tylko do samej integracji DS18B20 w jakikolwiek sposób.

  1. MySensors

5. Konnected

1 polubienie

A może tak: zostawić na RPi3 i zintegrować z HA, patrz 1-Wire - Home Assistant :

Raspberry Pi checking connected devices via ssh

If you set up ssh, you can check the connected one-wire devices in the following folder: /sys/bus/w1/devices The device IDs begin with 28-.

Dzięki Panowie za szybką odpowiedź. Najchętniej bym został przy RPi 3b+ lub 4 ale z tego co czytam to każdy zaleca PC. Chciałbym też mieć podgląd z ok 8 kamer więc nie wiem czy RPi to udźwignie, ale to temat na inny wątek. Co do DS18b20 to połączenie Wi-Fi jest u mnie zawodne ze względu router z alternatywnym oprogramowaniem (tak na chwilę obecną musi zostać bo mam na tym VPN). RPi chciałbym zwolnić po instalacji HA na PC i użyć je w innym miejscu. Wszystkie DSy mam podpięte w układzie gwiazdy skrętka więc terminuje się jej jeden z końców na GPIO, jeżeli bym podłączył je do Arduino mega (takie mam wolne) i to Arduino połączył USB z bramką my sensors na HA, to czy to ma prawo działać w HA? :slight_smile: Druga sprawa to czy w HA jest możliwość korekty wskazń odczytów temp. tak jak to jest w Domoticzu?

Tak, poczytaj MySensors - Home Assistant albo jako alternatywa Firmata - Home Assistant.

Podłączyłem jeden DS próbnie pod Arduino MEGA 2560, które łączy się przewodowo po USB dzięki my sensors… i działa ale ale zostaje niestety korekta wskazań temperatury. Tu pytanie i gorąca prośba - czy jest ktoś kto by mógł mnie naprowadzić na to co dopisać do szkicu w arduino żeby zrobić korektę na każdy adres DS18B20 osobno? W Domoticzu miałem pole, w którym mogłem wprowadzić wartość korekty na plus lim minus od wskazań czujnika. Z tego co widzę w HA tego nie ma.

Od razu nie ma…

Dzięki wielkie za podpowiedź, korekta wprowadzona ale trochę utknąłem na tym jak w configuration.yaml wprowadzić np 10 czujników z korektą. Konkretnie jak powinien wyglądać zapis wg tego schematu+ kolejne:
Example configuration.yaml entry

compensation:
  media_player_db_volume:
    source: media_player.yamaha_receiver
    attribute: volume_level
    unit_of_measurement: dB
    data_points:
      - [0.2, -80.0]
      - [1.0, 0.0]

Krótko mówiąc - 1 korekta działa dobrze ale jak dodać kolejne żebym mógł zapisać zmiany (bez błędów w postaci wykrzyknika w edytorze) w configuration.yaml i przeładować HA? Pewnie to oczywiste ale dla mnie jeszcze nie:)

Pokaż twój realny kod, a nie przykład z dokumentacji (i zobacz co zmieniłem w twoim poście, aby yaml był odpowiednio sformatowany, bo każda spacja jest ważna).
z grubsza to pewnie powinno wyglądać jakoś tak (nie sprawdzałem, to po prostu lekko zmodyfikowany przykład dla 3 encji), puste linijki są dla zwiększenia czytelności

compensation:

  media_player_db_volume:
    source: media_player.yamaha_receiver
    attribute: volume_level
    unit_of_measurement: dB
    data_points:
      - [0.2, -80.0]
      - [1.0, 0.0]

  media_player_db_volume2:
    source: media_player.yamaha_receiver2
    attribute: volume_level
    unit_of_measurement: dB
    data_points:
      - [0.2, -60.0]
      - [1.0, -3.0]

  media_player_db_volume3:
    source: media_player.yamaha_receiver3
    attribute: volume_level
    unit_of_measurement: dB
    data_points:
      - [0.2, -70.0]
      - [1.0, 10.0]

Dzięki:) na sucho działa, jak podłącze więcej DSów to będę miał pewność. Mój błąd polegał chyba na tym że kolejne czujniki numerowałem na początku a nie na końcu. Jak działa to nie ma co drążyć :slight_smile:

Mam do Ciebie jeszcze jedno pytanie…
Wszystko działa jak trzeba ale nie doszukałem sie informacji co zrobić żeby zaokrąglić temperaturę (używając Compensation) np z wyniku 21,57 do 21,6. Odczyty z DS18b20 mam w 11 bitach i wprowadzając korektę w “setnych” wynik w sensorze Compensation mam z dwoma miejscami po przecinku. Chcaiłbym zostac przy wynikach z jedną cyfrą po przecinku.
Co muszę dodac to tego wpisu w yaml?

sensor_calibrated_temperature_19:
  unique_id: Kuchnia
  source: sensor.relay_and_temp_0_19
  data_points:
    - [0.0, 0.59]
    - [1.0, 1.59]

Służy do tego parametr konfiguracyjny precision.
Naprawdę nie mogłeś zajrzeć do dokumentacji?
Ani spróbować się nauczyć jak wkleić jakikolwiek kod na forum, aby się nie “rozjechał”?

Co do wklejania kodu to nie był on tu sensem sprawy dlatego tylko orientacyjnie go wrzuciłem, ale na przyszłość nie ma sprrawy i wrzuce go 1:1. Jeżeli chodzi o parametr precision to próbowałem go jak i zarówno szukałem zastosowania “round” ale nie udało mi się uzyskać efektu jaki chciałem. Tak jak pisałem poprzednio Precision: 0,1 z wartości 20,76 robi mi 21 a chciałbym uzyskać 20,8. Robię coś nie tak?

sensor_calibrated_temperature_21:
  unique_id: Pokój TV (1)
  source: sensor.relay_and_temp_0_21
  data_points:
    - [0.0, 0.36]
    - [1.0, 1.36]
  precision: 0.1

Ja bym spróbował tak

sensor_calibrated_temperature_21:
  unique_id: Pokój TV (1)
  source: sensor.relay_and_temp_0_21
  data_points:
    - [0.0, 0.36]
    - [1.0, 1.36]
  precision: 1

A co do wstawiania jakiegokolwiek kodu (w szczególności YAML) nie miałem na myśli tego, że wstawiłeś tylko urywek, lecz, że to był niesformatowany urywek.


PS Takie ostrzeżenie (tutaj może na wyrost, ale temat się od tego zaczął) - integracje stosujące GPIO w malinie stają się przestarzałe i prawdopodobnie od przyszłego “dużego” wydania (w kwietniu lub czerwcu 2022, zależnie od tego jaka to konkretnie integracja) mogą się ulotnić wraz z aktualizacją HA.

…i to rozwiązało sprawę :slight_smile: Dzięki za pomoc.

Co do kodu to też miałem na myśli formatowanie ale nie ma sprawy na drugi raz wrzucę poprawnie:) Jeżeli chodzi o RPi to na szczęście mnie problem już nie dotyczy, powoli ( na tyle ile czas mi pozwala) kończę migrację na terminal z HA :slight_smile: