Jump to content

Listening for Clock-in and Clock-out


Recommended Posts

Greetings!

Scroll-down to *Problem if you want to skip the mumbo-jumbo and see the actual problem.

I am about a week into Auto-it and I have had a blast using it trying to solve a unique situation. Due to circumstances of my job, I am not always able to get to a PC or remember to use my phone when trying to clock in.  Here are my objectives

 

1. Listen for device to hit network ( WiFi or BLE beacon )

2. When beacon is detected, sign into clock-in website and enter my hard coded employee code to clock in

3. Periodically check if device is still connected to network

4. If not seen for 15 minutes, sign into website and use employee code to clock out.

 

Now, I was able to get this working using ping and WiFi for my phone. However, I would like to be able to use this for other applications and people in the future, and since phones like to turn off WiFi during idle (and I don't think forcing WiFi on all the time is the best), I don't think this is reliable as using a BLE beacon.

Here is my code for the WiFi version that works, but ultimately fails due to device specific WiFi issues.

#include <IE.au3>
#include <Inet.au3>

//* False means Im not clocked in, true means I am

Global $statusFlag = False



Call ("listenForCI")

//*Listens for my device until it is seen then 
//calls the sign in function

Func listenForCI ()
   Local $sf = $statusFlag
   While $sf = False
      Local $iPing = Ping("172.16.8.97",10000)
      If $iPing Then
      Call ("signIn")
   ContinueLoop
   EndIf
   WEnd
EndFunc

//*Listens for my device until it is no longer seen
// then calls the signout function

Func listenForCO ()
   Local $sf = $statusFlag
   While $sf = True
   Local $iPing = Ping("172.16.8.97",10000)
   If $iPing Then
      ContinueLoop
   Else
      Call ("signOutCountdown")
   EndIf
   WEnd
EndFunc

//* Timer/failsafe that gives me a chance to get my 
//device back online if there is connectivity issues


Func signOutCountdown ()
   Local $iPing = Ping("172.16.8.97",10000)
   Sleep ( 300000 )
   If $iPing Then
      Call ("listenForCO")
   Else
      Sleep ( 300000 )
   EndIf
   If $iPing Then
      Call ("listenForCO")
   Else
      Call ("signOut")
   EndIf
EndFunc

//*this signs me into the website, submits my employee id 
//to clock me in then goes to a logout page, enters a password
// to logout then closes IE. After IE is closed it sets a flag 
//that tells if Im clocked in on the website or not and calls the 
//function that listens if my device is still here.

Func signIn ()
   Local $oIE = _IECreate ("https://checkinwebsite/",0,1,1,1)
   Local $username = _IEGetObjByName ($oIE,"txtUserName")
   Local $password = _IEGetObjByName ($oIE,"txtPassword")
   Local $button = _IEGetObjByName ($oIE,"btnSubmit")
   _IEFormElementSetValue ($username, "myusername")
   _IEFormElementSetValue ($password,"mypassword")
   _IEAction ($button,"click")
  sleep (5000)
  Local $employeeId = _IEGetObjByName ($oIE,"tbEmployeeID")
  _IEFormElementSetValue ($employeeId,"myemployeeid")
  Send ("{ENTER}")
  sleep (5000)
  _IEFormImageClick($oIE, "btn-back.jpg", "srC")
  Sleep (5000)
  Local $fsProtpass = _IEGetObjByName ($oIE, "tbPassword")
  Local $doneBtn = _IEGetObjByName ($oIE, "btnDone")
  _IEFormElementSetValue ($fsProtpass,"mypassword")
  _IEAction ($doneBtn,"click")
  _IEQuit($oIE)
  Global $statusFlag = True
  Call ("listenForCO")
EndFunc

//*Similar to the signIn function but calls the 
//listener to wait for my device to come back online instead

Func signOut ()
   Local $oIE = _IECreate ("https://checkinwebsite/",0,1,1,1)
   Local $username = _IEGetObjByName ($oIE,"txtUserName")
   Local $password = _IEGetObjByName ($oIE,"txtPassword")
   Local $button = _IEGetObjByName ($oIE,"btnSubmit")
   _IEFormElementSetValue ($username, "myusername")
   _IEFormElementSetValue ($password,"mypassword")
   _IEAction ($button,"click")
  sleep (5000)
  Local $employeeId = _IEGetObjByName ($oIE,"tbEmployeeID")
  _IEFormElementSetValue ($employeeId,"myemployeeID")
  Send ("{ENTER}")
  sleep (5000)
  _IEFormImageClick($oIE, "btn-back.jpg", "srC")
  Sleep (5000)
  Local $fsProtpass = _IEGetObjByName ($oIE, "tbPassword")
  Local $doneBtn = _IEGetObjByName ($oIE, "btnDone")
  _IEFormElementSetValue ($fsProtpass,"mypassword")
  _IEAction ($doneBtn,"click")
  Global $statusFlag = False
  _IEQuit($oIE)
  Call ("listenForCI")
EndFunc

Now, this works great other than the fact that my Google Pixel likes to turn off its WiFi during lock to conserve power. I can changed this with android SDK but I will have to re-do this probably after every update and it may be different for other phone brands so ultimately I can't call this efficient for that reason.

My other option, BLUETOOTH BEACONS

So we are a full Meraki Stack network that is managed in house and my access points can search and see low energy Bluetooth beacons. The data is presented in a dynamic table :

bluetoothcapture.PNG.a6bcdefb5848af376e4a213dbff29310.PNG

So the data that is important to me is "Status" ,the name of the device in "description" and for the future, the "last seen by" . My plan is to run a script to get this data every 5 minutes and keep an updated excel database. After data is pulled, I plan to one-to-many search until I find the device "LE-reserved_S" and take the "status" into account on whether or not to sign in or sign out. 

 

***PROBLEM***

I need suggestions on the best way to get the data from the status column and shoot it to an excel spreadsheet or simple database. Why database and not just run from memory? Future proofing where more data can be kept here and presented in a different way. I'm open to all suggestions, best practices, use cases, etc and I appreciate your time. Below is more info if needed on the table.

 

The table populates based on any device that has been sensed in a certain time period instead of just showing what devices are currently being detected (this cannot be filtered to only show detected devices).

timeperiod.PNG.467100acb68ecd3b5b5549d1cb2c874a.PNG

 

This gives me a mix of all devices but creates a possible two hour play in getting clock in or clock out times as accurate as possible. If you haven't noticed yet, Meraki Devs decided to use an image instead text for status which creates a problem when trying to write the entire table by array to an excel sheet. Just shows up blank.

Here is the function for the table pull :

Func signIn ()
   Local $oIE = _IECreate ("https://mymerakidashboard/bluetoothclients",0,1,1,1)
   Local $username = _IEGetObjByName ($oIE,"email")
   Local $password = _IEGetObjByName ($oIE,"password")
   Local $button = _IEGetObjByName ($oIE,"commit")
   _IEFormElementSetValue ($username, "myusername")
   _IEFormElementSetValue ($password,"mypassword")
   _IEAction ($button,"click")

   sleep ( 5000 )
Local $oExcel = _Excel_Open()
Local $oWorkbook = _Excel_BookNew($oExcel)
Local $tables = _IETableGetCollection ( $oIE )
For $table In $tables
    If StringCompare ( $table.className, "filter compact fill" ) = 0 Then
        $tabledata = _IETableWriteToArray($table, True)
        _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, $tableData, "A1")
    Else
        ContinueLoop
    EndIf
 Next


EndFunc

Which gives me 

excelsnip.thumb.PNG.7c5904e70b06427296edb9271e2c7044.PNG

 

See, no status data showing the cells under the status collumn. 

Here is the code for the dynamic table I'm pulling from 

<table class="filter compact fill">
    <colgroup>
      <col />
      <col width="0*" />
      <col />
      <col />
      <col />
      <col />
      <col />
      <col />
    </colgroup>

    <thead>
      <tr class="ft_head">
        <th class="ft ftl checkbox nodrag checknum checkbox ftlegend c1"><input type=
        "checkbox" class="check_all" /></th>

        <th class="ft ftl status ftsortable">
          <table class="lean">
            <tbody>
              <tr class="c3">
                <td class="ftlegend">Status</td>

                <td class="c2"></td>
              </tr>
            </tbody>
          </table>
        </th>

        <th class="ft ftl description ftsortable">
          <table class="lean">
            <tbody>
              <tr class="c3">
                <td class="ftlegend">Description</td>

                <td class="c5"><img src="/images/icon_arrow_down_10x10.png" title=
                "Toggle sort order" alt="[Sorting down]" class="c4" /></td>
              </tr>
            </tbody>
          </table>
        </th>

        <th class="ft ftl ftnowrap last_seen ftsortable">
          <table class="lean">
            <tbody>
              <tr class="c3">
                <td class="ftlegend">Last seen</td>

                <td class="c2"></td>
              </tr>
            </tbody>
          </table>
        </th>

        <th class="ft ftl ftnowrap last_seen_by ftsortable">
          <table class="lean">
            <tbody>
              <tr class="c3">
                <td class="ftlegend"><span class="c6">Last seen by</span></td>

                <td class="c2"></td>
              </tr>
            </tbody>
          </table>
        </th>

        <th class="ft ftl oui ftsortable">
          <table class="lean">
            <tbody>
              <tr class="c3">
                <td class="ftlegend">Manufacturer</td>

                <td class="c2"></td>
              </tr>
            </tbody>
          </table>
        </th>

        <th class="ft ftc outage_graph ftsortable">
          <table class="lean c8">
            <tbody>
              <tr class="c3">
                <td class="c7"></td>

                <td class="ftlegend">Connectivity</td>

                <td class="c7"></td>
              </tr>
            </tbody>
          </table>
        </th>

        <th class="ft ftl tags ftsortable">
          <table class="lean">
            <tbody>
              <tr class="c3">
                <td class="ftlegend">Tags</td>

                <td class="c2"></td>
              </tr>
            </tbody>
          </table>
        </th>
      </tr>
    </thead>

    <tbody class="flex-table-body">
      <tr class="ftp0" data-idx="0">
        <td class="ft notranslate checkbox nodrag checknum"><input type="checkbox" class=
        "row_check" />&nbsp;1</td>

        <td class="ft notranslate status mks-cli-wireless-on c9">&nbsp; &nbsp;
        &nbsp;</td>

        <td class="ft notranslate description"><a href=
        "/ABC-Main-Campus/n/GjBDmcv/manage/bluetooth_clients/574771902443332083">LE-reserved_S</a></td>

        <td class="ft notranslate ftnowrap">Jun 18 17:05</td>

        <td class="ft notranslate ftnowrap"><a href=
        "/ABC-Main-Campus/n/GjBDmcv/manage/nodes/list#n=149624928557424">RM15</a></td>

        <td class="ft notranslate oui">Bose</td>

        <td class="ft notranslate outage_graph ftc">
          <div class="bt_connectivity_graph fill-graph c10" data-mac="2c:41:a1:59:8d:81">
          </div>
        </td>

        <td class="ft notranslate tags"></td>
      </tr>

      <tr class="ftp1" data-idx="1">
        <td class="ft notranslate checkbox nodrag checknum"><input type="checkbox" class=
        "row_check" />&nbsp;2</td>

        <td class="ft notranslate status mks-cli-wireless-on c9">&nbsp; &nbsp;
        &nbsp;</td>

        <td class="ft notranslate description"><a href=
        "/ABC-Main-Campus/n/GjBDmcv/manage/bluetooth_clients/574771902443332085">LE-Robbie's
        Bose Free</a></td>

        <td class="ft notranslate ftnowrap">Jun 18 17:06</td>

        <td class="ft notranslate ftnowrap"><a href=
        "/ABC-Main-Campus/n/GjBDmcv/manage/nodes/list#n=149624928612960">RM11</a></td>

        <td class="ft notranslate oui">Bose</td>

        <td class="ft notranslate outage_graph ftc">
          <div class="bt_connectivity_graph fill-graph c10" data-mac="2c:41:a1:59:8f:af">
          </div>
        </td>

        <td class="ft notranslate tags"></td>
      </tr>

      <tr class="ftp0" data-idx="2">
        <td class="ft notranslate checkbox nodrag checknum"><input type="checkbox" class=
        "row_check" />&nbsp;3</td>

        <td class="ft notranslate status mks-cli-wireless-off c9">&nbsp; &nbsp;
        &nbsp;</td>

        <td class="ft notranslate description"><a href=
        "/ABC-Main-Campus/n/GjBDmcv/manage/bluetooth_clients/574771902443303080">Flex</a></td>

        <td class="ft notranslate ftnowrap">Jun 18 16:07</td>

        <td class="ft notranslate ftnowrap"><a href=
        "/ABC-Main-Campus/n/GjBDmcv/manage/nodes/list#n=13803411384454">Gym-AP</a></td>

        <td class="ft notranslate oui"></td>

        <td class="ft notranslate outage_graph ftc">
          <div class="bt_connectivity_graph fill-graph c10" data-mac="d3:7b:dd:d3:4e:f3">
          </div>
        </td>

        <td class="ft notranslate tags"></td>
      </tr>

      <tr class="ftp1" data-idx="3">
        <td class="ft notranslate checkbox nodrag checknum"><input type="checkbox" class=
        "row_check" />&nbsp;4</td>

        <td class="ft notranslate status mks-cli-wireless-on c9">&nbsp; &nbsp;
        &nbsp;</td>

        <td class="ft notranslate description"><a href=
        "/ABC-Main-Campus/n/GjBDmcv/manage/bluetooth_clients/574771902443407785">Alta</a></td>

        <td class="ft notranslate ftnowrap">Jun 18 17:06</td>

        <td class="ft notranslate ftnowrap"><a href=
        "/ABC-Main-Campus/n/GjBDmcv/manage/nodes/list#n=13803411385997">Front Office -
        AP</a></td>

        <td class="ft notranslate oui"></td>

        <td class="ft notranslate outage_graph ftc">
          <div class="bt_connectivity_graph fill-graph c10" data-mac="fa:36:e3:06:4b:98">
          </div>
        </td>

        <td class="ft notranslate tags"></td>
      </tr>

      <tr class="ftp0" data-idx="4">
        <td class="ft notranslate checkbox nodrag checknum"><input type="checkbox" class=
        "row_check" />&nbsp;5</td>

        <td class="ft notranslate status mks-cli-wireless-on c9">&nbsp; &nbsp;
        &nbsp;</td>

        <td class="ft notranslate description"><a href=
        "/ABC-Main-Campus/n/GjBDmcv/manage/bluetooth_clients/574771902443302716">18:93:d7:1c:09:75</a></td>

        <td class="ft notranslate ftnowrap">Jun 18 17:06</td>

        <td class="ft notranslate ftnowrap"><a href=
        "/ABC-Main-Campus/n/GjBDmcv/manage/nodes/list#n=149624928612960">RM11</a></td>

        <td class="ft notranslate oui">Texas Instruments</td>

        <td class="ft notranslate outage_graph ftc">
          <div class="bt_connectivity_graph fill-graph c10" data-mac="18:93:d7:1c:09:75">
          </div>
        </td>

        <td class="ft notranslate tags"></td>
      </tr>
    </tbody>
  </table>

