Licznik Gazu SONOFF SNZB-04 Zigbee

@aTomek Powiem Ci tak, ja ostatecznie po konsultacji z Panem z PSG i opisaniem mu, iż chcę sobie zliczać impulsy z licznika dla swoich potrzeb przez dedykowany impulsator, powiedział, że nie mogę się wewnątrz skrzynki przewiercić do pomieszczenia takie przepisy.

Ale mogę to zrobić, jeżeli wyjdę przewodem poza obrys skrzynki 1mb i wtedy się przebiję.

Co do tego: Separator dwustanowy SBEx-1 nie wspomniał słowem, mam udokumentować prace podłączyć, podesłać zdjęcia on to zobaczy, jak coś podjedzie i zerknie.
Nie ma co gdybać tylko dowiadywać się w każdym przypadku indywidualnie.

A tak swoją drogą czy mógłby ktoś pomóc jak uzyskać taką kartę? Żeby 3 encje wrzucić w jednej linii jak np. przy zużyciu godzinowym, dziennym itp. ?

8129ce52feb21437a58d6f8c43ea7fcada23ae94

1 polubienie

Na moje oko to jest multiple-entity-row, czyli plugin do Loveace, znajdziesz w HACS

type: entities
entities:
  - entity: switch.pralka_2
    type: custom:multiple-entity-row
    name: null
    toggle: true
    icon: mdi:washing-machine
    state_color: true
    entities:
      - entity: sensor.pralka_energy_power_2
        name: Power
      - entity: sensor.pralka_energy_today_2
        name: Dzisiaj
      - entity: sensor.pralka_energy_yesterday_2
        name: Wczoraj
    secondary_info: last-changed
  - entity: switch.zmywarka_2
    type: custom:multiple-entity-row
    name: null
    toggle: true
    state_color: true
    icon: mdi:dishwasher
    entities:
      - entity: sensor.zmywarka_energy_power_2
        name: Power
      - entity: sensor.zmywarka_energy_today_2
        name: Dzisiaj
      - entity: sensor.zmywarka_energy_yesterday_2
        name: Wczoraj
    secondary_info: last-changed
  - entity: switch.kociol
    type: custom:multiple-entity-row
    name: null
    toggle: true
    state_color: true
    icon: mdi:gas-burner
    entities:
      - entity: sensor.kociol_energy_power
        name: Power
      - entity: sensor.kociol_energy_today
        name: Dzisiaj
      - entity: sensor.kociol_energy_yesterday
        name: Wczoraj
    secondary_info: last-changed
  - entity: switch.lodowki_garaz
    type: custom:multiple-entity-row
    name: null
    toggle: true
    state_color: true
    icon: mdi:fridge
    entities:
      - entity: sensor.lodowki_garaz_energy_power
        name: Power
      - entity: sensor.lodowki_garaz_energy_today
        name: Dzisiaj
      - entity: sensor.lodowki_garaz_energy_yesterday
        name: Wczoraj
    secondary_info: last-changed
  - entity: switch.lodowka_kuchnia_2
    type: custom:multiple-entity-row
    name: null
    toggle: true
    state_color: true
    icon: mdi:fridge
    entities:
      - entity: sensor.lodowka_kuchnia_energy_power_2
        name: Power
      - entity: sensor.lodowka_kuchnia_energy_today_2
        name: Dzisiaj
      - entity: sensor.lodowka_kuchnia_energy_yesterday_2
        name: Wczoraj
    secondary_info: last-changed
  - entity: switch.lodowka_indesit
    type: custom:multiple-entity-row
    name: null
    toggle: true
    state_color: true
    icon: mdi:fridge
    entities:
      - entity: sensor.lodowka_indesit_energy_power
        name: Power
      - entity: sensor.lodowka_indesit_energy_today
        name: Dzisiaj
      - entity: sensor.lodowka_indesit_energy_yesterday
        name: Wczoraj
    secondary_info: last-changed
  - entity: switch.lodowka_amica
    type: custom:multiple-entity-row
    name: null
    toggle: true
    state_color: true
    icon: mdi:fridge
    entities:
      - entity: sensor.lodowka_amica_energy_power
        name: Power
      - entity: sensor.lodowka_amica_energy_today
        name: Dzisiaj
      - entity: sensor.lodowka_amica_energy_yesterday
        name: Wczoraj
    secondary_info: last-changed
  - entity: switch.zamrazarka
    type: custom:multiple-entity-row
    name: null
    toggle: true
    state_color: true
    icon: mdi:snowflake
    entities:
      - entity: sensor.zamrazarka_energy_power
        name: Power
      - entity: sensor.zamrazarka_energy_today
        name: Dzisiaj
      - entity: sensor.zamrazarka_energy_yesterday
        name: Wczoraj
    secondary_info: last-changed
  - entity: switch.suszarka
    type: custom:multiple-entity-row
    name: null
    toggle: true
    state_color: true
    icon: mdi:washing-machine
    entities:
      - entity: sensor.suszarka_energy_power
        name: Power
      - entity: sensor.suszarka_energy_today
        name: Dzisiaj
      - entity: sensor.suszarka_energy_yesterday
        name: Wczoraj
    secondary_info: last-changed

