2 panels, 2 instances of AD2USB plugins

Posted on
Fri Dec 22, 2023 10:33 pm
rafsel offline
Posts: 51
Joined: Feb 24, 2009

2 panels, 2 instances of AD2USB plugins

I am a long time user of this plugin. I am using 2 instances of this plugin with set each one to a different USB port on the dedicated mac. (both at v3.2.1) It is still working but I am having issues with one of the two instances.

read from AlarmDecoder (Python 3) bytes:b''
AD2USB Alarm Interface Debug read from AlarmDecoder (Python 3):
AD2USB Alarm Interface Debug read null message or timeout reached
AD2USB Alarm Interface Debug AlarmDecoder comm has successfully started, will attempt to read message...
AD2USB Alarm Interface Debug called
AD2USB Alarm Interface Debug call with isAdvanced:False
AD2USB Alarm Interface Debug called
AD2USB Alarm Interface Debug attempting to read from the AlarmDecoder
AD2USB Alarm Interface Debug called with:UiValuesDict : (dict)
Although the plugin seems to respond to commands but it is no longer updating the status of the zones reliably.

How should I set this up to support 2 panels?

Thanks in advance,
Martin

Posted on
Sat Dec 23, 2023 6:35 pm
ab39870 offline
Posts: 40
Joined: Dec 09, 2015

Re: 2 panels, 2 instances of AD2USB plugins

I have a few questions to clarify your setup. Is it one Mac or two? If it is only 1 Mac, is it one instance of Indigo and two instances of the Plugin running on the single instance of Indigo? If so, how is that setup (it's not obvious to me how that could be configured)?

What version of Indigo and what firmware version of AlarmDecoder are you running?

Posted on
Sat Dec 23, 2023 7:03 pm
FlyingDiver offline
User avatar
Posts: 7237
Joined: Jun 07, 2014
Location: Southwest Florida, USA

Re: 2 panels, 2 instances of AD2USB plugins

If you have a plugin that doesn't allow for multiple "controller" devices (device interface specified in the plugin config), the work-around to support multiple devices is to duplicate the plugin with different names, and also edit the info.plist to give each a different name and pluginID.

joe (aka FlyingDiver)
my plugins: http://forums.indigodomo.com/viewforum.php?f=177

Posted on
Sat Dec 23, 2023 8:34 pm
ab39870 offline
Posts: 40
Joined: Dec 09, 2015

Re: 2 panels, 2 instances of AD2USB plugins

Thanks FlyingDriver. That makes sense to me and hopefully can be done easily.

rafsel: is that what you’re doing?

Posted on
Mon Dec 25, 2023 6:48 am
rafsel offline
Posts: 51
Joined: Feb 24, 2009

Re: 2 panels, 2 instances of AD2USB plugins

Yes, this is what I am doing exactly.

Here are the answers to your questions:
I have a few questions to clarify your setup. Is it one Mac or two? If it is only 1 Mac, is it one instance of Indigo and two instances of the Plugin running on the single instance of Indigo?

One mac, one instance of Indigo, 2 instances of the plugin.

If so, how is that setup (it's not obvious to me how that could be configured)?
Exactly what I have done, as suggested by FlyingDiver:
... duplicate the plugin with different names, and also edit the info.plist to give each a different name and pluginID.


What version of Indigo and what firmware version of AlarmDecoder are you running?

Indigo 2023.1 and both Alarm Decoders are: V2.2a.6

These are the devices for the first plugin instance. These devices are showing correctly, but not the status;
Screenshot 2023-12-24 at 6.42.29 PM.png
Screenshot 2023-12-24 at 6.42.29 PM.png (124.7 KiB) Viewed 1055 times

Note that one of the devices is showing its status correctly. I think this is because someone tripped the motion detector.

And these are the devices for the second plugin instance which is showing the same problem.
Screenshot 2023-12-24 at 6.42.42 PM.png
Screenshot 2023-12-24 at 6.42.42 PM.png (201.95 KiB) Viewed 1055 times


So it seems that the plugin is reading the state (at least for the one motion sensor).

Any ideas as to what might be causing this? Many thanks.

Here is part of the verbose debug log when the first instance is set to Verbose:
Code: Select all
    AD2USB Alarm Interface House    Updated configuration values:
   OTPConfigPath:
   ad2usbAddress:
   ad2usbCommType: USB
   ad2usbKeyPadAddress: 18
   ad2usbPort:
   ad2usbSerialPort: /dev/cu.usbserial-A101A523
   alarmCodeVariable:
   codeLocation: inVariable
   enableCode: False
   enableOTP: False
   hkArmMethod: quickArm
   indigoLoggingLevel: DEBUG
   isAdvanced: False
   isCodeMaskingEnabled: True
   isHomeKitEnabled: False
   isPanelLoggingEnabled: False
   logArmingEvents: False
   logUnknownDevices: False
   logUnknownLRRMessages: True
   panelPartitionCount: 1
   pluginLoggingLevel: DEBUG
   restartClear: False
   AD2USB Alarm Interface House    Indigo logging level set to:DEBUG (10)
   AD2USB Alarm Interface House    Plugin logging level set to:DEBUG (10)
   AD2USB Alarm Interface House    Plugin preferences have been updated
   AD2USB Alarm Interface House Debug completed
   AD2USB Alarm Interface House Debug read from AlarmDecoder (Python 3) bytes:b''
   AD2USB Alarm Interface House Debug read from AlarmDecoder (Python 3):
   AD2USB Alarm Interface House Debug read null message or timeout reached
   AD2USB Alarm Interface House Debug AlarmDecoder comm has successfully started, will attempt to read message...
   AD2USB Alarm Interface House Debug called
   AD2USB Alarm Interface House Debug call with isAdvanced:False
   AD2USB Alarm Interface House Debug called
   AD2USB Alarm Interface House Debug attempting to read from the AlarmDecoder
   AD2USB Alarm Interface House Debug read from AlarmDecoder (Python 3) bytes:b'[1000000100000000----],008,[f70000071008001c08020000000000],"****DISARMED****  Ready to Arm  "\r\n'
   AD2USB Alarm Interface House Debug read from AlarmDecoder (Python 3):[1000000100000000----],008,[f70000071008001c08020000000000],"****DISARMED****  Ready to Arm  "

   AD2USB Alarm Interface House Debug Read ad2usb message:'[1000000100000000----],008,[f70000071008001c08020000000000],"****DISARMED****  Ready to Arm  "\r\n'
   AD2USB Alarm Interface House Debug received message:[1000000100000000----],008,[f70000071008001c08020000000000],"****DISARMED****  Ready to Arm  "
   AD2USB Alarm Interface House Debug read KPM message type - starting parsing
   AD2USB Alarm Interface House Debug keypad bitmask is:00000710
   AD2USB Alarm Interface House Debug KPM message parsed:{'isValidNumericCode': True, 'panelState': 'ready', 'homeKitState': 'disarmed', 'isBypassZone': False, 'isPressForFaultMessage': False, 'isAlarmTripped': False, 'isCountdown': False, 'isFault': False, 'isCheck': False, 'doesMessageContainZoneNumber': False, 'doesMessageZoneMatchNumericCode': False, 'bitField': '[1000000100000000----]', 'numericCode': '008', 'rawData': '[f70000071008001c08020000000000]', 'alphanumericKeypadMessage': '"****DISARMED****  Ready to Arm  "', 'keypadFlags': {'READY': 1, 'ARMED_AWAY': 0, 'ARMED_HOME': 0, 'BACKLIGHT': 0, 'PGM_MODE': 0, 'BEEPS': 0, 'ZONES_BYPASSED': 0, 'AC_ON': 1, 'CHIME_MODE': 0, 'ALARM_OCCURRED': 0, 'ALARM_BELL_ON': 0, 'BATTERY_LOW': 0, 'ARMED_INSTANT': 0, 'FIRE': 0, 'CHECK_ZONE': 0, 'ARMED_STAY_NIGHT': 0, 'ERROR_REPORT': '-', 'ADEMCO_OR_DSC': '-'}, 'zoneNumberAsInt': 8, 'isSystemMessage': False, 'keypadDestinations': [16, 17, 18, 28]}
   AD2USB Alarm Interface House Debug called
   AD2USB Alarm Interface House Debug called
   AD2USB Alarm Interface House Debug Updating lastADMessage on Keypad Device:House Alarm Panel with new lastADMessage:2023-12-25 07:42:33
   AD2USB Alarm Interface House Debug KPM message seen:<AlarmDecoder.Message object at 0x10a257490>
   AD2USB Alarm Interface House Debug raw zone type is:[100
   AD2USB Alarm Interface House Debug Panel Message: Before:
   AD2USB Alarm Interface House Debug Panel Message: Current:[1000000100000000----],008,[f70000071008001c08020000000000],"****DISARMED****  Ready to Arm  "

   AD2USB Alarm Interface House Debug Panel message:[1000000100000000----],
   AD2USB Alarm Interface House Debug valid keypad address:18
   AD2USB Alarm Interface House Debug called
   AD2USB Alarm Interface House Debug found keypad match for address (as int):18
   AD2USB Alarm Interface House Debug Found dev:House Alarm Panel, id:125277209
   AD2USB Alarm Interface House Debug called with name:House Alarm Panel, id:125277209, new state:ready
   AD2USB Alarm Interface House Debug msgKey is:****D, msgTxt is:"****DISARMED****  Ready to Arm  "
, msgBitMap:1000000100000000----, msgZoneNum:8, bMsgZoneNum:0, validBypassZone:False
   AD2USB Alarm Interface House Debug number of zones bypassed - current:0, last:0
   AD2USB Alarm Interface House Debug calling basic
   AD2USB Alarm Interface House Debug Zone:8, Key:****D
   AD2USB Alarm Interface House Debug ready to call basic msg handler
   AD2USB Alarm Interface House Debug called with rawData:[1000000100000000----],008,[f70000071008001c08020000000000],"****DISARMED****  Ready to Arm  "
, msgBitMap:1000000100000000----, msgZoneNum:8, msgText:"****DISARMED****  Ready to Arm  "
, msgKey:****D
   AD2USB Alarm Interface House Debug Ready:True, Fault:False
   AD2USB Alarm Interface House Debug number of zones cleared:0, list was:[]
   AD2USB Alarm Interface House Debug Ready:True, Fault:False, Zone:8
   AD2USB Alarm Interface House Debug The List:[]
   AD2USB Alarm Interface House Debug completed
   AD2USB Alarm Interface House Debug panelMsgRead End
   AD2USB Alarm Interface House Debug completed
   AD2USB Alarm Interface House Debug AlarmDecoder comm has successfully started, will attempt to read message...
   AD2USB Alarm Interface House Debug called
   AD2USB Alarm Interface House Debug call with isAdvanced:False
   AD2USB Alarm Interface House Debug called
   AD2USB Alarm Interface House Debug attempting to read from the AlarmDecoder
   AD2USB Alarm Interface House Debug read from AlarmDecoder (Python 3) bytes:b''
   AD2USB Alarm Interface House Debug read from AlarmDecoder (Python 3):
   AD2USB Alarm Interface House Debug read null message or timeout reached
   AD2USB Alarm Interface House Debug AlarmDecoder comm has successfully started, will attempt to read message...
   AD2USB Alarm Interface House Debug called
   AD2USB Alarm Interface House Debug call with isAdvanced:False
   AD2USB Alarm Interface House Debug called
   AD2USB Alarm Interface House Debug attempting to read from the AlarmDecoder
   AD2USB Alarm Interface House Debug read from AlarmDecoder (Python 3) bytes:b'[1000000100000000----],008,[f70000071008001c08020000000000],"****DISARMED****  Ready to Arm  "\r\n'
   AD2USB Alarm Interface House Debug read from AlarmDecoder (Python 3):[1000000100000000----],008,[f70000071008001c08020000000000],"****DISARMED****  Ready to Arm  "

   AD2USB Alarm Interface House Debug Read ad2usb message:'[1000000100000000----],008,[f70000071008001c08020000000000],"****DISARMED****  Ready to Arm  "\r\n'
   AD2USB Alarm Interface House Debug received message:[1000000100000000----],008,[f70000071008001c08020000000000],"****DISARMED****  Ready to Arm  "
   AD2USB Alarm Interface House Debug read KPM message type - starting parsing
   AD2USB Alarm Interface House Debug keypad bitmask is:00000710
   AD2USB Alarm Interface House Debug KPM message parsed:{'isValidNumericCode': True, 'panelState': 'ready', 'homeKitState': 'disarmed', 'isBypassZone': False, 'isPressForFaultMessage': False, 'isAlarmTripped': False, 'isCountdown': False, 'isFault': False, 'isCheck': False, 'doesMessageContainZoneNumber': False, 'doesMessageZoneMatchNumericCode': False, 'bitField': '[1000000100000000----]', 'numericCode': '008', 'rawData': '[f70000071008001c08020000000000]', 'alphanumericKeypadMessage': '"****DISARMED****  Ready to Arm  "', 'keypadFlags': {'READY': 1, 'ARMED_AWAY': 0, 'ARMED_HOME': 0, 'BACKLIGHT': 0, 'PGM_MODE': 0, 'BEEPS': 0, 'ZONES_BYPASSED': 0, 'AC_ON': 1, 'CHIME_MODE': 0, 'ALARM_OCCURRED': 0, 'ALARM_BELL_ON': 0, 'BATTERY_LOW': 0, 'ARMED_INSTANT': 0, 'FIRE': 0, 'CHECK_ZONE': 0, 'ARMED_STAY_NIGHT': 0, 'ERROR_REPORT': '-', 'ADEMCO_OR_DSC': '-'}, 'zoneNumberAsInt': 8, 'isSystemMessage': False, 'keypadDestinations': [16, 17, 18, 28]}
   AD2USB Alarm Interface House Debug called
   AD2USB Alarm Interface House Debug called
   AD2USB Alarm Interface House Debug Updating lastADMessage on Keypad Device:House Alarm Panel with new lastADMessage:2023-12-25 07:42:42
   AD2USB Alarm Interface House Debug KPM message seen:<AlarmDecoder.Message object at 0x10a2567a0>
   AD2USB Alarm Interface House Debug raw zone type is:[100
   AD2USB Alarm Interface House Debug Panel Message: Before:
   AD2USB Alarm Interface House Debug Panel Message: Current:[1000000100000000----],008,[f70000071008001c08020000000000],"****DISARMED****  Ready to Arm  "


Posted on
Mon Dec 25, 2023 8:50 am
ab39870 offline
Posts: 40
Joined: Dec 09, 2015

Re: 2 panels, 2 instances of AD2USB plugins

Thanks for the additional info. I understand the problem now - the UI State display for Alarm Zone devices is "0" instead of "Fault" or "Clear" (with the exception of Zone 11 from your first instance).

The good news is I don't think this has anything to do with 2 instances.

Did you upgrade to a later version of the plugin and then downgrade? I ask this since I see "enableOTP: False" and "hkArmMethod: quickArm" settings in your logs and these were introduced in plugin version after 3.2.1.

And do you recall your upgrade path? By this I mean the plugin versions you upgraded from and to.

Lastly, try this on any one of the Alarm Zone devices not displaying properly:

1. Select the device
2. Choose "Edit" button in Indigo
3. Choose "Edit Device Settings.." button
4. Toggle "Log Zone Changes" (only for the purpose of making a change).
5. Save the Device
6. Edit the Device again and change the "Log Zone Changes" back to what it was and Save the device again.

This will hopefully force the device to be changed with the current plugin's versions configurations that are appropriate to the version of the plugin you are using. And by doing this the device state may start displaying properly. I've coded upgrade processes to change these device settings but I've never planned for downgrades. So plugin downgrades have some risk and the only sure way to do a plugin downgrade is to re-save EVERY ad2usb Plugin device.

If this works, depending on how many devices you have it may be just easiest to edit them all and re-save.

Posted on
Mon Dec 25, 2023 12:58 pm
rafsel offline
Posts: 51
Joined: Feb 24, 2009

Re: 2 panels, 2 instances of AD2USB plugins

Thanks for the speedy response.

I didn't downgrade at all. I upgraded to Indigo 2023.1 and then re-downloaded the plugin to see if these actions would solve the original problem (not getting updates on status). The last message/report was after I did the upgrades and the problems seemed to still exist.

Do I have the latest version of the plugin? Do I need to upgrade the firmware for the AlarmDecoder? (I hope not because when I tried to prepare for this I ran into an issue. In the end I did not upgrade the firmware.)

I actually had to recreate the devices for the 2 instances since I changed the names and ID, etc. of the plugins.

Does this clarify or confuse the issue? :?

Posted on
Tue Dec 26, 2023 10:48 am
ab39870 offline
Posts: 40
Joined: Dec 09, 2015

Re: 2 panels, 2 instances of AD2USB plugins

The latest version of the plugin is 3.4. You should be able to check the version via the pull down menu: "Plugins -> AD2USB Alarm Interface -> About..." But I think if you're on any 3.x version it probably doesn't matter for this issue. I also don't think the firmware matters.

One more questions: Did you rename BOTH instances of the plugin? Or just one?

Thanks for providing the log snippet earlier. What will probably allow me to find the root cause is a section of the plugin.log when a device is faulted. Are you able to fault a device like a door from either of the instances and then pull the relevant section of the plugin.log for that event? I'll try to provide some guidance on how to do this. Note that depending on the number of Zone Groups and other settings it could be up to 1000+ lines in DEBUG mode for a single FAULT.

To find the first line of the log that I am interested in you can look for two things. The first is the log entry string "Plugin.panelReadWrapper: read from AlarmDecoder (Python 3) bytes". This is the beginning of the code that starts to process a fault message on the keypad (e.g. AlarmDecoder). Take note of the time you opened your door (or other device to FAULT) and then look for that start time in the log and that string. The second part of the line that needs to match is based on what alarm device you faulted. Assuming you have an ALPHA alarm keypad this same line in the log should also contain the name of the Alarm Sensor. In my example below, the name of my device on my Alarm Panel (not the Indigo name) is KITCHENDOOR and the zone number is 11. The start point of the relevant log lines will begin with both the "Plugin.panelReadWrapper: read from AlarmDecoder (Python 3) bytes" and contain the word FAULT and the name of the Alarm Device. It will also contain the zone number within the string.

Here's an example:

Code: Select all
2023-12-25 19:12:45.794 DEBUG   123145428803584 Plugin.panelReadWrapper: read from AlarmDecoder (Python 3) bytes:b'[00000001000000000A--],011,[f70200071011000008020000000000],"FAULT 11 KITCHENDOOR            "\r\n'


The last line of the relevant log entries is easier to find. It will be the first line after the FAULT message line you just found that contains the text: "Plugin.panelMsgRead: completed". An example is below:

Code: Select all
2023-12-25 19:12:46.343 DEBUG   123145428803584 Plugin.panelMsgRead: completed


You can Private Message me or post those log entry lines in the forum as an attachment or paste them in if its not too large.

From that log entry I should be able to determine the issue.

Posted on
Tue Dec 26, 2023 12:00 pm
rafsel offline
Posts: 51
Joined: Feb 24, 2009

Re: 2 panels, 2 instances of AD2USB plugins

I think I'm running 3.4.0. But when I select "About this AD2USB Alarm Interface 3.4.0..." it opens a non-existent page. This is the link it tries to open: https://forums.indigodomo.com/viewforum.php?f=371.

And yes, I renamed both instances.

Here is the log from a garage door opening event via an I/O Line Controller. There is an additional sensor connected to to the alarm panel to track the status of the door. Let me know if you need anything else.

Thanks very much.

Code: Select all
2023-12-26 12:38:01.676   DEBUG   123145490374656 Plugin.panelReadWrapper: read from AlarmDecoder (Python 3) bytes:b''
2023-12-26 12:38:01.676   DEBUG   123145490374656 Plugin.panelReadWrapper: read from AlarmDecoder (Python 3):
2023-12-26 12:38:01.676   DEBUG   123145490374656 Plugin.panelMsgRead: read null message or timeout reached
2023-12-26 12:38:02.302   DEBUG   123145490374656 Plugin.runConcurrentThread: AlarmDecoder comm has successfully started, will attempt to read message...
2023-12-26 12:38:02.302   DEBUG   123145490374656 Plugin.getAllKeypadDevices: called
2023-12-26 12:38:02.314   DEBUG   123145490374656 Plugin.panelMsgRead: call with isAdvanced:False
2023-12-26 12:38:02.315   DEBUG   123145490374656 Plugin.panelReadWrapper: called
2023-12-26 12:38:02.315   DEBUG   123145490374656 Plugin.panelReadWrapper: attempting to read from the AlarmDecoder
2023-12-26 12:38:07.438   DEBUG   123145490374656 Plugin.panelReadWrapper: read from AlarmDecoder (Python 3) bytes:b''
2023-12-26 12:38:07.438   DEBUG   123145490374656 Plugin.panelReadWrapper: read from AlarmDecoder (Python 3):
2023-12-26 12:38:07.438   DEBUG   123145490374656 Plugin.panelMsgRead: read null message or timeout reached
2023-12-26 12:38:07.993   DEBUG   123145490374656 Plugin.runConcurrentThread: AlarmDecoder comm has successfully started, will attempt to read message...
2023-12-26 12:38:07.993   DEBUG   123145490374656 Plugin.getAllKeypadDevices: called
2023-12-26 12:38:08.006   DEBUG   123145490374656 Plugin.panelMsgRead: call with isAdvanced:False
2023-12-26 12:38:08.006   DEBUG   123145490374656 Plugin.panelReadWrapper: called
2023-12-26 12:38:08.006   DEBUG   123145490374656 Plugin.panelReadWrapper: attempting to read from the AlarmDecoder
2023-12-26 12:38:10.960   DEBUG   4673750528 Plugin.validatePrefsConfigUi: called with:UiValuesDict : (dict)
     OTPConfigPath :  (string)
     ad2usbAddress :  (string)
     ad2usbCommType : USB (string)
     ad2usbKeyPadAddress : 18 (string)
     ad2usbPort :  (string)
     ad2usbSerialPort : /dev/cu.usbserial-A101A48Z (string)
     alarmCode :  (string)
     alarmCodeVariable :  (string)
     codeLocation : inVariable (string)
     enableCode : false (bool)
     enableOTP : false (bool)
     hkArmMethod : quickArm (string)
     hkViaCodeNotes :  (string)
     indigoLoggingLevel : INFO (string)
     isAdvanced : false (bool)
     isCodeMaskingEnabled : true (bool)
     isHomeKitEnabled : false (bool)
     isPanelLoggingEnabled : false (bool)
     logArmingEvents : false (bool)
     logUnknownDevices : false (bool)
     logUnknownLRRMessages : true (bool)
     makeSpace1 :  (string)
     makeSpace2 :  (string)
     makeSpace3 :  (string)
     modeNotes1 :  (string)
     panelPartitionCount : 1 (string)
     pluginLoggingLevel : INFO (string)
     restartClear : false (bool)
     sectionLabel1 :  (string)
     sectionLabel2 :  (string)
     sectionLabel3 :  (string)
     sectionLabel4 :  (string)
     sectionLabel5 :  (string)
     sectionLabel6 :  (string)
     simpleSeparator2 :  (string)
     simpleSeparator3 :  (string)
     simpleSeparator4 :  (string)
     simpleSeparator5 :  (string)
     simpleSeparator6 :  (string)
     variableFormatNotes :  (string)
2023-12-26 12:38:10.960   DEBUG   4673750528 Plugin.setURL: called with commType:USB ip: port: serial:/dev/cu.usbserial-A101A48Z
2023-12-26 12:38:10.960   DEBUG   4673750528 Plugin.setURL: ad2USB URL property set to:/dev/cu.usbserial-A101A48Z
2023-12-26 12:38:10.960   DEBUG   4673750528 Plugin.validatePrefsConfigUi: Current address is:18
2023-12-26 12:38:10.960   DEBUG   4673750528 Plugin.isValidKeypadAddress: valid keypad address:18
2023-12-26 12:38:10.960   DEBUG   4673750528 Plugin.validatePrefsConfigUi: completed
2023-12-26 12:38:11.001   DEBUG   4673750528 Plugin.closedPrefsConfigUi: Called
2023-12-26 12:38:11.001   INFO   4673750528 Plugin.closedPrefsConfigUi: Updated configuration values:
   OTPConfigPath:
   ad2usbAddress:
   ad2usbCommType: USB
   ad2usbKeyPadAddress: 18
   ad2usbPort:
   ad2usbSerialPort: /dev/cu.usbserial-A101A48Z
   alarmCodeVariable:
   codeLocation: inVariable
   enableCode: False
   enableOTP: False
   hkArmMethod: quickArm
   indigoLoggingLevel: INFO
   isAdvanced: False
   isCodeMaskingEnabled: True
   isHomeKitEnabled: False
   isPanelLoggingEnabled: False
   logArmingEvents: False
   logUnknownDevices: False
   logUnknownLRRMessages: True
   panelPartitionCount: 1
   pluginLoggingLevel: INFO
   restartClear: False
2023-12-26 12:38:11.001   DEBUG   4673750528 Plugin.__setURLFromConfig: called
2023-12-26 12:38:11.002   DEBUG   4673750528 Plugin.setURL: called with commType:USB ip: port: serial:/dev/cu.usbserial-A101A48Z
2023-12-26 12:38:11.002   DEBUG   4673750528 Plugin.setURL: ad2USB URL property set to:/dev/cu.usbserial-A101A48Z
2023-12-26 12:38:11.002   DEBUG   4673750528 Plugin.isValidKeypadAddress: valid keypad address:18
2023-12-26 12:38:11.002   INFO   4673750528 Plugin.__setLoggingLevels: Indigo logging level set to:INFO (20)
2023-12-26 12:38:11.002   INFO   4673750528 Plugin.__setLoggingLevels: Plugin logging level set to:INFO (20)
2023-12-26 12:38:11.002   INFO   4673750528 Plugin.closedPrefsConfigUi: Plugin preferences have been updated
2023-12-26 12:39:04.764   INFO   4673750528 Plugin.closedPrefsConfigUi: Updated configuration values:
   OTPConfigPath:
   ad2usbAddress:
   ad2usbCommType: USB
   ad2usbKeyPadAddress: 18
   ad2usbPort:
   ad2usbSerialPort: /dev/cu.usbserial-A101A48Z
   alarmCodeVariable:
   codeLocation: inVariable
   enableCode: False
   enableOTP: False
   hkArmMethod: quickArm
   indigoLoggingLevel: INFO
   isAdvanced: False
   isCodeMaskingEnabled: True
   isHomeKitEnabled: False
   isPanelLoggingEnabled: False
   logArmingEvents: False
   logUnknownDevices: False
   logUnknownLRRMessages: True
   panelPartitionCount: 1
   pluginLoggingLevel: DEBUG
   restartClear: False
2023-12-26 12:39:04.765   INFO   4673750528 Plugin.__setLoggingLevels: Indigo logging level set to:INFO (20)
2023-12-26 12:39:04.765   INFO   4673750528 Plugin.__setLoggingLevels: Plugin logging level set to:DEBUG (10)
2023-12-26 12:39:04.765   INFO   4673750528 Plugin.closedPrefsConfigUi: Plugin preferences have been updated
2023-12-26 12:39:04.765   DEBUG   4673750528 Plugin.closedPrefsConfigUi: completed
2023-12-26 12:39:07.197   DEBUG   123145490374656 Plugin.panelReadWrapper: read from AlarmDecoder (Python 3) bytes:b''
2023-12-26 12:39:07.197   DEBUG   123145490374656 Plugin.panelReadWrapper: read from AlarmDecoder (Python 3):
2023-12-26 12:39:07.197   DEBUG   123145490374656 Plugin.panelMsgRead: read null message or timeout reached
2023-12-26 12:39:07.801   DEBUG   123145490374656 Plugin.runConcurrentThread: AlarmDecoder comm has successfully started, will attempt to read message...
2023-12-26 12:39:07.801   DEBUG   123145490374656 Plugin.getAllKeypadDevices: called
2023-12-26 12:39:07.815   DEBUG   123145490374656 Plugin.panelMsgRead: call with isAdvanced:False
2023-12-26 12:39:07.815   DEBUG   123145490374656 Plugin.panelReadWrapper: called
2023-12-26 12:39:07.816   DEBUG   123145490374656 Plugin.panelReadWrapper: attempting to read from the AlarmDecoder
2023-12-26 12:39:11.440   DEBUG   123145490374656 Plugin.panelReadWrapper: read from AlarmDecoder (Python 3) bytes:b'!RFX:0288517,a0\r\n'
2023-12-26 12:39:11.440   DEBUG   123145490374656 Plugin.panelReadWrapper: read from AlarmDecoder (Python 3):!RFX:0288517,a0

2023-12-26 12:39:11.440   DEBUG   123145490374656 Plugin.panelMsgRead: Read ad2usb message:'!RFX:0288517,a0\r\n'
2023-12-26 12:39:11.441   DEBUG   123145490374656 Plugin.__init__: received message:!RFX:0288517,a0
2023-12-26 12:39:11.441   DEBUG   123145490374656 Plugin.__processMessage: read RFX message type - starting parsing
2023-12-26 12:39:11.441   DEBUG   123145490374656 Plugin.parseMessage_RFX: RFX message data items are:0288517,a0
2023-12-26 12:39:11.441   DEBUG   123145490374656 Plugin.parseMessage_RFX: RFX message data value is:160
2023-12-26 12:39:11.441   DEBUG   123145490374656 Plugin.parseMessage_RFX: RFX message parsed:{'serialNumber': '0288517', 'data': 'a0', 'bits': {'UNK1': False, 'LOWBAT': False, 'SUP': False, 'UNK4': False, 'LOOP3': False, 'LOOP2': True, 'LOOP4': False, 'LOOP1': True}}
2023-12-26 12:39:11.441   DEBUG   123145490374656 Plugin.updateLastADMessageOnKeypads: called
2023-12-26 12:39:11.441   DEBUG   123145490374656 Plugin.getAllKeypadDevices: called
2023-12-26 12:39:11.454   DEBUG   123145490374656 Plugin.updateLastADMessageOnKeypads: Updating lastADMessage on Keypad Device:LH Alarm Panel with new lastADMessage:2023-12-26 12:39:11
2023-12-26 12:39:11.455   DEBUG   123145490374656 Plugin.panelMsgRead: RFX message seen
2023-12-26 12:39:11.455   DEBUG   123145490374656 Plugin.panelMsgRead: panelMsgRead End
2023-12-26 12:39:11.455   DEBUG   123145490374656 Plugin.panelMsgRead: completed


Posted on
Tue Dec 26, 2023 2:55 pm
ab39870 offline
Posts: 40
Joined: Dec 09, 2015

Re: 2 panels, 2 instances of AD2USB plugins

You are on the latest version and you just discovered a bug. The "About" menu item is linked is to the old forum which was removed. So thanks for finding that. Fortunately, that's not related to this issue.

Apologies this is a slow process asynchronously via this forum.

Based on your log below, it looks like your Garage Door is a wireless sensor.

1. What zone number is the Garage Door from the log you posted? I am guessing it's 12, 30, 31, or 32 based on your earlier screen shot but I can't tell since the log is a RFX vs. KPM message from the Alarm Decoder.

2. Can you send a screen shot of the Garage Door device configuration. Select the device in Indigo. Click on the "Edit" button. The click on "Edit Device Settings..." button in the "Edit Device..." window. That screen should have Zone and Partition Number and possibly more settings.

3. Hopefully, you have Panel Message Logs enabled. That setting is in the Plugin's Configure menu. A screen shot is below. If it's not on, please turn it on. This will create another log file of the messages it reads from the Alarm Decoder. We will likely look at this depending on how your device is configured.
Attachments
log_settings.png
log_settings.png (48.9 KiB) Viewed 776 times

Posted on
Tue Dec 26, 2023 3:17 pm
rafsel offline
Posts: 51
Joined: Feb 24, 2009

Re: 2 panels, 2 instances of AD2USB plugins

Apologies this is a slow process asynchronously via this forum.

No need to apologize at al!. Thanks for your efforts.

Based on your log below, it looks like your Garage Door is a wireless sensor.

1. What zone number is the Garage Door from the log you posted? I am guessing it's 12, 30, 31, or 32 based on your earlier screen shot but I can't tell since the log is a RFX vs. KPM message from the Alarm Decoder.

It is zone 30.

2. Can you send a screen shot of the Garage Door device configuration. Select the device in Indigo. Click on the "Edit" button. The click on "Edit Device Settings..." button in the "Edit Device..." window. That screen should have Zone and Partition Number and possibly more settings.[\quote]
Screenshot 2023-12-26 at 4.13.13 PM.png
Screenshot 2023-12-26 at 4.13.13 PM.png (47 KiB) Viewed 770 times

Screenshot 2023-12-26 at 4.12.57 PM.png
Screenshot 2023-12-26 at 4.12.57 PM.png (28.28 KiB) Viewed 770 times


3. Hopefully, you have Panel Message Logs enabled. That setting is in the Plugin's Configure menu. A screen shot is below. If it's not on, please turn it on. This will create another log file of the messages it reads from the Alarm Decoder. We will likely look at this depending on how your device is configured.

No I did not have it on so I enabled it. Where is the log file?

Posted on
Tue Dec 26, 2023 4:02 pm
ab39870 offline
Posts: 40
Joined: Dec 09, 2015

Re: 2 panels, 2 instances of AD2USB plugins

Once you enable Panel Message Logging the log file is named "panelMessages.log" in the same log folder as the plugin:
Code: Select all
/Library/Application Support/Perceptive Automation/<Indigo Version Number>/Logs/com.berkinet.ad2usb


It's possible the last part of your path is different since you have changed the plugin ID. Indigo will rotate and purge these panel message logs every 30 days so it shouldn't take up too much disk space. Maybe a few hundred KB per day.

Once that is enabled, can you FAULT the Garage Door fault again and send over both the plugin.log and panelMessage.log sections? What I expect to see in the panelMessage.log (and the plugin log) is a KPM message entry when the Garage Door is faulted. The KPM message is described in the Alarm Decoder Protocol. It should look like this:

Code: Select all
2023-12-26 07:36:59.980 | [00000001000000000A--],011,[f70200071011000008020000000000],"FAULT 11 KITCHENDOOR            "


The KPM message above is from my panel for a door configured to zone 11. I'd expect to see zone 30 (030) in the entry and whatever name your Garage Door is in your Alarm Panel. I am assuming that when your garage door is faulted your actual Alarm Keypad changes? So let's take a look at the messages coming from your Alarm Decoder so we can understand exactly what the plugin is seeing.

Posted on
Tue Dec 26, 2023 8:18 pm
rafsel offline
Posts: 51
Joined: Feb 24, 2009

Re: 2 panels, 2 instances of AD2USB plugins

Oops! When I enable the Panel Message Logging I get the following error in the Indigo log:

Code: Select all
Dec 26, 2023 at 6:07:40 PM
   AD2USB Alarm Interface LH Error Error reading AlarmDecoder message - error:'Plugin' object has no attribute 'panelLogger'
   AD2USB Alarm Interface LH Error Error reading AlarmDecoder message - raw data is:!RFX:0295618,04

   AD2USB Alarm Interface LH Error Will discard and try next message

This is repeated every 1-2 minutes until I turned off the option. And no log file is created. This happens on either instance.

Perhaps I have a corrupted plugin?

Posted on
Wed Dec 27, 2023 6:37 am
ab39870 offline
Posts: 40
Joined: Dec 09, 2015

Re: 2 panels, 2 instances of AD2USB plugins

Nothing is corrupt. Unfortunately, the error is a minor bug that requires you to Disable and then Enable the Plugin after the Log Panel Messages has been enabled for the first time since the Plugin was started. You can enable the Panel Messages Logging, ignore the error, Disable the Plugin, and then Enable the Plugin, and the error message should go away and Panel Logging should then start.

I am surprised I never saw that bug before. Both that bug is now fixed and the incorrect forum link are updated and now released in version 3.4.1. There is no need for you to update to that version, 3.4.0 is fine until we get to the bottom of this.

In addition to getting the logs, I should have asked you to run the "AlarmDecoder - Get Settings" from the Plugin pull-down menu. This will output your current AlarmDecoder settings to the Event Log window. It should look similar to this:

Code: Select all
AlarmDecoder CONFIG message read: MODE=A&CONFIGBITS=ff00&ADDRESS=18&LRR=N&COM=N&EXP=NNNNN&REL=NNNN&MASK=ffffffff&DEDUPLICATE=Y
AlarmDecoder CONFIG setting are now: ADDRESS=18&LRR=N&EXP=NNNNN&REL=NNNN&DEDUPLICATE=Y

Posted on
Wed Dec 27, 2023 7:45 am
rafsel offline
Posts: 51
Joined: Feb 24, 2009

Re: 2 panels, 2 instances of AD2USB plugins

Okay, I got the log working. Here is the output in response to opening and then closing the garage door (Zone 30)

Code: Select all
2023-12-27 08:31:06.251 | !VER:ffffffff,V2.2a.6,TX;RX;SM;VZ;RF;ZX;RE;AU;3X;CG;DD;MF;LR;KE;MK;CB
2023-12-27 08:31:06.850 | !>
2023-12-27 08:31:07.379 | !CONFIG>ADDRESS=18&CONFIGBITS=ff00&LRR=N&EXP=NNNNN&REL=NNNN&MASK=ffffffff&DEDUPLICATE=Y
2023-12-27 08:31:14.922 | [1000000100000000----],008,[f700000f1008001c08020000000000],"****DISARMED****  Ready to Arm  "
2023-12-27 08:32:24.123 | !RFX:0378917,24
2023-12-27 08:35:00.841 | !RFX:0288517,a0
2023-12-27 08:35:01.509 | [0000000100000000----],030,[f700000f1030000008020000000000],"FAULT 30                        "
2023-12-27 08:36:08.163 | !RFX:0288517,20
2023-12-27 08:36:08.806 | [1000000100000000----],008,[f700000f1008001c08020000000000],"****DISARMED****  Ready to Arm  "
2023-12-27 08:36:43.050 | !>
2023-12-27 08:36:43.719 | !CONFIG>ADDRESS=18&CONFIGBITS=ff00&LRR=N&EXP=NNNNN&REL=NNNN&MASK=ffffffff&DEDUPLICATE=Y
2023-12-27 08:36:51.832 | [1000000100000000----],008,[f700000f1008001c08020000000000],"****DISARMED****  Ready to Arm  "
2023-12-27 08:37:06.228 | !RFX:0868472,24


And here is the snippet from the Event log when I opened and closed the garage door using Indigo, just in case this is relevant. (You can ignore the pesters. I use them to make sure we remember to close the door.)
Code: Select all
Dec 27, 2023 at 8:34:59 AM
   Sent INSTEON                    "Garage Door West Control" on
   Trigger                         Notification of Garage Door West Control: any binary output changed
   Action Collection               
   Trigger                         LH Panel: Changed to Ready
   Script                          --- Trigger: LH Panel: Changed to Ready ---
   Script                          set LHAlarmPanelReadyDateTime, delete pester if exists
   Action Group                    LH Panel: Delete Faulted Pester 15 Minutes
   Action Group                    LH Panel: Delete Faulted Pester 5 Minutes
   Script                          LH Alarm Panel: Deleted pester(s)
   Timers and Pesters Warning      A pester named 'LHAlarmPanelFaultedPester15Minutes' doesn't exist, skipping cancel request...
   Timers and Pesters Warning      A pester named 'LHAlarmPanelFaultedPester5Minutes' doesn't exist, skipping cancel request...
   Trigger                         Notification of Garage Door West: device state changed
   Action Collection               
   Sent INSTEON                    "Garage Door West Control" status request (received input sensor: open)
   Sent INSTEON                    "Garage Door West Control" status request (received output relay: off)
   Trigger                         Notification of Garage Door West Control: any binary output changed
   Action Collection               

Dec 27, 2023 at 8:35:54 AM
   Sent INSTEON                    "Garage Door West Control" on
   Trigger                         Notification of Garage Door West Control: any binary output changed
   Action Collection               
   Sent INSTEON                    "Garage Door West Control" status request (received input sensor: open)
   Sent INSTEON                    "Garage Door West Control" status request (received output relay: off)
   Trigger                         Notification of Garage Door West Control: any binary output changed
   Action Collection               
   Trigger                         LH Panel: Changed to Ready
   Script                          --- Trigger: LH Panel: Changed to Ready ---
   Script                          set LHAlarmPanelReadyDateTime, delete pester if exists
   Trigger                         Notification of Garage Door West: device state changed
   Action Collection               
   Action Group                    LH Panel: Delete Faulted Pester 15 Minutes
   Action Group                    LH Panel: Delete Faulted Pester 5 Minutes
   Timers and Pesters Warning      A pester named 'LHAlarmPanelFaultedPester15Minutes' doesn't exist, skipping cancel request...
   Script                          LH Alarm Panel: Deleted pester(s)
   Timers and Pesters Warning      A pester named 'LHAlarmPanelFaultedPester5Minutes' doesn't exist, skipping cancel request...


And finally here is the output from "AlarmDecoder - Get Settings":
Code: Select all
Dec 27, 2023 at 8:36:43 AM
   AD2USB Alarm Interface LH       AlarmDecoder CONFIG message read: ADDRESS=18&CONFIGBITS=ff00&LRR=N&EXP=NNNNN&REL=NNNN&MASK=ffffffff&DEDUPLICATE=Y
   AD2USB Alarm Interface LH       AlarmDecoder CONFIG setting are now: ADDRESS=18&LRR=N&EXP=NNNNN&REL=NNNN&DEDUPLICATE=Y

Who is online

Users browsing this forum: No registered users and 1 guest