Unterschiedliche Seiten je nach Gerät

Begonnen von Joker, 29 Dezember 2016, 15:34:18

Vorheriges Thema - Nächstes Thema

Joker

Hi,
ich wollte mal fragen ob es irgendwie möglich ist, die smartVisu html Seiten zu intstrumentieren, dass bestimmte Dinge nur bei bestimmten Endgeräten angezeigt werden.
So a la
{%  if gerät==xy %} ...html Elemente...  {% endif %}

Oder gibt es eine andere Möglichkeit das zu tun? Hintergrund ist, ich habe auf meinen Seiten auch Einstellmöglichkeiten für die Heizung, Kindersicherung (Schalter abschalten) etc. und ich möchte dass diese Optionen nur auf meinem Gerät angezeigt werden.

dev0

Wenn Du die Multiuser-Erweiterung (Bestandteil von herrmannj's sv-cleaninstall) benutzt, dann kannst Du für unterschiedliche IP Adressen Variablen in der config.ini definieren, die man auch abfragen kann.

In etwa so:

{% if config_blabla == 'yes' %}
  ...
{% endif %}


Kann sein, dass man die Variablen noch einlesen muß, da bin ich mir jetzt nicht mehr sicher. Beispiele dazu findest Du in den sv sourcen...

Joker

#2
Uh, das klappt, geil  8)
Vielen Dank!

Hier noch mal genauer was zu tun ist:

In der config.ini in /var/www/smartvisu die client_xxx Sektion suchen, die zum gewünschten Endgerät gehört (xxx = IP-Addresse des Geräts). Dort dann den gewünschten Wert einfügen, ich habe folgendes hinzugefügt:
admin = 'true'

Jetzt FHEM neu starten (vermute ich mal, habe es einfach nur zur Sicherheit gemacht).
Nun muss man noch wissen, dass die definierten Variablen den Prefix "config_" bekommen.

In der gewünschten SV Seite habe ich dann erstmal zum Testen folgendes eingefügt:
{% if config_admin == 'true' %}ADMIN!{% endif %}

Zum Test mit dem gewünschten Endgerät die Seite aufrufen, dort wird der Text "ADMIN!" nun angezeigt, auf den anderen Geräten erscheint er nicht. Perfekt!

Dann kann ich jetzt weiter basteln dass mir Frau und Kinder hier nicht alles verstellen  ;D

Edit: Gerade nochmal getestet, Neustart von FHEM ist nicht notwendig. Nach dem Einfügen des Werts und Reload der Seite ist die Seite entsprechend verändert.

pcbastler

Nur zur Sicherheit, hätte das nicht auch über die GAD-Einstellungen gelöst werden können?

dev0

Ja, aber dann bleiben die Widgets sichtbar.

Joker

Dazu käme dann noch, dass ich alle GADs für alle Geräte konfigurieren müsste, oder?
Ich habe die Konfiguration nur für ein Gerät festgelegt und bei allen anderen das Attribut "whitelist" gesetzt. Sonst werde ich da ja nicht mehr fertig...  ;)