[PATCH] FHEMWEB/FLOORPLAN: longpoll für dropdown

Begonnen von Matthias Gehre, 20 Januar 2013, 12:27:13

Vorheriges Thema - Nächstes Thema

Matthias Gehre

Hallo,

angehängter Patch erlaubt das Aktualisieren des ausgewählten Elements von Dropdown-Boxen (z.b. zur Auswahl der desiredTemp)
per Longpoll. Bisher ist dies ja nur für das Aktualisieren von Bildern möglich.

D.h. wenn ich im Browser FHEMWEB oder FLOORPLAN offen habe, und dann über einen andere Weg die desiredTemp ändere,
wird das über Longpoll auch sofort im Browser sichtbar.

Der größte Teil des Patches fügt dem FW_Select ein neues Argument hinzu. Dies beschreibt den Wert des "id" Attributes
des select HTML-tags. In den Aufrufen von FW_Select wird das dann aber nur für Readings benutzt.

Zusätzlich wird fhemweb.js aktualisiert, sodass es bei Aktualisierung eines Readings das dazugehörige Element sucht
(anhand des id Attributes). Und falls das ein select ist, den ausgewählten Wert aktualisiert.

Viele Grüße,
Matthias

rudolfkoenig

Habs fuer FHEMWEB eingespielt.
Leichte Aenderungen:
- Daten fuer Readings im gleichen Format (auch 3 Spalten)
- Detail-Ansicht-Readings haben passende IDs bekommen, damit erfolgt per longpoll auch das update der Readings.

Fehlt: update vom slider bzw. Zeitanzeige.

Patch fuer FLOORPLAN sollte von Uli eingespielt werden.

UliM

Zitat von: rudolfkoenig schrieb am Mo, 21 Januar 2013 21:27Patch fuer FLOORPLAN sollte von Uli eingespielt werden.
Done gemäß obigem patch, Rev 2547

Zitat von: rudolfkoenig schrieb am Mo, 21 Januar 2013 21:27- Daten fuer Readings im gleichen Format (auch 3 Spalten)
- Detail-Ansicht-Readings haben passende IDs bekommen, damit erfolgt per longpoll auch das update der Readings.
Update von readings noch nicht nachgezogen. muss ich mir mal anschauen, kann ne Weile dauern.

Gruß,
Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

UliM

Zitat von: rudolfkoenig schrieb am Mo, 21 Januar 2013 21:27- Daten fuer Readings im gleichen Format (auch 3 Spalten)
- Detail-Ansicht-Readings haben passende IDs bekommen, damit erfolgt per longpoll auch das update der Readings.
Hi Rudi,
zwei Fragen noch:
1. Ist nur die ID der Form id="<device>-<reading>" relevant, oder auch die umschliessende Klasse class="dname" zwingend?
2. Reicht der Reading-Wert selbst, oder muss zwingend auch ein passendes id="<device>-<reading>-ts" vorhanden sein?
2a ;-) Sonst noch etwas Spezielles zu beachten?

Danke+Gruß,
Uli

RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

rudolfkoenig

FHEMWEB generiert beim longpoll dank den Patch von Matthias nicht nur den Statusaenderung, sondern schickt alle Readings mit "<devname>-<readingname>" und "<devname>-<readingname>-ts" (letzteres fuer timestamp) mit.
Weiterhin werden im Detailfenster die ReadingsWerte und Timestamps in einem div mit passenden id eingeschlossen.
Damit findet fhemweb.js ohne Aenderung die zu aendernde Werte und tauscht diese aus.

Neu dabei in fhemweb.js: falls im gesuchten id ein "-" vorkommt, dann wird die Klasse "changed" gesetzt, damit erscheinen geaenderte Werte rot im Detailfenster.

Also:
1. nein
2. ja/nein

Matthias Gehre

Kann der Trenner "-" eigentlich im Gerätenamen oder Readingnamen vorkommen? Darüber hatte ich mir beim Patchschreiben gar keine Gedanken gemacht.

rudolfkoenig

Im Geraetenamen nicht, im Reading schon. Sollte aber kein Problem sein.

UliM

Zitat von: rudolfkoenig schrieb am Mi, 23 Januar 2013 10:03"<devname>-<readingname>"
Danke!
Hab's jett mal eingebaut, funktioniert bestens.
Der unangenehme Nebeneffekt ist, dass die css-Formatierungen angepasst werden müssen, da sich die id ändert.
Hab auch mal id="<devname> <devname>-<readingname>" zu setzen, dann funktionieren aber leider Aktualisierung und Formatierung nicht mehr.

Werd's bei mir noch etwas im Testbetrieb lassen und alsbald einchecken.

Grüßle,
Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.