Alternative Wi-Fi Connect looking for testers

I have been a user of Balena’s official Wi-Fi connect for some time, but recently have ventured off to make a new version for a project I have been working on. It has been my intention to make this available for some time, and finally got around to it.

Rather than providing an interface, it is an API for any interface to use to connect, disconnect and find nearby networks (you can see more on the Git repo).

It is still under development, but caveats aside would be great to get any input, help or testers.

6 Likes

Hi @Maggie, this is pretty cool thanks for sharing! I’ll try it out soon and will also dive into the code as I suspect I might learn a thing or two (I wrote GitHub - balenalabs/wifi-repeater: Easily create a WiFi Access Point or WiFi repeater with balenaOS which also uses dbus to do wifi stuff so always keen on checking similar projects).

2 Likes

Also, feel free to submit it as a block to balenaHub, I think it’s a good candidate and it shouldn’t matter if there are similar blocks already published.

Thanks for sharing. I will be checking it out for sure. I’m curious how that led blinking works, would like to be able to do something similar.

If your experience is anything like mine then wifi is a fine needle to thread. More often works how you least expect and not well documented. What I aimed for in the end was pulling together the experience of others, namely from the Balena WiFi-Connect GitHub issues and the solution people had found for different things and put them all together. At times it hurts a little having to implement these messy solutions to problems, for example at one point it reaches out to IW and runs a command on the shell to achieve a network refresh. But the networkmanager equivalent just wasn’t reliable enough and people kept ending up with empty wifi ssid lists.

The api idea seemed to make sense to me. Having the wifi built in to balena supervisor is the most logical workflow for users, but because it is temperamental working with wifi I personally would never be looking at doing something like that. Moreover when inevitable updates are required it would mean a whole os update. Not ideal. A container api seemed to be the next best thing.

And I went for Python to try and encourage more community input and because of some excellent work and testing already done by another Balena user on a Python version to allow building on that already pre-tested model (GitHub - OpenAgricultureFoundation/python-wifi-connect: Easy WiFi setup for Linux devices from your mobile phone or laptop). Here’s hoping it works.

Do you have any docs on the Balena Blocks .yml files? The submission page just has a link to an example Block, which is helpful, but hasn’t left much of a yml file:

name: Py Wi-Fi Connect
description: >-
  An API for controlling Wi-Fi connections on Balena devices.
version: 0.0.1
type: sw.application
assets:
  repository:
    type: blob.asset
    data:
      url: 'https://github.com/maggie0002/balena-py-wifi-connect'
  logo:
    type: blob.asset
    data:
      url: 'https://github.com/maggie0002/balena-py-wifi-connect/main/logo.png'

If it looks alright then will upload it and fill in the form.