Status cell html contains either 

<i style="width: 50px;" class="mks-cli-wireless-on" title="online wireless client">&nbsp; &nbsp; &nbsp;</i>

Which shows the device as currently detected or

<i style="width: 50px;" class="mks-cli-wireless-off" title="offline wireless client">&nbsp; &nbsp; &nbsp;</i>

Which shows that we have seen you in the last two hours, but don't currently see you now.

 

Thanks for your time!

Link to comment
Share on other sites

  • Moderators

Xysten,

Quote

Due to circumstances of my job, I am not always able to get to a PC or remember to use my phone when trying to clock in

So why not approach your employer and get them to provide a proper solution rather than try to work up some Heath Robinson (or Rube Goldberg if you prefer) code?

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

3 minutes ago, Melba23 said:

Xysten,

So why not approach your employer and get them to provide a proper solution rather than try to work up some Heath Robinson (or Rube Goldberg if you prefer) code?

M23

Good Question!

1. I work in public education where it is difficult to commit a development budget to something like this. The currency saved (time) for this stage is very minimal and lives on the bottom of a spending  priority list. 

2. This is something I am doing on my time to make my life easier and would love to pass that on to other staff in the future if I can polish my procedural "Rube Goldberg" code.  

3. This is fun. I honestly enjoy learning about Autoit and using IE as an API is something I wish I had thought of a long time ago!

 

