Giter Club home page Giter Club logo

homeapp's Introduction

Hi there, I'm Dominik ๐Ÿ‘‹

About Me ๐Ÿง‘๐Ÿป

I'm interested in programming, and I think it's great to create new things. I'm always on the lookout for new technologies and techniques to create amazing products with great user experiences and sleek interfaces. When I'm not coding, I like taking photos, hanging out with friends, or playing the guitar.

Statistics โœจ

homeapp's People

Contributors

cweiske avatar domi04151309 avatar gared avatar p-a-t-r-i-c-k avatar sguinetti avatar vistaus 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

homeapp's Issues

[Feature Request] Document simplehome mDNS discovery in wiki

Describe the solution you'd like

It would be nice if the (SimpleHomeApi)[https://github.com/Domi04151309/HomeApp/wiki/SimpleHome-API] wiki page would contain instructions about mDNS discovery, and how to configure avahi-daemon. (Mentioned in commit 6d492b8).

It'd be also nice there was an explanation how to setup UPnP announcements for own SimpleHomeApi services yourself.


The Shelly page should mention the devices known to work (and that others should work, too):

  • Shelly 1 with temperature+humidity sensor
  • Shelly Plug S
  • Shelly Plus 1

The page should also mention that autodiscovery works with shelly devices.

[Feature Request] Slider SimpleHome API

In the screenshot of Hue bridge sliders for various variable inputs are shown.
In the wiki there seems to be only the possibility to toggle a command for the SimpleHome API.

I think it would be great if a slider input could be used in this case too. For instance by adding a range attribute in the list of commands.

[Bug Report] Hue - No scenes synced

Description

I started the app, added my Hue bridge, tap the button to associate. It has correctly synced all the rooms and lights, but there are none of the scenes that are registered. I know the scenes are correctly registered in the bridge because I use the Hue app on Android and hueadm on Linux.

Screenshot_20201127-135357_Home

  • Android version: LineageOS 16.1, microg
  • Home App version: 1.7.2
  • Installation source: F-Droid

Thank you for the software, thus said :)

[Feature Request] Group devices into rooms

Describe the solution you'd like

When using Shelly devices, each power socket and light switch has its own device. When you have more than 5 of them, the list in HomeApp gets pretty crowded and it's not easy to see if switch A belongs to the same room as socket B.

It would be nice if I could group devices into "rooms", and have all of them visible on the main screen without having to open them.

Living room
- Stair light
- TV light
- DVD player socket
Kitchen
- Radio
- Main light

Maybe opening/closing (expanding) would be nice, too.

[Bug Report] Socket device icon looks bad

Description
The socket device icon in blue looks ugly on a white background.
The original one from #58 looked better in my eyes.

I presume you did that change because of white/dark themes.
Could there be an inverted one for the dark theme instead of using the blue one?

Screenshot_20220107-185556_Home

[Feature Request] Looking for Widget Customization

Just wanted to start by saying this app works really well!
Would it be possible to be able to allow for edit the widget icons? Something like the ability to select from a preset amount of colors (to keep things minimal) would be great. This would be nice to help me differentiate between different light colors/scenes on the Hue lights.

Thank you!

[Feature Request] Support for Shelly switches

Shelly relay devices (Shelly Plus 1, Shelly 1, see https://shelly.cloud/ ) are installed in power sockets and light switches and can be used without any cloud services.
They have a publicly documented API at https://shelly-api-docs.shelly.cloud/gen1/ (Shelly 1) and https://shelly-api-docs.shelly.cloud/gen2/ (Shelly Plus 1).

It would be nice if HomeApp would support their API.

I would like to support that by buying you some test devices. Please contact [email protected] if you are interested and let me know your postal address.


Service Discovery

Shelly devices announce themselves via MDNS (Bonjour/Zeroconf) and not SSDP. One can use the linux tool "avahi-browse" to find them.

Gen2 shellies advertise themselves the Multicast Domain Name System (mDNS), also known as Bonjour. Devices advertise two types of services:

  • _http._tcp - a web server serving on port 80. This service is also advertised for Gen1 shellies
  • _shelly._tcp - service instance specific to Gen2 Shelly devices."
$ avahi-browse --cache --no-db-lookup --parsable --all
+;wlp1s0;IPv4;ShellyPlus1-A8032ABD2342;_http._tcp;local
+;wlp1s0;IPv4;ShellyPlus1-A8032ABD2343;_http._tcp;local
+;wlp1s0;IPv4;ShellyPlus1-A8032ABE2344;_http._tcp;local
+;wlp1s0;IPv4;shellyplus1-a8032abd2342;_shelly._tcp;local
+;wlp1s0;IPv4;shellyplus1-a8032abd2343;_shelly._tcp;local
+;wlp1s0;IPv4;shellyplus1-a8032abe2344;_shelly._tcp;local

Android natively supports mDNS discovery also with Kotlin: https://developer.android.com/training/connect-devices-wirelessly/nsd#discover

Device information

All devices (v1 and v2) have a public (unprotected) JSON information file at /shelly:

v1

{
    "type": "SHSW-1",
    "mac": "483FDA82687A",
    "auth": false,
    "fw": "20211109-124958/v1.11.7-g682a0db",
    "longid": 1,
    "num_outputs": 1
}

https://shelly-api-docs.shelly.cloud/gen1/#shelly

v2

$ curl -s shelly1.home.cweiske.de/shelly|jq .
{
  "id": "shellyplus1-a8032abd1bcc",
  "mac": "A8032ABD2342",
  "model": "SNSW-001X16EU",
  "gen": 2,
  "fw_id": "20210921-202758/0.8.1-g52de872",
  "ver": "0.8.1",
  "app": "Plus1",
  "auth_en": false,
  "auth_domain": null
}

The "gen" key is only available on v2 devices.

https://shelly-api-docs.shelly.cloud/gen2/Overview/CommonServices/Shelly#http-endpoint-shelly

Number of switches

v1

The JSON object in GET /status has a "relays" array property: https://shelly-api-docs.shelly.cloud/gen1/#shelly1-1pm-status

{
    "relays": [
        {
            "ison": false,
            "has_timer": false,
            "timer_started": 0,
            "timer_duration": 0,
            "timer_remaining": 0,
            "overpower": false,
            "source": "http"
        }
    ],
    ...
}

v2

We have to look for "switch:*" keys in the device configuration object for v2-devices:
https://shelly-api-docs.shelly.cloud/gen2/Overview/CommonServices/Shelly#shellygetconfig

$ curl -s shelly1.home.cweiske.de/rpc/Shelly.GetConfig | jq .
{
  ...
  "switch:0": {
    "id": 0,
    "name": "wohnzimmer_1",
    "in_mode": "follow",
    "initial_state": "restore_last",
    "auto_on": false,
    "auto_on_delay": 60,
    "auto_off": false,
    "auto_off_delay": 60
  },
  ...
}

Detecting on/off device state

v1 returns the ison state in the /status route as well.

Both v1 and v2 devices have the /relay/0 URL, which tells us if it is switched on or off via ison:

$ curl -s shelly1.home.cweiske.de/relay/0|jq .
{
  "ison": true,
  "has_timer": false,
  "timer_started_at": 0,
  "timer_duration": 0,
  "timer_remaining": 0,
  "source": "http"
}

v2 also returns all states in /rpc/Shelly.GetStatus:

$ http -p b shelly1.home.cweiske.de/rpc/Shelly.GetStatus
{
   ...
    "switch:0": {
        "id": 0,
        "output": true,
        "source": "http",
        "temperature": {
            "tC": 58.8,
            "tF": 137.8
        }
    },
    ...
}

Switching on/off

Both v1 and v2 devices have the /relay/0 URL, which allows turning the device on, off or toggling the device state with a GET parameter:

$ curl http://shelly1.home.cweiske.de/relay/0?turn=on
$ curl http://shelly1.home.cweiske.de/relay/0?turn=off
$ curl http://shelly1.home.cweiske.de/relay/0?turn=toggle

Note: Some devices have more that one relay. See above for detecting the number and names of switches.

Temperature sensors

v1

It's possible to attach a temperature sensor to a Shelly 1 device. /status gives us the values:

{
    ...
    "ext_sensors": {
        "temperature_unit": "C"
    },
    "ext_temperature": {
        "0": {
            "hwID": "0300",
            "tC": 23,
            "tF": 73.4
        }
    },
    "ext_humidity": {
        "0": {
            "hwID": "0300",
            "hum": 52.3
        }
    },
    ...
}

Authentication

v1

https://shelly-api-docs.shelly.cloud/gen1/#common-http-api

All resources except for /shelly will require Basic HTTP authentication when it is enabled

v2

https://shelly-api-docs.shelly.cloud/gen2/Overview/CommonDeviceTraits#authentication

Communication through HTTP and Websocket channels is secured by a digest authentication mechanism using the SHA256 hmac algorithm as defined in RFC7616.
When enabled, all communication is protected except:

  • the RPC method Shelly.GetDeviceInfo
  • the HTTP endpoint /shelly

[Bug Report] A display bug

Description

Dear developer! In the process of using, I found a bug in layout / display. As shown in the figure, in the first page, the lower part of the text in the red box is blocked, so you can only see โ€œYour Dxxxxโ€. It may be an adaptation problem.
App version is 1.7.2, my mobile phone is Google nexus 6, screen resolution setting is 1920*1080, font size and display size are the largest! ! !, Android system is 8.0.
The above is a description of the problem. The overall experience of the software is good. You can see that the design is very attentive. Thank you very much for the efforts of the developers all the time. I hope to receive a reply.
Thank you!

Screenshots

bug-home_172

Add screenshots here to describe the problem.

Logs

Add a detailed stack trace / crash log here if applicable

Additional information

  • Android version: _System Settings > About > Android 8.0
  • Home App version: _Settings > About > 1.7.2
  • Installation source: F-Droid

[Feature Request] Allow creation of shortcuts (widget?) for commands

I'd like to be able to fire (execute) a command from my android home screen.

Typically I'm looking for a way to toggle a switch without having to:

  • open Home app
  • select the corresponding device in the devices list
  • click on the "switch" action

If I could see the response as in Home app it would be perfect !

context

  • plug with switch flashed with Tasmota

[Feature Request] OpenHab Integration

Open Hab integration

It woud be great to be able to usw this beautiful app as a Frontend for OpenHab. I am not shure if there is already a workaround for this.

Additional context

The original OpenHab APP is ugly and you have build an beautiful alternative to controls a smarthome and it woud be great to combine the powerfull OpenHab backend with your beautiful UI and UX frontend.

OpenHab:
Screenshot_20220324-080819

It is just a list oft everything without a good UX.

Wrong gradle version

I'm having this problem the 10th time now after resetting my git checkout --hard for #64 , so I post this as a bug.

When trying to build HomeApp with Android Studio 2020.3.1 I get an error:

Build file '/home/cweiske/dev/tools/HomeApp/app/build.gradle' line: 1

A problem occurred evaluating project ':app'.
> Failed to apply plugin 'com.android.internal.application'.
   > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
     You can try some of the following options:
       - changing the IDE settings.
       - changing the JAVA_HOME environment variable.
       - changing `org.gradle.java.home` in `gradle.properties`.

The solution is to open File > Settings โ†’ Build, Execution, Deployment โ†’ Build Tools โ†’ Gradle and change "Gradle JDK".

This should be set automatically.

[Feature Request] IKEA Tradfri integration

Dear @Domi04151309,
Thanks a for this great looking App. ๐Ÿ™๐Ÿผ
Would it be possible to integrate the IKEA Tradfri protocol as well, as it its kind of Philippe Hue or ZigBee compatible?

In a first try I was not able to 'find' LEDs of my smart home system.

Best regards
Matl

[Bug Report] Crash when using device discovery in 1.7.2

Description

The experimental device discovery in HomeApp 1.7.2 crashes here in my home network.

I'm pretty sure it has to do with one of the devices here in the network, but I don't know which.

Logs
I WifiService: acquireMulticastLock uid=10088
I mi04151309.hom: Background concurrent copying GC freed 28261(3249KB) AllocSpace objects, 0(0B) LOS objects, 49% free, 5807KB/11MB, paused 2.376ms total 284.427ms
D Volley  : [1663] e.c: /data/user/0/io.github.domi04151309.home/cache/volley/1061423297142620875: java.io.FileNotFoundException: /data/user/0/io.github.domi04151309.home/cache/volley/1061423297142620875: open failed: ENOENT (No such file or directory)
D Volley  : [1663] e.o: Could not delete cache entry for key=http://192.168.3.3:49152/description.xml, filename=1061423297142620875
D Volley  : [1658] e.c: /data/user/0/io.github.domi04151309.home/cache/volley/1061423297142620875: java.io.FileNotFoundException: /data/user/0/io.github.domi04151309.home/cache/volley/1061423297142620875: open failed: ENOENT (No such file or directory)
D Volley  : [1658] e.o: Could not delete cache entry for key=http://192.168.3.3:49152/description.xml, filename=1061423297142620875
I mi04151309.hom: Background young concurrent copying GC freed 80112(8928KB) AllocSpace objects, 12(240KB) LOS objects, 50% free, 5748KB/11MB, paused 680us total 106.160ms
I WifiService: releaseMulticastLock uid=10088
D AndroidRuntime: Shutting down VM
E AndroidRuntime: FATAL EXCEPTION: main
E AndroidRuntime: Process: io.github.domi04151309.home, PID: 1093
E AndroidRuntime: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:501)
E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)
E AndroidRuntime: Caused by: java.lang.reflect.InvocationTargetException
E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
E AndroidRuntime: 	... 1 more
E AndroidRuntime: Caused by: org.xmlpull.v1.XmlPullParserException: expected: /link read: head (position:END_TAG </head>@18:9 in java.io.InputStreamReader@2c10d77) 
E AndroidRuntime: 	at com.android.org.kxml2.io.KXmlParser.readEndTag(KXmlParser.java:984)
E AndroidRuntime: 	at com.android.org.kxml2.io.KXmlParser.next(KXmlParser.java:375)
E AndroidRuntime: 	at com.android.org.kxml2.io.KXmlParser.next(KXmlParser.java:313)
E AndroidRuntime: 	at b.a.a.a.h(Unknown Source:244)
E AndroidRuntime: 	at b.a.a.a.g(Unknown Source:5)
E AndroidRuntime: 	at b.a.a.b$c.b(Unknown Source:7)
E AndroidRuntime: 	at b.a.a.b$c.a(Unknown Source:2)
E AndroidRuntime: 	at b.b.a.w.n.O(Unknown Source:8)
E AndroidRuntime: 	at b.b.a.w.n.e(Unknown Source:2)
E AndroidRuntime: 	at b.b.a.f$b.run(Unknown Source:30)
E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:883)
E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:100)
E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:214)
E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7356)
E AndroidRuntime: 	... 3 more
W ActivityTaskManager:   Force finishing activity io.github.domi04151309.home/.activities.SearchDevicesActivity
I DropBoxManagerService: add tag=data_app_crash isTagEnabled=true flags=0x2
I Process : Sending signal. PID: 1093 SIG: 9
I WindowManager: WIN DEATH: Window{6ced571 u0 io.github.domi04151309.home/io.github.domi04151309.home.activities.SearchDevicesActivity}
I ActivityManager: Process io.github.domi04151309.home (pid 1093) has died: fore TOP 
I WindowManager: WIN DEATH: Window{ec0885f u0 io.github.domi04151309.home/io.github.domi04151309.home.activities.DevicesActivity}
I Zygote  : Process 1093 exited due to signal 9 (Killed)

