Darstellung von Readingsgroup auf Floorplan

Begonnen von stim, 29 Januar 2015, 17:42:05

Vorheriges Thema - Nächstes Thema

stim

Guten Abend,

ich habe mit der Umsetzung eines Floorplans begonnen und habe nun den Wunsch nur die Devices einer Readingsgroup anzuzeigen die den state open oder on haben.
Damit möchte ich den Status meiner Fenster und Türkontakte visualisieren. Dabei sollen auf dem Floorplan nur die Fenster oder Türen angezeigt werden die offen sind.

Muss ich für jedes Device ein Notify haben welches die Eigenschaft auf dem Floorplan Dargestellt zu werden dem Floorplan zuweist?

Vielen Dank

stim

justme1968

schau dir mal die wiki beispiele zu readingsGroup an. da gibt es auch welche die devices die z.b nicht on oder offen sind nicht anzeigen. das geht z.b. in dem valueFormat für dieses device undef zurück gibt.

weder floorplan noch readingGroup haben etwas mit notify zu tun.

jedes device (in diesem fall die readingsGroup und nicht die darin aufgeführten devices) brauchen das attribut das angibt an welcher stelle im floorplan es angezeigt werden soll.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

stim

Die readingsgroup umfasst 8 Geräte
Mit valueformat habe ich für on jetzt ein Icon für Off ein leeres Icon.
Allerdings bleibt die Position immer gleich.
Wie kann ich die Liste dynamisch Gestalten von der Länge?
Aktuell hat die Liste 8 Elemente es sind immer nur maximal 3 aktiv also angezeigt.
Somit benötige ich eine Anzeigemethode die etwas kompakter ist.


Gesendet von meinem iPad mit Tapatalk

wkarl

Hallo stim,

hier ein Beispiel
define TuerKontakte readingsGroup <%fts_door_right_open@darkblue>,<Status>,<> .*_(TK|FK)..:state,battery
attr TuerKontakte fp_Z_HA_Home 30,750,0,
attr TuerKontakte mapping { 'DieleWindfang_TK_HausTuer' => 'DieleWindfang','Kueche_TK_Tuer' => 'Kueche', 'Schlafzimmer_TK_Tuer' => 'Schlafzimmer', 'Wohnzimmer_TK_Tuer' => 'Wohnzimmer', 'Vanessa_TK_Tuer' => 'Vanessa', 'Janine_TK_Tuer' => 'Janine' }
attr TuerKontakte nameStyle style=color:darkblue;;font-weight:bold;;text-align:center
attr TuerKontakte notime 1
attr TuerKontakte room Z-HA-FloorPlans
attr TuerKontakte valueIcon {'battery.ok' => 'measure_battery_100@green', 'battery.low' => 'measure_battery_25@red', state => '%devStateIcon' }

das sieht dann aus wie im screenshot. Wie Du siehst ist die Kuechentuer offen (Terasse).

ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

justme1968

wie oben geschrieben: wenn du möchtest das eine zeile nicht erscheint muss valueFormat in diesem fall undef zurück geben. wichtig: wenn ein device hinzukommt funktioniert das dann nicht per longpoll sondern nur beim refresh der seite.

die andere möglichkeit ist über den style die visibility für eine zeile auf hidden zu setzen. dann geht auch das wieder einblenden per longpoll.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Motivierte linke Hände

Hi Andre - Das Setzen des Visibility-Flags ist ja nur die zweitbeste Lösung, dann dabei schieben sich die vorhandenen Einträge ja nicht nach oben, oder?

Von daher gefällt mir der Weg über "undef" deutlich besser. Bei der Anzeige auf einem Android Tablet über WebViewControl kann ich ja bei relevanten Änderungen über ein notify ein reload der Seite auslösen. Gibt es die Möglichkeit auch irgendwie bei der normalen Webdarstellung, bzw. kann ich irgendwie eine readingsGroup veranlassen, im Bedarfsfall ein reload auszulösen?
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

justme1968

eine zeile die über visibility ausgeblendet ist ist 'nicht da'. d.h. sie belegt auch keinen platz.

ein refresh kannst du in fhemweb so auslösen: http://forum.fhem.de/index.php/topic,32305.msg248290.html#msg248290 oder in der aktuellen version auch so:trigger WEB JS:location.reload(true)

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Motivierte linke Hände

#7
Was ist denn die "aktuelle Version"? Ich habe gerade update durchlaufen lassen, aber bei

trigger WEB JS:location.reload(true)

passiert im Browser (Firefox, Win 8.1) nichts. Und ja, ich habe den Floorplan auf dem WEB zugeordneten Port laufen.  :)

Edith sagt: Die andere Variante über Sub in myutils funktioniert, danke!
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

justme1968

fhemweb muss dieses version sein:# $Id: 01_FHEMWEB.pm 8097 2015-02-26 06:47:28Z rudolfkoenig $und es muss die aktuelle fhemweb.js geladen sein.

schau ins javascript log des browsers ob der befehl an kommt und ob er eventuell vom browser blockiert wird.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ujaudio

Das Update läuft gerade, wie prüfe ich "und es muss die aktuelle fhemweb.js geladen sein"? Was muss ich hier konkret noch tun?
Einen lieben Gruß
Jürgen