GithubHelp home page GithubHelp logo

openwebnet / openwebnet-android Goto Github PK

View Code? Open in Web Editor NEW
34.0 11.0 21.0 3.49 MB

OpenWebNet Android client for My Home BTicino and Legrand home automation system

Home Page: https://openwebnet.xyz

License: MIT License

Java 100.00%
openwebnet myhome-bticino legrand domotic

openwebnet-android's Introduction

openwebnet-android openwebnet-android

Gitter chat Build Status

OpenWebNet Android client for My Home BTicino and Legrand home automation system

My Home is the BTicino and Legrand home domotic system that let you manage your house from smartphones through OpenWebNet protocol

Manages:

  • Lighting also with Bus
  • Automation also with Bus
  • Temperature
  • Sound System / Radio
  • Scenario
  • Power Consumption
  • any OpenWebNet frame/message
  • IP Camera (MJPEG)

Handle multiple gateways simultaneously with IP or Domain and password

Backup and share profiles

It isn't mandatory, but it's highly recommended that you access your domotic system using a VPN connection

Database encrypted to increase security

This Android application is an unofficial free and Open Source client under MIT license

If you find a bug or have any suggestions feel free to open an issue

If you like this app and find it useful please consider making a donation

Additional links

OpenWebNet is a BTicino registered trademark

Screenshots

menu bs

environment-fab device-debug

ipcam profile

Get it on Google Play

Changelog

All detailed changelog.

Development

./gradlew clean build
./gradlew clean test -Pbuild=dev
./gradlew app:dependencies

How to run tests in Android Studio

Other contributors

Thanks to:

openwebnet-android's People

Contributors

moreau-nicolas avatar niqdev avatar parideis avatar pimyhome avatar schwedenmut avatar siva73 avatar terranum avatar vadimbakaev avatar vbakaev 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openwebnet-android's Issues

Import/Export database to JSON

Add in Preferences the possibility to import/export all configuration for backup purposes or to share it with other devices. I would like to give the possibility to send it via email also.

Huge margin between cards

I've merged few PRs so I don't actually know which one introduced this regression, @moreau-nicolas could you verify if you have the same problem, i.e. huge margin between cards? Thanks

screen shot 2016-03-06 at 17 13 38

Android Wear support

Hello,

I think it would be very nice to add Android Wear support to the app.

For those times when you forgot your smartphone on your desk, and it is farther away than the device you are trying to lazily remotely control. :)

I think the feature set would be much smaller than the full app. Perhaps just lights & automations manipulation. Temperature reading would be nice but shouldn't be required for a first version.

Enhancement: gateway default port

Hello,

At the moment the "add gateway" dialog does not tell the user that the default port is 20000.
Many users won't have too much difficulty finding the correct IP address, but the port might not be as obvious. Giving a little help can't hurt.

The fix could be as simple as modifying the existing hint ("Port") to something more explicit like "Port (default is 20000)".
Other implementations are possible:

  • let the "Port" EditText be optional and use 20000 when it is empty
  • add a short explanation text at the bottom of the dialog
  • ...

What do you think ?

Determine what goes in the FloatingActionMenu

As suggested, we should decide which actions go in FloatingActionMenu and which ones in ActionMenu depending on the most frequently used and that action fab menu size should not exceed 6.
Current/future actions:

  • device
  • light
  • automation
  • temperature
  • sound
  • ipcam
  • alarm

Enhancement: provide a means to delete an Environment

Hello,

At the moment one can create many Environments but the only means I found to delete one is to "delete all data" in the system settings for the app. There should be an user-friendlier way to do this !

Perhaps creating a dedicated EnvironmentActivity to manage environments would help with this ?
The activity could let users Add / Edit / Remove any environment (and associated lights / devices).

Speed improvement

In theory, grouping the requests by gateway in the services when invoking OpenWebNet#send should improve the performances.

Fix the following services:

  • AutomationServiceImpl
  • DeviceServiceImpl
  • EnergyServiceImpl
  • LightServiceImpl
  • ScenarioServiceImpl
  • TemperatureServiceImpl

Search

From a review, user asked if there is a simple way to find list elements.
A solution could be to add a search the in Action Bar for example.

Add ipcam support

I will use this library to support MJPEG stream from Ipcam, need to decide how to handle FloatingActionsMenu

[LIGHT] Blinking

A user suggested to add the blinking feature to the light, like

*1*11*32## (on for 1 minute)
*1*12*32## (on for 2 minutes)
*1*13*32## (on for 3 minutes)
*1*14*32## (on for 4 minutes)
*1*15*32## (on for 5 minutes)
*1*16*32## (on for 15 minutes)
*1*17*32## (on for 30 seconds)
*1*18*32## (on for 0.5 seconds)

Donations

Give the users the possibility to make a donation with in-app billings

Bug: support Android prior to API 19

verify the following issue

