Skip to content
Snippets Groups Projects
Commit 5f37c1ee authored by jkerdreu's avatar jkerdreu
Browse files

Added Light sensors, batteries and fix xaal address issue.



git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2584 b32b6428-25c9-4566-ad07-03861ab6144f
parent 615c9b65
No related branches found
No related tags found
No related merge requests found
......@@ -67,7 +67,7 @@ class Accessory(object):
logger.warn(f"Unknow service: {s_name}")
def add_device(self,dev):
dev.addr = self.last_addr
dev.address = self.last_addr
self.gw.engine.add_device(dev)
self.last_addr = self.last_addr+1
if self.information:
......@@ -134,9 +134,12 @@ class Service(object):
# ===========================================================================
# Below, you will find the data mapping. We can reduce this code easily
# but this should occur after more testing. I'm quite sure, we will find
# some buggy HK devices... and reducing before testing is a bad idea
# ===========================================================================
class Information(Service):
def setup(self):
#import pdb;pdb.set_trace()
self.vendor_id = 'HomeKit:' + self.search_value('Manufacturer')
......@@ -145,8 +148,15 @@ class Information(Service):
self.info = self.search_value('Name')
self.hw_id = self.search_value('SerialNumber')
class Light(Service):
def setup(self):
(c_iid,value,unit) = self.monitor('CurrentAmbientLightLevel')
self.dev = self.add_device(devices.luxmeter())
self.dev.attributes['illuminance'] = int(value)
def handler(self,src,data):
self.dev.attributes['illuminance'] = int(data['value'])
class Light(Service):pass
class Lamp(Service):
def setup(self):
......@@ -155,27 +165,27 @@ class Lamp(Service):
self.dev.attributes['light'] = bool(value)
def handler(self,src,data):
self.dev.attributes['light']=bool(data['value'])
self.dev.attributes['light'] = bool(data['value'])
class Motion(Service):
def setup(self):
(c_iid,value,unit) = self.monitor('MotionDetected')
self.dev = self.add_device(devices.motion())
self.dev.attributes['presence']=bool(value)
self.dev.attributes['presence'] = bool(value)
def handler(self,src,data):
self.dev.attributes['presence']=bool(data['value'])
self.dev.attributes['presence'] = bool(data['value'])
class Contact(Service):
def setup(self):
(c_iid,value,unit) = self.monitor('ContactSensorState')
self.dev = self.add_device(devices.contact())
self.dev.attributes['detected']=bool(value)
self.dev.attributes['detected'] = bool(value)
def handler(self,src,data):
self.dev.attributes['detected']=bool(data['value'])
self.dev.attributes['detected'] = bool(data['value'])
class Humidity(Service):
def setup(self):
......@@ -196,5 +206,11 @@ class Temperature(Service):
self.dev.attributes['temperature'] = round(data['value'],2)
class Battery(Service):
def setup(self):
(c_iid,value,unit) = self.monitor('BatteryLevel')
self.dev = self.add_device(devices.battery())
self.dev.attributes['level'] = int(value)
class Battery(Service):pass
\ No newline at end of file
def handler(self,src,data):
self.dev.attributes['level']=int(data['value'])
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment