New FHEM Tablet UI

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

Vorheriges Thema - Nächstes Thema

chris1284

#345
es aktualisert sofort den status!
longpol solltest du in fhem auf 1 (attr fhemweb longpoll 1) stehen haben

Damian

Zitat von: chris1284 am 26 März 2015, 15:50:01
es aktualisert sofort den status!
longpol solltest du in fhem auf 1 (attr fhemweb longpoll 1) stehen haben

Ich habe bei mir attr fhemweg longpoll auf 1 insb. für Plots in fhemweb. Wenn eine Lampe nicht über das GUI geschaltet wird, dann wird der Status in diesem GUI bei mir nicht sofort aktualisiert wie in fhemweb. So wie ich es verstanden habe, wird bei diesem GUI nur gepollt.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

bjoernbo

mmm..ich habe longpoll auf 1 stehen und nach max. 3-4 Sekunden hat sich der Status im UI aktualisiert.
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

Brockmann

#348
Zitat von: Damian am 26 März 2015, 15:48:47
Ich habe es bereits auf 0 gesetzt.
Das longpoll in Deiner index.html (oder wie auch immer sie heisst), muss auf 1 stehen. Mit 0 wird longpoll deaktiviert (meine ich, steht hier irgendwo im Thread).
Der Wert ist kein Intervall, sondern an/aus.
Aktualisierung alle 30 Sekunden ist Shortpoll.

<meta name="longpoll" content="1">

Damian

Zitat von: Brockmann am 26 März 2015, 16:39:06
Das longpoll in Deiner index.html (oder wie auch immer sie heisst), muss auf 1 stehen. Mit 0 wird longpoll deaktiviert (meine ich, steht hier irgendwo im Thread).
Der Wert ist kein Intervall, sondern an/aus.
Aktualisierung alle 30 Sekunden ist Shortpoll.

<meta name="longpoll" content="1">

ja, das ist das Problem. Mit dieser Einstellung wird bei mir leider gar nicht aktualisiert, erst wenn ich aktiv F5 im Browser drücke. Das Attribut longpoll ist in FHEMWEB auf diesem Port ebenfalls auf 1 gestellt.


Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

jehu

Hallo Damian,

Genau das Problem hatte ich anfangs auch, weil ich das index.html nur teilweise auf meine Devices angeglichen habe.
Jedes Device in der index.html muss im data-device einem wirklich vorhandenem Device deiner Konfiguration entsprechen. Bitte entferne alle sonstigen anderen Devices. Ich möchte wetten, dass dann alles richtig aktualisiert ;-)

@setstate: Vielleicht solltest du diesen Punkt mit in der Readme aufnehmen. Es ist so verlockend das mitgeliefertes index.html nur teilweise zu ändern und schon passiert was. Aber es macht ein Haufen Probleme, so vorzugehen.

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

chris1284

in allen browsern die dir zur verfügung stehen?
ich habe es gerade noch mal getestet. sobald ich auf der intertechno-fehrnbedienung zum beispiel eine lampe schlate wird genau in dem moment schon in fhem und der tablet ui der status geändert.

einzig bei schnellem an/aus (statuswechsel) kommt tablet-ui nicht mit. wenn man zwischen dme schlaten jedoch 2-3 sekunden wartet funktionierts sauber.

selbst die 3-4 sekunden bjoernbo würde ich zu schon zu langsam finden und kann ich nicht bestätigen (liegt sicher aber auch an der leistung des unterbaus (serverhardware))

chris1284

