• Live: io-techin pikkujoulu- ja hyväntekeväisyysstriimi tänään alkaen klo 19. Pelataan io-techin toimituksen kesken PUBGia ja tavoitteena saada 10000 euroa täyteen Pelastakaa Lapset ry:n joulukeräykseen! Tule mukaan katselemaan ja keskustelemaan! Linkki lähetykseen >>

Home Assistant - For Dummies (hass.io)

Täällä on niin paljon Shelly käyttäjiä, että kysytään. Onko noi Shelly PM releet ihan järkeviä yksinään käytettäväksi? Olen miettinyt laittaa lattialämmitykset niiden avulla jotenkin pörssisähköllä pelaaviksi, muttei jaksaisi perustaa mitään kokonaista kotiautomaatio sitä varten.
 
Täällä on niin paljon Shelly käyttäjiä, että kysytään. Onko noi Shelly PM releet ihan järkeviä yksinään käytettäväksi? Olen miettinyt laittaa lattialämmitykset niiden avulla jotenkin pörssisähköllä pelaaviksi, muttei jaksaisi perustaa mitään kokonaista kotiautomaatio sitä varten.

on mutta rinnalle kannattaa jättää fyysinen katkaisin mikä ohittaa shellyn sitten kun shelly on rikki tai automaatio ei enää toimi. plus 2pm on täällä ollu aika korkealla vikaantumisprosentilla (~30%)....sitä en voi suositella, muita kyllä.
 
Viime talvena otin käyttöön Home Assistant: Scheduling the car heater – Creating Smart Home automaation. Nyt kun tässä taas autoa ruvettu lämmittämään, niin huomasin että tuo laskettu lämmitysaika ei päivity oikein.

Tuon pitäisi 3h ennen ilmoitettua aikaa tarkastaa ulkolämpötila ja sen mukaan sitten vaihtaa lämmitysaika. Tuo 3h tarkastus kyllä lähtee, mutta se ei muuta arvoa. Aika päivittyy vain silloin kun käyn laittamassa ajastuksen pois päältä ja taas päälle. En osaa sanoa oliko tämä ongelma jo viime talvena.

Tuossa vielä koodi.

YAML:
automation:
  - id: 'car_heater_on_timer'
    alias: 'Turn on car heating timer'
    trigger:
    - entity_id: input_boolean.car_heater_enable
      from: 'off'
      platform: state
      to: 'on'
    action:
    - service: input_number.set_value
      data_template:
        entity_id: input_number.car_heater_3h_before_temp
        # CHANGE-ME: outside temperature sensor
        value: '{{ states.sensor.ruuvitag_ulko_lampotila }}'
    - event: car_heater_timer_enabled

  - id: 'car_heater_start_if_needed'
    alias: 'Turn on car heating immediately if needed'
    trigger:
    - platform: event
      event_type: car_heater_timer_enabled
    condition:
      condition: and
      conditions:
        - condition: template
          value_template: '{{ states.sensor.car_time_until_departure.state|float > 0 }}'
        - condition: template
          value_template: '{{ (states.sensor.car_heater_run_time.state|float * 60) >= states.sensor.car_time_until_departure.state|float }}'
    action:
    - service: switch.turn_on
      # CHANGE-ME: car heater power switch
      entity_id: switch.auton_lammitys

  - id: 'car_heater_push'
    alias:  'Send no car heater connected -push notification'
    description: ''
    trigger:
    - platform: state
      # CHANGE-ME: car heater power switch
      entity_id: switch.auton_lammitys
      from: 'off'
      to: 'on'
    condition: []
    action:
    # CHANGE-ME: power consumption sensor
    - wait_template: '{{ states(''sensor.auton_lammitys_power'') | float
        > 0 }}'
      timeout: 00:00:35
      continue_on_timeout: true
    - choose:
      - conditions:
        - condition: template
          value_template: '{{ not wait.completed }}'
        sequence:
          # CHANGE-ME: mobile app notification device
          - service: notify.mobile_app_niko_s22
            data:
              message: Auton lämmityskaapeli ei ole paikoillaan.!
              title: Auon lämmitys
          # CHANGE-ME: mobile app notification device
          - service: notify.mobile_app_sm_g973f
            data:
              message: Auton lämmityskaapeli ei ole paikoillaan.!
              title: Auon lämmitys
      default: []
    mode: single

  - id: 'car_heater_calculated_time'
    alias: 'Start engine heater at calculated start time'
    trigger:
    - platform: time_pattern
      minutes: "/1"
      seconds: 00
    condition:
      condition: and
      conditions:
        - condition: template
          value_template: '{{ now().time().strftime("%H:%M") == states.sensor.car_heater_start_time.state }}'
        - condition: template
          value_template: '{{ states.sensor.car_heater_run_time.state|float > 0 }}'
        - condition: state
          entity_id: input_boolean.car_heater_enable
          state: 'on'
        - condition: or
          conditions:
            - condition: state
              entity_id: input_boolean.car_heater_weekday
              state: 'off'
            - condition: time
              weekday:
                - mon
                - tue
                - wed
                - thu
                - fri
    action:
    - service: switch.turn_on
      # CHANGE-ME: car heater power switch
      entity_id: switch.auton_lammitys
  - id: 'car_heater_departure'
    alias: 'Stop engine heater at departure time'
    trigger:
    - platform: time_pattern
      minutes: "/1"
      seconds: 00
    condition:
      condition: and
      conditions:
        - condition: template
          value_template: '{{ now().time().strftime("%H:%M:%S") == states.input_datetime.car_heater_departure_time.state }}'
        - condition: template
          value_template: '{{ states.sensor.car_heater_run_time.state|float > 0 }}'
        - condition: state
          entity_id: input_boolean.car_heater_enable
          state: 'on'
        - condition: or
          conditions:
            - condition: state
              entity_id: input_boolean.car_heater_weekday
              state: 'off'
            - condition: time
              weekday:
                - mon
                - tue
                - wed
                - thu
                - fri
    action:
    - service: switch.turn_off
      # CHANGE-ME: car heater power switch
      entity_id: switch.auton_lammitys

  - id: 'car_heater_temp_sample_3h'
    alias: 'Sample temperature 3h before departure time'
    trigger:
    - platform: time_pattern
      minutes: "/1"
      seconds: 00
    condition:
      condition: and
      conditions:
        - condition: template
          value_template: '{{ now().time().strftime("%H:%M") == states.sensor.car_heater_3h_before_start_time.state }}'
        - condition: state
          entity_id: input_boolean.car_heater_enable
          state: 'on'
        - condition: or
          conditions:
            - condition: state
              entity_id: input_boolean.car_heater_weekday
              state: 'off'
            - condition: time
              weekday:
                - mon
                - tue
                - wed
                - thu
                - fri
    action:
    - service: input_number.set_value
      data_template:
        entity_id: input_number.car_heater_3h_before_temp
        # CHANGE-ME: outside temperature sensor
        value: '{{ states.states.sensor.ruuvitag_ulko_lampotila }}'

# Input sensors
input_datetime:
  car_heater_departure_time:
    name: Car heater departure time
    has_time: true
    has_date: false

input_number:
  car_heater_3h_before_temp:
    name: Sample temp
    unit_of_measurement: °C
    icon: mdi:thermometer
    min: -30
    max: 30
    step: 0.5

# Boolean sensors
input_boolean:
  car_heater_weekday:
    name: Only weekdays
    icon: mdi:calendar
  car_heater_enable:
    name: Enable car heating timer

sensor:
  - platform: template
    sensors:
      car_heater_run_time:
        friendly_name: 'Calculated run time'
        unit_of_measurement: h
        value_template: >
          {% if ((states('input_number.car_heater_3h_before_temp')|float) < 10) %}
            {% if not states('input_number.car_heater_3h_before_temp') == 'unknown' %}
              {{(states('input_number.car_heater_3h_before_temp')|float * (-0.05) + 1)|round(1)}}
            {%endif%}
          {%else%}
            0
          {%endif%}

  - platform: template
    sensors:
      car_heater_start_time:
        friendly_name: 'Calculated start time'
        icon_template: mdi:clock
        value_template: >
          {% if states.input_datetime.car_heater_departure_time.state is defined %}
            {% if ((states('sensor.car_heater_run_time')|float) > 0) %}
              {{ strptime(((as_timestamp('1970-01-01 ' ~ states('input_datetime.car_heater_departure_time')) - (states('sensor.car_heater_run_time')|float *3600))|timestamp_custom), '%Y-%m-%d %H:%M:%S').strftime("%H:%M") }}
            {%else%}
              Never
            {%endif%}
          {% else %}
              waiting for sensors
          {% endif%}
  - platform: template
    sensors:
      car_heater_3h_before_start_time:
        friendly_name: '3h before start time'
        icon_template: mdi:clock
        value_template: >
          {% if states.input_datetime.car_heater_departure_time.state is defined %}
              {{ strptime(((as_timestamp('1970-01-01 ' ~ states('input_datetime.car_heater_departure_time')) - (10800))|timestamp_custom), '%Y-%m-%d %H:%M:%S').strftime("%H:%M") }}
          {% else %}
              waiting for sensors
          {% endif%}
  - platform: template
    sensors:
      car_heater_status:
        friendly_name: 'Car heater status'
        icon_template: mdi:clock
        # CHANGE-ME: car heater power switch (note: two entrys in this block)
        value_template: >
          {% if is_state('input_boolean.car_heater_enable', 'on') %}
            {% if is_state('switch.auton_lammitys', 'on') %}
              Car heating is currently active and will be stopped at {{ states.input_datetime.car_heater_departure_time.state }}
            {% else %}
              Car heating will start approximately at {{ states.sensor.car_heater_start_time.state }} and will be stopped at {{ states.input_datetime.car_heater_departure_time.attributes.timestamp  | timestamp_custom("%H:%M", false) }}
            {% endif%}
          {% else %}
            {% if is_state('switch.auton_lammitys', 'on') %}
              Car heating is active and controlled manually!
            {% else %}
              No car heating scheduled
            {%endif %}

          {% endif%}
  - platform: template
    sensors:
      car_time_until_departure:
        friendly_name: 'time until set departure'
        icon_template: mdi:clock
        value_template: '{{ (as_timestamp(now().strftime("%Y-%m-%d ") + states.input_datetime.car_heater_departure_time.state) - as_timestamp(now().strftime("%Y-%m-%d %H:%M"))) / 60 }}'
 
Itse olen laittanut erilliset laitteet tuonne "Individual devices"
1697553055899.png


Ja sitte ne näkyy eri näkymässä:
1697553132106.png
Sulla ilmeisesti tuo HomeWizardin P1 mittari? Oletko ollut tyytyväinen? Itselle pitäisi tuollainen saapua tällä viikolla kunhan posti jaksaa ja viitsii ja kunhan siirtoyhtiö saa tuon HAN-portin avattua.
 
Viime talvena otin käyttöön Home Assistant: Scheduling the car heater – Creating Smart Home automaation. Nyt kun tässä taas autoa ruvettu lämmittämään, niin huomasin että tuo laskettu lämmitysaika ei päivity oikein.

Tuon pitäisi 3h ennen ilmoitettua aikaa tarkastaa ulkolämpötila ja sen mukaan sitten vaihtaa lämmitysaika. Tuo 3h tarkastus kyllä lähtee, mutta se ei muuta arvoa. Aika päivittyy vain silloin kun käyn laittamassa ajastuksen pois päältä ja taas päälle. En osaa sanoa oliko tämä ongelma jo viime talvena.

Tuossa vielä koodi.

YAML:
automation:
  - id: 'car_heater_on_timer'
    alias: 'Turn on car heating timer'
    trigger:
    - entity_id: input_boolean.car_heater_enable
      from: 'off'
      platform: state
      to: 'on'
    action:
    - service: input_number.set_value
      data_template:
        entity_id: input_number.car_heater_3h_before_temp
        # CHANGE-ME: outside temperature sensor
        value: '{{ states.sensor.ruuvitag_ulko_lampotila }}'
    - event: car_heater_timer_enabled

  - id: 'car_heater_start_if_needed'
    alias: 'Turn on car heating immediately if needed'
    trigger:
    - platform: event
      event_type: car_heater_timer_enabled
    condition:
      condition: and
      conditions:
        - condition: template
          value_template: '{{ states.sensor.car_time_until_departure.state|float > 0 }}'
        - condition: template
          value_template: '{{ (states.sensor.car_heater_run_time.state|float * 60) >= states.sensor.car_time_until_departure.state|float }}'
    action:
    - service: switch.turn_on
      # CHANGE-ME: car heater power switch
      entity_id: switch.auton_lammitys

  - id: 'car_heater_push'
    alias:  'Send no car heater connected -push notification'
    description: ''
    trigger:
    - platform: state
      # CHANGE-ME: car heater power switch
      entity_id: switch.auton_lammitys
      from: 'off'
      to: 'on'
    condition: []
    action:
    # CHANGE-ME: power consumption sensor
    - wait_template: '{{ states(''sensor.auton_lammitys_power'') | float
        > 0 }}'
      timeout: 00:00:35
      continue_on_timeout: true
    - choose:
      - conditions:
        - condition: template
          value_template: '{{ not wait.completed }}'
        sequence:
          # CHANGE-ME: mobile app notification device
          - service: notify.mobile_app_niko_s22
            data:
              message: Auton lämmityskaapeli ei ole paikoillaan.!
              title: Auon lämmitys
          # CHANGE-ME: mobile app notification device
          - service: notify.mobile_app_sm_g973f
            data:
              message: Auton lämmityskaapeli ei ole paikoillaan.!
              title: Auon lämmitys
      default: []
    mode: single

  - id: 'car_heater_calculated_time'
    alias: 'Start engine heater at calculated start time'
    trigger:
    - platform: time_pattern
      minutes: "/1"
      seconds: 00
    condition:
      condition: and
      conditions:
        - condition: template
          value_template: '{{ now().time().strftime("%H:%M") == states.sensor.car_heater_start_time.state }}'
        - condition: template
          value_template: '{{ states.sensor.car_heater_run_time.state|float > 0 }}'
        - condition: state
          entity_id: input_boolean.car_heater_enable
          state: 'on'
        - condition: or
          conditions:
            - condition: state
              entity_id: input_boolean.car_heater_weekday
              state: 'off'
            - condition: time
              weekday:
                - mon
                - tue
                - wed
                - thu
                - fri
    action:
    - service: switch.turn_on
      # CHANGE-ME: car heater power switch
      entity_id: switch.auton_lammitys
  - id: 'car_heater_departure'
    alias: 'Stop engine heater at departure time'
    trigger:
    - platform: time_pattern
      minutes: "/1"
      seconds: 00
    condition:
      condition: and
      conditions:
        - condition: template
          value_template: '{{ now().time().strftime("%H:%M:%S") == states.input_datetime.car_heater_departure_time.state }}'
        - condition: template
          value_template: '{{ states.sensor.car_heater_run_time.state|float > 0 }}'
        - condition: state
          entity_id: input_boolean.car_heater_enable
          state: 'on'
        - condition: or
          conditions:
            - condition: state
              entity_id: input_boolean.car_heater_weekday
              state: 'off'
            - condition: time
              weekday:
                - mon
                - tue
                - wed
                - thu
                - fri
    action:
    - service: switch.turn_off
      # CHANGE-ME: car heater power switch
      entity_id: switch.auton_lammitys

  - id: 'car_heater_temp_sample_3h'
    alias: 'Sample temperature 3h before departure time'
    trigger:
    - platform: time_pattern
      minutes: "/1"
      seconds: 00
    condition:
      condition: and
      conditions:
        - condition: template
          value_template: '{{ now().time().strftime("%H:%M") == states.sensor.car_heater_3h_before_start_time.state }}'
        - condition: state
          entity_id: input_boolean.car_heater_enable
          state: 'on'
        - condition: or
          conditions:
            - condition: state
              entity_id: input_boolean.car_heater_weekday
              state: 'off'
            - condition: time
              weekday:
                - mon
                - tue
                - wed
                - thu
                - fri
    action:
    - service: input_number.set_value
      data_template:
        entity_id: input_number.car_heater_3h_before_temp
        # CHANGE-ME: outside temperature sensor
        value: '{{ states.states.sensor.ruuvitag_ulko_lampotila }}'

