New FHEM Tablet UI

Begonnen von setstate, 22 Februar 2015, 23:37:24

Vorheriges Thema - Nächstes Thema

setstate

Hallo MrWishbone,

bei der numerischen Variante muss das Array aufsteigend sein, weil es wird >= verglichen. Also musst du erst 2.0 vorn haben und 3.2 hinten.

Bei der regEx Variante fehlt einmal ein " Zeichen und das \ Zeichen muss doppelt sein, damit das jQuery $.isArray auf das regEx Array funktioniert. Ob das RegEx damit noch okay ist habe ich jetzt nicht probiert.

       <div data-type="symbol" data-device="BadHeizung" data-get="batteryLevel"
       data-background-icon="fa-circle"
       data-icons='["oa-measure_battery_100","oa-measure_battery_75","oa-measure_battery_50","oa-measure_battery_25","oa-measure_battery_0"]'
       data-get-on='["3\\.[0-9]","2\\.[789]","2\\.[456]","2\\.[123]","((2\\.0)|([01]\\.[0-9]))"]'
       data-on-colors='["#0CFB0C","#42BC0A","#F5FF10","#FB5909","#E50005"]'
       style="font-size:2em">

MrWishbone

Guten morgen setstate,

das die Werte Aufsteigend seine müssen hat mir gefehlt. Das scheint dann aber neu zu sein.

Ich habe mich aber nun für die RegEx Variante entschieden, dank des \\ funktionieren diese jetzt auch.

Vielen dank für die Hilfe

setstate

#1232
Zitat von: MrWishbone am 30 April 2015, 06:43:48
Guten morgen setstate,

das die Werte Aufsteigend seine müssen hat mir gefehlt. Das scheint dann aber neu zu sein.

Ich habe mich aber nun für die RegEx Variante entschieden, dank des \\ funktionieren diese jetzt auch.

Vielen dank für die Hilfe

Ja, das ist neu:  weil er das Array als 100% numerisch erkennt und damit mit >= von links nach rechts vergleicht. Wenn ein einziger Stringwert dabei gewesen wäre, z.B. "NA", wäre es nach dem alten Prinzip des Stringvergleichs behandelt worden und es hätte gepasst, wenn alle Werte dabei sind, die auftreten können. Mit RegEx ist es am sichersten, aber die Syntax ist nicht sooo einfach.
Die Suche nach dem passenden Indexwert des Array ist folgende
1. ist es ein numerisches Array, dann iterativer größer gleich Vergleich
2. gibt es ein RegEx-Match, dann nimm den letzten passenden nach einer kompletten Iteration durch das Array
3. Methode des JS indexOf mit normalem Stringvergleich

Mitch

