New FHEM Tablet UI

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

Vorheriges Thema - Nächstes Thema

setstate

Zitat von: Risiko am 17 Mai 2015, 10:19:04
Hallo.

Ich benötige mal Hilfe beim Dimmer.
Im Device kann man state und dimlevel getrennt Lesen und Setzen

Im Widget kann nur ein Parameter abgefragt werden, somit bekomme ich entweder den state oder den Dim-Wert synchron.
Setzen kann man über das Widget ja auch beides. Fehlt da nicht noch ne Möglichkeit den zweiten Parameter abzufragen?
Mit folgendem Code geht AN,AUS, DIM-Wert Setzen aber eben nicht Lesen. Wenn man also den Dimlevel wo anders ändert, bekommt das Widget es nicht mit.


<div data-type="dimmer" data-device="WZ_Dimmer" class="cell"
      data-get="state" data-get-on="on" data-get-off="off" data-set="dimlevel"></div>


Risiko.

Das ist zur Zeit bewusst so gebaut. Es gibt Devices, die bei OFF auch den Dim-Wert auf 0 setzen, dann könnte man beim nächsten mal nicht mehr einschalten. Das Dimmer Widget ist mehr statisch gedacht: ich kann das Device zwischen Off und Dim-X hin und her toggeln.
Man könnte noch einen Reading-Channel einbauen für get dim, um auf externe Änderungen des Levels zu reagieren, aber dann müsste noch eine Logik dahinter, die die Plausibilität des Werten prüft.

Risiko

Zitat von: setstate am 17 Mai 2015, 11:50:11
Das ist zur Zeit bewusst so gebaut. Es gibt Devices, die bei OFF auch den Dim-Wert auf 0 setzen, dann könnte man beim nächsten mal nicht mehr einschalten.
Das ist ja wirklich blöde. Meiner Meinung nach aber eher ein Problem des Devices.

Zitat von: setstate am 17 Mai 2015, 11:50:11
Man könnte noch einen Reading-Channel einbauen für get dim, um auf externe Änderungen des Levels zu reagieren, aber dann müsste noch eine Logik dahinter, die die Plausibilität des Werten prüft.

Was meinst du mit Logik und Plausibilität? Dachte da eher an einen optionalen Channel für get dim.
Würdest du das angehen oder sollte ich mal einen Vorschlag\Variante ausarbeiten?
Würden das dann wohl eher in dem anderen Thread weiter diskutieren!?

Risiko

setstate

Zitat von: Risiko am 17 Mai 2015, 12:28:35
Das ist ja wirklich blöde. Meiner Meinung nach aber eher ein Problem des Devices.

Was meinst du mit Logik und Plausibilität? Dachte da eher an einen optionalen Channel für get dim.
Würdest du das angehen oder sollte ich mal einen Vorschlag\Variante ausarbeiten?
Würden das dann wohl eher in dem anderen Thread weiter diskutieren!?

Risiko

Ja, ich dachte an data-dim. Aber beim Update soll der nicht einfach übernommen werden, sonder eine Plausi-Check-Logik  soll prüfen, ob es sinnvolle Werte sind -> z.B. 0,100,off,on ausgeschlossen.

Wenn du Lust hast, kannst du gerne die Anpassung versuchen, ich bin gerade mit dem Aufbau meines MPD Servers und die Einbindung ins GUI eingebunden.
Aber bitte bei jeder Zeile Code überlegen, ob es auch einfach und mit weniger Code funktioniert. Genau wie das UI, soll auch der Code minimalistisch gehalten werden. Beim Thermostat kann man auch gut sehen, wie mehrere Reading beachtet werden. Es sollten eigentlich nur 4-5 Zeilen hinzukommen: Im init Teil den Default Wert festlegen und ins Werteholen von FHEM mit aufnehmen: "readings[$(this).data('dim')] = true;" und dann im Update Teil "elem.setDimValue( parseInt(val));" setzen, wenn es Sinn macht - vom Wert her.

bjoernbo

Wie kann ich 2 Kommandos nacheinander absetzten. Ich muss auf den Kanal 62 wechseln. Hierzu muss ich erst die 6 und anschließend sofort die 2 senden.

Sofortiges senden funktioniert nicht:
Zitat<div data-type="button"
                  data-on-background-color="rgb(111,69,120)"
                  ....
                 data-fhem-cmd="set hub command 24775848 Number62">
         </div>


DANKE im voraus
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

setstate

#1534
Schreib bei data-fhem-cmd das rein, was du auch im FHEMWEB absetzen würdest. Also, das gleiche nochmal dahinter, mit Semikolon getrennt. (Ungetestet)

bjoernbo

manchmal ist es echt zu einfach.

Danke.

So funzt es:
Zitatdata-fhem-cmd="set hub command 24775848 Number6;set hub command 24775848 Number2"
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

StG (DD)

Hallo Mario,

kannst Du bitte beim Widget Level auch das "negated" dazu nehmen. Benutze es zu Anzeige des Rolladenstands, will es aber nicht wie beim Slider verändern.

Und hast Du noch einen Tipp?
Ich möchte das Level-Widget direkt neben dem Circlemenü haben. Der seitliche Abstand ist recht groß, somit passen die nicht zusammen in ein Gridster Feld. Hast Du eine Idee?

Und bei der Anzeige der Zisterne ist das Level etwas nach links gerutscht - keine Idee, warum es nicht mittig ist.


