Code Monkey home page Code Monkey logo

berrylan's Introduction

nymea - open source IoT edge server


nymea (/[n'aiːmea:]/ - is an open source IoT edge server. The plug-in based architecture allows to integrate protocols and APIs. With the build-in rule engine you are able to interconnect devices or services available in the system and create individual scenes and behaviours for your environment.

Quick start

Install nymea on a Raspberry Pi

We have created an image for your Raspberry Pi (all models) that comes with an array of plugins for different smart devices!

Use the Raspberry Pi imager and select nymea as operating system. You'll have the choice between a headless nymea:core setup or a kiosk image that contains nymea:core and nymea:app for Raspberry Pis with touch screen.

Alternatively, the image can be downloaded and flashed manually from here. We recommend the latest Raspberry Pi OS Bullseye core or kiosk image.

Get nymea:app here:

iOS Badge

Android Badge

Openstore Badge

macOS Badge

Snap Badge

Windows Badge

Manual download files of nymea:app can be found here.

A detailed description how to install and getting started with nymea can be found in the nymea | user documentation.

Getting help

If you want to present your project or want to share your newest developments you can share it in Our Forum

If you are facing any troubles, don't hesitate to reach out for us or the community members, we will be pleased to help you: Chat with us on Telegram or Discord

Developing with nymea

A detailed documentation on how to develop with nymea is available on the nymea | developer documentation.

Network discovery

When starting nymead as user without root privileges, the network device discovery will not available due to missing raw socket permission. If you still want to make use of this feature, the binary capabilities need to be adjusted.

sudo setcap cap_net_admin,cap_net_raw=eip /usr/bin/nymead

This will allow nymead to create raw sockets for ARP and ICMP network discovery tools even when nymead gets started as user without root privileges.

License


nymea is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3 of the License.

berrylan's People

Contributors

amvdl avatar daebong-jeon avatar mymike00 avatar myshoeshurt avatar mzanetti avatar nymea-jenkins avatar rhythm-section avatar simonseres avatar t-mon avatar vocatan avatar weblate avatar yeyeto2788 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

berrylan's Issues

PiZero Bluetooth not starting

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

nymea on bananapi (ubuntu server)

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

connecting with a fixed ip address without dhcp available

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

license missing

what is the license of this repo? could you please add one?

update/upgrade of latest bluez breaks bluetooth advertising

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.

Is there any way to change the network the pi is connected to?

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?

Question: Berrylan Android app does not list Wifi when Channel set to "Auto" in router??

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?

install without predefined image

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.

Berrylan Qt Creator / XCODE

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

Add support for WiFi channels 12 and 13

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.

WPS support

Add WPS (Wifi protected setup) support to make the WiFi setup even easier

32bit Hardware not supported by Google Play Store version.

The Play Store reports that only my ZTE Blade V6 is compatible with the app:
compatible
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:
image

The Moto G6 has Bluetooth 4.2, so I'm not sure why this is marked as 'not compatible'.

Embedding berrylan mobile app into PWA

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

Does it detect jetson nano ?

Does it detect jetson nano also ? If not then what files do I need to change in order for it to support jetson nano ?

Compile Android App

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!

Spanish translations

Hola!

Is there any guide in order to contribute with translations?

Maybe:

  1. I can fork the project.
  2. Add the file called 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.

Cannot open AccessPoint with BerryLan App on RaspberryPi3A+

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'"

 

Installed but not showing

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.

Bluetooth advertising after connected

Referring to issue #9. I'm having the same issue (Bluetooth is advertising even after connected to wifi (somewhat intermittently).

I read through issue #9 and checked version:
nymea-networkmanager/unknown,now 0.3.2 armhf [installed]

This is on PI Zero W if that helps.

Any thoughts?

Thanks!

Modify Spinner Color Scheme

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?
image

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

Bluetooth discoverable even if connected to Wifi

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.

Other OS Support

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.

android app just spins when looking for wifi networks?

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:

  1. Launch app
  2. See BT WLAN setup on the list of devices I can configure
  3. Select that item (which causes some BT traffic to the rpi - see console log below)
  4. See android app sit (forever) with the circling animation around the middle (wifi) icon in your app.
  5. Was this the point where I would expect to tell the pi which wifi network name and passphrase?

(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


Issue with piZero install

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!

Using two Wlan

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?

Switching Wifi connections when original becomes unavailable

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?

Static ip not working

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.

wrong password - not

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 ?

kali linux

Is it posible to run on kali linux. I tried to install but I can reach the pi zero by the app.

tks

Question

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

Open Wifi networks not supported

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 :

  1. Network list should show open networks ( it does today ) but add a small "open network icon" to them
  2. When i select a open network i am not prompted to enter password, just a question if i want to connect.

Changing MAC address

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?

BerryLan App ver 1.0.43 (latest) version filters/blocks devices

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,

  • Ask for Bluetooth permissions
  • Filter for BerryLan compatible devices

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

No support for mesh WLAN AP

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.

Install on full Raspian doesn't work

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?

Install on RPi 4 and Android app fails to find WiFi ap

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):

  1. 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
    
  2. Install nymea-networkmanager

    pi@raspberrypi:~ $ sudo apt install nymea-network-manager
    
  3. 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!

Add hostname configuration

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.

BerryLan cannot access Bluetooth when installing on Plain Raspbian

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

Problem

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.