Skip to content

Commit

Permalink
feat: add support for IBS09PIR/R/PS/LX
Browse files Browse the repository at this point in the history
1. Rename iBS008/PIR/R/PS to iBS09
2. Added iBS09LX payload support

Signed-off-by: Tim Chao <tim.chao@ingics.com>
  • Loading branch information
timscchao committed Jul 15, 2024
1 parent 04864b5 commit 9f88eca
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 10 deletions.
7 changes: 4 additions & 3 deletions igsparser/msd.py
Original file line number Diff line number Diff line change
Expand Up @@ -259,9 +259,10 @@ def fieldAccels(self, idx):
0x39: {'name': 'iWS01', 'fields': ['fieldTemp', 'fieldHumidity1D'], 'events': ['button']}, # deprecated, for backward compatibility
0x40: {'name': 'iBS06', 'fields': ['fieldDummy', 'fieldDummy', 'fieldUser'], 'events': []},
0x41: {'name': 'iBS08T', 'fields': ['fieldTemp', 'fieldHumidity1D', 'fieldUser'], 'events': ['button']},
0x42: {'name': 'iBS08R', 'fields': ['fieldDummy', 'fieldRange', 'fieldUser'], 'events': []},
0x43: {'name': 'iBS08PS', 'fields': ['fieldValue', 'fieldCounter', 'fieldUser'], 'events': ['detect']},
0x44: {'name': 'iBS08PIR', 'fields': ['fieldDummy', 'fieldDummy', 'fieldUser'], 'events': ['pir']},
0x42: {'name': 'iBS09R', 'fields': ['fieldDummy', 'fieldRange', 'fieldUser'], 'events': ['button']},
0x43: {'name': 'iBS09PS', 'fields': ['fieldValue', 'fieldCounter', 'fieldUser'], 'events': ['detect']},
0x44: {'name': 'iBS09PIR', 'fields': ['fieldDummy', 'fieldDummy', 'fieldUser'], 'events': ['pir']},
0x45: {'name': 'iBS09LX', 'fields': ['fieldDummy', 'fieldLux', 'fieldUser'], 'events': ['button']},
0x48: {'name': 'iBS08', 'fields': ['fieldTempEnv', 'fieldTemp', 'fieldUser'], 'events': ['detect']},
}

Expand Down
22 changes: 15 additions & 7 deletions tests/test_ibs08.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,34 +20,42 @@ def test_ibs08t():
assert msd.humidity == 52.3
assert msd.user == 0

def test_ibs08r():
def test_ibs09r():
payload = '02010612FF2C0883BC280100AAAA7200000042090000'
msd = PayloadParser.parse(payload).manufacturerData
assert msd.type == 'iBS08R'
assert msd.type == 'iBS09R'
assert msd.battery == 2.96
assert msd.range == 114
assert msd.user == 0

def test_ibs08ps():
def test_ibs09ps():
payload = '02010612FF2C0883BC1E012021071E00000043010100'
msd = PayloadParser.parse(payload).manufacturerData
assert msd.type == 'iBS08PS'
assert msd.type == 'iBS09PS'
assert msd.battery == 2.86
assert msd.value == 1825
assert msd.counter == 30
assert msd.user == 0
payload = '02010612FF2C0883BC170100B2FF1800000043010100'
msd = PayloadParser.parse(payload).manufacturerData
assert msd.type == 'iBS08PS'
assert msd.type == 'iBS09PS'
assert msd.battery == 2.79
assert msd.value == -78
assert msd.counter == 24
assert msd.user == 0

def test_ibs08pir():
def test_ibs09pir():
payload = '02010612FF2C0883BC4A0110AAAAFFFF000044040000'
msd = PayloadParser.parse(payload).manufacturerData
assert msd.type == 'iBS08PIR'
assert msd.type == 'iBS09PIR'
assert msd.battery == 3.3
assert msd.events.pir == True
assert msd.user == 0

def test_ibs09lx():
payload = '02010612FF2C0883BC280100AAAA7200000045090000'
msd = PayloadParser.parse(payload).manufacturerData
assert msd.type == 'iBS09LX'
assert msd.battery == 2.96
assert msd.lux == 114
assert msd.user == 0

0 comments on commit 9f88eca

Please sign in to comment.