Forum użytkowników automatyki budynkowej

Z-wave => Fibaro - urządzenia wirtualne, pluginy => Wątek zaczęty przez: virgojavier w Styczeń 12, 2016, 05:29:47 pm

Tytuł: Rekuperator - Virtualka
Wiadomość wysłana przez: virgojavier w Styczeń 12, 2016, 05:29:47 pm
Witam
Zamarzyła mi się wirtualka do podglądu pracy rekuperatora. Pierwszą część którą udało mi się już zrobić to info dotyczące tego na którym biegu w zależności od zużycia prądu (reku jest podłączony wall plugiem) rekuperator się znajduje.
Druga to stan GWC, czy aktywny czy nie, podobnie na podstawie info z wall plaga sterującego GWC.

Następnie zakupiłem UBS i 4 DSy w celu przeliczania sprawności rekuperatora.

local myDeviceID = fibaro:getSelfId()
local t1Id = 1549
local t2Id = 1550
local t3Id = 1551
local t4Id = 1552
local temp_zew = tonumber(fibaro:getValue(t1Id, "value"))
local temp_wylot = tonumber(fibaro:getValue(t2Id, "value"))
local temp_nawiew = tonumber(fibaro:getValue(t3Id, "value"))
local temp_wywiew = tonumber(fibaro:getValue(t4Id, "value"))
fibaro:call(myDeviceID, "setProperty", "ui.LabelNow1.value", temp_zew)
fibaro:call(myDeviceID, "setProperty", "ui.LabelNow2.value", temp_wylot)
fibaro:call(myDeviceID, "setProperty", "ui.LabelNow4.value", temp_nawiew)
fibaro:call(myDeviceID, "setProperty", "ui.LabelNow5.value", temp_wywiew)
local sprawnosc = ((temp_nawiew - temp_zew)/(temp_wywiew - temp_zew))*100
fibaro:call(myDeviceID, "setProperty", "ui.LabelNow6.value", sprawnosc)

Wszystko fajnie działa, ale wyliczona sprawność wyświetla się z 10 miejscami po przecinku.
Wie ktoś może jak zaogrąglić wyliczaną wartość do jednego miejsca po przecinku?

Z góry dzięki za podpowiedź
Tytuł: Odp: Rekuperator - Virtualka
Wiadomość wysłana przez: wojo2000 w Marzec 20, 2016, 07:38:49 pm
a czy możesz sterować biegami rekuperatora? zastanawiam się czy płacić prawie 1000pln za moduł Aeris Inteligence, czy da się to przy pomocy fibaro rozwiązać...
Tytuł: Odp: Rekuperator - Virtualka
Wiadomość wysłana przez: Andrzej.M w Kwiecień 16, 2016, 07:23:26 am
Witaj virgojavier
spróbuj tak:

wpisz do swojego kodu przed twoimi zmiennymi:

local p = 100 -- ilość zer = ilość miejsc po przecinku
local s = sprawnosc

zamiast  "p" możesz wpisać "przecinek" ale to długi wyraz,
potem

tak samo zamiast "sprawnosc" napisałem: "s", możesz zostawić "sprawnosc", zrobiłem tak dla przejrzystości przykładu;
przed wyświetleniem właściwie jakiejkolwiek liczby lub przed jej dalszym użyciem (w tym przypadku chodzi o "sprawnosc")
napisz taki kod (najlepiej skopiuj i wstaw poprawne zmienne):

sprawnosc = s - ((((s - math.floor(s)) * p) - math.floor(((s - math.floor(s)) * p))) / p);

teraz możesz ilością zer - w zmiennej "p" ("p", czytaj "przecinek") - obok jedynki regulować sobie ilość miejsc po przecinku jak "dusza" zapragnie ;)
nie znam wszystkich funkcji matematycznych, wiec zrobiłem to tak!
Ale za to działa u mnie niezawodnie!!! 8)
Nawet jak byś chciał, możesz wstawić do wirtualki suwak do regulacji ilości miejsc po przecinku, tylko proponuje wtedy zmienną "p" zrobić jako globalną ;) ;) :D
Tytuł: Odp: Rekuperator - Virtualka
Wiadomość wysłana przez: Andrzej.M w Kwiecień 16, 2016, 10:18:14 am
Zmieniając troszkę temat chciałbym zapytać, ponieważ sam w tej kwestii jeszcze się nie nauczyłem, jak skonstruować ścieżkę, którą wysłałbym do rekuperatora z przycisku urządzenia wirtualnego w HC2?
Problem jest w tym, że komenda wpisana w adres przeglądarki, po wciśnięciu klawisza ENTER wykonuje z sukcesem swoje zadanie. Natomiast wpisanie tego do urządzenia wirtualnego i wciśnięcie przycisku wysyłającego zadany tekst nie pociąga za sobą żadnego skutku.

tekst wygląda następująco:

http://192.168.1.200:8080/rest/supply/A/set/1

tabela funkcji i konstrukcji ścieżki jest w załączniku.
docelowo chciałbym móc sprawdzić, czy rekuperator jest włączony czy nie oraz sczytać temperaturę z pilota jak również włączyć i/lub wyłączyć rekuperator ale też zmienić bieg rekuperatora.
Z góry dziękuję za pomoc.
Pozdrawiam
Tytuł: Odp: Rekuperator - Virtualka
Wiadomość wysłana przez: sztywniak w Kwiecień 18, 2016, 08:42:46 pm
na forum masz pełno przykładów jak wysyłać cokolwiek po http.
funkcja Net.FHttp
Tytuł: Odp: Rekuperator - Virtualka
Wiadomość wysłana przez: Andrzej.M w Kwiecień 21, 2016, 06:13:08 am
poproszę zatem o link do przykładu wysłania komendy do rekuperatora bo do tej pory nie znalazłem niczego odpowiedniego (albo wysyłanie do HC2 albo odczyt). A skoro orientujesz się doskonale, to z łatwością mnie pokierujesz
Z góry dziękuję :)
Tytuł: Odp: Rekuperator - Virtualka
Wiadomość wysłana przez: marecki_0luk1 w Kwiecień 21, 2016, 09:03:13 am
Przecież sztywniak napisał Ci dokładnie czego szukać.
http://lmgtfy.com/?q=Fibaro+Net.FHttp