Announcement

Collapse
No announcement yet.

Yet another mobile app

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • pcgirl65
    replied
    Something weird just happened with HSBuddy. One of the iphones was reporting location every 2 seconds in the log. Then the plugin just disconnected and then started again. Now it seems to be fine. It isn't logging location every 2 seconds. Does anybody else have an issue with this?

    Leave a comment:


  • pcgirl65
    replied
    Originally posted by themlruts View Post
    Love the app. Just one question. Can you use variables in the push notifications? I would like to use date and time. ii tried using $date but doesn't work.
    Thanks
    Mike
    I am wondering this also. Can we use variables in the push notifications? If so how do we use them?

    Leave a comment:


  • dakipro
    replied
    Hi and thank you very much for the app and plugin avargaskun. I discovered and started playing with geofences, I was wondering if you could add something like "outside of all known geofences" or something like that?
    I would like to know where my virtual string "phone device" is, and I have some rules like "enters home" and "enters work" and similar, but then I would like to show OTHER as of unknow location, then I would have to make a rule "exits home OR exits work OR exits.... " which would have to be maintained manually. Something like "enters unknown geofence" could work as well.

    Or of course, you could add a virtual device that would automatically display current geofence location, then we do not have to do anything

    Leave a comment:


  • dem5867
    replied
    Anybody ??

    Leave a comment:


  • dem5867
    replied
    Android 8.1 {Chinese tablet} not installing HS Buddy

    When I try to install HS buddy from the Play store it tells me it may not be optimised for my device and will not let me install it !! I get the same thing trying to install HSM.. Any ideas ??

    TIA
    Dem

    Leave a comment:


  • weslsew
    replied
    Originally posted by endezo View Post
    I've been greatly appreciating the push notification feature of HSBuddy, but it completely stopped functioning recently, perhaps due to a HS update? Any attempt to trigger a push notification throws up an error which looks like this in the log:

    Code:
     
    Error in HandleAction: System.AggregateException: One or more errors occurred. ---> System.Net.WebException: Error: ConnectFailure (The requested address is not valid in this context) ---> System.Net.Sockets.SocketException: The requested address is not valid in this context at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x00064] in :0 at System.Net.WebConnection.Connect (System.Net.HttpWebRequest request) [0x0019b] in :0 --- End of inner exception stack trace --- at System.Net.HttpWebRequest.EndGetRequestStream (System.IAsyncResult asyncResult) [0x00043] in :0 at System.Threading.Tasks.TaskFactory`1[TResult].FromAsyncCoreLogic (System.IAsyncResult iar, System.Func`2[T,TResult] endFunction, System.Action`1[T] endAction, System.Threading.Tasks.Task`1[TResult] promise, System.Boolean requiresSynchronization) [0x00014] in <8f2c484307284b51944a1a13a14c0266>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Net.Http.HttpClientHandler+c__async0.MoveNext () [0x002f7] in <41c316444c8a4380b9344ba09eeb18de>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Net.Http.HttpClient+c__async0.MoveNext () [0x000f3] in <41c316444c8a4380b9344ba09eeb18de>:0 --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00014] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.Tasks.Task`1[TResult].GetResultCore (System.Boolean waitCompletionNotification) [0x00034] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.Tasks.Task`1[TResult].get_Result () [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0 at HSPI_HSBuddy.Clients.OneSignalNotifier.SendNotificationToSingleApp (System.String appId, System.Collections.Generic.IEnumerable`1[T] clients, System.String message, System.Collections.Generic.List`1[T] invalidClients) [0x000a8] in <9d46cb9554394ff7a50f37bb6eb66665>:0 at HSPI_HSBuddy.Clients.OneSignalNotifier.SendNotification (System.Collections.Generic.IEnumerable`1[T] clients, System.String message, System.Collections.Generic.IEnumerable`1[HSPI_HSBuddy.Data.ClientInfo]& invalidClients) [0x00044] in <9d46cb9554394ff7a50f37bb6eb66665>:0 at HSPI_HSBuddy.Actions.PushNotificationAction.HandleAction (HomeSeerAPI.IPlugInAPI+strTrigActInfo actInfo) [0x000b7] in <9d46cb9554394ff7a50f37bb6eb66665>:0 at HSPI_HSBuddy.HSPI.HandleAction (HomeSeerAPI.IPlugInAPI+strTrigActInfo ActInfo) [0x00006] in <9d46cb9554394ff7a50f37bb6eb66665>:0 ---> (Inner Exception #0) System.Net.WebException: Error: ConnectFailure (The requested address is not valid in this context) ---> System.Net.Sockets.SocketException: The requested address is not valid in this context at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x00064] in :0 at System.Net.WebConnection.Connect (System.Net.HttpWebRequest request) [0x0019b] in :0 --- End of inner exception stack trace --- at System.Net.HttpWebRequest.EndGetRequestStream (System.IAsyncResult asyncResult) [0x00043] in :0 at System.Threading.Tasks.TaskFactory`1[TResult].FromAsyncCoreLogic (System.IAsyncResult iar, System.Func`2[T,TResult] endFunction, System.Action`1[T] endAction, System.Threading.Tasks.Task`1[TResult] promise, System.Boolean requiresSynchronization) [0x00014] in <8f2c484307284b51944a1a13a14c0266>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Net.Http.HttpClientHandler+c__async0.MoveNext () [0x002f7] in <41c316444c8a4380b9344ba09eeb18de>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Net.Http.HttpClient+c__async0.MoveNext () [0x000f3] in <41c316444c8a4380b9344ba09eeb18de>:0 <---
    I'm getting a different error, but same situation - the app works fine but I get an error when HS Buddy is supposed to push a notification. I see a lot of references to mono in my error, so maybe something was broken with a mono update? (I'm running on linux). did you ever figure this out?

    Leave a comment:


  • pciccone
    replied
    I just moved to a brand new Windows 10 (1903) HS install. All other plugins and system activities are normal, except the HSbuddy plugin. Its stuck at "INFO: Plugin start is pending", with no errors reporting in the log and the EXE not running in task manager. I tried:

    Uninstalled
    Removing the exe and .config files
    Removing the ./conf ini file
    Rebooting (once I got it to start, but now cannot re-create how)
    Sep-28 8:23:43 PM Plug-In Finished initializing plug-in HSBuddy
    Sep-28 8:23:43 PM Starting Plug-In HSBuddy loaded in 15037 milliseconds
    I have no errors to report in the log, any suggestions I can try to further debug without an error being reported?

    EDIT: I HAVE A WORKAROUND: Downgrade back to 3.0.0.531 and it will let HSBuddy plugin work again. Something was changed in the HS3 code that is causing the issue. Luckily, for now, nothing major was updated that should be too much of a concern to most people.

    Leave a comment:


  • Richel
    replied
    I just start using again HSBuddy, because the HS mobile app is too flaky and rough. I have discovered the Geofence capability of HSBuddy and like it very much, so far. Can someone please let me know how I could display the Geofence map in HSTouch? Thanks. Elliott

    Leave a comment:


  • bebaldin
    replied
    Originally posted by grtaylor View Post
    Has the creator of the app/PI disappeared? Seems like no responses for some months. Which is a shame.

    I just started using HSBuddy solely for the Geofence capability on some iPhones and it works great but.... sometimes it does a quick seemingly random out/in to the home geofence, when the device is still within the area. Which makes using for disabling the home alarm a bit tricky. I guess I could try and figure out a way around it with devices and delays but it would be helpful to find out what's causing it and see if we can't fix it.

    Anyone have any ideas or seen this?
    I see this issue occasionally, but only on older Android devices running Nougat. I am not certain, but I have noticed that when this happens the Google locator changes position on their map for the device as well. I believe this is caused by the phone being handed off to a different tower, that changes the estimated location of the device and 'moves' it out of the particular geofence. My newer devices seem to do a more fine-grained triangulation of their position, and don't seem to be affected by this.

    Leave a comment:


  • bebaldin
    replied
    Originally posted by harshl View Post

    I am having this same issue on Android 9 (Pie). I have the application locked on the app switcher screen and have also disabled battery optimization for the app, but still, it stops updating occasionally. I am on a OnePlus 6 with stock software, updated with the June security patches.
    What I would like to know beyond a fix for this, is if there is a way to simply trigger an event when HSBuddy hasn't received an update from a client in say "x" number of hours. The data is already there in the server side of the app, but I don't see a way to trigger an event based on it. I was just going to create an event that sent me a text if any of my clients hadn't been seen for 4 hours or something so I could manually open the software on that device and trigger the updates to start again.

    I use HSBuddy exclusively for GeoFencing and it has been great with this small exception. Sure do appreciate the work you have done on it to this point!
    I have the exact same issue. The problem is that at least the geofencing portion of this app needs to reside in memory (like a service would in Windows). I believe that Android memory management closes HSBuddy for inactivity whenever it thinks it needs to free up memory. I have tried various methods to ensure that HSBuddy remains resident, but without rooting the phone there is no good way to do it.

    I have a Galaxy S8 running Pie, and a Galaxy S6 running Nougat. I also have an Asus Z10 running Nougat. Each exhibits the same problem. It is much less prevalent on my S8, but that device has far more memory than the others.

    In my opinion, the geofencing client has to be moved to resident memory for this to work properly. There are other geofencing apps like PHLocation that do this. I don't want to go back to PHLocation so I am hoping that the developer fixes this soon.

    Leave a comment:


  • Dr. McKay
    replied
    Originally posted by vikeq View Post
    Hi,
    I LOVE HSBUDDY thank you very much avargaskun.

    For change a device value, I do 1 clic on it and second clic to say "ON" or "OFF".

    is it possible to have option ability to do same with only ONE clic? (have icon "ON" and "OFF" on the right of device first page listing as homeseer web page)

    Thank you
    It's perhaps not quite what you're looking for, but you can long-press on a device in the list and the controls for that device will pop up.

    Leave a comment:


  • vikeq
    replied
    Hi,
    I LOVE HSBUDDY thank you very much avargaskun.

    For change a device value, I do 1 clic on it and second clic to say "ON" or "OFF".

    is it possible to have option ability to do same with only ONE clic? (have icon "ON" and "OFF" on the right of device first page listing as homeseer web page)

    Thank you

    Leave a comment:


  • endezo
    replied
    I've been greatly appreciating the push notification feature of HSBuddy, but it completely stopped functioning recently, perhaps due to a HS update? Any attempt to trigger a push notification throws up an error which looks like this in the log:

    Code:
     
    Error in HandleAction: System.AggregateException: One or more errors occurred. ---> System.Net.WebException: Error: ConnectFailure (The requested address is not valid in this context) ---> System.Net.Sockets.SocketException: The requested address is not valid in this context at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x00064] in :0 at System.Net.WebConnection.Connect (System.Net.HttpWebRequest request) [0x0019b] in :0 --- End of inner exception stack trace --- at System.Net.HttpWebRequest.EndGetRequestStream (System.IAsyncResult asyncResult) [0x00043] in :0 at System.Threading.Tasks.TaskFactory`1[TResult].FromAsyncCoreLogic (System.IAsyncResult iar, System.Func`2[T,TResult] endFunction, System.Action`1[T] endAction, System.Threading.Tasks.Task`1[TResult] promise, System.Boolean requiresSynchronization) [0x00014] in <8f2c484307284b51944a1a13a14c0266>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Net.Http.HttpClientHandler+c__async0.MoveNext () [0x002f7] in <41c316444c8a4380b9344ba09eeb18de>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Net.Http.HttpClient+c__async0.MoveNext () [0x000f3] in <41c316444c8a4380b9344ba09eeb18de>:0 --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00014] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.Tasks.Task`1[TResult].GetResultCore (System.Boolean waitCompletionNotification) [0x00034] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.Tasks.Task`1[TResult].get_Result () [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0 at HSPI_HSBuddy.Clients.OneSignalNotifier.SendNotificationToSingleApp (System.String appId, System.Collections.Generic.IEnumerable`1[T] clients, System.String message, System.Collections.Generic.List`1[T] invalidClients) [0x000a8] in <9d46cb9554394ff7a50f37bb6eb66665>:0 at HSPI_HSBuddy.Clients.OneSignalNotifier.SendNotification (System.Collections.Generic.IEnumerable`1[T] clients, System.String message, System.Collections.Generic.IEnumerable`1[HSPI_HSBuddy.Data.ClientInfo]& invalidClients) [0x00044] in <9d46cb9554394ff7a50f37bb6eb66665>:0 at HSPI_HSBuddy.Actions.PushNotificationAction.HandleAction (HomeSeerAPI.IPlugInAPI+strTrigActInfo actInfo) [0x000b7] in <9d46cb9554394ff7a50f37bb6eb66665>:0 at HSPI_HSBuddy.HSPI.HandleAction (HomeSeerAPI.IPlugInAPI+strTrigActInfo ActInfo) [0x00006] in <9d46cb9554394ff7a50f37bb6eb66665>:0 ---> (Inner Exception #0) System.Net.WebException: Error: ConnectFailure (The requested address is not valid in this context) ---> System.Net.Sockets.SocketException: The requested address is not valid in this context at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP) [0x00064] in :0 at System.Net.WebConnection.Connect (System.Net.HttpWebRequest request) [0x0019b] in :0 --- End of inner exception stack trace --- at System.Net.HttpWebRequest.EndGetRequestStream (System.IAsyncResult asyncResult) [0x00043] in :0 at System.Threading.Tasks.TaskFactory`1[TResult].FromAsyncCoreLogic (System.IAsyncResult iar, System.Func`2[T,TResult] endFunction, System.Action`1[T] endAction, System.Threading.Tasks.Task`1[TResult] promise, System.Boolean requiresSynchronization) [0x00014] in <8f2c484307284b51944a1a13a14c0266>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Net.Http.HttpClientHandler+c__async0.MoveNext () [0x002f7] in <41c316444c8a4380b9344ba09eeb18de>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Net.Http.HttpClient+c__async0.MoveNext () [0x000f3] in <41c316444c8a4380b9344ba09eeb18de>:0 <---

    Leave a comment:


  • grtaylor
    replied
    Has the creator of the app/PI disappeared? Seems like no responses for some months. Which is a shame.

    I just started using HSBuddy solely for the Geofence capability on some iPhones and it works great but.... sometimes it does a quick seemingly random out/in to the home geofence, when the device is still within the area. Which makes using for disabling the home alarm a bit tricky. I guess I could try and figure out a way around it with devices and delays but it would be helpful to find out what's causing it and see if we can't fix it.

    Anyone have any ideas or seen this?

    Leave a comment:


  • harshl
    replied
    Thanks for writing HSBuddy, it's got some good features and was easy to get going. My only problem is my wife's phone stops sending location updates and won't send new ones till she re-launches the HSBuddy app on her phone, then it runs again for a while and stops updating again. I never have to relaunch it on my phone. Is there anything that you know of off-hand that could cause that? We're both on Android and she isn't stopping any location services or anything like that.
    I am having this same issue on Android 9 (Pie). I have the application locked on the app switcher screen and have also disabled battery optimization for the app, but still, it stops updating occasionally. I am on a OnePlus 6 with stock software, updated with the June security patches.
    What I would like to know beyond a fix for this, is if there is a way to simply trigger an event when HSBuddy hasn't received an update from a client in say "x" number of hours. The data is already there in the server side of the app, but I don't see a way to trigger an event based on it. I was just going to create an event that sent me a text if any of my clients hadn't been seen for 4 hours or something so I could manually open the software on that device and trigger the updates to start again.

    I use HSBuddy exclusively for GeoFencing and it has been great with this small exception. Sure do appreciate the work you have done on it to this point!

    Leave a comment:

Working...
X