zum thermostat:
ich habe gerade zeile 151 und 152 für die max/min angepasst (au die real-werte des rt)
knob_elem.knob({
'min':4.5,
'max':30.0,

zusätzlich step auf 0.5 gesetzt in zeile 156
'step': 1*$(this).data('step') || 0.5,

scheint problemlos zu funktionieren.

bjoernbo

Wer es gebrauchen kann:
Habe meine Ansicht für die Thermostate (HomeMatic) angepasst:
Es wird das Batterielevel, der Modus (auto/manuell) sowie die Boots-Funktion ausgegeben.

Zitat<div class="container">
        <div class="left">
                 <div data-type="thermostat" data-device="Wohnzimmer.Wandthermostat" data-get="desired-temp" data-temp="measured-temp" class="cell">
                    <div type="label" device="Wohnzimmer.Wandthermostat" data-get="humidity" data-unit=" %" class="cell small"></div>
        </div></div>
        <div class="container">
                <div class="label" class="cell">&nbsp;</div>
                <div data-type="label" data-device="CUL_HM_HM_TC_IT_WM_W_EU_303215" data-get="batteryLevel" data-unit="V" class="darker narrow"></div>
                <div class="label" class="cell">&nbsp;</div>
                <div data-type="label" data-device="Wohnzimmer.Wandthermostat" data-get="controlMode" class="darker narrow"></div>
<div class="label" class="cell">&nbsp;</div>
                <div data-type="label" data-device="Wohnzimmer.Wandthermostat" data-get="boostTime" class="darker narrow"></div>
                </div>
    </div>

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

setstate

#354
Zitat von: chris1284 am 26 März 2015, 17:15:05
zum thermostat:
ich habe gerade zeile 151 und 152 für die max/min angepasst (au die real-werte des rt)
knob_elem.knob({
'min':4.5,
'max':30.0,

zusätzlich step auf 0.5 gesetzt in zeile 156
'step': 1*$(this).data('step') || 0.5,

scheint problemlos zu funktionieren.

Hallo Chris,

step konnte man schon mit data-step Attribute auf 0.5 stellen, ohne im Code zu ändern. Min und Max habe ich soeben nachgezogen. Diese kann man jetzt auch optional per HTML Attribute festlegen, die Defaultwerte bleiben bei 10 und 30, für den Fall, dass man nix angibt. Alle anderen außer data-type und  data-device sind auch optional, defaults sind für fast alle hinterlegt. Wenn data-valve fehlt, gibt's keinen Default-Wert, weil man damit die zusätzliche Anzeige des Ventils unterdrücken kann.

<div data-type="thermostat" data-device="Wohnzimmer.Wandthermostat"
  data-get="desired-temp"
  data-temp="measured-temp"
  data-valve="ValvePosition"
  data-step="0.5"   
  data-min="4.5"
  data-max="30"
     class="cell">

Damian

#355
Zitat von: jehu am 26 März 2015, 17:02:09
Hallo Damian,

Genau das Problem hatte ich anfangs auch, weil ich das index.html nur teilweise auf meine Devices angeglichen habe.
Jedes Device in der index.html muss im data-device einem wirklich vorhandenem Device deiner Konfiguration entsprechen. Bitte entferne alle sonstigen anderen Devices. Ich möchte wetten, dass dann alles richtig aktualisiert ;-)

@setstate: Vielleicht solltest du diesen Punkt mit in der Readme aufnehmen. Es ist so verlockend das mitgeliefertes index.html nur teilweise zu ändern und schon passiert was. Aber es macht ein Haufen Probleme, so vorzugehen.

Grüße
Jens

Hallo Jens danke für die Tipps. Ich habe jetzt nur noch gelassen:

</head>
<body>

<!-- available class: container,left,right,cell,narrow,darker,big,small -->
<!-- available data-type: contact,dimmer,homestatus,label,push,slider,switch,thermostat,volume -->

<div class="gridster">
<ul>
<li data-row="2" data-col="1" data-sizex="1" data-sizey="2">
<header>GARTEN</header>
<div data-type="switch" data-device="FS" class="cell" ></div>
<div data-type="label" class="cell">FS20</div>

</li>
</ul>
</div>
</body>


Es funktioniert dennoch nicht.

Vielleicht liegt es daran, dass mein FHEM-Server auf einem Windowsrechner läuft. Getestet habe ich es mit Chrome und IE. Auf einem Windows Client kann ich noch nicht mal im Chrome  aktiv den Zustand schalten (Edit: schalten über IE funktioniert dagegen). Die Testregler konnte ich dagegen sowohl auf dem Server wie auf den Clients "drehen" allerdings ohne hinterlegte Funktionalität.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

bjoernbo

Frage in die Runde  ! Ist das Widget "SLIDER" schon impelementiert? Ich bekomme lediglich "DIMMER" angezeigt, allerdings kein "SLIDER"
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

setstate

Hallo Damian,

jetzt müsstest du uns mal deine index.html zukommen lassen. Ich werde aus deinen Angaben nicht mehr schlau.
Du schreibst von "regler ... drehen", in deinem Code sind aber keine Regler zusehen.
Ich möchte auch sehen, welche und wie die Scripts eingebunden sind.

bjoernbo

War das auf mich bezogen? Egal, hatte vergessen meine Test.html anzupassen. Jetzt funzt es :-D

By the Way. Den Farbregler habe ich jetzt auch drin für Lightify, jetzt suche noch die Farbwerte für die "WEIßE Lampe". Hat da jemand MIN und MAX Werte??
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

Damian

Zitat von: setstate am 26 März 2015, 19:16:00
Hallo Damian,

jetzt müsstest du uns mal deine index.html zukommen lassen. Ich werde aus deinen Angaben nicht mehr schlau.
Du schreibst von "regler ... drehen", in deinem Code sind aber keine Regler zusehen.
Ich möchte auch sehen, welche und wie die Scripts eingebunden sind.
OK.

Noch mal zur Übersicht:

Auf dem Windowsserver in Chrome:

Was funktioniert:

-ich kann den Schalter über GUI schalten, der Aktor (HM-Steckdose) wird geschaltet, der Zustand ändert sich im GUI

Was nicht funktioniert:

-trotz longpoll=1 (siehe index.html) wird Schalter im GUI nicht aktualisiert, wenn ich die Steckdose über FHEMWEB oder direkt an der Steckdose schalte.

Was funktioniert:

-longpoll=0 dagegen funktioniert im 30 Sekundentakt.

Auf einem Window Client:

Was nicht funktioniert:

-Über Chrome-Browser ist der Schalter nicht anklickbar (Farbe des Schalter ändert sich nicht).

-Über Internet Exporer ist der Schalter zwar anklickbar, aber der Aktor schaltet nicht.

Es scheinen mir hier einige Inkompatibilitäten zu existieren.

Meine Aussage zu den Reglern bezog sich auf deine Testkonfiguration. Die Regler kann ich in allen Browsern über GUI bewegen. Da ich aber noch keine echten Aktoren dahinter gelegt habe, kann ich zur echten Funktionalität noch nichts sagen, immerhin zeigt der Browser das entsprechende set-Kommandos für paar Sekunden an.

Ich hoffe, dass die Probleme jetzt etwas klarer sind.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF