"location.reload(true);" aus der Ferne

Begonnen von Sailor, 07 September 2018, 12:20:44

Vorheriges Thema - Nächstes Thema

Sailor

Ein herzerfrischendes "Moin Moin vom hintern Deich" vorweg

Ich habe mal eine Frage der Machbarkeit.

Wenn ich mir auf folgende Weise einen Button erstelle, die ftui neu zu laden funktioniert das schon makellos:


<div data-type="push"
data-icon="mi-sync"
onclick="location.reload(true);">
</div>


Meine Frage: Wie bekomme ich diesen Befehl von fhem heraus angetriggert? (Zum Beispiel durch einen dummy etc.)

Der Grund ist der, dass bei einem Neustart von fhem die Verbindung zum ftui unterbrochen wird, bzw. nach einem Update die neuen Features nur durch einen Refresh des Browser nach einem fhem Neustart aktiviert werden.

Dies könnte man mit der define fhemStartup notify global:INITIALIZED {} recht einfach automatisieren.

Danke für eure Tipps!
******************************
Man wird immer besser...

setstate

Wie willst du was von FHEM triggern, wenn die Verbindung weg ist?

Aber ein Abbruch der Websocket-Verbindung solle im FTUI erkannt werden und nach 10 Sekunden neu aufgebaut werden.

Ein manueller Refresh sollte nicht nötig sein. Ansonsten läuft was schief.

Sailor

Hi Setstate

Zitat von: setstate am 07 September 2018, 12:48:58
Wie willst du was von FHEM triggern, wenn die Verbindung weg ist?
Gar nicht. Ich will refreshen, sobald die Verbindung wieder da ist (shutdown restart).

Zitat von: setstate am 07 September 2018, 12:48:58
Aber ein Abbruch der Websocket-Verbindung solle im FTUI erkannt werden und nach 10 Sekunden neu aufgebaut werden.
Ein manueller Refresh sollte nicht nötig sein. Ansonsten läuft was schief.
Das funktionietr auch, aber wenn durch das Update diverse ftui Dateien erneuert wurden, braucht man einen Browser refresh (F5) um sie zu aktivieren.

Gruss
    Sailor
******************************
Man wird immer besser...

setstate


Sailor

Hallo setstate

Zitat von: setstate am 07 September 2018, 13:54:08
Verstanden, macht Sinn
So etwas gab es mal
https://github.com/nesges/Widgets-for-fhem-tablet-ui/blob/master/www/tablet/js/widget_reload.js
Könnte man mal auf die aktuelle FTUI Version portieren.

Auhauerha...

Das war jetzt hoffentlich nicht an mich adressiert... Ich habe davon (js, css, <div> und Konsorten nämlich keine Ahnung.  ;)

Ich beiße mir schon einen Wolf an der Implementierung eines SIP - Telefon auf html5/JS - Basis die Zähne aus.  >:(

Wenn du aus dem Hamburger Raum (Altes Land) kommen würdest, würde ich die Implementierung deinerseits sogar mit einem Fläschchen Apfelschnaps vergüten.  ;D

Gruß
    Sailor
******************************
Man wird immer besser...

setstate

Ne ne, steht schon auf meiner ToDo-Liste

setstate

das reload Widget ist jetzt verfügbar.

<div data-type="reload" data-device="dummy1" data-get-on="1" data-set-off="0"></div>

Wenn das Device dummy1 den Status 1 (data-get-on) hat, macht das Tablet einen Reload. Der Status wird sofort auf 0 (data-set-off) zurück gesetzt, um nicht in einer Endlosschleife zu landen.

Sailor

#7
Zitat von: setstate am 19 September 2018, 01:21:38
das reload Widget ist jetzt verfügbar.

<div data-type="reload" data-device="dummy1" data-get-on="1" data-set-off="0"></div>

Wenn das Device dummy1 den Status 1 (data-get-on) hat, macht das Tablet einen Reload. Der Status wird sofort auf 0 (data-set-off) zurück gesetzt, um nicht in einer Endlosschleife zu landen.

Jabbadabbaduuuu! - Werde ich gleich mal ausprobieren!  ;D

Nachtrag:
Zu früh gefreut... Das ftui geht jetzt in eine Endlosschleife von reloads.
Der dummy wird aber brav auf "0" zurück gesetzt.

Gruss
    Sailor
******************************
Man wird immer besser...

Sailor

#8
Ein herzerfrischendes "MoinMoin" zusammen vorweg

Problem gelöst!

Entgegen setstate's Beschreibung mus die Variable "get" scheinbar gesetzt werden.

So schauts jetzt bei mir aus:


<div data-type = "reload"
data-device = "dummy1"
data-get = "state"
data-get-on = "1"
data-set-off = "0">
</div>


Jetzt erscheint im Reading state des Dummy's zwar der Wert "state 0" anstatt "0", aber mit dem Schönheitsfehler kann ich leben...

Gruss
    Sailor
******************************
Man wird immer besser...

setstate

wenn du bei dir zusätzlich
data-get="state"
setzen musst, kann man "state 0" Werte vermeiden durch:

data-cmd="setreading"
oder alternativ

data-set=""

Sailor

Hallo setstate

Zitat von: setstate am 03 Oktober 2018, 23:00:57
kann man "state 0" Werte vermeiden durch:
data-set=""

Hat geklappt - Danke!  :D

Gruss
    Sailor
******************************
Man wird immer besser...

Sailor

#11
Hallo zusammen

seit dem heutigen Update


fhem
List of new / modified files since last update:
UPD ./CHANGED
UPD FHEM/88_HMCCU.pm
UPD FHEM/93_Log2Syslog.pm
UPD FHEM/98_DOIF.pm
UPD FHEM/98_MSwitch.pm
UPD FHEM/98_SVG.pm

New entries in the CHANGED file:
  - bugfix:  88_HMCCU: Detection of non standard addresses
  - feature: 93_Log2Syslog: TCP-Server in Collector-mode / SSL-support and a
                            lot more, pls. see new get versionNotes command
                            for further Information

fhemabfall
nothing to do...

fhemtabletui
List of new / modified files since last update:
UPD www/tablet/fonts/FTUI-icons.svg
UPD www/tablet/fonts/FTUI-icons.ttf
UPD www/tablet/fonts/FTUI-icons.woff
UPD www/tablet/js/widget_datetimepicker.js
UPD www/tablet/lib/jquery.datetimepicker.min.css
UPD www/tablet/lib/jquery.datetimepicker.min.js

New entries in the CHANGED file:
FHEM Tablet UI last changes:
2018-10-02
- ftui-circle-o
- ftui-square-thin
2018-10-04
- added minTime, maxTime to datetimepicker


funktioniert es wieder nicht un der Chrome Browser geht in eine unendlich - Schleife von reloads...
Folgende Code-Kobinationen habe ich versucht


<div data-type = "reload"
data-device = "UI_ReloadFtui"
data-get = "state"
data-set = ""
data-get-on = "1"
data-set-off = "0">
</div

<div data-type = "reload"
data-device = "UI_ReloadFtui"
data-get = "state"
data-cmd = "setreading"
data-set = ""
data-get-on = "1"
data-set-off = "0">
</div>

<div data-type = "reload"
data-device = "UI_ReloadFtui"
data-get = "state"
data-cmd = "setreading"
data-get-on = "1"
data-set-off = "0">
</div>


Was hat sich denn seit dem Update verändert?

Gruss
    Sailor
******************************
Man wird immer besser...