Pet Door
Product ID = 3 FCC Link: https://fccid.io/XO9-IMPD00003
The Pet Door is obvious larger designed to take either a large cat, or a small dog and my 12.5kg dog which is a Lowchen happily uses the Pet Door. A major disadvantage of all the Connect devices is they all require batteries and only the Pet Door supports re-chargeable batteries from my understanding. With semi-typical usage the battery should last about 3-4 months. Sometimes more, but if the batteries are lasting less than 3 months something is wrong and you should find out why.
Pet Door advantages:
- Supports a larger animals, but even a largeish cat should be fine with the cat flap.
- Uses 'C' batteries and also supports re-chargables if you select Custom Mode 2.
- You can select the Custom Mode via the buttons on the pet door, or send them via the cloud which setting custom modes can't be done with other devices and needs to be sent from the cloud by logging a case with SureFlap and hoping they will do it for you.
- Can unlock both directions with Non Selective Entry mode so door mechanism doesn't need to unlock for each entry improving battery life so you should get 6+ months life with Energizer Max Alkalines. I do this for home as I don't have random cats who come inside due to our dog.
- Buttons on the front and LCD on top of the pet door to visually check the situation, lock and unlock the door without using the cloud service.
Pet Door disadvantages:
- Doesn't have the "dual scan" capabilities of the dual scan cat door so can't have selective exit depending on the animal. It would be nice to do this but the tunnel would need to be quite large on the interior side to be able to detect and scan the animal
- A completely different message format to all the other devices... Why SurePet.. why did you do this? Or my guess was the Pet Door the first device they designed and whoever was the developer thought it was a good idea to follow the "hub" 'registers' approach. It's dumb and annoying to developer for.
- Only supports one curfew
- Curfew is another state alongside the locked / keepin state. Whereas on the Cat Flap curfews are independent.
Pet door message characteristics
Specifics of the Hub message ontop of Common message characteristics and there are only two message types from the Pet Door
-
8The 8 messages are generated by the Pet Door when an animal comes in or leaves through the door. -
132Status register update all values are in big endian byte order, starts at0and goes to630.
Pet door example messages
| Type | Example | Description |
|---|---|---|
| CMD - Lock Door | 6283d4fb 1000 2 36 1 03 |
Lock the door in both directions |
| CMD - Query Registers | 6283d4fb 1000 3 0 630 |
Send command to query the Pet Door Registers from offset 0 to offset 630
|
| Status - Pet 0 Came Inside | 6283d4fb 0bc0 8 00 07 2f 81 00 01 6e 44 02 22 6e 01 e5 |
Message 8 with first 00 being pet number at 7:47 local time 07 2f came inside but pet door thought they were already inside 81 and the rest I don't know what it means |
| Status - Pet 0 Came Inside | 6283d4fb 0bd0 132 130 525 3 07 2f 81 |
Also Pet 0 register 525 with 3 byte at 07 2f 7:47 came inside 81 when already thought inside |
Hub 132 Register messages
| Offset | Example | Description |
|---|---|---|
| 3 | 132 |
132 register status update |
| 4 | 1 |
Single byte decimal counter that goes from 0 to 254 before repeating, not zero padded |
| 5 |
0 to 630
|
Starting register decimal offset, this is the starting offset of the register not zero padded |
| 6 |
1 to 8
|
Payload length, from the above register, the proceeding bytes are the reigster(s) changing not zero padded, maximum length of 8 for each message |
| 7+ | xx |
Payload data in Hex byte, this is zero padded for the hex value |
With the above understanding of the different message formats, the registers sent in the 132 messages are documented below from my understanding.
132 Door Registers
| Register | Description |
|---|---|
| 33 | Battery ADC Value. Battery full at 0xbd and door dies at around 0x61/0x5f. ADC Start at 2.1075 not sure if this is consistent or just my door, and ADC step = 0.0225 |
| 34-35 | Door Time in local HH:MM in hex of the local time, so yes at DST Surepet updates every pet door with the new time |
| 36 | Lock State 0-4 The lock state of the door, UNLOCKED = 0, KEEPIN = 1, KEEPOUT = 2, LOCKED = 3, CURFEW = 4 |
| 40 | Inbound lock state for keep pets out. This also changes between Normal - 2 and Locked Keep Out - 3, which is separate to what the 36 register offst is doing |
| 59 | Provisioned tag count. I think this is a total of active tags provisioned |
| 60 | Next free tag slot, when provisioning a tag from the cloud this selects the slot to use |
| 61-63 | Custom Mode in big endian byte order |
| 91-309 | Provisioned tags - 7 bytes for each provisioned tag with the first byte being the tag type |
| 519 | Curfew mode lock / unlock time |
| 525-618 | Pet movement state in or out |
| 621 | Unknown pet went outside |
Pet Door Custom Modes
Custom Modes are a bitwise operator where each custom mode can be toggled on or off independently and allow additional features to be set on the Pet Door.
As per https://github.com/PetHubLocal/pethublocal/blob/main/pethublocal/enums.py
And:
| Custom Mode | Name | Description | YouTube Link |
|---|---|---|---|
| 1 | Nonselective | Unlocks the door inbound so any animal can come in | https://www.youtube.com/watch?v=riq5eRhDRGs |
| 2 | Rechargeables | Work with lower voltage from 1.2v Rechargeables vs 1.5v Alkaline | https://www.youtube.com/watch?v=QYtpQPlTFQM |
| 3 | ThreeSeconds | Timid Pets - 3 Seconds delay before closing door | https://www.youtube.com/watch?v=H3Xyqys5M88 |
| 4 | TenSeconds | Slower Locking - 10 Seconds delay before closing door | https://www.youtube.com/watch?v=7iRo38jNwLc |
| 5 | Intruder | Intruder Mode - Lock outside locks when non-provisioned animal detected by sensor to prevent door being pulled open | https://www.youtube.com/watch?v=PWz8JbAxCMo |
| 6 | OppositeCurfew | Opposite Curfew mode - Lock KeepOut rather than KeepIn | https://www.youtube.com/watch?v=wILX2J4dwKU |
| 7 | LockedCurfew | Fully Locking Curfew Mode - Locks both in and out locks when in curfew mode | https://www.youtube.com/watch?v=0L6lmuvt8U0 |
| 8 | MetalMode1 |
Metal |
https://www.youtube.com/watch?v=KIKXKdgp578 |
| 9 | MetalMode2 |
Metal |
https://www.youtube.com/watch?v=yqlIVgcG-ns |
| 10 | ExtendedRange | Extended Mode - Extend frequency of scanning the tags | https://www.youtube.com/watch?v=jKmGEf2jxJE |
| 11 | ExtendedIntruder | Extended Intruder Mode - Extended Intruder Mode - Registers presence of intruder animal trying to enter the house and closes outside lock to prevent door being pulled open for longer period | https://www.youtube.com/watch?v=9Twi5wgHWsU |
| 13 | DoubleChip1 | Double Chip Operating Mode 1 - Allow animal with two tags interfering with each other to enter | https://www.youtube.com/watch?v=xpnFTLppBlM |
| 14 | DoubleChip2 | Double Chip Operating Mode 2 - Allow animal with two tags interfering with each other to enter | https://www.youtube.com/watch?v=CY7NdNzVB1M |
| 15 | DoubleChip3 | Double Chip Operating Mode 3 - Allow animal with two tags interfering with each other to enter | https://www.youtube.com/watch?v=vfhzancw_5A |
| 16 | ProximityTest | Custom Mode 16 - Proximity Sensor Test - Test the proximity function of the door | https://www.youtube.com/watch?v=tCIHRrZyzlI |
class PetDoorCustomMode(SureFlag):
""" Custom Modes on the Pet Door """
Disabled = 0 # All custom modes disabled
Nonselective = 0x1 # Custom Mode 1 - Non-selective Entry - Unlocks the door inbound so any animal can come in
Rechargeables = 0x2 # Custom Mode 2 - Rechargeable Batteries so work with lower voltage from 1.2v Rechargeables vs 1.5v Alkaline
ThreeSeconds = 0x4 # Custom Mode 3 - Timid Pets - 3 Seconds delay before closing door
TenSeconds = 0x8 # Custom Mode 4 - Slower Locking - 10 Seconds delay before closing door
Intruder = 0x10 # Custom Mode 5 - Intruder Mode - Lock outside locks when non-provisioned animal detected by sensor to prevent door being pulled open
OppositeCurfew = 0x20 # Custom Mode 6 - Opposite Curfew mode - Lock KeepOut rather than KeepIn
LockedCurfew = 0x40 # Custom Mode 7 - Fully Locking Curfew Mode - Locks both in and out locks when in curfew mode
MetalMode1 = 0x80 # Custom Mode 8 - Metal Interference - This mode will help with severe metal interference in an installation
MetalMode2 = 0x100 # Custom Mode 9 - Metal Interference - This mode will help with severe metal interference in an installation
ExtendedRange = 0x200 # Custom Mode 10 - Extended Mode - Extend frequency of scanning the tags
ExtendedIntruder = 0x400 # Custom Mode 11 - Extended Intruder Mode - Extended Intruder Mode - Registers presence of intruder animal trying to enter the house and closes outside lock to prevent door being pulled open for longer period
BIT12 = 0x800 # Bit12 - ?
DoubleChip1 = 0x1000 # Custom Mode 13 - Double Chip Operating Mode 1 - Allow animal with two tags interfering with each other to enter
DoubleChip2 = 0x2000 # Custom Mode 14 - Double Chip Operating Mode 2 - Allow animal with two tags interfering with each other to enter
DoubleChip3 = 0x4000 # Custom Mode 15 - Double Chip Operating Mode 3 - Allow animal with two tags interfering with each other to enter
ProximityTest = 0x8000 # Custom Mode 16 - Proximity Sensor Test - Test the proximity function of the door
Pet Door Tags
There are two tag types, 01 for FDX-B tags and 04 for HDX tags, I have not yet figured out the calculation for the HDX tags.
The door tags is a big endian value for the FDX-B tags. The remaining 6 bytes is the tag value split into a 10 bits for the Country Code and 38 bits for the National Code
Example:
| Hex Tag | Decimal |
|---|---|
01 52 54 61 12 eb 9f |
999.100001000010 |
999.100001000010 to binary zero padding to 10 bits and 38 bits respectively : 1111100111 and 01011101001000100001100010101001001010
111110011101011101001000100001100010101001001010 reversed bits 010100100101010001100001000100101110101110011111
010100100101010001100001000100101110101110011111 as integer 90522359360415
90522359360415 as hex 52546112EB9F
Then prefix 01 for the tag type of FDX-B and you get 01 52 54 61 12 eb 9f