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

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

Vorheriges Thema - Nächstes Thema

nesges

Kannst du bitte einmal ab Zeile 100 einfügen:

console.log('clock', 'days', f.elem.data('days'));
console.log('clock', 'months', f.elem.data('months'));
console.log('clock', 'd', d);


Und mir die Ausgabe schicken? Die d-Zeile bitte expandieren, so dass die Array-Werte sichtbar sind.

Risiko

Hallo nesges,

hier die Log's


clock days Array[7]
VM6171:101 clock months Array[12]
VM6171:102 clock d Array[0]
VM6171:100 clock days Array[7]
VM6171:101 clock months Array[12]
VM6171:102 clock d Array[0]

clock d Array[0]A: "PM"D: "Sam"F: "Mai"G: 15H: 15M: "Mai"N: 6O: -2S: "th"U: 1432994081Y: 2015a: "pm"d: 30g: 3h: "03"i: 54j: 30l: "Samstag"length: 0m: "05"n: 5s: 41u: "0487"w: 6y: 15__proto__: Array[0]


Ich habe zusätzlich console.log('clock', 'days', f.elem.data('days')); auch in Zeile 71 eingefügt und erhalte im Log

clock days undefined


Da das widget ja funktioniert, gibt es vermutlich zwei Zustände
1. IO -- Log wie oben, Array bekannt\definiert
2. Fehler - Log aus Zeile 71 - array nicht bekannt\definiert

Als Workaround habe ich daraufhin in Zeile 71

if(f.elem.data('days') == null) {return; }


eingebaut. Damit sind die Fehlermeldungen weg.

Risiko.

Phil__

Hallo,

kann es sein das es im imageset "kleinklima" kein icon für den Zustand "klar" gibt?

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 01 Juni 2015, 07:57:27
kann es sein das es im imageset "kleinklima" kein icon für den Zustand "klar" gibt?

dafür wird sunny.png verwendet

Phil__

Zitat von: nesges am 01 Juni 2015, 10:05:52
dafür wird sunny.png verwendet
Bei mir wird dann nur dieses zerbrochene "File-Symbol" angezeigt.
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

Warum das Bild bei dir fehlt, kann ich nicht sagen. Vielleicht ein fehlgeschlagenes Fhem-Update. Sind die anderen denn alle da? Zeig mal bitte ein ls -la im Verzeichnis <fhem>/www/images/default/weather (ich hoffe ich hab den Pfad richtig im Kopf, sonst bitte suchen)

Phil__

Zitat von: nesges am 02 Juni 2015, 09:50:50
Warum das Bild bei dir fehlt, kann ich nicht sagen. Vielleicht ein fehlgeschlagenes Fhem-Update. Sind die anderen denn alle da? Zeig mal bitte ein ls -la im Verzeichnis <fhem>/www/images/default/weather (ich hoffe ich hab den Pfad richtig im Kopf, sonst bitte suchen)

hier bitte!
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

Ok, sunny.png ist vorhanden, lesbar und sieht nicht kaputt aus. Lass dir mal den URL des "kaputten" Bildes anzeigen (zB in Chrome: RMB, "Bild in neuem Tab anzeigen"'). Vielleicht gibt's da noch nen Mapping-Fehler.

Phil__

Die url des kapuuten Bildes ("klar")
http://192.168.50.200:8086/fhem/images/default/weather/undefined

Die url eines intakten Bildes (zB "wolkig")
http://192.168.50.200:8086/fhem/images/default/weather/mostlycloudy.png
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


Phil__

ja!

define Prop_Wetter_LGN PROPLANTA Langen+(Hessen)
attr Prop_Wetter_LGN room Wettervorhersage


<li data-row="4" data-col="5" data-sizex="1" data-sizey="2">
<div class="container weather">
<header>Abends</header>
<table width="100%">
<tr>
<td rowspan="5" style="text-align:center;vertical-align:top">
<div data-type="weather"
data-device="Prop_Wetter_LGN"
data-get="fc1_weatherEvening"
data-imageset="kleinklima"
style="width:100px"></div>
<br>
<div data-type="label"
data-device="Prop_Wetter_LGN"
data-get="fc1_weatherEvening"></div>
<br>
Temp: <div data-type="label"
data-device="Prop_Wetter_LGN"
data-get="fc1_temp21"
data-limits="[-50,-30,40]"
data-colors='["#9999ff","#aa6900","#ff0000"]'
data-unit=" °C"
class="inline"></div>
/ <div data-type="label"
data-device="Prop_Wetter_LGN"
data-get="fc1_temp18"
data-limits="[-50,-30,40]"
data-colors='["#9999ff","#aa6900","#ff0000"]'
data-unit=" °C"
class="inline"></div>
</td>
</tr>
</table>
</div>
</li>
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

Ok, da war der Zustand "klar" noch nicht bekannt (wie wahrscheinlich noch weitere). "klar" scheint das nächtliche "sonnig" zu sein, werde es auf "sunny_night" mappen.

Phil__

Zitat von: nesges am 02 Juni 2015, 10:47:53
Ok, da war der Zustand "klar" noch nicht bekannt (wie wahrscheinlich noch weitere). "klar" scheint das nächtliche "sonnig" zu sein, werde es auf "sunny_night" mappen.

Super, danke!
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

Zitat von: tomster am 02 Juni 2015, 10:16:00
So, nun bin ich endlich hinter die Mimik der Synchronisation unter SqueezePlayern gestiegen. Und daraus entsteht auch Mal wieder ein kleines Problem:
Szenario:
Beispielhafte 2 Squeezeplayer (WZ.Player, OG.Player). Dass man ja auch bei mehreren Playern jeden Player mit jedem syncen könnte, lass ich jetzt Mal weg, weil bei 5 Playern eine für den Durchschnittsuser schier unbewältigbare Logikmatrix entstünde... ;-)

Von daher habe ich mich entschieden einen Master zu haben, auf den dann alle Player syncen.
Um Zweiteren (Slave) mit dem Ersten (Master) zu syncen muss folgender Befehl abgesetzt werden:
set WZ.Player sync OG.Player
Soweit, so gut. Das lässt sich innerhalb des UI ziemlich simpel umsetzen. Wenn ich nun aber das Slave-Device wieder unsyncen will, dann kommt die Krux. Das wird nämlich mit:
set OG.Player unsync WZ.Player
also "andersrumer" Logik erreicht. Hat da jemand eine Idee zur Lösung für ein set-array für ein Switch/Multistate/[hier beliebigen Widgetnamen einsetzen]-Widget ohne eine Vielzahl entsprechender dummies einrichten zu müssen?

Was haltet Ihr von folgender Idee?

Wenn man innerhalb von Widgets den "get-reading"-Teil vom "set-reading"-Teil entkoppeln würde, dann wäre das Widget doch insgesamt flexibler, oder?
Soll meinen:
Gibt man innerhalb von "data-set" das anzusprechende Device explizit an, dann wird der Befehl an dieses Device geschickt (auch wenn es abweichend vom innerhalb "data-device" definierten ist). Setzt man keinen expliziten Eintrag, dann wird das innerhalb "data-device" gesetzte Default device genommen.
Beispiel: multistatebutton

<div data-type="multistatebutton"
       data-device="Device_1"
       data-get-on='["on","off","unknown","uninteresting"]'
       data-icons='["fa-bolt", "fa-power-off", "fa-question", "fa-ban"]'
       data-colors='["green", "red", "orange", "blue"]'
       data-background-colors='["red", "green", "blue", "orange"]'
       data-set='["set Device_2 XYZ","on","C","D"]'
       data-set-default='X'>
</div>

Dabei würde bei Status "on" der zugehörige "Befehl" (XYZ)  and ein anderes Device (Device_2) gehen als in "data-device" definiert. Der Befehl für Status "off" hingegen ginge an das Default-Device. Meinungen?

nesges

Einer der wenigen Punkte, die mich an Fhem massiv nerven ist diese inkonsistente Logik zwischen verschiedenen Modulen. Das ursprüngliche Problem ist ja der seltsame Ansatz, den das Squeezebox-Modul da fährt. Ich denke da sollte man ansetzen, andere Frontends werden das gleiche Problem haben. Ich möchte mich da auch ungern anpassen, man lässt sich leicht verleiten Inkonsistenzen einzubauen, wenn man auf Inkonsistenzen reagiert (hat jemand "button" gesagt?).

Das voraus geschickt...

Das müsste eigentlich schon jetzt (dreckig) lösbar sein, indem du im set-Array mit Semikolon ala Little Bobby Tables arbeitest:

data-set='[";set Device_2 XYZ","on","C","D"]'

(bin grade nicht sicher, ob ; oder ;; )

Über eine saubere Lösung für unabhängige Fhem-Kommandos sollte man aber gesondert nachdenken.