Hauptmenü

FTUI 2.6

Begonnen von setstate, 11 Februar 2017, 14:59:21

Vorheriges Thema - Nächstes Thema

Chris8888

Zitat von: Chris8888 am 27 Februar 2017, 12:10:43
Hi, kann mich nur anschließen...Websock inkl CSRF-Token läuft top. Sowohl vom Tablet (Android 5 mit FullyBrowser), als auch vom Mac mit Firefox&Safari.
VG
Christian

Hi, ich muss mich leider korrigieren...
Was mir aufgefallen ist: 1 CPU-Kern ist immer auf 100% "Perl", sobald ich den Token abschalte ist alles wieder normal <10%.

Kann ich hier etwas beitragen?

Viele Grüße
Christian
FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.

PatrickR

Hi!

Zitat von: setstate am 28 Februar 2017, 21:22:20
Siehst du eine Cache, dass das übernommen wird? Solange lasse ich den Workaround drin.

Die Chancen stehen ganz gut:
Zitat von: rudolfkoenig am 28 Februar 2017, 20:41:00
Eingecheckt.
:)

Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

setstate

Zitat von: klausw am 28 Februar 2017, 18:28:33
In der widget_simplechart.js

muss Zeile 108 von:
url: ftui.config.fhem_dir,

auf:
url: ftui.config.fhemDir,

geändert werden. Sonst wird das Verzeichnis, in dem sich die html Datei befindet als FHEM Verzeichnis verwendet.


Könntest du auch bitte bei der Auswertung von fhemweb_url einbauen, das wenn nur "/fhem" oder so drin steht "location.origin" davor gehängt wird?
Da ich lokal mit Ip zugreifen möchte und remote mit dyndns Name kann ich nicht die komplette URL angeben.
Vorschlag ab Zeile 360 fhem-tablet-ui.js:
ftui.config.fhemDir = $("meta[name='fhemweb_url']").attr("content") || location.origin + "/fhem/";
ftui.config.fhemDir = ftui.config.fhemDir.replace(/^\//, location.origin + '/');
ftui.config.fhemDir = ftui.config.fhemDir.replace('///', '//');


Edit:
Zeile 1620 der widget_chart.js sollte vermutlich auch auf  ftui.config.fhemDir umgestellt werden. Sonst würde mein Vorschlag sicher nicht funktionieren  8)

Edit2:
folgende Files nutzen auch direkt fhemweb_url aus den Metadaten
js/widget_highchart.js
js/widget_wdtimer.js
js/widget_fullcalview.js
js/widget_weekprofile.js
js/widget_svgplot.js
js/widget_weather.js
js/widget_chart.js
js/widget_readingsgroup.js
js/widget_highchart3d.js

Danke klausw für die gute Mitarbeit.

Ich habe jetzt die meisten widgets deiner Liste angepasst. Kann bitte jemand, der diese Widgets nutzt, testen, ob CSRF damit jetzt funktioniert. Update ist hochgeladen.

Danke.

setstate

Cache, Chancen ... Cache voller Chancen, Chancen-Cache  8) ;D

Zitat von: PatrickR am 28 Februar 2017, 21:47:13
Hi!

Die Chancen stehen ganz gut::)

Patrick

Super, danke. Eingecheckt, obwohl du gar kein "Blauer" bist?

PatrickR

Hi!

Zitat von: setstate am 28 Februar 2017, 22:25:18
Super, danke. Eingecheckt, obwohl du gar kein "Blauer" bist?

Am SVN-Zugriff mangelt es zwar nicht. Aber Änderungen in fremde Module einzuchecken muss ja nicht sein, vor allem die unseres Königs ;) Das "Eingecheckt" war ein Zitat von Rudi *g*

Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

klausw

#350
Zitat von: setstate am 28 Februar 2017, 22:20:31
Danke klausw für die gute Mitarbeit.

