Quick Fhem - Android App

Begonnen von EpicMinister, 16 Oktober 2016, 12:35:12

Vorheriges Thema - Nächstes Thema

oldman

Danke. Ganz einfach, wenn das Was und Wo klar ist.

Rampler

#166
Habe glaube ich,ein paar Fehler gefunden..


  • Der Devicename darf keinen unterstrich haben, sonst Abbruch
  • Die Tabs müssen TAB1 2 usw. heißen, ansonsten gibt es Abstürze

Habe mal eine Tab1 erzeugt, und hier den ersten Button (Befehl on) mit einem Command (set HZ.ctrl.K3 auto) versehen, wenn ich diesen dann betätige gibts einen Absturz...


EDIT:
Die neueste Version funktioniert jetzt ohne Absturz ..
DANKE
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Rampler

..Sieht soweit richtig gut aus ...

Ich möchte von unterwegs aus, via VPN steuern. (VPN Tunnel starten, und dann mit http zugreifen)
Kann man die Notification um eine active VPN Verbindung erweitern ?

Grüße
Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Rampler

Bis jetzt, tolle App !
Mir würde helfen, wenn es sozusagen zwei App Kacheln geben würde, eine für die Konfiguration, und eine, mit der die Tab's geöffnet werden.
Also sozusagen wie das Widget, allerdings halt nicht als Widget, sondern als App.
Hintergrund:
Habe auf meinem Homescreen Ordner, in dem alles bezüglich Smart-Home enthalten ist, allerdings können die Ordner nur App's aufnehmen und keine Widget's.
Viele Grüße
  Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Matscher

Seitdem Update kann ich den Dialog mit den Buttons nicht mehr nutzen, da er sich gleich wieder schließt.
Wenn ich nun in den Einstellungen "Test Server" verwende, meldet die App -> Adresse nicht erreichbar. An der hat sich aber nichts geändert und ist per Browser weiterhin erreichbar.

Gruß,
Matscher
Rasp 3
CUL V3 868Mhz + nanoCUL 868Mhz als RFR + nanoCUL 868Mhz für Homematic + SIGNALduino
Zigbee CC2531 - Aquara TempSensor
MySensors Ethernet Gateway, Water meter, Gas meter
Modul: 09_CUL_FHTTK.pm (assumed), culfw part HAS_FHT_TF

UweH

Zitat von: Matscher am 30 März 2017, 11:22:35
meldet die App -> Adresse nicht erreichbar.
Das Stichwort lautet "csrfToken". Such mal.

Gruß
Uwe

EpicMinister

Vielen Dank für das Feedback!

Ob die Notification über eine aktive VPN gestartet werden kann, weiß ich leider nicht - schau ich aber nach.
Ein weiteres Icon zum öffnen finde ich ne Gute Idee. Ich schau mal, wie sich das umsetzen lässt.

Zitat von: Matscher am 30 März 2017, 11:22:35
Seitdem Update kann ich den Dialog mit den Buttons nicht mehr nutzen, da er sich gleich wieder schließt.
Wenn ich nun in den Einstellungen "Test Server" verwende, meldet die App -> Adresse nicht erreichbar. An der hat sich aber nichts geändert und ist per Browser weiterhin erreichbar.

Gruß,
Matscher

Welche Verbindungs-Methoden benutzt du? (SSL?, CSRF-Token?)

LG
Christian

Matscher

Zitat von: EpicMinister am 30 März 2017, 11:28:50
Welche Verbindungs-Methoden benutzt du? (SSL?, CSRF-Token?)

Weder noch. :) Vllt. als Option CSRF-Token zu deaktivieren, so wie in FHEM es möglich ist.

Gruß,
Matscher
Rasp 3
CUL V3 868Mhz + nanoCUL 868Mhz als RFR + nanoCUL 868Mhz für Homematic + SIGNALduino
Zigbee CC2531 - Aquara TempSensor
MySensors Ethernet Gateway, Water meter, Gas meter
Modul: 09_CUL_FHTTK.pm (assumed), culfw part HAS_FHT_TF

EpicMinister

Möglicherweise benutzt du noch Version 2.1.5 der App. (Dort gab es ein Fehler im Code für die Connection)
Falls dem so ist, einfach updaten. Dann sollte das Problem behoben sein:)

LG
Christian

Matscher

Hi Christian,

ich habe die 2.1.6 alpha installiert. Aber vielleicht kannst Du was aus dem LogCat herauslesen. Speziell sehe ich da eine Exception "java.net.SocketTimeoutException: failed to connect to /192.168.0.101 (port 9085) after 900ms"

Und Danke für Deine Hilfe.

Viele Grüße.



03-30 13:12:15.756 D/StatusBar( 1121): Clicked on content of 0|com.guba.christian.quickfhem|101|null|10117
03-30 13:12:15.770 W/InputMethodManagerService(  799): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@767e438 attribute=null, token = android.os.BinderProxy@51a99d8
03-30 13:12:15.832 I/ActivityManager(  799): START u0 {act=com.truiton.foregroundservice.action.main flg=0x10008000 cmp=com.guba.christian.quickfhem/.MainActivity} from uid 10117 on display 0
03-30 13:12:16.006 I/ThermalEngine(  241): Sensor:batt_therm:30600 mC
03-30 13:12:16.081 I/art     (  799): Background partial concurrent mark sweep GC freed 22693(1213KB) AllocSpace objects, 5(9MB) LOS objects, 33% free, 28MB/43MB, paused 2.953ms total 227.501ms
03-30 13:12:16.082 D/PhoneStatusBar( 1121): disable: < expand icons* alerts system_info* back home recent clock search quick_settings >
03-30 13:12:16.083 I/MemorizingTrustManager(12826): getAppKeyStore(/data/user/0/com.guba.christian.quickfhem/app_KeyStore/KeyStore.bks) - exception loading file key store
03-30 13:12:16.083 I/MemorizingTrustManager(12826): java.io.FileNotFoundException: /data/user/0/com.guba.christian.quickfhem/app_KeyStore/KeyStore.bks: open failed: ENOENT (No such file or directory)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at libcore.io.IoBridge.open(IoBridge.java:452)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at java.io.FileInputStream.<init>(FileInputStream.java:76)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at de.duenndns.ssl.MemorizingTrustManager.loadAppKeyStore(MemorizingTrustManager.java:330)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at de.duenndns.ssl.MemorizingTrustManager.init(MemorizingTrustManager.java:155)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at de.duenndns.ssl.MemorizingTrustManager.<init>(MemorizingTrustManager.java:133)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at com.guba.christian.quickfhem.MainActivity.onCreate(MainActivity.java:91)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at android.app.Activity.performCreate(Activity.java:6251)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at android.app.ActivityThread.-wrap11(ActivityThread.java)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at android.os.Handler.dispatchMessage(Handler.java:102)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at android.os.Looper.loop(Looper.java:148)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at android.app.ActivityThread.main(ActivityThread.java:5461)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at java.lang.reflect.Method.invoke(Native Method)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
03-30 13:12:16.083 I/MemorizingTrustManager(12826): Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at libcore.io.Posix.open(Native Method)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     at libcore.io.IoBridge.open(IoBridge.java:438)
03-30 13:12:16.083 I/MemorizingTrustManager(12826):     ... 17 more
03-30 13:12:16.406 I/ActivityManager(  799): Displayed com.guba.christian.quickfhem/.MainActivity: +484ms
03-30 13:12:16.452 E/Adresse (12826): com.android.okhttp.internal.huc.HttpURLConnectionImpl:<web url omitted>
03-30 13:12:17.368 W/System.err(12826): java.net.SocketTimeoutException: failed to connect to /192.168.0.101 (port 9085) after 900ms
03-30 13:12:17.374 W/System.err(12826):     at libcore.io.IoBridge.connectErrno(IoBridge.java:169)
03-30 13:12:17.374 W/System.err(12826):     at libcore.io.IoBridge.connect(IoBridge.java:122)
03-30 13:12:17.374 W/System.err(12826):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
03-30 13:12:17.374 W/System.err(12826):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:452)
03-30 13:12:17.374 W/System.err(12826):     at java.net.Socket.connect(Socket.java:884)
03-30 13:12:17.374 W/System.err(12826):     at com.android.okhttp.internal.Platform.connectSocket(Platform.java:117)
03-30 13:12:17.374 W/System.err(12826):     at com.android.okhttp.internal.http.SocketConnector.connectRawSocket(SocketConnector.java:160)
03-30 13:12:17.374 W/System.err(12826):     at com.android.okhttp.internal.http.SocketConnector.connectCleartext(SocketConnector.java:67)
03-30 13:12:17.374 W/System.err(12826):     at com.android.okhttp.Connection.connect(Connection.java:152)
03-30 13:12:17.374 W/System.err(12826):     at com.android.okhttp.Connection.connectAndSetOwner(Connection.java:185)
03-30 13:12:17.374 W/System.err(12826):     at com.android.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:128)
03-30 13:12:17.374 W/System.err(12826):     at com.android.okhttp.internal.http.HttpEngine.nextConnection(HttpEngine.java:341)
03-30 13:12:17.374 W/System.err(12826):     at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:330)
03-30 13:12:17.374 W/System.err(12826):     at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:248)
03-30 13:12:17.374 W/System.err(12826):     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:437)
03-30 13:12:17.374 W/System.err(12826):     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:388)
03-30 13:12:17.374 W/System.err(12826):     at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:231)
03-30 13:12:17.374 W/System.err(12826):     at Background_Prozesse.AsyncTestConnection.doInBackground(AsyncTestConnection.java:148)
03-30 13:12:17.374 W/System.err(12826):     at Background_Prozesse.AsyncTestConnection.doInBackground(AsyncTestConnection.java:44)
03-30 13:12:17.374 W/System.err(12826):     at android.os.AsyncTask$2.call(AsyncTask.java:295)
03-30 13:12:17.374 W/System.err(12826):     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
03-30 13:12:17.375 W/System.err(12826):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
03-30 13:12:17.375 W/System.err(12826):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
03-30 13:12:17.375 W/System.err(12826):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
03-30 13:12:17.375 W/System.err(12826):     at java.lang.Thread.run(Thread.java:818)
03-30 13:12:17.378 I/Process (12826): Sending signal. PID: 12826 SIG: 9
03-30 13:12:17.434 I/WindowState(  799): WIN DEATH: Window{1fe8786 u0 com.guba.christian.quickfhem/com.guba.christian.quickfhem.AllgemeinSettings}
03-30 13:12:17.434 D/GraphicsStats(  799): Buffer count: 6
03-30 13:12:17.435 D/ConnectivityService(  799): ConnectivityService NetworkRequestInfo binderDied(NetworkRequest [ id=420, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED] ], android.os.BinderProxy@cdb1f02)
03-30 13:12:17.435 D/ConnectivityService(  799): ConnectivityService NetworkRequestInfo binderDied(NetworkRequest [ id=419, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED] ], android.os.BinderProxy@a4b0013)
03-30 13:12:17.437 D/ConnectivityService(  799): releasing NetworkRequest NetworkRequest [ id=420, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED] ]
03-30 13:12:17.438 E/ConnectivityService(  799): RemoteException caught trying to send a callback msg for NetworkRequest [ id=420, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED] ]
03-30 13:12:17.438 D/ConnectivityService(  799): releasing NetworkRequest NetworkRequest [ id=419, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED] ]
03-30 13:12:17.439 E/ConnectivityService(  799): RemoteException caught trying to send a callback msg for NetworkRequest [ id=419, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED] ]
03-30 13:12:17.441 I/WindowState(  799): WIN DEATH: Window{8d3b84d u0 com.guba.christian.quickfhem/com.guba.christian.quickfhem.MainActivity}
03-30 13:12:17.541 I/ActivityManager(  799): Process com.guba.christian.quickfhem (pid 12826) has died
03-30 13:12:17.542 W/ActivityManager(  799): Scheduling restart of crashed service com.guba.christian.quickfhem/.ForegroundService in 1000ms
03-30 13:12:17.543 W/ActivityManager(  799): Force removing ActivityRecord{a156c11 u0 com.guba.christian.quickfhem/.MainActivity t130}: app died, no saved state
03-30 13:12:17.582 W/InputMethodManagerService(  799): Got RemoteException sending setActive(false) notification to pid 12826 uid 10117
03-30 13:12:18.557 I/ActivityManager(  799): Start proc 13626:com.guba.christian.quickfhem/u0a117 for service com.guba.christian.quickfhem/.ForegroundService
03-30 13:12:18.747 W/System  (13626): ClassLoader referenced unknown path: /data/app/com.guba.christian.quickfhem-2/lib/arm
Rasp 3
CUL V3 868Mhz + nanoCUL 868Mhz als RFR + nanoCUL 868Mhz für Homematic + SIGNALduino
Zigbee CC2531 - Aquara TempSensor
MySensors Ethernet Gateway, Water meter, Gas meter
Modul: 09_CUL_FHTTK.pm (assumed), culfw part HAS_FHT_TF

EpicMinister

Danke für den LogCat:)
Der Fehler ist sehr ungewöhnlich..
Steht vielleicht etwas im FHEM Log?
Sonst fällt mir nur ein: Neu installieren (Kannst ja vorher ein Backup tätigen:) ) oder eine /fhem an die URL anzuhängen.

LG
Christian

Rampler

Habe ledier noch ein paar Verständnissprobleme:
Ich habe einen Alarmanlagenaktivierungsbutton (toogle) definiert, dieser soll bei state "on" einen grünen Ring, und bei state "off" einen weißen Ring haben. Bei Text Off und On habe ich jeweils das definierte Reding %armed_status% hinterlegt.
Das Reading kann on ! off annehmen.
Was mir jetzt fehlt, ist die Definition das z. B bei "on" der Ring grün sein soll, und bei off oder allen anderen rot. Das funktioniert wohl, wenn ich über Quickfhem steuere, jedoch würde ich erwarten, dass Quickfhem den status abfragt, und dann die Farben entsprechend setzt.
Auch wären Button's welche nur zur Darstellung bestimmter Stati fungieren eine Super Sache. z.B. würde ich gerne sehen, ob alle Dachfenster zu sind, also ob eine Structure den Status all_closed hat.
Noch ein letzter Hinweis, warum denn nicht auf jede TAB oben rechts einen kleinen refresh icon einbauen, damit wäre dann die ganz Status-Update Geschichte gegessen ..
Ich persönlich brauche nicht alle x Minuten einen neuen Status, on demand wäre mir lieber..
bis denne
Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Matscher

