Я провел несколько тестов, пытаясь воспроизвести вашу ошибку, и я думаю, что вы, возможно, боретесь со странным устройством.
Используя точно такой же сценарий, я успешно читаю все точки.
ЕслиЯ могу предложить, однако, объявление вашего устройства с использованием параметров «опрос» по умолчанию будет гарантировать чтение всех точек каждые 10 секунд.
Использование точек приведет к считыванию точек (одна за другой) при вызове, что замедлит процесс.Для этого я бы использовал point.lastValue
Когда устройство внутренне опрашивает свой список точек, оно будет использовать ReadPropertyMultiple, который будет считывать несколько точек и свойств одновременно.Это более эффективно.
Что-то вроде (игра в формате ...):
import BAC0
bacnet = BAC0.lite()
# # Provide it as an argument
fx = BAC0.device('2:5', 5, bacnet)
for name in fx.points_name:
if fx[name].units:
val = '{:>10.2f}'.format(fx[name].lastValue)
units = fx[name].units
else:
units = '({})'.format(fx[name].properties.units_state)
val = '{:>10}'.format(fx[name].lastValue)
print('{:<20} : {} {:<10}'.format(fx[name].properties.name, val, units))
(извлечение результата)
2018-12-06 20:43:17,167 - INFO | Starting BAC0 version 0.99.944 (Lite)
2018-12-06 20:43:17,283 - INFO | Using ip : 192.168.210.11
2018-12-06 20:43:17,285 - INFO | Starting app...
2018-12-06 20:43:17,292 - INFO | BAC0 started
2018-12-06 20:43:17,292 - INFO | Registered as Simple BACnet/IP App
2018-12-06 20:43:19,295 - INFO | Changing device state to DeviceDisconnected'>
2018-12-06 20:43:20,156 - INFO | Changing device state to RPMDeviceConnected'>
2018-12-06 20:43:20,716 - INFO | Device 5:[FX14 0005] found... building points
2018-12-06 20:43:32,691 - INFO | Ready!
2018-12-06 20:43:32,696 - INFO | Polling started, values read every 10 seconds
nvoAI3 : -1.17 degreesCelsius
nvoAI4 : 42.33 percent
nvoAI6 : 354.00 kilopascals
nvoAI5 : 1.85 percent
nvoAI1 : 22.05 degreesCelsius
nvoAI2 : 20.84 degreesCelsius
[...]
nciOvrdDO5.State : 1 (['AUTO', 'ON', 'OFF'])
nvoAlarmPompe : 1 (['OFF', 'ON'])
nvoAlrmGravePompe : 1 (['OFF', 'ON'])
nvoTempOccup : 1 (['OFF', 'ON'])
nciModeOperation : 2 (['ARRET', 'AUTO', 'CHAUFF', 'REFROID', 'ELECTR'])
nciOvrdDO2.State : 1 (['AUTO', 'ON', 'OFF'])
nciOvrdDO3.State : 1 (['AUTO', 'ON', 'OFF'])
nciOvrdDO4.State : 1 (['AUTO', 'ON', 'OFF'])
nciOvrdDO1.State : 1 (['AUTO', 'ON', 'OFF'])
nciModeDeshum : 1 (['Aucune', 'Ventilation', 'Rechauff'])
nciOvrdAO1.State : 2 (['AUTO', 'MAN', '100', '0'])
nciOvrdAO2.State : 1 (['AUTO', 'MAN', '100', '0'])
nvoDI7 : inactive (('Off', 'On'))
nvoDI8 : inactive (('Off', 'On'))
nvoDI10 : inactive (('Off', 'On'))
nvoDI9 : inactive (('Off', 'On'))
nvoDI6 : inactive (('Off', 'On'))
nvoDI4 : inactive (('Off', 'On'))
Если проблемы продолжают возникатьПожалуйста, напишите один здесь: https://github.com/ChristianTremblay/BAC0/issues