Any hints on how to maybe separate that data before writing it to excel?. As I'm searching, I am not finding much on actually passing that image into excel or the class. Is there anyway to manipulate _IETableWritetoArray to say something like, where x.class in "status" column =  mks-cli-wireless-on , write data to array ...?

Link to comment
Share on other sites

  • Moderators

My question would be, does your employer (school) think this is okay? It sounds like you are seeking to circumvent a policy or process they have in place by not having to "clock in".

"Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball

How to get your question answered on this forum!

Link to comment
Share on other sites

2 minutes ago, JLogan3o13 said:

My question would be, does your employer (school) think this is okay? It sounds like you are seeking to circumvent a policy or process they have in place by not having to "clock in".

Absolutely, I write the policies for the most part being the IT Director. For salaried employees, the clock-in system is used as a means to seeing who is on campus. The only policy in place regarding clocking in is when an employee, salaried or hourly are on campus, they must be signed in.  Myself, the principal, and a few other administrative staff will benefit from this since we are often "caught" by other staff and students with issues to resolve in hallways and classrooms (and get sidetracked before we can clock in).  For security purposes, if there is an incident that requires a staff and student count (fire, etc) we are able to pull a list of signed in employees from this system.

I am thrilled with the level of scrutiny my small problem is getting from your moderation staff concerning the ethics of the request! This along side other threads I have browsed while on my quest truly shows the mod team are looking to keep the forums within spec of high ethical standards. Hats off!

