Home Assistant - For Dummies (hass.io)

Jahas. Seuraava typerä kysymys.
Mulla on siis hue bridge ja 3kpl huen lamppuja ja 2kpl liiketunnistimia.
Lisäksi zigbee tikku jossa sitten vähän kaikenlaista.
Nyt kun HA:ssa oon yrittänyt hyödyntää noita liiketunnistimia niin ei oikein lähde.

Molemmat softat puhelimessa/käytössä.
Eli pitääkö mun heivata huen softa kokonaan pois? Vai onko onko toivoakaan että noi jotenkin juttelis keskenään?
 
Olen kokeillut Chat GPT:llä kirjoitella automaatioita ja lähes aina, törmään seuraavaan ongelmaan: Message malformed: extra keys not allowed @ data['0']
Koodit menevat YAML validatoreista yms kirkkaasti läpi ja sen vähän koodaamista ymmärtäen niin ne myös näyttävät ihan "järkeviltä". Missäköhän on vika?

Esimerkki koodista, jossa tuo ongelma tulee:


YAML:
- alias: Aloita lämpöpumppu
  trigger:
    platform: time
    at: '15:30:00'
  action:
    - service: climate.turn_on
      target:
        device_id: XXXX266266bf705fb350aa141438dda7
    - service: climate.set_temperature
      data:
        entity_id: climate.1e731cc9
        temperature: 26

- alias: Laske lämpötilaa
  trigger:
    platform: time
    at: '22:00:00'
  action:
    - service: climate.set_temperature
      data:
        entity_id: climate.1e731cc9
        temperature: 24

- alias: Sammuta lämpöpumppu
  trigger:
    platform: time
    at: '06:45:00'
  action:
    - service: climate.turn_off
      target:
        device_id: XXXX266266bf705fb350aa141438dda7
 
Olen kokeillut Chat GPT:llä kirjoitella automaatioita ja lähes aina, törmään seuraavaan ongelmaan: Message malformed: extra keys not allowed @ data['0']
Koodit menevat YAML validatoreista yms kirkkaasti läpi ja sen vähän koodaamista ymmärtäen niin ne myös näyttävät ihan "järkeviltä". Missäköhän on vika?

Esimerkki koodista, jossa tuo ongelma tulee:


YAML:
- alias: Aloita lämpöpumppu
  trigger:
    platform: time
    at: '15:30:00'
  action:
    - service: climate.turn_on
      target:
        device_id: XXXX266266bf705fb350aa141438dda7
    - service: climate.set_temperature
      data:
        entity_id: climate.1e731cc9
        temperature: 26

- alias: Laske lämpötilaa
  trigger:
    platform: time
    at: '22:00:00'
  action:
    - service: climate.set_temperature
      data:
        entity_id: climate.1e731cc9
        temperature: 24

- alias: Sammuta lämpöpumppu
  trigger:
    platform: time
    at: '06:45:00'
  action:
    - service: climate.turn_off
      target:
        device_id: XXXX266266bf705fb350aa141438dda7
Veikkaisin, että johtuu välilyönneistä aliaksissa. Koita laittaa ne heittomerkkien tai lainausmerkkien sisään esim: alias: "Aloita lämpöpumppu"
 
Veikkaisin, että johtuu välilyönneistä aliaksissa. Koita laittaa ne heittomerkkien tai lainausmerkkien sisään esim: alias: "Aloita lämpöpumppu"

Vaikka poistin -Alias kokonaan koodista niin silti sama virheilmoitus Message malformed: extra keys not allowed @ data['0']

YAML:
- trigger:
    platform: time
    at: 15:30:00
  action:
    - service: climate.turn_on
      target:
        device_id: XXX5266266bf705fb350aa141438dda7
    - service: climate.set_temperature
      data:
        entity_id: climate.1e731cc9
        temperature: 26
- trigger:
    platform: time
    at: 22:00:00
  action:
    - service: climate.set_temperature
      data:
        entity_id: climate.1e731cc9
        temperature: 24
- trigger:
    platform: time
    at: 06:45:00
  action:
    - service: climate.turn_off
      target:
        device_id: XXX5266266bf705fb350aa141438dda7
 
Vaikka poistin -Alias kokonaan koodista niin silti sama virheilmoitus Message malformed: extra keys not allowed @ data['0']

YAML:
- trigger:
    platform: time
    at: 15:30:00
  action:
    - service: climate.turn_on
      target:
        device_id: XXX5266266bf705fb350aa141438dda7
    - service: climate.set_temperature
      data:
        entity_id: climate.1e731cc9
        temperature: 26
- trigger:
    platform: time
    at: 22:00:00
  action:
    - service: climate.set_temperature
      data:
        entity_id: climate.1e731cc9
        temperature: 24
- trigger:
    platform: time
    at: 06:45:00
  action:
    - service: climate.turn_off
      target:
        device_id: XXX5266266bf705fb350aa141438dda7
set_temperature -actioneille ei ole määritelty target device_id:tä. Voisiko johtua siitä?

Ks. esimerkit:
 
set_temperature -actioneille ei ole määritelty target device_id:tä. Voisiko johtua siitä?

Ks. esimerkit:
Mystinen homma kyllä. Puuttuukohan minulta configuration.yaml:sta joku pätkä vai mikäköhän tässä on ongelma.
Nyt muokkasin tätä koodia seuraavasti niin virheilmoitukseksi tulee Message malformed: extra keys not allowed @ data['automation']

YAML:
automation:
- alias: "Aloita lämpöpumppu"
  trigger:
    platform: time
    at: '15:30:00'
  action:
    - service: climate.turn_on
      target:
        device_id: XXX5266266bf705fb350aa141438dda7
    - service: climate.set_temperature
      data:
        entity_id: climate.1e731cc9
        temperature: 26

- alias: "Laske lämpötilaa"
  trigger:
    platform: time
    at: '22:00:00'
  action:
    - service: climate.set_temperature
      target:
       device_id: XXX5266266bf705fb350aa141438dda7
      data:
        entity_id: climate.1e731cc9
        temperature: 24

- alias: "Sammuta lämpöpumppu"
  trigger:
    platform: time
    at: '06:45:00'
  action:
    - service: climate.turn_off
      target:
        device_id: XXX5266266bf705fb350aa141438dda7
 
Olen kokeillut Chat GPT:llä kirjoitella automaatioita ja lähes aina, törmään seuraavaan ongelmaan: Message malformed: extra keys not allowed @ data['0']
Koodit menevat YAML validatoreista yms kirkkaasti läpi ja sen vähän koodaamista ymmärtäen niin ne myös näyttävät ihan "järkeviltä". Missäköhän on vika?

Esimerkki koodista, jossa tuo ongelma tulee:


YAML:
- alias: Aloita lämpöpumppu
  trigger:
    platform: time
    at: '15:30:00'
  action:
    - service: climate.turn_on
      target:
        device_id: XXXX266266bf705fb350aa141438dda7
    - service: climate.set_temperature
      data:
        entity_id: climate.1e731cc9
        temperature: 26

- alias: Laske lämpötilaa
  trigger:
    platform: time
    at: '22:00:00'
  action:
    - service: climate.set_temperature
      data:
        entity_id: climate.1e731cc9
        temperature: 24

- alias: Sammuta lämpöpumppu
  trigger:
    platform: time
    at: '06:45:00'
  action:
    - service: climate.turn_off
      target:
        device_id: XXXX266266bf705fb350aa141438dda7
Oletko kysynyt ChatGPT:tä syytä virheeseen? Minulla se korjasi aluksi antamaansa Python koodia kun sille kertoi, että nyt näkyi tuollainen virhe jne.
 
Oletko kysynyt ChatGPT:tä syytä virheeseen? Minulla se korjasi aluksi antamaansa Python koodia kun sille kertoi, että nyt näkyi tuollainen virhe jne.
Ollaan sen kanssa aamupäivä "väitelty". Sillä on seuraavat vinkit

  1. Tarkista sisennys: Varmista, että kaikki sisennys on tehty oikein ja että jokainen osa automaatiota on sisennetty samalla tavalla. Sisennys on tärkeä osa YAML-syntaksia, joten varmista, että kaikki tasot ja lohkot on sisennetty oikein.
  2. Tarkista kaksoispisteet: Varmista, että kaksoispisteet (:) ovat oikein paikallaan ja niitä käytetään oikeissa kohdissa. Esimerkiksi avainten ja arvojen välillä on oltava kaksoispiste.
  3. Tarkista avaimet ja arvot: Varmista, että käytät oikeita avaimia ja arvoja automaatiokoodissa. Tarkista erityisesti, että avaimet, kuten alias, trigger ja action, ovat oikein ja niitä käytetään oikeissa kohdissa.
  4. Kokeile toista tekstieditoria: Jos Home Assistantin automaatioeditori jatkaa virheen antamista, voit kokeilla tallentaa automaatiokoodin ulkoiseen tekstieditoriin, kuten Notepad++ tai Visual Studio Code. Tämän jälkeen voit yrittää lisätä automaatiokoodin Home Assistantiin kopioimalla sen.
 
Ollaan sen kanssa aamupäivä "väitelty". Sillä on seuraavat vinkit

  1. Tarkista sisennys: Varmista, että kaikki sisennys on tehty oikein ja että jokainen osa automaatiota on sisennetty samalla tavalla. Sisennys on tärkeä osa YAML-syntaksia, joten varmista, että kaikki tasot ja lohkot on sisennetty oikein.
  2. Tarkista kaksoispisteet: Varmista, että kaksoispisteet :)) ovat oikein paikallaan ja niitä käytetään oikeissa kohdissa. Esimerkiksi avainten ja arvojen välillä on oltava kaksoispiste.
  3. Tarkista avaimet ja arvot: Varmista, että käytät oikeita avaimia ja arvoja automaatiokoodissa. Tarkista erityisesti, että avaimet, kuten alias, trigger ja action, ovat oikein ja niitä käytetään oikeissa kohdissa.
  4. Kokeile toista tekstieditoria: Jos Home Assistantin automaatioeditori jatkaa virheen antamista, voit kokeilla tallentaa automaatiokoodin ulkoiseen tekstieditoriin, kuten Notepad++ tai Visual Studio Code. Tämän jälkeen voit yrittää lisätä automaatiokoodin Home Assistantiin kopioimalla sen.
Mikä editori sinulla on käytössä? Onko EOL merkki Unixin mukainen (LF) ?
 
Mikä editori sinulla on käytössä? Onko EOL merkki Unixin mukainen (LF) ?
En ymmärrä mistä täällä puhutaan:lol: Eli ole syöttänyt tuota koodia tunne HA:n käyttöliittymän kautta luo uusi automaatio / muokkaa YAML tiedostona.
 
En ymmärrä mistä täällä puhutaan:lol: Eli ole syöttänyt tuota koodia tunne HA:n käyttöliittymän kautta luo uusi automaatio / muokkaa YAML tiedostona.
Se netistä otettu koodin kopio voi olla väärässä muodossa tuon rivin päättymismerkin suhteen.
Kokeile laittaa se teksti ensin Notepad++ ja muuta siinä Edit valikossa EOL conversion muotoon Unix (LF) ja kopioi sitten teksti ja liitä HA:han.

Mutta ehkä HA osaa tuon muunnoksen tehdä jo itsekin kun sen käyttöliittymän kautta muokkaa(?) Joskus vaan pähkäilin jonkun koodin kanssa, kaikki näytti olevan oikein eikä vaan toiminut ja vika oli noissa merkeissä.
 
set_temperature -actioneille ei ole määritelty target device_id:tä. Voisiko johtua siitä?

Ks. esimerkit:

Mystinen homma kyllä. Puuttuukohan minulta configuration.yaml:sta joku pätkä vai mikäköhän tässä on ongelma.
Nyt muokkasin tätä koodia seuraavasti niin virheilmoitukseksi tulee Message malformed: extra keys not allowed @ data['automation']

YAML:
automation:
- alias: "Aloita lämpöpumppu"
  trigger:
    platform: time
    at: '15:30:00'
  action:
    - service: climate.turn_on
      target:
        device_id: XXX5266266bf705fb350aa141438dda7
    - service: climate.set_temperature
      data:
        entity_id: climate.1e731cc9
        temperature: 26

- alias: "Laske lämpötilaa"
  trigger:
    platform: time
    at: '22:00:00'
  action:
    - service: climate.set_temperature
      target:
       device_id: XXX5266266bf705fb350aa141438dda7
      data:
        entity_id: climate.1e731cc9
        temperature: 24

- alias: "Sammuta lämpöpumppu"
  trigger:
    platform: time
    at: '06:45:00'
  action:
    - service: climate.turn_off
      target:
        device_id: XXX5266266bf705fb350aa141438dda7

Et tehnyt kuten Zigh pyysi.

Poistaisin ensimmäiseksi device_id:n mikäli mahdollista. Itse en muista koskaan käyttäneeni niitä, vaan aina entity_id.

Onko entity_id: climate.1e731cc9 looginen laite fyysiselle device_id: XXX5266266bf705fb350aa141438dda7 laitteelle? Siltä ainakin vaikuttaa. Jos on niin kokeilisin jotain alla olevan tyyppistä koodia. Device_id:t vaihdetaan entity_id:ksi ja kaikki entity_id:t datan alla siirretään targetin alle kuten Zighin linkkaama Climate integraatiosivu neuvoo.
YAML:
automation:
- alias: "Aloita lämpöpumppu"
  trigger:
    platform: time
    at: '15:30:00'
  action:
    - service: climate.turn_on
      target:
        entity_id: climate.1e731cc9
    - service: climate.set_temperature
      target:
        entity_id: climate.1e731cc9
      data:
        temperature: 26

- alias: "Laske lämpötilaa"
  trigger:
    platform: time
    at: '22:00:00'
  action:
    - service: climate.set_temperature
      target:
       entity_id: climate.1e731cc9
      data:
        temperature: 24

- alias: "Sammuta lämpöpumppu"
  trigger:
    platform: time
    at: '06:45:00'
  action:
    - service: climate.turn_off
      target:
        entity_id: climate.1e731cc9
 
Viimeksi muokattu:
Et tehnyt kuten Zigh pyysi.

Poistaisin ensimmäiseksi device_id:n mikäli mahdollista. Itse en muista koskaan käyttäneeni niitä, vaan aina entity_id.

Onko entity_id: climate.1e731cc9 looginen laite fyysiselle device_id: XXX5266266bf705fb350aa141438dda7 laitteelle? Siltä ainakin vaikuttaa. Jos on niin kokeilisin jotain alla olevan tyyppistä koodia. Device_id:t vaihdetaan entity_id:ksi ja kaikki entity_id:t datan alla siirretään targetin alle kuten Zighin linkkaama Climate integraatiosivu neuvoo.
YAML:
automation:
- alias: "Aloita lämpöpumppu"
  trigger:
    platform: time
    at: '15:30:00'
  action:
    - service: climate.turn_on
      target:
        entity_id: climate.1e731cc9
    - service: climate.set_temperature
      target:
        entity_id: climate.1e731cc9
      data:
        temperature: 26

- alias: "Laske lämpötilaa"
  trigger:
    platform: time
    at: '22:00:00'
  action:
    - service: climate.set_temperature
      target:
       entity_id: climate.1e731cc9
      data:
        temperature: 24

- alias: "Sammuta lämpöpumppu"
  trigger:
    platform: time
    at: '06:45:00'
  action:
    - service: climate.turn_off
      target:
        entity_id: climate.1e731cc9
Kokeilin alunperin tuota Zigh:n vinkkiä sekä siitä useaa "variaatiota", myös tuo sinun koodiasi antaa saman virhekoodin. Tuolla climate ohjeessa tuon käynnistyksen sekä sammutuksen osalta on ohjeistettu käyttämään tuota device id:tä entityn sijaan. Muokkasin koodia siten, että automaatio pelkästään käynnistäisi tuon pumpun ja silti sama virheilmoitus.

Jos tuon koodin tekee ihan tuolla käyttöliittymä editorilla niin se toimii, joten alan kallistumaan, että virhe taphtuu tuossa koodin kopioinnisssa. Tämä virhe on siis tapahtunut oikeastan kaikissa Chat Gpt:n koodeissa.

Testaan tuo et328 kikan, kunhan pääsen koneelle.
 
Kokeilin alunperin tuota Zigh:n vinkkiä sekä siitä useaa "variaatiota", myös tuo sinun koodiasi antaa saman virhekoodin. Tuolla climate ohjeessa tuon käynnistyksen sekä sammutuksen osalta on ohjeistettu käyttämään tuota device id:tä entityn sijaan. Muokkasin koodia siten, että automaatio pelkästään käynnistäisi tuon pumpun ja silti sama virheilmoitus.

Jos tuon koodin tekee ihan tuolla käyttöliittymä editorilla niin se toimii, joten alan kallistumaan, että virhe taphtuu tuossa koodin kopioinnisssa. Tämä virhe on siis tapahtunut oikeastan kaikissa Chat Gpt:n koodeissa.

Testaan tuo et328 kikan, kunhan pääsen koneelle.
Onko sulla välilyönti jokaisen rivin lopussa vai näyttääkö puhelimella vain siltä :hmm:
 
Kokeilin alunperin tuota Zigh:n vinkkiä sekä siitä useaa "variaatiota", myös tuo sinun koodiasi antaa saman virhekoodin. Tuolla climate ohjeessa tuon käynnistyksen sekä sammutuksen osalta on ohjeistettu käyttämään tuota device id:tä entityn sijaan. Muokkasin koodia siten, että automaatio pelkästään käynnistäisi tuon pumpun ja silti sama virheilmoitus.

Jos tuon koodin tekee ihan tuolla käyttöliittymä editorilla niin se toimii, joten alan kallistumaan, että virhe taphtuu tuossa koodin kopioinnisssa. Tämä virhe on siis tapahtunut oikeastan kaikissa Chat Gpt:n koodeissa.

Testaan tuo et328 kikan, kunhan pääsen koneelle.
Mene HA:ssa kehittäjän työkaluihin -> Palvelut ja kliksuttele siellä sellainen komento mitä haluat tehdä ja vaihda yaml-tilaan niin näät millainen sen koodin pitäisi olla.

Sitten tutkit miten se eroaa tuosta ChatGPT:stä kopioidusta. (Tai kopioit ne tänne niin tutkitaan kaikki)
 
