* Reduce warnings 1
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* 2
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* 3
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Initial files and package refactoring
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Implemented zone commands without checksum calculation
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* More stuff
* Added the checksum functionality
* Added more examples to the test
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Implement ZoneCommand and necessary classes
* Refactor the common logic
* Extract interface Command
* CHange the Response class to use Switch/case
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Fully implement the test for creating zone command payload
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Fix build / add headers and author to the new files
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Add command handling to the zone handler
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Add command channel to the Zone thing
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Research of zone states and some TODO notes
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Retrieval of zone special states from the panel
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Fix build
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Add the new channels to the metadata file
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Add new channels to zone handler
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Fix indexing in memory map and add more logging
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Refactoring and potential NPE access fixes
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Add new property "label" to the discovered zones and partitions
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Fix zone command issues
* Fix checksum creation
* Fix the parse and confirmation of the response
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Add the new channels to the README.md
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Fixed issue with not updating new channels in the zones
* A silly copy/paste mistake
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Change the type of the new channels from contact to switch
As per community discussion this makes more sense and will be more
intuitive - when something is true -> make it ON, when it's false ->
make it OFF. OPEN and CLOSED are not fitting so well here...
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Fix issue that the channel label is always NULL
* For both zone and partitions
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
* Add new types and channels to the i18n
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
---------
Signed-off-by: Konstantin Polihronov <polychronov@gmail.com>
This binding is intended to provide basic support for Paradox Alarm system.
With the power of openHAB this binding can be used for complex decision rules combining motion/magnetic sensor or whole partitions states with different scenarios.
Examples:
All partitions are armed, therefore there is no one at home.
Window is opened for more than 10 minutes and temperature outside is bellow XXX degrees, send mail/any other supported notification to particular people.
Supported Paradox panels/systems
Currently binding supports the following panels: EVO192, EVO48(not tested), EVO96(not tested)
Supported things
Thing
Thing Type
Description
ip150
Bridge
The bridge is used to communicate with IP150 ethernet module attached to Paradox security system.
panel
Thing
This is representation of Paradox panel. Has the general information about the main panel module, i.e. serial number, firmware/hardware/software versions, panel type, etc...
partition
Thing
The partition is grouped aggregation of multiple zones. It's also referred in Paradox Babyware as "Area".
zone
Thing
Paradox zone. Can be anything - magnetic, motion or any other opened/closed sensor. State channel is contact, "low battery" and "is tampered" channels are switch, label is String
Things configuration
IP150 bridge parameters
Parameter
Description
refresh
Value is in seconds. Defines the refresh interval when the binding polls from paradox system. Optional parameter. Default 5 seconds.
ip150Password
The password to your IP150 (not your panel PIN). Mandatory parameter.
pcPassword
The panel programming code 3012 setting. Optional parameter. Default value is 0000.
ipAddress
IP address or hostname of your IP150. If hostname is used must be resolvable by OpenHAB. Mandatory parameter.
port
The port used for data communication. Optional parameter. Default value is 10000.
panelType
If parameter is passed, auto-discovery of panel type will be skipped. Provide string - EVO48, EVO96, EVO192, etc... Optional parameter.
reconnectWaitTime
Value is in seconds. The time to wait before a reconnect occurs after socket timeout. Optional parameter. Default value is 30 seconds.
maxPartitions
Sets maximum partitions to use during refresh. If not set, maximum allowed amount from panelType will be used. Optional parameter.
maxZones
Sets maximum zones to use during refresh. If not set, maximum allowed amount from panelType will be used. Optional parameter.
encrypt
Sets if encryption has to be used. Optional parameter. Default value is false
IP150 bridge channels
Channel
Description
communicationCommand
Possible values [LOGOUT, LOGIN, RESET]
communicationState
Shows the communication status to Paradox. Different from Bridge status. Bridge may be online and able to receive commands but communication may be offline due to various reasons. Possible values [Offline, Online]
Communication command channel allowed values
Value
Description
LOGOUT
Logs out and disconnects from Paradox alarm system
LOGIN
Creates socket if necessary, connects to paradox system and uses the logon data from the thing parameters to connect.
RESET
Does logout and then login with recreation of communicator objects inside the code.
Optional boolean flag. Valid for partitions. When set to true the command DISARM will be allowed for the partition where the flag is enabled. CAUTION: Enabling DISARM command can be dangerous. If attacker can gain access to your openHAB (via API or UI), this command can be used to disarm your armed partition (area)
Panel channels:
Channel
Type
Description
state
String
Overall panel state
inputVoltage
Number:ElectricPotential
Supply Voltage
boardVoltage
Number:ElectricPotential
Board DC Voltage
batteryVoltage
Number:ElectricPotential
Battery Voltage
panelTime
DateTime
Panel internal time (Timezone is set to default zone of the Java virtual machine)
Partition channels:
Channel
Type
Description
partitionLabel
String
Label of partition inside Paradox configuration
state
String
State of partition (armed, disarmed, in alarm)
additionalState
String
This used to be a channel where all different states were consolidated as semi-colon separated string. With implementation of each state as channel additional states should be no longer used. (deprecated channel)
readyToArm
Switch
Partition is Ready to arm
inExitDelay
Switch
Partition is in Exit delay
inEntryDelay
Switch
Partition in Entry Delay
inTrouble
Switch
Partition has trouble
alarmInMemory
Switch
Partition has alarm in memory
zoneBypass
Switch
Partition is in Zone Bypass
zoneInTamperTrouble
Switch
Partition is in Tamper Trouble
zoneInLowBatteryTrouble
Switch
Partition has zone in Low Battery Trouble
zoneInFireLoopTrouble
Switch
Partition has zone in Fire Loop Trouble
zoneInSupervisionTrouble
Switch
Partition has zone in Supervision Trouble
stayInstantReady
Switch
Partition is in state Stay Instant Ready
forceReady
Switch
Partition is in state Force Ready
bypassReady
Switch
Partition is in state Bypass Ready
inhibitReady
Switch
Partition is in state Inhibit Ready
allZonesClosed
Contact
All zones in partition are currently closed
command
String
Command to be send to partition. Can be (ARM, DISARM, FORCE_ARM, INSTANT_ARM, STAY_ARM, BEEP)
This binding would not be possible without the reverse engineering of the byte level protocol and the development by other authors in python, C# and other languages. Many thanks to the following authors and their respective GitHub repositories for their development that helped in creating this binding: