[Neuling in TableUI] Alle aktuell angeschalteten Geräte von Grp Licht anzeigen

Begonnen von Master_Nick, 20 Oktober 2017, 19:26:43

Vorheriges Thema - Nächstes Thema

Master_Nick

Guten Abend :-)

Ich bin dann nun auch bei Tablet UI gelandet.
Ich frage mich aktuell, ob es möglich ist auf der index Seite alle aktuell eingeschalteten Geräte von verschiedenen Gruppen (Zwischenstecker,Licht,PC, usw.) anzeigen lassen zu können inklusive der Option sie per klick auszuschalten (danach soll es natürlich nicht mehr sichtbar sein - ok eventuell verschwindet es auch erst bei einem reload, wird aber als off angezeigt).

Ist so etwas möglich :-) ?
Ich hätte gerade keinerlei Ansatz. Bin aber durchaus lesefreudig und erarbeite mir die Lösung auch gern.

Vielen Dank!
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

setstate

Ein echt ungewöhnliche Anforderung ...
Eine Liste aller "Lampen", die an sind. Dann kann man die Geräte einzeln ausschalten. Dann sollen sie aus der Liste sofort verschwunden, also nicht mehr anschaltbar sein.

Habe ich das richtig verstanden?
Wofür nutzt man das?
Warum einzeln ausschalten aber nicht wieder einschaltbar?
Wie wäre ein "Alles Aus Schalter"?

Master_Nick

Huhu :-)

Du hast es richtig verstanden.
Also der Gedanke wäre, dass man alle aktuellen Verbraucher bestimmter Typen sieht und sie von dort direkt ausschalten kann. Wieder einschalten ist nicht nötig auf der Hauptseite.
Ein alles aus Schalter zeigt ja nicht was aktuelll läuft.


Der Gedanke ist diese Home Seite auch von unterwegs als schönere UI nutzen zu können. Und dort sieht man dann ah Mist Lampe an... aus machen.
Es wäre auch völlig in Ordnung nur eingeschaltete Verbraucher anzuzeigen - ohne Schaltmöglichkeit :-D
Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)

setstate

Mit FTUI geht das nicht dynamisch.
Man müsste eine Fläche mit Schaltern der bekannten Geräte füllen und die Eigenschaft "hide" an den Aus-Status binden. Dann werden die ausgeschalteten Geräte versteckt.

eki

Ich habe eine ähnliche Anforderung folgendermaßen gelöst:

1. Ich richte in FHEM einen Dummy ein, der eine Übersicht über alle meine Devices die Lampe oder Licht im Namen enthalten (per notify) führt und als Reading neben einem Status, der auf "an" ist wenn irgendeine Lampe an ist und ansonsten aus auch noch die Anzahl der angeschalteten Lampen ablegt. Die Definition sieht folgendermaßen aus:

define alleLampen dummy
attr alleLampen devStateIcon on:on:allOff off:off
attr alleLampen setList on off allOff allOn
define ntfAllelampen notify .*Licht.*|.*Lampe.* {\
my $regexp = InternalVal($SELF,"REGEXP","");;\
my @devs=devspec2array("NAME=" .$regexp);;\
my $anyOneOn = 0;;\
foreach(@devs) {\
my $state = ReadingsVal($_,"state","error");;\
if ($_ ne "alleLampen") {\
if ($state ne "off") {\
$anyOneOn++;;\
Log3 undef, 5, "Found Light $_ with State: $state";;\
}\
} else {\
if ($state eq "allOff") {\
fhem("set " . $regexp . " off");;\
} elsif ($state eq "allOn") {\
fhem("set " . $regexp . " on");;\
}\
}\
}\
\
if ($anyOneOn) {\
Log3 undef, 5, "Found at least one Light on";;\
fhem("set alleLampen on");;\
fhem("setreading alleLampen stateExt $anyOneOn");;\
} else {\
Log3 undef, 5, "All Lights off";; \
fhem("set alleLampen off");;\
fhem("setreading alleLampen stateExt $anyOneOn");; \
}\
}


2. In FTUI füge ich ein ganz normales switch Widget ein und verwende dort zusätzlich die Möglichkeit der Darstellung von "Bubbles" mit data-warn-on und dem vorher angelegten Dummy "alleLampen" als device. Dadurch habe ich dann einen switch, der immer aus ist, wenn alle Lampen aus sind, und immer an wenn irgendeine Lampe an ist. Mit einem Klick auf den switch in FTUI werden alle Lampen ausgeschaltet, falls eine noch an ist (die umgekehrte Richtung halte ich für mich nicht für sinnvoll, wäre aber auch möglich).
Hier noch der Code in FTUI:


<div class="cell">
    <div class="inline">Alle Lampen:</div>
    <div class="inline warn"
        data-type="switch"
        data-get="stateExt"
        data-warn="stateExt"
        data-warn-on=".*_([1-9]).*"
        data-set-off="allOff"
        data-cfg-device="2"
        style="font-size:0.8em;"></div>
</div>


Damit es schön aussieht, habe ich noch folgende Definitionen im fhem-tablet-ui-user.css.

div#warn {
    font-size: 40% !important;
    margin-left: 12%;
    margin-top: -4%;
    color: #aaa;
    font-weight: bold !important;
    font-family: sans-serif;
    letter-spacing: -1px;
}

div#warn-back {
    font-size: 40% !important;
    margin-left: 12%;
    margin-top: -5%;
    color: #aa2200;
}


das angehängte Bild zeigt, wie es in der Oberfläche aussieht (ist aber eher unspektakulär.

Für Rolladen und Fenster habe ich das auch noch (dort allerdings nur zur Anzeige, ohne aktive Schaltfunktion, und beim Rolladen gibt es 2 Bubbles für die Anzahl der komplett geöffneten und der komplett geschlossenen Devices).

Master_Nick

Rancher K8s Cluster mit nanoCUL (a-culfw) | IObroker | IT(V1&V3), IT-PIR, THGR122NX |Co² | alexa-fhem | WOL | NFC | Harmony UltimateHub | Anwesenheitserkennnung | Roomba | 10" Touch mit Node-Red | SonOff S20 | SonOff Touch | SonOff Dual | Rolladen | Und ganz viel anderes tolles Gerödel.... ;-)