Ich habe jetzt die meisten widgets deiner Liste angepasst. Kann bitte jemand, der diese Widgets nutzt, testen, ob CSRF damit jetzt funktioniert. Update ist hochgeladen.

Danke.
Purer Eigennutz  8)
Ich finde es super das du so schnell patchst

Die widget_chart.js wurde zwar beim update gezogen, allerdings sind keine Änderungen drin.
url: $("meta[name='fhemweb_url']").attr("content") || "../fhem/", ist in Zeile 1620 noch vorhanden.

Dort müsste sowieso noch Zeile 13 und 15 geändert werden (Pfade relativ zum ftui.config.basedir):
mainCSS.before('<link rel="stylesheet" href="' + ftui.config.basedir + 'css/ftui_chart.css" type="text/css" />');
else
$('head').append('<link rel="stylesheet" href="' + ftui.config.basedir + 'css/ftui_chart.css" type="text/css" />');


vorher:
mainCSS.before('<link rel="stylesheet" href="css/ftui_chart.css" type="text/css" />');
else
$('head').append('<link rel="stylesheet" href="css/ftui_chart.css" type="text/css" />');


und Zeile 56:
return [ftui.config.basedir + "lib/jquery-ui.min.js"];

vorher:
return ["../pgm2/jquery-ui.min.js"];




Im wdtimer müssten die Pfade auch noch angepasst werden wie hier vorgeschlagen.




In Zeile 2 der ftui_chart.css wird auf eine svg_style.css verwiesen
@import "../../pgm2/svg_style.css";
Könnte diese noch in den css Ordner kopiert werden? Dann wäre das ganze komplett unabhängig vom pgm Ordner.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

klausw

Sry, bei wdtimer habe ich einen Fehler gemacht:

vor "lib/jquery.datetimepicker.css" und "lib/switchery.min.css" war ein "/" was da nicht hingehört.

