You can subscribe to this list here.
2007 |
Jan
(3) |
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(10) |
Sep
|
Oct
|
Nov
(26) |
Dec
|
2010 |
Jan
|
Feb
(13) |
Mar
(8) |
Apr
|
May
(3) |
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
|
2011 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
|
May
(13) |
Jun
(12) |
Jul
(8) |
Aug
(41) |
Sep
(7) |
Oct
(12) |
Nov
(10) |
Dec
(7) |
2012 |
Jan
(15) |
Feb
|
Mar
|
Apr
|
May
(13) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(5) |
Nov
|
Dec
(2) |
2013 |
Jan
(8) |
Feb
(7) |
Mar
(3) |
Apr
|
May
(23) |
Jun
(11) |
Jul
(11) |
Aug
|
Sep
(10) |
Oct
(4) |
Nov
|
Dec
(1) |
2014 |
Jan
(1) |
Feb
(40) |
Mar
(17) |
Apr
(5) |
May
(7) |
Jun
(4) |
Jul
(13) |
Aug
(6) |
Sep
(16) |
Oct
(13) |
Nov
(2) |
Dec
(9) |
2015 |
Jan
(12) |
Feb
(27) |
Mar
(4) |
Apr
(18) |
May
(20) |
Jun
(8) |
Jul
(2) |
Aug
(24) |
Sep
(1) |
Oct
(8) |
Nov
(16) |
Dec
(2) |
2016 |
Jan
(7) |
Feb
(9) |
Mar
(3) |
Apr
(4) |
May
(1) |
Jun
(7) |
Jul
(9) |
Aug
(22) |
Sep
(4) |
Oct
(1) |
Nov
(5) |
Dec
(1) |
2017 |
Jan
|
Feb
|
Mar
(7) |
Apr
|
May
(2) |
Jun
(1) |
Jul
(1) |
Aug
|
Sep
(5) |
Oct
(3) |
Nov
|
Dec
|
2018 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
(5) |
Jul
(9) |
Aug
|
Sep
(2) |
Oct
(3) |
Nov
(2) |
Dec
|
2019 |
Jan
|
Feb
(5) |
Mar
(5) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
(1) |
Mar
|
Apr
(5) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Joel J. B. <jj...@co...> - 2020-04-29 13:43:29
|
> (1) What is the request that needs to be made to get the attributes of the file like the file size, type of the file (binary/text), file name etc? In BACnet file is an object like other objects, all objects have properties like an object name (written Object_Name in the standard and objectName in BACpypes), so to read these properties you use the Read Property service. Check the readable/writable/optional properties in the FileObject class in bacpypes.object module. > (2) Similarly, when we do a Write, how do we specify the name of the file , attributes like type of file etc. Use the WriteProperty service, and be forewarned that most properties are only required to be readable, not both readable and writable. Joel |
From: Raghavan V. <rag...@ri...> - 2020-04-28 05:48:31
|
Hi, I have been looking at the ReadWriteFile.py in samples to be able to read/write a File Object. The readstream <addr> <inst> <start> <count> fetches the content of the file for the specified count. The writestream <addr> <inst> <start> <data> sets the content of a file. My questions are , (1) What is the request that needs to be made to get the attributes of the file like the file size, type of the file (binary/text), file name etc ? This needs to be done BEFORE we actually fetch the file content. (2) Similarly, when we do a Write, how do we specify the name of the file , attributes like type of file etc. Thanks. Bye, Raghavan V |
From: Christian T. <chr...@se...> - 2020-04-14 13:42:40
|
Guess I can close this now ! https://github.com/bacnet-stack/bacnet-stack/issues/44 I will test that... thanks ! *Christian Tremblay, ing.* *Tél :* 450-305-6177, 225 *Cell :* 450-577-0538 *Courriel :* chr...@se... *Prenez* *le contrôle **de votre bâtiment* Le lun. 13 avr. 2020 à 12:54, Raghavan Viswanathan <rag...@ri...> a écrit : > Joel/skarg, > > My name is Raghavan. I work at RiptideIO , a start up in the Building > Management Space - https://riptideio.com/ > > I had been working on getting MS/TP support to bacpypes for sometime. We > were able to get bacpypes working on MS/TP networks. This was achieved by > using the dlmstp_xxx functions in skarg's awesome bacnet-stack-0.8.4 to > take care of the MS/TP part. The dlmstp_xxx functions are part of the a > libmstp library. The bacpypes application makes a "init" call into the > library using the python cdll interface. The threads that are spawned in > libmstp are not constrained by Global Interpreter Lock since they > read/write to sockets and have no python interface to cater to except for > the "init" call at the start. This helps in meeting the strict timings that > MSTP demands without being hurt by GIL. > > I have done this work on Linux platform using python 2.7 > > The project is hosted at - https://github.com/riptideio/misty > > I have been able to test with quite a number BACnet devices from KMC and > others. It has been working well so far. You could try it out without > having the Hardware devices too using 'socat' utility as explained on the > github page. > > The good part is that it is fairly easy to convert any of the BIP > Applications to MSTP Application. The github page explains how to do that. > I have "converted" a few of them myself and it was relatively easy. > > Thought it might be an interesting project for you guys, given your > commendable work in this area. > > Please let me know if you have any questions. I will be very glad to > answer. > > Bye, > Raghavan V > rag...@ri... > > > > _______________________________________________ > BACpypes-developers mailing list > BAC...@li... > https://lists.sourceforge.net/lists/listinfo/bacpypes-developers > |
From: John M. <jh...@gm...> - 2020-04-13 17:39:16
|
Way to go Steve K!! Sent from my iPhone > On Apr 13, 2020, at 9:54 AM, Raghavan Viswanathan <rag...@ri...> wrote: > > > Joel/skarg, > > My name is Raghavan. I work at RiptideIO , a start up in the Building Management Space - https://riptideio.com/ > > I had been working on getting MS/TP support to bacpypes for sometime. We were able to get bacpypes working on MS/TP networks. This was achieved by using the dlmstp_xxx functions in skarg's awesome bacnet-stack-0.8.4 to take care of the MS/TP part. The dlmstp_xxx functions are part of the a libmstp library. The bacpypes application makes a "init" call into the library using the python cdll interface. The threads that are spawned in libmstp are not constrained by Global Interpreter Lock since they read/write to sockets and have no python interface to cater to except for the "init" call at the start. This helps in meeting the strict timings that MSTP demands without being hurt by GIL. > > I have done this work on Linux platform using python 2.7 > > The project is hosted at - https://github.com/riptideio/misty > > I have been able to test with quite a number BACnet devices from KMC and others. It has been working well so far. You could try it out without having the Hardware devices too using 'socat' utility as explained on the github page. > > The good part is that it is fairly easy to convert any of the BIP Applications to MSTP Application. The github page explains how to do that. I have "converted" a few of them myself and it was relatively easy. > > Thought it might be an interesting project for you guys, given your commendable work in this area. > > Please let me know if you have any questions. I will be very glad to answer. > > Bye, > Raghavan V > rag...@ri... > > > > _______________________________________________ > BACpypes-developers mailing list > BAC...@li... > https://lists.sourceforge.net/lists/listinfo/bacpypes-developers |
From: Raghavan V. <rag...@ri...> - 2020-04-13 16:54:17
|
Joel/skarg, My name is Raghavan. I work at RiptideIO , a start up in the Building Management Space - https://riptideio.com/ I had been working on getting MS/TP support to bacpypes for sometime. We were able to get bacpypes working on MS/TP networks. This was achieved by using the dlmstp_xxx functions in skarg's awesome bacnet-stack-0.8.4 to take care of the MS/TP part. The dlmstp_xxx functions are part of the a libmstp library. The bacpypes application makes a "init" call into the library using the python cdll interface. The threads that are spawned in libmstp are not constrained by Global Interpreter Lock since they read/write to sockets and have no python interface to cater to except for the "init" call at the start. This helps in meeting the strict timings that MSTP demands without being hurt by GIL. I have done this work on Linux platform using python 2.7 The project is hosted at - https://github.com/riptideio/misty I have been able to test with quite a number BACnet devices from KMC and others. It has been working well so far. You could try it out without having the Hardware devices too using 'socat' utility as explained on the github page. The good part is that it is fairly easy to convert any of the BIP Applications to MSTP Application. The github page explains how to do that. I have "converted" a few of them myself and it was relatively easy. Thought it might be an interesting project for you guys, given your commendable work in this area. Please let me know if you have any questions. I will be very glad to answer. Bye, Raghavan V rag...@ri... |
From: Damien P. <dam...@ku...> - 2020-02-04 16:43:31
|
Dear, I'm running a simple bacnet server on a computer using https://sourceforge.net/projects/bacnet/files/bacnet-tools/bacnet-tools-0.8.6/ on port 47810. I can interact with it from the same computer using BACpypes. I then try to read it from a second computer on the same network, using ReadWriteProperty.py on port 47808 but I do not get any response. I suspect that the router might be the problem. Therefore, I use WhoIsRouter.py with the wirtn* command to find the router number. This returns the router number of other BACnet devices also present on the same network but not the router number from my simple bacnet server. I then tried to use the wirtn IP-address:47810 but I still don't get any router address. Could somebody maybe help me out? Thank you in advance, Regards, Damien? |
From: Joel B. <jo...@ca...> - 2019-03-16 01:05:00
|
> I'll find a copy and put it back in > the sample code directory. The stage branch has the sample application restored. Digging a little deeper, you can (eventually) see that the applications use two different BVLL service objects. For the truly adventurous there is a "switch" sample in the sandbox directory that would allow an application to "switch" back and forth between a simple device and a foreign device while the application is running. Joel |
From: Joel J. B. <jj...@co...> - 2019-03-15 18:23:10
|
Damien, > I have try to use the BBMD.py but I can’t get it working. It probably is working, you just don't know it yet :-). $ python samples/ReadProperty.py --ini BACpypes.ini This is the wrong sample code when your application needs to behave as a foreign device, use the ReadPropertyForeign.py sample ... wait, where the hell did that code go ... grrr. I'll find a copy and put it back in the sample code directory. > read 1009:0xfb9b01000000 device:105467 objectName This command is attempting to read from a device on a "remote" network and it needs to find the router to that network. It will broadcast a Who-Is-Router-To-Network message, which is a broadcast service which goes to all of the other 47809 devices (which there are none) so the request times out. So you may not realize that the application needs broadcast services sometimes. You can prevent this by telling the application where the router is before attempting your read request with the "rtn" command which jams the entry into the routing table in the network layer of your application: > rtn 10.143.132.99 1009 Putting in the correct IP address of course. If you don't know which device is the router, run the WhoIsRouter.py sample application (running on the 47808 port so it's in the "broadcast domain") and give it this: > wirtn * From the message(s) you get back at least one should have 1009 in it (and hopefully not more than one). Joel |
From: Damien P. <dam...@ku...> - 2019-03-15 16:55:15
|
Dear, Thank you very much for your reply! What is not yet 100% clear to me is: why do I encounter problem with ReadProperty when I use port 47809 instead of 47808, while this is a unicast? I have try to use the BBMD.py but I can’t get it working. Here under is my code. Could you maybe help me out? Thanks a lot, Damien dap@dapDeb:~/code/python/bacpypes$ cat BACpypes.ini [BACpypes] objectName: DaP3 address: 10.143.132.23/24:47808 objectIdentifier: 601 maxApduLengthAccepted: 1024 segmentationSupported: segmentedBoth vendorIdentifier: 15 foreignBBMD: 10.143.132.23:47808 foreignTTL: 30 dap@dapDeb:~/code/python/bacpypes$ python samples/DeviceDiscovery.py --ini BACpypes.ini > whois > 105457 is at 1007:0xf19b01000000 named 'Priva ALSB (1552000138) BRUPOTT' 105467 is at 1009:0xfb9b01000000 named 'Priva Stookplaats-2 (1544029585) BRUPOTT' 105003 is at 1002:0x2b9a01000000 named 'Priva OS-1-Warmtepompen (1552000174) BRUPOTT' 105002 is at 1001:0x2a9a01000000 named 'Priva Stookplaats-1 (1517020846) BRUPOTT' 105327 is at 1005:0x6f9b01000000 named 'Priva Onderstation-St-Idesbald (1448040918) BRUPOTT' 105006 is at 1004:0x2e9a01000000 named 'Priva Onderstation-Peterselies (1448040707) BRUPOTT' 105469 is at 1010:0xfd9b01000000 named 'Priva OS-1-Koeling (1552000180) BRUPOTT' 105466 is at 1008:0xfa9b01000000 named 'Priva Onderstation-Kant-Tuin-2 (1539005576) BRUPOTT' 105385 is at 1006:0xa99b01000000 named 'Priva Onderstation-Klooster (1448040726) BRUPOTT' 105004 is at 1003:0x2c9a01000000 named 'Priva Onderstation-Kant-Tuin-1 (1448040792) BRUPOTT' > exit() Exiting... dap@dapDeb:~/code/python/bacpypes$ python samples/ReadProperty.py --ini BACpypes.ini > read 1009:0xfb9b01000000 device:105467 objectName Priva Stookplaats-2 (1544029585) BRUPOTT dap@dapDeb:~/code/python/bacpypes$ vim BACpypes.ini dap@dapDeb:~/code/python/bacpypes$ cat BACpypes.ini [BACpypes] objectName: DaP3 address: 10.143.132.23/24:47809 objectIdentifier: 601 maxApduLengthAccepted: 1024 segmentationSupported: segmentedBoth vendorIdentifier: 15 foreignBBMD: 10.143.132.23:47808 foreignTTL: 30 dap@dapDeb:~/code/python/bacpypes$ python samples/ReadProperty.py --ini BACpypes.ini > read 1009:0xfb9b01000000 device:105467 objectName noResponse > exit Exiting... dap@dapDeb:~/code/python/bacpypes$ python samples/BBMD.py 10.143.132.23/24:47808 & [1] 25763 dap@dapDeb:~/code/python/bacpypes$ python samples/ReadProperty.py --ini BACpypes.ini > read 1009:0xfb9b01000000 device:105467 objectName noResponse > From: Joel J. Bender <jj...@co...> Sent: 15 March 2019 15:43 To: Discussion about developing BACpypes <bac...@li...> Subject: Re: [BACpypes-developers] Problem with readProperty and DeviceDiscovery Damien, The “trick” is to run a BBMD in one process on the standard port 47808, and then run your clients as “foreign devices” on alternate ports (and it can be any port it would like). The foreign device “registers” with the BBMD so broadcast traffic is handled by the BBMD on behalf of the registered foreign devices. Unicast traffic (like confirmed services) does not use the BBMD, and BACnet devices are designed to respond to the source of a request. You can run as many foreign device applications on your system as you would like, or even on other systems. Joel From: Damien Picard <dam...@ku...<mailto:dam...@ku...>> Reply-To: Discussion about developing BACpypes <bac...@li...<mailto:bac...@li...>> Date: Friday, March 15, 2019 at 10:27 AM To: Discussion about developing BACpypes <bac...@li...<mailto:bac...@li...>> Subject: Re: [BACpypes-developers] Problem with readProperty and DeviceDiscovery Dear, I got a bit wiser: the reason why DevicesDiscovery did not work was that I was working on port 47809 (instead of 47808). As long as I’m using port 47808 in my .ini file, DevicesDiscovery and ReadProperty work properly. However, I’m using different processes at the same time and I therefore need to use different ports at the same time. Using different ports is not a problem in the 3 differents buildings I was working so far. How can I solve this problem? Is it related to the fact that no BBMD is running? I tried to use BBMD.py but so far, this did not solve my problem. Thanks a lot in advance, Regards, Damien From: Damien Picard Sent: 14 March 2019 20:37 To: Discussion about developing BACpypes <bac...@li...<mailto:bac...@li...>> Subject: Problem with readProperty and DeviceDiscovery Dear, I’m using BACpypes successfully in three different buildings. I’m trying now to use it on a fourth building but I experience the following problems: 1. Using samples/DeviceDiscovery.py, I’m trying to get the address of the different devices but I get no response from whois. Notice that I’m working directly on the network where the bacnet devices are running. I therefore have no BBMD. 2. Using InneaBacnetExplorer on the same computer, I’m able to see all the devices: [cid:image001.jpg@01D4DB43.94DFE560] 3. When I try to read the devices directly using samples/ReadProperty.py, I don’t get any responses either. Following a previous advice from Joel, I have tried to add the router number using rtn. However, as I did not manage to run a DeviceDiscovery, I’m trying to get the router number using Wireshark. Unfortunately, it did not help: [cid:image002.jpg@01D4DB43.94DFE560] Could somebody help me out? Thanks a lot! Damien |
From: Joel J. B. <jj...@co...> - 2019-03-15 15:15:09
|
Damien, The “trick” is to run a BBMD in one process on the standard port 47808, and then run your clients as “foreign devices” on alternate ports (and it can be any port it would like). The foreign device “registers” with the BBMD so broadcast traffic is handled by the BBMD on behalf of the registered foreign devices. Unicast traffic (like confirmed services) does not use the BBMD, and BACnet devices are designed to respond to the source of a request. You can run as many foreign device applications on your system as you would like, or even on other systems. Joel From: Damien Picard <dam...@ku...> Reply-To: Discussion about developing BACpypes <bac...@li...> Date: Friday, March 15, 2019 at 10:27 AM To: Discussion about developing BACpypes <bac...@li...> Subject: Re: [BACpypes-developers] Problem with readProperty and DeviceDiscovery Dear, I got a bit wiser: the reason why DevicesDiscovery did not work was that I was working on port 47809 (instead of 47808). As long as I’m using port 47808 in my .ini file, DevicesDiscovery and ReadProperty work properly. However, I’m using different processes at the same time and I therefore need to use different ports at the same time. Using different ports is not a problem in the 3 differents buildings I was working so far. How can I solve this problem? Is it related to the fact that no BBMD is running? I tried to use BBMD.py but so far, this did not solve my problem. Thanks a lot in advance, Regards, Damien From: Damien Picard Sent: 14 March 2019 20:37 To: Discussion about developing BACpypes <bac...@li...> Subject: Problem with readProperty and DeviceDiscovery Dear, I’m using BACpypes successfully in three different buildings. I’m trying now to use it on a fourth building but I experience the following problems: 1. Using samples/DeviceDiscovery.py, I’m trying to get the address of the different devices but I get no response from whois. Notice that I’m working directly on the network where the bacnet devices are running. I therefore have no BBMD. 2. Using InneaBacnetExplorer on the same computer, I’m able to see all the devices: [cid:image001.jpg@01D4DB43.94DFE560] 3. When I try to read the devices directly using samples/ReadProperty.py, I don’t get any responses either. Following a previous advice from Joel, I have tried to add the router number using rtn. However, as I did not manage to run a DeviceDiscovery, I’m trying to get the router number using Wireshark. Unfortunately, it did not help: [cid:image002.jpg@01D4DB43.94DFE560] Could somebody help me out? Thanks a lot! Damien |
From: Damien P. <dam...@ku...> - 2019-03-15 14:27:41
|
Dear, I got a bit wiser: the reason why DevicesDiscovery did not work was that I was working on port 47809 (instead of 47808). As long as I'm using port 47808 in my .ini file, DevicesDiscovery and ReadProperty work properly. However, I'm using different processes at the same time and I therefore need to use different ports at the same time. Using different ports is not a problem in the 3 differents buildings I was working so far. How can I solve this problem? Is it related to the fact that no BBMD is running? I tried to use BBMD.py but so far, this did not solve my problem. Thanks a lot in advance, Regards, Damien From: Damien Picard Sent: 14 March 2019 20:37 To: Discussion about developing BACpypes <bac...@li...> Subject: Problem with readProperty and DeviceDiscovery Dear, I'm using BACpypes successfully in three different buildings. I'm trying now to use it on a fourth building but I experience the following problems: 1. Using samples/DeviceDiscovery.py, I'm trying to get the address of the different devices but I get no response from whois. Notice that I'm working directly on the network where the bacnet devices are running. I therefore have no BBMD. 2. Using InneaBacnetExplorer on the same computer, I'm able to see all the devices: [cid:image001.jpg@01D4DB43.94DFE560] 3. When I try to read the devices directly using samples/ReadProperty.py, I don't get any responses either. Following a previous advice from Joel, I have tried to add the router number using rtn. However, as I did not manage to run a DeviceDiscovery, I'm trying to get the router number using Wireshark. Unfortunately, it did not help: [cid:image002.jpg@01D4DB43.94DFE560] Could somebody help me out? Thanks a lot! Damien |
From: Christian T. <chr...@se...> - 2019-02-27 04:19:05
|
You could explore the path of writeMultiple and write all you need at once on each device. Le mar. 26 févr. 2019 à 18:17, Joel J. Bender <jj...@co...> a écrit : > Damien, > > > > Surprisingly, when I run the 28 processes at the same time, I get AbortPDU > (with reason *other*) for each variable. I don’t have that problem if I > run only 15 processes instead of 28. > > > > Yep, that’s weird, I can’t find anywhere in the code that it would raise > that, it would be in the application service layer being sent upstream to > your application. Can you confirm that this is coming from one of the > servers you are talking to? It doesn’t seem like it would be a port > numbering issue, so maybe it’s a socket problem? You have two sockets for > each process, but that shouldn’t be a big deal. > > > > I would also be concerned about lots of communications to devices that are > on an MS/TP network downstream of an IP router. If they are all on the > same network you could be flooding the router, and since (effectively) only > one device is going to respond at a time, you’re not actually improving the > total overall throughput. > > > > > > Joel > > > _______________________________________________ > BACpypes-developers mailing list > BAC...@li... > https://lists.sourceforge.net/lists/listinfo/bacpypes-developers > -- *Christian Tremblay, ing.* *Tél :* 450-305-6177, 225 *Cell :* 450-577-0538 *Courriel :* chr...@se... *Prenez* *le contrôle **de votre bâtiment* |
From: Joel J. B. <jj...@co...> - 2019-02-26 23:24:38
|
Luke, This happens to me when I install BACpypes for more than one version of Python without clearing out the build/ and dist/ directories between setup.py build install iterations. There seems to be checking for the existence of a .pyc file that gets short-circuited so the bytecode for one version gets install in the path of the other version. Joel |
From: Joel J. B. <jj...@co...> - 2019-02-26 23:17:34
|
Damien, Surprisingly, when I run the 28 processes at the same time, I get AbortPDU (with reason other) for each variable. I don’t have that problem if I run only 15 processes instead of 28. Yep, that’s weird, I can’t find anywhere in the code that it would raise that, it would be in the application service layer being sent upstream to your application. Can you confirm that this is coming from one of the servers you are talking to? It doesn’t seem like it would be a port numbering issue, so maybe it’s a socket problem? You have two sockets for each process, but that shouldn’t be a big deal. I would also be concerned about lots of communications to devices that are on an MS/TP network downstream of an IP router. If they are all on the same network you could be flooding the router, and since (effectively) only one device is going to respond at a time, you’re not actually improving the total overall throughput. Joel |
From: Luke M. <Lu...@pr...> - 2019-02-26 20:43:59
|
Hi all, I've written some modules that use BACpypes to help me script some testing. When I call the scripts directly I don't get any warnings. When I call them in a unittest test case I get the following warning: C:\Program Files\Python36\lib\site-packages\bacpypes\app.py:235: DeprecationWarning: local address at the application layer deprecated Does anyone know why this may be happening? It's filling my test logs up with a lot of extra junk. Thanks, Luke Marvin Price Industries |
From: Damien P. <dam...@ku...> - 2019-02-26 14:01:06
|
Dear Joel, I need to read and write many BACnet variables to 28 different controllers which are fairly slow. In order to speed up the process, I have split my BACnet variables into groups belonging to one controller each and I'm reading them in parallel using multiprocessing. Each process uses the same IP address but with a different port (port ranging from 49152 to 49200). Surprisingly, when I run the 28 processes at the same time, I get AbortPDU (with reason other) for each variable. I don't have that problem if I run only 15 processes instead of 28. Could you maybe help me out? Thanks a lot in advance, Regards, Damien |
From: Luke M. <Lu...@pr...> - 2018-11-22 16:40:51
|
Hi all, I see what I was doing incorrectly now. I can see the broadcast going out over wireshark. cv = ChannelValue(enumerated=1) gcv = GroupChannelValue( channel = 1, value = cv ) change_list = [gcv] writegroup_request = WriteGroupRequest( groupNumber = 0, writePriority = 16, changeList = change_list ) writegroup_request.pduDestination = LocalBroadcast() # make an IOCB iocb = IOCB(writegroup_request) # give it to the application this_application.request_io(iocb) Thanks, Luke Marvin Senior Embedded Software Designer Price Industries Limited 638 Raleigh Street | Winnipeg, MB | R2K 3Z9 Phone: 204-669-4220, ext. 7719 | Mobile: 204-295-3792 lu...@pr...<mailto:lu...@pr...> | http://www.priceindustries.com/ From: Luke Marvin <Lu...@pr...> Sent: November 22, 2018 9:33 AM To: bac...@li... Subject: [BACpypes-developers] Help with WriteGroupRequest, GroupChannelValue, and ChannelValue Hi there, I'm trying to write a script to send a WriteGroupRequest to Group 1, Channel 1, with an enumerated value of 1. I have the following: cv = ChannelValue() gcv = GroupChannelValue( channel = 1, value = cv ) change_list = [gcv] writegroup_request = WriteGroupRequest( groupNumber = 1, writePriority = 16, changeList = change_list ) writegroup_request.pduDestination = LocalBroadcast() # make an IOCB iocb = IOCB(writegroup_request) # give it to the application this_application.request_io(iocb) The part I can't figure out is how to initialize the ChannelValue object as an enumerated type and where the value goes. Can anyone explain this for me? Thanks, Luke Marvin Senior Embedded Software Designer Price Industries Limited 638 Raleigh Street | Winnipeg, MB | R2K 3Z9 Phone: 204-669-4220, ext. 7719 | Mobile: 204-295-3792 lu...@pr...<mailto:lu...@pr...> | http://www.priceindustries.com/ |
From: Luke M. <Lu...@pr...> - 2018-11-22 15:51:13
|
Hi there, I'm trying to write a script to send a WriteGroupRequest to Group 1, Channel 1, with an enumerated value of 1. I have the following: cv = ChannelValue() gcv = GroupChannelValue( channel = 1, value = cv ) change_list = [gcv] writegroup_request = WriteGroupRequest( groupNumber = 1, writePriority = 16, changeList = change_list ) writegroup_request.pduDestination = LocalBroadcast() # make an IOCB iocb = IOCB(writegroup_request) # give it to the application this_application.request_io(iocb) The part I can't figure out is how to initialize the ChannelValue object as an enumerated type and where the value goes. Can anyone explain this for me? Thanks, Luke Marvin Senior Embedded Software Designer Price Industries Limited 638 Raleigh Street | Winnipeg, MB | R2K 3Z9 Phone: 204-669-4220, ext. 7719 | Mobile: 204-295-3792 lu...@pr...<mailto:lu...@pr...> | http://www.priceindustries.com/ |
From: Joel J. B. <jj...@co...> - 2018-10-08 19:29:22
|
How am I supposed to do this now? Passing it to the constructor did not work either. The protocol services supported is now constructed from introspection and built into the LocalDeviceObject: https://github.com/JoelBender/bacpypes/wiki/Release-Notes#automatic-protocol-services-supported Notice that the CurrentProtocolServicesSupported property builds the value at the time that it's needed rather than having a static object that needs to be maintained. The up side is that it reduces the boiler plate startup code and when you add or remove services the correct value is returned, the down side is that it makes it harder for the application to say that it supports something it doesn’t or to not say that it supports something it does. Joel |
From: Damien P. <dam...@ku...> - 2018-10-08 15:19:56
|
Commenting out that line worked for me. #this_device.protocolServicesSupported = pss.value On 8 Oct 2018 17:08, Maik Schmidt <mai...@tu...> wrote: Hi, short question: I have a working BACnet server application that has been implemented using an older version of BACpypes. I tried to adjust this to the most recent version, but keep getting an exception when trying to set the supported services for my LocalDeviceObject. It looks something like this: pss = ServicesSupported() pss['whoIs'] = 1 pss['iAm'] = 1 ... this_device = LocalDeviceObject( objectName=...) #shortened for readability this_device.protocolServicesSupported = pss.value This used to work just fine, but now with the latest version I get the error: Traceback (most recent call last): File "./BACnet-server.py", line 333, in <module> this_device.protocolServicesSupported = pss.value File "/usr/local/lib/python2.7/dist-packages/bacpypes/object.py", line 552, in __setattr__ return prop.WriteProperty(self, value, direct=True) File "/usr/local/lib/python2.7/dist-packages/bacpypes/local/device.py", line 85, in WriteProperty raise ExecutionError(errorClass='property', errorCode='writeAccessDenied') bacpypes.errors.ExecutionError: ('property', 'writeAccessDenied') How am I supposed to do this now? Passing it to the constructor did not work either. Thanks for any help in advance, Maik |
From: Maik S. <mai...@tu...> - 2018-10-08 14:42:25
|
Hi, short question: I have a working BACnet server application that has been implemented using an older version of BACpypes. I tried to adjust this to the most recent version, but keep getting an exception when trying to set the supported services for my LocalDeviceObject. It looks something like this: pss = ServicesSupported() pss['whoIs'] = 1 pss['iAm'] = 1 ... this_device = LocalDeviceObject( objectName=...) #shortened for readability this_device.protocolServicesSupported = pss.value This used to work just fine, but now with the latest version I get the error: Traceback (most recent call last): File "./BACnet-server.py", line 333, in <module> this_device.protocolServicesSupported = pss.value File "/usr/local/lib/python2.7/dist-packages/bacpypes/object.py", line 552, in __setattr__ return prop.WriteProperty(self, value, direct=True) File "/usr/local/lib/python2.7/dist-packages/bacpypes/local/device.py", line 85, in WriteProperty raise ExecutionError(errorClass='property', errorCode='writeAccessDenied') bacpypes.errors.ExecutionError: ('property', 'writeAccessDenied') How am I supposed to do this now? Passing it to the constructor did not work either. Thanks for any help in advance, Maik |
From: Damien P. <dam...@ku...> - 2018-09-13 18:29:47
|
Dear Joel, Sorry to bother you again. Using version v0.17.4, I can read properties. For example, following line works fine: > read 10523:0x2a9a01000000 analogInput 28 objectName T10 AI - 28 However, when I try to read its presentValue, I get the following error message: > read 10523:0x2a9a01000000 analogInput 28 presentValue property: readAccessDenied Is there something in the configuration of the controller when prevent me from reading the value? Thank you very much in advance, Regards, Damien |
From: Damien P. <dam...@ku...> - 2018-09-13 15:26:10
|
Dear Joel, Since the new version bacpypes v0.17.5, I get the following error while using samples\readProperty.py: D:\shared\bacpypes>python samples\ReadProperty.py --ini BACpypes.ini > read 10523:0x2f9a01000000 analogValue:363 presentValue ERROR:__main__.ReadPropertyConsoleCmd:exception: TypeError('invalid constructor datatype',) Traceback (most recent call last): File "samples\ReadProperty.py", line 49, in do_read obj_id = ObjectIdentifier(obj_id).value File "C:\Program Files\Python36\lib\site-packages\bacpypes\primitivedata.py", line 1660, in __init__ raise TypeError("invalid constructor datatype") TypeError: invalid constructor datatype I have tried the previous syntax as well but I get the same error > read 10523:0x2f9a01000000 analogValue 363 presentValue Could you maybe help me further? And second question: is it correct that I do not need an active BBMD for readProperty, even if I'm on another network? I have further realized that I did not need to set up a BBMD while using DeviceDiscoveryForeign as long as there is a BBMD active on the controller network and that BACpypes.ini is correctly configured. What puzzles me, is that when I set up a BBMD with bacpypes, DeviceDiscovery does not work and I still have to use DeviceDiscoveryForeign. Any tips about this? Thank you very much in advance! Regards, Damien |
From: Roel De C. (3E) <Roe...@3e...> - 2018-07-16 19:15:23
|
Hi Joel, thanks for your quick response. I've played around a bit more with different commands (I had already tried some of your suggestions). The good news: I solved the issue: my config did not specify the subnet mask in my IP address. So by simply adding /24 in the IP address I suddenly could discover all other bacnet devices: > whois > pduSource = <Address 10.2.250.4> iAmDeviceIdentifier = ('device', 1049476) maxAPDULengthAccepted = 1476 segmentationSupported = segmentedBoth vendorID = 7 pduSource = <Address 10.2.250.1> iAmDeviceIdentifier = ('device', 1050625) maxAPDULengthAccepted = 206 segmentationSupported = segmentedBoth vendorID = 7 pduSource = <RemoteStation 1:0x0101> iAmDeviceIdentifier = ('device', 2098177) maxAPDULengthAccepted = 206 segmentationSupported = segmentedBoth vendorID = 7 pduSource = <RemoteStation 1:0x0102> iAmDeviceIdentifier = ('device', 2098178) maxAPDULengthAccepted = 206 segmentationSupported = segmentedBoth vendorID = 7 pduSource = <RemoteStation 1:0x0103> iAmDeviceIdentifier = ('device', 2098179) maxAPDULengthAccepted = 206 segmentationSupported = segmentedBoth vendorID = 7 pduSource = <RemoteStation 1:0x0104> iAmDeviceIdentifier = ('device', 2098180) maxAPDULengthAccepted = 206 segmentationSupported = segmentedBoth vendorID = 7 pduSource = <RemoteStation 1:0x0179> iAmDeviceIdentifier = ('device', 1050421) maxAPDULengthAccepted = 206 segmentationSupported = segmentedBoth vendorID = 7 So the bacnet device I knew should exist (from the info the installer gave me) is at pduSource = <RemoteStation 1:0x0101> and the two other LON controllers will be mapped to RemoteStation 1:0x0102 and RemoteStation 1:0x0103 I suspect. I can now get the objectList of each of these devices, so I'm good. Sorry to have bothered you, it turns out that the subnet mask is really crucial in the configuration. Kind regards, roel ________________________________ From: Joel Bender <jo...@ca...> Sent: 16 July 2018 03:53 To: Discussion about developing BACpypes; Roel De Coninck (3E) Cc: Dirk Devriendt (3E) Subject: Re: [BACpypes-developers] Bacnet router/gateway Roel, > I'm stuck on a situation we never had before when using bacpypes. My life every day :-). > This bacnet network has a single bacnet device (I guess you could > call it a gateway): it is connected to 3 LON controllers that do not > speak bacnet. It could be a single device, or it could be a single device and also a router to a virtual network of other devices. I would not be surprised if each of the LON controllers are mapped as a separate BACnet device. > I get a response from the gateway on my whois command: > >> whois 1050625 is at 10.2.250.1 named 'BNR01' Is your Who-Is a local broadcast, or a global broadcast? If you are using the sample application then it should default to a global broadcast. If it a router then the request should be passed along to the virtual devices and each of them would respond. You can also generate a Who-Is-Router-To-Network with the WhoIsRouter.py sample application and see if the thing responds. > However, when I run the ReadProperty.py to get the objectlist, I get > nothing: > >> read 10.2.250.1 device 1050625 objectList > [('device', 1050625)] Not unusual for gateways, the way gateways are designed it is considered a "local matter". You could easily have multiple BACnet to LON products that provide the same essential services but look very different. > Nevertheless, the installer gave me all bacnet devices and objects > and assured me that these should all be available on the gateway. Well, at least you're not poking around in the dark. > For example, the first LON controller is converted into bacnet device > 2098177 and it has analogueValues etc. If you Who-Is for that device instance number, does anything respond? Does something come back with a non-IP looking address like '10999:99'? How did the installer show you that they were available? Joel |
From: Amit K. <am...@ri...> - 2018-07-16 15:12:07
|
You can handle the IAm requests(which is received due to the WhoIS sent out by the application) in your Application class response method. if isinstance(apdu, IAm): do your thing |