Uutiset:

Kirjoittaja Aihe: Home Assistant - Raspberry PI, 1-Wire anturien julkaisu MQTT:lle  (Luettu 894 kertaa)

Poissa Sinitataivas

  • Nuorempi jäsen
  • **
  • Viestejä: 8
  • Maalämpöfoorumi
Minulla on pitkään ollut Home Assistant asennettuna (Raspberry Pi3). Olen kytkenyt talon ympärille vanhoihin puhelinpistorasioihin 1-wire (DS18B20) antureita n. 9 kpl. Lovelace näytöllä anturit ja lämpötilat näkyivät aikanaan nätisti, mutta kun HA päivittyi yli version 2022.5, niin tuki 1-wire antureille loppui. Yritin kaikkea mahdollista, mutta ainoa keino, jolla saan anturit näkymään oli asentaa kaikki uudelleen + HACS. Yritän katsella tuoa OWFS syteemiä, mutta en oikein saanut siitä tolkkua.

Nyt kaikki asennettu uudelleen ja  saan taas anturit näkyviin. Tarkoitus olisi, kun saisin kaiken toimimaan, laittaa tämä raspi Jeo-ventin kylkeen kiinni ja 4-6 anturia sisään. Ideana olisi siirtää tietoa MQTT:n kautta toiselle raspille, jossa on myös HA. Olen kolmisen viikkoa tuskaillut sen kanssa, että en saa millään julkaistua noita antureita MQTT:lle, vaikka ne näkyvätkin Lovelacen näytöllä nätisti. MQTT broker myös asentuu oikein ja sitä voi testata kuuntelemalla ja julkaisemalla viestejä MQTT Explorerin avulla. Tämä toimii ok.

Olen vähän tumpelo home assistantin kanssa, enkä tiedä miten kannattaisi edetä. Olisiko hyviä vinkkejä, miten saisin näin aluun julkaistua 1-wire anturit MQTT brokerille.

Poissa Sinitataivas

  • Nuorempi jäsen
  • **
  • Viestejä: 8
  • Maalämpöfoorumi
Nyt sain julkaistua tiedot MQTT:lle ja tehtyä sille sillatun konfigsen. Saan siirrettyä sillatulla välittäjällä tiedot eteenpäin toiselle HomeAssistant
Raspberrylle, jossa ne näkyvät MQTT:llä. Saan lukemat näkyviin myös Node-Redillä, mutta en ymmärrä, kuinka saisin ne näkyviin Lovelacen näkymään. Anturien tiedot näkyvät MQTT:llä muodossa "temp/varasto" yms, mutta eivät HomeAssistantin laitteissa eivätkä antureissa.

Onko vinkkejä, kuinka saisin lämpötilalukemat näkyviin HomeAssistantin Lovelace näkymään?

Poissa ISKI

  • Vanha jäsen
  • ****
  • Viestejä: 279
  • Maalämpöfoorumi
Nyt sain julkaistua tiedot MQTT:lle ja tehtyä sille sillatun konfigsen. Saan siirrettyä sillatulla välittäjällä tiedot eteenpäin toiselle HomeAssistant
Raspberrylle, jossa ne näkyvät MQTT:llä. Saan lukemat näkyviin myös Node-Redillä, mutta en ymmärrä, kuinka saisin ne näkyviin Lovelacen näkymään. Anturien tiedot näkyvät MQTT:llä muodossa "temp/varasto" yms, mutta eivät HomeAssistantin laitteissa eivätkä antureissa.

Onko vinkkejä, kuinka saisin lämpötilalukemat näkyviin HomeAssistantin Lovelace näkymään?
Itse luen 1-wire sensorit Node Red koodilla ja julkaisen ne sieltä mqtt:n avulla

Home Assistant puolella minulla on sensorit määritelty configuration.yml tiedostossa mqtt määrittelyinä, alla esimerkki

mqtt:
  sensor:
    - state_topic: "A40E16A8013C"
      name: "Heat Pump forward"
      unit_of_measurement: "°C"
      icon: mdi:thermometer
      unique_id: "A40E16A8013C"

Tuohon sitten joikainen anturi omalla id-tunnuksellaan
Bosch 7001i 4-16 LWM, 278m porakaivo GeoDuo M32 keräimellä, lamellihirsitalo 200 m2(rakennusala), tilavuus n. 600m3 (lattialämmitys) + sivurakennus (autotalli 45m2, työhuone 35 m2, ilmakiertoinen lattialämmitys)

Poissa Sinitataivas

  • Nuorempi jäsen
  • **
  • Viestejä: 8
  • Maalämpöfoorumi
Kiitos vastauksesta ISKI

Minä en saanut luettua 1-wire antureita ennen kuin asensin HACS:n https://hacs.xyz/. Nyt saan anturit luettua ja ne löytyvät ensimmäisen HA:n laitteissa ja näkyvät Lovelacen näytöllä. Saan julkaistua ne Node-Redillä MQTT:lle, jonka sain konfattua sillaksi. Sillan kautta MQTT paketit siirtyvät toiselle MQTT:lle ja myös näkyvät siellä.

En osaa kuitenkaan tehdä etäkoneen Lovelacelle sellaista kortttia, joka osaisi lukea MQTT:n topic viestejä esim. temp/varasto ja näyttää msg.payloadissa olevan lämpötilan. Etäkoneella anturit eivä näy laitteina, en tiedä pitäiskö näkyäkään, mutta ehkä sen takia ei löydy valmista Lovelace-korttia, jolla ne saisi Lovelacen näkymään.

Kun saisin tuon yllä mainitun toimimaan, seuraava vaihe olisi yksinkertaistaa tuota ensimmäisä HA:ta esimerkkisi mukaan.

Tunnistaako Node-Red suoraan nuo sinun anturisi kun olet määritellyt ne ensin configuration.yml tiedostossa?

Poissa ISKI

  • Vanha jäsen
  • ****
  • Viestejä: 279
  • Maalämpöfoorumi
Tunnistaako Node-Red suoraan nuo sinun anturisi kun olet määritellyt ne ensin configuration.yml tiedostossa?
Nuo configuration.yml määrittelyt ovat pelkästään sitä varten, että HA osaa perustaa sensorit ja lukea niille arvot MQTT viesteistä.

1-wire antureiden lukeminen Node Red ympäristössä on sitten ihan oma juttunsa.
Node Red ympäristössä on 1-wire lämpötila-antureiden lukuun omat modulit.
Ja ne, mitä itse käytän, perustuvat siihen, että Raspin Linux lukee ds2482 piirin kautta 1-wire lukemat tiedostoihin, joista Node Red ne sitten poimii.
Bosch 7001i 4-16 LWM, 278m porakaivo GeoDuo M32 keräimellä, lamellihirsitalo 200 m2(rakennusala), tilavuus n. 600m3 (lattialämmitys) + sivurakennus (autotalli 45m2, työhuone 35 m2, ilmakiertoinen lattialämmitys)

Poissa Sinitataivas

  • Nuorempi jäsen
  • **
  • Viestejä: 8
  • Maalämpöfoorumi
Lainaus
Nuo configuration.yml määrittelyt ovat pelkästään sitä varten, että HA osaa perustaa sensorit ja lukea niille arvot MQTT viesteistä.
Kiitos, pääsin vähän eteenpäin. Nyt sain anturin näkymään Lovelacen näkymässä, en vain saa millään siihen tulemaan lämpötila-arvoa. Kuitenkin saan sen luettua MQTT:llä ja Node-Redillä

Minulla on nyt configuration.yaml tiedostossa
Koodia: [Valitse]
mqtt:
  - sensor:
      name: Varaston lämpö
      state_topic: temp/varasto
      suggested_display_precision: 1
      unit_of_measurement: °C
      device_class: temperature
      value_template: '{{ value_json.temperature }}'

Oletan, että tuo kohta "value_template: '{{ value_json.temperature }}'" pitäisi hakea se tieto jostain, mutta ei hajaukaan mistä tai miten sitä voisi muuttaa.

Poissa Sinitataivas

  • Nuorempi jäsen
  • **
  • Viestejä: 8
  • Maalämpöfoorumi
Tuo ongelma, ettei lukemaa tule Lovelacen näytölle, saattaa johtua siitä, että MQTT näyttää pelkän numero- tai string-arvon. Minun pitää katsoa, että saan Node-Redillä lähetettyä json-muotoisen julkaisun. Tätä tutkin seuraavaksi :) En tiedä, pitäisikö minun lähetyspäässä laittaa johonkin Node-Redin objektiin "temperature" vai tuleeko se automaattisesti, jotta ("value_json.temperature") tuo yaml kohta osaisi poimia sen.

Poissa ISKI

  • Vanha jäsen
  • ****
  • Viestejä: 279
  • Maalämpöfoorumi
