Przypisanie wartości encji w funkcji

Witam.

Mam problem z przypisaniem wartości do encji która została sztucznie stworzona jako Pomocnik w Konfiguracji.

Dla rozjaśnienia aktualny fragment Funkcji:

// Deklaracje czujniki temperatury (*0,1);
var t = [];
var tHa = [];
t[0] = msg.payload.response.ia7[0]; // Piec zasilanie
tHa[0]=input_number.tempcopieczasilanie;
t[1]=msg.payload.response.ia8[0]; // CO zasilanie;
tHa[1]=input_number.tempcozasilanie;
t[2]=msg.payload.response.ia9[0]; // CO powrót;
tHa[2]=input_number.tempcopowrot;
t[3]=msg.payload.response.ia6[0]; // CWU góra;
tHa[3]=input_number.tempcwugora;

for (let i=0; i<t.length; i++) {
tHa[i] =(t[i]/10);
}

tablica t - zawiera wartości do wpisania do encji pomocnika
tablica tHa - zawiera nazwy encji do których chce przypisać wartość.

błąd który wywala mi debuger to:
ReferenceError: input_number is not defined (line 5, col 8)

Wstawienie nazwy encji w apostrofy też nic nie daje.

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:
image
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.

Gdzieś poełniam blad i nie moge znaleść miejsca…

wypróbowałem dwie opcje:
Pierwsza łączy się z serwerem ale nie aktualizuje wartości encji

2020-07-08 11_54_25-Node-RED - Home Assistant

Druga na podstawie Twojego screenshota:


w tym przypadku występuje API Error

home-assistant.log:

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.


tak narazie jest ona widoczna w narzędziach deweloprskich.

Dziękuje za pomoc i poświęcony czas.

To nic nie zmieni. To musi działać nawet gdy dodasz encję w GUI. Jutro przygotuje konkretny proces i Tobie wyślę bo dzisiaj zero czasu.

Problem rozwiązany dzięki lekcji nr 5 n YT :slight_smile:
Wielkie podziękowania dla @artur za jego poświęcony czas w tworzenie społeczności HA i tworzenie Tutoriali.


a4

@Marcin_Domański dziękuję bardzo i cieszę się że pomogło. Oby reszta materiałów była równie przydatna :smiley: