New devices to add:
--------------------------------------------------------------------------------
MiHome Light
MIHO008 OOK White
MIHO024 OOK Black Nickel
MIHO025 OOK Chrome
MIHO026 OOK Brushed Steel
RX ONLY
OOK, OUTER_TIMES=1, OUTER_DELAY=0, INNER_TIMES=75
--------------------------------------------------------------------------------
MiHome Motion Sensor
MIHO032
TX ONLY
FSK
PRODUCTID=0x0C
JOIN BUTTON:
No route to an object, for device:(4, 12, 4042)
{
'header': {
'sensorid': 4042,
'productid': 12, <------- THIS
'encryptPIP': 13298,
'mfrid': 4
},
'type': 'OK',
'rxtimestamp': 1464955109.109954,
'recs': [
{
'paramunit': '',
'typeid': 0,
'length': 0,
'wr': True,
'paramname': 'JOIN', <------ THIS
'paramid': 106
}
]
}
MOTION:
No route to an object, for device:(4, 12, 4042)
{
'header': {
'sensorid': 4042,
'productid': 12,
'encryptPIP': 13298,
'mfrid': 4
},
'type': 'OK',
'rxtimestamp': 1464955035.384384,
'recs': [
{
'paramunit': '',
'typeid': 0,
'valuebytes': [1],
'value': 1, <-------- THIS
'length': 1,
'wr': False,
'paramname': 'MOTION_DETECTOR', <-------- THIS
'paramid': 109
}
]
}
Once motion is detected, there is a transmission holdoff timer for 60 seconds
before it goes to no motion mode (light flashes once, no transmission)
NO MOTION: (60 second timeout from motion)
No route to an object, for device:(4, 12, 4042)
{
'header':
{
'sensorid': 4042,
'productid': 12,
'encryptPIP': 13298,
'mfrid': 4
},
'type': 'OK',
'rxtimestamp': 1464955276.68883,
'recs': [
{
'paramunit': '',
'typeid': 0,
'valuebytes': [0],
'value': 0,
'length': 1,
'wr': False,
'paramname': 'MOTION_DETECTOR',
'paramid': 109
}
]
}
LOW BATTERY:
{
'header': {
'sensorid': 4042,
'productid': 12,
'encryptPIP': 13298,
'mfrid': 4
},
'type': 'OK',
'rxtimestamp': 1464955580.958382,
'recs': [
{
'paramunit': '',
'typeid': 0,
'valuebytes': [66],
'value': 66, <-------- THIS (alarm 0x42 is 'battery alarm occurred), 0x62 would be 'cleared'
'length': 1,
'wr': False,
'paramname': 'ALARM', <-------- THIS (see 'Alarms' on Page 7 of OpenThings specification)
'paramid': 33
}
]
}
--------------------------------------------------------------------------------
MiHome Open Sensor
MIHO033
TX ONLY
FSK
PRODUCTID=0x0D
JOIN BUTTON PRESSED:
{
'header':{
'sensorid': 2817,
'productid': 13, <---------- THIS
'encryptPIP': 13298,
'mfrid': 4
},
'type': 'OK',
'rxtimestamp': 1464953871.31946,
'recs': [
{
'paramunit': '',
'typeid': 0,
'length': 0,
'wr': True,
'paramname': 'JOIN', <-------- THIS
'paramid': 106
}
]
}
MAGNET ATTACHED:
{
'header': {
'sensorid': 2817,
'productid': 13,
'encryptPIP': 13298,
'mfrid': 4
},
'type': 'OK',
'rxtimestamp': 1464953936.18644,
'recs': [
{
'paramunit': '',
'typeid': 0,
'valuebytes': [0],
'value': 0, <-------- THIS
'length': 1,
'wr': False,
'paramname': 'DOOR_SENSOR', <-------- THIS
'paramid': 100
}
]
}
MAGNET REMOVED:
{
'header': {
'sensorid': 2817,
'productid': 13,
'encryptPIP': 13298,
'mfrid': 4
},
'type': 'OK',
'rxtimestamp': 1464954026.97475,
'recs': [
{
'paramunit': '',
'typeid': 0,
'valuebytes': [1],
'value': 1, <-------- THIS
'length': 1,
'wr': False,
'paramname': 'DOOR_SENSOR', <-------- THIS
'paramid': 100
}
]
}
--------------------------------------------------------------------------------
KNOCK ON TODOs
- need to pass forward radio config parameters to get INNER_TIMES=75 for the MiHome Light.
- need to think about config.tx_repeats vs get_config() - these are different concepts
- code up product id's
- code up paramid's for decoding messages
- decide how to handle low battery alarm, this is the first alarm we have seen.
--------------------------------------------------------------------------------