# Input sensors
input_datetime:
  car_heater_departure_time:
    name: Car heater departure time
    has_time: true
    has_date: false

input_number:
  car_heater_3h_before_temp:
    name: Sample temp
    unit_of_measurement: °C
    icon: mdi:thermometer
    min: -30
    max: 30
    step: 0.5

# Boolean sensors
input_boolean:
  car_heater_weekday:
    name: Only weekdays
    icon: mdi:calendar
  car_heater_enable:
    name: Enable car heating timer

sensor:
  - platform: template
    sensors:
      car_heater_run_time:
        friendly_name: 'Calculated run time'
        unit_of_measurement: h
        value_template: >
          {% if ((states('input_number.car_heater_3h_before_temp')|float) < 10) %}
            {% if not states('input_number.car_heater_3h_before_temp') == 'unknown' %}
              {{(states('input_number.car_heater_3h_before_temp')|float * (-0.05) + 1)|round(1)}}
            {%endif%}
          {%else%}
            0
          {%endif%}

  - platform: template
    sensors:
      car_heater_start_time:
        friendly_name: 'Calculated start time'
        icon_template: mdi:clock
        value_template: >
          {% if states.input_datetime.car_heater_departure_time.state is defined %}
            {% if ((states('sensor.car_heater_run_time')|float) > 0) %}
              {{ strptime(((as_timestamp('1970-01-01 ' ~ states('input_datetime.car_heater_departure_time')) - (states('sensor.car_heater_run_time')|float *3600))|timestamp_custom), '%Y-%m-%d %H:%M:%S').strftime("%H:%M") }}
            {%else%}
              Never
            {%endif%}
          {% else %}
              waiting for sensors
          {% endif%}
  - platform: template
    sensors:
      car_heater_3h_before_start_time:
        friendly_name: '3h before start time'
        icon_template: mdi:clock
        value_template: >
          {% if states.input_datetime.car_heater_departure_time.state is defined %}
              {{ strptime(((as_timestamp('1970-01-01 ' ~ states('input_datetime.car_heater_departure_time')) - (10800))|timestamp_custom), '%Y-%m-%d %H:%M:%S').strftime("%H:%M") }}
          {% else %}
              waiting for sensors
          {% endif%}
  - platform: template
    sensors:
      car_heater_status:
        friendly_name: 'Car heater status'
        icon_template: mdi:clock
        # CHANGE-ME: car heater power switch (note: two entrys in this block)
        value_template: >
          {% if is_state('input_boolean.car_heater_enable', 'on') %}
            {% if is_state('switch.auton_lammitys', 'on') %}
              Car heating is currently active and will be stopped at {{ states.input_datetime.car_heater_departure_time.state }}
            {% else %}
              Car heating will start approximately at {{ states.sensor.car_heater_start_time.state }} and will be stopped at {{ states.input_datetime.car_heater_departure_time.attributes.timestamp  | timestamp_custom("%H:%M", false) }}
            {% endif%}
          {% else %}
            {% if is_state('switch.auton_lammitys', 'on') %}
              Car heating is active and controlled manually!
            {% else %}
              No car heating scheduled
            {%endif %}

          {% endif%}
  - platform: template
    sensors:
      car_time_until_departure:
        friendly_name: 'time until set departure'
        icon_template: mdi:clock
        value_template: '{{ (as_timestamp(now().strftime("%Y-%m-%d ") + states.input_datetime.car_heater_departure_time.state) - as_timestamp(now().strftime("%Y-%m-%d %H:%M"))) / 60 }}'


Kahdessa kohdassa olevat lämpötila-anturi tiedot ainakin testaisin(jälkimmäisessä oli vielä kirjoitusvirhe "states.states.sensor.ruuvitag_ulko_lampotila") seuraavanlaisena:

value: '{{ states.sensor.ruuvitag_ulko_lampotila.state }}'

Toinen on mikä joskus tuli vastaan, jos sulla on samassa yaml-koodissa useammassa kohdassa esimerkiksi sensor: kohta niin nämä kaikki koodissa olevat sensorit pitää kopsata sen ensimmäisen sensor:-kohdan "alle" sillä käyttää vain "ensimmäisen" sensor:-tekstin alla olevia kilkkeitä eikä noteeraa myöhempiä .

Annoin myös tuolle koodin tekijälle facessa vähän vinkkiä, että voisi tehdä koodiin sellaisen päivityksen, että alussa olisi vain suoraan kohta joihin laitetaan omat pistokkeet ja lämpöanturit josta koodi sitten kaivaisi ne oikeille paikoille ettei tarvii aina vaihtaa useaan eri paikkaan lämpöanturia ja pistoketta. Hän jäi miettimään tuota josko kerkeisi muokkaamaan koodi joskus kun on aikaa, tuo koodi oli vain nopeesti itselle kyhätty minkä laittanut jakoon sen enempiä miettimättä, että voisi sitä hieman yksinkertaistaa vaikka tämmöisille copy-paste käyttäjille kuin minä.
 
Kahdessa kohdassa olevat lämpötila-anturi tiedot ainakin testaisin(jälkimmäisessä oli vielä kirjoitusvirhe "states.states.sensor.ruuvitag_ulko_lampotila") seuraavanlaisena:

value: '{{ states.sensor.ruuvitag_ulko_lampotila.state }}'

Toinen on mikä joskus tuli vastaan, jos sulla on samassa yaml-koodissa useammassa kohdassa esimerkiksi sensor: kohta niin nämä kaikki koodissa olevat sensorit pitää kopsata sen ensimmäisen sensor:-kohdan "alle" sillä käyttää vain "ensimmäisen" sensor:-tekstin alla olevia kilkkeitä eikä noteeraa myöhempiä .

Annoin myös tuolle koodin tekijälle facessa vähän vinkkiä, että voisi tehdä koodiin sellaisen päivityksen, että alussa olisi vain suoraan kohta joihin laitetaan omat pistokkeet ja lämpöanturit josta koodi sitten kaivaisi ne oikeille paikoille ettei tarvii aina vaihtaa useaan eri paikkaan lämpöanturia ja pistoketta. Hän jäi miettimään tuota josko kerkeisi muokkaamaan koodi joskus kun on aikaa, tuo koodi oli vain nopeesti itselle kyhätty minkä laittanut jakoon sen enempiä miettimättä, että voisi sitä hieman yksinkertaistaa vaikka tämmöisille copy-paste käyttäjille kuin minä.
Kiitti vinkistä. Pitää käydä muuttamassa tuo tieto ja testata sitten toimintaa.
 
Kiitti vinkistä. Pitää käydä muuttamassa tuo tieto ja testata sitten toimintaa.

Yhden kerran saa katottua sen, että muuttuuko aloitusaika kun neppaa pois päältä ja takaisin sen ajastuksen(enable car heating timer) sillä se tarkastaa myös tuon ajan kun kytkee uudelleen päälle ko. toiminnon.
 
Yhden kerran saa katottua sen, että muuttuuko aloitusaika kun neppaa pois päältä ja takaisin sen ajastuksen(enable car heating timer) sillä se tarkastaa myös tuon ajan kun kytkee uudelleen päälle ko. toiminnon.
Joo tuohan mulla siis toimi jo, mutta mitä tässä olin testaillut, niin tuo että aikaa tarkastellaan 3h ennen haluttua lähtöaikaa ei toiminut. En tuossa päivällä jaksanut käsin ruveta muuttamaan ulkolämpötilaa uudemman kerran, niin tuossa ei muutosta tapahtunut.
 
HA:n utility meter ei näköjään selvinnyt talviaikaan siirtymisestä. Daily -syklityksellä olevat sensorit resetoituivat viime yönä klo 01 eikä 00. :shifty:
 
Mitenkä saisi päivän ylimmän ja alimman lämpötilan tallennettuu talteen pidemmältä ajalta kuin se 10pv? Haluaisin tallentaa ulkolämpötilan taltee, että voisi vaikka vuoden päästä katsoa että kuinka lämmintä oli mikäkin päivä. Ruuvitag on nyt ulkona mittaamassa lämpötilaa.
 
Mitenkä saisi päivän ylimmän ja alimman lämpötilan tallennettuu talteen pidemmältä ajalta kuin se 10pv? Haluaisin tallentaa ulkolämpötilan taltee, että voisi vaikka vuoden päästä katsoa että kuinka lämmintä oli mikäkin päivä. Ruuvitag on nyt ulkona mittaamassa lämpötilaa.
Joku aikasarjatietokanta käyttöön. InfluxDb on varmaan suosituin HA:n kanssa käytettävä (ja Grafana visualisointiin). Muistaa vaan, että ei laita niin, että sinne menee kaikki HA:n data vaan määrittää itse mitä viedään. Muuten kanta paisuu järjettömästi.
 
Mitenkä saisi päivän ylimmän ja alimman lämpötilan tallennettuu talteen pidemmältä ajalta kuin se 10pv? Haluaisin tallentaa ulkolämpötilan taltee, että voisi vaikka vuoden päästä katsoa että kuinka lämmintä oli mikäkin päivä. Ruuvitag on nyt ulkona mittaamassa lämpötilaa.
Ei tarvitse asentaa mitään, sehän tallentuu jo nyt statistics tietona. Valitse esim. statistics graph kortti niin voit valita halutun aikajakson, näytettävien päivien määrän ym.
 
Viimeksi muokattu:
Joo tuohan mulla siis toimi jo, mutta mitä tässä olin testaillut, niin tuo että aikaa tarkastellaan 3h ennen haluttua lähtöaikaa ei toiminut. En tuossa päivällä jaksanut käsin ruveta muuttamaan ulkolämpötilaa uudemman kerran, niin tuossa ei muutosta tapahtunut.
Nytpä näytti lämmitysajan vaihtuneen automaattisesti. Eli taisi tuon toisen tiedon korjaaminen auttaa.
 
Sain nyt meidän sähkömittarin HAN-portin auki ja HomeWizardin P1 mittari on nyt lisätty/tunnistettu HomeAssistantissa.

Onko vinkkejä miten tuosta saisi järkevästi kaiken irti, lähinnä tuon "energy dashboardin" kanssa. Käytössä siis pörssisähkö ja nordpoolin sensori on konffattu HA:lle:

Koodi:
sensor:
  - platform: nordpool
    VAT: true
    currency: "EUR"
    price_in_cents: false
    region: "FI"
    precision: 3
    price_type: kWh
    additional_costs: "{{ 0.0038 | float }}" // 0,38c marginaali lisäys

Tuo P1 tarjoaa tälläiset sensorit
1698859643283.png


Nuo vaihekohtaiset kulutukset tein Helperinä - Riemann sum integral sensor (menikö nämä oikein)?
1698859745907.png


Nuo saan sitten halutessani omiksi laitteiksi tuonne energy dashboardiin. Mutta mitä tuonne grid consumptioniin kannattaisi lisätä, laitanko vaan tuon "total power import" sensorin ja sille hinnan määrittelyyn tuon nordpool sensorin?
 
Viimeksi muokattu:
Sain nyt meidän sähkömittarin HAN-portin auki...

Tuo P1 tarjoaa tälläiset sensorit
1698859643283.png


Nuo vaihekohtaiset kulutukset tein Helperinä - Riemann sum integral sensor (menikö nämä oikein)?

Nuo saan sitten halutessani omiksi laitteiksi tuonne energy dashboardiin. Mutta mitä tuonne grid consumptioniin kannattaisi lisätä, laitanko vaan tuon "total power import" sensorin ja sille hinnan määrittelyyn tuon nordpool sensorin?
Saathan sä ne kulutukset muutenkin sinne omina laitteinaan suoraan ilman helpereitä, kun on jo valmiina joka vaihteelle oma mittaus.
Laitat vaan laitteeksi sen Active power phase x ja kustannuksia voit seurata vaiheittain haluamallasi sensorilla, joka antaa hintatiedot.
 
Saathan sä ne kulutukset muutenkin sinne omina laitteinaan suoraan ilman helpereitä, kun on jo valmiina joka vaihteelle oma mittaus.
Laitat vaan laitteeksi sen Active power phase x ja kustannuksia voit seurata vaiheittain haluamallasi sensorilla, joka antaa hintatiedot.
En kyllä nyt suoraan noita saanut lisättyä kun tuo haluaa ne kwh muodossa ja tuo antaa vaan W/kW muodossa nuo vaihesensorit.
 