Additional information

  • Android version: 10
  • Home App version: 1.7.2
  • Installation source: F-Droid

[Bug Report] Apps crash when using "switch" mode.

Description

If you press the back button while polling commands, the application crashes when using the SimpleHome APi protocol. This present if device use "switch" mode. Some times android show message that app was stopped, usually it closed without messages.

Screenshots ![Screenshot_20220614-141716_1](https://user-images.githubusercontent.com/57623145/173566128-48a13a09-0144-4d60-87fd-08d918873d30.png)
  • Android version: System Settings > About > Android version 10
  • Home App version: Settings > About > Version 1.9.0(190)
  • Installation source: F-Droid

[Feature Request] Add Support for Node-RED

Describe the solution you'd like

Basic Support:

  • Show the Dashboard {Server}:1880/ui/

Enhanced Support

  • Add a possibility to edit nodes {Server}:1880/
  • Add possibility to send notification to HomeApp
The most easy part would be the viewing of the Dashboard. At moment HomeApp seems not able to show even that.

[Feature Request] Tasmota support

Support for Tasmota, an alternative firmware for ESP8266, would be nice. I use multiple devices with Tasmota installed (self-flashed), but there is no easy-to-use open source app to control them. I'm currently using a browser with saved links to change the state of the ESPs. I also installed and configured an MQTT broker and everything is going well, but there is no useful open source app for that either. A home automation system would surely be an exaggeration to control a handful of devices.

Your app looks promising, so it would be great if you could add Tasmota support. Here is a link to commands that can be issued: https://tasmota.github.io/docs/Commands/

Command examples for web requests:
http://<ip>/cm?cmnd=Power%20Toggle
http://<ip>/cm?cmnd=Power%20On
http://<ip>/cm?cmnd=Power%20Off
http://<ip>/cm?user=admin&password=joker&cmnd=Power%20Toggle

[Bug Report] Adding device broken

Description
Adding a new device with latest git version f95d6a3 is broken.

  1. Settings
  2. New device
  3. Add device with address
  4. Name: Test
  5. Address: homeapp-simpleapi.boo/
  6. Click create
  7. No device is added, device list is empty
Logs
11-28 22:25:33.952  7892  7892 D AndroidRuntime: Shutting down VM
11-28 22:25:33.969  7892  7892 E AndroidRuntime: FATAL EXCEPTION: main
11-28 22:25:33.969  7892  7892 E AndroidRuntime: Process: io.github.domi04151309.home, PID: 7892
11-28 22:25:33.969  7892  7892 E AndroidRuntime: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:501)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: Caused by: java.lang.reflect.InvocationTargetException
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	... 1 more
11-28 22:25:33.969  7892  7892 E AndroidRuntime: Caused by: org.json.JSONException: No value for order
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at org.json.JSONObject.get(JSONObject.java:399)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at org.json.JSONObject.getJSONArray(JSONObject.java:594)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at s2.d.j(:42)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at s2.d.b(:87)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at io.github.domi04151309.home.activities.EditDeviceActivity.a0(:169)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at io.github.domi04151309.home.activities.EditDeviceActivity.V(Unknown Source:0)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at n2.f.onClick(Unknown Source:19)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at android.view.View.performClick(View.java:7259)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at android.view.View.performClickInternal(View.java:7236)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at android.view.View.access$3600(View.java:801)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at android.view.View$PerformClick.run(View.java:27892)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:883)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:100)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:214)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7356)
11-28 22:25:33.969  7892  7892 E AndroidRuntime: 	... 3 more