Back to my issue,

Here is where I am, I am trying to use StringRegExpReplace to replace the bit of HTML that calls the image with a '<p>Online</p>'. After this can pull the table into an array and export to excel. Anyone see any issues going about it this way? If not, I'll report back when I have news.

 

Thanks again!

Link to comment
Share on other sites

That sounds easy enough, can you mask the sensitive strings and provide a sample of the target html?

 

larger architectural question:

When you say "signed in" are you talking active directory, and when you say "clock in" is this also automated via a popular timekeeping application?

Do you have a central repo for domain controller logs and/or for endpoint System event logs? Could you just capture the 4624 type 2 (local logon) events and/or the 4624 type 3's from your IP space (network logon, but from on campus)?

 

I ask because it looks like you are grabbing names off a controller that probably has some human readable output or syslog that would be much cleaner and not subject to the whims of a UI dev.  And I can game beacons all day, if the WAP closest to my desk is the sole source of truth there may be more due diligence to be had.

Edited by iamtheky

,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Link to comment
Share on other sites

4 minutes ago, iamtheky said:

Do you have a central repo for domain controller logs and/or for endpoint System event logs? Could you just capture the 4624 type 2 (local logon) events and/or the 4624 type 3's from your IP space (network logon, but from on campus)? 

The point of the project is to be detected by mobile device, be it phone or BLE beacon. Successful logons to the domain won't do much good since the objective is to not have to touch a domain associated device. I could potentially use my laptop for this, then again we return back to telling the PC that it cannot turn off Wifi while on battery which I would like to avoid. 

Beacon sounds like the best way to go, I will eventually move more towards the Meraki CMX (location analytics now) API where the information will be pushed towards be via HTTP POST via plain text without the hassle of images. I will still use AutoIT to automate the "clock-in/sign-in" process based on which BLE beacons are present.

 