En kyllä nyt suoraan noita saanut lisättyä kun tuo haluaa ne kwh muodossa ja tuo antaa vaan W/kW muodossa nuo vaihesensorit.
Totta joo, eihän niitä tosiaan "active_power" kulutuksella pystynyt tuonne laittamaan. Ei mennyt ihan ulkomuistista.
 
Minulla on kolme liiketunnistinta. Miten ihmeessä teen automaation että jos missään ei ole ollut liikettä 30min niin tapahtuu jotain?
nyt onnistuu vain niin että action käynnistyy jos joku on ollut 30min havaihtsematta liikettä. Pitäisi jotenkin yhdistää nuo..

Onko nyt taas liian yksinkertainen ja ajattelen hankalasti
 
Minulla on kolme liiketunnistinta. Miten ihmeessä teen automaation että jos missään ei ole ollut liikettä 30min niin tapahtuu jotain?
nyt onnistuu vain niin että action käynnistyy jos joku on ollut 30min havaihtsematta liikettä. Pitäisi jotenkin yhdistää nuo..

Onko nyt taas liian yksinkertainen ja ajattelen hankalasti

Toimisko ihan vain tällä tavalla?

Koodi:
trigger:
  - platform: state
    entity_id: tunnistin 1
    to: 'off'
    for: '00:30:00'
  - platform: state
    entity_id: tunnistin 2
    to: 'off'
    for: '00:30:00'
  - platform: state
    entity_id: tunnistin 3
    to: 'off'
    for: '00:30:00'
condition:
  - condition: state
    entity_id: tunnistin 1
    state: 'off'
    for: '00:30:00'
  - condition: state
    entity_id: tunnistin 2
    state: 'off'
    for: '00:30:00'
  - condition: state
    entity_id: tunnistin 3
    state: 'off'
    for: '00:30:00'
action:
  - tapahtuu jotain
 
  • Tykkää
Reactions: Vee
Voisi toimia. Tuolta conditioneista löytyi myös AND , sillä voisi onnistua myös. Empä hoksannut heti sieltä katsoa

Koodi:
trigger:
  - type: no_motion
    platform: device
    device_id: 789bf9d307d4c581fc732d6673eaa255
    entity_id: aad4b3a1e7a2f4a6ca352a5883953d75
    domain: binary_sensor
    for:
      hours: 0
      minutes: 30
      seconds: 0
condition:
  - condition: and
    conditions:
      - type: is_no_motion
        condition: device
        device_id: 7b7f0542cdb5288a2891aa00b122becc
        entity_id: 5781f6d920d0e3da8f3879b9391240f1
        domain: binary_sensor
        for:
          hours: 0
          minutes: 30
          seconds: 0
  - condition: and
    conditions:
      - type: is_no_motion
        condition: device
        device_id: fac3cdaba8d0096facbb0dcecde1d745
        entity_id: 302f302e1846592d8824b2dea2222e7a
        domain: binary_sensor
        for:
          hours: 0
          minutes: 30
          seconds: 0
action:
 
Miten...miksi...tämä ei toimi.

Tarkoitus on siis picture element cardissa näyttää ikoni, kun pesukone päällä (kytkin on) ja piilottaa ikoni kun pesukone pois päältä (kytkin off). Development toolsista kävin vielä tarkastamassa, että tilat ovat tosiaan "on" ja "off". Lopputulos on kuitenkin se, että kuvake möllöttää paikallaan tilasta riippumatta. Jos pesukone on päällä, niin väri muuttuu keltaiseksi ja jos pois päältä, niin siniseksi.

Vinkkejä? Chatgpt ei osannut auttaa enempää.

Koodi:
type: picture-elements
image: /local/images/3dfloorplan/Home_day.png
elements:
  - type: state-icon
    icon: mdi:dishwasher
    entity: binary_sensor.dishwasher_virtual_contact
    style:
      top: 23.5%
      left: 47%
    conditional:
      conditions:
        - entity: binary_sensor.dishwasher_virtual_contact
          state: 'off'
      styles:
        display: block
      else_styles:
        display: block

Myöskään tämä versio ei toimi:
Koodi:
type: picture-elements
image: /local/images/3dfloorplan/Home_day.png
elements:
  - type: state-icon
    icon: mdi:dishwasher
    entity: binary_sensor.dishwasher_virtual_contact
    style:
      top: 23.5%
      left: 47%
    state_filter:
      'off':
        display: block
      'on':
        display: none
 
Miten...miksi...tämä ei toimi.

Tarkoitus on siis picture element cardissa näyttää ikoni, kun pesukone päällä (kytkin on) ja piilottaa ikoni kun pesukone pois päältä (kytkin off). Development toolsista kävin vielä tarkastamassa, että tilat ovat tosiaan "on" ja "off". Lopputulos on kuitenkin se, että kuvake möllöttää paikallaan tilasta riippumatta. Jos pesukone on päällä, niin väri muuttuu keltaiseksi ja jos pois päältä, niin siniseksi.

Vinkkejä? Chatgpt ei osannut auttaa enempää.

Koodi:
type: picture-elements
image: /local/images/3dfloorplan/Home_day.png
elements:
  - type: state-icon
    icon: mdi:dishwasher
    entity: binary_sensor.dishwasher_virtual_contact
    style:
      top: 23.5%
      left: 47%
    conditional:
      conditions:
        - entity: binary_sensor.dishwasher_virtual_contact
          state: 'off'
      styles:
        display: block
      else_styles:
        display: block

Ei ole juuri tullut hassia tunkkailtua, mutta laittaisin tuohon

Koodi:
          state: 'on'
      styles:
        display: block
      else_styles:
        display: none
 
Äh joo siis toi oli tietenkin väärin logiikan kannalta, mutta tosiaan lopputulos ei muutu vaikka state onkin oikea :) Eli edelleenkään ei ikoni piiloudu.
 
Niin vaihdoitko sen "display none" myös?

Kyllä vain. Kaikki kombinaatiot kokeiltu. Mä en itse keksi mitään muuta kuin, että state-filteriä ei voi käyttää.
Laitoin vielä piruillakseni off ja on stateen uuden kuvakkeen ja se ei ikinä realisoidu käyttöön.

Koodi:
type: picture-elements
image: /local/images/3dfloorplan/Home_day.png
elements:
  - type: state-icon
    icon: mdi:dishwasher
    entity: binary_sensor.washingmachine_virtual_contact
    style:
      top: 23.5%
      left: 47%
    state_filter:
      'off':
        display: mdi:abacus
      'on':
        display: mdi:abacus
 
Tällä pitäisi toimia:


Koodi:
type: picture-elements
image: /local/images/3dfloorplan/Home_day.png
elements:
  - type: conditional
    conditions:
      - entity: binary_sensor.dishwasher_virtual_contact
        state: 'on'
    elements:
      - type: state-icon
        icon: mdi:dishwasher
        entity: binary_sensor.dishwasher_virtual_contact
        style:
          top: 23.5%
          left: 47%
 
Tällä pitäisi toimia:


