[FHEM-Tablet-UI] Widgets for fhem-tablet-ui

Begonnen von nesges, 10 April 2015, 10:30:25

Vorheriges Thema - Nächstes Thema

Mitch

Sound Verzeichnis ist da.
Fehler muss ich morgen mal schauen.

Browser ist Safari auf Mac.
In deiner Demo kommt der Sound.
FHEM im Proxmox Container

Mitch

So, hier mal die Warnungen (gelb):

[Warning] No sources for "tap" sound :(
[Warning] No sources for "button_tiny" sound :(
[Warning] No sources for "bell_ring" sound :(


und Fehler (rot):

[Error] Deprecated attempt to access property 'userAgent' on a non-Navigator object.
_draw (jquery.knob.mod.min.js, line 1)
run (jquery.knob.mod.min.js, line 1)
(anonyme Funktion) (jquery.knob.mod.min.js, line 1)
each (jquery.min.js, line 2)
each (jquery.min.js, line 2)
knob (jquery.knob.mod.min.js, line 1)
(anonyme Funktion)
each (jquery.min.js, line 2)
each (jquery.min.js, line 2)
init
(anonyme Funktion) (fhem-tablet-ui.js, line 39)
j (jquery.min.js, line 2)
fireWith (jquery.min.js, line 2)
x (jquery.min.js, line 4)
b (jquery.min.js, line 4)
[Error] SyntaxError: Invalid regular expression: missing terminating ] for character class
RegExp (fhem-tablet-ui.js, line 532)
indexOfRegex (fhem-tablet-ui.js, line 532)
indexOfGeneric (fhem-tablet-ui.js, line 515)
(anonyme Funktion)
each (jquery.min.js, line 2)
each (jquery.min.js, line 2)
update
(anonyme Funktion) (fhem-tablet-ui.js, line 59)
each (jquery.min.js, line 2)
update (fhem-tablet-ui.js, line 57)
(anonyme Funktion) (fhem-tablet-ui.js, line 378)
j (jquery.min.js, line 2)
fireWith (jquery.min.js, line 2)
x (jquery.min.js, line 4)
b (jquery.min.js, line 4)
[Error] SyntaxError: Invalid regular expression: missing terminating ] for character class
RegExp (fhem-tablet-ui.js, line 532)
indexOfRegex (fhem-tablet-ui.js, line 532)
indexOfGeneric (fhem-tablet-ui.js, line 515)
(anonyme Funktion)
each (jquery.min.js, line 2)
each (jquery.min.js, line 2)
update
(anonyme Funktion) (fhem-tablet-ui.js, line 59)
each (jquery.min.js, line 2)
update (fhem-tablet-ui.js, line 57)
(anonyme Funktion) (fhem-tablet-ui.js, line 378)
j (jquery.min.js, line 2)
fireWith (jquery.min.js, line 2)
x (jquery.min.js, line 4)
b (jquery.min.js, line 4)
[Error] Deprecated attempt to access property 'userAgent' on a non-Navigator object.
_draw (jquery.knob.mod.min.js, line 1)
i (jquery.knob.mod.min.js, line 1)
dispatch (jquery.min.js, line 3)
handle (jquery.min.js, line 3)
trigger (jquery.min.js, line 3)
(anonyme Funktion) (jquery.min.js, line 3)
each (jquery.min.js, line 2)
each (jquery.min.js, line 2)
trigger (jquery.min.js, line 3)
(anonyme Funktion)
each (jquery.min.js, line 2)
each (jquery.min.js, line 2)
update
(anonyme Funktion) (fhem-tablet-ui.js, line 59)
each (jquery.min.js, line 2)
update (fhem-tablet-ui.js, line 57)
(anonyme Funktion) (fhem-tablet-ui.js, line 378)
j (jquery.min.js, line 2)
fireWith (jquery.min.js, line 2)
x (jquery.min.js, line 4)
b (jquery.min.js, line 4)
[Error] Deprecated attempt to access property 'userAgent' on a non-Navigator object.
_draw (jquery.knob.mod.min.js, line 1)
i (jquery.knob.mod.min.js, line 1)
dispatch (jquery.min.js, line 3)
handle (jquery.min.js, line 3)
trigger (jquery.min.js, line 3)
(anonyme Funktion) (jquery.min.js, line 3)
each (jquery.min.js, line 2)
each (jquery.min.js, line 2)
trigger (jquery.min.js, line 3)
(anonyme Funktion)
each (jquery.min.js, line 2)
each (jquery.min.js, line 2)
update
(anonyme Funktion) (fhem-tablet-ui.js, line 59)
each (jquery.min.js, line 2)
update (fhem-tablet-ui.js, line 57)
(anonyme Funktion) (fhem-tablet-ui.js, line 326)
[Error] Deprecated attempt to access property 'userAgent' on a non-Navigator object.
_draw (jquery.knob.mod.min.js, line 1)
val (jquery.knob.mod.min.js, line 1)
(anonyme Funktion) (jquery.knob.mod.min.js, line 1)
dispatch (jquery.min.js, line 3)
handle (jquery.min.js, line 3)
trigger (jquery.min.js, line 3)
(anonyme Funktion) (jquery.min.js, line 3)
each (jquery.min.js, line 2)
each (jquery.min.js, line 2)
trigger (jquery.min.js, line 3)
(anonyme Funktion)
each (jquery.min.js, line 2)
each (jquery.min.js, line 2)
update
(anonyme Funktion) (fhem-tablet-ui.js, line 59)
each (jquery.min.js, line 2)
update (fhem-tablet-ui.js, line 57)
(anonyme Funktion) (fhem-tablet-ui.js, line 326)
FHEM im Proxmox Container

nesges

Die Warnungen legen nahe, dass die Dateien

www/tablet/lib/ion.sound/sounds/tap.aac
www/tablet/lib/ion.sound/sounds/tap.ogg
www/tablet/lib/ion.sound/sounds/tap.mp3
etc.

nicht vorhanden sind. Bitte einmal prüfen. Die Error sehen aber so aus, als ob du ein generelles Javascript Problem hättest. Erstell bitte eine minimale HTML-Testseite, die nur einen Button oder Switch und das clicksound Widget enthält.

Nobby1805

#63
hi nesgen,

ich habe jetzt mal testweise bei 2 Temperaturen dein Widget klimatrend hinzugefügt  ... im Prinzip alles auf Default gelassen bis auf den Bezug auf die Quellen

Bei der 1. Temp wird ein Pfeil nach oben angezeigt und wenn ich dort mit den Cursor draufgehe wird "1h: +0.1" angezeigt .. also OK
Bei der 2. Temp werden allerdings 2 Pfeile nach oben angezeigt obwohl der Tooltip auch hier richtigerweise "1h: +0.1" anzeigt

Edit: ich habe es jetzt für alle Temperaturen und Luftfeuchten erweitert ... alle Anzeigen der Temperatur von den Thermostaten sind falsch  :(

<div data-type="klimatrend" data-device="Innen_Climate" data-get="statMeasured-tempTendency" class="big"></div>

Edit2: Es liegt an deiner Methode den Defaultwert der Highmark-Grenze für Temperatur bzw. Humidity automatisch zu setzen ... bei den HM-Thermostaten kommt, zumindest im Channel Climate den ich verwende,  der String "temperature" nicht vor und da der Else-Zweig fehlt bleibt Highmark dann 0 ... Highmark beim Aufruf angegeben -> klappt
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)

nesges

Zitat von: Nobby1805 am 09 Mai 2015, 16:40:42
Edit2: Es liegt an deiner Methode den Defaultwert der Highmark-Grenze für Temperatur bzw. Humidity automatisch zu setzen ... bei den HM-Thermostaten kommt, zumindest im Channel Climate den ich verwende,  der String "temperature" nicht vor und da der Else-Zweig fehlt bleibt Highmark dann 0 ... Highmark beim Aufruf angegeben -> klappt

highmark mit 0 zu initialisieren ist dann nicht so geschickt. Ich checke eine neue Version ein, die zwei Dinge ändert: highmark wird mit 99 initialisiert. Der Regex für Temperaturwerte ist von /temperature/i in /temp/i geändert. Damit sollten die meisten Fälle abgefangen sein und zumindest kein falsches highmark angenommen werden. Zusätzlich habe ich die Doku um Hinweise wie Temperatur- und Humiditywerte erkannt werden ergänzt. Das macht's dem nächsten vielleicht einfacher. Danke für den Hinweis!

nesges

Neues Widget: multistatebutton

multistatebutton ist eine Variante des push-Widgets das den set-Befehl abhängig vom aktuellen Status ändert. So kann zum Beispiel zwischen drei Status rundgeschaltet werden:

<div data-type="multistatebutton"
    data-device="KODI"
    data-get="repeat"
    data-get-on='["off","one","all"]'
    data-set='["repeat one","repeat all","repeat off"]'
    data-set-default="repeat off"
    data-icons='["fa-long-arrow-right","nesges-repeat-one","nesges-repeat"]'
    data-on-background-color='#339999'
    class="cell"></div>


Im Unterschied zu anderen Button-Widgets gibt es kein set-off Attribut, sondern ein set-Attribut, das ein Array von Werten annimmt, das zum Array des get-Attributes korrespondiert. Um auf Zwischenzustände (zB Klick während Initalisierung) und unvorhergesehene Status zu reagieren gibt es das Attribut set-default. Ansonsten unterscheidet sich multistate nur in den Default-Werten von anderen Buttons.

Weitere Beispiele und Dokumentation: multistatebutton im Wiki

Das Widget wird ab sofort regulär per Update ausgeliefert.

nesges

Neues Widget: joinedlabel

joinedlabel verbindet mehrere Readings zu einem Feld

<div data-type="joinedlabel"
    data-device="MCP"
    data-get='["artist","album","name"]'
    data-glue=' - '></div>


Zeigt die drei Readings MCP:artist, MCP:album und MCP:name durch einen Bindestrich getrennt an. Das Widget ist auch in der Lage Readings aus unterschiedlichen Devices zusammen anzuzeigen. Allerdings habe ich selbst dafür noch keinen praktischen Nutzen gefunden :)