Additional information

  • Android version: 10
  • Home App version: f95d6a3
  • Installation source: Own Build

[Test] EspEasyAPIParserTest.parseInfo1() fails

expected:<Relais[]> but was:<Relais[~GPIO~12]>
Expected :Relais
Actual   :Relais~GPIO~12
<Click to see difference>

org.junit.ComparisonFailure: expected:<Relais[]> but was:<Relais[~GPIO~12]>
	at org.junit.Assert.assertEquals(Assert.java:117)
	at org.junit.Assert.assertEquals(Assert.java:146)
	at io.github.domi04151309.home.helpers.EspEasyAPIParserTest.parseInfo1(EspEasyAPIParserTest.kt:50)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.robolectric.RobolectricTestRunner$HelperTestRunner$1.evaluate(RobolectricTestRunner.java:591)
	at org.robolectric.internal.SandboxTestRunner$2.lambda$evaluate$0(SandboxTestRunner.java:274)
	at org.robolectric.internal.bytecode.Sandbox.lambda$runOnMainThread$0(Sandbox.java:88)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:834)


[Feature Request] Submenu

Implement a submenu in the SimpleHome API, this will allow to implement several features, for example: make a separate item for setting up a device from the application or group devices by type or by room.
For example, add a "submenu" mode to the list of modes. In which the application will wait for a response an object such as "commands".

[Feature Request] mqtt support

As the actual tasmota implementation just works for me if I'm at home because I don't have all my smart devices in the www by them self but via mqtt.

Further more the avtual use off my password feels unsecure.

[Feature Request] Seperate device availability and commands in the SimpleHome API

Describe the solution you'd like
A previously connected device might not change available commands often. Reloading a potentially large list of command at each connect could be avoided.

A clear and concise description of what you want to happen.
I think a separate "heartbeat" message could be used instead of loading the full command list if an device is opened. This message would only need to contain some basic information over the available command, to make sure there are no changes. If there is a change, the full command list has to be called, resulting in a performance penalty. However, this probably happens way less frequently so often only a short message is needed to check if a device is available.

Additional context
  • An approach to this heartbeat message could be a time stamp of the last change. However, this might be more difficult to implement on the device side. An easier option for microcontrollers might be to log the last boot time. HomeApp could then check if this time is more recent than the last full command list and act accordingly.

  • Including a (basic) hash of the command list in the heartbeat. This is probably easiest on the client side, however not all microcontrollers might like this?

  • Including some basic metadata. A few basic details, for instance command, character count and ascii value sum could be sufficient to assume an unchanged list.

[Feature Request] Use semantic versioning

Version 1.7.3 brings many new features, but the version number indicates that it's a bugfix release.