Zitat von: EpicMinister am 30 März 2017, 15:11:32
Steht vielleicht etwas im FHEM Log?
Sonst fällt mir nur ein: Neu installieren (Kannst ja vorher ein Backup tätigen:) ) oder eine /fhem an die URL anzuhängen.

Es ist nichts im FHEM log.
Backup habe ich vorher gemacht :) und dann neuinstalliert. Leider das Gleiche Verhalten, auch wenn ich /fhem anhänge. :(
Rasp 3
CUL V3 868Mhz + nanoCUL 868Mhz als RFR + nanoCUL 868Mhz für Homematic + SIGNALduino
Zigbee CC2531 - Aquara TempSensor
MySensors Ethernet Gateway, Water meter, Gas meter
Modul: 09_CUL_FHTTK.pm (assumed), culfw part HAS_FHT_TF

EpicMinister

Hallo Klaus,
danke für das ganze Feedback!

Alarmknopf:
Den Buttonstatus über einen Reading zu definieren, ist leider nicht möglich. Readings sind aktuell nur Text. Quickfhem fragt zwar von sich aus nach dem aktuellen Status, dies funktioniert aber nur, solange das Reading mit dem Befehl identisch ist. Kleines Beispiel:

Befehl: set Licht on | set Licht off  (Reading: state )--> wird erkannt, da hier automatisch state genommen wird (zwischen "Licht" und "on" steht nichts)

Befehl: set Music mute on | set Music mute off (Reading: mute ) --> wird erkannt, da Reading und Befehl gleich sind (mute)

Befehl: set Alarm enable | set Alarm disable (Reading: alarm_status) --> wird nicht erkannt, da versucht wird "state" zu benutzen, dies aber nicht vorhanden ist.

Allerdings finde ich die Idee gut, das Reading zusätzlich zu definieren. Kommt auf meine ToDo.

Leider gibt es keinen weißen Ring. Nur grün (oder die Farbe die du zuweist) bei on und sonst nichts. Allerdings kannst du einen ausgemalt grünen Button bei on und ein weißen bei off haben.
Ich hoffe ich konnte ein wenig weiterhelfen:)

Statusbutton:
Wenn du keinen Befehl setzt und der Modus Button ist, kannst du in Text On einfach dein gewünschtes Reading eintragen. Der Button kann dann nichts weiter machen außer das Reading anzeigen.

Aktualisierung:
Die Idee ist gut, muss mal schauen wie sich das einbauen lässt (damits gut aussieht:) )


Hallo Matscher,
aktuell werde ich noch nicht schlau aus deinem Fehler..
Am Wochenende werde ich mir das nochmal durch den Kopf gehen lassen und versuchen eine Lösung zu finden.


LG
Christian

Matscher

Hi Christian,

danke Dir :) Wenn Du noch weitere Informationen brauchst, sag Bescheid.

Viele Grüße.
Rasp 3
CUL V3 868Mhz + nanoCUL 868Mhz als RFR + nanoCUL 868Mhz für Homematic + SIGNALduino
Zigbee CC2531 - Aquara TempSensor
MySensors Ethernet Gateway, Water meter, Gas meter
Modul: 09_CUL_FHTTK.pm (assumed), culfw part HAS_FHT_TF