DSC Binding - how to send a command string similar to keypad

Hi,

this might be old topic, however I have the following issue while sending the command. I want to “enable” zone to be bypassed when arming, so sending this command: sendCommand(SEND_DSC_ALARM_COMMAND, “070,,1,>,,#”)
070 - virt keyboard
and simulating keyboard press like: [] then [1], then [>] to select which zone and [] confirm to bypass.

all works whilst on the keyboard.

once OH2 rule triggers this - I get “System unavailable” on the LCD for 5-10 seconds and it turns zone into bypass mode.

wondering if I do something wrong here or I could somehow avoid this system unavailable message?

thank you

…not sure why I cannot type “star” symbol…apologies

Hello @ArC,

That is normal behavior for the DSC Alarm system. It will only allow one keypad to operate at a given time whilst all other keypads will show that message. You are basically simulating keystrokes from a virtual keypad, so all other keypads are locked out temporarily until the DSC Alarm system has finished processing the keystrokes. Hope this helps.

Hi Stephens

thanks for a quick reply. I was wondering if not doing any harm to my system, but now understand it.

by the way, am just playing with the system and yet no good result. previous command seem has worked few times only, strange. however if I send: sendCommand(SEND_DSC_ALARM_COMMAND, “070,1”) it works, i.e. puts zone 1 into bypass mode and arms whole system right away. …and my intention only to “flag” zone to be bypassed upon next arm action.

any ideas how to solve this?

thanks in advance
Antanas

Hello @ArC,

I’m not sure I understand all the commas in the original command. Have you tried:

sendCommand(SEND_DSC_ALARM_COMMAND, “070,*101#”)

where:

070 - keystroke command
, - command/data separator
* - function mode
1 - bypass mode function
01 - zone
# - return

Note that this will turn bypass mode on or off depending on which state the zone is currently in, assuming this works of course.

Hi Stephens

when I run this command (for zone 1, or zone 01 or zone 19) I get the following:
events.log
2017-08-03 17:55:48.075 [ItemCommandEvent ] - Item ‘ZONE3_BYPASS_MODE’ received command ON
2017-08-03 17:55:48.083 [ItemStateChangedEvent ] - ZONE3_BYPASS_MODE changed from OFF to ON
2017-08-03 17:55:49.374 [ItemCommandEvent ] - Item ‘SEND_DSC_ALARM_COMMAND’ received command 070,*119#
2017-08-03 17:55:49.380 [ItemStateChangedEvent ] - SEND_DSC_ALARM_COMMAND changed from 070,# to 070,*119#
2017-08-03 17:55:49.380 [ItemStateChangedEvent ] - SEND_DSC_ALARM_COMMAND changed from 070,*119# to

openhab.log
2017-08-03 17:55:49.371 [ERROR] [rm.handler.DSCAlarmBaseBridgeHandler] - sendCommand(): ‘keystroke’ must be a single character string from 0 to 9, *, #, F, A, P, a to e, <, >, =, or ^, it was: *119#
2017-08-03 17:55:49.371 [ERROR] [rm.handler.DSCAlarmBaseBridgeHandler] - sendCommand(): Command ‘KeyStroke’ Not Sent - Invalid!

BUT when I use bit by bit, i.e.
when
Item ZONE3_BYPASS_MODE received command ON
then
//sendCommand(SEND_DSC_ALARM_COMMAND, “070,119#")
sendCommand(SEND_DSC_ALARM_COMMAND, "070,
”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,1”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,>”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,9”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,*”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,#”)
end

it works :smiley:
strange though.

nevertheless, system works at least with a longer solution.

Hmm. Are you using the IT100 interface?

yes, USB0 port.

:~$ cat /etc/openhab2/things/dscalarm.things
Bridge dscalarm:it100:MyBridgeName [ serialPort="/dev/ttyUSB0" ]
{
etc…

The binding is supposed to parse the string into separate characters and send them one at a time for the 070 command. Not sure why that isn’t working. I’ve looked at the binding but can’t see any reason why it wouldn’t do that. I’ll keep looking.

Just a query - do I need to install any Action’s within PaperUI?
I only installed DSC binding.

P.s my previuos solutions isn’t very rock solid because I get random zone to be flaged as bypassed because of many “>” rows. Some other commands may interrupt this. At least what I’ve noticed.

Trying different options how to pass whole command. Developer’s manual notices only 1 ascci character at once…which is strange.
Thanks for your help.

No, there is no action for the DSC Alarm binding in OH2 only in OH1.

What if you did something like this:

sendCommand(SEND_DSC_ALARM_COMMAND, "070,*”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,1”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,1”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,9”)
sendCommand(SEND_DSC_ALARM_COMMAND, “070,#”)

Hi
This simplier solution works.
Bypass group disable command works too: [070,*100#] (not in one row, but in the same manner sending characters line by line)

Do you know once the zone is in bypass mode, should partition status also become “ready”?

If I do this physically on keyboard-it works, once I turn zone into bypass mode via OH2 rule-partition remains “not ready”.

Thanks

Glad it is working!

Not necessarily, there could be another zone open that is causing it to not be ready.

Thanks Russell for your support.

Hello Antanas,

I was mistaken, just wasn’t thinking, it’s the 071 command that is parsed if you are running an IT100. The IT100 doesn’t have this command so the binding will parse the string and break it up into single 070 commands internally. So you could use sendCommand(SEND_DSC_ALARM_COMMAND, "071,*100#”), and it should work. The 070 command can only use a single character as data. Sorry for the mishap. Hope this helps.

Hi Russell
all good, thanks for double checking this. will try few options later today.

Hi @rsstephens,

Not sure why I stopped getting updates from this thread.

I finally moved to OH2 :slight_smile: I found something, but it’s unrelated so I will post in another thread.

I will help test out the 071 Command on my setup.

Thanks,
Joe

Hi @rsstephens,

Confirmed that 071 Command with DSC 2.1 works as expected on IT 100 over TCP server.

Thanks,
Joe

Thank you Joe! I appreciate you testing it. :grinning:

Hi all,

I’m encountering similar weird behaviours for the bypass mode and the Envisalink communication with the 2.3.0 DSCAlarm Binding bundle.
Maybe you can have good ideas… The thread on which we are sharing ideas is DSC zone bypass not working

The last message I sent 15 minutes ago is a good summary of my issues I guess.
Thanks in advance for your help.