Announcement

Collapse
No announcement yet.

Finally BLE scanning

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

  • risquare
    replied
    Originally posted by Michael McSharry View Post
    I opened upon another discussion thread at https://forums.homeseer.com/forum/li...oth-low-energy to focus on a specific implementation of a BLE scanner. I felt continuing here would be hijacking this thread and would tend to be confusing to Big5 users.
    I don't think so. Big5 covers the original protocol HTTP from the original source and Big5 covers the modified MQTT protocol as you chose to modify it because you were selling a MQTT plug-in. Furthermore, Big5 is suitable for multiple devices and platforms as it supports 5 major protocols as well as RESTfull standard for API and JSON API in particular. As a result we discuss multiple devices, technologies and platforms here at this Big5 dedicated forum. The OP had chosen this forum for a reason and there were no complains that this topic doesn't belong here. Your work and contribution is recognized but it obviously pursues a commercial interest in selling your MQTT plug-in, which is O.K. if you don't steal topics from other people's forums.

    Leave a comment:


  • Michael McSharry
    replied
    I opened upon another discussion thread at https://forums.homeseer.com/forum/li...oth-low-energy to focus on a specific implementation of a BLE scanner. I felt continuing here would be hijacking this thread and would tend to be confusing to Big5 users.

    Leave a comment:


  • risquare
    replied
    Kalman filter library is available for Arduino https://github.com/TKJElectronics/KalmanFilter . This was a quick search. Maybe more detailed research will unveil more options.

    Leave a comment:


  • Michael McSharry
    replied
    The main point of the Kalman filter is to remove the noise from the sensor inputs. If the sensors are perfect (i.e. BLE RSSI report is perfect and unchanging for a stationary beacon) then no filtering is needed. If one was to use a simple low pass filter to remove the higher frequency noise components then the position determination would be very slow to recognize that a beacon has moved. Kalman's algorithm provides a good blend of noise reduction and responsiveness. It does not demand that more sensors be added. It just makes "optimal" use of the sensors that are available.

    While I am not indicating that this algorithm needs to be used, I was surprised that it was implemented. Apparently node.js has a kalman library function so it was pretty painless in that implementation.

    With the data I collected yesterday I can see jitter in the RSSI from minute to minute sample. Usually just a 2 or 3 point variation. Sometimes it would be 20'ish variation. I also see drift where the strength decayed down over time. I also saw dropouts and then reappearance. When one takes all of these things into account going the route of something like Kalman's filter will be needed to provide stable/believable results. This is especially true when one desires to use the information for HS triggers which have no filtering ability and are simple thresholds.

    Leave a comment:


  • risquare
    replied
    Kalman filters are literally "rocket science" as they were used in trajectory calculations of spacecrafts. Having more accuracy is always better, however the ultimate goal has to be in mind in a expense/reward analysis. Do you want to know that John is in the kitchen overall or that John is in the kitchen exactly in front of the refrigerator. I think the former is enough for the purpose of running lights, music, HVAC, announcing Johns location etc. I personally will pass on the high accuracy (even if it is implemented hypothetically ) if it comes at the expense of outfitting every room and hallway with 3 USB outlets and 3 ESP32 devices.

    Leave a comment:


  • simplextech
    replied
    Originally posted by Michael McSharry View Post
    I briefly looked at the two references. One was implemented in go. The other in node.js. Neither is directly portable to C++, but still give a reference. I was surprised that the node.js one uses a kalman filter. That was a big deal in the early days of inertial reference systems.
    No they are not directly portable which is another reason I didn't do much more with them. They are fine running on rPi but trying to do this all within an Arduino would be a lot of development.

    Leave a comment:


  • Michael McSharry
    replied
    I briefly looked at the two references. One was implemented in go. The other in node.js. Neither is directly portable to C++, but still give a reference. I was surprised that the node.js one uses a kalman filter. That was a big deal in the early days of inertial reference systems.

    Leave a comment:


  • simplextech
    replied
    Originally posted by kideon View Post
    Was always interested in this! I just didn’t want to use raspberry pi’s if they could be avoided and wanted everything running in firmware on drop in devices so that there’s no issues or maintained required. Keeping those Linux devices updated and maintained is a PITA.
    That was the design/purpose of Happy Bubbles

    Leave a comment:


  • kideon
    replied
    Was always interested in this! I just didn’t want to use raspberry pi’s if they could be avoided and wanted everything running in firmware on drop in devices so that there’s no issues or maintained required. Keeping those Linux devices updated and maintained is a PITA.

    Leave a comment:


  • simplextech
    replied
    Originally posted by Michael McSharry View Post
    I flashed three ESP32 and collecting data now. My thinking is that the consolidation of data from each ESP willbbe done in the ESP rather than an independent server. There us just so much untapped power in the ESP32 that it does not make sense to add another computer. They can all subscribe so each has full information. If consolidation is needed then I likely would do it the HS plugin.

    Are there any algorithms published that I could take advantage for position isolation?
    Take a look at these. I used the Happy bubbles server on a receiver so it wasn't an extra computer and rPi Zero-w were the scattered receivers.

    https://github.com/happy-bubbles/presence

    https://github.com/mKeRix/room-assistant

    Leave a comment:


  • kideon
    replied
    Originally posted by Michael McSharry View Post
    I flashed three ESP32 and collecting data now. My thinking is that the consolidation of data from each ESP willbbe done in the ESP rather than an independent server. There us just so much untapped power in the ESP32 that it does not make sense to add another computer. They can all subscribe so each has full information. If consolidation is needed then I likely would do it the HS plugin.

    Are there any algorithms published that I could take advantage for position isolation?
    That’s a fine idea! I’d go the plugin route

    Leave a comment:


  • Michael McSharry
    replied
    I flashed three ESP32 and collecting data now. My thinking is that the consolidation of data from each ESP willbbe done in the ESP rather than an independent server. There us just so much untapped power in the ESP32 that it does not make sense to add another computer. They can all subscribe so each has full information. If consolidation is needed then I likely would do it the HS plugin.

    Are there any algorithms published that I could take advantage for position isolation?

    Leave a comment:


  • simplextech
    replied
    Originally posted by kideon View Post
    It looked like it’s worth a shot how did you go about it?
    Happy Bubbles receiver (or raspberry pi works) and a beacon in the car. The rPi or HB receiver was sending messages to the Happy Bubbles server which would then feed the information to MQTT.

    Leave a comment:


  • kideon
    replied
    It looked like it’s worth a shot how did you go about it?

    Leave a comment:


  • simplextech
    replied
    Originally posted by kideon View Post
    Simplistically for my first iteration I just want to mount a esp32 in my garage and put beacons in my car triggering events when they are detected vs not. Haven’t dived into mqtt yet but I can do it with events through JSON or this big5 I suppose. Will order some and start fiddling. Shame about happy bubbles though.
    Done this with various beacon's. Signal strength being inside the vehicle was a big problem a very hit or miss on detection. YMMV.

    Leave a comment:

Working...
X