Hauptmenü

FHEM App - Manage your Home

Begonnen von Gisbert, 12 März 2021, 15:05:20

Vorheriges Thema - Nächstes Thema

moskito

ZitatWas genau muss man in der FHEM Kommandozeile eintippen, damit appOptions richtig angelegt wird? Ich habe das damals direkt im Device "global" unter den Attributen erweitert.
Du müsstest nur deutlicher machen, dass das userattribut an die bestehenden angehängt werden muss. Man kann z.B. mit
displayattr global userattr
sich die bestehenden anzeigen lassen.
Mit dem Beispiel auf Github ersetzt man bestehende userattribute und der Schlamassel geht los.
Da FHEM App ja nicht "definiert" werden muss in FHEM, gibt es für dich meiner Meinung nach keinen Ansatzpunkt um das ändern des Attributes zu automatisieren.

Gruß
Danny
FHEM auf Intel NUC/Proxmox & Debian 12 + HM-CFG-USB + zigbee2mqtt + Zwave + Enocean

jemu75

#241
Zitat von: gvzdus am 28 März 2021, 21:43:01
Bitte guck' Dir doch noch meine anderen Postings an, vor allem zum Mapper - das deckt sich ja mit Punkt 4. Welche Hilfe brauchst Du? Konzeption oder die "Device-Maloche"?

Thema Mapping

Der Status quo sieht wie folgt aus:
Es gibt ein Standard-Template, in dem alle Elemente frei konfiguriert werden können. D.h. man kann in dem Template Readings/Attribute/Internals aus einem oder mehreren FHEM-Devices zur Anzeige bringen. Jedes Reading/Attribut/Internal kann auf bestimmte Werte geprüft werden um damit die Eigenschaften des jeweiligen Elementes (z.B. Icon, Farbe, angezeigter Text, FHEM-Kommando) zu beeinflussen. Die Konfiguration kann entweder über appOptions oder über separate Template-Files erfolgen.

Lösung
In appOptions soll nur definiert werden, welche Art Template mit dem Device verknüpft werden soll. (z.B. "dimmer) und FHEMApp erkennt um welchen Hersteller es sich handelt und greift dann auf ein passendes (verfügbares) Template via Mapping zu. Habe ich das richtig verstanden?

jemu75

#242
Zitat von: moskito am 28 März 2021, 22:42:48
Du müsstest nur deutlicher machen, dass das userattribut an die bestehenden angehängt werden muss. Man kann z.B. mit
displayattr global userattr
sich die bestehenden anzeigen lassen.
Mit dem Beispiel auf Github ersetzt man bestehende userattribute und der Schlamassel geht los.
Da FHEM App ja nicht "definiert" werden muss in FHEM, gibt es für dich meiner Meinung nach keinen Ansatzpunkt um das ändern des Attributes zu automatisieren.

Gruß
Danny

Danke Dir für den Hinweis. Wichtig ist, wie du schon schreibst, dass man das userattr ergänzt ohne dabei alle anderen zu "eliminieren". :)
Ich habe die README.md jetzt wie folgt angepasst. siehe

gvzdus

Moin, also zum "userattr" aka "Ehefrieden"-Punkt:

Würde ich anders formulieren:

Unter "Everything" in FHEM "global" aufrufen. Wenn bereits ein Attribut "userattr" existiert: Anklicken, und vorne "appOptions:textField-long " einfügen (und dann auf "attr" klicken).

Ansonsten "attr global userattr appOptions:textField-long" als Kommando in FHEM absetzen.

So sollte es DAU-kompatibel sein.

Risiko

Zitat von: jemu75 am 28 März 2021, 21:20:18
Soweit zu Deinen Fragen - melde dich gern, wenn was offen geblieben ist.  :)

Vielen Dank für die ausführliche Antwort. Reicht mir  :)

gvzdus

#245
ZitatZu Pkt. 3) Das ist nicht "mein" JSON-Parser sondern die Javascript Funktion JSON.parse()  ;) Das JSON-Format wird genau so verarbeitet, wie hier beschrieben. Jedoch validiere ich die "JSON-Pakete" im Moment noch nicht. Andere User sind auch schon über diesen Punkt "gestolpert". Ich werde deshalb eine grobe Validierung einbauen.  :)

Nee, geht um Folgendes:

Du hast folgende Filter, die Du gegen FHEM wirfst:
src/views/Devices.vue:          fltr = 'appOptions=.*' + parts[0].replace('=', '.:..') + '.*';
src/views/Devices.vue:      if(this.$route.name == 'Dashboard') fltr = 'appOptions=.*dashboard.:..true.*';
src/views/Devices.vue:      if(this.$route.name == 'System') fltr = 'appOptions=.*system.:..true.*';
src/views/Devices.vue:      if(this.$route.name == 'Home') fltr = 'appOptions=.*home.:..true.*';

Die gehen ziemlich stumpf davon aus, dass die Benutzernase in appOptions die Syntax:
"name": "value"
eingehalten hat. Es ist aber auch legales JSON, etwas wie:

"name":"value"
"name":      "value"
"name"     :"value"

zu schreiben. Ich hatte die erste Form gewählt, wähnte mich als anständiger Benutzer, und musste erst mal die Calls auswerten, um zu verstehen, was ich falsch gemacht hatte. Mein Vorschlag wäre, da sauberer zu filtern. Etwa (ungetestet!!) so:
fltr = 'appOptions=.*' + parts[0].replace('=', '"\s*:\s*"') + '.*';

NecDd

Zitat von: jemu75 am 28 März 2021, 22:11:57
Hello Nec,

thanks for your feedback and sorry that all discussions and explanations for the app are in german ;)
At the Moment it isn't possible to change the language in the App. But it is a important feature and with "i18n" a solution is possible.

best regards Jens

Thx for taking time to reply.
If I can help you with the translation, let me know.

Regards,
Nec

octek0815

Zitat von: jemu75 am 28 März 2021, 14:51:55
Ich habe die v3.3.4 eben freigegeben. Die Devices sollten jetzt alle wieder angezeigt werden.  :)

Besten Dank für die schnelle Behebung!

Grüße
Oliver

tomspatz

#248
ZitatIch habe die v3.3.4 eben freigegeben. Die Devices sollten jetzt alle wieder angezeigt werden.

hmmmm bei mir ist mt 3.3.4 alles leer  :-[
wie auch bei der 3.3.3 zurück auf 3.3.2 ist wieder OK

Jamo

ZitatIch habe mir eben noch mal den Sourcecode angesehen. Meiner Meinung nach müsste das bereits so funktionieren.
Wenn Räume oder Gruppen aus FHEM auftauchen, dann gibt es meiner Meinung nach Devices, bei denen in appOptions die Parameter room bzw. group fehlen.
In dem Fall greift FHEMApp dann auf die besagten FHEM Attribute zurück.
Ja, das funktioniert so. Danke

Die v3.3.4 läuft bei mir klaglos - Nur zur Info, weil der Vorredner sagte es wären alles Devices verschwunden.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

tomspatz

#250
ja tatsächlich bei mir sieht es aus als ob NICHTS konfiguriert worden ist komplett leer.
Auch verschiedene Browser und Geräte ausprobiert, sobald ich die 3.3.2 draufbügel alles wieder da ???

könnte es daran liegen das ich im cfg Verzeichnis schon eigene templates liegen habe ? NEIN soeben probiert.

das fhemapp Verzeichnis GELÖSCHT, browser aufruf NIX -> OK
3.3.4 kopiert, browser Aufruf -> leeres FHEMApp

fhem Verzeichnis gelöscht -> 3.3.2 kopiert OK

Was stimmt denn bei mir nicht

jemu75

Zitat von: tomspatz am 29 März 2021, 13:17:32
ja tatsächlich bei mir sieht es aus als ob NICHTS konfiguriert worden ist komplett leer.
Auch verschiedene Browser und Geräte ausprobiert, sobald ich die 3.3.2 draufbügel alles wieder da ???

könnte es daran liegen das ich im cfg Verzeichnis schon eigene templates liegen habe ? NEIN soeben probiert.

das fhemapp Verzeichnis GELÖSCHT, browser aufruf NIX -> OK
3.3.4 kopiert, browser Aufruf -> leeres FHEMApp

fhem Verzeichnis gelöscht -> 3.3.2 kopiert OK

Was stimmt denn bei mir nicht

Das ist echt merkwürdig. Zumal es zwischen Version 3.3.2 und 3.3.4 keine grundlegenden Veränderungen gab. Wo hast du deine eigenen Tempates abgelegt? In separaten Dateien oder in der config.json?

tomspatz

in seperaten Dateien, aber selbst wenn ich den ganzen fhemapp Ordner LÖSCHE, inkl. meinen tepl. und dann 3.3.4 OHNE meine templ. wieder hineinkopiere, bleibt "es" leer

octek0815

Zitat von: tomspatz am 29 März 2021, 16:09:29
in seperaten Dateien, aber selbst wenn ich den ganzen fhemapp Ordner LÖSCHE, inkl. meinen tepl. und dann 3.3.4 OHNE meine templ. wieder hineinkopiere, bleibt "es" leer

Browser Cache geleert? War bei mir jedenfalls so.

VG
Olli

tomspatz

#254
ZitatBrowser Cache geleert? War bei mir jedenfalls so.

Ja auch verschiedene Geräte, Auch das grüne Verbindungssymbol fehlt.

HA HA HA selber gefunden

VORHER musste ich die config.json NICHT bearbeiten ! Jetzt ab scheinbar 3.3.3 MUSS wieder die IP zum fhem drinstehen.

Das war doch schon mal geändert.