MEW-01 i Home Assistant (integracja i nie tylko) - wersja via sensor REST

Awatar użytkownika
Pan O
Posty: 38
Rejestracja: pn gru 16, 2019 9:07 pm

pn sty 04, 2021 4:58 pm

Placeholder na wątek. - cały czas jest w edycji od 4.1.21.
Zrzut ekranu 2021-01-04 190230.png
Zrzut ekranu 2021-01-04 190230.png (27.47 KiB) Przejrzano 267 razy
Na początek zainstaluj Home Assistant :-)
Instalacja jest dość intuicyjna. System bezpłatny. Świetnie wspierany i ciągle rozwijany o nowe integracje. Odpalić go można w sieci domowej nawet na malutkim raspberry albo jakiejkolwiek maszynie wirtualnej. Materiałów na Youtubie i w necie jest mnóstwo. Przykładowy [YT] Jak zainstalować Home Assistante? Instalacja hassio na raspberry pi karta SD

Oficjalna strona Home Assitant i jak zacząc (en)

Cutując Zaplanuj swój dom
.... Home Assistant został stworzony z myślą o usprawnieniu procesu projektowania systemu inteligentnego. ...Następną kwestią, która mnie przekonała to świetnie przygotowana dokumentacja.....W przeciwieństwie do Domoticza, Home Assistant po prostu wygląda świetnie. Posiada wiele integracji (juz 1725 darmowych rozszerzeń - stan na 4.1.2021), które mają znaczenie w późniejszych etapach rozwoju automatycznego domu.

W tym poście
  1. Jak zdobyć link do JSON'a z Mewki z Supla.org
  2. Jak przygotować Home Assistant (dalej HA) do wklejenia kodu
  3. Co wkleić
  4. Gdzie szukać stanów sensorów
  5. Jak używać automatyzacji
  6. MQTT i jak to ugryżć
  7. Co dalej?

1. Jak zdobyć link do JSON'a z Mewki z Supla.org
- mew podpiety pod clouda Supli
- W przeglądarce logujemy się do swojego konta na supli https://www.supla.org/pl/ i Moja Supla -> Zamel Mew-01 -> jeszcze raz w licznik -> utwórz nowy link bezpośredni (uprawnienia read)
- kopiujemy link do wykorzystania na potem bo trzeba go bedzie użyć w kodzie w HA.

Jeżeli chcesz w bardziej przystępnej formie zobaczyć co właśnie opublikowałeś w internecie to wklej w przeglądarce ten link i doklej na końcu adresu
?format=json
Link będzie wyglądać tak: https://svr3.supla.org/direct/000/xxxyy ... ormat=json i możesz sobie odświeżając podejrzeć co i jakiej strukturze jest opublikowane jako JSON. Jezeli korzystasz ze swoich skryptów to dobra okazja żeby zobaczyć co można na żywo wyciągać z Mewki via suplowe API

2. Jak przygotować Home Assistant (dalej HA) do wklejenia kodu
W Home Assistant będziemy konfigurować wiele sensorów, jeden binary_sensor i wiele automatyzacji. Żeby nie latać po wielu plikach konfiguracyjnych najwygodniej jest edytować wszystko z poziomu jednego pliku. Aby Home Assistant wiedział że ma pobrać różne rodzaje wpisów z jednego pliku YAML wystarczą dwa kroki.
1. W pliku configurations.yaml dodaj linie[*][*] (dwie spacje lub wciecie na początku!)

Kod: Zaznacz cały

	packages: !include_dir_named packages
