UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

[Frage] Hilfestellung für CV Anfänger, Aufruf der Visu funktioniert nicht

Rund um die CometVisu im Timberwolf Server

MiniMaxV2
Reactions:
Beiträge: 274
Registriert: Sa Jan 12, 2019 8:41 pm
Wohnort: Bremen
Hat sich bedankt: 342 Mal
Danksagung erhalten: 151 Mal

#21

Beitrag von MiniMaxV2 »

Wie gesagt, da ich den Eintrag mit dem Namespace korrekt hab, kann ich das für mich ausschließen. Die Probleme sind gekommen, als ich von 11 auf 11.2 gegangen bin. Die URL Parameter hab ich eben auch ausprobiert - kein Erfolg.

Allerdings gibt Chrome etwas mehr Infos in der Console:

Code: Alles auswählen

cv-webkit.js:213 000848 SyntaxError: Unexpected token \ in JSON at position 72
position 72,Object.parse (<anonymous>),https://timberwolf413/proxy/visu/script/cv-webkit.js:213:238747,Array.forEach (<anonymous>),) [as parse] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:238659,) [as getResponse] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:218450,) [as handleLogin] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:219791,https://timberwolf413/proxy/visu/script/cv-webkit.js:213:159415,) [as then] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:159893,https://timberwolf413/proxy/visu/script/cv-webkit.js:213:159380,Array.forEach (<anonymous>),) [as dispatchEvent] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:159272,) [as dispatchEvent] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:145484,https://timberwolf413/proxy/visu/script/cv-webkit.js:213:147694,) [as then] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:159893,) [as fireEvent] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:147650,) [as fireEvent] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:149727
cv.log.appender.Native.process() @ cv-webkit.js:213
cv-webkit.js:213 000850 SyntaxError: Unexpected token \ in JSON at position 72
position 72,Object.parse (<anonymous>),https://timberwolf413/proxy/visu/script/cv-webkit.js:213:238747,Array.forEach (<anonymous>),) [as parse] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:238659,) [as getResponse] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:218450,) [as handleSession] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:230469,) [as handleLogin] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:220038,https://timberwolf413/proxy/visu/script/cv-webkit.js:213:159415,) [as then] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:159893,https://timberwolf413/proxy/visu/script/cv-webkit.js:213:159380,Array.forEach (<anonymous>),) [as dispatchEvent] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:159272,) [as dispatchEvent] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:145484,https://timberwolf413/proxy/visu/script/cv-webkit.js:213:147694,) [as then] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:159893,) [as fireEvent] (https://timberwolf413/proxy/visu/script/cv-webkit.js:213:147650
cv.log.appender.Native.process() @ cv-webkit.js:213
cv-webkit.js:213 000851 cv.io.transport.LongPolling: CometVisu protocol error: missing protocol version
cv.log.appender.Native.process() @ cv-webkit.js:213
LG
Hans Martin
timberwolf413 (950Q) - VPN offen - reboot erlaubt / timberwolf610 (950Q) - VPN offen - reboot erlaubt
Benutzeravatar

Chris M.
Reactions:
Beiträge: 1190
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 234 Mal
Danksagung erhalten: 853 Mal
Kontaktdaten:

#22

Beitrag von Chris M. »

Dann schau mal im Netzwerk-Reiter nach allen(!) Lade-Events der Datei "l" und schau mal wie oft die geladen wird und was dann der Inhalt ist.
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache

MiniMaxV2
Reactions:
Beiträge: 274
Registriert: Sa Jan 12, 2019 8:41 pm
Wohnort: Bremen
Hat sich bedankt: 342 Mal
Danksagung erhalten: 151 Mal

#23

Beitrag von MiniMaxV2 »

Hi Chris,
In der Default Config genau 1x und der Inhalt ist der gleiche, wie ich im anderen Post gepasted hab:

Code: Alles auswählen

{ "v":"0.0.1", "s":"SESSION", "c": {"baseURL": "/proxy/visu/cgi-bin/"} }
LG
Hans Martin
timberwolf413 (950Q) - VPN offen - reboot erlaubt / timberwolf610 (950Q) - VPN offen - reboot erlaubt
Benutzeravatar

Chris M.
Reactions:
Beiträge: 1190
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 234 Mal
Danksagung erhalten: 853 Mal
Kontaktdaten:

#24

Beitrag von Chris M. »

Exakt 1x ein "l", mit dem Inhalt und dann die Fehlermeldung "cv.io.transport.LongPolling: CometVisu protocol error: missing protocol version" auf der Konsole kann nicht sein, denn der Code der den Fehler erzeugt ist:

Code: Alles auswählen

if (!json.hasOwnProperty('v')) {
  this.error('CometVisu protocol error: missing protocol version');
  this.client.showError(cv.io.Client.ERROR_CODES.PROTOCOL_MISSING_VERSION, json);
}
D.h. im JSON wird kein Eintrag "v" gefunden, der aber nach Deiner Datei klar da sein müsste.

Das Problem wird aber irgendwo vorher liegen, denn die Fehlermeldung "SyntaxError: Unexpected token \ in JSON" sagt, dass der Text nicht als JSON interpretiert werden konnte (womit dann auch nicht überraschend wäre, dass kein "v" da drinnen gefunden wird, denn in einem nicht geparstem Objekt ist ja auch nichts drinnen).
In dem Text

Code: Alles auswählen

{ "v":"0.0.1", "s":"SESSION", "c": {"baseURL": "/proxy/visu/cgi-bin/"} }
kommt aber gar kein "\" vor.

=> Ich vermute immer noch, dass Du ein "l" übersiehst, das von einer nicht gültigen URL abgerufen wird und somit der Server-Fehler-Text - der ja kein JSON ist - dieses Verhalten auslöst (das könnte auch passieren, wenn der Server ein 502 Fehler gesendet hat)

Grundsätzlich kann es natürlich auch Problem geben, dass zwar das "l" noch mag, aber die dort übermittelte "baseURL" falsch ist und dann die folgenden Aufrufe an "r" und später auch "w" fehl schlagen. Das wäre der Fall, wenn im Docker-Container das "CGI_URL_PATH" einen falschen Wert enthält.
Aber bei so einem Problem kann es nicht zur Meldung "cv.io.transport.LongPolling: CometVisu protocol error: missing protocol version" kommen
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache

MiniMaxV2
Reactions:
Beiträge: 274
Registriert: Sa Jan 12, 2019 8:41 pm
Wohnort: Bremen
Hat sich bedankt: 342 Mal
Danksagung erhalten: 151 Mal

#25

Beitrag von MiniMaxV2 »

Hi Chris,
schau mal, das ist der Netzwerk-Traffic:
NetzwerkLogFFCV.jpg
Ich sehe da nur ein "l" :)

Rufe ich dagegen eine andere Config auf, also nicht die Default (z.B. meine eigene) kommt ein "l" und dann dauerhaft "r" - das macht auch Sinn, da dann die Werte versucht werden abzufragen:
NetzwerkLogFFCV.jpg
Ich bin jetzt mal im WebDev durch den Code gestepped. In der HandleLogin Methode und dann in der getResponse wird folgender Wert in den JSON Parse übergeben:

Code: Alles auswählen

"{ \"v\":\"0.0.1\", \"s\":\"SESSION\", \"c\": {\"baseURL\": \"/proxy/visu/cgi-bin/\"} }\n"
Dieser ist escaped. Da haben wir dann auch unsere ersten "\", die aber noch inordnung/valide sein sollten. Ich hab den Teil mal mit der 11.0 verglichen, da kommt der selbe Wert an.

Nun der Test in der Konsole (im Breakpoint). Folgender Befehl führt zu der Exception unter 11.2 und klappt unter 11.0 (bl ist der obige Wert):

Code: Alles auswählen

cv.io.parser.Json.parse(bl)
Also schauen wir uns die Parse-Function, als verdächtigen, mal näher an.

hier ist auffällig, dass unter 11.2 folgende Zeile hinzugekommen ist:

Code: Alles auswählen

h = h.replace(/\n/g, a);
Damit wird aus obiger Antwort, folgende (man beachte das "\\n"):

Code: Alles auswählen

"{ \"v\":\"0.0.1\", \"s\":\"SESSION\", \"c\": {\"baseURL\": \"/proxy/visu/cgi-bin/\"} }\\n"
mit diesem neuen Ausdruck, fliegt der folgende Befehl auf die Nase:

Code: Alles auswählen

qx.lang.Json.parse(h);
Nutze ich hingegen den originalen string, ohne das Replace, klappt es.

Kurze Suche im Code führt zur Json.js: https://github.com/CometVisu/CometVisu/ ... er/Json.js
Wenn man nun einmal den Change anschaut, hat Tobias folgendes "gefixed" (nur im 11.2 noch nicht im Develop gemerged):

Code: Alles auswählen

escape linefeeds in json string to prevent parser exceptions 
Der PR: https://github.com/CometVisu/CometVisu/pull/1002

So weit so gut - kannst du + Tobias damit was anfangen?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von MiniMaxV2 am So Mai 03, 2020 3:17 pm, insgesamt 1-mal geändert.
LG
Hans Martin
timberwolf413 (950Q) - VPN offen - reboot erlaubt / timberwolf610 (950Q) - VPN offen - reboot erlaubt
Benutzeravatar

Chris M.
Reactions:
Beiträge: 1190
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 234 Mal
Danksagung erhalten: 853 Mal
Kontaktdaten:

