Page 1 of 1

Visa resultat av beräkning i HC2?

Posted: 25 Feb 2014, 17:57
by cmholm
Hej

Jag har en fukt-/tempgivare i badrummet från vilken jag har beräknat den absoluta fuktigheten (g/m3) med hjälp av lua. Hur kan jag presentera resultatet snyggt? Likt temp- och fuktgivarens presentation in HC2. Jag får det ju att synas korrekt i debugfönstret men hur får jag det snyggt presenterat på "första sidan"?

En givare kommer att placeras utomhus med samma kod bakom som beräknar absoluta fukthalten. Resultaten kommer att jämföras för att styra ventilationsmaskinen för maximal fuktutdrivning från huset med automatik.

LUA koden för beräkningen av den absoluta fukthalten:

1
--[[
2
%% properties
3

4
%% globals
5
--]]
6
varfuktighet = fibaro:getValue(28,'value')
7
--varfuktighet = 80
8
vartemperatur = fibaro:getValue(27, 'value')
9
--vartemperatur = 20
10
fibaro:debug('Relativa fuktigheten i badrummet är ' ..varfuktighet ..'%')
11
fibaro:debug('Temperaturen i badrummet är ' ..vartemperatur ..'C')
12
pws = (6.1162 * 10 ^ ((7.5892 * vartemperatur) / (vartemperatur + 240.71)))
13
fibaro:debug('Pws=' ..pws)
14
pw = pws * varfuktighet / 100
15
fibaro:debug ('pw=' ..pw)
16
a = (2.16679 * (pw * 100) / (273.16 + vartemperatur))
17
fibaro:debug('Den absoluta fukthalten är ' ..a ..'g/m3')


Likt temp siffran på denna bild skulle jag vilja presentera resultatet från beräkningen:
Image


Sent from my iPad using Tapatalk

Re: Visa resultat av beräkning i HC2?

Posted: 26 Feb 2014, 12:58
by cmholm
Jag fixade mitt problem genom att skapa en virtuell enhet med en etikett och placera värdet i etiketten. Fungerar utmärkt och resultatet tillfredställande. Ännu måste en ny icon infogas för att göra det snyggare.

Så här blev det att se ut och värdet updateras automatiskt när temperatur eller relativ fuktighet ändrar i badrummet.
Screen Shot 2014-02-26 at 12.36.59.png
Screen Shot 2014-02-26 at 12.36.59.png (40.4 KiB) Viewed 3137 times
Koden som räknar och kör allting ser ut som nedan. Ursäkta för att det ser stökigt ut men är ingen van programmerare.
Functionen högst upp bara avrundar talet med 2 decimalers noggrannhet. Alla rader som börjar med fibaro:debug är onödiga men jag tycker dom hjälper till att kontrollera att allting blir rätt längs vägen.

Code: Select all

--[[
%% properties
28 value
27 value
%% globals
--]]
function round(num, idp)
  local mult = 10^(idp or 0)
  return math.floor(num * mult + 0.5) / mult
end

varfuktighet = fibaro:getValue(28,'value')
--varfuktighet = 80
vartemperatur = fibaro:getValue(27, 'value')
--vartemperatur = 20
fibaro:debug('Relativa fuktigheten i badrummet är ' ..varfuktighet ..'%')
fibaro:debug('Temperaturen i badrummet är ' ..vartemperatur ..'C')
pws = (6.1162 * 10 ^ ((7.5892 * vartemperatur) / (vartemperatur + 240.71)))
fibaro:debug('Pws=' ..pws)
pw = pws * varfuktighet / 100
fibaro:debug ('pw=' ..pw)
a = (2.16679 * (pw * 100) / (273.16 + vartemperatur))
A = round(a, 2)
fibaro:debug('Den absoluta humiditeten är ' ..A ..'g/m3')
fibaro:call(32, "setProperty", "ui.Label1.value", A ..' g/m3')
Om någon är intresserad av själva matematiken bakom uträkningen kan jag redogöra för den också. Nu återstår att köpa en till mätare för utomhusbruk och sedan jämföra den absoluta fukthalten mellan innomhusluften och utomhusluften för att kunna avgöra om det är lönt att fuktforcera och hur länge.

Ha D, C-M Holm