zanim spróbuje doradzić jak zapisać wartość do encji to mam pytanie czy ta wartość, którą chcesz zapisać do encji jest Tobie potrzebna w HA? Czy to tylko po to aby użyć tej wartości w innym procesie?
Natomiast teraz pomoc w samym zapisie wartości do encji.
Nie możesz do encji odwoływać się bezpośrednio z funkcji bo NR nic nie wie o istnieniu takiej encji. Aby zapisać wartość do encji musisz użyć nodu “call service” dedykowanego dla HA. Np może to wyglądać tak:
i teraz np w nodzie function poprzedzającym wywołanie call service podajesz dane jakie chcesz przekazać do encji. W zależności jaki rodzaj pośrednika wybrałeś takie będziesz miał możliwości np dla listy z przykładu powyżej musisz uzupełnić parametr options, który odpowiada za pozycję listy.
Dziękuję, wypróbuję jak wrócę do domu.
Mam zewnętrzne urządzenie pod które podpięte są czujniki temperatury, i liczniki energii. Dostęp do niego jest przez wywołanie adresu URL metodą GET. Zwraca rejestr przechowywanych parametrów w postaci pliku XML.
Chce te dane przekazać do HA i mieć rejestr ich zmian, bo dotyczą instalacji centralnego ogrzewania i wody użytkowej (temperatur). Urządzenie docelowo będzie sterowało całym Centralnym Ogrzewaniem, a HA ma sterować tym urządzeniem i służyć jako rejestrator.
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py”, line 130, in handle_call_service
connection.context(msg),
File “/usr/src/homeassistant/homeassistant/core.py”, line 1222, in async_call
processed_data = handler.schema(service_data)
File “/usr/local/lib/python3.7/site-packages/voluptuous/validators.py”, line 208, in call
return self._exec((Schema(val) for val in self.validators), v)
File “/usr/local/lib/python3.7/site-packages/voluptuous/validators.py”, line 287, in _exec
raise e if self.msg is None else AllInvalid(self.msg, path=path)
File “/usr/local/lib/python3.7/site-packages/voluptuous/validators.py”, line 283, in _exec
v = func(v)
File “/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py”, line 272, in call
return self._compiled(, data)
File “/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py”, line 817, in validate_callable
return schema(data)
File “/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py”, line 272, in call
return self._compiled(, data)
File “/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py”, line 594, in validate_dict
return base_validate(path, iteritems(data), out)
File “/usr/local/lib/python3.7/site-packages/voluptuous/schema_builder.py”, line 432, in validate_mapping
raise er.MultipleInvalid(errors)
voluptuous.error.MultipleInvalid: required key not provided @ data[‘value’]
Na razie próbuję wstawić wartość na sztywno, aby uniknąć błędów z typami danych.
Po kilku próbach i przeanalizowaniu dokumentu: HA INPUT NUMBER dziś jak wrócę z pracy zdefiniuje encje bezpośrednio w pliku configuration.yaml, a nie sekcji Pomocnicy w Konfiguracji - zobaczymy czy to zrobi różnice.
Cześć, Ja amator NR walczę od dłuższego czasu z tematem zapisem wartości encji typu sensor do HA. Jak używam encji typu Input Number to działa poprawnie. Wartości sensora nie mogę zapisać.
Mowa o sensorze stworzonym przez pomocnika - Template Sensor, zatem żadna integracja nie steruje wartościami tego sensora. Generalnie - chodzi o obliczanie współczynnika COP dla przeróbki klimatyzatora na pompę ciepła (na podstawie pobranej energii elektrycznej i wytworzonej energii termicznej).
To co widać w Debug messages. Dodałem pomocnika “input_text.cop_text” ale on nie zmienia wartości, a będąc bardziej precyzyjnym - ma cały czas status “unknown”. O dziwo - o czym wspominałem wcześniej, encja “input_number.cop_day” poprawnie przypisuje wartości w nodzie Call Service. Też dziwne bo Debug_55 za Call Service zawsze zwraca zero.
Mam też wrażenie że nie widzę wszystkich informacji w oknie Debug messages, ale nie potrafię tego zmienić… mówiłem - amator
Kombinowałem w ten sposób wcześniej, jednak nie przyniosło to spodziewanych rezultatów - generalnie Call Service w żaden sposób nie zapisuje encji typu sensor. Gdy wykorzystałem encje typu “input_text”, czy też wcześniej “input_number” - to jest OK, Call Service przypisuje wartości. Dla encji SENSOR - nie przypisuje. Generalnie osiągnąłem cel wykorzystując “input_number”, chyba nie ma co wałkować tematu dalej.
Ok…nie doczytałem istoty Twojego problemu.
Nie da się bezpośrednio z NR w łatwy sposób ustawić wartości template sensor.
Ten pomocnik, swoją wartość template value tworzy na podstawie stanu innych encji.
Mógłbyś wtedy przenieść obliczenia COP z NR do HA @artpc … skąd wytrzasnąłeś te nody entities ? … edit - nie było pytania
Inny sposób - jeśli używasz mqtt - wartość zapisać w mqtt i dodać w HA taką encję.
Dzięki @artpc ale nie mogę ogarnąć tematu - jestem cinki jak PolSilver…
Zainstalowałem dodatek NR Companion ale podczas edycji sensora ciągle dostaje komunikat że potrzebny jest owy dodatek. Oczywiście Restart HA x 2, nawet po dodaniu encji. Póki co efekt taki że encje stworzone w NR są widoczne w HA ale nie zmieniają stanu.
Jęśli używasz i cokolwiek kumasz to zamiast call service wstaw nod mqtt_out.
Opublikuj payload w temacie (topic) np.COP.
Następnie ręcznie w HA utwórz wymaganą encję sensor, który będzie swój stan ustawiał z tego co zapisałeś wcześniej w topic.
Niestety na tą chwilę nie jestem w stanie zamieścić żadnego przykładu.
Tak naprawdę do obliczenia i wyświetlenia COP nie potrzebujesz NR i MQTT.
Wystarczy, opanujesz template sensor gdzie bezpośrednio da się obliczyć value cop z sensorów thermal i electric.