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:
- 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 )
- 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?
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
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
kWh
Energia
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