Comments (12)
No.
from espresense.
I fully agree. @DTTerastar seams to working on it allready. #53 #67
For me personally, a simple whitelist would do the job perfectly fine.
from espresense.
ESP32s aren't a full linux environment. They can't do nearly as much as a pi. We only have a few kbs of memory! Also, C++ is a bad place to try a build a ton of functionality. I do think I can add some filtering, but I don't think it's really needed. Mqtt passing a few extra packets is no big deal. I attempted to have the esp listen for packets AND request a gap characteristic and it totally broke the esp... So treating them more like sensors nodes and using real smarts in python is more the direction I see this project going... But hey PRs are accepted if you have the programming chops. I'm really a c# programmer, not a C++ guy this is totally new to me.
from espresense.
The other thing is the "barrage" is mostly because of noise reading rssi. You really need multiple nodes to correlate the rssi and figure out if the rssi is real or noise. If we could filter out all the rssi readings that are crap, we wouldn't need to report much into mqtt.
from espresense.
Well it is not a surprise that you run out of resources if you try running Linux on ESP32. I have commissioned software that does much more complex stuff on ESP32, however it was written in IDE Arduino environment and doesn't need or use any OS.
Regardless, supporting a white list will help you with both MQTT clutter and RSSI noise. Think about it.
from espresense.
Yes. C# and C++ are quite different. Congrats on making the transition.
from espresense.
I did find a bug that made the code to send more traffic than desired. The latest release honors the setting to skip sending an update if the position is < whatever distance you specify.
from espresense.
That's great Darrel !!! Thanks a lot. I will test it today and report back.
from espresense.
Noticed all great improvements but this particular problem is not resolved yet IMHO. I set it up very conservatively to report moves 7+ meters ONLY and to update in 20 sec. Still it produced 2500+ MQTT messages in 15 minutes that didn't contribute to presence detection. I did move the only BT device that needs monitoring once and ESPresence didn't register when it left the radius of 16 m. It did register the return.
My office where I test is not different than many others. I have few computers, a printer, Google Home speaker, few tablets but as I said I was moving only one. Everything else was stationary.
Part of MQTT log with time stamps is attached if someone wants to analyze it.
log1.txt
from espresense.
This is made to work with https://www.home-assistant.io/integrations/mqtt_room/
The rules of using that are you send nothing if > maxDistance, and you keep on sending messages if < maxDistance. I do agree that it's probably the worse way of using mqtt if you only have one base station. But the whole point of mqtt_room
is to have hass figure out what room something is in.
from espresense.
Actually your reports (log) to the serial port are much nicer and useful than the MQTT.
-
It reports the arrival once only as "new".
-
It automatically removes the device as "del" if it didn't hear from it for certain time.
-
When the device comes back it is reported as "new" again.
-
Best of all it produced only 100 records in my 15 minutes test vs 2,500 useless MQTT records.
-
- to 3. above is sufficient to determine the presence in certain area. Please note that PIR sensor marks arrival as well. However if I "arrive" and lay on the couch for 2 hours reading a book than PIR senor will "think" that I'm gone and will turn off the lights. In this regard I wish that ESPresence is better and marks arrival as well as staying, which ESPresence does over serial interface but not over MQTT. Your point that object will move from one to another monitored area is not very strong as the object may leave the house as well and leave the system in believe that it is in the last area.
from espresense.
Can you please do this:
- send MQTT JSON ONLY when you send out the serial log records.
- Include the important info "new' or "del" in the JSON
If someone likes the MQTT clutter than make the above optional.
from espresense.
Related Issues (20)
- ESPresense on HA server HOT 1
- HA 2023.11.0b0 sensor dont work HOT 2
- Led not keep last status
- Update from 3.3.0 to 3.3.1 exits with UNKNOWN ERROR CODE HOT 2
- Existing template sensors stopped working in V3.3.x HOT 17
- Upgraded from 3.2.4 to 3.3.1 esp32 will no longer boot unless plugged into usb HOT 2
- Incorrect formula in the one_euro_filter class HOT 16
- For all iphones - lost tracking HOT 1
- Fingerprints should show all IDs, not just included ones HOT 5
- Static IP during setup HOT 5
- flora information
- Use humidity and temperature information from BME sensor to set_humidity for SGP30
- MQTT connectivity with mosquitto broker on HA (ESP32) HOT 2
- /ui/#/settings page does not show up HOT 13
- Only works when powered though computer USB HOT 7
- Add support for WESP32 Rev7 or later HOT 3
- IRK Android or iBeacon via HA app? HOT 2
- Parameter "Fading time" for PWM dimming of LEDs
- WebSocket connection to 'ws://<ip>/ws' failed using M5STACK Stamp S3 HOT 10
- Integrating with Home Assistant - devices aren't recognized HOT 17
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from espresense.