New FHEM Tablet UI

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

Vorheriges Thema - Nächstes Thema

rizo

Zitat von: viegener am 20 Dezember 2015, 21:35:52
Wenn Du mehrere Befehle verschicken willst wäre der bessere Mechanismus vermutlich fhem selbst. Ein Dummy in dem Du bei Setzen der Temperatur diese an den Thermostat weitergibt und dann auch den burstXMit auslöst.


Sry ich benötige dabei leider wieder Hilfe.

wie schreibe ich denn einen Dummy der bei einem Thermostat bei jedem Temp wechsel automatisch burstXmit auch sendet?
oder muss jeweils einzeln für jede Temperatur ein dummy erstellt werden?

Stril

Hallo!

Seit ich auf Pagetab umgestellt habe, tue ich mir schwer mit dem Testen. Der FHEM-Server scheint zu cachen. Wenn ich Änderungen mache, sehe ich diese auch nach Browserneustart und Cache des Browsers löschen nicht. Über Nacht ist immer alles gut.

Was ich schon (ohne Erfolg) versucht habe, waren folgende Zeilen in der index.html:


<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />


Kann man dem Webserver von FHEM irgendwie das Cachen abgewöhnen?

Danke und Gruß
Phil

viegener

Zitat von: Stril am 21 Dezember 2015, 10:14:07
Seit ich auf Pagetab umgestellt habe, tue ich mir schwer mit dem Testen. Der FHEM-Server scheint zu cachen. Wenn ich Änderungen mache, sehe ich diese auch nach Browserneustart und Cache des Browsers löschen nicht. Über Nacht ist immer alles gut.

Das Problem mit dem Cachen kenne ich leider auch, für Firefox ist die Lösung den http-Cache temporär zu deaktivieren:
In about:config --> nach use-http suchen --> die Option für den test auf false setzen

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Stril

Zitat von: viegener am 21 Dezember 2015, 13:20:38
Das Problem mit dem Cachen kenne ich leider auch, für Firefox ist die Lösung den http-Cache temporär zu deaktivieren:
In about:config --> nach use-http suchen --> die Option für den test auf false setzen
Hallo!

Prima, wobei bei mir die Optionen wie folgt benannt waren:
browser.cache.disk.enable
browser.cache.memory.enable

Gruß
Phil

viegener

