Longpoll um eine Funktion erweitern

Begonnen von jody, 21 Dezember 2013, 09:51:35

Vorheriges Thema - Nächstes Thema

jody

Hallo fhem'ler,

wenn ich alles richtig verstanden habe, aktualisiert Longpoll die Status Icons der einzelnen Geräte in Echtzeit.

Nun meine Frage an euch, wäre es dann nicht auch möglich die ganze Seite zu aktualisieren?

Wenn mir jemand einen Tipp geben könnte wäre ich Ihm sehr dankbar.

Gruß

Jody
Cubietruck
CUL SlowRF
CUL Homematic
ZWave

rudolfkoenig

Sicher waere es, wir wollen es aber nicht, um Flimmern auf dem Bildschirm, "unnoetige" Netzwerkdaten und Last auf dem Server zu vermweiden.

jody

Hallo Rudolf,

mein Gedanke wäre es gewesen, mithilfe von mehreren floorplans eine Fotorealistische Steuerung meiner Heimautomation zu verwirklichen. Soll so aussehen wie bei openremote https://www.youtube.com/watch?v=FXyzm61_eZE.

Ich habe es bereits  mit unterschiedlichen Icons im floorplan und in der "normalen" Ansicht versucht, jedoch erscheint im Floorplan nach einer Schaltaktion das Icon, welches ich in der "normalen" Ansicht verwende. Erst nach einem Browser refresh (F5) erscheint wieder das für den Floorplan verwendete Icon.

Wie aufwändig wäre es denn, dass ich selber die benötigte Datei abändere? Könntest du mir dazu etwas Hilfestellung geben?

Ich bin durchaus gewillt mich in das Thema einzuarbeiten, jedoch wäre eine kleine Starthilfe eine große Erleichterung für mich.

Vielen Dank!

Gruß Jody
Cubietruck
CUL SlowRF
CUL Homematic
ZWave

rudolfkoenig

Nettes video: ich meine OpenRemote kann FHEM auch steuern.

Bezueglich FLOORPLAN klingt das nach einem FLOORPLAN oder FHEMWEB Bug, vlt. kann Ulli dazu mehr sagen.
Oder Du musst mir erklaeren, wieso es "richtig" ist, dass fuer FHEMWEB ein anderes Icon erscheint, als fuer FLOORPLAN.

Wg. dem Refresh will ich weder Hilfeleistung geben, noch spaeter es Einbauen, da ich es nicht fuer den richtigen Weg halte.

jody

Das stimmt wohl dass openremote fhem auch steuern kann, jedoch wäre ich gerne bei einem System geblieben, und da ist mir fhem wesentlich lieber als das openremote Projekt. Zudem wird es vermutlich etwas aufwändiger werden, wenn ich den Status von fhem Device's an openremote übermitteln will.

Zu den Icons steht in der Floorplan PDF, dass verschiedene Icons für fhemWEB und Floorplan verwendet werden können, dies stimmt auch, jedoch harmonisiert dies meiner Meinung nach nicht so gut mit Longpoll.

Zum refresh. Ich verstehe, dass du nicht jedem Händchen halten kannst der irgendwelche verrückten Ideen hat, jedoch bin ich der Meinung dass die Fotorealistische Steuerung das Aussehen von fhem wesentlich nach vorne bringen würde.

Da du wohl nicht unbedingt meiner Meinung bist, was das Aussehen von fhem angeht, kann man wohl auch nicht damit rechnen, dass es in naher Zukunft möglich sein wird, mit fhem Bordmitteln solch eine Fotorealistische Heimautomatisierung verwirklichen zu können.
Mit dieser Aussage möchte ich deine Arbeit, welche du tagtäglich verrichtest, keinesfalls schlecht machen. Ich bin begeisterter fhem Nutzer und immer wieder begeistert von der Anpassbarkeit und Flexibilität dieses Systems.

Zu guter letzt noch eine kleine Frage. Wohin geht deiner Meinung nach der Weg von fhem?
Cubietruck
CUL SlowRF
CUL Homematic
ZWave

rudolfkoenig

Zitatkann man wohl auch nicht damit rechnen, dass es in naher Zukunft möglich sein wird, mit fhem Bordmitteln solch eine Fotorealistische Heimautomatisierung verwirklichen zu können.

