New FHEM Tablet UI

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

Vorheriges Thema - Nächstes Thema

Phil__

Zitat von: Phil__ am 13 Mai 2015, 19:35:51
Vor einer ganzen Zeit war hier mal ein Problem mit dem verzögerten (mehrere Sekunden) bzw. nicht vollständigen Laden von Widgets auf einer Seite mit vielen Widgets die Sprache.

Ich habe immer noch das Problem das auf vielen meiner Seiten ein Timing-Problem besteht. Vor allem auf Seiten mit sehr vielen Widgets. Siehe meine Screenshots ein paar Seiten weiter vorne, zB heating, Wetter, home.
Gibt es da eine Lösung bzw Tipps um das Problem etwas zu bessern?

Viele Grüsse
1. Kann mir dazu jemand was sagen?
2. Kann ich die Probleme irgendwie beheben?
3. Haben noch mehr hier diese Probleme?
4. Falls ihr mehr Infos braucht, welche?

Viele Grüße
Server: Intel DH77EB + Core i3-2120 mit Ubuntu Server 14.04
Backup: Beaglebone Black
Homematic: HM-LAN-Adapter, HM-CC-RT-DN, HM-CC-TC, HM-LC-SW1-PL2, HM-SEC-RHS, HM-SEC-SC, HM-TC-IT-WM-W-EU, HM-WDS10-TH-O
Weitere: Denon-AVR, PhilipsTV, PhilipsHue, Raspi+XBMC
Nexus 7 (WebViewControl + FTUI)

mjoomla

Moin Moin,

mal nee Frage in die Runde, wie kann ich die CPU Temp anzeigen lassen?

Nutze SYSMON.

<div type="label" data-device="cpu_temp" data-get="temperature" data-fix="1"  data-unit="%B0C%0A"  class="cell big"></div>

das geht nicht.

MFg MJoomla

Thorsten Pferdekaemper

Zitat von: mjoomla am 15 Mai 2015, 11:00:17<div type="label" data-device="cpu_temp" data-get="temperature" data-fix="1"  data-unit="%B0C%0A"  class="cell big"></div>
Muss das nicht data-get="cpu_temp" heißen und statt "cpu_temp" bei data-device den Namen Deines SYSMON-Devices?
Gruß,
   Thorsten
FUIP

Phil__

Zitat von: mjoomla am 15 Mai 2015, 11:00:17
Moin Moin,

mal nee Frage in die Runde, wie kann ich die CPU Temp anzeigen lassen?

Nutze SYSMON.

<div type="label" data-device="cpu_temp" data-get="temperature" data-fix="1"  data-unit="%B0C%0A"  class="cell big"></div>

das geht nicht.

MFg MJoomla
data-device muss dein sysmon device sein und data-get="CPU_temp"
Server: Intel DH77EB + Core i3-2120 mit Ubuntu Server 14.04
Backup: Beaglebone Black
Homematic: HM-LAN-Adapter, HM-CC-RT-DN, HM-CC-TC, HM-LC-SW1-PL2, HM-SEC-RHS, HM-SEC-SC, HM-TC-IT-WM-W-EU, HM-WDS10-TH-O
Weitere: Denon-AVR, PhilipsTV, PhilipsHue, Raspi+XBMC
Nexus 7 (WebViewControl + FTUI)

tomster

Ich versuche gerade die Player-Steuerung für meinen MPD anzupassen. Deshalb möchte ich, dass die Play- oder Stop-Taste den aktuellen Status des Players (also Play oder Stop) mittels on-color wiedergibt. Dummerweise wird der richtige Status nur bei einem Refresh der Seite angezeigt. Clicke ich bei laufendem Player auf Stop, dann sind beide Icons mit der on-color eingefärbt. Zudem ist die Logik der Switches ein Toggle zwischen Play und Stop. Die beiden Icons sollen aber dezidiert nur jeweils für Play oder Stop zuständig sein. Wo liegt mein Denkfehler?

<div data-type="switch"
                data-device="Wohnzimmer.MPD"
                data-get="state"
                data-get-on="play"
                data-get-off="stop"
                data-icon="fa-play"
                data-background-icon="-"
                data-set="play"
                data-on-color="#aa6900"
                data-off-color="#505050"
                class="inline">
        </div>

Risiko

Zitat von: viegener am 14 Mai 2015, 13:27:30
Ich habe mal mit widget_pagetab herumgespielt und habe eine Lösung gebaut, die bei mir auch beim Refresh die richtige Seite lädt.

Die geänderte widget_pagetab.js anbei, vielleicht kann das ja jemand ausprobieren, der eine komplexere Umgebung hat.


Habe es getestet. Funktioniert bei mir auch prima.  So komplex ist aber meine Umgebung auch nicht.
Danke.

Wäre super, wenn es übernommen wird.

Risiko

nesges

Zitat von: tomster am 15 Mai 2015, 11:30:40
Ich versuche gerade die Player-Steuerung für meinen MPD anzupassen. Deshalb möchte ich, dass die Play- oder Stop-Taste den aktuellen Status des Players (also Play oder Stop) mittels on-color wiedergibt. Dummerweise wird der richtige Status nur bei einem Refresh der Seite angezeigt. Clicke ich bei laufendem Player auf Stop, dann sind beide Icons mit der on-color eingefärbt. Zudem ist die Logik der Switches ein Toggle zwischen Play und Stop. Die beiden Icons sollen aber dezidiert nur jeweils für Play oder Stop zuständig sein. Wo liegt mein Denkfehler?

Schau mal Demo: schlafzimmer-mpd.php und den Code dazu unter schlafzimmer-mpd.html. Da wird der Status zwar nicht in den Play- und Stop-Buttons dargestellt, aber unten rechts in dem grauen symbol-Widget (Zeile 820ff im Code). In der Demo bleibt er immer auf "Play", hängt ja kein echtes Fhem dran das den Status wechseln würde.

bjoernbo

@ nesges: Kannst Du ein paar Sätze zu deinem Pizza-Timer verlieren? Welche Funktion haben die "mobilen-Devices"? Wird nach dem Countdown ein Sound abgespielt?
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

setstate

@tomster:
Rein theoretisch sollte es passen. Es gibt in der Readme auch ein Beispiel für eine Toggle-Group, da wird es ähnlich gemacht.
Werden denn auch die angegebenen Status im Reading state sofort gesetzt? Ggf. Bei data-off="!on" benutzen.

nesges

#1494
Zitat von: bjoernbo am 15 Mai 2015, 12:07:26
@ nesges: Kannst Du ein paar Sätze zu deinem Pizza-Timer verlieren? Welche Funktion haben die "mobilen-Devices"? Wird nach dem Countdown ein Sound abgespielt?

Ja, genau. Das Herzstück davon sind dieses beiden Funktionen:

sub pizzatimer($$) {
    my $timer = shift;
    my $seconds = shift;

    my $human = seconds_humanreadable($seconds);
    my $time = sprintf "%02d:%02d:%02d", (gmtime($seconds))[2,1,0];
    my $endtime = sprintf "%02d:%02d:%02d", (localtime(time()+$seconds))[2,1,0];

    my $signaldevice = ReadingsVal($timer, 'signaldevice', 'monitroid');

    fhem("delete $timer"."_at") if Value($timer."_at");
    if($seconds>0) {
        my $message = 'Signal in '.$human;
        say($signaldevice, $message);
        fhem("define $timer"."_at at +$time {pizzatimer_ready('$timer')}");
        fhem("set $timer $endtime");
    } else {
        fhem("set $timer -");
    }
}



"pizzatimer" wird direkt aus FTUI aufgerufen und hat als Parameter einen Dummy (der nichts weiter tut als sich die Zeit zu merken) und die Auslösezeit in Sekunden ab jetzt. Das Device meldet sich dann kurz (say($signaldevice, $message)) und legt ein at an, nachdem pizzatimer_ready aufgerufen wird:

sub pizzatimer_ready($) {
    my $timer = shift;
    my $signaldevice = ReadingsVal($timer, 'signaldevice', 'monitroid');
   
    fhem("delete $timer"."_at");
    fhem("set $timer -");

    if($signaldevice =~ /all|monitroid|handy/i) {
        autoremote($signaldevice, 'Timer Ready');
    }
    if($signaldevice =~ /all|water/i) {
        eventghost('WATER', 'Timer Ready');
    }
    if($signaldevice =~ /all|fritz/i) {
        fhem("set FRITZ ring 610 play:http://wopr/sound/Cuckoo-clock-sound.mp3");
    }
}


"pizzatimer_ready" löscht den Timer und entscheidet abhängig vom signaldevice wie der Alaram auszulösen ist.

tomster

