FTUI - Aktuallisierung readingsgroup

Begonnen von SandroK, 09 Dezember 2016, 14:25:10

Vorheriges Thema - Nächstes Thema

setstate

Ich möchte ungern FHEMWEB und FTUI vermischen, deshalb bin ich auch kein Fan von Readinggroups im FTUI. Ich gebe zu, wenn man sich einmal die Arbeit im FHEMWEB gemacht hat, ist es nachvollziehbar, das einfach übernehmen zu wollen. Aber ich möchte da eine klare Trennung bewahren und keine FHEMWEB Funktionen nutzen müssen oder von dessen Objekte-Struktur (z.B. DOM ID) abhängig zu sein.  Es ist schon schade, dass man so große "Handstände" machen muss, um die longpoll Daten in 3rd Party UIs auswerten zu können, weil diese nicht generisch präsentiert werden, sondern einseitig auf die FHEMWEB  Anzeige angelegt ist. Eine klarere Datamodel - View Trennung wäre sehr begrüßenswert. Aber ein entsprechende Anfrage meinerseits stieß nur auf Unverständnis.

https://forum.fhem.de/index.php/topic,49898.msg416501.html#msg416501

justme1968

was die vermischung angeht: bei den kommandos und den widgets in der readingsGroup teile ich deine meinung. das sollte nicht unbedingt vermischt werden.

aber was das reine aktualisieren der readings angeht wäre es schön wenn du den patch (oder einen ähnlichen) übernehmen könntest.

einer der vorteile der readingsGroups sind die dynamischen inhalte. ich meine nicht nur die werte an sich, sondern auch den umfang der beteiligten devices. man kann übersichten über bestimmte readings und devices erzeugen ohne vorher zu wissen welche und wie viele devices es sein werden. wenn ein neues device dazu kommt wird es automatisch eingebunden. ohne im frontend etwas tun zu müssen. und das geht auch device übergreifend um z.b. die einzelnen channel von hm devices wieder zusammen zu führen. auch das (halb) automatsche anordnen vieler identischer readings in einem vorgegeben layout würde ich nicht unbedingt als fhemweb spezifisch sehen. so etwas für mehrere frontends immer wieder neu und dann natürlich auch mehr oder weniger unterschiedlich zu machen wäre für die anwender sehr unbefriedigend.

die ergänzungen in dem patch oben sind eigentlich minimal und auf das eine widget file beschränkt. auch die trennung von backend und frontendist meiner meinung nach nicht problematisch. die readingsGroup kann nicht die original id zur aktualisierung verwenden da die daten ja manipuliert werden. d.h. jedes element muss eine neue id bekommen die dann innerhalb der readingsGroup eindeutig ist. daran finde ich nichts unsauberes und ich würde es auch nicht als vermischung von fhemweb und ftui sehen. für jedes backend objekt das im frontend dargestellt werden soll braucht es eine eindeutige id um bei änderungen von werten im backend das zugehörige element im fronend zu identifizieren. bei 'normalen' devices sind das device und der reading name. bei 'künstlichen' readings die aus anderen abgeleitet sind braucht es ein anderes schema. wie diese id erzeugt wird sollte dem frontend egal sein so lange sie eindeutig ist und dem gleichen event schema folgt. die lonpoll events für die einträge einer readingsGroup sind prinzipiell identisch zu den events für 'normale' readings.

ich hätte auch lieber json als longpoll format, das würde es für homebridge und alexa einfacher machen. ich hatte auch schon einen patch für fhemweb gepostet der die kommunikation auf websockets und json umstellt und so das problem der voll laufenden buffer löst. dem obigen patch für die readingsGroup aktualisierung ist das format das innerhalb von longpoll verwendet wird aber völlig egal. wichtig ist nur die eindeutige id die jedes element bekommt.

die einzige unschönheit aus meiner sicht ist die oben angesprochene vermischung vom event für das reading und event für den timestamp in ftui. mir ist nicht klar warum die readings erst aktualisiert werden wenn das event für den timestamp gekommen ist.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

newby

Hallo,
ich habe das widget_Readingsgroup.js hochgeladen und fhem neugestartet,
trotzdem wird die Readingsgroup in der UI nicht aktualisiert.

Muss ich sonst noch was beachten???

SandroK

Hi

ging bei mir auch nicht gleich, bis ich dahinter gekommen bin, das ein gesetztes Attribut "nameStyle" dies verhindert.
Warum weiß ich auch nicht, setze ich dies nicht, wird sogar zur Echtzeit das Reading im FTUI
dargestellt/upgedatet, Parameter am Widget "max_update" scheint dort gar keine Rolle zu spielen :-)

Probiere mal

VG Sandro

newby

Ok!?
Habe NameStyle nicht in der RG mit drin nur Valuestyle, Cellstyle.
Hoffe das es nicht damit zusammenhängt, dann kann ich das ganze vergessen.
Ohne die Styles ist die RG nicht mehr zu gebrauchen.

max_update habe ich auch nicht werde ich aber spaßeshalber mal reinschreiben und hoffen das es dann geht.

Danke für die Info. Evtl. Kann ja der Entwickler was zu dem Phänomen sagen.

SandroK

Also es ist ein komischer Effekt, der Entwickler denke ich liest hier mit.

Ich war schon drauf und dran FTUI "abzusetzen", da dies nicht funktioniert.

Ich bin aber auch noch in der Findungsphase, bswl. ReadingHistory gehen auch "noch" nicht"
Befehle in readingsgroups gehen auch noch nicht, da scheiden sich die Geister :-)

Also probiers mal

