FHEM Home Control (App für Windows 10 und Android)

Begonnen von kingmathers, 26 Februar 2016, 06:45:23

Vorheriges Thema - Nächstes Thema

kingmathers

Leider wird Windows Phone 8 nicht mehr unterstützt. Ich hatte mal eine ältere Version der App für Windows Phone 7 und 8, diese hat aber nicht jsonlist sondern eine eigens dafür geschrieben Funktion in FHEM benutzt.

Da ich (fast) alle meine Geräte auf Windows 10 aktualisieren konnte habe ich die Entwicklung aber eingestellt.

Die App ist noch im Store erhältlich und ich kann sie auch noch verteilen. Theoretisch werden Geräte zum Ein/Ausschalten und Heizungen (mit Änderung der gewünschten Temperatur) unterstützt, man muss aber für alles extra eine Funktion in FHEM schreiben.

Falls du Interesse hast bräuchte ich die Emailadresse deines Microsoft Accounts, ist aber wie gesagt eine ältere Version und es werden keine neuen Features mehr hinzukommen.
Raspberry Pi B+, FS20, 1-Wire, HM
FHEM Home Control (App für Windows 10): https://forum.fhem.de/index.php/topic,49891.0.html
FHEM Arduino Library: https://forum.fhem.de/index.php/topic,94093.0.html

kingmathers

Ich habe nochmal eine neue Version (0.0.29.0) in den Store hochgeladen. Die Zertifizierung läuft noch, es kann also noch 1-2h dauern bis das Update im Store gefunden werden kann.

Die Neuerungen stehen im Changelog im ersten Post. Ich habe jetzt bis auf die SVG-Plots wieder alle alten Features integriert.

Folgender Bug ist mir bekannt: Wenn ein Gerät geschaltet wird, wird der Status in der App nicht aktualisiert. Bei der Navigation zu den einzelnen Räumen werden die Geräte jeweils mit dem ursprünglichen Status geladen. Wenn ich also z.B. unter "all devices" ein Gerät einschalte und dann zu dem entsprechenden Raum gehe ist das Gerät da immer noch aus. Durch das umschalten wird nochmal der on-Befehl an FHEM gesendet.

Falls ihr Geräte habt die man so ein- und ausschalten könnte (oder Heizungen) würde ich mich freuen wenn ihr mir Namen bzw. Model nennt, dann kann ich versuchen die auch hinzuzufügen.

Viel Spaß beim Testen.
Raspberry Pi B+, FS20, 1-Wire, HM
FHEM Home Control (App für Windows 10): https://forum.fhem.de/index.php/topic,49891.0.html
FHEM Arduino Library: https://forum.fhem.de/index.php/topic,94093.0.html

Reinhart

Danke für die Info, wollte deine neue App nur zusätzlich damit testen.
Macht auch entwicklungstechnisch wenig Sinn die alten Dinge noch ewig zu berücksichtigen. Meines Wissens gibt es nicht viele Modelle der Lumias die auch das Update auf Win10 erhalten haben.

Für das Handy selbst habe ich mir eine Tablet-Ui gebastelt die auch sehr gut funktioniert, nur bin ich ohnehin kein Handy Freak und nutze dieses sehr selten.

Der klare Vorteil einer App ist in meinen Augen ja nur, das der Anwender sich um nichts kümmern braucht und diese ohne Eigenaufwand läuft weil einfach alles aus Fhem ausgelesen wird, bei einer Webgui muss er doch selbst Hand anlegen um zu einem Output zu kommen.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

#93
Zitat von: kingmathers am 04 August 2016, 20:55:02
Falls ihr Geräte habt die man so ein- und ausschalten könnte (oder Heizungen) würde ich mich freuen wenn ihr mir Namen bzw. Model nennt, dann kann ich versuchen die auch hinzuzufügen.

Ich steuere meine Heizung via eBus und benutze dazu den Device ECMD. In der App sieht es zwar so aus als würde es funktionieren, Fhem generiert aber einen Fehler.

2016.08.05 09:29:41 3: Pause1: HKurve 0.4
2016.08.05 09:29:43 3: Pause2: VorlaufSoll  22.0
2016.08.05 09:29:45 3: Pause3: VorlaufSoll  22.0
2016.08.05 09:29:47 3: get HeizkurveSchreiben HeizkurveSchreiben : HeizkurveSchreiben done

hier wurde der (Gruppenbefehl) in Fhem mit dem Sollwert "0.4" ordentlich abgesetzt.

2016.08.05 09:29:49 3: Pause1: HKurve 0.2
2016.08.05 09:29:52 3: Pause2: VorlaufSoll  22.0
2016.08.05 09:29:54 3: Pause3: VorlaufSoll  22.0
2016.08.05 09:30:12 1: EBUS: unexpected answer "usage: write [-d ZZ] -c CIRCUIT NAME [VALUE[;VALUE]*]\n  or:  write [-c CIRCUIT] -h ZZPBSBNNDx\n Write value(s) or hex message.\n  -d ZZ       override destination address ZZ\n  -c CIRCUIT  CIRCUIT of the message to send\n  NAME        NAME of the message to send\n  VALUE       a single field VALUE\n  -h          send hex write message:\n    ZZ        destination address\n    PB SB     primary/secondary command byte\n    NN        number of following data bytes\n    Dx        data byte(s) to send\n\n" received (wrote "write -c 430 Hc1HeatCurve state 0.40\n", expected .*\n\n)
2016.08.05 09:30:12 3: get HeizkurveSchreiben HeizkurveSchreiben : HeizkurveSchreiben usage: write [-d ZZ] -c CIRCUIT NAME [VALUE[;VALUE]*]
  or:  write [-c CIRCUIT] -h ZZPBSBNNDx