#1495
Zitat von: setstate am 15 Mai 2015, 12:10:16
@tomster:
Rein theoretisch sollte es passen. Es gibt in der Readme auch ein Beispiel für eine Toggle-Group, da wird es ähnlich gemacht.
Werden denn auch die angegebenen Status im Reading state sofort gesetzt? Ggf. Bei data-off="!on" benutzen.

Ja, die state-Readings werden sofort gesetzt. Wenn ich als Widget anstatt "switch" "symbol" angebe, dann funktioniert die Statusanzeige auch "in Echtzeit". Allerdings auch nur einmal. Nur als Switch mag es gleich gar nicht...

nesges

Zitat von: viegener am 14 Mai 2015, 01:44:24
Ich hatte gerade eine (für mich) überraschende Erkenntnis:

Wenn man wie beschrieben das tablet UI in das www-Verzeichnis von FHEM packt, so wird der url fhem/tablet/... gar nicht durch die HTTPSRV behandelt sondern durch das FHEMWEB-Modul. Das ist eigentlich auch ganz einsichtig, denn die Verzeichnisse unter www werden ja alle über http bereitgestellt.

Nur wenn der URL-Pfad in der HTTPSRV-Definition vom Dateipfad abweicht läuft das ganze über die HTTPSRV-Definition

Ich denke das ist die Erklärung für die verschiedenen Probleme mit relativen Pfaden, die ich bisher HTTPSRV zugeschrieben habe. Zuletzt mit dem clicksound-Widget, das wahrscheinlich bei niemandem mit einer Standardinstallation läuft (zumindest habe ich noch keine positive Rückmeldung). Wenn ich das HTTPSRV Define auf

define TABLETUI HTTPSRV ftui ./www/tablet Tablet-UI

ändere, treten die bisher bekannten Probleme nicht auf. Ich denke wir sollten das statt der bisherigen Definition in den Standard aufnehmen. https://github.com/knowthelist/fhem-tablet-ui/pull/90 wäre damit auch obsolet.

update71

@setstate, danke, mit dem circlemenu funkt. das nun.

kann mir mal noch jemand erklären oder mir einen Link zu Erklärungen geben was hier genau passiert:
data-icons='["fa-wrench"]'
data-get-on='["[12]*[0-9]","[3456][0-9]","([789][0-9]|100)"]'
data-on-colors='["#855","#a55","#d55"]'


Vor allem Zeile 2 (Zeile 3 hat dann zu jedem Wert(ebereich) eine andere Farbe, richtig?).


@nesges, bei mir funktioniert das clicksound Widget jetzt (hatte ich im anderen Thread ja bereits gesagt) mit Standardinstallation und der expliziten Angabe der index.html (Sonst lief es auch aber ließ  sich nicht klicken aus dem FHEMWEB, Ohne / ging auch alles nur das Widget nicht).
So hab ich es jetzt:
define TABLETUI HTTPSRV tablet/index.html ./www/tablet Tablet UI
Thomas
###########
Raspi mit Fhem, nanoCUL 433 + mehrere Brennstuhl Steckdosen - HM-LAN + Thermostat, 6 fach Taster, Aussensensor - HUEBridge + 3 weiße LEDs ... mehr folgt

mjoomla

Moin Moin,

@Pferdekaemper & Phil__  danke hat geklappt.

MFG MJoomla

update71

Nabend, ich verzweifel grad an einem "symbol" mit verschiedenen Stati :/

Mein Code:
<li>
                               <div data-type="symbol" data-device="HUEDevice2"
                                data-get-on='["[12][0-9]","[3456][0-9]","([789][0-9]|100)"]'
                                data-get-off="off"
                                data-on-colors='["#ffffcc","#ffcc99","#ccff99"]'
                                data-background-icon="fa-circle-thin"
                                data-icon="fa-lightbulb-o" >
                               </div>
                          </li>


Der Status bei gedimmtem Licht kommt als dimXX% ... zum Bsp.: dim56%
leider verändert sich nix ... die regExen müssten doch passen, oder? :(

Was muss bei data-on-colors rein? In der Doku steht:
Zitatdata-on-colors   Name des Font-Awesome Hintergrund Icon.   'fa-circle'

Im Beispiel aber:
Zitatdata-on-colors='["Crimson","GoldenRod","SeaGreen"]'

Einmal sinds Icons einmal Farben?
Thomas
###########
Raspi mit Fhem, nanoCUL 433 + mehrere Brennstuhl Steckdosen - HM-LAN + Thermostat, 6 fach Taster, Aussensensor - HUEBridge + 3 weiße LEDs ... mehr folgt