to spowoduje ze wszytkie pliki z katalogu /packages i jego podkatalogów zostaną zmapowane do HA tak jakby wystepowały oddzielnie w sensors.yaml binary_sensor.yaml i w /automations
2. w katalogu /packages dodaj sobie plik np mew01.yaml (nazwa dowolna - wazne rozszerzenie .yaml i wklej tam zawartość kodu z dołu tego wątku - nie zapomnij podmienic na swoje link wpisu w liniii 6.
3. zrestaruj HA. Wszystkie sensory i wskazania będą dostępne w HA.

3. Co wkleić
Kod do pliku jest na końcu tego posta

4. Gdzie szukać stanów sensorów
Obejrzyj sobie czy wszystko działa. Najszybciej jak skorzystasz z lewgo menu HA -> Narzedzia deweloperskie->Stany
Jezeli nie zmienisz kodu ponizej to mozesz szybko przefiltrować sensory na podstawie np słowa "mew"
Zrzut ekranu 2021-01-04 190048.png
Zrzut ekranu 2021-01-04 190048.png (197.16 KiB) Przejrzano 267 razy
5. Jak używać automatyzacji
lorem ipsum
6. MQTT i jak to ugryżć
lorem ipsum
7. Co dalej?
lorem ipsum
---
Kod źródłowy
Kod do wklejenia do mew01.yaml w katalogu /packages (wersja rozwojowa - roboczo):

Kod: Zaznacz cały

# wersja z 2021-01-07 14:53
# Głowny sensor ktory pobiera dane z MEWki co 30 sekund. Instrukcja aktywacji linku watku powyzej

sensor:
  - platform: rest
    name: Licznik MEW REST # tu kluczowa nazwa - dzieki temu odwolania ponizej sa do sensor.licznik_mew_rest
    resource: https://svr3.supla.org/direct/600/xxxyyyyzzz/read # wklej swoj wlasny kod wg instrukcji z tego posta
    value_template: '{{ value_json.totalCost }}'
    json_attributes:
      - phases
      - connected
      - currency
      - pricePerUnit
      - support
    unit_of_measurement: 'PLN'


# na bazie tego sensora powyżej rozpoczynamy wyciąganie danych szcegołowych z MEWki i konkretnych faz plus w locie robimy sobie sumy
  - platform: template
    sensors:
      licznik_mew_faza1_totalforwardactiveenergy:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[0].totalForwardActiveEnergy }}'
        device_class: power
        unit_of_measurement: 'kWh'
      licznik_mew_faza2_totalforwardactiveenergy:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[1].totalForwardActiveEnergy }}'
        device_class: power
        unit_of_measurement: 'kWh'
      licznik_mew_faza3_totalforwardactiveenergy:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[2].totalForwardActiveEnergy }}'
        device_class: power
        unit_of_measurement: 'kWh'
      licznik_mew_faza123_totalforwardactiveenergy:
        value_template: >-
          {{ ((states.sensor.licznik_mew_faza1_totalforwardactiveenergy.state | float)
          + (states.sensor.licznik_mew_faza2_totalforwardactiveenergy.state | float) 
          + (states.sensor.licznik_mew_faza3_totalforwardactiveenergy.state | float)) | round(2)}}
        unit_of_measurement: 'kWh'
        device_class: power
        icon_template: mdi:gauge

      licznik_mew_faza1_poweractive:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[0].powerActive }}'
        device_class: power
        unit_of_measurement: 'W'
      licznik_mew_faza2_poweractive:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[1].powerActive }}'
        device_class: power
        unit_of_measurement: 'W'
      licznik_mew_faza3_poweractive:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[2].powerActive }}'
        device_class: power
        unit_of_measurement: 'W'
      licznik_mew_faza123_poweractive:
        value_template: >-
          {{ ((states.sensor.licznik_mew_faza1_poweractive.state | float)
          + (states.sensor.licznik_mew_faza2_poweractive.state | float) 
          + (states.sensor.licznik_mew_faza3_poweractive.state | float)) | round(2) }} 
        unit_of_measurement: 'W'
        device_class: power
        icon_template: mdi:gauge
      licznik_mew_faza123_poweractive_kw:
        value_template: >-
          {{ (((states.sensor.licznik_mew_faza1_poweractive.state | float)
          + (states.sensor.licznik_mew_faza2_poweractive.state | float) 
          + (states.sensor.licznik_mew_faza3_poweractive.state | float) )/1000 ) | round(2)}} 
        unit_of_measurement: 'kW'
        device_class: power
        icon_template: mdi:gauge

      licznik_mew_faza1_frequency:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[0].frequency }}'
        device_class: power
        unit_of_measurement: 'Hz'
      licznik_mew_faza2_frequency:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[1].frequency }}'
        device_class: power
        unit_of_measurement: 'Hz'
      licznik_mew_faza3_frequency:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[2].frequency }}'
        device_class: power
        unit_of_measurement: 'Hz'
        
      licznik_mew_faza1_current:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[0].current }}'
        device_class: power
        unit_of_measurement: 'A'
      licznik_mew_faza2_current:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[1].current }}'
        device_class: power
        unit_of_measurement: 'A'
      licznik_mew_faza3_current:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[2].current }}'
        device_class: power
        unit_of_measurement: 'A'

      licznik_mew_faza1_voltage:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[0].voltage }}'
        device_class: power
        unit_of_measurement: 'V'
      licznik_mew_faza2_voltage:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[1].voltage }}'
        device_class: power
        unit_of_measurement: 'V'
      licznik_mew_faza3_voltage:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[2].voltage }}'
        device_class: power
        unit_of_measurement: 'V'

      licznik_mew_faza1_powerreactive:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[0].powerReactive }}'
        device_class: power
        unit_of_measurement: 'W'
      licznik_mew_faza2_powerreactive:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[1].powerReactive }}'
        device_class: power
        unit_of_measurement: 'W'
      licznik_mew_faza3_powerreactive:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[2].powerReactive }}'
        device_class: power
        unit_of_measurement: 'W'
      licznik_mew_faza123_powerreactive:
        value_template: >-
          {{ ((states.sensor.licznik_mew_faza1_powerreactive.state | float)
          + (states.sensor.licznik_mew_faza2_powerreactive.state | float) 
          + (states.sensor.licznik_mew_faza3_powerreactive.state | float)) | round(2) }} 
        unit_of_measurement: 'W'
        device_class: power
        icon_template: mdi:gauge
      licznik_mew_faza123_powerreactive_kw:
        value_template: >-
          {{ (((states.sensor.licznik_mew_faza1_powerreactive.state | float)
          + (states.sensor.licznik_mew_faza2_powerreactive.state | float) 
          + (states.sensor.licznik_mew_faza3_powerreactive.state | float) )/1000 ) | round(2)}} 
        unit_of_measurement: 'kW'
        device_class: power
        icon_template: mdi:gauge

      licznik_mew_faza1_powerapparent:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[0].powerApparent }}'
        device_class: power
        unit_of_measurement: 'W'
      licznik_mew_faza2_powerapparent:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[1].powerApparent }}'
        device_class: power
        unit_of_measurement: 'W'
      licznik_mew_faza3_powerapparent:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[2].powerApparent }}'
        device_class: power
        unit_of_measurement: 'W'     
        
      licznik_mew_faza1_powerfactor:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[0].powerFactor }}'
        device_class: power
        unit_of_measurement: ''
      licznik_mew_faza2_powerfactor:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[1].powerFactor }}'
        device_class: power
        unit_of_measurement: ''
      licznik_mew_faza3_powerfactor:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[2].powerFactor }}'
        device_class: power
        unit_of_measurement: ''

      licznik_mew_faza1_phaseangle:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[0].phaseAngle }}'
        device_class: power
        unit_of_measurement: '°'
      licznik_mew_faza2_phaseangle:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[1].phaseAngle }}'
        device_class: power
        unit_of_measurement: '°'
      licznik_mew_faza3_phaseangle:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[2].phaseAngle }}'
        device_class: power
        unit_of_measurement: '°'

      licznik_mew_faza1_totalreverseactiveenergy:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[0].totalReverseActiveEnergy }}'
        device_class: power
        unit_of_measurement: 'kWh'
      licznik_mew_faza2_totalreverseactiveenergy:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[1].totalReverseActiveEnergy }}'
        device_class: power
        unit_of_measurement: 'kWh'
      licznik_mew_faza3_totalreverseactiveenergy:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[2].totalReverseActiveEnergy }}'
        device_class: power
        unit_of_measurement: 'kWh'
      licznik_mew_faza123_totalreverseactiveenergy:
        value_template: >-
          {{ ((states.sensor.licznik_mew_faza1_totalReverseActiveEnergy.state | float)
          + (states.sensor.licznik_mew_faza2_totalReverseActiveEnergy.state | float) 
          + (states.sensor.licznik_mew_faza3_totalReverseActiveEnergy.state | float)) | round(2)}}
        unit_of_measurement: 'kWh'
        device_class: power
        icon_template: mdi:gauge

      licznik_mew_faza1_totalforwardreactiveenergy:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[0].totalForwardReactiveEnergy }}'
        device_class: power
        unit_of_measurement: 'kWh'
      licznik_mew_faza2_totalforwardreactiveenergy:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[1].totalForwardReactiveEnergy }}'
        device_class: power
        unit_of_measurement: 'kWh'
      licznik_mew_faza3_totalforwardreactiveenergy:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[2].totalForwardReactiveEnergy }}'
        device_class: power
        unit_of_measurement: 'kWh'
      licznik_mew_faza123_totalforwardreactiveenergy:
        value_template: >-
          {{ ((states.sensor.licznik_mew_faza1_totalForwardReactiveEnergy.state | float)
          + (states.sensor.licznik_mew_faza2_totalForwardReactiveEnergy.state | float) 
          + (states.sensor.licznik_mew_faza3_totalForwardReactiveEnergy.state | float)) | round(2)}}
        unit_of_measurement: 'kWh'
        device_class: power
        icon_template: mdi:gauge

      licznik_mew_faza1_totalreversereactiveenergy:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[0].totalReverseReactiveEnergy }}'
        device_class: power
        unit_of_measurement: 'kWh'
      licznik_mew_faza2_totalreversereactiveenergy:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[1].totalReverseReactiveEnergy }}'
        device_class: power
        unit_of_measurement: 'kWh'
      licznik_mew_faza3_totalreversereactiveenergy:
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.phases[2].totalReverseReactiveEnergy }}'
        device_class: power
        unit_of_measurement: 'kWh'
      licznik_mew_faza123_totalreversereactiveenergy:
        value_template: >-
          {{ ((states.sensor.licznik_mew_faza1_totalReverseReactiveEnergy.state | float)
          + (states.sensor.licznik_mew_faza2_totalReverseReactiveEnergy.state | float) 
          + (states.sensor.licznik_mew_faza3_totalReverseReactiveEnergy.state | float)) | round(2)}}
        unit_of_measurement: 'kWh'
        device_class: power
        icon_template: mdi:gauge