Tuolla climate ohjeessa tuon käynnistyksen sekä sammutuksen osalta on ohjeistettu käyttämään tuota device id:tä entityn sijaan. Muokkasin koodia siten, että automaatio pelkästään käynnistäisi tuon pumpun ja silti sama virheilmoitus.

Koitin siis etsiä device_id:n tuosta Climate-ohjeesta enkä löytänyt mainintaa koko sivulta. Siksi ohjeistin käyttämään entity_id:tä. Mutta jos varmasti device_id toimii niin voihan sitä käyttää.


Turn climate device on. This is only supported if the climate device supports being turned off.

Service data attributeOptionalDescription
entity_idyesString or list of strings that define the entity ID(s) of climate device(s) to control. To target all climate devices, use all.
 
Mene HA:ssa kehittäjän työkaluihin -> Palvelut ja kliksuttele siellä sellainen komento mitä haluat tehdä ja vaihda yaml-tilaan niin näät millainen sen koodin pitäisi olla.

Sitten tutkit miten se eroaa tuosta ChatGPT:stä kopioidusta. (Tai kopioit ne tänne niin tutkitaan kaikki)

Tässä on siis käyttöliittymällä tehty "toimiva" koodi.

YAML:
alias: Uusi automaatiotedt
description: ""
trigger:
  - platform: time
    at: "15:30:00"
  - platform: time
    at: "22:00:00"
condition: []
action:
  - service: climate.turn_on
    data: {}
    target:
      entity_id: climate.1e731cc9
  - service: climate.set_temperature
    data:
      temperature: 24
    target:
      entity_id: climate.1e731cc9
mode: single

Ja tässä viimeisin Chat Gpt:llä puristettu koodi, joka antaa virheen Message malformed: extra keys not allowed @ data['automation']
YAML:
automation:
  - alias: "Aloita lämpöpumppu"
    trigger:
      platform: time
      at: '15:30:00'
    action:
      - service: climate.turn_on
        target:
          entity_id: climate.1e731cc9
      - service: climate.set_temperature
        data:
          entity_id: climate.1e731cc9
          temperature: 26

  - alias: "Laske lämpötilaa"
    trigger:
      platform: time
      at: '22:00:00'
    action:
      - service: climate.set_temperature
        data:
          entity_id: climate.1e731cc9
          temperature: 24

  - alias: "Sammuta lämpöpumppu"
    trigger:
      platform: time
      at: '06:45:00'
    action:
      - service: climate.turn_off
        target:
          entity_id: climate.1e731cc9
 
@Sledge Minne yrität liittää tuota ChatGPT:n luomaa automaatiota? Suoraan automaatioon YAML-tilassa vai configuration.yaml?

Edit. luulen että se pitäisi luoda omaksi yaml-tiedostoksi ja viitata siihen configuration.yamlissa
Packages - Home Assistant (home-assistant.io)

Tämä configuration.yaml
YAML:
homeassistant:
  packages:
    pack_1: !include automaatio.yaml

ja se ChatGPT:n luoma automaatio tiedostoon automaatio.yaml
 
Viimeksi muokattu:
@Sledge Minne yrität liittää tuota ChatGPT:n luomaa automaatiota? Suoraan automaatioon YAML-tilassa vai configuration.yaml?
Menen siis tuossa HA:n käyttöliittymässä tuohon Asetukset/Automaatiot+tilanteet ja sieltä luo uusi automaatio, josta sitten valitsen yläkulmasta muokkaa YAML-tiedostona. En tiedä onko tämä totaalisen väärä tapa mutta tällä tavalla olen useamman automaation onnistunut tekemään :D
 
Menen siis tuossa HA:n käyttöliittymässä tuohon Asetukset/Automaatiot+tilanteet ja sieltä luo uusi automaatio, josta sitten valitsen yläkulmasta muokkaa YAML-tiedostona. En tiedä onko tämä totaalisen väärä tapa mutta tällä tavalla olen useamman automaation onnistunut tekemään :D
Muokkasin viestiäni hieman tässä välissä. Ei tosiaan voi automaatioiden kautta viedä useampaa automaatiota kerralla.

Täältä Automation: Message malformed · Issue #25 · caiosweet/Home-Assistant-custom-components-DPC-Alert (github.com) löytyi Googlella itseasiassa hyvä selitys tuolle miksei automation: -alkuista voi käyttää:
The example you find in the readme is an automation inserted in a package. But you can, as mentioned above, create the manual automations or add an ID (to make it compatible with the UI editor) and insert it in the default automation.yaml file without the automation header (because it is already present in the configuration.yaml file with !includes)

Eli kun aiemman viestini mukaisesti teet siitä automaatiosta packagen, niin saat toimimaan. Muutoin joudut muokkaamaan sitä sopivaksi.
 
Menen siis tuossa HA:n käyttöliittymässä tuohon Asetukset/Automaatiot+tilanteet ja sieltä luo uusi automaatio, josta sitten valitsen yläkulmasta muokkaa YAML-tiedostona. En tiedä onko tämä totaalisen väärä tapa mutta tällä tavalla olen useamman automaation onnistunut tekemään :D
Kai ne tuotakin kautta voi viedä, mutta pitää tosiaan laittaa nuo kolme yksi kerrallaan, ei könttänä.
 
Täytyy tutkia näitä vaihtoehtoja, mutta ihmettelen sitä kuten tuossa kirjoitin, että vaikka otan tuosta koodista pelkästään tuon ilpon käynnistyksen ja yritän tehdä siitä automaation niin saan saman virheen Message malformed: extra keys not allowed @ data['0'] :confused::confused:

YAML:
  - alias: "Aloita lämpöpumppu"
    trigger:
      platform: time
      at: '15:30:00'
    action:
      - service: climate.turn_on
        target:
          entity_id: climate.1e731cc9
 
Täytyy tutkia näitä vaihtoehtoja, mutta ihmettelen sitä kuten tuossa kirjoitin, että vaikka otan tuosta koodista pelkästään tuon ilpon käynnistyksen ja yritän tehdä siitä automaation niin saan saman virheen Message malformed: extra keys not allowed @ data['0'] :confused::confused:

YAML:
  - alias: "Aloita lämpöpumppu"
    trigger:
      platform: time
      at: '15:30:00'
    action:
      - service: climate.turn_on
        target:
          entity_id: climate.1e731cc9