Write value(s) or hex message.
  -d ZZ       override destination address ZZ
  -c CIRCUIT  CIRCUIT of the message to send
  NAME        NAME of the message to send
  VALUE       a single field VALUE
  -h          send hex write message:
    ZZ        destination address
    PB SB     primary/secondary command byte
    NN        number of following data bytes
    Dx        data byte(s) to send

und hier der Versuch über die App. Irgendwie gefällt ihm hier die Befehlssysntax nicht die an die Funktion "get HeizkurveSchreiben HeizkurveSchreiben" übergeben wird.
Übergeben wird von der App: "write -c 430 Hc1HeatCurve state 0.40\n" und hier ist eindeutig das Wort "state" falsch und somit das ECMD Kommando falsch!
Ist auch irgendwie klar, weil hier der "state" gesetzt wird, somit geht dieser Text in die Befehlssyntax mit.

richtig wäre:
write -c 430 Hc1HeatCurve 0.40\n


# HeizkurveSchreiben
get HeizkurveSchreiben cmd {"write -c 430 Hc1HeatCurve ".Value("HeizkurveEinstellen")."\n"}
get HeizkurveSchreiben expect ".*\n\n"
get HeizkurveSchreiben postproc  { $_ }

zur Erklärung, so sieht die Perl Funktion aus an die übergeben und Value("HeizkurveEinstellen") ist der übergebene Sollwert.

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Reinhart

Hallo Philipp!

Danke, das du dir das anschauen willst, aber per PN kann ich keine Attachements anhängen,daher hier die komplette JsonList2.
In Fhem sieht das so aus wie im Bild und es geht um diesen Setlist Button.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

kingmathers

Hallo,

könntest du mal im Logfile nachsehen und mir ein Beispiel für einen richtigen Befehl (aus der Web UI) und dem falschen (aus der App) schicken?

Bzw. sehe ich das richtig dass die App "set HeizkurveEinstellen state 0.40" schickt aber es eigentlich "set HeizkurveEinstellen 0.40" heißen müsste?
Raspberry Pi B+, FS20, 1-Wire, HM
FHEM Home Control (App für Windows 10): https://forum.fhem.de/index.php/topic,49891.0.html
FHEM Arduino Library: https://forum.fhem.de/index.php/topic,94093.0.html

Reinhart

#96
Ja korrekt, genau so ist es!

Logfile sieht die du beiden weiter oben, einmal mit Fhem abgesetzt und einmal mit der App.
Die Pause ist nur weil ich dann anschließend den Vorlaufsoll des eBus neu einlese und das muss ich 2x machen weil es etwas dauert bis der Bus der Therme reagiert.

LG
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

kingmathers

Ok da bin ich im Moment leider etwas überfragt. jsonlist liefert folgendes Ergenis:


"Name":"HeizkurveEinstellen",
"PossibleSets":"state:0.20,0.40,0.50,0.60,0.70,0.80,0.90,1.00,1.10,1.20,1.30,1.40,1.50,1.60,1.70",


Meine App interpretiert es dann so dass der Befehl "state" lautet und die Argumente dahinter aus einem Dropdown Menu gewählt werden können. Bei den meisten anderen devices funktioniert es auch so, daher kann ich das schlecht anders interpretieren.

Funktioniert das denn richtig in anderen Apps (iOS/Android)?

Ich erkenne leider keine Regel wann ich "state" senden sollte und wann nicht, wenn ich es nicht sende funktioniert z.B. das Einstellen einer gewünschten Temperatur bei vielen Heizungen nicht mehr. Dort steht in jsonlist folgendes:


"PossibleSets":"desired-temp:on,off,6.0,6.5,7.0,7.5, ....


Erkennt sonst irgendjemand da ein System?

Eine Möglichkeit die ich eh noch überlegt hatte ist, dass ich einfach eine leere Zeile einfüge wo man dann selbst jeden set-Befehl eintippen kann. Dann gibt es aber natürlich auch kein Dropdown Menü und es gibt keinen großen Vorteil gegenüber der Web UI.

LG
Raspberry Pi B+, FS20, 1-Wire, HM
FHEM Home Control (App für Windows 10): https://forum.fhem.de/index.php/topic,49891.0.html
FHEM Arduino Library: https://forum.fhem.de/index.php/topic,94093.0.html

Reinhart

Danke Philipp, dann versuche ich das Problem in Perl zu lösen und filtere "state" weg.
Es macht ja wenig Sinn was für eine Sache zu ändern und alle anderen SetList funktionieren dann nicht mehr!

