Zliczone ilości na koniec każdego dnia tygodnia

Witam,
Mam licznik ilości kg spalonego ekogroszku, ale tylko dzienny, tygodniowy, miesięczny i roczny.

  dzienny_licznik_ekogroszku:
    source: sensor.ekogroszek
    cycle: daily
  tygodniowy_licznik_ekogroszku:
    source: sensor.ekogroszek
    cycle: weekly
  miesieczny_licznik_ekogroszku:
    source: sensor.ekogroszek
    cycle: monthly
  roczny_licznik_ekogroszku:
    source: sensor.ekogroszek
    cycle: yearly  

Jak zrobić, żeby pokazywało ilość kg na każdy dzień np tydzień czy miesiąc do tyłu?

Nie do końca chyba rozumiem ale generalnie poczytaj o history w ha może o to Tobie chodzi?

@cino111 w powstałych encjach (daily, weekly, monthly) masz atrybut “last_period” który zapisuje poprzednią wartość tj. wczorajszą, poprzedniego tygodnia, poprzedniego miesiąca itd.

miesiąc

Wyciągnij sobie ten atrybut za pomocą template i będziesz miał tego co szukasz.

W pliku sensors.yaml dokonałem takiego wpisu

     - platform: template 
            sensors:
           ekogroszek_wczoraj:
            friendly_name: 'ekogroszek wczoraj'
            unit_of_measurement: 'kg'
            value_template: '{{ sensor.dzienny_licznik_ekogroszku.attributes.last_period | float }}'

ale sensor nie działa. Pewnie coś tu źle mam wpisane.
Oryginalny sensor który zlicza mi ekogroszek to sensor.dzienny_licznik_ekogroszku

Może jeszcze raz opiszę o co mi chodzi.

mam licznik ekogroszku, który zlicza ilość spalonego ekogroszku do godziny 24:00 i zaczyna zliczać od początku.
dzienny_licznik_ekogroszku:
source: sensor.ekogroszek
cycle: daily

chcę mieć historię ile spaliłem opału w każdym dniu. Może jakiś wykres słupkowy na każdy dzień. Nie wiem jak to zrobić.

W ten sposób to nie może działać. @cino111 zakładając, że u Ciebie encja dziennego zużycia ekogroszku to “sensor.dzienny_licznik_ekogroszku” wtedy wpis “value_template” powinien wyglądać tak:

value_template: "{{ state_attr('sensor.dzienny_licznik_ekogroszku', 'last_period') }}"
1 Like

No super. Od razu ruszyło. Poczekam kilka dni i zobaczę czy jakiś sensowny wykres z tego wychodzi.

Jak do tego wpisu doadać kolejny z value_template z funkcją last_period?

  - platform: template
    sensors:
      fronius_energy_dzien_kwh:
        friendly_name: 'produkcja dzien kwh'
        unit_of_measurement: 'kWh'
        value_template: "{{ states('sensor.produkcja_dzien') | float / 1000 }}"
        icon_template: mdi:solar-power

Utworzyć kolejny sensor w template - przykład value_template masz powyżej.

@cino111 Możesz podpowiedzieć jak zamontowałeś ten czujnik i gdzie? Myślę tez o rozwiązaniu informowania mnie o zużyciu ekogroszku, miałem pomysł żeby wpiąć się w zasilanie silnika od podajnika ale wydaje mi się, że nie spełni to funkcji, ponieważ jak na ślimaku będzie większe ziarno to silnik będzie pracował z większą mocą, i wyniki już będą się różnić.

Drugim rozwiązaniem jest zrobić na ślimaku jakiś czujnik który będzie zliczał jego pełne obroty, tylko nie wiem jaki czujnik no i taką zaślepkę musiałbym wydrukować/wykombinować.

Życie by to ułatwiło okrutnie, takie informowanie!:slight_smile:

Ja mam podajnik tłokowy a nie ślimakowy, wiec u mnie prosto. Krańcówka na końcu i jak podajnik się cofa to ją nadusza.

