fhemweb.js Umbau

Begonnen von rudolfkoenig, 31 Dezember 2014, 16:45:43

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Zitatwenn die farbigen lampen im Light room sind kannst du sie auch gleich noch zur AllLights structure hinzufügen.
Erledigt

Zitatdas mit dem slider style:
Habe die zweite Variante entfernt.

Zitatnur das adress schema muss vorgegeben werden
Muss das? valueFn wird doch aufgerufen, da kann man anhand des Arguments entscheiden, was man machen will. Ich habe FW_directFn angepasst, damit das noch einfacher geht. Mit:
{ FW_directNotify("Livingroom", "dim20") }
landet dim20 als Argument im valueFn des passenden Sliders. Wenn das so nicht passt, melde dich.

rudolfkoenig

Habe svg.js angepasst, damit es etwas zivilisertere Menues verwendet, und die Werte nicht aus der X/Y Koordinate des Klicks abliest, sondern aus den Daten (siehe Screenshot).

Andre: falls du mit deinen Sachen fertig bist, werde ich den Branch ins trunk mergen.

justme1968

ich muss mir die readingsGroup noch vornehmen. zumindest schauen ob erst mal alles geht.

wenn es erst mal keine probleme gibt kann ich dein eigentlichen um umbau dann auch im trunk machen.

ich melde mich.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Markus Bloch

Ich würde mich freuen, wenn bei den SVG Plots mit automatischer Skalierung die Graphen nicht immer am oberen oder unteren Rand so direkt kleben würden, damit man die auch mal sehen kann. Ich hatte schonmal versucht dazu ein Patch zu erstellen, allerdings blicke ich da nicht wirklich durch.
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

justme1968

schau mal in den thread hier: http://forum.fhem.de/index.php/topic,25618.msg186124.html#msg186124 wie das jetzt schon möglich ist. etwas handarbeit aber es funktioniert.

gruß
andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Danke fuer den Hinweis, kannte ich auch nicht.
Und erinnert mich daran, dass ich min1/max1/etc bei Plots mit mehreren Quellen noch Umsortieren muss.

justme1968

wie wäre es in den range anweisungen direkt einen perl ausruck zu erlauben der beide werte zurück geben muss. ohne den umweg über die label.

also etwa so: yrange [{return (0,$data{max1})}]
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Markus Bloch

du immer mit deinen Perl-Expressions überall  ::)

Ich würde es eher begrüßen, wenn das durch das Modul automatisch gehandelt wird. Also auch bei mehrfachen graphen die richtige Skalierung plus einem gewissen Abstand unten (z.B. 5 Pixel) und einem Abstand entsprechend der Graphenbeschriftung oben (Die gesamte Höhe der Graphenbeschriftung).

Momentan finde ich es sehr nervig, wenn die Graphen durch die Beschriftung durchgehen.

Ich hab natürlich nichts dagegen, wenn man als fortgeschrittener User da individuell eingreifen möchte, aber es sollte auch ohne manuellen Eingriff einigermaßen "hübsch" aussehen.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

justme1968

ich hatte angefangen mir einen automatischen weg zu überlegen aber das wird sehr schnell sehr schwierig das automatisch zu machen. vor allem wenn man mehr als eine kurve in der grafik hat.

oben und unten x pixel frei zu lassen wäre recht einfach. den platz für die beschriftung automatisch frei zu lassen funktioniert z.b. nur wenn es nur ein oder höchstens zwei kurven sind. eigentlich müsste die legende optional rechts neben den plot.

das beste was mir eingefallen ist war den kleinsten min und größten max werte aller kurven die zu einer einer achse gehören zu nehmen und auf die spanne oben und unten jeweils 2.5% drauf zu schlagen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

anbei ein patch der einen modifier textField-long ergänzt.

für textField-long wird beim klick auf das text feld ein dialog mit einem textarea auf gemacht in dem mehr platz zum editieren ist.

zusätzlich ist beim normalen textField noch ein doppelklick auf das öffnen des dialogs gemapped. ich weiss aber noch nicht ob das vielleicht unerwünschte seiteneffekte hat.

im gegensatz zum select dialog habe ich closeOnEscape auf true gesetzt. ich fände das auch für alle anderen dialog praktisch.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

anbei eine erste version eines fhemweb_knob.js widget.

die ursprünglichen threads waren hier: http://forum.fhem.de/index.php/topic,14753.msg95363.html#msg95363 und hier: http://forum.fhem.de/index.php/topic,20738.0.html.

das interface ist erst mal kompatibel zum slider und der knob kann überall statt einem slider verwendet werden.

noch zu klären ist:
- wie und wo wird $data{FWEXT}{knob}{SCRIPT} passend gesetzt
- eigentlich heisst das js file jquery.knob.js. mit diesem namen wird es aber nicht über die FWEXT/SCRIPT schleife geladen weil alles mir pgm2/jquery im namen ausgelassen wird.
- unter welchem namen und wo wird das knob.js file eingecheckt.
- wie macht man die anderen optionen des knob verfügbar? nur per css? oder auch per setList/widgetOverride
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Das mit "$data{FWEXT}{knob}{SCRIPT}" verstehe ich nicht.

Falls ein widget weitere Scripte benoetigt, dann sollte es mit loadScript laden, diese Funktion habe ich (hoffentlich) gefixt. Wenn es Probleme geben sollte, dann melden.
Man kann sowohl alles in www/pgm2 einchecken, dann wird fhemweb_knob.js automatisch laden. Oder man packt es nach www/knob, dann muss der Anwender das FHEMWEB JavaScripts Attribut spezifizieren. Auf diesem Weg kann man auch FHEM-Attribute spezifizieren (XXXParam, wobei XXX.js das spezifizierte JavaScript is), das ist mAn aber gar nicht notwendig, weil man die Parameter besser nach dem "knob" spezifizieren kann.

justme1968

wegen den js files für den knob: es sind ja zwei. ein mal das fhemweb_knob.js das sollte natürlich nach www/pgm2. aber das js file aus dem knob packet selber muss ja auch irgendwohin. beim colorpicker hatten wir jscolor als eigenes verzeichnis. beim knob ist es aber nur ein file jquery.knob.js bzw. jquery.knob.min.js

jquery.knob.js bzw in knob.js umbenannte file habe ich nicht geschafft aus fhemweb_knob.js mit loadScript zu laden. ich sehe zwar das es geladen ist aber ich kann die funktionalität in der fhemweb_knob.js createFn nicht nutzen. ich habe noch nicht gefunden woran es liegt. deshalb habe ich noch die alte methode mit $data{FWEXT}{knob}{SCRIPT} = "/pgm2/knob.js" verwendet.

readingsGroup und readingHistory funktionieren beide erst mal im UpdateLine kompatibilität modus. wenn du es eilig hast mit dem mergen kann ich die änderungen aufs neue api auch danach machen.

der hintergrund für den colorpicker muss nicht in die anderen styles. am besten in darkCommon.css oder?
.colorpicker_ct .slider { background: url(../jscolor/ct_background.svg); }
.colorpicker_hue .slider { background: url(../jscolor/hue_background.svg); }
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Dr. Boris Neubert

Zitat von: rudolfkoenig am 03 Januar 2015, 14:12:02
Ich habe in diesem Zweig dem SVG beigebracht, mehrere Quellen (FileLog/DbLog/logProxy) zu akzeptieren.

Zu meinem Verständnis: erfolgt das Rendern des SVG-Bildes mit diesen Neuerungen nun im Client?

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

Nein, mit jsSVG bin ich noch nicht weitergekommen.