Dokumentation und weitere Beispiele

nesges

Neues Widget: mpdnowplaying

mpdnowplaying zeigt Titelinformationen eines per MPD-Modul angebundenen Music Player Daemon an.

<div data-type="mpdnowplaying"
    data-device="MPD"></div>


Zeigt name, artist, album, track und title mit Bindestrichen getrennt an.

Dokumentation und Hinweise zum Umgang mit MPDs spezieller Art Readings zu aktualisieren

setstate

Das ist sehr gut!
Ich will demnächst mal Mopidy auf den Banana Pi installieren, das passt ja :-)

nesges

Zitat von: setstate am 11 Mai 2015, 20:42:30
Ich will demnächst mal Mopidy auf den Banana Pi installieren, das passt ja :-)

Dann immer her mit den Featurewünschen! ;)

update71

Hallo,

ich bekomme die Clicksounds leider nicht ans laufen. Alles installiert via update. Scheinbar werden die Sounds nicht gefunden, sind aber da.

Woran kann es liegen?
Thomas
###########
Raspi mit Fhem, nanoCUL 433 + mehrere Brennstuhl Steckdosen - HM-LAN + Thermostat, 6 fach Taster, Aussensensor - HUEBridge + 3 weiße LEDs ... mehr folgt

nesges

Zitat von: update71 am 12 Mai 2015, 17:57:18
ich bekomme die Clicksounds leider nicht ans laufen. Alles installiert via update. Scheinbar werden die Sounds nicht gefunden, sind aber da.

In welchem Browser? Evtl. auf einem Mobilgerät (iOS, Android)? Und funktioniert's in der Live-Demo?

update71

Live Demo geht ... Safari auf OSX (mit Chrome gehts auch nicht)
Thomas
###########
Raspi mit Fhem, nanoCUL 433 + mehrere Brennstuhl Steckdosen - HM-LAN + Thermostat, 6 fach Taster, Aussensensor - HUEBridge + 3 weiße LEDs ... mehr folgt

nesges

Mach mal bitte ein Update der Widgets und leg dir dann die https://github.com/nesges/Widgets-for-fhem-tablet-ui/blob/master/demo/soundcheck.html ins tablet-Verzeichnis. Der angezeigte Push-Button und das Label sollten Click-Geräusche machen und in der JS-Konsole sollten jetzt Zeilen in der Art auftauchen:

Loaded plugin: widget_clicksound
ion load
ion-url: /fhem/tablet/js/../lib/ion.sound/sounds/button_tiny.mp3?1431456923741
ion load
ion-url: /fhem/tablet/js/../lib/ion.sound/sounds/water_droplet_3.mp3?1431456923742


update71

Update gemacht ... Dateicode in test.html (im tablet root) eingefügt ... kein Ton
Plugin dir: /fhem/tablet/js
fhem-tablet-ui.js:113 Filename: test.html
fhem-tablet-ui.js:169 Collecting required readings
fhem-tablet-ui.js:184 Request readings from FHEM
jquery.min.js:4 Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check http://xhr.spec.whatwg.org/.
fhem-tablet-ui.js:36 Loaded plugin: widget_clicksound
VM135:7 ion load
VM135:7 ion-url: /fhem/tablet/js/../lib/ion.sound/sounds/button_tiny.mp3?1431458059943
VM135:7 ion load
VM135:7 ion-url: /fhem/tablet/js/../lib/ion.sound/sounds/water_droplet_3.mp3?1431458059944
fhem-tablet-ui.js:36 Loaded plugin: widget_label
fhem-tablet-ui.js:36 Loaded plugin: widget_push
(program):7 ion load
(program):7 ion-url: /fhem/tablet/js/../lib/ion.sound/sounds/button_tiny.ogg?1431458060001
(program):7 ion load
(program):7 ion-url: /fhem/tablet/js/../lib/ion.sound/sounds/water_droplet_3.ogg?1431458060002
(program):7 ion load
(program):7 ion-url: /fhem/tablet/js/../lib/ion.sound/sounds/water_droplet_3.mp4?1431458060078
(program):7 ion load
(program):7 ion-url: /fhem/tablet/js/../lib/ion.sound/sounds/button_tiny.mp4?1431458060079
(program):7 ion load
(program):7 ion-url: /fhem/tablet/js/../lib/ion.sound/sounds/water_droplet_3.aac?1431458060095
(program):7 ion load
(program):7 ion-url: /fhem/tablet/js/../lib/ion.sound/sounds/button_tiny.aac?1431458060112
(program):7 ion load
(program):7 ion-url: /fhem/tablet/js/../lib/ion.sound/sounds/water_droplet_3.wav?1431458060114
(program):7 ion load
(program):7 ion-url: /fhem/tablet/js/../lib/ion.sound/sounds/button_tiny.wav?1431458060137
(program):2 No sources for "water_droplet_3" sound :(
(program):2 No sources for "button_tiny" sound :(
fhem-tablet-ui.js:259 start longpoll
fhem-tablet-ui.js:229 send to FHEM: set   
Thomas
###########
Raspi mit Fhem, nanoCUL 433 + mehrere Brennstuhl Steckdosen - HM-LAN + Thermostat, 6 fach Taster, Aussensensor - HUEBridge + 3 weiße LEDs ... mehr folgt