Koodi:
type: picture-elements
image: /local/images/3dfloorplan/Home_day.png
elements:
  - type: conditional
    conditions:
      - entity: binary_sensor.dishwasher_virtual_contact
        state: 'on'
    elements:
      - type: state-icon
        icon: mdi:dishwasher
        entity: binary_sensor.dishwasher_virtual_contact
        style:
          top: 23.5%
          left: 47%

MVP!!!!! Todella paljon kiitoksia tästä. Mulla ei pää riittänyt ymmärtämiseen, onneksi joillain riittää.
 
Mikä on tän hetken halvin kelvollinen smart plugi joka integroituu HA:han täysin lokaalisti (ei vaadi internet-yhteyttä)? Tehonmittausta ei tarvii olla.
 
No vielä yksi tyhmä kysymys. HACS:sta hain pari uutta teemaa ja ohjeiden mukaan näiden pitäisi ilmestyä onnistuneen asennuksen jälkeen oman profiilin "theme" valikkoon valittavaksi, mutta ei tule. Theme kohtaa ei voi klikata kun on harmaana. Eli mitä en tällä kertaa ymmärrä?
1699185487624.png


Ja nämä deafultin lisäksi asennettuna:
1699185598509.png
 
No vielä yksi tyhmä kysymys. HACS:sta hain pari uutta teemaa ja ohjeiden mukaan näiden pitäisi ilmestyä onnistuneen asennuksen jälkeen oman profiilin "theme" valikkoon valittavaksi, mutta ei tule. Theme kohtaa ei voi klikata kun on harmaana. Eli mitä en tällä kertaa ymmärrä?
1699185487624.png


Ja nämä deafultin lisäksi asennettuna:
1699185598509.png
Tyhmä kysymys mutta olethan käynnistänyt HA:n uusiksi teemojen lisäämisen jälkeen? HACSin kautta lisätyt integraatiot, kortit sun muut ainakin vaativat reboottia ennenkuin toimivat, teemoja en ole itse käyttänyt joten ihan varma en ole miten ne toimivat.
 
Tyhmä kysymys mutta olethan käynnistänyt HA:n uusiksi teemojen lisäämisen jälkeen? HACSin kautta lisätyt integraatiot, kortit sun muut ainakin vaativat reboottia ennenkuin toimivat, teemoja en ole itse käyttänyt joten ihan varma en ole miten ne toimivat.
Olen joo. Ei auttanut. Mä olen siis hieman tuoreempi näissä ha jutuissa ja näemmä ihan perusjutut on vaikeimpia ymmärtää. Automaatiot onnistuu mutta teeman vaihto ei :D

EDIT: no kai tämä olisi sitten pitänyt jostain tietää. Eli configuration.yamliin piti lisätä alkuun:

frontend:
themes: !include_dir_merge_named themes
 
Viimeksi muokattu:
Pystyisikö joku auttamaan Fingridin rest api -kyselyn kanssa? Haluaisin siis hakea Fingridiltä tuulivoimaennusteen (alla olevassa esimerkissä 8h) ja piirtää siitä graafin. En vain tajua, miten samaan sensoriin saa haettua kullekin tunnille arvot kuhunkin value-attribuuttiin, nyt tulee vain ensimmäinen.

Konfiguraatio:

Koodi:
rest:
  - resource_template: "https://api.fingrid.fi/v1/variable/245/events/json?start_time={{ (now()+timedelta(hours=0)).strftime('%Y-%m-%dT%H:%M:%SZ') }}&end_time={{ (now()+timedelta(hours=8)).strftime('%Y-%m-%dT%H:%M:%SZ') }}"
    headers:
      Accept: application/json
      x-api-key: !secret fingrid_api_key
    scan_interval: 3600
    sensor:
      - name: "Fingridin tuulivoimaennuste"
        unique_id: "fingrid_api_245_wind-power-generation-forecast"
        value_template: "{{ value_json[0].value }}"
        json_attributes:
          - "value"
          - "start_time"
          - "end_time"

Se, mitä yritän hakea, on:

start_time,end_time,value
2023-11-06T15:00:00+0000,2023-11-06T16:00:00+0000,834.400000
2023-11-06T16:00:00+0000,2023-11-06T17:00:00+0000,839.900000
2023-11-06T17:00:00+0000,2023-11-06T18:00:00+0000,817.000000
2023-11-06T18:00:00+0000,2023-11-06T19:00:00+0000,752.000000
2023-11-06T19:00:00+0000,2023-11-06T20:00:00+0000,677.900000
2023-11-06T20:00:00+0000,2023-11-06T21:00:00+0000,612.800000
2023-11-06T21:00:00+0000,2023-11-06T22:00:00+0000,589.600000

Sen sijaan nyt tulee tosiaan vain ensimmäinen rivi (kts. liite).

Tässä vielä tietolähde: Tuulivoiman tuotantoennuste - päivitys tunneittain - Fingridin avoin data
 

Liitteet

  • 1699272590451.png
    1699272590451.png
    42 KB · Luettu: 25
Pystyisikö joku auttamaan Fingridin rest api -kyselyn kanssa? Haluaisin siis hakea Fingridiltä tuulivoimaennusteen (alla olevassa esimerkissä 8h) ja piirtää siitä graafin. En vain tajua, miten samaan sensoriin saa haettua kullekin tunnille arvot kuhunkin value-attribuuttiin, nyt tulee vain ensimmäinen.

Konfiguraatio:

Koodi:
rest:
  - resource_template: "https://api.fingrid.fi/v1/variable/245/events/json?start_time={{ (now()+timedelta(hours=0)).strftime('%Y-%m-%dT%H:%M:%SZ') }}&end_time={{ (now()+timedelta(hours=8)).strftime('%Y-%m-%dT%H:%M:%SZ') }}"
    headers:
      Accept: application/json
      x-api-key: !secret fingrid_api_key
    scan_interval: 3600
    sensor:
      - name: "Fingridin tuulivoimaennuste"
        unique_id: "fingrid_api_245_wind-power-generation-forecast"
        value_template: "{{ value_json[0].value }}"
        json_attributes:
          - "value"
          - "start_time"
          - "end_time"

Se, mitä yritän hakea, on:

start_time,end_time,value
2023-11-06T15:00:00+0000,2023-11-06T16:00:00+0000,834.400000
2023-11-06T16:00:00+0000,2023-11-06T17:00:00+0000,839.900000
2023-11-06T17:00:00+0000,2023-11-06T18:00:00+0000,817.000000
2023-11-06T18:00:00+0000,2023-11-06T19:00:00+0000,752.000000
2023-11-06T19:00:00+0000,2023-11-06T20:00:00+0000,677.900000
2023-11-06T20:00:00+0000,2023-11-06T21:00:00+0000,612.800000
2023-11-06T21:00:00+0000,2023-11-06T22:00:00+0000,589.600000

Sen sijaan nyt tulee tosiaan vain ensimmäinen rivi (kts. liite).

Tässä vielä tietolähde: Tuulivoiman tuotantoennuste - päivitys tunneittain - Fingridin avoin data
Ilmeisesti tuolla rest-sensorilla on vaikeuksia jos api-palauttaa datan niin, että juurielementti on array.

Tuon voi kiertää vaikka niin, että isket nuo arvot value_templateen listaksi ja piirrät ne siitä suoraan esim. apexilla tai teet template-sensorin joka jatkokäsittelee niitä.
YAML:
        value_template: >
          {% set output = namespace(value=[]) %}
          {% for v in value_json %}
              {% set output.value = output.value + [v.value] %}
          {% endfor %}
          {{ output.value | join(',') }}
 
Voisko joku vielä kouluttaa mua hieman.
Lisäsin Life360 integraation Home Assistantiin. Perus attribuutteina home/away, mutta kaikki muut attributet ovat nk. additional attributeja. Yritin ohjeita ymmärtää, että miten additional attributet otetaan yleensäkin Home Assistantissa käyttöön. GPT kertoi, että configuration.yamliin lisätään template.

- platform: template
sensors:
life360_address:
friendly_name: "Life360 Address"
value_template: "{{ state_attr('device_tracker.ID', 'address') }}"

Näin tein, ja nyt löydän kyseisen entityn entity-listalta ja sitä voi käyttää.
Nyt jos haluan lisätä muutkin perheenjäsenet samalla tavalla, ja vaikka lisätä 5kpl muita attribuutteja, niin tarkoittaako tämä aina yhtä template-lisäystä conf.yamliin per tarve.

Vai..tuleeko näitä tehdä jotenkin muuten keskitetysti, että saisin kerralla kaikkien life360 laitteiden addressit suoraan entityiksi ja käyttöön. Tuntuu siis työläätä lisätä entityjä yksitellen per laite ja per attribuutti, kun olen tottunut hubitatissa siihen, että laite paljastaa kaikki käytettävissä olevat attribuutit ja niitä voi heti käyttää rajoituksetta automaatioissa.
 
Voisko joku vielä kouluttaa mua hieman.
Lisäsin Life360 integraation Home Assistantiin. Perus attribuutteina home/away, mutta kaikki muut attributet ovat nk. additional attributeja. Yritin ohjeita ymmärtää, että miten additional attributet otetaan yleensäkin Home Assistantissa käyttöön. GPT kertoi, että configuration.yamliin lisätään template.

- platform: template
sensors:
life360_address:
friendly_name: "Life360 Address"
value_template: "{{ state_attr('device_tracker.ID', 'address') }}"

Näin tein, ja nyt löydän kyseisen entityn entity-listalta ja sitä voi käyttää.
Nyt jos haluan lisätä muutkin perheenjäsenet samalla tavalla, ja vaikka lisätä 5kpl muita attribuutteja, niin tarkoittaako tämä aina yhtä template-lisäystä conf.yamliin per tarve.

Vai..tuleeko näitä tehdä jotenkin muuten keskitetysti, että saisin kerralla kaikkien life360 laitteiden addressit suoraan entityiksi ja käyttöön. Tuntuu siis työläätä lisätä entityjä yksitellen per laite ja per attribuutti, kun olen tottunut hubitatissa siihen, että laite paljastaa kaikki käytettävissä olevat attribuutit ja niitä voi heti käyttää rajoituksetta automaatioissa.
Kyllähän ne attribuutit siellä entityn attribuuteissa on aina käytettävissä (sieltähän tuo templatekin sen hakee). Ainoa syy tehdä attribuutista oma entity on jos haluat seurata attribuutin tilaa eli triggeröidä sen muutoksen perusteella jotain tai seurata sen tilahistoriaa.
 
Kyllähän ne attribuutit siellä entityn attribuuteissa on aina käytettävissä (sieltähän tuo templatekin sen hakee). Ainoa syy tehdä attribuutista oma entity on jos haluat seurata attribuutin tilaa eli triggeröidä sen muutoksen perusteella jotain tai seurata sen tilahistoriaa.

Kun avaan life360 laitteen tiedot niin näen lisätietokentässä mm. osoitteen. Jos haluan käyttää osoitetta korttina dashboardissa niin tällaisiin tarvitsen sen erillisen rivin per laite ja per entity konfiguraatiossa eikö vain?
 
Kun avaan life360 laitteen tiedot niin näen lisätietokentässä mm. osoitteen. Jos haluan käyttää osoitetta korttina dashboardissa niin tällaisiin tarvitsen sen erillisen rivin per laite ja per entity konfiguraatiossa eikö vain?
Voi näyttää myös attribuutin
 
Voi näyttää myös attribuutin

Ei sellaista address entityä löytynyt ennen kuin ne lisäsi configiin. Sitten vasta sai kaivettua korteille tiedot. Mutta siis tuo tapa minkä yllä kuvasin on se keino millä uusia entityjä saa käyttöön ja se on siis yksittäistä manuaalista työtä. Configuration tiedosto voi siis olla jo tempojen takia pitkä kuin nälkävuosi. Kysyin tät lähinnä siksi että en nyt lähde rakentelemaan tätä assistantia väärillä ja turhan raskailla mekanismilla.
 
Ei sellaista address entityä löytynyt ennen kuin ne lisäsi configiin. Sitten vasta sai kaivettua korteille tiedot.
Tossa yllä olevassa linkissä on ohjeet miten sen attribuutin saa näkymään. Eli esim:
YAML:
  - entity: device_tracker.ID
    type: attribute
    attribute: address
    name: Attribuutin kiva nimi
Ei siis saa suoraan käyttöliittymästä, muuta kun vaihtaa kooditilaan niin onnistuu. Ei siis ole mikään pakko tehdä attribuutista entityä vain jotta sen saisi käyttöliittymässä näkymään.

Configuration tiedosto voi siis olla jo tempojen takia pitkä kuin nälkävuosi. Kysyin tät lähinnä siksi että en nyt lähde rakentelemaan tätä assistantia väärillä ja turhan raskailla mekanismilla.
Konfiguraatio kannattaa hajauttaa. Itse käytän nykyisin packages -toimintoa siten, että configin alla on packages kansio, johon teen aiheittain eri asioille oman .yaml -tiedoston. Pääkonfiguraatiossa on näitä varten vain
YAML:
homeassistant:
  packages: !include_dir_named packages
jolloin HA lukee kaikki packages-kansiossa olevat tiedostot mukaan konffiin. Huomaa, että nämä tiedostot pitää jokainen järjestellä samaan tapaan kuin ylätason konfiguraatio, eli esim. templatet pitää olla oman template: -ryhmittelyn alla.

 
Lienee jo tuhanteen kertaan kysytty, mutta jostain syystä en hakemalla vastausta löytänyt.
Tarkoituksena on siis hakea pörssisähkön hinnat tunneittain esitettävään muotoon.
Eli käytännössä samat infot, kuin Tuntihinta-sovelluksesta saa.

Näillä ohjeilla liikenteessä: ja toistaiseksi homma pelittää, graafit tulostuu ja vastaavista ratkaisuista haettu lisukkeita.

Puutteita:
- lisäkulut tuntihintoihin: myyjän marginaali ja alvit 24 % päälle
- kaavion hinnat muodossa €/kWh eli viimeistään kuvaajaan saisi kääntää luvut snt/kWh muotoon

Onko tähän heittää ideoita?
 
Viimeksi muokattu:
Lienee jo tuhanteen kertaan kysytty, mutta jostain syystä en hakemalla vastausta löytänyt.
Tarkoituksena on siis hakea pörssisähkön hinnat tunneittain esitettävään muotoon.
Eli käytännössä samat infot, kuin Tuntihinta-sovelluksesta saa.

