SP111 i dashboard energii

Cześć,
czy jest możliwe dodanie SP111 w wersji soft oryginalnej do dashboardu zarządzania energia?
Mam zliczanie zrealizowane poprzez sensory,ale chciałbym aby zużycie pokazywało się wraz z innymi gniazdami (na zigbee) w panelu energii

Jeśli encje nie mają odpowiednich device_class i state_class (dodałem tagi do wątku, to przejrzyj tak samo otagowane inne wątki).

Dokumentacja:
https://developers.home-assistant.io/docs/core/entity/sensor/#available-device-classes
https://developers.home-assistant.io/docs/core/entity/sensor/#available-state-classes

To wyjścia są 2:

  1. modyfikacja encji w customize.yaml coś w tym guście (uzupełniasz tylko to czego brakuje w natywnej integracji, w przykładzie dodałem dostosowania “na full”):
sensor.jakas_encja_moc:
  device_class: power
  state_class: measurement
sensor.jakas_encja_napiecie:
  device_class: voltage
  state_class: measurement
  unit_of_measurement: "V" # to dodałem tylko jako przykład jednostki
sensor.jakas_encja_prad:
  device_class: current
  state_class: measurement
sensor.jakas_encja_energia:
  device_class: energy
  state_class: total_increasing

plik customize.yaml musi być załączony w configuration.yaml w taki sposób:

homeassistant:
  customize: !include customize.yaml

(UWAGA jednostkę dodałem przykładowo dla napięcia, ale jakoś nie mogę uwierzyć, że jakakolwiek integracja zwraca nieprawidłowe jednostki :open_mouth: )

  1. Albo stosując template, w którym sobie utworzysz nowe encje bazując na “fabrycznych” + dodasz w tych szablonach (template’ach) obie klasy prawidłowo dla każdej encji oraz właściwą jednostkę pomiaru

PS Po ustawieniu w jeden z tych 2 sposobów musisz odczekać dobę na pojawienie się odczytów w dashboardzie energii (muszą się nazbierać dane), może po prostu nie poczekałeś? (mimo, że np. encje są prawidłowe, ale tego nie wiem, bo nie mam SP111 ani integracji Tuya).

Coś robie źle…
sensor dodaje tak:

gniazdo_current_consumption:
friendly_name: “Zasilanie_gniazda current consumption”
unit_of_measurement: ‘W’
value_template: “{{ states.switch.gniazdo.attributes.current_consumption}}”

w pliku customize/>

gniazdo_current_consumption:
device_class: power
state_class: measurement

I otrzymuje błąd:
Configuration is not valid: extra keys not allowed @ data[‘customize’][‘gniazdo_current_consumption’]

A gdzie wcięcia?
kod na forum wstawiaj między linie zawierające (TYLKO) po trzy odwrotne apostrofy - te znaki spod “klawisza tyldy”: ```
zamiast cytowania (bo cytowanie zupełnie rozwala to co masz w oryginale)

gniazdo_current_consumption to encja prądu, a nie mocy (więc ma być w amperach, a nie watach; jest to current a nie power, itd.)

W ogóle się kupy nie trzyma to co tu widzę, jeśli używasz template, to w template ma się znaleźć wszystko co potrzeba.

Jeśli robisz Dostosowanie (którego już nie ma w menu) to tylko dodajesz brakujące własności w customize.yaml (i wtedy możesz dodać coś co brakuje danej istniejącej encji).

Nie mieszaj obu metod, a przede wszystkim nie próbuj nadpisywać encji prądu własnościami typowymi dla mocy.

PS nie wiem gdzie to pododawałeś, ale tworząc template musisz stworzyć INNĄ encję a nie nadpisywać już istniejącej (takie cuda tylko w Dostosowaniu), pokaż źródłową encję (z Narzędzi deweloperskich) to może ktoś wymyśli jak to ma wyglądać…

U mnie “gniazdo_current_consumption” odpowiada mocy. Może to kwestia przypisania urządzenia w LocalTuya. Wartość jest w W. Odpowiada Watom w aplikacji Tuya.
Identyfikator encji to switch.gniazdo. Integracja LocalTuya integration
Jak wpisywałem do template to też wyrzucał błędy.

Pokaż jednak encję źródłową
Narzędzia deweloperskie → Stany → (nasza interesująca encja źródłowa z listy wyboru)
fajne wieloplatformowe narzędzie do screenshotów (tylko użyj lokalnego pliku i wrzuć go jako załącznik)

PS Czasem Tuya nie tworzy kilku osobnych encji dla jednego urządzenia posiadającego sensory?

localtuya:

ScreenShot_20221110210132

ScreenShot_20221110210521
To samo gniazdko przez Tuya
ScreenShot_20221110210845

1 polubienie

Zatem używając local-tuya należy użyć template, żeby powyciągać wartości z atrybutów.

Na bazie tego co podrzucił @krskrab skleciłem coś takiego (trzeba sprawdzić czy działa, bo to przeklejka z dokumentacji z wstawionymi danymi), ale te atrybuty są mocno do dupy, wypadałoby chyba założyć issue, bo się scyzoryk w kieszeni otwiera, gdy zamiast power jest current_consumption
Sytuacja taka jakbym mówił “jechałem autostradą z prędkością 20 minut”.

template:
  - sensor:
      - name: "Gniazdo moc"
        device_class: power
        state_class: measurement
        state: "{{ '%.1f'|format(state_attr('switch.gniazdo', 'current_consumption')) }}"
        unit_of_measurement: 'W'

Niezła ciekawostka przy zerowym napięciu płynie prąd i wydziela się jakaś moc w obciążeniu :stuck_out_tongue:
PS a gdzie zużyta energia? nie raportuje?

Na pocieszenie - zużytą energię można dorobić używając utility meter albo takiej niestandardowej integracji

Ja zrobiłem tak:

W sensor.yaml

#                                      Test

        # switch.tuya_ha_local = gniazdko z local_tuya
        # current_consumption = atrybut "watt"
  - platform: template
    sensors:
      tuya_local_watt:
        friendly_name: "Tuya local Watt"
        unit_of_measurement: 'W'
        value_template: "{{ state_attr('switch.tuya_ha_local','current_consumption') }}"
        icon_template: "mdi:air-conditioner"
        device_class: power
        unique_id: tuya_local_watt


        #   watt na kWh
  - platform: integration
    source: sensor.tuya_local_watt # = wyżej utworzony sensor
    unit_prefix: k    
    round: 2
    name: Tuya Local kWh
    unique_id: tuyalocalkWh

Otrzymałem:
Watt
ScreenShot_20221111001208
kWh
ScreenShot_20221111001250
Energia

1 polubienie

W sumie całkowanie mocy w domenie czasu jest chyba najprostszą metodą uzyskania poboru energii dysponując tylko mocą.

Nie mogę ogarnąć umysłowo tego nowego formatu template, więc mam nadzieję, że to co skleciłem wyżej jest bez błędu.

Zrobiłem tak jak napisałeś:
Moc


kWh

Jak rozumiem dla panelu energii musi upłynąć więcej czasu. Ale w koncu mogłem dodać ten miernik do panelu energii.
Na próbach dużo wcześniej zanim napisałem wątek próbowałem upychać do template sensora pole “state_class: measurement”. Efektem tego był cały czas wyrzucany błąd konfiguracji:“Invalid config for [sensor.template]: [state_class] is an invalid option for [sensor.template].”
Plik sensor.yaml

- platform: template
  sensors:
    gniazdopiec_pobormocy_watt:
      friendly_name: "Pobor mocy pieca Waty"
      unit_of_measurement: 'W'
      value_template: "{{ state_attr('switch.gniazdopiec','current_consumption') }}"
      device_class: power
      unique_id: gniazdopiec_pobormocy_watt
- platform: integration
  source: sensor.gniazdopiec_pobormocy_watt
  name: Pobor mocy pieca kWh
  unique_id: pobormocypiecakwh
  unit_prefix: k
  round: 2  

Stary format template może zostać w końcu nieobsługiwany, dlatego wystrugałem sensor w nowym formacie (przykładowo mqtt w starym formacie ma być nieobsługiwane od grudnia).

Czy zapis w takim formacie ma być nieobsługiwany ?

wyslana_korekta:
device_class: energy
friendly_name: “Energia wyslana korekta”
value_template: >-
{{ (states(‘sensor.wys_enea’) | float(0) -211.40) | round(2) }}
unit_of_measurement: “kWh

Brakuje " ’ " przed current_consumption'.

Dodaje " + " przed wartości

1 polubienie