#===================================
#=== rozne pomocniecze super ikonki do wuywietlania w interfejsie
#===================================
      mew01_licznik_ikona:
        value_template: >
          {{ states('sensor.licznik_mew_faza123_poweractive_kw')|float | round(2)}}
        unit_of_measurement: 'kW'
        friendly_name: "Licznik MEW01 - przyjazna ikona"
        friendly_name_template: >
          {% if states('sensor.licznik_mew_faza123_poweractive_kw')|float < 0.4 %}
          Niskie zużycie (<0.4kW)
          {% elif states('sensor.licznik_mew_faza123_poweractive_kw')|float < 1.5 %}
          średnie zużycie (0.4-1.5kW)
          {% else %}
          Wysokie zużycie (>1.5kW)
          {% endif %}        
        icon_template: >
          {% if states('sensor.licznik_mew_faza123_poweractive_kw')|float < 0.4 %}
          mdi:gauge-low
          {% elif states('sensor.licznik_mew_faza123_poweractive_kw')|float < 1.5 %}
          mdi:gauge
          {% else %}
          mdi:gauge-full
          {% endif %}
        attribute_templates:
          ttl_dzis: >
            {{states('sensor.mew01_licznik_mqtt_zuzycie_dzis')| float | round(2) }} kWh
          ttl_wczoraj: >
            {{ states('sensor.mew01_licznik_zuzycie_wczoraj_mqtt')| float | round(2)  }} kWh
          ttl_mc: >
            {{ states('sensor.mew01_licznik_mqtt_zuzycie_mc')| float | round(2)  }} kWh
          ttl_mc_last: >
            {{ states('sensor.mew01_licznik_zuzycie_poprzedni_miesiac_mqtt')| float | round(2)  }} kWh
          ttl_rok: >
            {{ states('sensor.mew01_licznik_mqtt_zuzycie_rok')| float | round(2)  }} kWh

      
      mew01_licznik_mqtt_zuzycie_dzis:
        unit_of_measurement: 'kW'
        friendly_name: "Zużycie dziś MEW01 MQTT"
        device_class: power
        entity_id:
          - sensor.mew01_licznik_koniec_dnia_stan
          - sensor.licznik_mew_faza123_totalforwardactiveenergy
        value_template: >-
          {% set koniec_dnia = states.sensor.mew01_licznik_koniec_dnia_stan.state|float %}
          {% set aktualny = states.sensor.licznik_mew_faza123_totalforwardactiveenergy.state| float %}
          {{ (aktualny - koniec_dnia )|round(2) }}

      mew01_licznik_mqtt_zuzycie_dzis_pln:
        unit_of_measurement: 'PLN'
        friendly_name: "Zużycie dziś MEW01 MQTT PLN"
        value_template: >-
          {{ ((states.sensor.licznik_mew_rest.attributes.pricePerUnit | float ) * ( states.sensor.mew01_licznik_mqtt_zuzycie_dzis.state |float )) | round(2) }}

      mew01_licznik_mqtt_zuzycie_mc:
        unit_of_measurement: 'kW'
        friendly_name: "Zużycie mc MEW01 MQTT"
        device_class: power
        entity_id:
          - sensor.mew01_licznik_koniec_mca_stan
          - sensor.licznik_mew_faza123_totalforwardactiveenergy
        value_template: >-
          {% set koniec_mca = states.sensor.mew01_licznik_koniec_mca_stan.state|float %}
          {% set aktualny = states.sensor.licznik_mew_faza123_totalforwardactiveenergy.state| float %}
          {{ (aktualny - koniec_mca )|round(0) }}
      mew01_licznik_mqtt_zuzycie_mc_pln:
        unit_of_measurement: 'PLN'
        friendly_name: "Zużycie mc MEW01 MQTT PLN"
        value_template: >-
          {{ ((states.sensor.licznik_mew_rest.attributes.pricePerUnit | float ) * ( states.sensor.mew01_licznik_mqtt_zuzycie_mc.state |float )) | round(2) }}

      mew01_licznik_mqtt_zuzycie_rok:
        unit_of_measurement: 'kW'
        friendly_name: "Zużycie rok MEW01 MQTT"
        device_class: power
        entity_id:
          - sensor.mew01_licznik_koniec_roku_stan
          - sensor.licznik_mew_faza123_totalforwardactiveenergy
        value_template: >-
          {% set koniec_roku = states.sensor.mew01_licznik_koniec_roku_stan.state|float %}
          {% set aktualny = states.sensor.licznik_mew_faza123_totalforwardactiveenergy.state| float %}
          {{ (aktualny - koniec_roku )|round(0) }}
      mew01_licznik_mqtt_zuzycie_rok_pln:
        unit_of_measurement: 'PLN'
        friendly_name: "Zużycie rok MEW01 MQTT PLN"
        value_template: >-
          {{ ((states.sensor.licznik_mew_rest.attributes.pricePerUnit | float ) * ( states.sensor.mew01_licznik_mqtt_zuzycie_rok.state |float )) | round(2) }}

  - platform: integration
    source: sensor.licznik_mew_faza123_poweractive
    name: MEW01 licznik estymacja zużycia
    unit_prefix: k
    round: 2