In Fhem fällt das deswegen nicht auf, weil ich mit dem Attribut stateFormat den Text wegfiltere, sonst hätte ich da dasselbe Problem. Es ist außerdem so, das ja die Steuerung automatisch läuft und händisch ja nur ganz selten was verstellt wird.

attr HeizkurveEinstellen setList state:0.20,0.40,0.50,0.60,0.70,0.80,0.90,1.00,1.10,1.20,1.30,1.40,1.50,1.60,1.70
attr HeizkurveEinstellen stateFormat state

stateFormat wirkt hier als Text Filter, das Vorhandensein von "stateFormat" wäre eigentlich die einzige Regel wann "state" gesendet werden soll und wann nicht. Es muss außerdem ja nicht "state" sein, das kann ja jeder beliebige Text sein welcher in SetList definiert wurde.

LG
Reinhart

FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

kingmathers

OK das wäre natürlich am besten wenn du es so lösen kannst.

Ich habe nun noch eine neue Version im Store veröffentlich (0.0.30.0). Es werden unter "all devices" nun auch Geräte angezeigt denen kein Raum zugeordnet ist. Außerdem werden nun alle Geräte immer alphabetisch sortiert.

Wenn ein Gerät nun innerhalb der App umgeschaltet wird bleibt der Status in der App erhalten. Wenn ich also z.B. ein Gerät unter "all devices" einschalte und dann auf den entsprechenden Raum gehe ist das Gerät da auch an. Dies war vorher nicht der Fall.

Bei Heizungen wird die gemessene Temperatur nun rot oder blau dargestellt wenn sie mehr als 1 Grad von der gewünschten Temperatur abweicht. Außerdem wird auch HM-CC-RT-DN unterstützt und es wird angezeigt wenn die Heizung ausgeschaltet ist.

Grüße und viel Spaß beim ausprobieren
Raspberry Pi B+, FS20, 1-Wire, HM
FHEM Home Control (App für Windows 10): https://forum.fhem.de/index.php/topic,49891.0.html
FHEM Arduino Library: https://forum.fhem.de/index.php/topic,94093.0.html

Reinhart

Hallo Philipp!

Habe die 0.0.30 etwas getestet und deine zusätzlich eingebauten Features funktionieren auch bei mir soweit.

Mit der Sortierung komme ich nicht ganz klar nach was für Kriterien hier sortiert wird (Bild1), da ich hier kein Schema entdecken kann warum manches nicht sortiert angezeigt wird.
Vorschlag, vielleicht wäre es für den User von Vorteil, unter "Settings" einen Schalter für sortieren oder nicht vorzusehen, denn nicht immer bringt die Sortierung auch wirklich Vorteile mit sich.

Die Einfärbung bei den HM Thermostatten funktioniert prima und schaut auch gut aus, geht das bei den FS20 (FHT80b) auch nach dem gleichem Schema und das auch der Actuator angezeigt wird? Siehe Bild2+3

LG
Reinhart

FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

kingmathers

Die Sortierung sollte nach Namen (nicht Alias) erfolgen. Ich möchte später noch das group-Attribut zur Sortierung verwenden. Wenn ich die Sortierung deaktiviere ändert sich die Reihenfolge leider bei jedem Aufruf eines Raums bzw. all devices, so dass ich die schon gerne drin lassen würde. Ich gucke aber mal ob ich die Geräte nicht nach Alias sortieren kann bzw. das group-Attribut verwenden kann.

FHT80b sollte schon funktionieren, das model-Attribut muss aber richtig auf "fht80b" gesetzt sein.

LG
Philipp
Raspberry Pi B+, FS20, 1-Wire, HM
FHEM Home Control (App für Windows 10): https://forum.fhem.de/index.php/topic,49891.0.html
FHEM Arduino Library: https://forum.fhem.de/index.php/topic,94093.0.html

kingmathers

Verwendet jemand SSL oder BasicAuth und könnte mal testen ob mit der App Set-Befehle oder direkt das Umschalten aus der Übersicht funktioniert?

Ich kann es bei mir leider nicht selbst testen.

Grüße,

Philipp
Raspberry Pi B+, FS20, 1-Wire, HM
FHEM Home Control (App für Windows 10): https://forum.fhem.de/index.php/topic,49891.0.html
FHEM Arduino Library: https://forum.fhem.de/index.php/topic,94093.0.html

Reinhart

Zitat von: kingmathers am 07 August 2016, 19:49:14
FHT80b sollte schon funktionieren, das model-Attribut muss aber richtig auf "fht80b" gesetzt sein.

Ja, hat gepasst. Ich habe nicht gewusst dass das Model hier eine Rolle spielt, habe das Attribut gesetzt und alles funktioniert.

Kann die Authentifizierung leider nicht testen, habe VPN zu Fhem (ins Netzwerk) eingerichtet.

LG

FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

TSCH

Hallo,

würdei die App auch gerne testen. Es ist nicht zufällig gleich ein OpenVPN-Client enthalten?

Wäre ideal für die vorgesehene Nutzung auf einem Win-Mobile.

Vielen  Dank schonmal vorab.