Mercurial > code > home > repos > homeauto
comparison service/piNode/devices.py @ 205:40000fafad94
piNode onboard temp
Ignore-this: 2e603499925ff5a114273057a07fb36a
author | drewp@bigasterisk.com |
---|---|
date | Sat, 07 Nov 2015 09:50:00 -0800 |
parents | 634d6e477953 |
children | 61094b3ee0e0 |
comparison
equal
deleted
inserted
replaced
204:9a3b8f1aaf78 | 205:40000fafad94 |
---|---|
174 'element': 'output-rgb', | 174 'element': 'output-rgb', |
175 'subj': self.uri, | 175 'subj': self.uri, |
176 'pred': ROOM['color'], | 176 'pred': ROOM['color'], |
177 }] | 177 }] |
178 | 178 |
179 @register | |
180 class OnboardTemperature(DeviceType): | |
181 deviceType = ROOM['OnboardTemperature'] | |
182 @classmethod | |
183 def findInstances(cls, graph, board, pi): | |
184 for row in graph.query('''SELECT DISTINCT ?dev WHERE { | |
185 ?board :onboardDevice ?uri . | |
186 ?uri a :OnboardTemperature . | |
187 }'''): | |
188 yield cls(graph, row.uri, pi, pinNumber=None) | |
189 | |
190 def readFromPoll(self): | |
191 milliC = open('/sys/class/thermal/thermal_zone0/temp').read().strip() | |
192 c = float(milliC) / 1000. | |
193 f = c * 1.8 + 32 | |
194 return [ | |
195 (self.uri, ROOM['temperatureF'], Literal(f, datatype=XSD['decimal'])), | |
196 ] | |
197 | |
198 def watchPrefixes(self): | |
199 # these uris will become dynamic! see note on watchPrefixes | |
200 # about eliminating it. | |
201 return [(self.uri, ROOM['temperatureF']), | |
202 ] | |
203 | |
179 def makeDevices(graph, board, pi): | 204 def makeDevices(graph, board, pi): |
180 out = [] | 205 out = [] |
181 for dt in sorted(_knownTypes, key=lambda cls: cls.__name__): | 206 for dt in sorted(_knownTypes, key=lambda cls: cls.__name__): |
182 out.extend(dt.findInstances(graph, board, pi)) | 207 out.extend(dt.findInstances(graph, board, pi)) |
183 return out | 208 return out |