New FHEM Tablet UI

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

Vorheriges Thema - Nächstes Thema

bjoernbo

#225
:-D Danke.
Zitatdata-fix="0"
hatte ich kurz nach meinem Post eingefügt und behebt somit das Problem im Bezug auf die Nachkommastelle. Trotzdem Danke für deine Tipp!

Deine Ausführung klingt so, als ob es geplant ist dies mal als Standard für das UI zu übernehmen ?!
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

Paul.baumann

Hallo,

@setstate: Wie siehts denn mit dem vielversprechenden Slider Button aus Post #168 aus?

Sind denn generell vertikale/horizontale Slider Widgets in Planung?

Paul
FHEM auf Raspberry 3
MaxCube (V1.20.04 a-culfw) für HM, MaxCube (V1.20.04 a-culfw) für diverse Max!, NanoCul 433/868, TinyTX-Nachbauten
Multiroom: mehrere Squeezelite-Clients auf Raspberry B+ und LMS auf QNap
Huger WM918 Wetterstation integriert
Tiao-Sprinkler (Open-Sprinkler) integriert

nesges

Zitat von: bjoernbo am 19 März 2015, 20:46:01
Deine Ausführung klingt so, als ob es geplant ist dies mal als Standard für das UI zu übernehmen ?!

Nicht meine Entscheidung. Ich mach auch nur Vorschläge :)

dancatt

Zitat von: setstate am 19 März 2015, 13:15:18
@dancatt: zu 1) probiere es mal mit Negation: data-get-off="((?!Wert1).)*" data-get-on="Wert1"
Bedeutet: alles außer Wert1 führt zum Ausschalten. Habe ich aber noch nicht selbst getestet, sollte aber klappen.
Klappt leider nicht.

Ich würde das aber auch nicht benötigen, wenn
Zitat
- wenn longpoll an ist, kommen alle Events ja live rein, dann nur aller 15 Minuten sicherheitshalber ein shortpoll (Full refresh) falls ein Event mal verlustig gegangen ist.
funktionieren würde.
Dann würde ja beim Klick auf Wert2 im UI der dummy in Fhem auf Wert2 gesetzt (funktioniert) und durch longpoll der Wert1 im UI ausgeschaltet (funktioniert nicht).
Ich hoffe mein Problem ist klar. Ansonsten kann ich morgen Abend mal ein einfaches Beispiel mit ein paar Screenshots bereitstellen.
Cubietruck: FHEM-Server 6.0

Homematic: HM-USB-CFG2, HM-CFG-LAN, HM-LC-SW1-FM, HM-LC-Sw1-Pl-DN-R1, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-SEC-SD, HM-PB-6-WM55

setstate

Zitat von: Paul.baumann am 19 März 2015, 20:53:05
Hallo,

@setstate: Wie siehts denn mit dem vielversprechenden Slider Button aus Post #168 aus?

Sind denn generell vertikale/horizontale Slider Widgets in Planung?

Paul


Hallo Paul,
sieht gut aus, das Widget läuft. Nur baue ich gerade die komplette fhem-tablet-ui.js um. Dort ist dann nur noch die Basisfuktionalität drin. Alle UI Controls sind dann als Object Literal separat nachladbar. Damit wird nur das geladen, was auch gebraucht wird. Das wird wichtig, wenn noch mehr Widgets hinzukommen. Bestimmt schaffe ich es noch diese Woche, es hochzuladen.
Der kommende Dimmer ist eher ein Toggle-Button (0/x%), Einstellen kann man dann die x%. Vertikale/horizontale klassische Slider wird es auch später mal geben. Das wird dann ein dünner grau/farbiger Strich mit einem runden Handle.

setstate

Zitat von: dancatt am 19 März 2015, 20:59:11
Klappt leider nicht.

Ich würde das aber auch nicht benötigen, wennfunktionieren würde.
Dann würde ja beim Klick auf Wert2 im UI der dummy in Fhem auf Wert2 gesetzt (funktioniert) und durch longpoll der Wert1 im UI ausgeschaltet (funktioniert nicht).
Ich hoffe mein Problem ist klar. Ansonsten kann ich morgen Abend mal ein einfaches Beispiel mit ein paar Screenshots bereitstellen.

Geht bei mir auf anhieb:

<div class="cell left">
<div type="switch" device="dummy1" data-get-off="((?!Wert1).)*" data-get-on="Wert1" class="cell" ></div>
<div type="label" class="cell">Wert1</div>
<div type="switch" device="dummy1" data-get-off="((?!Wert2).)*" data-get-on="Wert2" class="cell" ></div>
<div type="label" class="cell">Wert2</div>
<div type="switch" device="dummy1" data-get-off="((?!Wert3).)*" data-get-on="Wert3" class="cell" ></div>
<div type="label" class="cell">Wert3</div>
<div type="switch" device="dummy1" data-get-off="((?!Wert4).)*" data-get-on="Wert4" class="cell" ></div>
<div type="label" class="cell">Wert4</div>
</div>


Wenn du Button 1 drückst, kommt dieses Event in FHEM:
2015-03-19 22:04:40 dummy dummy1 Wert1

Das Ausschalt-Event abonnierst du mit data-get-off="xyz". Mit data-get-off="((?!Wert2).)*" schalten alle anderen Buttons aus, weil die Bedingung nicht erfüllt ist.
Hast du die neuste Version von Github bei dir drauf?