So sollte es stimmen:
function init() {
if (!$.fn.datetimepicker){
ftui.dynamicload(ftui.config.basedir + 'lib/jquery.datetimepicker.js', null, null, false);
$('head').append('<link rel="stylesheet" href="' + ftui.config.basedir + 'lib/jquery.datetimepicker.css" type="text/css" />');   
}
if (!$.fn.Switchery){
ftui.dynamicload(ftui.config.basedir + 'lib/switchery.min.js', null, null, false);
$('head').append('<link rel="stylesheet" href="' + ftui.config.basedir + 'lib/switchery.min.css" type="text/css" />');
}
if (!$.fn.draggable){
ftui.dynamicload(ftui.config.basedir + 'lib/jquery-ui.min.js', null, null, false);
}
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Stumpf

Hallo zusammen!

Also erst mal (wieder) ein großes Lob an setstate  !!!!! Mit dieser Version hast du echt einen Meilenstein geschaffen.

Die Performanz ist um einiges besser und der Seitenaufbau ist um Welten fließender!

Danke für deinen unglaublichen Enthusiasmus und Arbeitsaufwand den dir hier an den Tag legst!


Dann hier noch eine kleine Anmerkung. Bei "Volume" Widget gehen die Größen Klassen nicht richtig.

Danke und Top!!

Garbsen

Zitat von: Stumpf am 02 März 2017, 09:13:42
Hallo zusammen!

Also erst mal (wieder) ein großes Lob an setstate  !!!!! Mit dieser Version hast du echt einen Meilenstein geschaffen.

Die Performanz ist um einiges besser und der Seitenaufbau ist um Welten fließender!

Danke für deinen unglaublichen Enthusiasmus und Arbeitsaufwand den dir hier an den Tag legst!


Dann hier noch eine kleine Anmerkung. Bei "Volume" Widget gehen die Größen Klassen nicht richtig.

Danke und Top!!

Da bin ich ja gespannt, werde Update einspielen, sobald ich wieder zuhause bin.
Aber so oder so, auch von mir nochmals ein großes Danke an setstate.
Tabletui ist für mich die beste Oberfläche für FHEM, wenn es manchmal noch hier und da hakt oder ruckelst nehme ich das gerne in Kauf, da ich weiß, dass setstate permanent an Verbesserungen arbeitet. Das ist besser, als bei so manchem "professionellem" Software-Produkt!
FHEM und Homebridge auf Intel NUC, CUL 868 v 1.66, CUL466 V 1.66, SOMFY RTS Rolläden, HM-LC-Bl1PBU-FM, HM-LC-BL1-FM, HM-SEC-SC-2, HM-SEC-RHS, HM-WDS10-TH-O, HM-SEC-WDS-2, HM-Sen-LI-O, HM-CC-RT-DN, HM-LC-Sw1-Pl-DN-R1, HM-SCI-3-FM, HM-Sec-Sir-WM, HM-PB-2-WM55-2, HM-RC-8, HM-LC-SW1-PL2, Alpha2

DerBaer

Oh mann ist das wieder ein durcheinander   :-\

Geht Basic Auth nun oder eben nicht? Was tue ich damits trotzdem funktioniert?
Was mach ich mit dem Token wenn ich ihn verwenden will?

Fragen über  Fragen, seid mir nicht böse weil ich sie stelle, aber ich bin einfach wie viele andere  immer noch sehr neu in dem Gebiet  :-\

Stumpf

Das steht im ersten Beitrag.


DerBaer

Ok wenn ich basic auth rausschmeiße is das blöd, zum andern steht da nix zu dem token, bin jetzt auf Seite 4 zum durchlesen

klausw

Zitat von: DerBaer am 02 März 2017, 11:46:18
Ok wenn ich basic auth rausschmeiße is das blöd, zum andern steht da nix zu dem token, bin jetzt auf Seite 4 zum durchlesen

Das Token sollte automatisch verarbeitet werden.
Das FHEMWEB Device muss "WEB" heißen oder man muss den anderslautenden Namen als Meta Parameter web_device angeben.
Allerdings scheinen noch nicht alle Module mit den Tokens umgehen zu können.
Die meisten Meta Parameter sind hier zu finden.

Für basic auth müssen die Meta Parameter username und password angegeben werden (wenn ich das richtig verstanden habe)
Wofür benötigst du das denn?



RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

DerBaer

Zitat von: klausw am 02 März 2017, 12:23:39
Das Token sollte automatisch verarbeitet werden.
Das FHEMWEB Device muss "WEB" heißen oder man muss den anderslautenden Namen als Meta Parameter web_device angeben.
Allerdings scheinen noch nicht alle Module mit den Tokens umgehen zu können.
Die meisten Meta Parameter sind hier zu finden.

Schau ich mir sofort an, ich nutze WEBtablet, aber das lässt sich ändern.

Zitat von: klausw am 02 März 2017, 12:23:39
Für basic auth müssen die Meta Parameter username und password angegeben werden (wenn ich das richtig verstanden habe)
Wofür benötigst du das denn?

Ich denk das brauch ich für das Https?

klausw

Zitat von: DerBaer am 02 März 2017, 12:27:47
Schau ich mir sofort an, ich nutze WEBtablet, aber das lässt sich ändern.
Oder du fügst: <meta name="web_device" content="WEBtablet"> auf deiner HTMLSeite ein. Die Tablet UI muss halt nur wissen, von welcher Instanz die das Token holt.

Zitat von: DerBaer am 02 März 2017, 12:27:47
Ich denk das brauch ich für das Https?

nö, das brauchst du, wenn dein FHEM mit Passwort gesichert ist und FTUI auf einem separaten Webserver läuft (wenn ich es richtig verstanden habe)
basicAuth ist die Authentifizierungsmethode, die in FHEM genutzt werden kann um das Ganze mit user,passwort abzusichern
Wenn du die Daten als Meta Parameter angibst dann nutzt die Tablet UI diese um sich bei FHEM anzumelden.

Beschreibe mal deinen Aufbau (FHEM FTUI)
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280