12 minutes ago, iamtheky said:

When you say "signed in" are you talking active directory, and when you say "clock in" is this also automated via a popular timekeeping application.

I use the term interchangeably where Salaried employees, vendors and visitors "Sign-In" and hourly employees "clock-in" 

 

14 minutes ago, iamtheky said:

That sounds easy enough, can you mask the sensitive strings and provide a sample of the target html?

 

Using _IEBodyReadHTML I am able to pull the full html into a variable. What I would like to do is be able to search for

Quote

<i title="online wireless client" class="mks-cli-wireless-on" style="width: 50px;">&nbsp; &nbsp; &nbsp;</i>

and replace with

Quote

"Online"

then write that back with _IEBodyWriteHTML.

Here is what I have that is failing, 

Local $doc = _IEBodyReadHTML($oIE)
StringRegExpReplace( $doc, '<i title="online wireless client" class="mks-cli-wireless-on" style="width: 50px;">&nbsp; &nbsp; &nbsp;</i>', "Online" )
_IEBodyWriteHTML($oIE, $doc)

I know I probably need to loop this but I cannot get this to change anything at all. I have written $doc to .txt just to see if any changes and there is no go. The more and more I chase this ghost with trying to write back to IE, the more it just makes sense to parse the data from the raw HTML itself instead of trying to use _IETableWriteToArray

Link to comment
Share on other sites

3 hours ago, iamtheky said:

I ask because it looks like you are grabbing names off a controller that probably has some human readable output or syslog that would be much cleaner and not subject to the whims of a UI dev.  And I can game beacons all day, if the WAP closest to my desk is the sole source of truth there may be more due diligence to be had.

No direct controller, syslog, API for this current version.  I'm going around my elbow this time as an excuse to familiarize myself with Autoit and its ability to use IE as an API with ease (or so I thought). I displayed the Meraki Dashboard and the output of my Autoit code into excel and that's pretty much it. As far as gaming beacons goes, the purpose of the beacons for my case is not for auditing or accountability, but automation for now. As the technology grows and matures, new security protocols will come into play to minimize your gaming.

Link to comment
Share on other sites

  • Moderators

Xysten,

10 hours ago, Xysten said:

I am thrilled with the level of scrutiny my small problem is getting from your moderation staff concerning the ethics of the request! This along side other threads I have browsed while on my quest truly shows the mod team are looking to keep the forums within spec of high ethical standards. Hats off!

That makes a change from the normal response we get when asking those sorts of questions! Thanks for the compliments.

M23

 

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

9 hours ago, Xysten said:

As the technology grows and matures, new security protocols will come into play to minimize your gaming.

thats wishful, did AC add any security over N?  I had to stop testing our environment with the Pineapple because it's too easy to render the WAP logs useless, and even top of the line aruba controllers really only have the ability to triangulate location and then pump up the gain and overpower rogue radios.  But I digress.

fysa, If you provided the syslog this could probably be knocked out in a one liner.

 

 

 

,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Link to comment
Share on other sites

I use presence detection at home for automation.

I like to use more than one method and actually create a and function so that both must be true for a status change.

Example: NMAP scanning the IP on the network AND Ubiquiti reporting the device as connected by its MAC.

I was reading up on it and another presence detection used by others is OwnTracks, its a GPS app for Android and Iphone.

I have not tried it yet, but thats a 3rd way to cross reference and something you may be able to implement.

People like me keep Wifi off on their work phone, and my personal phone only connects to my home network.

Bluetooth is promising since you have an array of sensors, else the issue is the range.

 

Figured I would just give you the heads up for the GPS option as well.

Link to comment
Share on other sites

near field geotags would be the sexy way to do ingress/egress.  We are still on prox cards.

,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-.
|(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/
(_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_)
| | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) (
| | | | |)| | \ / | | | | | |)| | `--. | |) \ | |
`-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_|
'-' '-' (__) (__) (_) (__)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...