lucaong

lucaong

Hi all,
recently for I project I needed to be able to configure several WiFi SSID/PSK on the same device, with different priorities (so that the device would preferably connect to one network, but fallback to another one if the first is not available). I noticed that nerves_network does not currently seem to support that. The problem is that, when setting a new entry, nerves_wpa_supplicant currently removes all entries and force select of the new one.

I ended up implementing my own solution on top of nerves_network, if there’s interest in porting this feature to the main library I can share my code.

Showing Posts 1 to 5

outlog

outlog

well.. do please share - could also make for great blog/medium posts (along with the update thing)..

one thing I wonder is if you do a scan to find available/strongest ssid.. say I have 10+ aps in the known list (or even 100 or 1000).. then a scan for strongest/available aps and then matching against the list of known aps, would make a lot of sense..

anyways just a thought for perfection when/if something like this is hopefully added to nerves_network..

the use case is certainly there.

lucaong

lucaong OP

Oh yes that feature would be great. I assume though that it would have to be supported by wpa_supplicant on which NervesNetwork and my code both rely.

Or maybe it’s possible already? I know wpa_supplicant allows users to specify priorities, but I don’t know how the algorithm works, nor if it takes signal strength into consideration.

Anyway, I will soon share at least a gist. A full generic solution outside of my specific use case will take a bit more polish, but if the Nerves maintainers like the idea I can contribute a pull request.

lucaong

lucaong OP

Here’s a gist: Multiple SSIDs with NervesNetwork · GitHub

I am on the go now, but when I have more time I can work on a pull request to NervesNetwork and WpaSupplicant if there’s interest in it. I would love to hear opinions and comments from the Nerves maintainers.

GregMefford

GregMefford

As an update to this, @tmecklem and I independently started working on this feature without realizing that you had already posted here about it so long ago! :sweat_smile:

Thanks for posting that super-helpful gist! We will take a look and see if there’s anything in there we didn’t think about that we can integrate into the main library, if you’re OK with that.

https://github.com/nerves-project/nerves_network/issues/72

tmecklem

tmecklem

Oh yeah! Great stuff, thanks for sharing it!

— All posts loaded —

Where Next? Top

Trending in Questions Top

Blokh
Hey guys, I’ve got a huge CSV ( around 10 GB ) that needs to be processed hourly Do you guys have any suggestions what is the best prac...
New
kszambelanczyk
Hello! Could someone please give me a help/sample code, how to delete a file from s3 using waffle/waffle_ecto from Phoenix app. I creat...
New
RemyXRenard
I’m seeing that a list inside a Kino.DataTable will be interpreted as a charlist, even if the Kino.configure() is set to charlists: :as_l...
New
matt-savvy
Anyone here using Honeybadger? My Honeybadger account is being overwhelmed with noise from some bots. Seeing a lot of Bandit.HTTPError...
New
samoloth
Hi, I’ve just set up an application with ash_authentication. There is only magic link strategy for now, so there is no confirmation add o...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
FlyingNoodle
If a change or preparation module uses Ash.Changeset.get_argument/2 or Ash.Query.get_argument/2 (or any of the other get_argument functio...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews