fhemweb.js Umbau

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

Vorheriges Thema - Nächstes Thema

rudolfkoenig

- Habe fuer range Perl Expression erlaubt. Allerdings leicht anders implementiert, das Format ist folgendes: { "[0:10]" }. Ist etwas komplizierter zum spezifizieren, dafuer aber "Zukunftssicher".
- es gibt ein $data{maxAll}/$data{minAll}, allerdings ist das nicht Achsenspezifisch.
- textField-long hinzugefuegt, die Doppelklick-Aktivierung fuer textField ausgebaut.
- fhemweb_knob.js hinzugefuegt & in FHEMWEB widgetOverride Abschnitt dokumentiert. Beispiel:
attr dimmer widgetOverride dim:knob,min:1,max:100,step:1,linecap:round,fgColor:red

Ich wuesste gerne, ob man die Farben auch per CSS setzen kann.

Ich bau das jetzt ins svn-trunk ein, und melde die Aenderungen in Ankuendigungen.

justme1968

ist $data{maxAll}/$data{minAll} wirklich sinnvoll wenn es nicht achsenspezifisch ist? um es in einer expression für range zu verwenden funktioniert es nur wenn es nach achsen getrennt ist. wie wäre ein $data{maxAxis-n}/$data{minAxis-n}?

den knob per css zu stylen scheint leider nicht zu gehen.

baust du bitte die den hintergund für die ct und hue slider noch in den dark style ein..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

justme1968

mir ist gerade noch etwas aufgefallen:

mit safari 6 muss ich in svg.js in den zeilen 125-138 die alle drei html() aufrufe zum ändern der überschriften beim ein- und ausblenden einer kurve gegen text() austauschen. sonst bekomme ich einen js fehler und es wird nichts ausgeblendet.

das zeigen der plot werte funktioniert mit diesem browser auch nicht weil scheinbar die mausmove events nicht ankommen.

ich weiss nicht wie wichtig dir diese recht alte browser version ist.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

anbei ein patch der die in dem anderen thread vorgeschlagene möglichkeit die legende nach links zu plazieren implementiert.

ich habe es nicht über den plot editor sondern über ein attribut captionLeft eingebaut weil es logisch zum endPlotNow attribut gehört. konsequenter weise müsste es aber dann auch ein FHEMWEb attribut sein...
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

rudolfkoenig

safari6 ist mir zwar nicht wichtig, aber ich habe es umgebaut. Wuesste aber gerne, was das eigentliche Problem ist (also mehr Details, als nur "geht nicht").

captionLeft habe ich eingebaut UND DOKU GESCHRIEBEN. Bin nicht sicher ob der Name mir gefaellt, das Wort wird sonst nicht verwendet.

justme1968

die genaue meldung istTypeError: 'undefined' is not an object (evaluating 'b.innerHTML.replace')  in jquery.min.js:3

caption wird zumindest im code als kommentar für die legende verwendet und ist auch eine korrekte übersetzung dafür.

die doku hätte ich geschrieben sobald du sagst der patch ist ok. am ende gefällt dir der name oder die tatsache das es ein attribut ist nicht...
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

anbei ein patch der den floorplan auf den aktuellen stand bezüglich jquery, widgets & co bringt:

- css und js laden an die aktuelle fhemweb version angepasst
- widgetOverride eingebaut
- widget handling aktualisiert und auf mehr als das erste widget in der webCmd liste erweitert
- colorpicker (und presets) repariert
- longpoll eingebaut
- utf-8 encoding im page header für longpoll updates gesetzt

es wäre gut wenn jemand mit einem umfangreicheren floorplan testen kann ob es irgendwelche seiteneffekte gibt.

die hue und ct slider haben im floorplan noch nicht den richtigen hintergrund. da die slider im floorplan schmaler sind als in fhemweb muss ich auch noch schauen wie ich das svg für den hintergrund automatisch in der breite anpassen kann.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

ich habe noch ein problem mit der readingsGroup bemerkt:

