Hjälp med CDEF

RRDTool är en Linuxmjukvara som kan användas för att lagra data i Round-Robin Databaser för att sedan generera grafer utifrån den lagrade datan.

Moderator: elf98

Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Elva
Gillar hemautomation
Inlägg: 37
Blev medlem: 03 jan 2015, 22:51
Ort: Hammenhög

Hjälp med CDEF

Inlägg av Elva » 16 aug 2016, 20:37

Hittade lite beräkning för gränsvärde när mögel börjar trivas på http://www.franzens.nu/2016/06/30/styrn ... -domoticz/ ( post29179.html )

Kod: Markera allt

      if (temp < 0) then humidityThreshold = 100 elseif (temp > 22) then
         humidityThreshold = 79 - 5
      else
         humidityThreshold = integer(-0.0015 * temp ^ 3+0.1193 * temp ^ 2 - 2.9878 * temp + 102.96) - 5

         if (humidityThreshold > 100) then
            humidityThreshold = 100
         elseif (humidityThreshold < 0) then
            humidityThreshold = 0
         end
 
      end
Försöker översätta hela beräkningen till RPN men kommer inte längre än såhär
CDEF:Mi=-0.0015,Temp,LOG,3,*,EXP,*,0.1193,Temp,LOG,2,*,EXP,*,+,2.9878,Temp,*,-,102.96,+,5,-

Vilket motsvarar (ser så ut iaf, om jag är rätt på det)
humidityThreshold = integer(-0.0015 * temp ^ 3+0.1193 * temp ^ 2 - 2.9878 * temp + 102.96) - 5

Hur får man till IF villkor tex?

Någon som vill hjälpa till?


//Lenny

Användarvisningsbild
motoz
Tar hemautomation på allvar
Inlägg: 100
Blev medlem: 02 feb 2015, 15:05
Ort: ostrobothnia

Re: Hjälp med CDEF

Inlägg av motoz » 17 aug 2016, 09:03

Rpn är kul...

Tycker det ser riktigt ut så långt.

'IF' fungerar så här:
Pops three elements from the stack. If the element popped last is 0 (false), the value popped first is pushed back onto the stack, otherwise the value popped second is pushed back
Så kombinerat med GT (greater than) och LT (less than) så blir det kanske ungefär såhär:

Kod: Markera allt

CDEF:Ht=Mi,0,LT,0,Mi,100,GT,100,Mi,IF,IF
Eller så kan du göra det enklare med MIN och MAX eftersom det handlar om att begränsa data til intervallet 0..100

Kod: Markera allt

CDEF:Ht=Mi,100,MIN,0,MAX
Open source pellet logger: https://github.com/motoz/PellMon

Elva
Gillar hemautomation
Inlägg: 37
Blev medlem: 03 jan 2015, 22:51
Ort: Hammenhög

Re: Hjälp med CDEF

Inlägg av Elva » 19 aug 2016, 23:51

Stort tack för hjälpen.

//Lenny

Skriv svar