hier mein HTML-Code:


<header>LaCrosse-Sensoren</header>
<div class="centered">
<div data-type="readingsgroup" data-device="rg_battery" data-get="STATE" data-max-update="60" class="darker"></div>
</div>


und die passende fhem-Zeilen:


define rg_battery readingsGroup .*:battery
attr rg_battery alias Batteriestatus
attr rg_battery mapping %ALIAS
attr rg_battery noheading 1
attr rg_battery nolinks 1
attr rg_battery room LaCrosse
attr rg_battery valueIcon {'battery.ok' => 'batterie@green', 'battery.low' => 'batterie@red'}


Dachte erst das es das mapping ist, war aber nicht. Ich habe noch ne Menge von Readinggroups zu testen (siehe Screenshot)


Viel Glück

Thorsten Pferdekaemper

Hi,
ich weiß, dass dieser Thread schon fast zwei Jahre alt ist, aber vielleicht interessiert's doch noch jemanden.
Ich habe gerade für FUIP eine neue Version des readingsgroup-Widgets gebaut. Diese Version bekommt mit, wenn sich Readings ändern (alwaysTrigger muss gesetzt sein). Außerdem kann man das mit den Kommandos hinbekommen.
Die Version wird mit FUIP ausgeliefert, müsste aber auch ohne FUIP gehen. Dazu müsste man die Datei widget_readingsgroup.js von <fhem>/FHEM/lib/FUIP/js in's übliche FTUI-Verzeichnis kopieren.
Falls man auch die Kommandos hinbekommen will, dann muss man noch irgendwie die Datei fuip_readingsgroup.js einbinden.
...oder gleich FUIP verwenden.
Gruß,
   Thorsten

FUIP

newby

Hi,
vielen Dank für das Update.
Habe es eben mal auf die schnelle umgesetzt. Es scheint auf Anhieb zu funktionieren.
Werde bei Gelegenheit mal das mit den Befehlen auch noch testen.

Gruß
Sven

myhome

Hi, finde das Widget für die readingsgroup kann gut. Habe das in einem Popup eingebaut, leider wird das idWget nicht aktualisiert. Auf der Standard Fhem Ansicht funktioniert es. Kann das an dem Popup liegen? Hat zuvor dort alle Devices einzelen gelistet, ging dann alles ziemlich zeitgleich, aber aufwendig Es würde mir langen, wenn man das Widget readingsgroup alle 10 .60 sec aktualisiert, aber es es aktulisiert nur nach einem Reload der Seite. (data-max-update zeigt keine Wirkung).
Kennt man das Problem?
Raspberry Pi4, Pi3 und Zero's, Homematic, Zigbee, WLAN, USB, One-wire für Wasser, Heizung und Rücklauftemp und alte F20 für den Garten, Messen GAS, Wasser, Strom, PV, weiteres

Thorsten Pferdekaemper

Zitat von: myhome am 20 März 2019, 13:18:34
Hi, finde das Widget für die readingsgroup kann gut. Habe das in einem Popup eingebaut, leider wird das idWget nicht aktualisiert. Auf der Standard Fhem Ansicht funktioniert es. Kann das an dem Popup liegen?
Verwendest Du das Original oder die FUIP-Version?
Gruß,
   Thorsten
FUIP

myhome

Das Readingsgroup habe ich in Fhem anlegt und wollte diese Readingsgroup dann auch unter FTUI in einem Popup anzeigen.
nach dem Schema wie es in WIKI beschreiben ist. Es wird auch anzeigt nur mit dem Update klappt es nicht unter FTUI in Fhem schon. Daher meine Vermutung, dass das re-reading nach Zeit im Popup nicht funktioniert. 
Raspberry Pi4, Pi3 und Zero's, Homematic, Zigbee, WLAN, USB, One-wire für Wasser, Heizung und Rücklauftemp und alte F20 für den Garten, Messen GAS, Wasser, Strom, PV, weiteres

myhome

Ein Frage; vielleicht habe ich da ein grundsätzliches Verständnisproblem.
Wird die Funktion "getTimeDiffDesc" und "getNewestTimestamp" unbedingt benötigt sowie die Implementierung in der readingsGroup damit das Update nach x sec funktioniert?  Kommt so nicht klar aus der Beschreibung hervor.
Ich probiere es einfach mal aus.  ;D
Raspberry Pi4, Pi3 und Zero's, Homematic, Zigbee, WLAN, USB, One-wire für Wasser, Heizung und Rücklauftemp und alte F20 für den Garten, Messen GAS, Wasser, Strom, PV, weiteres

myhome

Wer lesen kann ist klar im Vorteil ;D. Habe das widget von fuip nun verwendet und es funktioniert. Danke
Raspberry Pi4, Pi3 und Zero's, Homematic, Zigbee, WLAN, USB, One-wire für Wasser, Heizung und Rücklauftemp und alte F20 für den Garten, Messen GAS, Wasser, Strom, PV, weiteres

Migul47

Hi,

hab das so gemacht, wie hier beschrieben, es tut aber immer noch nicht wie es soll. Hab das Widget von FUIP nach FTUI kopiert und die Einstellungen angepasst.

Thorsten Pferdekaemper

Zitat von: Migul47 am 25 Mai 2019, 15:48:35
hab das so gemacht, wie hier beschrieben, es tut aber immer noch nicht wie es soll. Hab das Widget von FUIP nach FTUI kopiert und die Einstellungen angepasst.
"es tut nicht wie es soll" ist etwas unspezifisch. Was genau geht nicht?
Gruß,
  Thorsten
FUIP