rsnodgrass / pyadtpulse

Python interface for ADT Pulse security systems
Other
15 stars 5 forks source link

Floor detector #3

Closed damien67 closed 3 years ago

damien67 commented 4 years ago

Hey Ryan! First of all thank you for this addon, seems to be working well. Since HA dropped the news on depreciating HASS.IO, I decided to see if I could migrate everything I have as addons to other solutions. (news is on hold, but just in case!) Been using Haruny's addon for a while, which works very well too.

Anyways! So I have a floor flood sensor next to a sewer pump in my basement. The addon doesn't know that type of sensor so I get this in my logs:

2020-06-01 14:25:38 WARNING (SyncWorker_11) [pyadtpulse.site] Unknown sensor type for Floor Detector, defaulting to doorWindow
2020-06-01 14:25:38 WARNING (SyncWorker_11) [pyadtpulse.site] Unknown sensor type for Floor Detector, defaulting to doorWindow
2020-06-01 14:25:41 WARNING (SyncWorker_18) [pyadtpulse.site] Unknown sensor type for Floor Detector, defaulting to doorWindow
2020-06-01 14:25:47 WARNING (SyncWorker_6) [pyadtpulse.site] Unknown sensor type for Floor Detector, defaulting to doorWindow

Problem is that there are a lot of them in my logs. As you can see 14:25, x4. Goes on and on... I inspected your code, and found in site.py:

            if "Door" in name or "Window" in name:
                tags = [ 'sensor', 'doorWindow' ] 
            elif "Motion" in name:
                tags = [ 'sensor', 'motion' ] 
            elif "Glass" in name:
                tags = [ 'sensor', 'glass' ] 
            elif "Gas" in name:
                tags = [ 'sensor', 'co' ] 
            elif "Smoke" in name or "Heat" in name:
                tags = [ 'sensor', 'smoke' ]      
            else:
                LOG.warning(f"Unknown sensor type for {name}, defaulting to doorWindow")
                tags = [ 'sensor', 'doorWindow' ]

Would it be possible to add another condition such as:

            elif "Floor" in name:
                tags = [ 'sensor', 'flood' ]

??

I also inspected the ajax responses from ADT, and the floor sensor shows like this (from /ajax/orb.jsp):

<tr class="p_rowd" style="cursor:pointer;" onmouseover="setbg(this,'p_rowh')" onmouseout="setbg(this,'p_rowd')"><td><table border=0 cellspacing=0 cellpadding=0 width=100%><tr class='p_listRow'><td width="14" style="overflow: hidden;" class='p_iconCellSummary' onClick="launchDetailsWindow('XXX=', 672)" onMouseOver="document.body.style.cursor='pointer'" onMouseOut="document.body.style.cursor='default'"><span class="devStatIcon" title="Last Event: 3/9&nbsp;11:32&nbsp;AM"><canvas icon="devStatOK" class="p_ic_icon_device" width="13" height="13"></canvas><td width=9 onClick="launchDetailsWindow('XXX=', 672)" onMouseOver="document.body.style.cursor='pointer'" onMouseOut="document.body.style.cursor='default'"><img src="/myhome/19.0.0-89/images/spacer.gif" border=0 width=1 height=2></td><td class='p_listRow' onClick="launchDetailsWindow('XXX=', 672)" onMouseOver="document.body.style.cursor='pointer'" onMouseOut="document.body.style.cursor='default'"><a class="p_deviceNameText" href="javascript:launchDetailsWindow('XXX=', 672)">Floor Detector</a>&nbsp; <span class="p_grayNormalText">Zone&nbsp;11</span></td><td class='p_listRow' valign=middle align=right onClick="launchDetailsWindow('XXX=', 672)" onMouseOver="document.body.style.cursor='pointer'" onMouseOut="document.body.style.cursor='default'">Okay&nbsp;</td></tr></tr></table></td></tr>

I looked everywhere trying to find which py file needed to be updated for HA to pick this sensor but could figure this part out! Plus long term it'd be better for this component to be updated for everyone...

Thank you so much in advance. Let me know if you need any other detail from me.