Pitäisi varmaan olla näin, eli listamuoto pois (viiva aliaksen edestä) ja sisennykset kuntoon

YAML:
alias: "Aloita lämpöpumppu"
trigger:
  platform: time
  at: '15:30:00'
action:
  - service: climate.turn_on
    target:
      entity_id: climate.1e731cc9
 
Pitäisi varmaan olla näin, eli listamuoto pois (viiva aliaksen edestä) ja sisennykset kuntoon

YAML:
alias: "Aloita lämpöpumppu" 
trigger:
  platform: time
  at: '15:30:00'
action:
  - service: climate.turn_on
    target:
      entity_id: climate.1e731cc9

:kippis: Tällä pääsin tuohon juurisyyhyn, eli jostain syystä, vaikka kuinka yritin niin tuo Chat GPT ei onnistu luomaan oikein sisennettyä koodia. Vaikka tosiaan pyydän sitä vain kirjoittamaan tuon ilpon käynnistyskäskyn niin jotta saan siitä toimivan niin täytyy studio code serveriä käyttäen poistaa noita ylimääräisä välilyöntejä tuosta koodista jokaiselta riviltä. Ja vaikka näytän esimerkkikoodin tuolle Chat GPT:lle niin siitä huolimatta se joka ikinen kerta "oksentaa" väärin sisennettyä koodia. Eli täytyy vain ottaa lusikka kauniiseen käteen ja alkaa opiskelemaan / muistelemaan tuota koodin muotoilua jos haluaa käyttää tuota GPT:tä apuna.
 
:kippis: Tällä pääsin tuohon juurisyyhyn, eli jostain syystä, vaikka kuinka yritin niin tuo Chat GPT ei onnistu luomaan oikein sisennettyä koodia. Vaikka tosiaan pyydän sitä vain kirjoittamaan tuon ilpon käynnistyskäskyn niin jotta saan siitä toimivan niin täytyy studio code serveriä käyttäen poistaa noita ylimääräisä välilyöntejä tuosta koodista jokaiselta riviltä. Ja vaikka näytän esimerkkikoodin tuolle Chat GPT:lle niin siitä huolimatta se joka ikinen kerta "oksentaa" väärin sisennettyä koodia. Eli täytyy vain ottaa lusikka kauniiseen käteen ja alkaa opiskelemaan / muistelemaan tuota koodin muotoilua jos haluaa käyttää tuota GPT:tä apuna.
Tuon takia en ihan pikkujuttuja edes yritä kysyä miltään GPT:ltä, pääsääntöisesti se tuottaa ihan ok koodia mutta tuollaisia pikkujuttuja on lähes joka vastauksessa eli sisennykset kusee, jotain turhia tai puuttuvia välimerkkejä, yksinkertaisesta asiasta turhan monimutkaisia ratkaisuja sun muuta vastaavaa.

Toki tuo ChatGPT on jeesannut kaikessa tylsässä, siltä saa boilerplatea ja lähestulkoon toimivaa koodia varsin näppärästi mutta käytännössä aina joutuu jotain käsin hieromaan. Itse tuossa juuri pari päivää sitten kysäisin GPT:ltä yhteen omaan pikku koodausprojektiin koodia niin kyllähän sieltä perusrunko ja 95% toimiva koodi tuli. Itse koodaamalla olisi kestänyt kauemmin kirjoittaa tuo koodi alusta asti kuin korjata tuon jättämät virheet.
 
Jahas. Seuraava typerä kysymys.
Mulla on siis hue bridge ja 3kpl huen lamppuja ja 2kpl liiketunnistimia.
Lisäksi zigbee tikku jossa sitten vähän kaikenlaista.
Nyt kun HA:ssa oon yrittänyt hyödyntää noita liiketunnistimia niin ei oikein lähde.

Molemmat softat puhelimessa/käytössä.
Eli pitääkö mun heivata huen softa kokonaan pois? Vai onko onko toivoakaan että noi jotenkin juttelis keskenään?
Itse heitin Huen sillalla vesilintua (siirtymävaiheen jälkeen HUE --> HA), jonka jälkeen oon toteuttanut kaikki zigbeeohjailut Homeassistantissa Node-REDillä. itsellä käytössä SONOFF USB 3.0 zigbee tikku
Koko asunnon valot automatisoitu, ainoastaan jos haluan ennen ajastinta sammutella valot, niin silloin avaan sovelluksen ja valot pois, muussa tapauksessa "ajastin" resetoituu aina liikettä havaittaessa.
Muistaakseni silloin, kun vielä HUEn silaa käytin, niin noderedissä oli joku add-on, mitä sai kivasti käytettyä, mutta en nyt muista mistä ja miten....
oiskohan ehkä ollut tää: node-red-contrib-huemagic
 
Morjens,