Das kriegt man auch jetzt mit Boardmitteln hin:
- separate FHEMWEB Instanz fuer die fotorealistische Darstellung definieren
- in www/images ein neues Verzeichnis anlegen, und dieses in den iconPath der FHEMWEB Instanz vorne aufnehmen
- fuer alle Geraete/Zustand-Kombinationen in diesen Verzeichnis ein Bild ablaegen (Lampe1.on.png, usw.)
- Floorplan erstellen, und die Geraete platzieren.

Weiss nicht genau, ob FLOORPLAN erlaubt nur Bild ohne Text darzustellen, gehe davon aber aus. Diese Loesung sollte wesentlich effizienter sein, als komplette Bilder zu laden. Selbst die lustigen Rolladen aus dem Video sind ohne Grundsatz-Aenderung moeglich, man muss "nur" einen entsprechenden Javascript-Modul basteln. Fuer alles, was keinen visuallen Feedback hat (Temperatur), ist Fantasie gefragt.

>  Wohin geht deiner Meinung nach der Weg von fhem?

FHEM ist kein Unternehmen, das sowas planen kann, und ich nicht der Chef, der den einzelnen Mitarbeitern die Aufgaben gibt.
-> Keine Ahnung, es ist ein Freizeitprojekt :)

jody

Vielen Dank für die Tipps Rudolf.

Ich hoffe dass dich die Motivation am Freizeitprojekt niemals verlässt und freue mich schon auf die Tollen Neuerungen, welche Ihr euch immer wieder ausdenkt.

Gruß!

Jody
Cubietruck
CUL SlowRF
CUL Homematic
ZWave

fiedel

#7
ZitatIch habe es bereits  mit unterschiedlichen Icons im floorplan und in der "normalen" Ansicht versucht, jedoch erscheint im Floorplan nach einer Schaltaktion das Icon, welches ich in der "normalen" Ansicht verwende. Erst nach einem Browser refresh (F5) erscheint wieder das für den Floorplan verwendete Icon.

Wie aufwändig wäre es denn, dass ich selber die benötigte Datei abändere? Könntest du mir dazu etwas Hilfestellung geben?

Ich bin durchaus gewillt mich in das Thema einzuarbeiten, jedoch wäre eine kleine Starthilfe eine große Erleichterung für mich.

Hallo,

Dieses "Problem" habe ich auch. Bisher habe ich es einfach hingenommen und auf der FP- Instanz nur mit Refresh gearbeitet. Die "S300TH"- Darstellung hat Longpoll nämlich auch noch verwurstet. Letzteres wurde gerade gefixt. Da fehlt nun nicht mehr viel zum perfekten Floorplan mit Longpoll...  ;)

Ich bin auch Perl- Ahnungsloser, aber immer bereit mich einzulesen. Vielleicht können Uli oder justme ja mal einen Tipp geben, ob da eine Lösung möglich wäre und wo man ansetzen könnte. Der Thread mit dem "S300TH"- Fix ist hier.

@Rudi:

ZitatWg. dem Refresh will ich weder Hilfeleistung geben, noch spaeter es Einbauen, da ich es nicht fuer den richtigen Weg halte.

Hier habe ich gerade die Frage, wie ich vom FHEM- Server aus Floorplanseiten ferngesteuert aufrufen, bzw. umschalten kann. Vielleicht hast du eine einfache Idee, über die Refresh- oder Longpollfunktion so etwas zu realisieren? Ich lese mich dafür aktuell in die Longpoll- Technik ein, aber mir fehlt da einfach das Grundwissen, um ggf. auf etwas Einfaches oder Naheliegendes zu kommen.


Viele Grüße

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

rudolfkoenig

Dazu musst du eine fhemweb_XXX.js Datei erstellen (ja, fhemweb.js ist auch modular), und da drin eine updateLine oder updateDevs Funktion deklarieren. Diese Funktion wird bei einem Event, was ein Geraet in dem gerade angezeigten Raum betrifft(!), aufgerufen, siehe fhemweb.js.

fiedel

Vielen Dank Rudi!
Das ist doch schon mal ein Ansatz der mich weiter bringt. Werde mich dazu mal weiter belesen.

Viele Grüße

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

BenWend

#10
Hallo Rudolf,
hallo Frank,

ich denke auch, dass zum perfekten Floorplan mit Longpoll nicht mehr viel fehlt. Insbesondere die Lösung mit der fhemweb_XXX.js Datei hört sich genau nach dem an, was ich suche.

