nymea / berrylan Goto Github PK
View Code? Open in Web Editor NEWRaspberry Pi WiFi setup
Home Page: http://berrylan.org
License: GNU General Public License v3.0
Raspberry Pi WiFi setup
Home Page: http://berrylan.org
License: GNU General Public License v3.0
I've been racking my brain for a while trying to find where the colours for the red spinner around the icons are? And the same red when you click on each icon (bluetooth, wifi etc) like below?
EDIT: never mind, the red is defined as the "Material.accent" in the main.qml. Still would like to know where the app icon is defined though!
Also, I'm fairly new to QT but from my Googling it seems that the app icon is not defined in any of the normal QT project locations? Where is this app icon defined?
Thanks guys
I installed on DietPi_RPi-ARMv8-Buster fallowing the installation process but using the buster repo
deb http://repository.nymea.io buster main
I see the service nymea-networkmanager running in the background, but it doesn't show on the berrylan app.
There is no dhcpd installed, but still nothing shows in the app.
Awesome project. Congrats!
Has there been a discussion about supporting PWA as an additional and alternative client to native mobile apps?
https://www.hackster.io/patricia2/offline-pwa-with-bluetooth-le-capabilities-77cbba
PWAs are becoming popular as a faster way to deliver quality UI to multiple devices. Ambianic UI is a PWA and WiFi onboarding for the RPI edge device is an open topic we are investigating. If there is interest in supporting PWA, we can potentially collaborate on the implementation. See ambianic/ambianic-ui/issues/397
Hì, i have a Raspberry Pi 3 Model A Plus Rev 1.0
With just the clean image downloaded from http://www.berrylan.org/ i can use the BerryLan mobile App and successfully connect to an existing WiFi, but when i try to create an Access Point with the relative button on the App, i give it the SSID and PSW but look at the syslog on the raspberry i get this error log:
pi@raspberrypi:~ $ sudo nymea-networkmanager -m start
I | Application: Using configuration file from: "/etc/nymea/nymea-networkmanager.conf"
I | Application: =====================================
I | Application: Starting nymea-networkmanager "0.5.2+202003241320~buster+rpi1"
I | Application: =====================================
I | Application: Advertising name: "BT WLAN setup"
I | Application: Platform name: "nymea-box"
I | Application: Mode: Core::ModeStart
I | Application: Timeout: 60
W | NymeaService: Invalid D-Bus HardwareManager interface.
W | NymeaService: Could not init nymea D-Bus services
I | Application: Networkmanager is now available.
I | Application: Starting the Bluetooth service because of "start" mode.
W | NymeaService: Could not enable/disable bluetooth hardware resource. D-Bus interface not available.
W | qt.bluetooth: Using BlueZ kernel ATT interface
I | Application: Bluetooth server started
I | Application: Bluetooth client connected
W | qt.bluetooth.bluez: sending error response; request: 16 handle: 51 code: 10
W | qt.bluetooth.bluez: sending error response; request: 8 handle: 1 code: 10
W | qt.bluetooth.bluez: sending error response; request: 8 handle: 26 code: 10
W | qt.bluetooth.bluez: sending error response; request: 8 handle: 39 code: 10
W | NetworkManager: "org.freedesktop.NetworkManager.Settings.Connection.InvalidProperty" "802-11-wireless-security.proto: can't set property of type 'GStrv' from value of type 's'"
There appears to be a race condition On Pi Zero W and Buster.
If:
There is a wifi network configured, but the device is moved to somewhere that the network is not available OR no network is configured (i.e. all the networks are deleted with nmcli), then
the nymea-networkmanager doesn't recognize there's no network on startup. (everything with default configuration)
In this state, restarting the service after the service starts up during boot fixes it.
However it doesn't happen if the network is available but has the wrong password, in this situation it does work.
End result is after configuring BerryLan, wiping the network and testing it works fine, and then when deployed to the new location, BerryLan never advertises.
To solve this, I needed to delay the nymea-networkmanager.service startup with:
ExecStartPre=/bin/sleep 60
Great product BTW
I'm wondering why static ip doesn't work any more
I tried adding a static ip to /etc/network/interfaces
iface eth0 inet static
address 192.168.1.250
netmask 255.255.255.0
network 192.168.1.0
broadcst 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1
and I have tried also /etc/dhcpcd.conf with no luck.
My Pi is connected to the Wifi, and the network works properly, but the Berrylan app on the phone still sees the Pi and allows me to connect it to a different network.
I have only changed the advertised device name from the default, but it was acting the same even before this, here's the log
pi@raspberrypi:~ $ systemctl status nymea-networkmanager
● nymea-networkmanager.service - Daemon for nymea to configure wifi network using a Bluetooth LE connection
Loaded: loaded (/lib/systemd/system/nymea-networkmanager.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-01-06 18:42:52 EET; 8min ago
Docs: https://github.com/guh/nymea-networkmanager
Main PID: 400 (nymea-networkma)
CGroup: /system.slice/nymea-networkmanager.service
└─400 /usr/bin/nymea-networkmanager -d -a yyy WIFI Setup -m offline
ian 06 18:43:00 raspberrypi nymea-networkmanager[400]: I | BluetoothServer: NetworkService: Notify state changed "\x07"
ian 06 18:43:00 raspberrypi nymea-networkmanager[400]: I | BluetoothServer: NetworkService: Notify networking enabled changed: enabled
ian 06 18:43:00 raspberrypi nymea-networkmanager[400]: I | BluetoothServer: NetworkService: Notify wireless networking enabled changed: enabled
ian 06 18:43:00 raspberrypi nymea-networkmanager[400]: I | BluetoothServer: Create WirelessService.
ian 06 18:43:00 raspberrypi nymea-networkmanager[400]: I | BluetoothServer: Start advertising "yyy WIFI Setup" "B8:27:EB:50:16:10"
ian 06 18:43:00 raspberrypi nymea-networkmanager[400]: I | BluetoothServer: Controller state advertising...
ian 06 18:43:00 raspberrypi nymea-networkmanager[400]: I | Application: Bluetooth server started
ian 06 18:43:00 raspberrypi nymea-networkmanager[400]: I | BluetoothServer: Already running.
ian 06 18:43:00 raspberrypi nymea-networkmanager[400]: I | BluetoothServer: Bluetooth host in discoverable mode.
ian 06 18:46:23 raspberrypi nymea-networkmanager[400]: I | BluetoothServer: Bluetooth host in connectable mode.
Any ideas what might be wrong? This is a custom setup on a default Raspbian install, via the steps in the FAQ.
Hi there,
we are struggling to edit the Berrylan app in QT Creator as it does not want to load the .pro file and keeps throwing us out for missing kits etc. Admittedly we do not usually work with QT Creator as we have used XCODE and SWIFT to create iOS apps before. From using Google I was able to create an XCODE project in Terminal and then import it, however it can not be compiled due to 30-40 errors. What is the best way to create an iOS app (later an Android App) from the Berrylan source code? If you have a working XCODE project I would be very grateful for it (a donation would, of course, come your way for the trouble). I understand that QT Creator is useful for cross-platform apps, but I just can't seem to get my head around making it work.
Kind regards,
Max
hi, in kali os, i cannot discovery my raspberry :(
how i can fix it?
hardware: raspberry pi 3
OS : https://images.offensive-security.com/arm-images/kali-linux-2019.3a-rpi3-nexmon.img.xz
best regards
Hi,
I have recently replaced my router with new dual channel router (5G/2.4G). This router has Channel configuration set to Auto and changing channel is disabled. Due this the BerryLan App does not list my wifi and I am not able to connect my Rpi to wifi through it. Earlier with my old router I use to set Channel = 11 to make it work. So my question is how to make Rpi work for Channel = Auto using berrylan app?
does it work with the new raspian OS?
Why does the network manager change the Wifi MAC address on each boot?
My home network uses the MAC address to identify devices and allow access (and assign fixed IPs) and now I can't actually use that anymore. Is there a way to disable this behavior?
Hi,
I'm getting the issue below:
pi@raspberrypi:~ $ sudo apt-key adv --keyserver keyserver.ubunt.com:80 --recv-keys A1A19ED6
Executing: /tmp/apt-key-gpghome.ylrW6iNfBM/gpg.1.sh --keyserver keyserver.ubunt.com:80 --recv-keys A1A19ED6
gpg: keyserver receive failed: No keyserver available
Thanks for help in advance!
ISSUE: always asking for a password if router is not running DHCP server (fixed ip address)
CASE DETAIL:
i use multiple wifi routers with fixed ip address without dhcp service, each time berrylan try to configure lan it ask for password, and after some time says wrong password (probably due to non-receiving ip address because routers are configured without DHCP service enabled). Each router had their own a different network , i can not fix a ip address by default on the raspi side because dhcpd.conf only support 1 router at time
SUGESTED SOLUTION: if berrylan connect to Wifi and does not receive a ip address, then ask for a ip address instead of asking again for a password
I want to be able to change the selected network after having already connected to one, effectively wiping the installation and starting again. Is there anyway of doing this? I presume the wifi credentials are stored in a file somewhere so is it as simple as resetting/deleting that file?
Hi there!
We're trying to scan BT devices with the new app versions (ios&android) and don't detect any device, including nonraspberry BT devices ...
Any idea?
Thanks
I | Application: Using configuration file from: "/etc/nymea/nymea-networkmanager.conf"
I | Application: =====================================
I | Application: Starting nymea-networkmanager "0.5.7+202105191824~buster+rpi1"
I | Application: =====================================
I | Application: Advertising name: "BT WLAN setup"
I | Application: Platform name: "nymea-box"
I | Application: Mode: Core::ModeOffline
I | Application: Timeout: 60
I | Application: DBus interface: "system"
W | NymeaService: Invalid D-Bus HardwareManager interface.
W | NymeaService: Could not init nymea D-Bus services
W | DBus: Failed to register D-Bus service.
I | Application: Not starting the service yet because the networkmanager is not available.
I | Application: Networkmanager is now available.
I | Application: Start the bluetooth service because of "offline" mode.
W | NymeaService: Could not enable/disable bluetooth hardware resource. D-Bus interface not available.
W | NetworkManagerBluetoothServer: Local bluetooth device is not valid.
W | NetworkManager: Scan error: "org.freedesktop.NetworkManager.Device.NotAllowed" "Scanning not allowed while unavailable or activating"
^C I | Application: Cought SIGINT quit signal...
I | Application: =====================================
I | Application: Shutting down nymea-networkmanager
I | Application: =====================================
I | Application: Shutting down nymea service
W | NymeaService: Could not enable/disable bluetooth hardware resource. D-Bus interface not available.
I | Application: Shutting down bluetooth service
I | Application: Shutting down network-manager service
Berrylan on Android detects the Pi, lists the local WLAN and asks for the password. Even though the password is entered correctly, it is rejected as being wrong.
On a side note it detects only on Wifi network despite 3-4 being nearby.
Is there a log file on the Pi to debug this ?
Hola!
Is there any guide in order to contribute with translations?
Maybe:
berrylan-es_ES.ts
within berrylan/translations/
with the translations.Let me know if this is ok for you to help this project a bit.
Regards.
what is the license of this repo? could you please add one?
Hello,
BerryLan is a great app. It was working until 1.0.37. But the latest version does not detect the pi device over bluetooth. The release notes on the latest update shows,
Please share more information. This update has broken backward compatibility. I could see the device on the laptop over bluetooth. But the app doesn't detect it.
Appreciate an expedient reply. Thank you very much.
-Chandra
When I connect to a network but want to connect to another one the raspberry pi doesn't appear on the app. is there a way to fix this?
Hi,
This is a great idea for a project. I'm happy to help debug or send in PRs (I was an android dev for my day job).
However, I'm not having luck getting it to configure my device.
My experience from using the android app:
(Saving bug now - will add logcat output later)
To help debug I ran your pi app directly. I can see the android app identify it and start talking to it.
Console output from the pi app:
root@rpidev:/home/pi# nymea-networkmanager --mode always -d
I | Application: Using configuration file from: "/etc/nymea/nymea-networkmanager.conf"
I | Application: =====================================
I | Application: Starting nymea-networkmanager "0.3.0"
I | Application: =====================================
I | Application: Advertising name: "BT WLAN setup"
I | Application: Platform name: "nymea-box"
I | Application: Mode: Core::Mode(ModeAlways)
I | Application: Timeout: 60
W | NymeaService: Invalid D-Bus HardwareManager interface.
W | NymeaService: Could not init nymea D-Bus services
I | NetworkManager: Start the network manager.
I | NetworkManager: Initialize network manager
I | NetworkManager: Version: "1.6.2"
I | NetworkManager: State changed: "NetworkManagerStateConnectedGlobal"
I | Application: NetworkManager::NetworkManagerState(NetworkManagerStateConnectedGlobal)
I | NetworkManager: Connectivity state changed: "Full"
I | NetworkManager: Networking enabled
I | Application: Networkmanager networking is now enabled
I | NetworkManager: Wireless networking enabled
I | Application: Networkmanager wireless networking is now enabled
I | NetworkManager: [+] NetworkDevice("lo" - "Generic", "NetworkDeviceStateUnmanaged")
I | NetworkManager: [+] WiredNetworkDevice("eth0", "B8:27:EB:DC:CE:72", 0 [Mb/s], true, "NetworkDeviceStateActivated")
I | NetworkManager: [+] WirelessNetworkDevice("wlan0", "1E:E3:F4:63:25:6D", WirelessNetworkDevice::Mode(ModeInfrastructure), 0 [Mb/s], "NetworkDeviceStateUnavailable")
I | NetworkManager: Settings: [+] NetworkConnection("Wired connection 1", "{8023a4b6-42f4-3525-8464-6f27686923c8}", "", "802-3-ethernet", "21.12.2018 21:39")
I | NetworkManager: The network manager is now available
I | Application: Networkmanager is now available.
I | Application: Start the bluetooth service because of "always" mode.
I | Application: Start service
W | NymeaService: Could not enable/disable bluetooth hardware resource. D-Bus interface not available.
I | Application: Start bluetooth service
I | NetworkManager: Network manager initialized successfully.
I | Application: Start the bluetooth service because of "always" mode.
I | Application: Start service
W | NymeaService: Could not enable/disable bluetooth hardware resource. D-Bus interface not available.
I | Application: Start bluetooth service
I | BluetoothServer: -------------------------------------
I | BluetoothServer: Starting bluetooth server
I | BluetoothServer: -------------------------------------
I | BluetoothServer: Local device "rpidev" "B8:27:EB:76:64:D8"
I | BluetoothServer: Create NetworkService.
I | BluetoothServer: NetworkService: Notify state changed "\x07"
I | BluetoothServer: NetworkService: Notify networking enabled changed: enabled
I | BluetoothServer: NetworkService: Notify wireless networking enabled changed: enabled
I | BluetoothServer: Create WirelessService.
I | BluetoothServer: Start advertising "BT WLAN setup" "B8:27:EB:76:64:D8"
I | BluetoothServer: Controller state advertising...
I | Application: Bluetooth server started
I | BluetoothServer: Already running.
I | BluetoothServer: Bluetooth host in discoverable mode.
I | BluetoothServer: Device connected "49:96:09:F3:59:F2"
I | BluetoothServer: Controller state connected. "" "49:96:09:F3:59:F2"
I | Application: Bluetooth client connected
I | BluetoothServer: WirelessService: Notify wireless state changed "\x02"
I | BluetoothServer: WirelessService: Notify wireless mode changed "\x02"
W | qt.bluetooth.bluez: sending error response; request: 16 handle: 51 code: 10
W | qt.bluetooth.bluez: sending error response; request: 8 handle: 1 code: 10
W | qt.bluetooth.bluez: sending error response; request: 8 handle: 11 code: 10
W | qt.bluetooth.bluez: sending error response; request: 8 handle: 12 code: 10
W | qt.bluetooth.bluez: sending error response; request: 8 handle: 20 code: 10
W | qt.bluetooth.bluez: sending error response; request: 8 handle: 21 code: 10
W | qt.bluetooth.bluez: sending error response; request: 8 handle: 23 code: 10
W | qt.bluetooth.bluez: sending error response; request: 8 handle: 24 code: 10
W | qt.bluetooth.bluez: sending error response; request: 8 handle: 37 code: 10
W | qt.bluetooth.bluez: sending error response; request: 8 handle: 39 code: 10
W | qt.bluetooth.bluez: sending error response; request: 8 handle: 49 code: 10
I | BluetoothServer: NetworkService: Descriptor written "{00002902-0000-1000-8000-00805f9b34fb}" "\x01\x00"
I | BluetoothServer: NetworkService: Descriptor written "{00002902-0000-1000-8000-00805f9b34fb}" "\x01\x00"
I | BluetoothServer: NetworkService: Descriptor written "{00002902-0000-1000-8000-00805f9b34fb}" "\x01\x00"
I | BluetoothServer: WirelessService: Descriptor written "{00002902-0000-1000-8000-00805f9b34fb}" "\x01\x00"
I | BluetoothServer: WirelessService: Descriptor written "{00002902-0000-1000-8000-00805f9b34fb}" "\x01\x00"
I | BluetoothServer: Got command stream "{\n \"c\": 0\n}\n"
I | BluetoothServer: WirelessService: Start streaming response data: 21 bytes
I | BluetoothServer: WirelessService: Finished streaming response data
I | BluetoothServer: Got command stream "{\n \"c\": 5\n}\n"
I | BluetoothServer: WirelessService: Execute get current connection.
I | BluetoothServer: WirelessService: There is currently no access active accesspoint
I | BluetoothServer: WirelessService: Start streaming response data: 53 bytes
I | BluetoothServer: WirelessService: Finished streaming response data
First off, thank you so much for this project!
Second, just a quick question (sorry if this should go somewhere else). Let's say we set up a pi with BerryLAN and all goes well. Sometime down the road the wifi connection we connected to is no longer available (e.g. moved locations, new router, etc.), will the box look accessible in the app again? or would we have to reset something on the pi for it to broadcast over BLE again?
i want to add more features to the app and then uploaded to the app store, how to i do this?
Is it posible to run on kali linux. I tried to install but I can reach the pi zero by the app.
tks
Does it detect jetson nano also ? If not then what files do I need to change in order for it to support jetson nano ?
If i select a network that is open i get prompted to enter the password. It is not possible to get past this screen without entering a password. If i enter something and move on, it get a message saying i entered the wrong password.
Expected :
Hi,
Can your app be modified to also send commands to the rpi as a controller? Say i have some python and shell commands, i want to use app to execute them. thank you
Hi.. Tested your image with raspbian lite.. works great. Nice job.
Want image with desktop so got a fresh Raspbian Stretch full. Followed this:
Installation on a plain Raspbian
sudo apt-get install dirmngr
echo "deb http://repository.nymea.io stretch main" | sudo tee /etc/apt/sources.list.d/nymea.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key A1A19ED6
sudo apt-get update
sudo apt-get install nymea-networkmanager
sudo systemctl disable dhcpcd
reboot
Everything installed, but doesn't work. Pi Zero is not connected to wifi (actually after insalling the above, there is no interface).. and the Android App does not find it as a bluetooth device to set the WLAN.
Anyone have any thoughts?
Add WPS (Wifi protected setup) support to make the WiFi setup even easier
I downloaded and burned your image for the Pi. The Android app would not detect my local Wifi.
Turns out that Raspian/Pi seems to have trouble with Wifi that is on channel 12. Switching to another Wifi channel fixed the issue.
I believe channel 12 and 13 are not available in all countries.
Started with latest build of BerryLan (2020-07-22).
sudo nano /etc/nymea/nymea-networkmanager.conf
Mode=start
Timeout=1200
AdvertiseName=MyDevice
PlatformName=MyDevice
ButtonGpio=15
reboot
Can see MyDevice on BerryLan app on iOS iPhone.
Update Pi with:
sudo apt-get update
sudo apt-get upgrade
MyDevice is no longer visible on BerryLan app.
This worked about two weeks ago. So, something in Aug 7 build may be causing issue.
Hi, I'm using two Wlan on my raspberry pi 3b+ the on board one as AP to connect remotely via mobile app and control some functions I builded on my Raspberry pi and a additional one to connect to the wifi but It seems like Berrylan doesn't work with the secondary WIFI dongle and I was wondering if there a way to force it to use only wlan1 instead of wlan0?
This image file "2021-04-28-nymea-buster-lite.img" is used
I tried to use username: pi password: raspberry can't log in
The Play Store reports that only my ZTE Blade V6 is compatible with the app:
For reference, this is a budget phone from 2014 that runs Android 5.0. I do not know where the phone is, and would like to use Berrylan on my actual phone - a Moto G6.
Well, no problem, I thought, I'll just grab the apk and install that. No bueno:
The Moto G6 has Bluetooth 4.2, so I'm not sure why this is marked as 'not compatible'.
Hi,
I'm big fan of this project and I have been used berrylan with success in raspberry zero (kali linux). Now I trying to use a new hardware "BananaPi M2 zero" with UbuntuServer, but I've got a message:
pi@bpi-iot-ros-ai:/home$ sudo nymea-networkmanager --mode always -d
nymea-networkmanager: /usr/lib/arm-linux-gnueabihf/libQt5DBus.so.5: version Qt_5' not found (required by nymea-networkmanager) nymea-networkmanager: /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5: version Qt_5' not found (required by nymea-networkmanager)
nymea-networkmanager: /usr/lib/arm-linux-gnueabihf/libQt5DBus.so.5: version Qt_5' not found (required by /usr/lib/arm-linux-gnueabihf/libnymea-networkmanager.so.1) nymea-networkmanager: /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5: version Qt_5' not found (required by /usr/lib/arm-linux-gnueabihf/libnymea-networkmanager.so.1)
nymea-networkmanager: /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5: version `Qt_5' not found (required by /usr/lib/arm-linux-gnueabihf/libnymea-gpio.so.1)
pi@bpi-iot-ros-ai:/home$
If I try for another way like compile the project, th system return this message:
Project ERROR: nymea-networkmanager development package not found
What I tried?
-To install: libnymea-networkmanager-dev, libnymea-gpio-dev, qt5-default qtbase5-dev qtbase5-dev-tools libqt5bluetooth5 qtconnectivity5-dev libnymea-networkmanager-dev libnymea-gpio-dev git
Apparently is posible to run nymea-networkmanager in this hardware, but I don't know how the best way to fix these issue.
tks
Since Pis always set the hostname to raspberrypi on first boot, it would be quite convenient to set the hostname in the BerryLan app, so it will stick after that first reboot.
Hi BeryLan team, thanks for the exellent work!
I install BerryLan on RPi 4 by the steps below, and the Android app can not find any WiFi ap to connect (keep showing a spinner on screen):
Setup repository
pi@raspberrypi:~ $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key A1A19ED6
Executing: /tmp/apt-key-gpghome.DabmpFMYwt/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-key A1A19ED6
gpg: key 457A6EE4A1A19ED6: public key "Simon Stuerz <[email protected]>" imported
gpg: Total number processed: 1
gpg: imported: 1
pi@raspberrypi:~ $ cat /etc/apt/sources.list.d/nymea.list
deb http://repository.nymea.io buster main raspberry
Install nymea-networkmanager
pi@raspberrypi:~ $ sudo apt install nymea-network-manager
Disable dhcpcd
pi@raspberrypi:~ $ sudo systemctl disable dhcpcd
I'm sure that RPi 4 did not connect to any WiFi ap (issue #7), and my ap is on channel 1 (issue #23)
If you can share the debugging steps with me, I'm happy to share the debugging log messages.
Thanks!
When i start nymea-networkmenager no boot
XXX@XXX:~$ systemctl status nymea-networkmanager
● nymea-networkmanager.service - Daemon for nymea to configure wifi network using a Bluetooth LE connection
Loaded: loaded (/lib/systemd/system/nymea-networkmanager.service; enabled; vendor preset: enabled)
Active: inactive (dead)
Docs: https://github.com/nymea/nymea-networkmanager
sudo journalctl -u nymea-networkmanager
-- Logs begin at Thu 2019-02-14 10:11:59 GMT, end at Sun 2021-01-31 23:19:47 GMT. --
-- No entries
when i run sudo systemctl start nymea-networkmanager then working :( but on startup is problem
Great project! What would it take for supporting other OS like Libreelec or even docker container? LE uses Connection Manager not Network Manager so this is probably the first hurdle.
Hi,
due to my own project (own image), I can not use your image. How can I install berrylan on the newest buster light OS? I use rpi3B+ and 4.
Likely not an issue with the great open source project, but more likely my capability set (although I asked two other developers, and they couldn't work it either).
Trying to recompile Android app to make some small changes (like allow open wifi).
Download the repository. Installed Android Studio... tried to import gradle project, but no go.
When I try to build i get "Could not get unknown property 'androidCompileSdkVersion' for object of type com.android.build.gradle.AppExtension."
Here is further output:
"org.gradle.api.ProjectConfigurationException: A problem occurred configuring root project 'android'.
at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:94)
at org.gradle.configuration.project.LifecycleProjectEvaluator.doConfigure(LifecycleProjectEvaluator.java:72)
at org.gradle.configuration.project.LifecycleProjectEvaluator.access$000(LifecycleProjectEvaluator.java:33)
at org.gradle.configuration.project.LifecycleProjectEvaluator$1.execute(LifecycleProjectEvaluator.java:53)
at org.gradle.configuration.project.LifecycleProjectEvaluator$1.execute(LifecycleProjectEvaluator.java:50)
at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61)
at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:50)
at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:599)
at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:125)
at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:35)
at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:36)
at org.gradle.initialization.DefaultGradleLauncher$ConfigureBuildAction.execute(DefaultGradleLauncher.java:233)
at org.gradle.initialization.DefaultGradleLauncher$ConfigureBuildAction.execute(DefaultGradleLauncher.java:230)
at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:160)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:119)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:102)
at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:71)
at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:50)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.tooling.internal.provider.runner.RunAsBuildOperationBuildActionRunner$1.execute(RunAsBuildOperationBuildActionRunner.java:43)
at org.gradle.tooling.internal.provider.runner.RunAsBuildOperationBuildActionRunner$1.execute(RunAsBuildOperationBuildActionRunner.java:40)
at org.gradle.internal.Transformers$4.transform(Transformers.java:169)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56)
at org.gradle.tooling.internal.provider.runner.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:40)
at org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:75)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75)
at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:49)
at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:31)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:47)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.gradle.api.GradleScriptException: A problem occurred evaluating root project 'android'.
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:92)
at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:176)
at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:77)
at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:181)
at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:39)
at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:26)
at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
at org.gradle.configuration.project.LifecycleProjectEvaluator.doConfigure(LifecycleProjectEvaluator.java:70)
... 65 more
Caused by: groovy.lang.MissingPropertyException: Could not get unknown property 'androidCompileSdkVersion' for object of type com.android.build.gradle.AppExtension.
at org.gradle.internal.metaobject.AbstractDynamicObject.getMissingProperty(AbstractDynamicObject.java:88)
at org.gradle.internal.metaobject.ConfigureDelegate.getProperty(ConfigureDelegate.java:134)
at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:172)
at groovy.lang.Closure.getProperty(Closure.java:291)
at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:50)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:307)
at build_7ttl9iofj1lunq0d69x0jght5$_run_closure3.doCall(E:\Users\Richard Nehrboss\Documents\intelligent demographics\berrylan-master\android\build.gradle:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024)
at groovy.lang.Closure.call(Closure.java:414)
at groovy.lang.Closure.call(Closure.java:430)
at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:70)
at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:160)
at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:106)
at org.gradle.util.ConfigureUtil$1.execute(ConfigureUtil.java:123)
at org.gradle.api.internal.plugins.ExtensionsStorage$ExtensionHolder.configure(ExtensionsStorage.java:145)
at org.gradle.api.internal.plugins.ExtensionsStorage.configureExtension(ExtensionsStorage.java:69)
at org.gradle.api.internal.plugins.DefaultConvention$ExtensionsDynamicObject.invokeMethod(DefaultConvention.java:215)
at org.gradle.internal.metaobject.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:96)
at org.gradle.internal.metaobject.MixInClosurePropertiesAsMethodsDynamicObject.invokeMethod(MixInClosurePropertiesAsMethodsDynamicObject.java:30)
at org.gradle.groovy.scripts.BasicScript.invokeMethod(BasicScript.java:111)
at org.gradle.groovy.scripts.BasicScript.methodMissing(BasicScript.java:120)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:941)
at groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:1264)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1217)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166)
at build_7ttl9iofj1lunq0d69x0jght5.run(E:\Users\Richard Nehrboss\Documents\intelligent demographics\berrylan-master\android\build.gradle:24)
at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:90)
... 72 more"
Any thoughts?
Thanks!
I have an Eero mesh wifi router that actually consists of many physical APs. The Android app apparently gets confused by that fact and shows many entries with the same SSID.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.