#===================================
#=== MQTT sensors
#===================================
  - platform: mqtt
    name: "mew01_licznik_koniec_dnia_stan"
    state_topic: "energia/mew01/dzien/stan"
    unit_of_measurement: "kWh"
    json_attributes_topic: "energia/mew01/dzien/timestamp_raportu"
  - platform: mqtt
    name: "mew01_licznik_koniec_dnia_data_raportu"
    state_topic: "energia/mew01/dzien/timestamp_raportu"
  - platform: mqtt
    name: "mew01_licznik_zuzycie_wczoraj_mqtt"
    state_topic: "energia/mew01/dzien/wczoraj/stan"
    unit_of_measurement: "kWh"

  - platform: mqtt    
    name: "mew01_licznik_koniec_mca_stan"
    state_topic: "energia/mew01/mc/stan"
    unit_of_measurement: "kWh"
    json_attributes_topic: "energia/mew01/mc/timestamp_raportu"      
  - platform: mqtt
    name: "mew01_licznik_koniec_mca_data_raportu"
    state_topic: "energia/mew01/mc/timestamp_raportu"
  - platform: mqtt
    name: "mew01_licznik_zuzycie_poprzedni_miesiac_mqtt"
    state_topic: "energia/mew01/mc/poprzedni/stan"
    unit_of_measurement: "kWh"      
      
  - platform: mqtt    
    name: "mew01_licznik_koniec_roku_stan"
    state_topic: "energia/mew01/rok/stan"
    unit_of_measurement: "kWh"
    json_attributes_topic: "energia/mew01/rok/timestamp_raportu"      
  - platform: mqtt
    name: "mew01_licznik_koniec_roku_data_raportu"
    state_topic: "energia/mew01/rok/timestamp_raportu"            
      
#===================================
#=== sensor ze statusem MEWki (stan off/on jezeli rozłaczony/połaczony)
#===================================      
binary_sensor:
  - platform: template
    sensors:
      licznik_mew_status:
        friendly_name: "Licznik MEW01 status"
        value_template: '{{ states.sensor.licznik_mew_rest.attributes.connected }}'

#===================================
#=== zabawy z licznikiem - nie uzywac produkcyjnie bo restarty moga zaburzac jego wskazania
#===================================
utility_meter:
  licznik_mew_dziennie_kwh:
    source: sensor.licznik_mew_faza123_totalforwardactiveenergy
    cycle: daily
  licznik_mew_miesiac_kwh:
    source: sensor.licznik_mew_faza123_totalforwardactiveenergy
    cycle: monthly
  licznik_mew_rok_kwh:
    source: sensor.licznik_mew_faza123_totalforwardactiveenergy
    cycle: yearly

  licznik_mew_dziennie_pln:
    source: sensor.licznik_mew_rest
    cycle: daily
  licznik_mew_miesiac_pln:
    source: sensor.licznik_mew_rest
    cycle: monthly
  licznik_mew_rok_pln:
    source: sensor.licznik_mew_rest
    cycle: yearly

automation:
  - id: "Broadcast Licznik MEW01 stan na koniec dnia MQTT"
    alias: 'Broadcast Licznik MEW01 stan na koniec dnia MQTT'
    trigger:
      - platform: time
        at: "23:59:00"
    action:
      - service: mqtt.publish
        data_template:
          payload_template: '{{ states.sensor.licznik_mew_faza123_totalforwardactiveenergy.state | round(2) | float }}'
          topic: 'energia/mew01/dzien/stan'
          retain: true
      - service: mqtt.publish
        data_template:
          payload_template: '{{ now() }}'
          # payload_template: "{\"Status\":\"off\", \"Data\":{{ now() }}}"
          topic: 'energia/mew01/dzien/timestamp_raportu'
          retain: true
  - id: "Broadcast Licznik MEW01 zuzycie na koniec dnia MQTT"
    alias: 'Broadcast Licznik MEW01 zuzycie na koniec dnia MQTT'
    trigger:
      - platform: time
        at: "23:58:00"
    action:
      - service: mqtt.publish
        data_template:
          payload_template: '{{ states.sensor.mew01_licznik_mqtt_zuzycie_dzis.state | round(2) | float }}'
          topic: 'energia/mew01/dzien/wczoraj/stan'
          retain: true
      - service: mqtt.publish
        data_template:
          payload_template: '{{ now() }}'
          # payload_template: "{\"Status\":\"off\", \"Data\":{{ now() }}}"
          topic: 'energia/mew01/dzien/wczoraj/timestamp_raportu'
          retain: true

  - id: "Broadcast Licznik MEW01 stan na koniec mca MQTT"
    alias: 'Broadcast Licznik MEW01 stan na koniec mca MQTT'
    trigger:
      - platform: time
        at: "00:01:00"
    condition:
      condition: template
        # Change the number here to get whatever day of the month you want.
      value_template: "{{ now().day == 1 }}"
    action:
      - service: mqtt.publish
        data_template:
          payload_template: '{{ states.sensor.licznik_mew_faza123_totalforwardactiveenergy.state | round(2) | float }}'
          topic: 'energia/mew01/mc/stan'
          retain: true
      - service: mqtt.publish
        data_template:
          payload_template: '{{ now() }}'
          topic: 'energia/mew01/mc/timestamp_raportu'
          retain: true

  - id: "Broadcast Licznik MEW01 zuzycie na koniec mca MQTT"
    alias: 'Broadcast Licznik MEW01 zuzycie na koniec mca MQTT'
    trigger:
      - platform: time
        at: "00:00:09"
    condition:
      condition: template
        # Change the number here to get whatever day of the month you want.
      value_template: "{{ now().day == 1 }}"
    action:
      - service: mqtt.publish
        data_template:
          payload_template: '{{ sensor.mew01_licznik_mqtt_zuzycie_mc.state | round(2) | float }}'
          topic: 'energia/mew01/mc/poprzedni/stan'
          retain: true
      - service: mqtt.publish
        data_template:
          payload_template: '{{ now() }}'
          topic: 'energia/mew01/mc/poprzedni/timestamp_raportu'
          retain: true

  - id: "Broadcast Licznik MEW01 stan na koniec roku MQTT"
    alias: 'Broadcast Licznik MEW01 stan na koniec roku MQTT'
    trigger:
      - platform: time
        at: "00:01:00"
    condition:
      condition: template
        # Change the number here to get whatever day of the year you want.
      value_template: "{{ now().timetuple().tm_yday == 1 }}"
    action:
      - service: mqtt.publish
        data_template:
          payload_template: '{{ states.sensor.licznik_mew_faza123_totalforwardactiveenergy.state | round(2) | float }}'
          topic: 'energia/mew01/rok/stan'
          retain: true
      - service: mqtt.publish
        data_template:
          payload_template: '{{ now() }}'
          topic: 'energia/mew01/rok/timestamp_raportu'
          retain: true