die readingGroup kann ja für die readings aus einem device auch das widget der zugehörigen set funktion einblenden. in diesem fall ist es aber nötig das die inform id des widgets nicht mehr vom device namen und reading des original device vorgegeben wird sondern von der readingGroup besimtmt wird da diese sichtbar ist und die events erzeugt.

bisher wurde das durch einfaches ersetzen in dem durch die webCmdFn zurückgelieferten html code gemacht. das geht jetzt nicht mehr da hier jetzt nur der stub code für ein fhemWidget zurück kommt das erst später durch js ersetzt wird. ich brauche also eine möglichkeit diesem fhemWidget mitzugeben welche informId es haben soll.

mit dem angehängten patch wird FW_replaceWidget um einen optionalen zusätzlichen paramter ergänzt. dieser wird in der FW_jqueryReadyFn aus den attributen der class fhemWidget geholt.

wenn dieses attribut nicht gesetzt ist bleibt alles wie bisher, wenn die readingGroup diese attribut für das fhemWidget setzt wird wird die informId aus dem attrubut genommen.

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

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

rudolfkoenig

Zitatbisher wurde das durch einfaches ersetzen in dem durch die webCmdFn zurückgelieferten html code gemacht.
Koenntest du das nicht auch jetzt? Diesmal mit Javascript:
$("#readingsName").find("[informid]").each(function(){
  $(this).attr("informid", "mynewinformid");
})

oder so.

Btw. kannst du bitte im fhem.cfg.demo ein readingsGroup mit so ein set einbauen, damit ich auch sehe, wovon wir reden?

UliM

Zitat von: justme1968 am 10 Januar 2015, 22:50:41
anbei ein patch der den floorplan
Hi André,
super, vielen Dank dafür. Leider bin ich diese Woche wiedermal unterwegs und werde weder testen noch einchecken können.
Wenn Du feedback auf den patch erhältst und das stabil ist, kannst Du's gern einchecken.

LG, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

justme1968

@rudi: ich habe jetzt eine javascript lösung gebaut und eingecheckt.

readingsGroup, logProxy und auch readingHistory für die demo kommen noch.

@UliM: mal sehen wann feedback kommt. scheinbar gibt es auch noch layout/css probleme. ich weiss nicht ob der patch auch hier hilft.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

rudolfkoenig

@andre bzw. FLOORPLAN Patch: bitte die Reihenfolge "FW Extensions" und "Other JavaScripts + their Attributes" umtauschen, das gefaellt mir so besser, und loest das Problem mit fronthemEditor.js. Sonst sind alle Anpassung sinnvoll, es macht einige Ausnahmen in fhemweb.js ueberfluessig. Warum hast du die CssFiles Schleife nicht uebernommen?

Ich wuesste gerne, woher die Positionsprobleme in FLOORPLAN kommen, das alte FLOORPLAN von Uli schaut bei mir ok aus, habs ja auch beim Umbau getestet.

herrmannj

#42
fronthemEditor.js nimmt das zweite jquery wieder raus wenn keine Beinflussung mehr durch dashboard und co sind. ich teste.

Scheint zu laufen, habs rausgeworfen. Danke!

justme1968

anbei eine überarbeitete version des floorplan patches.

ich habe die reihenfolge vertausch.

die css schleife war nicht drin weil ich fürchte das es nicht kompatibel zu bestehenden installationen ist da der floorplan ja eigene style hat und vermtutlich einiges anders ausschaut wenn die fhemweb files geladen werden.

ich habe aber jetzt das CssFiles und JavaScripts attribut auch für den floorplan eingebaut und die beiden schleifen darauf aktiviert.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

rudolfkoenig

Habe die Aenderungen angeschaut, mit dem alten (2012-11) Floorplan von Uli getestet, eingecheckt und fuer update zur Verfuegung gestellt. Ich glaube nicht, dass sie die Probleme in den gemeldeten Faellen loesen, sie machen aber einige Workarounds in den anderen Modulen unnoetig, und erleichtern damit das debuggen.