Bin immer noch am Fehler suchen  :-[

Könnte es nicht mit diesem hier zu tun haben?
"Please rename widget attribute "type" into "data-type" in http://mbj.spdns.eu:8083/fhem/tablet - Details below:" fhem-tablet-ui.js:191:0
Object { 0: <div.fa-stack.fa-2x>, context: <div.fa-stack.fa-2x>, length: 1 } fhem-tablet-ui.js:192:8


Ich habe alle attribute im index.html umgestellt und data-type, data-get usw. eingestellt.
Wo kommen denn diese falschen Daten her?

Habe den Cache gelöscht, den Browser gewechselt, den Rechner gewechselt, aber immer kommen diese Fehler??
FHEM im Proxmox Container

setstate

Zitat von: Mitch am 30 April 2015, 15:25:04
Bin immer noch am Fehler suchen  :-[

Könnte es nicht mit diesem hier zu tun haben?
"Please rename widget attribute "type" into "data-type" in http://mbj.spdns.eu:8083/fhem/tablet - Details below:" fhem-tablet-ui.js:191:0
Object { 0: <div.fa-stack.fa-2x>, context: <div.fa-stack.fa-2x>, length: 1 } fhem-tablet-ui.js:192:8


Ich habe alle attribute im index.html umgestellt und data-type, data-get usw. eingestellt.
Wo kommen denn diese falschen Daten her?

Habe den Cache gelöscht, den Browser gewechselt, den Rechner gewechselt, aber immer kommen diese Fehler??

Wenn du das nicht weißt ... 8)
Im Browser in den Entwicklertools, dort wo auch die Webconsole ist, gibt es auch einen Reiter für Netzwerk. Dort könntest du im Detail sehen, woher jedes File gezogen wird, ob vom Server oder aus dem Cache, die Lafezeit und die vollständige URL.
Schau da mal rein ...

Hast du mehrere HTTPSRV im fhem.cfg ?

Mitch

Naja, das kenn ich, aber laut den Details kommt das File vom Server und darum verstehe ich die Fehler nicht.

Nein, nur ein HTTPSRV
FHEM im Proxmox Container

Mitch

So, das Problem ist gelöst.

Ist ja fast peinlich, aber es war ein Leerzeichen in einer Device-Bezeichnung  :-[

Tausend Dank für eure Unterstützung!!
FHEM im Proxmox Container

nesges

Zitat von: Mitch am 30 April 2015, 17:20:11
Ist ja fast peinlich, aber es war ein Leerzeichen in einer Device-Bezeichnung  :-[

Sowas: data-device="Devicename "?

Mitch

FHEM im Proxmox Container

nesges

Zitat von: Mitch am 30 April 2015, 17:31:30
Ja, genau

Ok, das war schwer zu finden. Habe grade nen Patch fertig gemacht, der sowas in Zukunft abfangen würde :)

Mitch

FHEM im Proxmox Container

setstate

#1241
Zum Thema Battery Control noch zwei Beispiele:

Voraussetzung: man hat sich das openautomation.css Stylesheet eingebunden.

Version mit RegEx Vergleich

<div data-type="symbol" data-device="BadHeizung" data-get="batteryLevel"
    data-icons='["oa-measure_battery_100","oa-measure_battery_75","oa-measure_battery_50","oa-measure_battery_25","oa-measure_battery_0"]'
    data-get-on='["3\\.[0-9]","2\\.[789]","2\\.[456]","2\\.[123]","((2\\.0)|([01]\\.[0-9]))"]'
    data-on-colors='["#505050","#505050","#505050","#ad3333","#ad3333"]'>
</div>


Version mit Größer-Gleich Vergleich und um 90° gedrehten Icons

<div data-type="symbol" data-device="BadHeizung" data-get="batteryLevel"
    data-icons='["oa-measure_battery_0 fa-rotate-90","oa-measure_battery_25 fa-rotate-90","oa-measure_battery_50 fa-rotate-90","oa-measure_battery_75 fa-rotate-90","oa-measure_battery_0 fa-rotate-90"]'
    data-get-on='["0","2","2.4","2.7","3.0"]'
    data-on-colors='["#ad3333","#ad3333","#505050","#505050","#505050"]'>
</div>


Rot wird es in meinem Beispiel erst ab 25% Rest, damit es nicht zu bunt auf dem Tablet wird und man besser den Überblick behält.

setstate

Zitat von: Marie am 29 April 2015, 21:08:41
Ich habe da noch einmal eine Frage bzgl. Dimmer bzw. Volume:

Es ist ja so das der dim-Wert erst gesendet wird wenn man den Knopf los lässt, das selbe gilt ja auch für das Volume Widget.
Bei einer Licht-, Helligkeits-oder Farbeinstellungen ist das für mein Empfinden aber unpraktisch.
Frage: ist es möglich das ohne große Probleme dahingehend zu ändern das z.b. die Helligkeitsänderung gesendet wird während man auf dem dim-Knopf mit dem Finger verweilt???

Nur mal so als Idee....

Grüße

Marie

Hallo Marie,

machbar wäre das, aber 1:1 kann man das nicht zu FHEM durchreichen, da verhaspelt sich das System, da die Latenzzeiten zu groß sind. Es dauert schon einige Millisekunden, bis es beim Device ankommt. Ausserdem werden dann zu viele Events hintereinander von dem UI geschickt. Man könnte versuchen aller 200ms einen neuen Wert zu schicken. Mal probieren ...

setstate

Update des Symbol Widgets

Neu: Möglichkeit zum zusätzlichen Anzeigen eines Overlay-Symboles als Warnung oder Anzahl-Visualisierung

Warnung Tür noch offen

    <div data-type="symbol" data-device="TerrassenTuer"
        data-get-on='["open","closed"]'
        data-icons='["ftui-door warn","ftui-door"]'
        data-on-colors='["#777","#555"]'
        class="narrow big"></div>


(http://knowthelist.github.io/fhem-tablet-ui/t%C3%BCr_warn.png)

Signalisierung Anrufe in Abwesenheit

    <div data-type="symbol" data-device="dummy1"
        data-get-on='["0","1"]'
        data-icons='["fa-fax","fa-fax warn"]'
        data-on-colors='["#555","#666"]'>
    </div>


(http://knowthelist.github.io/fhem-tablet-ui/phone_warn.png)

Zum Aktivieren des Overlay-Icons muss dem Icon zusätzlich die CSS Class 'warn' mitgeben werden. Numerische Werte bis 99 im Reading, was mit data-get angefragt wird, werden im Overlay-Icon direkt angezeigt. Alle anderen und Strings erzeugen nur ein Ausrufezeichen.

tomster

#1244
Zitat
Neu: Möglichkeit zum zusätzlichen Anzeigen eines Overlay-Symboles als Warnung oder Anzahl-Visualisierung

Ich hab mich nicht danach fragen getraut, aber genau DAS hab ich gesucht. Meine Gehversuche waren mehr als bescheiden bislang.
VIELEN Dank!

--edit--
das jetzt noch in einem "pagetab"...
--/edit--