Hi Folks,
I'm having trouble running the demo second time followed the steps mentioned http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.meshsdk.v2.0.1%2Fmd_scripts_interactive_pyaci_doc_demo_configuration.html&cp=4_1_0_2_0_2
I have below setup,
Hardware Setup:
1. nRF52832-DK1 Programmed with serial_nrf52832_xxAA_s132_6_0_0.emProject
2. nRF52832-DK2 Programmed with light_switch_server_nrf52832_xxAA_s132_6_0_0.emProject
3. nRF52832-DK3 Programmed with light_switch_client_nrf52832_xxAA_s132_6_0_0.emProject
I followed the steps mentioned for demo project. The very first time nodes were successfully provisioned and able to get the demo working and stopped the interactive_pyaci (exit()). When i start the second time and started the interactive_pyaci again and entered the following command to read the database, while reading the database i'm getting following errors command: db = MeshDB("database/mesh_database.json")
A:\nrf5_SDK_for_Mesh_v2.0.1_src\scripts\interactive_pyaci>python interactive_pyaci.py -d COM8 --no-logfile
To control your device, use d[x], where x is the device index.
Devices are indexed based on the order of the COM ports specified by the -d option.
The first device, d[0], can also be accessed using device.
Type d[x]. and hit tab to see the available methods.
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help.
In [1]: db = MeshDB("database/mesh_database.json")
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
A:\nrf5_SDK_for_Mesh_v2.0.1_src\scripts\interactive_pyaci\interactive_pyaci.py in <module>()
----> 1 db = MeshDB("database/mesh_database.json")
A:\nrf5_SDK_for_Mesh_v2.0.1_src\scripts\interactive_pyaci\mesh\database.py in __init__(self, path)
67 self.iv_index = 0
68 self.iv_update = 0
---> 69 self.load()
70
71 @property
A:\nrf5_SDK_for_Mesh_v2.0.1_src\scripts\interactive_pyaci\mesh\database.py in load(self, path)
86 self.provisioners = [mt.Provisioner(**p) for p in data["provisioners"]]
87 if "nodes" in data:
---> 88 self.nodes = [mt.Node(**n) for n in data["nodes"]]
89 if "groups" in data:
90 self.groups = [mt.Group(**g) for g in data["groups"]]
A:\nrf5_SDK_for_Mesh_v2.0.1_src\scripts\interactive_pyaci\mesh\database.py in <listcomp>(.0)
86 self.provisioners = [mt.Provisioner(**p) for p in data["provisioners"]]
87 if "nodes" in data:
---> 88 self.nodes = [mt.Node(**n) for n in data["nodes"]]
89 if "groups" in data:
90 self.groups = [mt.Group(**g) for g in data["groups"]]
A:\nrf5_SDK_for_Mesh_v2.0.1_src\scripts\interactive_pyaci\mesh\types.py in __init__(self, UUID, device_key, unicast_address, net_keys, config_complete, security, name, cid, vid, pid, crpl, network_transmit, relay_retransmit, features, elements, app_keys, secure_network_beacon, default_TTL)
645 self.crpl = unpack(Identifier, crpl)
646 self.features = unpack(NodeFeatures, features)
--> 647 self.elements = [unpack(Element, e) for e in elements]
648 self.app_keys = [KeyIndex(index) for index in app_keys]
649 self.secure_network_beacon = secure_network_beacon
A:\nrf5_SDK_for_Mesh_v2.0.1_src\scripts\interactive_pyaci\mesh\types.py in <listcomp>(.0)
645 self.crpl = unpack(Identifier, crpl)
646 self.features = unpack(NodeFeatures, features)
--> 647 self.elements = [unpack(Element, e) for e in elements]
648 self.app_keys = [KeyIndex(index) for index in app_keys]
649 self.secure_network_beacon = secure_network_beacon
A:\nrf5_SDK_for_Mesh_v2.0.1_src\scripts\interactive_pyaci\mesh\types.py in unpack(cls, obj)
72 return cls(*obj)
73 elif isinstance(obj, dict):
---> 74 return cls(**obj)
75 else:
76 return cls(obj)
A:\nrf5_SDK_for_Mesh_v2.0.1_src\scripts\interactive_pyaci\mesh\types.py in __init__(self, index, location, models, unicast_address, name)
602 self.index = index
603 self.location = Identifier(location)
--> 604 self.models = [unpack(Model, m) for m in models]
605 if unicast_address:
606 self.unicast_address = UnicastAddress(unicast_address)
A:\nrf5_SDK_for_Mesh_v2.0.1_src\scripts\interactive_pyaci\mesh\types.py in <listcomp>(.0)
602 self.index = index
603 self.location = Identifier(location)
--> 604 self.models = [unpack(Model, m) for m in models]
605 if unicast_address:
606 self.unicast_address = UnicastAddress(unicast_address)
A:\nrf5_SDK_for_Mesh_v2.0.1_src\scripts\interactive_pyaci\mesh\types.py in unpack(cls, obj)
72 return cls(*obj)
73 elif isinstance(obj, dict):
---> 74 return cls(**obj)
75 else:
76 return cls(obj)
A:\nrf5_SDK_for_Mesh_v2.0.1_src\scripts\interactive_pyaci\mesh\types.py in __init__(self, model_id, subscribe, publish, bind, company_id)
588
589 self.subscribe = [any_address(a, allow_unassigned=False) for a in subscribe]
--> 590 self.publish = unpack(Publish, publish)
591 self.bind = [KeyIndex(i) for i in bind]
592
A:\nrf5_SDK_for_Mesh_v2.0.1_src\scripts\interactive_pyaci\mesh\types.py in unpack(cls, obj)
72 return cls(*obj)
73 elif isinstance(obj, dict):
---> 74 return cls(**obj)
75 else:
76 return cls(obj)
A:\nrf5_SDK_for_Mesh_v2.0.1_src\scripts\interactive_pyaci\mesh\types.py in __init__(self, address, index, ttl, period, retransmit, credentials)
362 self.ttl = TTL(ttl)
363 self.period = PublishPeriod(period)
--> 364 self.retransmit = unpack(PublishRetransmit, retransmit)
365 self.credentials = FriendshipCredentials(credentials)
366
A:\nrf5_SDK_for_Mesh_v2.0.1_src\scripts\interactive_pyaci\mesh\types.py in unpack(cls, obj)
72 return cls(*obj)
73 elif isinstance(obj, dict):
---> 74 return cls(**obj)
75 else:
76 return cls(obj)
TypeError: __init__() got an unexpected keyword argument 'interval'
{
"$schema": "",
"appKeys": [
{
"boundNetKey": 0,
"index": 0,
"key": "4f68ad85d9f48ac8589df665b6b49b8a",
"name": "lights"
},
{
"boundNetKey": 0,
"index": 1,
"key": "2aa2a6ded5a0798ceab5787ca3ae39fc",
"name": "locks"
}
],
"groups": [
{
"address": 49153,
"name": "Room 1",
"parentAddress": 0
},
{
"address": 49154,
"name": "Room 2",
"parentAddress": 0
}
],
"ivIndex": 0,
"ivUpdate": 0,
"meshName": "BT Mesh",
"meshUUID": "01020304050607080102030405060708",
"netKeys": [
{
"index": 0,
"key": "18eed9c2a56add85049ffc3c59ad0e12",
"minSecurity": "low",
"name": "root",
"phase": 0
}
],
"nodes": [
{
"UUID": "0059ffff0000000023ed93861a057ff9",
"appKeys": [
0
],
"cid": "0059",
"configComplete": false,
"crpl": "0020",
"deviceKey": "5d720152ab1a395927e08c2618976d44",
"elements": [
{
"index": 0,
"location": "0000",
"models": [
{
"modelId": "0000"
},
{
"modelId": "0002"
},
{
"bind": [
0
],
"modelId": "00590000"
}
]
}
],
"features": {
"friend": 2,
"lowPower": 2,
"proxy": 2,
"relay": 0
},
"name": "Light bulb",
"netKeys": [
0
],
"pid": "0000",
"security": "low",
"unicastAddress": 16,
"vid": "0000"
},
{
"UUID": "0059abcdefabcdefaccdefabcdefabcd",
"appKeys": [
0
],
"cid": "0059",
"configComplete": false,
"crpl": 32,
"deviceKey": "101b9992f719f5fba1139a7da4807cbf",
"elements": [
{
"index": 0,
"location": "0000",
"models": [
{
"modelId": "0000"
},
{
"modelId": "0002"
}
]
},
{
"index": 1,
"location": "0000",
"models": [
{
"bind": [
0
],
"modelId": "00590001",
"publish": {
"address": 16,
"credentials": 0,
"index": 0,
"period": 0,
"retransmit": {
"count": 0,
"interval": 50
},
"ttl": 1
}
}
]
},
{
"index": 2,
"location": "0000",
"models": [
{
"modelId": "00590001"
}
]
},
{
"index": 3,
"location": "0000",
"models": [
{
"modelId": "00590001"
}
]
},
{
"index": 4,
"location": "0000",
"models": [
{
"modelId": "00590001"
}
]
}
],
"features": {
"friend": 2,
"lowPower": 2,
"proxy": 2,
"relay": 0
},
"name": "Light switch",
"netKeys": [
0
],
"pid": "0000",
"security": "low",
"unicastAddress": 17,
"vid": "0000"
}
],
"provisioners": [
{
"UUID": "00000000000000000000000000000000",
"allocatedGroupRange": [
{
"highAddress": 65279,
"lowAddress": 49152
}
],
"allocatedUnicastRange": [
{
"highAddress": 32767,
"lowAddress": 16
}
],
"name": "BT Mesh Provisioner"
}
],
"timestamp": "2018-05-15 21:51:40.737473"
}