# przyklad powiadomienia jak wypadnie MEW z sieci i Ha nie bedzie go widział

  - id: mew_push_licznik
    alias: push MEW-01
    trigger:
    - entity_id: binary_sensor.licznik_mew_status
      platform: state
    condition:
    - condition: template
      value_template: '{% if trigger.from_state and trigger.to_state %} true {% else
        %} false {% endif %}'
    - condition: template
      value_template: '{% if trigger.from_state.state == ''unavailable'' %} false {% else
        %} true {% endif %}'
    - condition: template
      value_template: '{% if trigger.to_state.state == ''unavailable'' %} false {% else
        %} true {% endif %}'
    - condition: template
      value_template: '{{ trigger.from_state.state != trigger.to_state.state }}'
    action:
    - data_template:
        message: 'Licznik MEW-01 /zmiana z {{ trigger.from_state.state }} na {{ trigger.to_state.state }}' 
        title: 'Licznik MEW-01 teraz: {{trigger.to_state.state}}'
      service: notify.notify # tutaj sparwdz sobie jakie masz uslugi podlaczone do powiadomień (Narzedzia developerskie->usługi -> usługa "notify."i pokaze aktywne)
Ostatnio zmieniony czw sty 07, 2021 1:54 pm przez Pan O, łącznie zmieniany 11 razy.
Awatar użytkownika
Pan O
Posty: 38
Rejestracja: pn gru 16, 2019 9:07 pm

