Package: qcontrol
Version: 0.5.5-2
Severity: normal

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?
   * What exactly did you do (or not do) that was effective (or
     ineffective)?
   * What was the outcome of this action?
   * What outcome did you expect instead?

*** End of the template - remove these template lines ***


-- System Information:
Debian Release: 9.0
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: armel (armv5tel)

Kernel: Linux 3.16.0-4-kirkwood
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages qcontrol depends on:
ii  libc6        2.19-18+deb8u7
ii  liblua5.1-0  5.1.5-8.1+b2
ii  udev         215-17+deb8u6

qcontrol recommends no packages.

qcontrol suggests no packages.

-- Configuration Files:
/etc/qcontrol/ts219.lua changed:
--[[
        Debian configuration file for qcontrol (LUA syntax)
        Supports QNAP TS-110, TS-119, TS-210, TS-219 and TS-219P.
--]]
register("ts219")
-- register("ts119")
-- Requires CONFIG_KEYBOARD_GPIO enabled in the kernel and
-- the kernel module gpio_keys to be loaded.
-- Different kernel versions use platform-gpio_keys-event or
-- platform-gpio-keys-event, find the right one.
function find_device( options )
        for index,option in ipairs(options) do
                local f=io.open(option)
                if f then
                        f:close()
                        return option
                end
        end
        return nil
end
evdev = find_device ( { "/dev/input/by-path/platform-gpio_keys-event",
                        "/dev/input/by-path/platform-gpio-keys-event" } )
if evdev then
        logprint("Register evdev on "..evdev)
        register("evdev", evdev,
                 408, "restart_button",
                 133, "media_button")
else
        logprint("No evdev device found")
end
register("system-status")
-- Set to "false" to suppress the sounding of the buzzer
buzzer = true
function system_status( status )
        logprint("System status: "..status)
        if status == "start" then
                piccmd("statusled", "greenon")
                piccmd("powerled", "on")
                if buzzer then piccmd("buzzer", "short") end
        elseif status == "stop" then
                piccmd("statusled", "redon")
                piccmd("powerled", "1hz")
                if buzzer then piccmd("buzzer", "short") end
        else
                logprint("Unknown system status")
        end
end
function power_button( time )
        os.execute("poweroff")
end
function restart_button( time )
        os.execute("reboot")
end
function media_button( time )
        piccmd("usbled", "8hz")
end
fanfail = 0
--function fan_error(  )
--      fanfail = fanfail + 1
--      if fanfail == 3 then
--              logprint("ts219: fan error")
--              piccmd("statusled", "red2hz")
--              piccmd("buzzer", "long")
--      else
--              if fanfail == 10 then
--                      fanfail = 0
--              end
--      end
--end
function fan_normal(  )
        piccmd("statusled", "greenon")
        fanfail = 0
end
last_temp_log = nil
last_temp_value = 0
function logtemp( temp )
        local now = os.time()
        local function should_log(  )
                local delta_temp = math.abs(temp - last_temp_value)
                local delta_time = os.difftime(now, last_temp_log)
                -- Haven't previously logged, log now for the first time
                if ( not last_temp_log ) then
                        return true
                end
                -- Temperature has changed by more than 5
                if ( delta_temp >= 5 ) then
                        return true
                end
                -- More than 5 minutes have elapsed...
                if ( delta_time >= 300 ) then
                        if ( delta_temp > 1 ) then
                                --- ...and the change is by more than +/-1
                                return true
                        else
                                --- ...insignificant change, wait another 5 
minutes
                                last_temp_log = now
                                return false
                        end
                end
                -- Otherwise no need to log
                return false
        end
        if ( should_log() ) then
                logprint(string.format("ts219: temperature %d", temp))
                last_temp_log = now
                last_temp_value = temp
        end
end
last_fan_setting = nil
function setfan( temp, speed )
        if ( ( not last_fan_setting ) or
             ( last_fan_setting ~= speed ) ) then
                logprint(string.format("ts219: temperature %d setting fan to 
\"%s\"", temp, speed))
        end
        piccmd("fanspeed", speed)
        last_fan_setting = speed
end
-- hysteresis implementation:
--    - - > 35 > - - - > 40 > - - - > 50 > - - - > 65 > - - -
--  silence --    low    --  medium   --   high    -- full  |
--    - - < 32 < - - - < 35 < - - - < 45 < - - - < 55 < - - -
function temp( temp )
        logtemp(temp)
        if last_fan_setting == "full" then
                if temp < 55 then
                        setfan(temp, "high")
                end
        elseif last_fan_setting == "high" then
                if temp > 65 then
                        setfan(temp, "full")
                elseif temp < 45 then
                        setfan(temp, "medium")
                end
        elseif last_fan_setting == "medium" then
                if temp > 50 then
                        setfan(temp, "high")
                elseif temp < 35 then
                        setfan(temp, "low")
                end
        elseif last_fan_setting == "low" then
                if temp > 40 then
                        setfan(temp, "medium")
                elseif temp < 32 then
                        setfan(temp, "silence")
                end
        elseif last_fan_setting == "silence" then
                if temp > 35 then
                        setfan(temp, "low")
                end
        else
                setfan(temp, "high")
        end
end
confdir("/etc/qcontrol.d")
--
-- Local variables:
-- mode: lua
-- indent-level: 8
-- End:


-- no debconf information

Reply via email to