Tuo ongelma, ettei lukemaa tule Lovelacen näytölle, saattaa johtua siitä, että MQTT näyttää pelkän numero- tai string-arvon. Minun pitää katsoa, että saan Node-Redillä lähetettyä json-muotoisen julkaisun. Tätä tutkin seuraavaksi :) En tiedä, pitäisikö minun lähetyspäässä laittaa johonkin Node-Redin objektiin "temperature" vai tuleeko se automaattisesti, jotta ("value_json.temperature") tuo yaml kohta osaisi poimia sen.
Minusta näyttää, että sulla on ajatusvirhe Home Assistantin toiminnasta.
Lovelace kortit on tarkoitettu käyttöliittymän ohjelmointiin eli siihen mitä ja miten HA:n entiteettien (entity) arvoja näytetään.
MQTT integraation huolehtii, että saatu arvo tallentuu oikeaan entiteettiin.
Ja Home Assistant itse huolehtii historiatietojen ylläpidosta.
Jos näitä entiteettejä haluaa tutkia ihan perustasolla, niihin pääsee käsiksi HA:n sivupanelista
Settings > Devices & Services > Entities (yläpanelista)

Omassa totuetuksessani lähetän sensoreiden arvot Node Red puolelta numeroina (ei stringeinä).
Eli msg.topic on tuo k.o. sensorin tunniste ja msg.payload on sensorin arvo.
Bosch 7001i 4-16 LWM, 278m porakaivo GeoDuo M32 keräimellä, lamellihirsitalo 200 m2(rakennusala), tilavuus n. 600m3 (lattialämmitys) + sivurakennus (autotalli 45m2, työhuone 35 m2, ilmakiertoinen lattialämmitys)

Poissa Sinitataivas

  • Nuorempi jäsen
  • **
  • Viestejä: 8
  • Maalämpöfoorumi
Lainaus
MQTT integraation huolehtii, että saatu arvo tallentuu oikeaan entiteettiin.
Ja Home Assistant itse huolehtii historiatietojen ylläpidosta.
Jos näitä entiteettejä haluaa tutkia ihan perustasolla, niihin pääsee käsiksi HA:n sivupanelista
Settings > Devices & Services > Entities (yläpanelista)

Kun kuuntelen etäkoneella MQTT:llä julkaisua(minulla suomeksi "Kuuntele aihetta"), lämpötila näkyy numeerisena arvona. Jos katson noita kohteita (Entities) niin anturi näkyy siellä nätisti, jos kuitenkin klikkaan ja katson sen historiaa, on se tyhjä. Lähettävässä laitteessa sen sijaan vastaavassa kohdassa näkyy normaali historiatieto. Etäkoneen MQTT ottaa siis vastaan tuon julkaisun, mutta ilmeisesti se ei tallennu HomeAssistantiin ja näin ollen ei ole käytettävissä Lovelace näkymässä.

Minulla myös on Node-Redissä msg.topic = sensorin ID ja msg.payload = sensorin arvo.

Olisin laittanut kuvankaappauksia, mutta ilmeisesti ne pitäisi laittaa linkkeinä.

Poissa tomppeli

  • Yleismoderaattori
  • Konkari
  • *****
  • Viestejä: 8 597
  • Vanha pieru!
Olisin laittanut kuvankaappauksia, mutta ilmeisesti ne pitäisi laittaa linkkeinä.
Omalta tietokoneelta voi laittaa kuvia liitetiedostoina, mutta yksi tiedosto saa olla korkeintaan 1 MB (1000 kB).
Rajoita tiedostojen kokoa jollain kuvankäsittelyohjelmalla.

Poissa Sinitataivas

  • Nuorempi jäsen
  • **
  • Viestejä: 8
  • Maalämpöfoorumi
Nyt sain toimimaan, poistin configuration.yam tiedostosta rivin "value_template: '{{ value_json.temperature }}'"

Vanha, ei toimiva koodi
Koodia: [Valitse]
mqtt:
  - sensor:
      name: Varaston lämpö
      state_topic: temp/varasto
      suggested_display_precision: 1
      unit_of_measurement: °C
      device_class: temperature
      value_template: '{{ value_json.temperature }}'

Uusi, toimiva koodi
Koodia: [Valitse]
mqtt:
  - sensor:
      name: Varaston lämpö
      state_topic: temp/varasto
      suggested_display_precision: 1
      unit_of_measurement: °C
      device_class: temperature

 :)

Poissa Sinitataivas

  • Nuorempi jäsen
  • **
  • Viestejä: 8
  • Maalämpöfoorumi
Kiitos ISKI, opin taas paljon uutta HomeAsssistantista.

Nyt historiakin näkyy oikein.


Projekti jatkuu, seuraava vaihe on saada anturit näkymään etäkoneen pohjakuvassa, joka on Jeo-ventin ilmastointikojeen kaappi. Kun se toimii, laitan uudet anturit kaappiin ja kiinnitän lähettävän Raspberryn ilmastointikojeen kylkeen kiinni, josta nuo 1-Wire-anturit 4-6 kpl kaapin sisälle. Etäkoneeseen sitten tuo kaapin pohjakuva ja tarvittaessa hälytyksiä, jos kennot alkavat kovalla pakkasella jäätymään.