Browser-Refresh automatisieren

Begonnen von outhouse, 08 April 2013, 16:33:29

Vorheriges Thema - Nächstes Thema

outhouse

Hallo Leute

Irgendwas will mir einfach nicht in den Kopf...

Also. Das Vorhaben: Mit Ein- bzw. Ausschalten des Dämmerungsschalters soll das Hintergrundimage (Tag / Nacht) auf dem Monitor ändern. Damit aber der Bildschirm nicht unendlich neu aufgebaut (refresht) wird, soll das entsprechende Attribut (nach kurzer Zeit) wieder gelöscht werden.

Attribut einschalten:

define RefreshOn notify VP_Daemmerung.* {{fhem ("attr WEBtablet refresh 10")};;  }

Funktioniert prächtig :-)

Attribut löschen:

define RefreshOff notify VP_Daemmerung.* {{fhem ("deleteattr WEBtablet refresh")}fhem "save";; }

Funktioniert genau so prächtig :-)

Attribut aber erst nach (z. B.) 1 Minute löschen:

define RefreshOff notify VP_Daemmerung.* {{fhem ("define RefreshOffTest at +00:01:00 deleteattr WEBtablet refresh")}fhem "save";; }

funktioniert ganz und gar nicht. Wie es scheint, hasst mich diese Formel.

Es werden mir von dem Teil gleich 3 Zeilen (3 x dieselbe )Fehlermeldungen um den Kopf geschlagen

define RefreshOffTest at +00:01:00 deleteattr WEBtablet refresh : RefreshOffTest already defined, delete it first

Wo könnte das Problem liegen?

Gruss

Chris
Raspberry 4 B mit Raspberry Pi OS und FHEM-Image 6.3 von fhem.de
Cul CC 1101 V4 als CUL_HM
Cul V3.4 + V3.4 als RFR
enocean-pi

rudolfkoenig

Das Problem liegt in der Annahme, dass die erste Version funktioniert.

refresh 10 setzt eine Zeile in Header, die dem Browser sagt, dass nach 10 Sekunden ein refresh durchzufuehren ist. Falls refresh vorher nicht gesetzt war, und niemand eine neue Seite von fhem laedt, dann kommt diese Info beim Browser aber nie an.

Und das hier:
{{fhem ("deleteattr WEBtablet refresh")}fhem "save";; }
sollte man bitte als
{ fhem "deleteattr WEBtablet refresh";; fhem "save";; }
schreiben, damit Leute die perl kennen keine Kopfschmerzen kriegen. Oder gleich als
deleteattr WEBtablet refresh;;save


Wird aber deswegen noch nicht funktionieren :)

outhouse

Zitat von: rudolfkoenig schrieb am Mo, 08 April 2013 16:51damit Leute die perl kennen keine Kopfschmerzen kriegen.


Hallo

Die (Kopfschmerzen) kriege ich, wenn ich nur schon an perl denke :-)

Trotzdem. Danke für die Info. Hoffe, ich werde den Personen, die perl kennen, nicht zu viele Kopfschmerzen verursachen :-)

Gibt es denn irgend eine Möglichkeit, quasi den bzw. einen Link (href) "anzustossen"? So im Sinne: Wenn die Glocke zuschlägt, gehe auf den Link xy... (welcher ja auf das Nacht- bzw. Tagleben schon vorbereitet ist)

Gruss

Chris
Raspberry 4 B mit Raspberry Pi OS und FHEM-Image 6.3 von fhem.de
Cul CC 1101 V4 als CUL_HM
Cul V3.4 + V3.4 als RFR
enocean-pi

rudolfkoenig

Wenn der Browser nicht zuhoert, dann kann man ihm auch nicht sagen, dass er ab jetzt zuhoeren soll.

Evtl. ist longpoll ein Ausweg, verursacht etwas weniger Datenaustausch.

outhouse

Hi

Longpoll ist schon aktiviert und läuft bei mir sehr gut. Es refresht aber lediglich die Icons; nicht das Hintergrundbild :-)

Naja. Vielleicht finde ich ja doch noch eine Lösung...

Chris
Raspberry 4 B mit Raspberry Pi OS und FHEM-Image 6.3 von fhem.de
Cul CC 1101 V4 als CUL_HM
Cul V3.4 + V3.4 als RFR
enocean-pi

jody

Hey outhouse,

hast du bereits eine lösung für dein Problem gefunden? Falls ja dann teile sie doch bitte mit uns.

Gruß Jody
Cubietruck
CUL SlowRF
CUL Homematic
ZWave

Johannes

Hallo,

Lässt sich das nicht einfach mit JavaScript mitteln lösen wie
window.setTimeout
Und
window.location / window.open

?

jody

#7
Hallo Johannes,

im Moment kann ich leider noch nichts mit deinem Tipp anfangen, ich bin aber gewillt mich mit dem Thema ausseinander zu setzen.
Kannst du mir ein Beispiel geben, wie man Java-Script mit/in fhem verwendet??

Im Prinzip würde es mir reichen, irgendeinen Befehl abzuschicken, der einen entfernten Browser refreshed (F5).

Danke

Gruß Jody
Cubietruck
CUL SlowRF
CUL Homematic
ZWave

Johannes

Im FHEM Ordner müsste es eine *.js Datei geben (fhem / fhemweb o.ä.), in die du dich "reinhängen" kannst. Es geht aber sicher auch eleganter, Rudolf könnte das sagen..

Im Prinzip kann man jedenfalls mit einem Befehl wie

window.setTimeout(function() {window.location.reload();}, 5000);

den Browser dazu bewegen, die Seite nach 5 Sekunden neu zu laden (5000ms = 5s).

Ob das für deinen Anwendungszweck reicht ist mir aber nicht ganz klar, da du von "entfernter" Browser sprichst...

Trebor5

Hallo ,

wie heist die Datei genau ?

Ich rufe auf einem "Client Fhem" das RSS vom Hauptfhem auf und würde das gerne alle 10 minuten automatisch Aktualisieren.

Vielen Dank.
Odroid N2,Hauptsensoren Homematic + 1 Wire + 8Kanal Homematic auf Relay Schaltung. Forum Beiträge sind meine letzte Hoffnung nach Stundenlangen erfolglosen suchen und probieren.

betateilchen

Zitat von: Trebor5 am 10 Dezember 2014, 20:15:45
Ich rufe auf einem "Client Fhem" das RSS vom Hauptfhem auf und würde das gerne alle 10 minuten automatisch Aktualisieren.

Mach doch einfach. Das Refresh kannst Du direkt im RSS definieren. Ein Blick in die commandref wird Dir offenbaren, dass es dafür extra ein Attribut namens "refresh" gibt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Trebor5

Sorry ,

ich habe alles mögliche schon probiert und natürlich auch das refresh aus der commandref ausprobiert leider alles ohne Erfolg.

Kurz nochmal die Situation.

Raspberry 1 = Erzeugung des RSS ( Hier laufen auch alle Schalter usw. auf quasi die Hauptfhem inst. verbunden mit Rasp2 per Fhem2fhem)
Raspberry 2 = hinter einem Spiegel verbaut der nur das RSS aufruft und es alle z.B. 10 minuten aktualisieren soll.

Ich bekomme es einfach nicht hin egal wo ich etwas eintrage. Man gehen die Stunden ins Land.
Odroid N2,Hauptsensoren Homematic + 1 Wire + 8Kanal Homematic auf Relay Schaltung. Forum Beiträge sind meine letzte Hoffnung nach Stundenlangen erfolglosen suchen und probieren.