aqwq

Tak to jest to :slight_smile: Dziękuję.

Zastanawiam się tylko w jaki sposób ukryć jednostki? nie mogę namierzyć tego parametru.

Nie możesz namierzyć, bo nie ma takiego parametru.
Jeśli chcesz ukryć jednostki to np. stwórz nowe encje bez jednostki za pomocą template.

OK, dłubałem i wydłubałem :stuck_out_tongue:
Jest taki parametr jak:

unit: false

Tak wyglądają moje wypociny :smiley:
Dodałem jeszcze pogrubienie tylko dla wartości encji.

licznik_3388

elements:
  - entity: sensor.gas_0
    tap_action:
      action: none
    style:
      color: white
      font-size: 180%
      font-family: Roboto
      left: 28.5%
      top: 66%
    type: state-label
  - entity: sensor.gas_1
    tap_action:
      action: none
    style:
      color: white
      font-size: 180%
      font-family: Roboto
      left: 35.4%
      top: 66%
    type: state-label
  - entity: sensor.gas_2
    tap_action:
      action: none
    style:
      color: white
      font-size: 180%
      font-family: Roboto
      left: 42%
      top: 66%
    type: state-label
  - entity: sensor.gas_3
    tap_action:
      action: none
    style:
      color: white
      font-size: 180%
      font-family: Roboto
      left: 49%
      top: 66%
    type: state-label
  - entity: sensor.gas_4
    tap_action:
      action: none
    style:
      color: white
      font-size: 170%
      font-family: Roboto
      left: 60%
      top: 66%
    type: state-label
  - entity: sensor.gas_5
    tap_action:
      action: none
    style:
      color: white
      font-size: 170%
      font-family: Roboto
      left: 67%
      top: 66%
    type: state-label
image: /local/icons/licznik_338.png
show_header_toggle: false
type: picture-elements
panel: true

1 polubienie

Czy mógłby mi ktoś pomóc w rozwiązaniu dwóch problemów a mianowicie:

  1. Jak wykasować (zresetować) wartości dla godzinnych odczytów, dziennych odczytów itd… Nie mogę sobie z tym poradzić. Wartości pozostałe po testach. Na obrazku aktualne wskazanie licznika.

  2. Jaka zaokrąglić wartości w PLN ?

Bardzo proszę o pomoc.

round(2)
  - platform: template
    sensors:
      gas_m3_na_kwh:
        value_template: "{{ (states('sensor.gas_daily') | float(0) * (states('input_number.gas_przelicznik_m3_kwh') | float(0) ))  | round(3) }}"
        unit_of_measurement: "kWh"
        device_class: "energy"

W utility meter służy do tego usługa:

utility_meter.calibrate
1 polubienie

Ok, ale ja pobieram bezpośrednio stąd te wyniki. W ten sposób muszę robić nowe sensory ?

2022-11-27 13_36_34-Studio Code Server – Home Assistant

A sensor —> sensor.gas_meter_cost

Jeśli chcesz tylko aby na karcie wyświetlały Ci się zaokrąglone wyniki to karta multiple-entity-row posiada możliwość formatowania wyświetlanych wyników. W tym przypadku jest to parametr:

format: precision1

1 - w powyższym przykładzie zaokrągli Ci wynik do jednego miejsca po przecinku.

Witam, mam taki problem, nie widać w karcie energy odczytów? Poniżej wrzucam jak to u mnie wygląda:

2022-12-01 06_57_40-Studio Code Server – Home Assistant

Wit czy ktoś wie jakiej fotodiody należy użyć aby czytało diodę licznika prądu? Użyłem diody 940nm i czyta tylko diodę ekspresu od kawy a licznika nie chce.
Parametry
Średnica diody LED: 5mm Długość fali: 940nm Napięcie kolektor-emiter: 30V Kąt widzenia: 20° Soczewka diody: przeźroczysta Producent: LITEON

Znalazłem powinno być do 720nm powyżej już jest światło niewidzialne które dioda 940nm widzi którego my nie widzimy.Poprostu nie widzi czerwonej diody w liczniku

Tak, do portu kontrolnego (czerwonej LED) potrzebujesz diody z zakresem światła widzialnego.
Tylko dedykowany port komunikacyjny pracuje w podczerwieni (ten z okrągłą blachą wokół soczewki).

Znalazłem chyba ten powinien działać

Jeszcze taki znalazłem podobno wykrywa światło widzialne i IR

Już zgłupiałem czy to ma być fotodioda czy Fotorezystor czy fototranzystor który będzie właściwy czy ktoś może mi podpowiedzieć?

OK, jako, że robiłem integrację wczoraj na aktualnym HA i to co powyżej nie do końca już ma się do rzeczywistości postaram się poniżej dać pełną solucję w 1 poście.
Pozwolenie od PGE to 2 dni czekania - jeden mail z uzasadnieniem czemu chcemy wpiąć i informacją, że nie naruszymy plomby - za 2 dni odpowiedź ze zgodą + pozwolenie na podpięcie samemu.

teraz od strony HA:
W configuration.yaml dodajemy wpisy:

input_number: !include input_number.yaml
template: !include template.yaml

Jeśli już je mamy to uzupełniamy danymi jak poniżej:
w pliku input_number.yaml deklarujemy

gas_meter_m3:
  name: Odczyt gazu
  min: 0
  max: 999999
  step: 0.01
  unit_of_measurement: m³
  mode: box

gas_m3_to_kwh_conversion_rate:
  name: Współczynnik konwersji gazu
  min: 0
  max: 999999
  step: 0.001
  unit_of_measurement: m³/kWh
  mode: box

gas_kwh_price:
  name: Cena 1 kWh gazu (netto)
  min: 0
  max: 100
  step: 0.00001
  unit_of_measurement: PLN/kWh
  mode: box

są to kolejno: wkazanie teraźniejsze gazu, współczynnik konwersji m3 na kWh z faktury, cena 1kWh z faktury
W pliku template.yaml deklarujemy:

- unique_id: gas
  sensor:
  - name: "Zużycie gazu - m³"
    unique_id: "usage_m3"
    state: "{{ states('input_number.gas_meter_m3') | float(0) | round(2) }}"
    unit_of_measurement: "m³"
    icon: "mdi:fire"
    device_class: gas
    state_class: total_increasing

  - name: "Zużycie gazu - kWh"
    unique_id: "usage_kwh"
    state: "{{ (states('input_number.gas_meter_m3') | float(0) * ( states('input_number.gas_m3_to_kwh_conversion_rate') | float(0) )) | round(3) }}"
    unit_of_measurement: "kWh"
    icon: "mdi:fire"
    device_class: energy
    state_class: total_increasing

zużycie gazu w m3 i kWh jako sensor template zgodne z Energy Dashboard.
Przeładowujemy konfigurację i ustawiamy wartości w input_number (cenę, współczynnik, teraźniejsze wskazanie gazomierza).

W Ustawienia -> Automatyzacje tworzymy automatyzację:

alias: Dodaj do odczytu gazu
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.miernik_gazu_contact
    from: "on"
    to: "off"
condition: []
action:
  - service: input_number.set_value
    data:
      value: "{{ (states.input_number.gas_meter_m3.state | float) + 0.01 }}"
    target:
      entity_id: input_number.gas_meter_m3
mode: single

Gdzie binary_sensor.miernik_gazu_contact to nasz SNZB-04.

Opcjonalnie w Ustawienia → Urządzenia i usługi → Pomocnicy tworzymy liczniki mediów dziennie, tygodniowo, miesięcznie, rocznie podając jako Sensor wejściowy sensor.template_gas_usage_kwh i ustawiając odpowiedni cykl resetowania licznika.

W Ustawienia → Dashboardy → Energia w sekcji Zużycie gazu dodajemy źródło gazu sensor.template_gas_usage_kwh oraz zaznaczamy Użyj encji z bieżącą ceną gdzie ustawiamy input_number.gas_kwh_price.

Wszystko działa.

Opcjonalnie zamiast powyższych konfiguracji wersja do packages:

input_number:
  gas_meter_m3:
    name: Odczyt gazu
    min: 0
    max: 999999
    step: 0.01
    unit_of_measurement: m³
    mode: box

  gas_m3_to_kwh_conversion_rate:
    name: Współczynnik konwersji gazu
    min: 0
    max: 999999
    step: 0.001
    unit_of_measurement: m³/kWh
    mode: box

  gas_kwh_price:
    name: Cena 1 kWh gazu (netto)
    min: 0
    max: 100
    step: 0.00001
    unit_of_measurement: PLN/kWh
    mode: box

template:
  - unique_id: gas
    sensor:
      - name: "Zużycie gazu - m³"
        unique_id: "usage_m3"
        state: "{{ states('input_number.gas_meter_m3') | float(0) | round(2) }}"
        unit_of_measurement: "m³"
        icon: "mdi:fire"
        device_class: gas
        state_class: total_increasing

      - name: "Zużycie gazu - kWh"
        unique_id: "usage_kwh"
        state: "{{ (states('input_number.gas_meter_m3') | float(0) * ( states('input_number.gas_m3_to_kwh_conversion_rate') | float(0) )) | round(3) }}"
        unit_of_measurement: "kWh"
        icon: "mdi:fire"
        device_class: energy
        state_class: total_increasing

[EDIT]
Uważajcie na input_number.increase w automatyzacji - niestety co jakiś czas z kapelusza dodaje niepełny step (w moim przypadku 0.01), przez co widzimy dziwne cyferki typu 3.459999999999 zamiast 3.46. Poprawiona automatyzacja już wklejona na górze.

5 polubień

Podpowiedz proszę dlaczego taki zapis - unique_id: gas

przecież każdy z sensorów ma już swoje unique_id

 unique_id: "usage_kwh"

 unique_id: "usage_m3"

W ten sposób wynikowy id powinien być gas_usage_xxx, jak pamiętam wg dokumentacji. Na poziomie wyższym masz samo gas a na niższych usage_xxx

1 polubienie

czy ktoś używa tego z licznikiem INTERGAZ BK-G4M ???

nie czyta impulsów