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

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

Vorheriges Thema - Nächstes Thema

tomster

Wie wird denn nun direction-part korrekt angegeben?
Nach 3-stelligen Werten nach einer Angabe wie z.B. "WD:" oder muss ich die Stellenplatzierung der eingelesenen Zahlenwerte in Form von "12" (=Beginn ab 12. Stelle) angeben? Letzteres variert ja immer, je nach der Höhe der vorausgehenden Werte...

nesges

Zitat von: tomster am 14 April 2015, 12:08:58
Nach 3-stelligen Werten nach einer Angabe wie z.B. "WD:" oder muss ich die Stellenplatzierung der eingelesenen Zahlenwerte in Form von "12" (=Beginn ab 12. Stelle) angeben? Letzteres variert ja immer, je nach der Höhe der vorausgehenden Werte...

Wenn's variiert musst du für direction-part/speed-part einen Regex wie in https://github.com/knowthelist/fhem-tablet-ui angerissen, angeben. Hab ich selbst noch nicht verwendet, sollte aber so funktionieren:

<div data-type="wind_direction"
    data-device="Wetterstation"
    data-direction="STATE"
    data-direction-part=".*?WD: (\d+).*"
    data-speed="STATE"
    data-speed-part=".*?W: (\d+).*"
></div>

tomster

#17
OK, regex. Verstanden.
Mit Deinen Angaben bekomme ich jetzt wenigstens schon mal ein "ERR" im Speedfenster. Danke!

--edit--

Hab die Regex's nochmal überprüft. Korrekterweise müssten sie wohl für Wind ".*?WD: (\d+).*" und für Wind-Speed ".*?W: (\d+\.\d+).*" lauten. Leider gibt mir das Widget trotzdem einen Error beim Windspeed, die Grananzeige der Windrichtung passt. Kann das Widget evtl. keine punkt-separierten Kommazahlen?

Hier zur Vollständigkeit mein Code für eine Homematic Wetterstation:

<div data-type="wind_direction" data-device="HM-WDS100" data-direction="STATE" data-direction-part=".*?WD: (\d+).*" data-speed="STATE" data-speed-part=".*?W: (\d+\.\d+).*" data-calm="-" data-tickstep="4" data-size="120" class="cell"></div>

nesges

Zitat von: tomster am 14 April 2015, 13:26:31
Hab die Regex's nochmal überprüft. Korrekterweise müssten sie wohl für Wind ".*?WD: (\d+).*" und für Wind-Speed ".*?D: (\d+\.\d+).*" lauten. Leider gibt mir das Widget trotzdem einen Error beim Windspeed und eine 0°-Anzeige bei der Windrichtung.

Einen "D:"-Wert sehe ich in deinem Beispiel gar nicht, sicher dass das so stimmt? Wenn du nicht sicher bist, dass der Wert der richtig ist, dann lass ihn erstmal einfach weg. wind_direction funktioniert auch ohne speed. speed wird nur gebraucht um Windstille anzuzeigen bzw. "Windstille mit Winrichtung N" von "Windrichtung N" zu unterscheiden.

tomster

Ich meinte natürlich W: nicht D:

Hab's oben ausgebessert und meine Code hinzugefügt.

tomster

Wäre es nicht auch schmuck, wenn im Kreis eine Anzeige mit Winddirection/Speed stehen würde? So à la
       235°
         5

nesges

Zitat von: tomster am 14 April 2015, 13:58:46
Wäre es nicht auch schmuck, wenn im Kreis eine Anzeige mit Winddirection/Speed stehen würde? So à la
       235°
         5

Die Idee hatte ich schonmal drin, aber für meinen Geschmack war das Widget damit zu sehr überladen. Sinnvoll unterzubringen wäre das nur in der 150px Version, und da kann man sich auch ein label Widget per CSS drüber schieben. Was ich bisher gesehen habe, wird das Widget aber eher in der 100px Größe (class small) verwendet und da ist schlicht kein Platz.

nesges

Änderung am Widget button:

Die Attribute data-oncolor und data-offcolor sind ab sofort deprecated. Im Kontext der anderen Button-Widgets (push, symbol, switch..) war die Definition der Attribute unlogisch. Statt dessen sollte man die standardisierten Attribute data-on-background-color und data-off-background-color  verwenden. Die aktuellste Version zeigt daher eine Warnmeldung in der Javascript-Console an:

ZitatAttributes data-color/data-offcolor are deprecated in widget "button" on http://wopr/tui/room/index.php url: buero.php use any of data-on-color, data-off-color, data-on-background-color, data-off-background-color instead

Bitte passt euren Button Code entsprechend an. Aktuell funktionieren die beiden Attribute noch, sie werden aber in einer zukünftigen Version entfernt werden.

Phil__

Habe eine Frage zum Button-Widget,

wenn ich den Button mit data-url wie folgt konfiguriere, komme ich immer nur auf die Standart Fhem Startseite und nicht auf das Ziel meines Links.
<div style="font-size:30px; color:rgb(96, 0, 0);" data-type="button" data-color="#aa6900" data-url="heating.html" data-icon="fa-fire" class="cell small"></div>

Nur bei folgender definition funktiniert es.
Wor kann das liegen, bzw. ist das richtig so?
Meine Files (heating.html) liegen im selben Ordner wie die index.html (www/tablet/.)

<div style="font-size:30px; color:rgb(96, 0, 0);" data-type="button" data-color="#aa6900" data-url="https://192.168.50.200:8083/fhem/tablet/heating.html" data-icon="fa-fire" class="cell small"></div>

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)

nesges

Zitat von: Phil__ am 14 April 2015, 16:34:36wenn ich den Button mit data-url wie folgt konfiguriere, komme ich immer nur auf die Standart Fhem Startseite und nicht auf das Ziel meines Links.

HTTPSRV, das Modul mit dem fhem-tablet-ui in Fhem eingebunden wird, verhält sich leider ein bisschen seltsam: Da (in der Standardkonfiguration) die aufgerufene Seite nicht auf einen Slash endet ("tablet" und nicht "tablet/") wird der Teil des URLs einfach ersetzt, statt einen Slash zu ergänzen und das Ziel daran anzuhängen. Abhilfe schafft eine Korrektur der HTTPSRV-Definition:

define tablet_ui HTTPSRV tablet/ ./www/tablet Tablet Frontend

War bisher nicht aufgefallen, danke für den Hinweis! :)

nesges

Weitere Änderung am Widget button:

Das Attribut fhem-cmd musste bisher urlencoded angegeben werden. Das ist ab sofort nicht mehr notwendig. Wo vorher "%7Bpizzatimer%28%22TIMER1%22%2C+300%29%7D" notiert wurde, muss jetzt "{pizzatimer("TIMER1",+300)}" notiert werden. Das Widget enthält für einen Übergangszeitraum eine Prüfung, ob die Angabe urlencoded ist. Falls ja, wird sie decoded und eine Warnung wie die folgende in der Javascript-Konsole ausgegeben:

Zitatwidget_button: urlencoding the target of fhem-cmd is deprecated. decoding %7Bpizzatimer%28%22TIMER1%22%2C+300%29%7D to {pizzatimer("TIMER1",+300)}

https://github.com/nesges/Widgets-for-fhem-tablet-ui/blob/master/js/widget_button.js

tomster

Nochmal kurz zum Wind-Widget in Verbindung mit einer Homematic-Wetterstation HM-WDS100-C6-O:

Mit dieser Angabe werden windDirection und windSpeed auch im Widget angezeigt:

<div data-type="wind_direction" data-device="Wetterstation" data-direction="windDirection" data-speed="windSpeed" data-calm="~" data-tickstep="4" data-size="120" class="cell"></div>


Was ich allerdings noch nicht geschafft habe ist die Anzeige ein einer textlichen Gradangabe an Stelle der Sektoralangabe, obwohl die Werte jedoch in Gradform vorliegen.
Mach ich was falsch, oder ist das schlichtweg nicht eingebaut?

nesges

Zitat von: tomster am 15 April 2015, 17:42:55
Was ich allerdings noch nicht geschafft habe ist die Anzeige ein einer textlichen Gradangabe an Stelle der Sektoralangabe, obwohl die Werte jedoch in Gradform vorliegen.
Mach ich was falsch, oder ist das schlichtweg nicht eingebaut?

Es war sogar das Gegenteil eingebaut :) Ein numerischer Wert wurde bisher immer in die Sektoralangabe umgewandelt, weil ich davon ausging, dass niemand die Gradzahlen haben möchte. Ich habe grade eine neue Version eingecheckt, in der das per data-display-numeric="true" umschaltbar ist.

https://github.com/nesges/Widgets-for-fhem-tablet-ui/blob/master/js/widget_wind_direction.js

tomster

Danke! Du bist echt schneller als die Feuerwehr. Und ich bin anscheinend genau das Gegenteil Deiner Vorstellung von breiter Masse ;-)

nesges

Anpassung an FTUI 1.4 / Unterstützung des Fhem-Updatemechanismus

Mit der Version 1.4 des Fhem Tablet UI sind einige Interna geändert worden, die sich zum Teil auch in den Widgets nieder schlagen. Daher müssen diese nach dem Update auf FTUI 1.4 ebenfalls aktualisiert werden. Um Updates in Zukunft zu erleichtern, wird jetzt auch der Fhem-Updatemechanismus unterstützt. Dazu mussten innerhalb des Repositorys einige Änderungen vorgenommen werden:

1.) Fertige Widgets befinden sich jetzt im Verzeichnis www/tablet bzw. im Unterverzeichnis js. Nur Widgets die in diesem Verzeichnis liegen, werden durch den Fhem Updatemechanismus geladen.
2.) Unfertige Widgets bzw. experimentelle Versionen befinden sich im Verzeichnis testing. Diese Versionen werden generell nicht für einen produktiven Einsatz empfohlen und werden auch nicht supported.
3.) Demos befinden sich im Verzeichnis demo

Innerhalb von Fhem kann die Installation bzw. das Update der Widgets mit folgendem Kommando gestartet werden:

update all https://raw.githubusercontent.com/nesges/Widgets-for-fhem-tablet-ui/master/controls_widgets-for-fhem-tablet-ui.txt

Ggf. kommt es beim ersten Update zu Kollisionen mit früher von Hand angelegten Versionen der Widgets. Bitte verschiebt oder löscht die alten Dateien zunächst.