java.lang.NoClassDefFoundError: java.util.Objects
    at com.github.openwebnet.view.device.DeviceListAdapter.<init>(DeviceListAdapter.java:73)
    at com.github.openwebnet.view.device.DeviceListFragment.onCreateView(DeviceListFragment.java:73)
    at android.support.v4.app.Fragment.performCreateView(Fragment.java:1965)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1078)
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1259)
    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1624)
    at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:330)
    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:547)
    at com.github.openwebnet.view.MainActivity.onStart(MainActivity.java:211)
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1188)
    at android.app.Activity.performStart(Activity.java:5382)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2266)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
    at android.app.ActivityThread.access$700(ActivityThread.java:159)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:176)
    at android.app.ActivityThread.main(ActivityThread.java:5419)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
    at dalvik.system.NativeStart.main(Native Method)

Question: should we create a "sandbox-mode" activity ?

In #39 I said that it would be nice to have a "sandbox-mode" Activity where users (and ourselves obviously) could try things and see live results.

It could be hidden by default and enabled in the settings. Perhaps this sandbox activity could have a "save as card" feature ? (with better wording though)

What do you think about it ?

Scenario WHO=0

Add supports for modules:

  • F420 (03551) 16 scenarios
  • IR 3456 (88301) 20 scenarios

Create CONTRIBUTING.md

Hello,

It would be nice if the project had a CONTRIBUTING.md file explaining how to contribute to the project.
I'd like to know where to send pull requests (development ? master ?).

Enhancement: create a richer Light card

Hello,

I think the Light card would be more interesting if it offered more interaction than just "Toggle".

Something like :
richer-light-card

It would actually be useful in a scenario where a user would like to have a "General" switch : it does not make sense to turn all lights on before turning them off just because there is only a toggle switch...

Enhancement: Add the "Automation" feature

Hello,

The "Custom Device" feature allows you to control automation devices (eg. shutters) but you have to create a separate device for opening, closing and stopping the shutter, which is not very convenient.

I propose adding an AutomationActivity, similar to the LightingActivity.

A new card type will be used to manage automation devices. It will have two buttons, one for each moving direction. The button appearance will change to reflect state (stopped, moving up, moving down).

Encrypt Realm database

Handle light group

We should support also the following light command format *1*1 - #2 - ##, "where" syntax with hash

Sorting

Hello,

I think it would be very nice to let the user sort the devices however she thinks appropriate.
At the moment there is no sorting option.

As far as I'm concerned I'd like to have the following options:

  • alphabetical order, not grouped by device type
  • alphabetical order, grouped by device type
  • alphabetical order, grouped by environment

Any thoughts ?

Light via BUS

Several users requested to handle Light via BUS

Example frame

*1*1*56#4#01##

Bug: EditText appearance is not consistent accross API levels

Hello,

I just found out that the appearance of the "request" EditText is not consistent accross API levels.

On API 21:
api-21

On API 16:
api-16

The real issue is that on API 16 the "name" EditText is styled correctly and two lines below it, the "request" is not, there is an inconsistency.

Rates directly from app

As suggested, add a specific menu entry for rating the app and show a dialog once (using a preference key) when the app will be finished: example

test coverage

I need help to configure correctly coveralls.
Currently there are 90 tests (4 ignored) but coverage is always 0%

NPE on Android 7.1

java.lang.RuntimeException: 
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:5619)
  at android.app.ActivityThread.-wrap2 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1614)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:154)
  at android.app.ActivityThread.main (ActivityThread.java:6351)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:896)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:786)
Caused by: java.lang.NullPointerException: 
  at com.google.common.base.Preconditions.checkNotNull (Preconditions.java:871)
  at com.google.common.io.BaseEncoding$StandardBaseEncoding.trimTrailingPadding (BaseEncoding.java:672)
  at com.google.common.io.BaseEncoding.decodeChecked (BaseEncoding.java:226)
  at com.google.common.io.BaseEncoding.decode (BaseEncoding.java:212)
  at com.github.openwebnet.database.DatabaseRealmConfig.getRealmKey (DatabaseRealmConfig.java:117)
  at com.github.openwebnet.database.DatabaseRealmConfig.getEncryptedConfig (DatabaseRealmConfig.java:86)
  at com.github.openwebnet.database.DatabaseRealmConfig.getConfig (DatabaseRealmConfig.java:72)
  at com.github.openwebnet.database.DatabaseRealm.setup (DatabaseRealm.java:29)
  at com.github.openwebnet.OpenWebNetApplication.initRealm (OpenWebNetApplication.java:31)
  at com.github.openwebnet.OpenWebNetApplication.onCreate (OpenWebNetApplication.java:22)
  at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1025)
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:5616)

french translation

Would be nice to have French translation also on the play store for short and full description

IFTTT

As a user suggested would be nice to have IFTTT support

Enhance Changelog

  • display last changelog first time when app is updated
  • support multiple language
  • verify layout on different android version

see this library for more details

Enhancement: card buttons should give a visual feedback

Hello,

At the moment it's quite hard to see if a button click on a card registers or not. Having visual feedback would help a lot.
A solution would be to use StateListDrawables instead of plain-ol' XML drawables for ImageButtons.

This will require some graphics skill to create the hover / pressed / whatever icon variants (a simple color change might not be enough).

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.