FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: FhemPiUser am 18 Februar 2017, 19:41:29

Titel: shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: FhemPiUser am 18 Februar 2017, 19:41:29
Hallo setstate,

ich bekomme seit kurzem (seit einem FHEM update, aber ohne Veränderung der Tablet UI Software) einen Fehler beim shortpoll. Ich habe mal mit der Webconsole geschaut, und es sieht aus als käme der von Tabelt UI benutzte JSON Parser nicht mit Reading values zurecht, die ein ":" enthalten.

Der Fehler, der gemeldet wird, ist:

Error
ShortPoll Request Failed
parsererror, SyntaxError: JSON.parse: expected double-quoted property name at line 268 column 2 of the JSON data


Die JSON Datei an der Stelle sieht wie folgt aus:

"recentStateType": { "Value":"info", "Time":"2017-02-18 18:54:41" },
      "state": { "Value":"off", "Time":"2017-02-18 18:54:41" },
      "timedOn": { "Value":"off", "Time":"2017-02-18 18:54:41" },
      "trigLast": { "Value":"OG_Wandtaster_Btn_01:short", "Time":"2017-02-18 18:54:21" },
      "trig_O    "trig_OG_Wandtaster_Btn_03": { "Value":"Short_20", "Time":"2016-11-10 06:46:15" }
    },


also genau an der Stelle, nachdem ein Reading mit Doppelpunkt  ("OG_Wandtaster_Btn_01:short") kommt stimmt die JSON Syntax nicht mehr.

Ich habe allerdings momentan nicht die aktuellste Version von Tablet UI drauf (2.2.3)
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: rudolfkoenig am 19 Februar 2017, 14:09:40
@FhemPiUser: ist dein FHEM aktuell?

Das Problem wurde auch schon gemeldet (es wird aus dem JSON an beliebiger Stelle Text entfernt), ich kann es aber leider nicht nachstellen, und Ideen habe ich auch keine mehr. Im gemeldeten Fall ist das Problem verschwunden, nachdem FHEMWEB die Daten (nach der Umstellung auf mimetype application/JSON) wieder komprimiert hat.

Wenn jemand mir was Nachstellbares zeigen koennte, wuerde ich mich freuen. Es wuerde mir auch schon helfen, wenn ich von der gleichen Installation eine heile und eine kaputte JSON Datei bekommen koennte.

Nachtrag: mit Doppelpunkt hat es nichts zu tun.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: FhemPiUser am 19 Februar 2017, 18:38:05
ja, fhem war direkt vorher aktualisiert worden. mit der alten fhem version habe ich den fehler nicht gesehen...

ich habe dir 3 beispiel dateien mit fehler geschickt, eine entsprechende version ohne fehler konnte ich nicht produzieren.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: rudolfkoenig am 19 Februar 2017, 18:39:38
Ich habe eine kaputte (== abgeschnittene) PM bekommen.
Bitte direkt an meine Mailadresse als .zip schicken.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: rudolfkoenig am 20 Februar 2017, 10:01:33
Ich prezisiere, ich will eine kaputte und eine heile Datei, die _mit den gleichen Argumenten_ an JsonList2 erzeugt wurden.

Ich habe die JSONs, die ich bekommen habe, angeschaut, geraetselt, und einen Fehler in 01_FHEMWEB.pm gefunden. Er waere dann der Ausloeser von deinem Problem, falls das Frontend (da wo TabletUI laeuft, deswegen meine Frage), langsam bzw. langsam angebunden ist, und TabletUI mehrere "parallele" Anfragen ueber die gleiche Leitung sendet. Kann jemand diese Hypothese mit den parallelen Anfragen bestaetigen?

Den Fix habe ich eingecheckt, steht ab morgen per update zur Verfuegung. Fuer ungeduldige: 01_FHEMWEB.pm aus SVN runterladen und ersetzen.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: Leeloo_Dallas am 20 Februar 2017, 14:24:06
Ich hatte heute Nachmittag ein Update gemacht und erhalte die gleichen Fehler im TabletUI.

Der Fehler erscheint nicht nur beim Aufruf der eigenen FTUI-Konfiguration sondern auch direkt beim Aufruf von
https://<IP>:<Port>/fhem/ftui/index_state.html

Die geänderte 01_FHEMWEB.pm habe ich bereits aus dem SVN übernommen, jedoch bleibt das Verhalten gleich.

Soweit ich das beurteilen kann, finden bei mir keine "parallelen" Anfragen statt.

Wie genau kann ich noch helfen, um das Problem zu finden?
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: lenn1 am 20 Februar 2017, 14:27:56
Habe das selbe Verhalten nach heutigem Update.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: CoolTux am 20 Februar 2017, 14:29:59
Nur ins blaue geraten. Entweder das hier mal versuchen


attr global featurelevel 5.7


Oder das hier


attr  WEBINSTANZ csrfToken none
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: rudolfkoenig am 20 Februar 2017, 14:31:17
ZitatIch hatte heute Nachmittag ein Update gemacht und erhalte die gleichen Fehler im TabletUI.

Steht doch direkt in meinem Beitrag drueber, begreife nicht, was daran falsch zu verstehen ist:
steht ab morgen per update zur Verfuegung.


Nachtrag: Sorry, das habe ich zu spaet gelesen.
ZitatDie geänderte 01_FHEMWEB.pm habe ich bereits aus dem SVN übernommen, jedoch bleibt das Verhalten gleich.

ZitatWie genau kann ich noch helfen, um das Problem zu finden?
Mir eine heile und eine kaputte JSON zur Verfuegung stellen, entweder hier als .zip Anhang oder per Email.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: setstate am 20 Februar 2017, 14:38:52
Zeile1 und Spalte1 im JSON klingt für mich wie "leer"

Was kommt denn als Data zurück? In den Browser Developer Tools unter Netzwerk-was-auch-immer sieht man den Aufruf und den Reply.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: Leeloo_Dallas am 20 Februar 2017, 14:40:06
Nachtrag: Sorry, das habe ich zu spaet gelesen.Mir eine heile und eine kaputte JSON zur Verfuegung stellen, entweder hier als .zip Anhang oder per Email.
[/quote]

Die reine Wiederholung macht es leider für einen NOOB nicht verständlicher. Welche Datei genau (Ort und Name) soll ich Dir heraussuchen?
Ich hatte zuvor ein Backup gemacht, sollte Dir somit die Dateien zur Verfügung stellen können. Leider hab ich keine Ahnung was Du genau meinst.

----> Nachtrag 1: Anzeige Developer Tool im Anhang

-----> Lösung
Zitat von: CoolTux am 20 Februar 2017, 14:29:59
Nur ins blaue geraten. Entweder das hier mal versuchen


attr global featurelevel 5.7


DANKE !!!! Das hat geholfen :)
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: dt2510 am 20 Februar 2017, 14:50:35
Zitat von: CoolTux am 20 Februar 2017, 14:29:59
Nur ins blaue geraten. Entweder das hier mal versuchen

attr  WEBINSTANZ csrfToken none


Hat den Fehler bei mir beseitigt
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: setstate am 20 Februar 2017, 14:54:11
Und jetzt eine Zeile anwählen (oder Doppelklick), dann muss da irgendwo Request und Reply stehen?

Die Antwort (Reply) ist interessant. Das ist keine feste Datei im Filesystem.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: rudolfkoenig am 20 Februar 2017, 14:59:02
Zitatattr  WEBINSTANZ csrfToken none
Hat den Fehler bei mir beseitigt

Dann muss der TabletUI Maintainer nachsitzen, das Attribut gibt es seit 2014-08-10, ich habe die Aktivierung ein paarmal angedroht, zuletzt vor 2 Wochen.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: Leeloo_Dallas am 20 Februar 2017, 15:06:59
Hier noch die anderen Screenshots, falls Ihr diese noch braucht.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: CoolTux am 20 Februar 2017, 15:11:15
Ich würde hier dann empfehlen

attr global featurelevel 5.7

wieder raus zu nehmen und nur umzustellen auf

attr  WEBINSTANZ csrfToken none


Und der Maintainer weiß schon bescheid und arbeitet daran.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: Leeloo_Dallas am 20 Februar 2017, 15:15:53
@CoolTux

Danke, das mache ich so. Schönen Tag noch.

Gruß
Leeloo
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: setstate am 20 Februar 2017, 15:24:10
Aber, wo ich so überlege ...
Ich muss mir den aktuellen csrfToken irgendwie abholen können, wenn der InitialPoll dann schon versagt, habe ich keine Chance, diese WEB internal zu bekommen.

Die index.html ist statisch und wird von keiner Instanz mit dynamischen HTML Attributen angereichert.

Sieht also eher schlecht aus mit TabletUI und csrf  :(
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: justme1968 am 20 Februar 2017, 15:33:06
das token steht als X-FHEM-csrfToken im response header wenn du die longpoll verbindung aufbaust.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: setstate am 20 Februar 2017, 16:09:16
Danke für den Tipp.

Aber bevor ich eine Longpoll Connection aufbaue, hole ich erst einige Settings per jsonlist2 Command. Zum Beispiel den Longpoll type von Device "WEB".

Wenn mir dieser Aufruf ohne gültigen Token versagt bleibt, sehe ich schwarz. 
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: justme1968 am 20 Februar 2017, 16:15:35
ohne token kannst du keine kommandos an fhem senden.

wenn du nicht direkt mit der longpoll verbindung starten kannst hol einfach irgend eine fhem seite. das reine abrufen einer seite geht auch ohne token.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: setstate am 20 Februar 2017, 16:40:48
 :'(   Och, nö.  Da wird wieder wertvolle Zeit verbraten.

Könnte nicht der Httpsrv den Token mitliefern? Macht er es vllt. sogar schon im Header als X- Attribute? Kann grad nicht drauf sehen.

Dann hätten nur die User Probleme, dir per eigenem Webserver die Seiten ausliefern.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: justme1968 am 20 Februar 2017, 16:48:30
das X-FHEM-csrfToken ist in jedem response header den fhemweb ausliefert. auch in den HTTPSRV seiten.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: setstate am 20 Februar 2017, 17:04:55
Okay, vielen Dank.
Ich habe jetzt den Überblick und einen Plan.
Titel: Antw:shortpoll error nach fhem update. Problem wenn readingsvalue ":" enthält?
Beitrag von: Leeloo_Dallas am 21 Februar 2017, 15:56:01
Gerade habe ich erneut ein Update ausgeführt. Das Problem von gestern scheint gelöst, der Fehler erscheint nun nicht mehr, auch wenn die Web-Instanz ohne "attr WEBUser csrfToken none" deklariert wird. Danke für die Arbeit !!!

Mir ist heute zusätzlich aufgefallen, dass jetzt aber eine Fehlermeldung erscheint, wenn FTUI über eine WEB-Instanz genutzt wird und diese nur das Attribut "set-user" hat.

Zitatdefine WEBUser FHEMWEB 8088 global
attr WEBUser HTTPS 1
attr WEBUser group System_FrontEnd
attr WEBUser icon it_internet
attr WEBUser longpoll 1
attr WEBUser room SYSTEM
#attr WEBUser csrfToken none
#attr WEB csrfToken none =>kann demnächst wieder entfernt werden siehe (https://forum.fhem.de/index.php/topic,67364.msg589577.html#msg589577)

#Funktioniert
define allowed_WEBUser allowed
attr allowed_WEBUser basicAuth { "$user:$password" eq "TESTUSER:TEST" }
attr allowed_WEBUser group System_FrontEnd
attr allowed_WEBUser icon message_service
attr allowed_WEBUser room SYSTEM
attr allowed_WEBUser validFor WEBUser
attr allowed_WEBUser allowedCommands set-user,

Fehlermeldung besagt, dass "jsonlist2" ein verbotener Befehl ist (siehe Anhang).
Dies kann mit der "demo_ftui.html" nachvollzogen werden.

Hängt dies nun mit dem Problem von gestern zusammen oder soll ich dazu einen eigenen Thread aufmachen?

Gruß
Leeloo

----Nachtrag 22.02.2017:
Problem nach heutigen Update leider noch vorhanden. Ich mach einen eigenen Thread auf ist wahrscheinlich der bessere Weg.
(https://forum.fhem.de/index.php/topic,67653.msg591118.html#msg591118 (https://forum.fhem.de/index.php/topic,67653.msg591118.html#msg591118))