Näillä ohjeilla liikenteessä: youtube]NFJ510uhswY ja toistaiseksi homma pelittää, graafit tulostuu ja vastaavista ratkaisuista haettu lisukkeita.

Puutteita:
- lisäkulut tuntihintoihin: myyjän marginaali ja alvit 24 % päälle
- kaavion hinnat muodossa €/kWh eli viimeistään kuvaajaan saisi kääntää luvut snt/kWh muotoon

Onko tähän heittää ideoita?

lisäkulut tuntihintoihin:
 
Mutta mitenkäs tehtäisiin kuluvan vuorokauden keskihinta tunnittaisen energiankulutuksen perusteella?
 
Auttakees taas vähän.

Lisäsin dashboardille logbook-cardin joka näyttää tapahtumia halutuista sensoreista yhdessä kokoavassa kortissa.

Koodimuodossa tällaisena nyt ja toimii:

Koodi:
type: custom:logbook-card
title: KODIN TAPAHTUMAT
history: 2
entity: sensor.notifications_virtual_device_ha_notificationtext

Todellisuudessa kortti on tämän näköinen:

1699698988811.png


Ohjeiden mukaan kortille voi tehdä vaikka ja mitä, mutta koodin kautta.
Kaksi tarvetta.
1. Poista "Unavailable" rivit. Tätä varten kuvittelen, että voisin nämä rivit poistaa käyttämällä aiemman linkin readmessa lukevaa hidden_state komentoa. Olen yrittänyt lisätä koodiin näin:
Koodi:
type: custom:logbook-card
title: KODIN TAPAHTUMAT
history: 2
entity: sensor.notifications_virtual_device_ha_notificationtext
hidden_state:
  - Unavailable

.. mutta tuloksetta. Käsitänkö tuo toiminnallisuuden nyt täysin väärin?

2. Toinen tarve on sitten duplikaattien poisto. Tästä olen täysin pihalla, eikä mitään käryä miten voisi edes edistää.

Ajatuksia?
 
Pari ajatusta tuohon ykköskohtaan.
Onko mahdollista, että se Unavailable pitää olla pienillä kirjaimilla?
Tai vaihtoehtoisesti se ei ehkä ole status lainkaan vaan sisäisesti HAssa NULL tjms, mikä vaan käyytöliittymässä näytetään Unavailable.
Oletko katsonut GitHubin Issues listan läpi, sieltä voi löytää vinkkejä tai matalalla kynnyksellä myös pyytää apua jos tuntuu ettei softa toimi niinkuin pitäisi.

Tuosta kakkoskohdan haasteesta en saa kiinni mitä haluat saavuttaa. Pitäisikö kortissa olla joku duplikaattien poisto-ominaisuus, sellaista ei ainakaan ole dokumentoitu?
 
Pari ajatusta tuohon ykköskohtaan.
Onko mahdollista, että se Unavailable pitää olla pienillä kirjaimilla?
Tai vaihtoehtoisesti se ei ehkä ole status lainkaan vaan sisäisesti HAssa NULL tjms, mikä vaan käyytöliittymässä näytetään Unavailable.
Oletko katsonut GitHubin Issues listan läpi, sieltä voi löytää vinkkejä tai matalalla kynnyksellä myös pyytää apua jos tuntuu ettei softa toimi niinkuin pitäisi.

Tuosta kakkoskohdan haasteesta en saa kiinni mitä haluat saavuttaa. Pitäisikö kortissa olla joku duplikaattien poisto-ominaisuus, sellaista ei ainakaan ole dokumentoitu?

Nerokasta! Sen piti olla pienillä kirjaimilla, joten nyt toimii. Kiitos Sinulle.

Yritän selittää tätä toista tarvetta hieman lisää. Syötteeseen tulee välillä jostain syystä duplikaatteja. Haluaisin karsia duplikaatit pois.
Home Assistantille on olemassa toinen samantyyppinen kortti:

En tykännyt kuitenkaan kortin lopputuloksesta vaan tämä nykyinen kortti on parempi. Siinä toisessa kortissa (jota en käytä) on ominaisuus:

"
remove_repeats (optional, defaults to true)
This controls whether to remove repeated states from the history (e.g. the current state is the same as the previous state). Since "unknown" states are filtered out, this will avoid an entity appearing twice because it changed from "on" to "unknown" and back again following a restart. This can be disabled by setting this to false."

Kun tuo nyt jotenkin on tehtävissä toisessa kortissa, niin yritän ymmärtää onko tämä jotain sellaista jonka minä voin jossakin muodossa kirjoittaa kortin koodiin ja duplikaatit katoaisivat pois. Ilmeisesti ei ole ihan niin simppeli juttu.
 
Rakentelin tuossa päivällä esp8266:sta ja parista ledistä pienen valaisimen. Tässä ei siis mitään muuta ihmeelistä kuin yksi lähtö mitä ohjaan ja se sytyttää ledit. Syttyy ja sammuu nätisti kun sitä ha:sta käskee, mutta välillä käy tuolleen ei ollut saatavissa ja samalla sammuttaa valot. Mitähän tälle keksisi? Uusin versio sisällä ja virran saa usb:n kautta.

1700335015989.png
 
Rakentelin tuossa päivällä esp8266:sta ja parista ledistä pienen valaisimen. Tässä ei siis mitään muuta ihmeelistä kuin yksi lähtö mitä ohjaan ja se sytyttää ledit. Syttyy ja sammuu nätisti kun sitä ha:sta käskee, mutta välillä käy tuolleen ei ollut saatavissa ja samalla sammuttaa valot. Mitähän tälle keksisi? Uusin versio sisällä ja virran saa usb:n kautta.

1700335015989.png

esphomella? kato sen logeista mitä se tekee, tai miksi se mahdollisesti reboottailee. mulla oli kerran huonolaatuinen usb-laturi, mikä sai espin kaatuilemaan.
 
esphomella? kato sen logeista mitä se tekee, tai miksi se mahdollisesti reboottailee. mulla oli kerran huonolaatuinen usb-laturi, mikä sai espin kaatuilemaan.
Joo esphomella. Pitää laittaa lokitus päälle. Ei tuo defaulttina juuri mitään taida näyttää kun laitteen lokeja katsoo.

Tällä hetkellä tuo on tosiaan switchin usb-portissa kiinni. Voihan se olla että tuo menee säännöllisen epäsäännöllisesti lepotilaan ja sitten taas herää siitä.
 
Joo esphomella. Pitää laittaa lokitus päälle. Ei tuo defaulttina juuri mitään taida näyttää kun laitteen lokeja katsoo.

Tällä hetkellä tuo on tosiaan switchin usb-portissa kiinni. Voihan se olla että tuo menee säännöllisen epäsäännöllisesti lepotilaan ja sitten taas herää siitä.
Ensimmäisenä kokeilisin jotain toista poweria, itselläkin oli jonkun wanhan kännykkälaturin kanssa jonkun ESP32:n kanssa ongelmia että kadotteli yhteyttä mutta toisella powerilla ei ollut mitään ongelmaa.
 

Statistiikka

Viestiketjuista
262 454
Viestejä
4 557 167
Jäsenet
74 966
Uusin jäsen
Hautamagi

Hinta.fi

Back
Ylös Bottom