Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Calibration only uses Rx RSSI adjustments #628

Open
dxmnkd316 opened this issue Apr 30, 2024 · 4 comments
Open

Calibration only uses Rx RSSI adjustments #628

dxmnkd316 opened this issue Apr 30, 2024 · 4 comments

Comments

@dxmnkd316
Copy link

dxmnkd316 commented Apr 30, 2024

I'm not sure if this is a bug or not.

I recently added several more base stations to my house. I set them up and waited for the calibration to run. It ended up erasing all of the absorption numbers, setting them all to 3, and now it only adjusts Rx RSSI and only moderately successfully.

What would cause the calibration routine to do this? It's been running for a couple days now and the absorption hasn't been touched? I tried digging through the code a bit but I quickly get lost in the calibration sections.

Thanks

Edit:
A few other comments/notes on calibration, not related to any bugs:

  1. It seems to me that absorption only affects the Rx signal. SHouldn't this also impact the transmission as well?
  2. Things like monitors and a fridge and incredibly efficient at blocking signals. I've had to rethink my entire strategy of placement taking into account large appliances, electronics, etc.
  3. Keeping base stations "pointed" in towards the center of the house at each of the corners provides the best signals if you can manage this. I had thought the ESP's antenna to be less susceptible to directionality than this. But the effect is fairly substantial. I can tell when one of the base stations has rotated even a dozen or so degrees.
  4. Directionality of the devices is even more dramatic. Simply rotating my wrist for my watch or changing the angle of the phone can move the device halfway across the room.
Copy link

stale bot commented Jul 29, 2024

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Jul 29, 2024
@dxmnkd316
Copy link
Author

Would still like to see a resolution/discussion on this. Thanks!

@stale stale bot removed the stale label Jul 31, 2024
@maxi1134
Copy link

What do you mean by "The calibration to run"?

Is there an automatic tool to do it?
I've been manually calibrating my whole setup.

@dxmnkd316
Copy link
Author

dxmnkd316 commented Sep 30, 2024

What do you mean by "The calibration to run"?

Is there an automatic tool to do it? I've been manually calibrating my whole setup.

It took a couple of days but the automatic calibration eventually started updating the absorption as well. I've dug deeper into the code since I submitted this and my understanding is that the calibration will try multiple ways to get a better solution: Changing the Rx RSSI of the nodes AND changing the absorption. If one or both give better solutions, it will take the best and apply that. Since the Rx RSSI provided better solutions than absorption for those several days, the absorption just sat at whatever the default was.

As to your question about what I meant, ESPresense will automatically calibrate your nodes to give the best results using known distances between nodes. I find it works pretty good overall. I've fine-tuned using manual calibration before, but I don't think it's necessarily worth the effort unless the automatic calibration is just not working for how your house and nodes are laid out.

To get it to work, you need to add something like this to your ESPresense config.yaml (not the HA configuration.yaml)

optimization:
  enabled: true
  interval_secs: 120
  max_snapshots: 300
  limits:
    absorption_min: 1.0
    absorption_max: 5
    tx_ref_rssi_min: -70
    tx_ref_rssi_max: -30
    rx_adj_rssi_min: -15
    rx_adj_rssi_max: 20

You can also use the ESPresense recommendation (link)

optimization:
  enabled: true
  interval_secs: 3600
  limits:
    absorption_min: 2.5
    absorption_max: 3.5
    tx_ref_rssi_min: -70
    tx_ref_rssi_max: -50
    rx_adj_rssi_min: -15
    rx_adj_rssi_max: 20

The difference between my settings and the recommendation is that I have mine running the calibration every two minutes since I've been doing experimentation and the default is once an hour. I've changed the "width" of the absorption range it can apply from 2.5-->3.5 to my range of 1-->5 to give a wider range of solutions to the matrix. I'm finding this probably wasn't necessary but at the time I was getting very odd results due to interferences and the mix of ESP32 boards. I also changed the max_snapshots from the default of 60 but I don't think it's changed much and probably should just change it back. I also haven't ever found the calibration to change the Tx RSSI for a node so I'm not sure that's useful either.

Edit: Actually, I'd still like to see if there's something I am doing wrong that prevents the Tx RSSI from being optimized. So perhaps keep this open for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants