1 from Components.ActionMap import ActionMap
2 from Components.Sensors import sensors
3 from Components.Sources.Sensor import SensorSource
4 from Components.Sources.StaticText import StaticText
5 from Components.ConfigList import ConfigListScreen
6 from Components.config import getConfigListEntry
8 from Screens.Screen import Screen
10 from Plugins.Plugin import PluginDescriptor
11 from Components.FanControl import fancontrol
13 class TempFanControl(Screen, ConfigListScreen):
15 <screen position="100,100" size="550,400" title="Fan Control" >
16 <!--widget name="text" position="0,0" size="550,400" font="Regular;15" /-->
18 <widget source="SensorTempText0" render="Label" position="10,150" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
19 <widget source="SensorTemp0" render="Label" position="100,150" zPosition="1" size="100,20" font="Regular;19" halign="right">
20 <convert type="SensorToText"></convert>
22 <widget source="SensorTempText1" render="Label" position="10,170" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
23 <widget source="SensorTemp1" render="Label" position="100,170" zPosition="1" size="100,20" font="Regular;19" halign="right">
24 <convert type="SensorToText"></convert>
26 <widget source="SensorTempText2" render="Label" position="10,190" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
27 <widget source="SensorTemp2" render="Label" position="100,190" zPosition="1" size="100,20" font="Regular;19" halign="right">
28 <convert type="SensorToText"></convert>
30 <widget source="SensorTempText3" render="Label" position="10,210" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
31 <widget source="SensorTemp3" render="Label" position="100,210" zPosition="1" size="100,20" font="Regular;19" halign="right">
32 <convert type="SensorToText"></convert>
34 <widget source="SensorTempText4" render="Label" position="10,230" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
35 <widget source="SensorTemp4" render="Label" position="100,230" zPosition="1" size="100,20" font="Regular;19" halign="right">
36 <convert type="SensorToText"></convert>
38 <widget source="SensorTempText5" render="Label" position="10,250" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
39 <widget source="SensorTemp5" render="Label" position="100,250" zPosition="1" size="100,20" font="Regular;19" halign="right">
40 <convert type="SensorToText"></convert>
42 <widget source="SensorTempText6" render="Label" position="10,270" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
43 <widget source="SensorTemp6" render="Label" position="100,270" zPosition="1" size="100,20" font="Regular;19" halign="right">
44 <convert type="SensorToText"></convert>
46 <widget source="SensorTempText7" render="Label" position="10,290" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
47 <widget source="SensorTemp7" render="Label" position="100,290" zPosition="1" size="100,20" font="Regular;19" halign="right">
48 <convert type="SensorToText"></convert>
51 <widget source="SensorFanText0" render="Label" position="290,150" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
52 <widget source="SensorFan0" render="Label" position="380,150" zPosition="1" size="150,20" font="Regular;19" halign="right">
53 <convert type="SensorToText"></convert>
55 <widget source="SensorFanText1" render="Label" position="290,170" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
56 <widget source="SensorFan1" render="Label" position="380,170" zPosition="1" size="150,20" font="Regular;19" halign="right">
57 <convert type="SensorToText"></convert>
59 <widget source="SensorFanText2" render="Label" position="290,190" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
60 <widget source="SensorFan2" render="Label" position="380,190" zPosition="1" size="150,20" font="Regular;19" halign="right">
61 <convert type="SensorToText"></convert>
63 <widget source="SensorFanText3" render="Label" position="290,210" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
64 <widget source="SensorFan3" render="Label" position="380,210" zPosition="1" size="150,20" font="Regular;19" halign="right">
65 <convert type="SensorToText"></convert>
67 <widget source="SensorFanText4" render="Label" position="290,230" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
68 <widget source="SensorFan4" render="Label" position="380,230" zPosition="1" size="150,20" font="Regular;19" halign="right">
69 <convert type="SensorToText"></convert>
71 <widget source="SensorFanText5" render="Label" position="290,250" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
72 <widget source="SensorFan5" render="Label" position="380,250" zPosition="1" size="150,20" font="Regular;19" halign="right">
73 <convert type="SensorToText"></convert>
75 <widget source="SensorFanText6" render="Label" position="290,270" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
76 <widget source="SensorFan6" render="Label" position="380,270" zPosition="1" size="150,20" font="Regular;19" halign="right">
77 <convert type="SensorToText"></convert>
79 <widget source="SensorFanText7" render="Label" position="290,290" zPosition="1" size="90,40" font="Regular;20" halign="left" valign="top" backgroundColor="#9f1313" transparent="1" />
80 <widget source="SensorFan7" render="Label" position="380,290" zPosition="1" size="150,20" font="Regular;19" halign="right">
81 <convert type="SensorToText"></convert>
83 <widget name="config" position="10,10" size="500,225" scrollbarMode="showOnDemand" />
86 def __init__(self, session, args = None):
87 Screen.__init__(self, session)
89 templist = sensors.getSensorsList(sensors.TYPE_TEMPERATURE)
90 tempcount = len(templist)
91 fanlist = sensors.getSensorsList(sensors.TYPE_FAN_RPM)
92 fancount = len(fanlist)
94 for count in range(8):
97 self["SensorTempText%d" % count] = StaticText(sensors.getSensorName(id))
98 self["SensorTemp%d" % count] = SensorSource(sensorid = id)
100 self["SensorTempText%d" % count] = StaticText("")
101 self["SensorTemp%d" % count] = SensorSource()
105 self["SensorFanText%d" % count] = StaticText(sensors.getSensorName(id))
106 self["SensorFan%d" % count] = SensorSource(sensorid = id)
108 self["SensorFanText%d" % count] = StaticText("")
109 self["SensorFan%d" % count] = SensorSource()
112 for count in range(fancontrol.getFanCount()):
113 self.list.append(getConfigListEntry(_("Fan %d Voltage") % (count + 1), fancontrol.getConfig(count).vlt))
114 self.list.append(getConfigListEntry(_("Fan %d PWM") % (count + 1), fancontrol.getConfig(count).pwm))
115 ConfigListScreen.__init__(self, self.list, session = self.session)
116 #self["config"].list = self.list
117 #self["config"].setList(self.list)
119 self["actions"] = ActionMap(["OkCancelActions"],
122 "cancel": self.revert
126 fancontrol.getConfig(0).vlt.save()
127 fancontrol.getConfig(0).pwm.save()
131 fancontrol.getConfig(0).vlt.load()
132 fancontrol.getConfig(0).pwm.load()
135 def main(session, **kwargs):
136 session.open(TempFanControl)
138 def Plugins(**kwargs):
139 return PluginDescriptor(name = "Temperature and Fan control", description = _("Temperature and Fan control"), where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc = main)