devStateIcon Refresh geht nicht

Begonnen von Ajuba, 07 Oktober 2017, 23:55:59

Vorheriges Thema - Nächstes Thema

Ajuba

Ich hatte gehofft, mit devStateIcon eine Mehfach-Information auf die Auf/Ab Taster meiner Rolladen zu bekommen. Also die Stati mehrerer Geräte in einem Icon anzuzeigen.
- Weiß: Fenster geschlossen, Rolladen steht
- Blau: Fenster offen, Rolladen steht
- Grün: Fenster offen, Rolladen auf
- Rot: Fenster geschlossen, Rolladen auf

Es funktioniert auch grundsätzlich, ich habe aber Probleme mit dem Browser-Refresh.
Die Anzeige wird automatisch nur dann geändert wenn ich die Icon-Taste drücke ansonsten muss ich einen Browser Refresh ausführen um die Änderung zu sehen.
Hier mein Code:
{
if
(Value("Rolladen_WZLiUp")eq "off" && Value("MS_WZL")eq "off")
{return '.*:control_arrow_up@blue:trigger'}
elsif
(Value("Rolladen_WZLiUp")eq "on" && Value("MS_WZL")eq "off")
{return '.*:control_arrow_up@green:trigger'}
elsif
(Value("Rolladen_WZLiUp")eq "on" && Value("MS_WZL")eq "on")
{return '.*:control_arrow_up@red:trigger'}
else
{return '.*:control_arrow_up@white:trigger'}}


Über Refreshprobleme habe ich in Posts aus 2015 gelesen, dachte aber das sei erledigt.
Geht mein Vorhaben überhaupt nicht oder habe ich nur was falsch gemacht?
FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

rudolfkoenig

Der Status (und damit Icon) eines Geraetes wird nur dann zum Browser geschickt, wenn es sich aendert.

Um dein Vorhaben zu realisieren muss man _ein_ Geraet konfigurieren, der ein Event generiert, wenn einer der beiden Informationsquellen sich aendert. Moeglichkeiten dafuer, die mir einfallen:
- devStateIcon auf Dummy und zwei notifies auf die Quellen, die jeweils bei Aenderung der "eigenen" Quelle den Dummy setzen
- devStateIcon auf eine der Quellen, ein notify auf die Andere, die ein trigger fuer die Erste generiert.
- devStateIcon auf ein Structure, der beide Geraete enthaelt und passende Attribute, damit der structure-Zustand richtig gesetzt wird.

Ajuba

Hab mir schon gedacht, dass das anscheinend nicht so einfach geht.
Ich hatte zwischenzeitlich gehofft durch ein UserReading des Magnetschalters MS_WZLi innerhalb des Tasters PB_RollAuf_WzLi elegant ans Ziel zu kommen, musste aber schnell erkennen, dass sich beim Öffnen des Fensters zwar der state von MS_WZLi ändert aber das Userreading innerhalb PB_RollAuf_WzLi vollkommen unbeeindruckt davon bleibt und erst durch einen manuellen Browser-Refresh die Änderung zeigt.
Wäre dieser Weg überhaupt möglich und wie kann die Aktualisierung eines UserReading eines fremden Geräts angestoßen werden?

Von den vorgeschlagenen 3 Möglichkeiten hat mir
Zitat von: rudolfkoenig am 09 Oktober 2017, 18:37:41
- devStateIcon auf eine der Quellen, ein notify auf die Andere, die ein trigger fuer die Erste generiert.
am besten gefallen weil es mir am praktischsten erscheint einfach den Taster der ja auch die Icons enthält entsprechend "aufzuwecken".
Ich habe nun 3 notifys und die Icons werden korrekt umgefärbt.
defmod nKUDn notify Rolladen_KUDn trigger PB_RollAb_KU $EVENT
defmod nKUUp notify Rolladen_KUUp trigger PB_RollAuf_KU $EVENT
defmod nMS_KU notify MS_KU trigger PB_RollAuf_KU,PB_RollAb_KU $EVENT
Nachdem ich das auf 10 Fenster anwenden muss, frage ich mich ob ich das noch irgendwie optimieren kann.

Übrigens, ich würde gerne auf einer mit "Columns" aufgebauten Seite nur die Taster haben. Kann man die Gerätenamen komplett ausblenden oder zumindest transparent machen? Zur Zeit habe ich nur mit "alias" die Namen soweit wie möglich gekürzt.

FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

rudolfkoenig

Soweit ich weiss, geht das nur mit einem eigenen CSS.

KlaGho

Hallo, ich klinke mich mal hier ein.
Seit ca. 5 Tagen startet Safari unter IOS 10.3.3 auf meinem iPhone immer mit der mobilen Webseite. Erst durch manuelles Anfordern der Desktopversion funktionieren die Ikonwechsel wieder.
Gibt es eine Möglichkeit die Desktopversion zu erzwingen? Alle Versuche direkt auf dem iPhone/Safari funktionierten nicht (z.B. auf dem Homebildschirm speichern).

Danke schon mal im voraus
Gho

Ajuba

Zitat von: KlaGho am 14 Oktober 2017, 11:13:56
Hallo, ich klinke mich mal hier ein.
Seit ca. 5 Tagen startet Safari unter IOS 10.3.3 auf meinem iPhone immer mit der mobilen Webseite. Erst durch manuelles Anfordern der Desktopversion funktionieren die Ikonwechsel wieder.
Gibt es eine Möglichkeit die Desktopversion zu erzwingen? Alle Versuche direkt auf dem iPhone/Safari funktionierten nicht (z.B. auf dem Homebildschirm speichern).

Danke schon mal im voraus
Gho
Ich weiß zwar nicht wie deine Konfiguration aufgebaut ist aber mit dem Port Zusatz :8083 sollte es direkt in der Desktop Variante starten.

Gesendet von meinem SM-G920F mit Tapatalk

FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

rudolfkoenig

@KlaGho:
1. es gibt in FHEMWEB keine Geraeteerkennung, d.h. ob man die Desktop- / Touchpad- oder Smartphone-Ansicht bekommt haengt vom (fuer ein bestimmtes FHEMWEB) eingestellten Style ab. Wenn im Style-Namen "smallscreen" vorkommt, dann wird es fuer Mobilansicht gerendert, wenn es touchpad vorkommt, dann fuer ein iPad/etc, sonst fuer Desktop. In der ausgelieferten fhem.cfg ist die FHEMWEB Instanz mit Port 8083 fuer Desktop, mit 8084 fuer smallscreen und mit 8085 fuer touchpad konfiguriert.

2. bitte keine "Thread-Entfuehrung": dein Problem hat mit dem Betreff nichts zu tun. Also bitte nicht ohne Grund irgendwo "einklinken". Ein Thema neu zu erstellen sollte nicht komplizierter sein.