@jar87
Można też zbudować alternatywnie pomiar ilości zużytego paliwa stałego (jeśli masz zbiornik paliwa, w którym jest to wykonalne) za pomocą:

  • czujnika odległości PIR (musiałbyś skalibrować, ale myślę, że jest to wykonalne) mierząc odległość od “sufitu” (w cudzysłowach, bo to niekoniecznie musi być sufit) do najniższego punktu leja
    Czujnik napełnienia szamba
  • za pomocą wagi (to może być trudne w warunkach kotłowni)
    Czujnik nacisku - tensometryczny/waga

Chyba najsensowniejsze rozwiązanie aczkolwiek nie chciał bym w podajnik za wiele ingerować, żeby go nie rozszczelnić. Jak dostanie “lewe” powietrze może to się źle skończyć.

Nooo, ciężko będzie:D Dosłownie ciężko :smiley:

Dlatego sufit był w cudzysłowach - montujesz czujnik PIR wewnątrz (i nie podajnika, a zbiornika paliwa).

Są tensometry nadające się do pracy pod naciskiem wielu ton (w celu pomiaru ilości zużytego paliwa należałoby ważyć zbiornik) instalacja raczej należy do mocno upierdliwych ze względu na konieczność zabezpieczenia przewodów a nie ze względu na masę.

Dobra, źle to opisałem, mając na mysli podajnik chodziło mi o zbiornik :smiley:

Czujnik PIR jest na przewody a więc gdzieś je przemieścić muszę, a tak jak pisałem, wiercić w zbiorniku nie chce, między uszczelkami nie przejdzie bo go przetnie.

tensometr montując, musiałbym podnosić zbiornik, a on “na pusto” do lekkich nie należy, dlatego ten pomysł raczej odpada:/

Kiedyś na supli opisałem jak zrobić taki czujnik na zbiornik podajnika. Czujnik ilości opału w podajniku pieca C.O. - Strona 2 - supla.org

Masz tam zdjęcie jak to zamontowałem. Już dawno supli nie używam, a czujnik ostatnio mialem na taśmocie. Jakiś tydzień temu zjarał mi sie esp i nowy zrobiłem już na esphome. Jak chces to mogę wrzucić kod.

2 Likes

Wrzuć, po to jest forum.

Forum jest po to, aby pomagać a nie uszczęśliwiać na siłę :yum:

Kod w EspHome. Dodatkowo mam podpięty przekaźnik do załączania pieca (termostat) i podpięty buzer. W Node Redzie mam ustawione, ze jak mam =<10cm opału to się załącza buzzer.

esphome:
  name: podajnik
  platform: ESP8266
  board: d1_mini

wifi:
  ssid: "xxxxxxxxx"
  password: "xxxxxxx"

# Optional manual IP
  manual_ip:
    static_ip: 192.168.1.36
    gateway: 192.168.1.1
    subnet: 255.255.255.0 
 
api:

logger:

ota:

web_server:
  port: 80

sensor:    
  - platform: wifi_signal
    name: "WiFi Signal Sensor"
    id: wifi_signal_sensor
    update_interval: 60s
    filters:
      - median:
          window_size: 5
          send_every: 5
          send_first_at: 1
    on_value:
      then:
        - lambda: |-
            id(wifi_signal_sensor).publish_state(x);

  - platform: ultrasonic
    trigger_pin: D6
    echo_pin: D7
    name: "podajnik"
    update_interval: 60s
#    pulse_time: 20us
    filters:
      - median:
          window_size: 5
          send_every: 5
          send_first_at: 1
      - lambda: return (0.86 - x) * 100; # 0.86 to glebokosc podajnika 86cm. pokazuje ile cm ekogroszku zostało w podajniku
    unit_of_measurement: "cm" # pomiar w cm 
    accuracy_decimals: 0 # zaokraglenie do 0 miejsc po przecinku
    
switch:
  - platform: gpio
    pin: D1
    name: "termostat piec"
    id: 'termostat'
    restore_mode: ALWAYS_OFF # zawsze wylaczony przy wlaczeniu zasilania
  - platform: gpio
    name: "buzzer podajnik"
    icon: mdi:campfire
    pin: D5
    id: 'buzzer'
    restore_mode: ALWAYS_OFF # zawsze wylaczony przy wlaczeniu zasilania
    inverted: true

2 Likes

Jest mało fajnych gotowych rozwiązań w ESPHome na których mogą bazować inni.