Onkos kukaan lähetellyt Denon/Marantz vahvareille koodeja (https://www.heimkinoraum.de/upload/files/product/IP_Protocol_AVR-Xx100.pdf) Home Assistantista.
Saan kyllä läheteltyä komentoja esim radioaseman ikonikuvasta näin: (tällä menee kolmospaikan radioasema päälle)

- type: picture image: /local/images/radio_city_harmaa.png tap_action: action: call-service service: denonavr.get_command target: entity_id: media_player.marantz_sr7013 data: command: /goform/formiPhoneAppDirect.xml?TPAN03

Mutta jos pitäis kysyä vaikka valitun aseman RDS nimi (koodilla /goform/formiPhoneAppDirect.xml?TPANNAME? ), niin miten sen paluuarvon saa poimittua HA käyttöön?
 
Itse heitin Huen sillalla vesilintua (siirtymävaiheen jälkeen HUE --> HA), jonka jälkeen oon toteuttanut kaikki zigbeeohjailut Homeassistantissa Node-REDillä. itsellä käytössä SONOFF USB 3.0 zigbee tikku
Koko asunnon valot automatisoitu, ainoastaan jos haluan ennen ajastinta sammutella valot, niin silloin avaan sovelluksen ja valot pois, muussa tapauksessa "ajastin" resetoituu aina liikettä havaittaessa.
Muistaakseni silloin, kun vielä HUEn silaa käytin, niin noderedissä oli joku add-on, mitä sai kivasti käytettyä, mutta en nyt muista mistä ja miten....
oiskohan ehkä ollut tää: node-red-contrib-huemagic
Nonni. Tätä mä vähän epäilinkin.
Eli siis kun on riittävän paljon aikaa niin tarvii tehdä tuo homma.
Ja sit tollasella neljän nappulan / 12 toiminnan kytkimellä tekee muutaman tarvittavan tilan. Lähinnä päivä, yö, leffa, siivous tulee äkkiseltään mieleen.

Ja noi huen automaatiot kikkailla ha:n.

Ettei noita automaatioita tule kauheaa määrää päälle ja pois hommiin niin mikäs mahtais olla viisain tapa. Nyt menee auringon/anturin mukaan parvekkeella valot päälle. Ja toinen automaatio sammuttaa sen kun anturi kiinni. Tuntuu kovin kankealta.
Varsinkin jos noita huen lamppuja on enempi ja jokaiseen pitää tehdä useampia automaatioita.

Ja sit vielä tavallaan kaikille scene mikä vaihtaa kirkkauksia yms...
 
Ettei noita automaatioita tule kauheaa määrää päälle ja pois hommiin niin mikäs mahtais olla viisain tapa. Nyt menee auringon/anturin mukaan parvekkeella valot päälle. Ja toinen automaatio sammuttaa sen kun anturi kiinni. Tuntuu kovin kankealta.
Varsinkin jos noita huen lamppuja on enempi ja jokaiseen pitää tehdä useampia automaatioita.

Ja sit vielä tavallaan kaikille scene mikä vaihtaa kirkkauksia yms...

tee automaatio joka triggeröi muutoksesta anturin tilassa, ja sitten if - then lausekkeella määräät mitä ne lamput tekee, jos tekee jotain. joko laittaa päälle tai sammuttaa. kannattaa tässä käyttää niitä skenejä samantien nii saat oikeat kirkkaudet yms.

klikkailemalla http://homeassistant.local:8123/config/automation/edit/new
 
tee automaatio joka triggeröi muutoksesta anturin tilassa, ja sitten if - then lausekkeella määräät mitä ne lamput tekee, jos tekee jotain. joko laittaa päälle tai sammuttaa. kannattaa tässä käyttää niitä skenejä samantien nii saat oikeat kirkkaudet yms.

klikkailemalla http://homeassistant.local:8123/config/automation/edit/new

Tuo triggerit&if:t on mielestäni HA:n puolelta vähän kankeaa. Sillä siis itsekin teen ja helpommin hallittava kun kaikki toisiinsa liittyvä on samassa, mutta jotenkin typerää että nopeammin tekee kaksi eri automaatiota tyyliin Button on--> light off ja button off--> light off kun yhden automaation tapauksessa yhdistelmään pitää vielä lisätä ehtolause kumpi triggeröi. Sitten kun on viisinappinen switch niin tulee tarpeettoman sekava.
Ehkä pitäisi olla automation-group johon saisi yhdisteltyä nuo simppelit suorat ohjaukset paketiksi :cigar2:

No en tuota suureksi ongelmaksi ole kokenut kun ei tuossa kauaa mene ja yleensä ei hirveästi tarvitse säätää. Jos joka napinpainallukselle tekee oman automaation niin hukkuu kyllä auyomaatioiden määrään ja saa olla nimeämisessä skarppina jos haluaa löytää yhteenliittyvät yksittäiset automaatiot...

Edit: tai voihan siellä olla jo joku tuollainen feature lisätty :asif:
 
Tuo triggerit&if:t on mielestäni HA:n puolelta vähän kankeaa. Sillä siis itsekin teen ja helpommin hallittava kun kaikki toisiinsa liittyvä on samassa, mutta jotenkin typerää että nopeammin tekee kaksi eri automaatiota tyyliin Button on--> light off ja button off--> light off kun yhden automaation tapauksessa yhdistelmään pitää vielä lisätä ehtolause kumpi triggeröi. Sitten kun on viisinappinen switch niin tulee tarpeettoman sekava.
Ehkä pitäisi olla automation-group johon saisi yhdisteltyä nuo simppelit suorat ohjaukset paketiksi :cigar2:

No en tuota suureksi ongelmaksi ole kokenut kun ei tuossa kauaa mene ja yleensä ei hirveästi tarvitse säätää. Jos joka napinpainallukselle tekee oman automaation niin hukkuu kyllä auyomaatioiden määrään ja saa olla nimeämisessä skarppina jos haluaa löytää yhteenliittyvät yksittäiset automaatiot...

Edit: tai voihan siellä olla jo joku tuollainen feature lisätty :asif:
Vaikka itse muuten tykkäänkin koodata ihan kirjoittamalla niin HA:ssa olen vaan todennut että suurin osa asioista on ainakin itselle helpompaa tehdä Node-Redillä, saa piirrellä nuo automaatiologiikat ja niitä on helppo ryhmitellä välilehtiin ja siirrellä / kopioida siellä paikasta toiseen.
 
Morjens,

Onkos kukaan lähetellyt Denon/Marantz vahvareille koodeja (https://www.heimkinoraum.de/upload/files/product/IP_Protocol_AVR-Xx100.pdf) Home Assistantista.
Saan kyllä läheteltyä komentoja esim radioaseman ikonikuvasta näin: (tällä menee kolmospaikan radioasema päälle)

- type: picture image: /local/images/radio_city_harmaa.png tap_action: action: call-service service: denonavr.get_command target: entity_id: media_player.marantz_sr7013 data: command: /goform/formiPhoneAppDirect.xml?TPAN03

Mutta jos pitäis kysyä vaikka valitun aseman RDS nimi (koodilla /goform/formiPhoneAppDirect.xml?TPANNAME? ), niin miten sen paluuarvon saa poimittua HA käyttöön?

Tämä ei näköjään ole kovin yleistä puuhaa (ainakaan tässä ryhmässä), joten laitan vähän kokemuksiani tähän mennessä.

Tein configuration.yaml tiedostoon sensorimäärittelyn ja tuo "vähän niiku" toimii. Sensorissa on satunnaisesti oikeakin arvo, tosin yleensä jotain muuta.
Kokeilut jatkuu...

Koodi:
sensor:
  - platform: tcp
    name: marantz rds name
    host: 10.0.42.111
    port: 23
    payload: "TPANNAME?\x0d"
    value_template: '{{ value.split("ME")[1] }}'

Tuo value.split palauttaa "ME" jälkeisen osuuden, kun speksin mukaan vastaus on TFANNAME123456878
 
Viimeksi muokattu:
Mulla on ruuvitagit lisätty home assistanttiin. Sensorit kerää tyyliin 1-2s välein dataa, saako tuota vähennettyä niin, että keräis esim 1min välein dataa? Onnistuuko UI:n kautta tms?
 
Mulla on ruuvitagit lisätty home assistanttiin. Sensorit kerää tyyliin 1-2s välein dataa, saako tuota vähennettyä niin, että keräis esim 1min välein dataa? Onnistuuko UI:n kautta tms?

configuration.yaml

template:
- trigger:
- platform: time_pattern
minutes: "/5"
sensor:
- name: "Ulkona kosteus hidas"
state: "{{ states('sensor.compensation_sensor_ruuvitag_c196_humidity') }} "
unit_of_measurement: '%'
device_class: humidity

- trigger:
- platform: time_pattern
minutes: "/5"
sensor:
- name: "Ulkolämpötila hidas"
state: "{{ states('sensor.compensation_sensor_ruuvitag_c196_temperature') }} "
unit_of_measurement: °C
device_class: temperature

edit: oikeilla sisennyksillä: template: - trigger: - platform: time_pattern minutes: "/30" - Pastebin.com
 
Eikö se originaali sensori tuolla silti kerää taustalla dataa ihan normaalisti?
 
Eikö se originaali sensori tuolla silti kerää taustalla dataa ihan normaalisti?

Kyllä. Tuolla pasteamallani pätkällä kuitenkin tulee uudet hitaammat sensorit HA:han joita sitten voi käyttää automaatioissa tai lovelace-korteissa ihan samalla tavalla kuin originaaleja. vanhat jää taustalle.

Jos sitä alkuperäistä haluaa hidastaa (10 sekuntiin) niin ei ole muuta keinoa kuin firmwaren vaihto. Long life battery?
 
Kyllä. Tuolla pasteamallani pätkällä kuitenkin tulee uudet hitaammat sensorit HA:han joita sitten voi käyttää automaatioissa tai lovelace-korteissa ihan samalla tavalla kuin originaaleja. vanhat jää taustalle.

Jos sitä alkuperäistä haluaa hidastaa (10 sekuntiin) niin ei ole muuta keinoa kuin firmwaren vaihto. Long life battery?
Näin ajattelin.
Ainakin kun Ruuvilla oli oma distro sai valittua pollausvälin koska hakee uutta tietoa.

HAsta en ole tätä keksinyt kuin että ajaa purgea ja toista komentoa että säilyttää vain 5min kohdalla olleen datan ja pidempään esim. 6kk. Vakiona taisi olla alle kk datan säilyvyys.
 
Näin ajattelin.
Ainakin kun Ruuvilla oli oma distro sai valittua pollausvälin koska hakee uutta tietoa.

HAsta en ole tätä keksinyt kuin että ajaa purgea ja toista komentoa että säilyttää vain 5min kohdalla olleen datan ja pidempään esim. 6kk. Vakiona taisi olla alle kk datan säilyvyys.
Millä olette yhteydessä Ruuveihin? Ruuvistationilla, suora BT vai BT proxyn kautta? Itsellä BT proxyja ympäri tonttia ja niiden koodiin on mahdollista tehdä rajoituksia käsittääkseni.

Helpoimmaksi sensorien kanssa olen putkiaivot omaavana kokenut että käytän softa-PLC tyyppistä ratkaisua että anturidata kerätään Node-REDilla. Siinä erinomaiset työkalut viestien suodattamiseen. Voi päästää läpi vain viestit missä arvo muuttuu ja lisäksi vähimmäis viiveen viestien välillä. Pystyy myös suodattamaan sellaisten anturien virhelukemia mitkä ei toleransseissa ja yhdistelemään eri anturitietoja.

HA työkalut ei mielestäni kummoiset ja "hidas" tällaiseen kun paljon eri antureita. NR voi myös puskuroida dataa kun HA esim päivityksen tai verkko-ongelman takia alhaalla. Kohtelen HAia lähinnä ylätason UI & pilvi liityntäjärjestelmänä. Kriitiset toiminteet pyörii raudalla, seuraava taso NR ja HA käyttöliittymänä. Näin HA viestien määrä ja käyttöliittymä pysyy responsiivisena.
 
Viimeksi muokattu:
Millä olette yhteydessä Ruuveihin? Ruuvistationilla, suora BT vai BT proxyn kautta? Itsellä BT proxyja ympäri tonttia ja niiden koodiin on mahdollista tehdä rajoituksia käsittääkseni.

Helpoimmaksi sensorien kanssa olen putkiaivot omaavana kokenut että käytän softa-PLC tyyppistä ratkaisua että anturidata kerätään Node-REDilla. Siinä erinomaiset työkalut viestien suodattamiseen. Voi päästää läpi vain viestit missä arvo muuttuu ja lisäksi vähimmäis viiveen viestien välillä. Pystyy myös suodattamaan sellaisten anturien virhelukemia mitkä ei toleransseissa ja yhdistelemään eri anturitietoja.

HA työkalut ei mielestäni kummoiset ja "hidas" tällaiseen kun paljon eri antureita. NR voi myös puskuroida dataa kun HA esim päivityksen tai verkko-ongelman takia alhaalla. Kohtelen HAia lähinnä ylätason UI & pilvi liityntäjärjestelmänä. Kriitiset toiminteet pyörii raudalla, seuraava taso NR ja HA käyttöliittymänä. Näin HA viestien määrä ja käyttöliittymä pysyy responsiivisena.
Raspin oma BT kommunikoi suoraan.

Edit. Rivit yamlissa.

recorder:
purge_keep_days: 60
commit_interval: 300

 
Viimeksi muokattu:
Millä hitsi tuon kokonaiskulutuksen sais overview alle näkymään dashboardissa? developissa toimii kyl

YAML:
- platform: template
  sensors:
    daily_power_cost:
      friendly_name: "House Daily Power Cost"
      value_template: "{{ (states('sensor.daily_energy')|float * 0.262026 + 0.9393)|round(2) }}"
    Power_consumption:
      friendly_name: "House Power Consumption"
      unit_of_measurement: "W"
      device_class: power
      state_class: measurement
      state: >
        {{ ([ states('sensor.3em_pro_total_phase_a_active_power'),
              states('sensor.3em_pro_total_phase_b_active_power'),
              states('sensor.3em_pro_total_phase_c_active_power') ]
              | map('float') | sum) | round(2) }}
      availability: >
        {{ not 'unavailable' in
           [ states('sensor.3em_pro_total_phase_a_active_power'),
             states('sensor.3em_pro_total_phase_b_active_power'),
             states('sensor.3em_pro_total_phase_c_active_power') ] }}
    Energy_consumption:
      friendly_name: "House Total Energy"
      unit_of_measurement: "kWh"
      state_class: measurement
      state: >
        {{ ([ states('sensor.3em_pro_total_phase_a_total_active_energy'),
              states('sensor.3em_pro_total_phase_b_total_active_energy'),
              states('sensor.3em_pro_total_phase_c_total_active_energy') ]
              | map('float') | sum) | round(2) }}
      availability: >
        {{ not 'unavailable' in
           [ states('sensor.3em_pro_total_phase_a_total_active_energy'),
             states('sensor.3em_pro_total_phase_b_total_active_energy'),
             states('sensor.3em_pro_total_phase_c_total_active_energy') ] }}
 
Millä hitsi tuon kokonaiskulutuksen sais overview alle näkymään dashboardissa? developissa toimii kyl

YAML:
- platform: template
  sensors:
    daily_power_cost:
      friendly_name: "House Daily Power Cost"
      value_template: "{{ (states('sensor.daily_energy')|float * 0.262026 + 0.9393)|round(2) }}"
    Power_consumption:
      friendly_name: "House Power Consumption"
      unit_of_measurement: "W"
      device_class: power
      state_class: measurement
      state: >
        {{ ([ states('sensor.3em_pro_total_phase_a_active_power'),
              states('sensor.3em_pro_total_phase_b_active_power'),
              states('sensor.3em_pro_total_phase_c_active_power') ]
              | map('float') | sum) | round(2) }}
      availability: >
        {{ not 'unavailable' in
           [ states('sensor.3em_pro_total_phase_a_active_power'),
             states('sensor.3em_pro_total_phase_b_active_power'),
             states('sensor.3em_pro_total_phase_c_active_power') ] }}
    Energy_consumption:
      friendly_name: "House Total Energy"
      unit_of_measurement: "kWh"
      state_class: measurement
      state: >
        {{ ([ states('sensor.3em_pro_total_phase_a_total_active_energy'),
              states('sensor.3em_pro_total_phase_b_total_active_energy'),
              states('sensor.3em_pro_total_phase_c_total_active_energy') ]
              | map('float') | sum) | round(2) }}
      availability: >
        {{ not 'unavailable' in
           [ states('sensor.3em_pro_total_phase_a_total_active_energy'),
             states('sensor.3em_pro_total_phase_b_total_active_energy'),
             states('sensor.3em_pro_total_phase_c_total_active_energy') ] }}
HA on kummallinen kun monella eri kirjoitustyylillä saattaa saada toimimaan, mutta kun kerran tuo toimii kehitysikkunassa niin kyse todennäköisesti sisennyksistä ennen itse koodia. Tuossa esim omat ensimmäiset templatet muotoiluineen mitkä toimiii.
Screenshot 2023-06-26 at 23.13.40.png


EDIT: Näkyykö nuo sinun entityt kuitenkin oikein developer tolls -> States alla? Jos toimii niin lisää unique_id niille myös että toimivat käyttöliittymän kautta.
 
Millä hitsi tuon kokonaiskulutuksen sais overview alle näkymään dashboardissa? developissa toimii kyl

YAML:
- platform: template
  sensors:
    daily_power_cost:
      friendly_name: "House Daily Power Cost"
      value_template: "{{ (states('sensor.daily_energy')|float * 0.262026 + 0.9393)|round(2) }}"
    Power_consumption:
      friendly_name: "House Power Consumption"
      unit_of_measurement: "W"
      device_class: power
      state_class: measurement
      state: >
        {{ ([ states('sensor.3em_pro_total_phase_a_active_power'),
              states('sensor.3em_pro_total_phase_b_active_power'),
              states('sensor.3em_pro_total_phase_c_active_power') ]
              | map('float') | sum) | round(2) }}
      availability: >
        {{ not 'unavailable' in
           [ states('sensor.3em_pro_total_phase_a_active_power'),
             states('sensor.3em_pro_total_phase_b_active_power'),
             states('sensor.3em_pro_total_phase_c_active_power') ] }}
    Energy_consumption:
      friendly_name: "House Total Energy"
      unit_of_measurement: "kWh"
      state_class: measurement
      state: >
        {{ ([ states('sensor.3em_pro_total_phase_a_total_active_energy'),
              states('sensor.3em_pro_total_phase_b_total_active_energy'),
              states('sensor.3em_pro_total_phase_c_total_active_energy') ]
              | map('float') | sum) | round(2) }}
      availability: >
        {{ not 'unavailable' in
           [ states('sensor.3em_pro_total_phase_a_total_active_energy'),
             states('sensor.3em_pro_total_phase_b_total_active_energy'),
             states('sensor.3em_pro_total_phase_c_total_active_energy') ] }}


jos sulla on 3em pro niin sehän tekee total kwh (nimellä total active energy) sensorin itessään joten tuo sun koodin alempi osio on turha. 3em ei-pro:lle tuo on tarpeellinen kyllä. tarvii kun ottaa ja laittaa sinne dashboardiin...
 
jos sulla on 3em pro niin sehän tekee total kwh (nimellä total active energy) sensorin itessään joten tuo sun koodin alempi osio on turha. 3em ei-pro:lle tuo on tarpeellinen kyllä. tarvii kun ottaa ja laittaa sinne dashboardiin...
Kyllä näyttää tuon kulutetun energia mutta total poweria en sieltä löydä.
 

Statistiikka

Viestiketjuista
258 792
Viestejä
4 499 097
Jäsenet
74 283
Uusin jäsen
Maunula

Hinta.fi

Back
Ylös Bottom