Spannend die Option network.http.use-cache die ich immer verwendet habe ist gerade mit Version 43 entfernt worden  >:(
http://www.ghacks.net/2015/12/15/firefox-43-find-out-what-is-new/

Warum auch immer die Option entfernt wurde kann ich nicht nachvollziehen, sie hat jedenfalls bis letzte Woche gut funktioniert.

Vielleicht hilft auch die Developer Toolbox, die hat auch eine Option zum deaktivieren des Caches:

https://developer.mozilla.org/en-US/docs/Tools/Tools_Toolbox

Ich kann das leider gerade selber nicht probieren.

Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Stril

Hallo!

Noch eine andere Sache:
Nutzt von euch jemand das "Reload"-Widget? Bei mir kommt irgendwie kein Icon, obwohl ich mich nah am Wiki gehalten habe:


<div data-type="reload"
        data-device="RELOAD"
        data-get="action"
        data-reload-on="1"
        data-icon="fa-refresh"
        data-reset-to="0"></div>


Habt ihr dazu eine Idee?

Gruß
Phil

ambiman

Hallo zusammen,

da ich eine Nachricht (inkl. Bestätigung) auf mein Tablet bringen wollte, habe ich mir heute ein neues Widget names "alertmsg" gebaut.
Da es eine Standard JavaScript Alert Nachricht ist, muss diese vom Benutzer bestätigt werden.
Basis hierfür war das 'label'-Widget.

Das Widget prüft auf das Reading 'msg'.
Sollte dieses in FHEM gesetzt werden erscheint sofort die Nachricht (msg) auf dem FTUI.

Eine Nachricht kann abgesetzt werden mit dem Befehl 'setreading <device> msg "NACHRICHT"'

Folgenden Dummy nutze ich derzeit:


Internals:
   CFGFN
   NAME       ftuimsg
   NR         24194
   STATE      ???
   TYPE       dummy
   Readings:
     2015-12-21 15:14:24   msg             ftui-processed
Attributes:


Vielleicht kann es noch jemand gebrauchen....

Einfach als 'widget_alertmsg.js' in den Ordner 'tablet' speichern und im FTUI HTML File wie folgt einbinden (das Widget selbst ist nicht sichtbar):


<div data-type="alertmsg" class="cell" data-device="ftuimsg"></div>


Anbei der Code:


if(typeof widget_widget == 'undefined') {
    loadplugin('widget_widget');
}

var widget_alertmsg = $.extend({}, widget_widget, {
    widgetname:"alertmsg",
    init_attr: function(elem) {
        elem.data('get',            elem.data('get')                    || 'msg');
        elem.data('part',           elem.data('part')                   || -1);

        readings[elem.data('get')] = true;
    },
    init: function () {
        this.elements = $('div[data-type="'+this.widgetname+'"]');
        this.elements.each(function(index) {
            widget_alertmsg.init_attr($(this));
        });
    },
    update: function (dev,par) {
        var base = this;
        var deviceElements= this.elements.filter('div[data-device="'+dev+'"]');
        deviceElements.each(function(index) {
            if ( $(this).data('get')==par){
                var value = ($(this).hasClass('timestamp'))
                            ?getReadingDate( $(this), 'get' )
                            :getDeviceValue( $(this), 'get' );
                if (value){
                    var val = getPart(value,-1);

    if (val){               
if ( val != 'ftui-processed' ){
//JS Alert message
alert(val);
setFhemStatus("setreading "+$(this).data('device')+" "+$(this).data('get')+" ftui-processed");
}
            }
                 }
            }
        });
    }
});


SirUli

Zitat von: Stril am 21 Dezember 2015, 15:24:40Nutzt von euch jemand das "Reload"-Widget?

<div data-type="reload"
        data-device="RELOAD"
        data-get="action"
        data-reload-on="1"
        data-icon="fa-refresh"
        data-reset-to="0"></div>

Das Widget wartet nur auf 1 aus dem RELOAD Device und erzeugt aber kein separates Icon. Es löst dann einfach nur den Reload aus.

Viele Grüsse, Uli

Stril

Hallo!

Danke, dann habe ich das falsch verstanden. Hab es jetzt so gelöst:


<A HREF="javascript:history.go(0)">
<div style="font-size:30px; color:rgb(96, 0, 0);" data-type="push" data-icon="fa-refresh" class="cell" data-off-background-color="#aa6900" data-off-color="#aa6900"></div>
</A>
<div data-type="label" class="small narrow darker">Reload</div>

rizo

Hallo!

ich habe das mit der Heizung nun wie folgt gelöst:

define BadHeiz notify HM_33662A_Clima:set_desired-temp.* set HM_33662A_Clima burstXmit

nun wird bei jeder Temp Änderung ein burstXmit gesendet und Temperatur sofort geändert.

Nur leider schickt fhem den Befehl 2x raus, was ja wohl nicht so gut sein soll wegen Overflow.

Hier Auszug aus Log:

CUL_HM set HM_33662A_Clima burstXmit
CUL_HM set HM_33662A_Clima burstXmit
CUL_HM set HM_33662A_Clima desired-temp 20

warum wird es 2x gesendet?

chunter1

#3370
Bei mir funktioniert seit dem heutigen updaten das "push" nicht mehr.  :(

Der code hier erzeugt keine toast message und kein event mehr.


<div data-type="push"
     data-device="LightAll"
     data-cmd="trigger"
     data-set="on"
     class="cell">
</div>


Hats hier eine Änderung gegeben?

Stril

Zitat von: chunter1 am 21 Dezember 2015, 20:39:19
Bei mir funktioniert seit dem heutigen updaten das "push" nicht mehr.  :(

Der code hier erzeugt keine toast message und kein event mehr.


<div data-type="push"
     data-device="LightAll"
     data-cmd="trigger"
     data-set="on"
     class="cell">
</div>


Hats hier eine Änderung gegeben?

Hallo!

Siehe 2 Seiten vorher:

<div data-type="push"
     data-device="LightAll"
     data-cmd="trigger"
     data-set-on="on"
     class="cell">
</div>

chunter1


DanHard


Zitat von: DanHard am 19 Dezember 2015, 17:49:50
Hallo Zusammen

Einige Posts zuvor habe ich erwähnt das bei mir die Daten teilweise nicht richtig geladen werden.
Entweder ist die Formatierung durcheinander oder es macht den Anschein das die CSS Datei nicht geladen wird.
Leider hat das Verwenden der Mobile Vorlage nichts gebracht. Bei jedem 3 oder 4 Laden der Seite wird sie nicht korrekt dargestellt.
Das "longpoll_delay" habe ich bereits bis 3000 erhöht.
Anbei habe ich euch zwei Beispiele angefügt.

Was ich versucht habe:
Bei der Console im Chrome habe ich die Network Geschwindigkeit auf "Good 3G" gestellt, dann sehe ich das gleiche wie im
Safaribrowser auf dem iPhone 6, also die Seite wird nicht korrekt dargestellt.
Der grosse Unterschied:
Chrome auf Windows: Die Seite ladet fertig und es wird alles richtig angezeigt.
Safari in iPhone 6: Die Seite ladet aber ich habe das Gefühl das er nach einer gewissen Zeit mit dem Laden stoppt.

Ich hoffe jemand kann mir helfen und kann  mit meinen Erkenntnissen was anfangen.
Hier nochmals mein kompletter Quelltext:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
        <meta name="widget_base_width" content="120">
        <meta name="widget_base_height" content="115">
        <meta name="widget_margin" content="1">
        <meta name='gridster_disable' content='0'>
        <meta name="mobile-web-app-capable" content="yes">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="longpoll" content="1">
        <meta name="longpoll_delay" content="3000">
        <meta name="debug" content="0">
        <meta http-equiv="Cache-Control" content="no-store" />

    <link rel="stylesheet" href="/fhem/tablet/lib/jquery.gridster.min.css" />
    <link rel="stylesheet" href="/fhem/tablet/css/fhem-tablet-ui.min.css" />
    <link rel="stylesheet" href="/fhem/tablet/css/fhem-mobil-ui.css" />
    <link rel="stylesheet" href="/fhem/tablet/lib/font-awesome.min.css" />
    <link rel="stylesheet" href="/fhem/tablet/lib/jquery.toast.min.css" />

    <script src="/fhem/pgm2/jquery.min.js" defer></script>
    <script src="/fhem/tablet/lib/jquery.toast.min.js" defer></script>
    <script src="/fhem/tablet/lib/jquery.gridster.min.js" defer></script>
    <script src="/fhem/tablet/js/fhem-tablet-ui.min.js" defer></script>


    <title>Homeinfo</title>
</head>

<body>
<div class="gridster">
<ul>

<li data-row="1" data-col="1" data-sizex="1" data-sizey="1">
<header>Wohnzimmer</header>
<div data-type="label" data-device="wz_temphumi" data-get="temperature" data-unit="%B0C%0A" data-limits='[0,10,15,21,23]' data-colors='["#ffffff","#6699ff","#AA6900","#AD3333","#FF0000"]' class="cell big"></div>
<div data-type="label" data-device="wz_temphumi" data-get="humidity" data-unit="%" data-limits='[-1,20,39,59,65,79]' data-colors='["#ffffff","#6699ff","#AA6900","FFCC80","#AD3333","#FF0000"]' class="cell big"></div>
</li>

<li data-row="1" data-col="2" data-sizex="1" data-sizey="1">
<header>Schlafzimmer</header>
<div data-type="label" data-device="sz_temphumi" data-get="temperature" data-unit="%B0C%0A" data-limits='[0,10,15,21,23]' data-colors='["#ffffff","#6699ff","#AA6900","#AD3333","#FF0000"]' class="cell big"></div>
<div data-type="label" data-device="sz_temphumi" data-get="humidity" data-unit="%" data-limits='[-1,20,39,59,65,79]' data-colors='["#ffffff","#6699ff","#AA6900","FFCC80","#AD3333","#FF0000"]' class="cell big"></div>
</li>

<li data-row="2" data-col="1" data-sizex="2" data-sizey="1">
<header>Lampen</header>
<div class="cell center">
<div class="left inline">
<div data-type="switch" class="cell inline" data-device="ge_it2" data-get-on="on" data-get-off="off"></div>
<div data-type="label" class="cell">Pflanzen</div>
</div>
<div class="left inline">
<div data-type="switch" class="cell inline" data-device="ge_it1" data-get-on="on" data-get-off="off"></div>
<div data-type="label" class="cell">Sofa</div>       
</div>
<div class="left inline">
<div data-type="switch" class="cell inline" data-device="ge_it3" data-get-on="on" data-get-off="off"></div>
<div data-type="label" class="cell">X-Mas</div>       
</div>
</div>
</li>

<li data-row="3" data-col="1" data-sizex="2" data-sizey="1" class="gs-w" style="background-color: rgb(42, 42, 42);">
<header>Termine</header>
<div class="cell">
<div data-type="symbol" data-background-icon="fa-circle-thin " data-off-background-color="#7A7A7A" data-on-background-color="#7A7A7A" data-device="Waschen" data-get='STATE' data-off-color="#4747D1" data-get-on='["off","^[01]$","^[1-9][0-9]|[2-9]$"]' data-icons='["fa-spinner warn","fa-spinner warn blink","fa-spinner warn"]' data-on-colors='["#5CA36A","#5CA36A","#5CA36A"]' class="smal"></div>

<div data-type="symbol" data-background-icon="fa-circle-thin " data-off-background-color="#7A7A7A" data-on-background-color="#7A7A7A" data-device="Karton" data-get='STATE' data-off-color="#996633" data-get-on='["off","^[01]$","^[1-9][0-9]|[2-9]$"]' data-icons='["fa-newspaper-o warn","fa-newspaper-o warn blink","fa-newspaper-o warn"]' data-on-colors='["#996633","#996633","#996633"]' class="smal"></div>

<div data-type="symbol" data-background-icon="fa-circle-thin " data-off-background-color="#7A7A7A" data-on-background-color="#7A7A7A" data-device="Papier" data-get='STATE' data-off-color="#E6E600" data-get-on='["off","^[01]$","^[1-9][0-9]|[2-9]$"]' data-icons='["fa-newspaper-o warn","fa-newspaper-o warn blink","fa-newspaper-o warn"]' data-on-colors='["#f9f9f9","#f9f9f9","#f9f9f9"]' class="smal"></div>
</div>
</li>

<li data-row="4" data-col="1" data-sizex="2" data-sizey="1.2" class="gs-w" style="background-color: rgb(42, 42, 42);">
<header>Wetter Aussenbereich</header>
<div class="centered" style="padding-top:10px !important;padding-bottom:15px !important">           
       
<div class="left">
<div data-type="label" data-subtype="Temperature" data-device="aussen_temphumi" class="cell big" data-get="temperature" data-unit=" %B0C%0A" data-limits="[0,10,15,21,23]" data-colors="[&quot;#ffffff&quot;,&quot;#6699ff&quot;,&quot;#AA6900&quot;,&quot;#AD3333&quot;,&quot;#FF0000&quot;]" style="color: rgb(170, 105, 0);">17.6<span style="font-size: 50%;"> °C</span></div>

<div data-type="label" data-subtype="Humidity" data-device="aussen_temphumi" class="cell big" data-get="humidity" data-unit=" %" data-limits="[-1,20,39,59,65,79]" data-colors="[&quot;#ffffff&quot;,&quot;#6699ff&quot;,&quot;#AA6900&quot;,&quot;FFCC80&quot;,&quot;#AD3333&quot;,&quot;#FF0000&quot;]" style="color: rgb(170, 105, 0);">50<span style="font-size: 50%;"> %</span></div>
</div>

<div class="left">
<div data-type="label" data-device="Meteo" data-get="fc1_wday" style="margin-bottom:5px">Do<span style="font-size: 50%;"></span></div>
<div data-type="weather" data-device="Meteo" data-get="fc1_weather" data-imageset="meteocons" style="font-size:16px;padding:5px;margin:0;margin-top:-5px;" class="weather" data-icon="Q"></div>
                   
<div class="" style="padding:0px 5px 0px 0px">
<div data-type="label" data-device="Meteo" data-get="fc1_tempMin" data-unit="&deg;C" class="inline">XX</div>\
<div data-type="label" data-device="Meteo" data-get="fc1_tempMax" data-unit="&deg;C" class="inline">XX</div>
</div>

<div data-type="label" data-device="Meteo" data-get="fc1_chOfRain" data-unit="%">10<span style="font-size: 80%;">%</span></div>
</div>

<div class="left">
<div data-type="label" data-device="Meteo" data-get="fc2_wday" style="margin-bottom:5px">Do<span style="font-size: 70%;"></span></div>
<div data-type="weather" data-device="Meteo" data-get="fc2_weather" data-imageset="meteocons" style="font-size:16px;padding:5px;margin:0;margin-top:-5px;" class="weather" data-icon="Q"></div>

<div class="" style="padding:0px 5px 0px 0px">
<div data-type="label" data-device="Meteo" data-get="fc2_tempMin" data-unit="&deg;C" class="inline">XX</div>\
<div data-type="label" data-device="Meteo" data-get="fc2_tempMax" data-unit="&deg;C" class="inline">XX</div>
</div>
<div data-type="label" data-device="Meteo" data-get="fc2_chOfRain" data-unit="%">10<span style="font-size: 50%;">%</span></div>
</div>
</div>

</ul>
</div>
</body>
</html>


Falls ihr noch angaben braucht, nur melden, dann kann ich's nachliefern.
Gruss

Hat niemand eine Idee oder habe ich zuwenig Infos geliefert?

Gruss
- FHEM auf RaspberryPi B
- RFXTRX 433
- 3x IT-1500
- 3x Thermo-, Hygro-Sensor TS34C

chris1284

#3374
Zitat von: Stril
Seit ich auf Pagetab umgestellt habe, tue ich mir schwer mit dem Testen. Der FHEM-Server scheint zu cachen. Wenn ich Änderungen mache, sehe ich diese auch nach Browserneustart und Cache des Browsers löschen nicht. Über Nacht ist immer alles gut.

Zitat von: viegener am 21 Dezember 2015, 14:56:10
Vielleicht hilft auch die Developer Toolbox, die hat auch eine Option zum deaktivieren des Caches:

man sollte nicht am browser spielen müssen damit die tui funktioniert. seit ich wieder von pagetab weg bin und pagebuttons nutze funktioniert die ui mal sowas von zuverlässig
(kein caching-problem, keine ladeprobleme mehr)