Momentan nutze ich wegen der vielen eigenen Grafiken im Floorplan, die ich mit longpoll leider nicht dauerhaft nutzen kann, auch den Browser refresh. Das gefällt mir aber nicht - vor allem, wenn man einmal longpoll in Aktion gesehen hat (genial).

Ich habe ebenfalls versucht mich einzulesen oder ein Beispiel zu finden, allerdings leider erfolglos.

Über ein kurzes Beispiel würde ich mich sehr freuen - falls es Dir zeitlich möglich ist. Ich bräuchte irgendetwas, wo ich den Faden wieder aufnehmen kann, ...

Beste Grüße

Ben

fiedel

#11
Hi Ben,

zur Funktion "ferngesteuert FP- Seite wechseln/öffnen":

bisher ist das bei mir weniger als Halbwissen, aber ich denke eine gute Vorlage ist die "fhemweb_colorpicker.js".
Dort gibt es die von Rudi vorgeschlagene updateLine Funktion und man kann gut erkennen wie Variablen zugewiesen werden und zwar als Array, von dem dann sinnvoll die Teilstücken verwendet werden können.
Ich versuche da erst mal so weit zu kommen, dass ich über die Funktion "alert()" den Inhalt oder Teile einer Variablen auf der Webseite angezeigt bekomme. Dann noch ein wenig Programmlogik dazugeschustert und als Ausgabe dann die Funktion "window.open()" oder etwas ähnliches. Bin allerdings noch nicht beim ersten "Zielpunkt" angekommen.

zur Funktion "spezielle Icons im FP mit Longpoll":

Da hab ich mich noch nicht rangetraut. Vielleicht gibt es ja noch einen Tipp mit einem grob umrissenen Lösungsweg von den Developern. Uli hatte zu dem Thema vor längerer Zeit schon mal die Funktionsweise beschrieben:

ZitatHi,
Vll noch zur Erklärung des Mechanismus:
Floorplan.pm ermittelt den State des device.
Floorplan.pm ersetzt den State durch das FP-spezifische icon
Wenn longpoll aktiviert ist, wird fhemweb.js aktiviert, das bei State-Änderung im html den State des icons ersetzt.
In fhemweb.js ist jedoch das Ersetzen auf das FP-spezifische Icon nicht enthalten.
Deshalb funktioniert FP-spezifisches Icon nur beim ersten Bildsxhirmaufbau, bei longpoll-Aktialisierung erscheint aber immer das Default-icon.
Refresh nutzt nicht fhemweb.js, sondern ruft das originäre Frontend-Programm quasi erneut auf, die Icon-Ersetzung findet also ggf erneut statt.

Gruß Uli

Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

rudolfkoenig

Mir fallen z.Zt. folgende Wege ein:
- keine Programmierung: FLOORPLAN aus einem separaten FHEMWEB Instanz starten, und hier die passenden Icons zuweisen.
- javascript1: man registriert ein FW_widgets, dessen updateLine das gerade gesetze Bild/etc ersetzt.
- javascript2: longpoll ersetzen: eigenen javascript einschleusen (durch $data{FWEXT}{$k}{SCRIPT}), hier inform beim FHEMWEB bestellen, und bei eintreffen der Events die alternativ-Bilder setzen. Ist de-facto ein rewrite von fhemweb.js


UliM

Hi,
ich bin für den ersten von Fudi aufgezeigten Weg, denn dan muss nix programmiert werden und es funktioniert für alle.

Kann mal bitte jemand ein Beispiel dafür posten :)
Das würde ich dann auch in den floorplein-Einrichtungsleitfaden übernehmen.

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

fiedel

Hi Uli,

der erste Vorschlag von Rudi klingt gut, aber ich glaube, da gibt es ein Problem:

In meinem FP habe ich z.B. kleine Fenstericons für den Haupt-FP. Im Stockwerk- FP, wo alles größer dargestellt ist, habe ich enspr. große Fenstericons. Ich vermute, dass der Vorschlag nur etwas bringt, wenn man für ein Gerät über alle FPs das gleiche Icon verwendet. Da du uns aber die schöne Funktion "fp_icon / fp_fp_icon" beschert hast, wird das nix, denn Longpoll würde das  "fp_fp_icon" wieder mit dem Standart- oder "fp_icon" überschreiben.

Bitte korrigiert mich, falls ich mich irre!

Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423