pn sty 04, 2021 4:59 pm

Placeholder na wątek. - cały czas jest w edycji od 4.1.21.
Placeholder na pokazanie MEW-01 w interfejsie
Zrzut ekranu 2021-01-04 191107.png
Zrzut ekranu 2021-01-04 191107.png (30.51 KiB) Przejrzano 263 razy
Czyli jak wycignąc i zwizualizować dane w Lovelace

Kod: Zaznacz cały

Więcej wkrótce
Ostatnio zmieniony pn sty 04, 2021 9:31 pm przez Pan O, łącznie zmieniany 2 razy.
Awatar użytkownika
Pan O
Posty: 38
Rejestracja: pn gru 16, 2019 9:07 pm

pn sty 04, 2021 5:00 pm

Placeholder na wątek. - cały czas jest w edycji od 4.1.21.
Placeholder na pokazanie MEW-01 w Grafanie
Zrzut ekranu 2021-01-04 190831.png
Zrzut ekranu 2021-01-04 190831.png (296.24 KiB) Przejrzano 266 razy
Czyli jak wycignąc i zwizualizować dane w Grafanie via influxDB poprzez dodatki Home Assitant

Kod: Zaznacz cały

Więcej wkrótce
Ostatnio zmieniony pn sty 04, 2021 9:31 pm przez Pan O, łącznie zmieniany 3 razy.
Awatar użytkownika
Pan O
Posty: 38
Rejestracja: pn gru 16, 2019 9:07 pm