<div class="top-space left-space">
            <div class="left">
                <div data-type="switch" data-device="HM_396DFC" data-icon="fa-sort"  class="darker small"></div>
                <div data-type="label" class="darker large">Rolltor</div>
            </div>
            <div class="left top-space left-space-2x">
                <div data-type="label" class="darker inline ">Zisterne: </div>
                <div data-type="label" data-device="HM_339D6A"  data-get="liter" data-unit=" l" class="darker inline "></div>
                <div data-type="level" data-device="HM_339D6A"  data-limits='[0,20,35]' data-colors='["#ac0014","#aa6900","seaGreen"]' class="horizontal "></div>
            </div>
            <div class="cell top-space right" >
                <div data-type="label" class="darker">Frühbeet</div>
                <div data-type="label" data-device="HM_2F220D" data-get="temperature" data-unit=" %B0C%0A" class="darker inline large"></div>
                <div data-type="label" data-device="HM_2F220D" data-get="humidity" data-unit=" %" class="darker inline large"></div>
            </div>
        </div>


Generell werde ich mit der Positionierung nicht warm, vor allem wenn man längere Gridster Elemente hat. Da wäre ein Koordinatensystem für die Widgets toll.

l3skon3

#1537
Hallo,

ich würde gern FTUI aussenhalb von FHEM legen geht das und wie muss die abgeänderte
define tablet_ui HTTPSRV tablet/ ./www/tablet Tablet Frontend
lauten

mein Pfad ist /var/www/ftui

Danke im Vorraus

########################
erledigt

define tablet_ui HTTPSRV ftui/ /var/www/ftui FTUI

führte zum erfolg

nesges

Zitat von: setstate am 16 Mai 2015, 14:02:30
Beim Button gibt es data-fhem-cmd
Beim Push data-cmd, das default 'set' ist

Ins Button-Widget baue ich data-cmd als Alias für data-fhem-cmd ein, dann verhalten die beiden sich in dem Punkt gleich.

nesges

Zitat von: tomster am 16 Mai 2015, 14:15:01

                data-get-off="!stop"
...
data-get-off="!play"


Beim ersten Aufruf der Seite stimmen die angezeigten Stati (Play in off-color; Stop in on-color). Klicke ich nun auf Start, wird korrekt <set Wohnzimmer.MPD play> an FHEM geschickt. Nun sind aber beide Icons in on-color. Eigentlich sollte Stop in den off-color wechseln. Erst ein erneuter Refresh lässt die Stati korrekt erscheinen. Kann das daran liegen, dass beide Widgets auf den quasi-gleichen Status zugreifen?

"!stop" und "!play" gibt es nicht. Wahrscheinlich hast du wegen "!on" angenommen, es gäbe einen !-Operator. Es ist einfacher: "!on" ist kein Keyword und bedeutet "alles ausser der Wert von data-get-on". Du willst hier also vermutlich in beiden Fällen "!on" verwenden.

nesges

Zitat von: fh168 am 16 Mai 2015, 15:18:28
Frage: 2 verschiedene Tablets, eines mit 800x600 und eins iPad Mini 3.
Beide sollen unterschiedliche Contents anzeigen, klappt das?

FTUI löst das Problem nicht, du kannst aber einfach zwei verschiedene HTML-Seiten anlegen und diese direkt aufrufen oder per Javascript passend umleiten.

nesges

Zitat von: pnewman am 16 Mai 2015, 17:10:56
Hallo nesges,
dein DEMO ist enorm! Bringt mich auf viele Ideen.
Frage: Wie hast Du das circlemenu abgeändert, so dass alle Widges ein farbiges Symbol darstellen?
Das mittlere konnte ich nach setstates vorschlag aus diesem Thread ändern, aber an den anderen scheitere ich noch.
Hast du ein Beispiel für mich?

Danke! :) Da die Demo komplett im Quellcode offen liegt, kannst du's dir direkt dort anschauen. Das Repository mit allen Sourcen findest du unter https://github.com/nesges/TabletUI-Demo-WOPR. Für den zentralen Button im Circle-Menü verwende ich idR ein symbol-Widget, für die äusserne button-Widgets. In denen setze ich data-off-background-color um die Farbe zu ändern.

nesges

Zitat von: Nobby1805 am 17 Mai 2015, 00:19:03
Das steht auch weder im Wiki noch in der, wie nesges schrieb, echten Doku ;)
im Wiki korrigiere ich das jetzt

War übrigens nicht böse gemeint :)

Nobby1805

Zitat von: nesges am 17 Mai 2015, 23:59:18
War übrigens nicht böse gemeint :)
habe ich auch nicht so aufgefasst  ;D
FHEM-Featurelevel: 6.2   (fhem.pl:28227/2023-11-29) auf Windows 10 Pro mit Strawberry Perl 5.32.1.1-32bit
TabletUI: 2.7.15
IO: 2xHMLAN(0.965)|HMUSB2(0.967)

setstate

Nein, auf keinen Fall ... Gemeint war nur die Readme im Github Project. Die Ursprungsdoku ...
Die FHEM Wiki Seiten sind auch sehr gut, hoch frequentiert, und deshalb:
Vielen, vielen Dank an Mw fhem und Nobby1805 für die Pflege des FTUI FHEM Wiki

http://www.fhemwiki.de/wiki/FHEM_Tablet_UI