#26

Beitrag von Chris M. »

Danke für die Analyse, damit kommen wir der Sache schon mal deutlich näher!

Was ich aber nicht verstehe:
MiniMaxV2 hat geschrieben: So Mai 03, 2020 3:15 pm Ich bin jetzt mal im WebDev durch den Code gestepped. In der HandleLogin Methode und dann in der getResponse wird folgender Wert in den JSON Parse übergeben:

Code: Alles auswählen

"{ \"v\":\"0.0.1\", \"s\":\"SESSION\", \"c\": {\"baseURL\": \"/proxy/visu/cgi-bin/\"} }\n"
Dieser ist escaped. Da haben wir dann auch unsere ersten "\", die aber noch inordnung/valide sein sollten. Ich hab den Teil mal mit der 11.0 verglichen, da kommt der selbe Wert an.
Wieso ist das Escaped? Ich dachte das kommt normal über's Netzwerk ohne Escapes an... Das kannst Du bestätigen, oder?
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache

MiniMaxV2
Reactions:
Beiträge: 274
Registriert: Sa Jan 12, 2019 8:41 pm
Wohnort: Bremen
Hat sich bedankt: 342 Mal
Danksagung erhalten: 151 Mal

#27

Beitrag von MiniMaxV2 »

Hi Chris,
Ja sorry das hab ich etwas missverständlich geschrieben. Die \" kommen durch die Konsole, da das Tüddelchen escaped wird. Also die kommen durch den Einsatz im String " \" foo \" ". Auf dem Netzwerk kommt das alles un-escaped.

Edit: Kurzgefasst, es wird aus einem NewLine ein "\n" (0x0D => 0x5C 0x6E). Das kann in JSON nicht funktionieren. Jetzt ist die Frage, was Tobias erreichen wollte. :think:

Hier noch einmal die Ausgabe vor dem Replace und nach in "Interpretierter Form":

Code: Alles auswählen

console.debug(h)
{ "v":"0.0.1", "s":"SESSION", "c": {"baseURL": "/proxy/visu/cgi-bin/"} }

=> Replace

console.debug(h)
{ "v":"0.0.1", "s":"SESSION", "c": {"baseURL": "/proxy/visu/cgi-bin/"} }\n
Zuletzt geändert von MiniMaxV2 am So Mai 03, 2020 6:06 pm, insgesamt 2-mal geändert.
LG
Hans Martin
timberwolf413 (950Q) - VPN offen - reboot erlaubt / timberwolf610 (950Q) - VPN offen - reboot erlaubt
Benutzeravatar

Chris M.
Reactions:
Beiträge: 1190
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 234 Mal
Danksagung erhalten: 853 Mal
Kontaktdaten:

#28

Beitrag von Chris M. »

Kurzes Update: Für den Pull Request #1002 machen wir jetzt ein Revert, vgl. https://github.com/CometVisu/CometVisu/pull/1027 - d.h. dann sollte das Thema gelöst sein
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache

Izeman
Reactions:
Beiträge: 106
Registriert: So Aug 12, 2018 9:03 pm
Hat sich bedankt: 17 Mal
Danksagung erhalten: 27 Mal

#29

Beitrag von Izeman »

Moin zusammen,

ich bin nicht so fit in der Materie was ihr geschrieben habt. Was kann man denn aktuell machen wenn man so einen Fehler auch hat?

Bei mir in der Konsole steht ganz oft:

028322 SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
https://timberwolf222/proxy/visu/script ... :213:94036 cv-gecko.js:213:1088044
028322 cv.io.transport.LongPolling: CometVisu protocol error: backend responded to a read request without an "i"-parameter

Danke und Gruß Bernd
Zuletzt geändert von Izeman am Fr Mai 22, 2020 6:16 pm, insgesamt 2-mal geändert.
wiregate 386, timberwolf 222 (2600er), Professional Busmaster 221, VPN offen, Reboot gerne
Benutzeravatar

Chris M.
Reactions:
Beiträge: 1190
Registriert: Sa Aug 11, 2018 10:52 pm
Wohnort: Oberbayern
Hat sich bedankt: 234 Mal
Danksagung erhalten: 853 Mal
Kontaktdaten:

#30

Beitrag von Chris M. »

Welche CometVisu Version? App oder selber installiert?
Läuft der knxd noch? (Im Zweifel den Container neu starten: Portainer -> Containerer -> Container vorne selektieren -> Oben auf "Restart" klicken)
CometVisu Entwickler - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

CometVisu Fragen, Bugs, ... bitte im Entwicklungs-Forum, hier nur spezifisches für CV<->Timberwolf.

TWS 2500 ID: 76 + TP-UART - VPN offen, Reboot nur nach Absprache
Antworten

Zurück zu „CometVisu“