pn sty 04, 2021 5:01 pm

Placeholder na wątek. - cały czas jest w edycji od 4.1.21.
Placeholder na powiadomienia z MEW
Zrzut ekranu 2021-01-04 191414.png
Zrzut ekranu 2021-01-04 191414.png (125.68 KiB) Przejrzano 260 razy
Czyli jak powiadamiać o swoim żyżyciu via Home Assistant i lub Grafane.

Kod: Zaznacz cały

Więcej wkrótce
Ostatnio zmieniony pn sty 04, 2021 9:31 pm przez Pan O, łącznie zmieniany 3 razy.
Awatar użytkownika
Pan O
Posty: 38
Rejestracja: pn gru 16, 2019 9:07 pm

pn sty 04, 2021 5:05 pm

Placeholder na wątek. - cały czas jest w edycji od 4.1.21.
Placeholder na trivia z MEW-01+HA

czyli np jak sobie zrobić własne liczenie zuzycia w Home Assistant dla
"The Riemann sum is an approximation of an integral by a finite sum. The integration sensors is updated upon changes of the source. Fast sampling source sensors provide better results. In this implementation, the default is the Trapezoidal method, but Left and Right methods"
i cos co może urodzi sie w trakcie.

Kod: Zaznacz cały

Więcej wkrótce
Ostatnio zmieniony pn sty 04, 2021 9:31 pm przez Pan O, łącznie zmieniany 2 razy.
Awatar użytkownika
pzygmunt
Posty: 10047
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontaktowanie:

pn sty 04, 2021 6:08 pm

Ten tutorial w dużej części będzie wkrótce nieaktualny. Cloud będzie miał na pokładzie mqtt broker wraz z obsługę Home Assistant MQTT Discovery.
Awatar użytkownika
Pan O
Posty: 38
Rejestracja: pn gru 16, 2019 9:07 pm

pn sty 04, 2021 6:19 pm

pzygmunt pisze:
pn sty 04, 2021 6:08 pm
Ten tutorial w dużej części będzie wkrótce nieaktualny. Cloud będzie miał na pokładzie mqtt broker wraz z obsługę Home Assistant MQTT Discovery.
EXTRA - ale kawałki z automatyzacją dziennych stanów i sposoby wizualizacji danych w grafanie pewnie sie nie zdeakatulizują.

Macie gdzies wstepna dokumentacje co bedzię rozponawane w via Discovery? które sesnory się wystawią? planujecie trzymanie statusów historycznych w MQTT?

Ale dobry news - fajnie że nie trzeba będzie kombinowac naokoło z przerzucaniem rzeczy restem do HA i czesci via HA do MQTT
Awatar użytkownika
Pan O
Posty: 38
Rejestracja: pn gru 16, 2019 9:07 pm

pn sty 04, 2021 6:20 pm

pzygmunt pisze:
pn sty 04, 2021 6:08 pm
Ten tutorial w dużej części będzie wkrótce nieaktualny. Cloud będzie miał na pokładzie mqtt broker wraz z obsługę Home Assistant MQTT Discovery.
no i pytanie co znaczy wkrótce? Bo nie wiem czy jest sens żebym się z tym tutorialem produkował zanadto...
Awatar użytkownika
pzygmunt
Posty: 10047
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontaktowanie:

pn sty 04, 2021 6:42 pm

W tym tygodniu trafi do testów na beta-cloud.supla.org
Awatar użytkownika
Pan O
Posty: 38
Rejestracja: pn gru 16, 2019 9:07 pm

pn sty 04, 2021 6:52 pm

pzygmunt pisze:
pn sty 04, 2021 6:42 pm
W tym tygodniu trafi do testów na beta-cloud.supla.org
Do takich testów trzeba się zapisać? Jak można tam się wbić?
ODPOWIEDZ

Wróć do „ZAMEL MEW-01”