It would be nice if HomeApp would follow the "semantic versioning" rules: https://semver.org/

  • Bugfix-only releases: Increase the 3rd number in the version: x.y.z+1
  • Feature releases (even when they contain bugfixes): Increase the 2nd number, reset the 3rd to 0: x.y+1.0
  • Breaking changes (removed features): Increase the major version, reset the others to 0: x+1.0.0.

[Bug Report] App doesn't work through cellular network.

Description

After last update app don't work through cellular network. Through wifi work ok.

Screenshots ![Screenshot_20211207-110802](https://user-images.githubusercontent.com/57623145/144991308-51dcd63b-77f6-4e65-80f1-050db459c70f.png) ![Screenshot_20211207-111301](https://user-images.githubusercontent.com/57623145/144991339-7ba92dd8-675c-4007-8d16-b46acb414de1.png)

Additional information

  • Android version: _System Settings > About > Android version 10
  • Home App version: _Settings > About > Version 1.7.3
  • Installation source: F-Drod

[Feature Request] Integration with alarms app

Hi! I was wondering if it is possible to implement the app with some type of macro, in particular with alarms.

When the alarm first rings in the morning you can configure the app to turn on a light in your bedroom automatically.

Thank you for your hard work!

[Bug Report] Settings: Re-ordering devices leads to wrong edit

Description
After moving a device in the device list in settings, tapping the device to edit it opens edit screen for the wrong device.

  1. Open device settings
  2. Move device 2 up to before device, so that it's the new number 1
  3. Tap on device 1 to edit it
  4. Device 2's edit screen is shown

Workaround: After re-ordering devices, leave the device settings with the back button. Then go back to device settings list and tap the device to edit it.

Additional information

  • Android version: 10
  • Home App version: Commit aa67490 (shelly branch)
  • Installation source: own build

[Feature Request] mDNS for discovered devices

When automatically discovering devices via mDNS (since #27), HomeApp resolves the IP address and stores that in its configuration: url=http://192.168.3.71/.
This works fine for IoT devices with static IP addresses, but not for those that get a new one everytime from the DHCP server (dynamic IP).

The solution to this problem would be to not resolve the IP address during discovery, but to store the discovered name and then resolve it via mDNS when accessing the device.

This could be integrated into the current structure by saving "http://mdnsname.local/" as path (url=http://shellyplus1-a8032abd1bcc.local/). When trying to access that path, HomeApp would need to check if the domain ends with .local and resolve the domain via mDNS. Then the local domain would need to be replaced in that path, and then the actual HTTP request could be made.

I personally use static IPs for my IoT devices, so I don't have this problem. Others could, though.

[Feature Request] Detect system theme

Detect the current preferred color theme (dark or light) and use it (extra setting like other apps - Nextcloud has 'Follow System' in OSS app).

I was worried because you only added light theme screenshots in fdroid.

Maybe also add Auto (day/night) - no value to me.

[Feature Request] Website Authentication

My router requires HTTP authentication to access the system, but the app doesn't seem to support this. It shouldn't be too hard to implement and it would be really nice. This app seems very cool so far, setting up an ESP8266 went perfectly and the app looks nice.

Screenshots for F-Droid

You can add Screenshots for F-Droid, too, if you want.
https://f-droid.org/en/docs/All_About_Descriptions_Graphics_and_Screenshots/
https://gitlab.com/snippets/1895688
That was simply information about what is still possible. You would then only have to enter the screenshots in fastlane. This is just one way that you can also add screenshots to the app view if you can. If you added screenshots (then F-Droid is happy) and if you can't add any -> then you can close the issue because it was only an info. Thank you that your app is available in
fdroid. Very much for your attention.

it is only information.

Unable to Access Router Settings

Hello, while I am still not an actual user of this app (that may happen once I set up Home Assistant at our house), I have tried to evaluate Home App multiple times in the past with simple HTML-based devices, namely routers, without any success, and I had just tried it again, without any new results.

I have tried accessing the settings of:

Xiaomi Mi3 (Rev.1), running PandoraBox and X-Wrt (Chinese OpenWrt distro that is actually vanilla OpenWrt Nightly, down to the package sources)

Xiaomi Mi3G, PandoraBox (will flash vanilla OpenWrt when I have the time)

Netgear DM200, running vanilla OpenWrt (I need to update it, it's from last year)

Linksys WRT32X, running vanilla OpenWrt (I need to update it, it's from last year)

TP-Link W8970 V2, running latest stock firmware

OEM D-Link DSL-2740U, running latest OEM firmware

TP-Link RE200 V1, running latest stock firmware

Other than that, I am pretty excited about Home App (It would be nice to be able to control our air conditioners, however the manufacturer (Tadiran) was lazy with those and outsourced the wireless tech to some random company, and we're not going to install the malware that is recommended for them (I have run a few tests on the APK) (especially since we are used to using the bundled remotes (I am more interested in connecting them to an isolated network to prevent unwanted connections to them)), so figuring out how they even they even work will take time (the recommended malware requires an account with some random Chinese company)).

[Feature Request] Visual Color Picker

Aside from the Hue/Saturation/Brightness sliders, there should be a setting (or button) for a "visual" color picker, where someone can pick colors by dragging or tapping into a gradient of colors.

[Feature Request] Refresh

Add a way to refresh the states. I tried to double tab the IP/Header and swipe down.

Use case
Second phone/tablet, some remote in room or in my case a desktop app, Also a timer or routine is used.

[Bug Report] Can't connect to diyHue

Okay so I set up a diyHue Bridge on my Pi and if I try to connect to it over the Hue Essentials App with the Hue API it's working just fine, but if I try to connect over the HomeApp and the Hue API I can't connect to the Bridge. I mean for sure I could also just use the website but I would really like to use the HomeApp since it is a good looking and also good working with other devices, like using and controlling the lamps on there own over the App

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.