jehu

Hi bjoernbo,

Danke für das Icon und den Quelltext.
Ich dachte anfänglich das wäre ein Icon um das aktuelle Wetter direkt anzuzeigen. Ich finde den Look nämlich sehr schön.
Aber so ist das auch eine gute Lösung und ich werde dieses wohl in ähnlich übernehmen.

Toll was sich hier entwickelt  *Daumen hoch*  :)

Grüße
Jens
FHEM on RPi 2,
HM-CFG-USB - HM-CC-RT-DN - HM-ES-PMSw1-Pl - HM-LC-Bl1PBU-FM - HM-LC-SW1-FM - HM-LC-Sw1PBU-FM - HM-SEC-SCo - MiLight - SONOS - Lacrosse Jeelink
FTUI auf ODYS GATE

bjoernbo

Hi, ne ist nur eine Verknüpfung. Aber eine oder zwei Seiten vorher hat nesges ein JS zur Verfügung gestellt und ich meine es ging darum, dass Icon entsprechen der Luftfeuchtigkeit o.ä. anzeigen zu lassen.

Ja, ich finde das auch sehr interessant was sich hier in kurzer Zeit im Bezug auf das UI entwickelt hat. Ich hoffe das es noch weitere tolle Anbindungen gibt.
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

mago0211

Hallo zusammen,

ich habe heute angefangen mir ein Dashboard zu basteln. Leider sind meine Kenntnisse etwas begrenzt sorry dafür  :-\

Zur Heizungssteuerung setzte ich einen Dummy ein dort Trage ich die gewünschte Temperatur ein z.b.
set dummy 20

Ich wollte mir im Dashboard ein Thermostat Widget anzeigen lassen

<div type="thermostat" device="Bad_Soll_Temp" data-get="state" data-temp="state" data-set="state" class="cell"></div>

Die Anzeige funktioniert auch  :).
Aber wenn ich am Regler drehe und die Temperatur verstellen will steht in den Readings des dummys
state state19
ich will aber das nur 19 drin steht ohne dem Wort state davor.

Ich habe auch versucht data-set="state" weg zu lassen dann steht in den Readings
state desired-temp 23 Was irgendwie logisch erscheint da desired-temp ja der Standardwert ist.

Kann mir da jemand weiterhelfen?

Grüße
Markus

nesges


mago0211

Ja so gehts  ;D
Manchmal ist die Lösung so einfach  ::)

Da hab ich aber gleich noch ne Anschlussfrage  :-[

Wenn ich die Temperatur jetzt verstelle wird zwar im Dummy der Wert eingetragen aber im Dashboard springt die Anzeige wieder zurück dort sehe ich die Änderung erst wenn ich die Seite neu Lade ?

Gruß

nesges

Zitat von: mago0211 am 20 März 2015, 15:52:42
Wenn ich die Temperatur jetzt verstelle wird zwar im Dummy der Wert eingetragen aber im Dashboard springt die Anzeige wieder zurück dort sehe ich die Änderung erst wenn ich die Seite neu Lade ?

Hast du die anderen data-Attribute auch auf " " gesetzt? Versuch das mal. Falls das nichts bringt, zeig mal einen Ausschnitt aus dem Eventmonitor, beim Temperatur verstellen.

nesges

@setstate: Lösung für mago0211's Problem könnte sein
fhem-tablet-ui.js, Zeile 138:
$(this).data('set', (typeof $(this).data('set')=='undefined'?'desired-temp':$(this).data('set')));

Damit wird der Default nur heran genommen, wenn das Attribut nicht gesetzt ist. Sollte entsprechend bei allen Default-Werten angepasst werden. Da du grade größere Umbauarbeiten angekündigt hast, weiss ich nicht ob sich derzeit ein Pull-Request lohnt - ich mach aber gerne einen fertig! :-)

mago0211

also wenn ich die anderen auch auf " " einstelle wird der Wert nicht mehr angezeigt bzw. als Wert wird 10 angezeigt

Mit folgender Einstellung
<div type="thermostat" device="Bad_Soll_Temp" data-get="state" data-temp="state" data-set=" " class="cell"></div>

bekomme ich im Event Monitor
2015-03-20 16:14:35 dummy Bad_Soll_Temp 26
2015-03-20 16:14:45 dummy Bad_Soll_Temp 28


Und mit
<div type="thermostat" device="Bad_Soll_Temp" data-get=" " data-temp=" " data-set=" " class="cell"></div>

2015-03-20 16:15:52 dummy Bad_Soll_Temp 22
2015-03-20 16:15:59 dummy Bad_Soll_Temp 26


Bei Variante 2 bleibt der Regler dann auch auf den Eingestellten Wert stehen. Wenn ich aber jetzt die Seite neu lade wird der Wert im Dashboard auf 10 gesetzt im Dummy bleibt er auf dem eingestellten Wert stehen.

Also genau das gegenteilige Verhalten  :o

nesges

#239
Versuch das mal, damit funktioniert's hier bei mir:

    <li data-row="1" data-col="1" data-sizex="7" data-sizey="4">
        <div type="thermostat"
            device="TEST_DUMMY"
            data-get="STATE"
            data-temp="STATE"
            data-set=" "
            class="cell"></div>


Edit: data-temp funktioniert doch nicht. Aber da fehlt mir jetzt auch die Idee wie man's lösen könnte.