Neues Frontend: FhemNative Updates

Begonnen von Syrex-o, 16 Juli 2019, 14:50:24

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Erst in FHEM MQTT2_SERVER definieren, und danach MQTT_GENERIC_BRIDGE.

marvin78


gloob

Ein paar Bilder als Demo wären schön. So ist das ganze hier doch recht trocken.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Syrex-o

Zitat von: rudolfkoenig am 18 Juli 2019, 06:43:44
Erst in FHEM MQTT2_SERVER definieren, und danach MQTT_GENERIC_BRIDGE.

Gesagt getan.
Nun die Frage:
Alle devices in einem Topic macht wenig Sinn.

Aktuell handelt FhemNative alle Events folgendermaßen:
- Beim Start der App werden alle devices aus Fhem geladen und als Referenzliste gespeichert.
- Jede Komponente meldet sich dann zum subscriben an. So muss nur die Werte des genutzten devices gehört werden.

Wie könnte man etwas ähnliches mit MQTT realisieren.
Das ist mir noch nicht klar.

ZitatEin paar Bilder als Demo wären schön. So ist das ganze hier doch recht trocken.
Die sind doch alle im GitHub Repo.
Ich könnte eine deutsche Doku hier posten und eine englische auf GitHub?

Grüße

ThomasMagnum

Hallo Syrex-o,

ich habe heute Morgen mal versucht die Verbindung FHEM / APP zum Laufen zu bekommen - leider erfolglos.
Ich habe die Anleitung im Github befolgt und habe, da der Port 8080 sch0n belegt ist, diesen abgeändert.

Jetzt schreibst du ja weiter oben das die Websocket Verbindung noch nicht funktioniert. Wo kann ich noch Hand anlegen um die Verbindung zu FHEM herzustellen?
Als "Toastmeldung" kommt immer "conection timeout".

Vielen Dank schon mal für deine Tipps.

Gruß, Thomas

Syrex-o

Hallo Thomas,

Aktuell ist 8080 noch Pflicht.
Nach dem ändern ist shutdown restart notwendig.
Anderenfalls kann keine Verbindung hergestellt werden.
Andere Ports sollten per wss funktionieren, sobald ich rausbekommen habe, wie das funktioniert  ::)

ZitatJetzt schreibst du ja weiter oben das die Websocket Verbindung noch nicht funktioniert. Wo kann ich noch Hand anlegen um die Verbindung zu FHEM herzustellen?
Als "Toastmeldung" kommt immer "conection timeout".

Es funktioniert nur keine Secure Websocket Verbindung.

Liebe Grüße

hsepm

#21
Zitat von: Syrex-o am 17 Juli 2019, 18:40:39
Hallo hsepm,

Ich habe bisher noch nichts mit MQTT gemacht. Daher kann ich das nicht so einfach sagen.
Was hast du denn gegen Websockets?

Ich habe in der aktuellen Variante noch nie einen spürbaren Abbruch gesehen.

Liebe Grüße

Hallo Syrex-o, ich habe nichts gegen websockets :D. Alles, was ich sagen kann ist, dass ich mit Tablet UI keine Langzeitstabilität i.V.m. Android-Tablets hinbekommen habe. Irgendwann wird das Tablet träge und zeigt nicht mehr den aktuellen Stand. Mir ist nicht klar, ob das an Android liegt oder an FHEM oder an websockets.

MQTT scheint mir hier Vorteile zu haben, aber das ist auch nur so ein Gefühl.

Ein weiterer Vorteil wäre die fhem-unabhängige Kommunikation mit MQTT-fähigen Geräten im lokalen Netzwerk, z.B. über mosquitto. Bei mir z.B. Shellies oder mein MQTT-enabled Doorpi.

marvin78

Zitat von: hsepm am 18 Juli 2019, 14:52:45


Ein weiterer Vorteil wäre die direkte Einbindung von MQTT-fähigen Geräten im lokalen Netzwerk. Bei mir z.B. Shellies oder mein MQTT-enabled Doorpi.

Was wäre der Vorteil bei einem "Frontend" für FHEM?

Syrex-o

Zitat von: hsepm am 18 Juli 2019, 14:52:45
Hallo Syrex-o, ich habe nichts gegen websockets :D. Alles, was ich sagen kann ist, dass ich mit Tablet UI keine Langzeitstabilität i.V.m. Android-Tablets hinbekommen habe.

Was heißt für dich langzeit.
Ist das Tablet die ganze Zeit an und muss die Verbindung halten?
Wird es immer in Ruhezustand versetzt?
Oder die allgemeine Performance je länger FHEM aktiv ist?

Grüße

Syrex-o

Ich würde gern die Websocket von FHEMWEB ebenfalls unterstützen.
Leider bekomme ich keinen einzigen Befehl abgesetzt.

Gibt es da eine Syntax?
Ich habe nichts gefunden.

P.S. Verbindung steht schon.

Grüße

hsepm

Zitat von: Syrex-o am 18 Juli 2019, 15:05:18
Was heißt für dich langzeit.
Ist das Tablet die ganze Zeit an und muss die Verbindung halten?
Wird es immer in Ruhezustand versetzt?
Oder die allgemeine Performance je länger FHEM aktiv ist?

Grüße

Das Android-Tablet hängt als Steuerungs- und Informationszentrale an der Wand. Es kann also jederzeit passieren, dass ein Benutzer eine Information abfragen oder irgendwas steuern möchte, Tag und Nacht. Bei Nichtbenutzung wird es so weit wie möglich gedimmt (Brightness minimum und Screensaver schwarz), aber im Prinzip ist es bei mir immer "an" und hält die Verbindung. Ich habe dem Tablet sogar eine eigene SSID spendiert und das WLAN-hopping ausgetrieben.

Langzeit heißt in diesem Zusammenhang also mehrere Tage am Stück oder länger. Natürlich könnte man die App um 2:00 Uhr täglich neustarten.

Syrex-o

ZitatDas Android-Tablet hängt als Steuerungs- und Informationszentrale an der Wand. Es kann also jederzeit passieren, dass ein Benutzer eine Information abfragen oder irgendwas steuern möchte, Tag und Nacht. Bei Nichtbenutzung wird es so weit wie möglich gedimmt (Brightness minimum und Screensaver schwarz), aber im Prinzip ist es bei mir immer "an" und hält die Verbindung. Ich habe dem Tablet sogar eine eigene SSID spendiert und das WLAN-hopping ausgetrieben.

OK verstehe.
Also die websocket Verbindung wird sowieso nach einer gewissen Zeit getrennt. Bei mir wird dann ein reconnect eingeleitet und alle Daten werden aktualisiert.

Probier es doch einfach mal aus.
Würde mich auch interessieren, was passiert.

Grüße

Gorbi

Moin,

erstmal vielen Dank für die bis jetzt schon tolle App. Endlich eine vernünftige einfache Möglichkeit Fhem vom Smartphone zu steuern. Hab das ganze gestern mal eingerichtet und es funktionierte alles auf anhieb nachdem ich mein ganzes System  etwas umgestellt habe um den Port 8080 freizuschaufeln. 1-2 Dinge sind mir aufgefallen.


  • Der normale Slider macht bei mir Probleme, hab ein MQTT Device (Lampe) mit reading Brightness von 1-254 hinterlegt. Sobald ich den Slider betätige wird der Wert auch übertragen. Allerdings fähr danach der Sliderbalken scheinbar ins unendliche nach rechts und das bei jeder änderung erneut. Beim Circle Slider funktioniert alles normal
  • Beim Circle-Slider ist das Label und Reading nicht mittig sondern leicht nach rechts versetzt.
  • Es wäre schön noch eine Komponente zu haben um einfach einen Wert aus Fhem darzustellen zB als Label. In meinem Fall die Ist-Temperatur vom Thermostat.Oder das ganze irgendwie mit in die Thermostat Komponente mit einzubauen

Ansonsten gefällt mir das alles schon richtig gut. Vielen Dank!

Syrex-o

Zitaterstmal vielen Dank für die bis jetzt schon tolle App. Endlich eine vernünftige einfache Möglichkeit Fhem vom Smartphone zu steuern. Hab das ganze gestern mal eingerichtet und es funktionierte alles auf anhieb nachdem ich mein ganzes System  etwas umgestellt habe um den Port 8080 freizuschaufeln. 1-2 Dinge sind mir aufgefallen.

Ich danke dir für das erste richtige Feedback.
Das alles läuft freut mich schon mal sehr.

Zu den Punkten:
ZitatDer normale Slider macht bei mir Probleme, hab ein MQTT Device (Lampe) mit reading Brightness von 1-254 hinterlegt. Sobald ich den Slider betätige wird der Wert auch übertragen. Allerdings fähr danach der Sliderbalken scheinbar ins unendliche nach rechts und das bei jeder änderung erneut. Beim Circle Slider funktioniert alles normal
Hast du den max Wert auf 254?
Falls ja, dann liegt es sicher an einem Logikfehler bei Werten über 100 (hab ich noch nie probiert gehabt).

ZitatBeim Circle-Slider ist das Label und Reading nicht mittig sondern leicht nach rechts versetzt.
Steht schon auf meiner Liste. Habe ich gestern auch bemerkt. Wird behoben  ;D

ZitatEs wäre schön noch eine Komponente zu haben um einfach einen Wert aus Fhem darzustellen zB als Label. In meinem Fall die Ist-Temperatur vom Thermostat.Oder das ganze irgendwie mit in die Thermostat Komponente mit einzubauen
Kein Problem. Kommt beim nächsten Update mit in die Label Komponente.

Grüße

rudolfkoenig

ZitatIch würde gern die Websocket von FHEMWEB ebenfalls unterstützen.
Leider bekomme ich keinen einzigen Befehl abgesetzt.
Das ist kein Wunder: websocket in FHEMWEB wird bisher ausschliesslich fuer die Benachrichtigung verwendet, Befehle werden nicht ausgewertet.
Ich setzte auf mein TODO das zu aendern, und werde hier in diesem Thread und in Ankuedigungen Bescheid geben.


ZitatAktuell handelt FhemNative alle Events folgendermaßen:
- Beim Start der App werden alle devices aus Fhem geladen und als Referenzliste gespeichert.
- Jede Komponente meldet sich dann zum subscriben an. So muss nur die Werte des genutzten devices gehört werden.

Wie könnte man etwas ähnliches mit MQTT realisieren.
Eine Abfrage ala jsonlist2 aller Geraete per MQTT ist (mW z.Zt.) in FHEM nicht implementiert, ob das sinnvoll ist, bin ich unsicher.
D.h. zunaechst bleibt es beim "alten" jsonlist2 oder xmllist per TCP(aka telnet) oder HTTP.
MQTT_GENERIC_BRIDGE bietet (nach passende Konfiguration) eine Benachrichtigung bei Aenderungen in beide Richtungen an.


Zitat- Jede Komponente meldet sich dann zum subscriben an. So muss nur die Werte des genutzten devices gehört werden.
Was genau ist damit gemeint?