attr WEB menuEntries: geht auf einmal nicht mehr

Begonnen von M_I_B, 23 Dezember 2017, 16:01:10

Vorheriges Thema - Nächstes Thema

M_I_B

... einen habe ich noch: Nur FHEM als TAB offen. Keinen Raum aufgerufen (leeres Hauptfenster), dann einen der defekten Links geklickt:

          Error: WebExtension context not found!  ExtensionParent.jsm:830:13
NS_ERROR_INVALID_CONTENT_ENCODING: Component returned failure code: 0x804b001b (NS_ERROR_INVALID_CONTENT_ENCODING) [nsIStreamListener.onDataAvailable] network-monitor.js:658
NS_ERROR_INVALID_CONTENT_ENCODING: Component returned failure code: 0x804b001b (NS_ERROR_INVALID_CONTENT_ENCODING) [nsIStreamListener.onDataAvailable]  network-monitor.js:658
Versuch, eine verbotene Kopfzeile zu verwenden, wurde abgelehnt: Connection  805599773-lcs_client_bin.js:99:3

rudolfkoenig

Laut Internet Weisheit werden die NS_ERROR* Probleme von irgendwelchen FireFox-WebExtensions verursacht. Da du auch in Chrome Probleme hast, gehe ich erstmal davon aus, dass diese irrelevant sind. Die Zeilen mit  loading pref showConsoleLogs sind eigentlich nicht normal. Kommt das auch in Chrome? Und koenntest du bitte temporaer die Bahnhofsuhr deaktivieren?

M_I_B

... ja, mok wi ...

Uhr ist deaktiviert. Seite in Chrome geladen und dann erst mal gesucht, wo man die JS-Konsole aufruft. Ich bin mir also nicht sicher, ob ich das richtig gemacht habe...

Reihenfolge wie gehabt: UpdateCheck, dann die drei toten Menüpunkte:
:8083/fhem/pgm2/fhemweb.js:1002 XHR failed loading: GET "http://sv-xeon1-nic2:8083/fhem?XHR=1&inform=type=status;filter=;since=1514278549;fmt=JSON&fw_id=2516&timestamp=1514278551214".
FW_longpoll @ :8083/fhem/pgm2/fhemweb.js:1002
(anonymous)
setTimeout (async)
FW_jqueryReadyFn @ :8083/fhem/pgm2/fhemweb.js:83
j @ :8083/fhem/pgm2/jquery.min.js:2
fireWith @ :8083/fhem/pgm2/jquery.min.js:2
ready @ :8083/fhem/pgm2/jquery.min.js:2
J @ :8083/fhem/pgm2/jquery.min.js:2
Navigated to http://sv-xeon1-nic2:8083/fhem?cmd=update+check
fhemweb.js:419 09:59:16.089 Inform-channel opened (HTTP) with filter
fhemweb.js:419 09:59:19.264 FW_cmd:/fhem?cmd=set+VCCU+hmPairForSec+600&XHR=1
jquery.min.js:4 XHR finished loading: POST "http://sv-xeon1-nic2:8083/fhem?cmd=set+VCCU+hmPairForSec+600&XHR=1&fw_id=2608".
send @ jquery.min.js:4
ajax @ jquery.min.js:4
FW_cmd @ fhemweb.js:453
(anonymous) @ fhemweb.js:620
dispatch @ jquery.min.js:3
r.handle @ jquery.min.js:3
fhemweb.js:419 09:59:20.404 FW_cmd:/fhem?cmd=set+Max_Eco+pairmode+300&XHR=1
jquery.min.js:4 XHR finished loading: POST "http://sv-xeon1-nic2:8083/fhem?cmd=set+Max_Eco+pairmode+300&XHR=1&fw_id=2608".
send @ jquery.min.js:4
ajax @ jquery.min.js:4
FW_cmd @ fhemweb.js:453
(anonymous) @ fhemweb.js:620
dispatch @ jquery.min.js:3
r.handle @ jquery.min.js:3
fhemweb.js:419 09:59:21.079 FW_cmd:/fhem?cmd=set+backup_dy+on&XHR=1
jquery.min.js:4 XHR finished loading: POST "http://sv-xeon1-nic2:8083/fhem?cmd=set+backup_dy+on&XHR=1&fw_id=2608".
send @ jquery.min.js:4
ajax @ jquery.min.js:4
FW_cmd @ fhemweb.js:453
(anonymous) @ fhemweb.js:620
dispatch @ jquery.min.js:3
r.handle @ jquery.min.js:3


automatisierer

ich hatte in deinem list vom FHEMWEB Device gesehen, dass du
csrfToken  none
gesetzt hast.
Hab da ja keine Ahnung von, aber könnte da evtl. der Hund begraben liegen?

rudolfkoenig

@M_I_B: du hast eine komische Ausgabe gefunden, ich weiss nicht, wie ich das reproduzieren soll, bei mir kommt in Chrome nur
fhemweb.js:419 14:20:42.540 Inform-channel opened (HTTP) with filter
fhemweb.js:419 14:20:50.495 FW_cmd:/fhem?cmd=set Max_Eco pairmode 300&XHR=1

Aber diese Zeilen sieht man auch bei dir, und der Rest enthaelt keine offensichtliche Fehlermeldung, insofern bin ich erstmal ratlos.

@automatisierer: das kann man einfach mit einem leeren fhem.cfg und die "attr WEB menuEntries..." Zeilen von oben testen. Ich habe es gemacht, und keinen Unterschied gesehen.

M_I_B

#20
... kann ich mal etwas was Du nicht kannst? Is ja goil  ;D ;D ;D

In Chrome habe ich STRG+SHIFT+I, dann Tab "Console", dort "Preserve Log" und "Log XMLHttpRequest" aktiviert. Zudem noch in der Zeile darüber "All levels" alles aktiviert

EDIT meint, ich solle mal eiune zweite FHEM- Installation ohne nix auf dem lokalen System, bauen und noch mal schauen... Mache ich mal...

... time goes by ...

So, jetzt wird es ganz schräg!
Lokale Installation mit der fhem.cfg aus dem Live- System (excl. den Dingen, die hier ja nicht vorhanden sind).
Hier funktionieren die Links, allerdings wird auch hier nicht der Befehl bei einem MouseOver dargestellt... Nu bin ich vollend verwirrt  :o :o :o

M_I_B

Noch'n Nachtrag:

Ich musste gestern zwangsweise auf meinem neuen Rechner WIN10 installieren. Mein geliebtes WIN7 ist tatsächlich mit der Hardware/Geschwindigkeit überfordert :'( Wenn mir das einer vorher erzählt hätte, ich hätte es nicht geglaubt  >:(

Der Fehler / das merkwürdige Verhalten ist immer noch da und mit jedem Browser reproduzierbar (FF, MSIE, EDGE, Chrome). Liegt also definitiv nicht am Rechner resp. Browser/Plugins.

@Rudolf:
Mal angenommen, ich will den Server komplett neu aufsetzen (aktuelle Debian lite)... Wie kann ich dafür sorgen, das nach Rückspielen von FHEM (stumpf kompletten Verzeichnisbaum zurück kopieren?) die Stati aller Devices u.s.w. den Zustand einnehmen, den sie beim Herunterfahren hatten?

rudolfkoenig

FHEM besteht bei der Standardinstallation aus Startskript + /opt/FHEM.
Am besten installiert man auf dem neuen Rechner fhem-X.Y .deb (damit ist das Problem mit dem Startskript geloest), kopiert man das vorher gesicherte /opt/FHEM zurueck, und startet FHEM neu. Evtl. muessen die Pfade der USB-Geraete angepasst werden. Readings/Status werden in der "attr global statefile" gespeichert, per Voreinstellung ist das ./log/fhem.save

M_I_B

... ok suppi. Vielleicht gehe ich das die Tage mal an ... Irgendwo muss der Bock ja liegen ...

M_I_B

... so, Neuinstallation war ... erfolglos; gleiches Problem ...

Ich habe mal ein wenig experimentiert, wie z.B. die Reihenfolge der Einträge geändert u.s.w.
Dabei konnte ich feststellen, das ein Menüeintrag genau dann nicht funktioniert, wenn das Schlüsselwort "set" auftaucht. Wenn ich dann solch einen Menüeintrag mit dem Debugger untersuche, finde ich den Quellcode wie in der Anlage ersichtlich vor (wie man das aus dem Debugger kopiert habe ich noch nicht heraus gefunden...)
Auffällig dabei ist, das bei den Einträgen mit weggelassenem "set" die Links da sind (aber natürlich nicht funktionieren), beim letzen Eintrag (Backup) mit "set" gar kein Link generiert wird.

Das "set" im Menübefehl muss also bei der Aufbereitung des Codes irgend etwas auslösen, was eine korrekte Linkerstellung verhindert...

rudolfkoenig

Bei mir schaut es wie im Anhang aus.
Der dazu passende Code (um Zeile 627 aus fhemweb.js) ist:
  $(el).removeAttr("href");
  $(el).removeAttr("onclick");
  $(el).click(function() {
    FW_cmd(attr+"&XHR=1", function(txt){
      if(!txt)
        return;
      if(ma[2].match(/=set/)) // Forum #38875
        FW_okDialog('<pre>'+txt+'<pre>', el);
      else
        FW_errmsg(txt, 5000);
    });
  });

Und ja, bei mir kommt immer noch beim Click auf HMPair "Please define VCCU first"
Bemerkenswert in deinem Fall ist, dass href nicht vollstaendig entfernt wurde, sondern nur teilweise.

M_I_B

#26
... öhhh ...

if(ma[2].match(/=set/)) // Forum #38875
        FW_okDialog('<pre>'+txt+'<pre>', el);
      else

Wenn ich das in meiner Unwissenheit richtig verstehe, wird genau hier auf das Vorkommen des Schlüsselwortes "set" geprüft, odda? Wenn ich da richtig liege, wobei ich keine Ahnung habe, was FW_okDialog ist, kann das Problem doch nur irgendwo an dieser Stelle entstehen?!?
Kann man/ich diesen Teil zu Testzwecken mal irgendwie auskommentieren resp. so verbiegen (set durch balblub ersetzen z.B.), so das hier das SET übersehen wird? Hätte das anderweitige Auswirkungen?

Zitatdass href nicht vollstaendig entfernt wurde
Wohl wahr; irgendwie nix Halbes und nix Ganzes...
Ich werde mal versuchen, das hier auf dem Firmenrechner nachzustellen. Mal schauen, ob sich das hier dann ebenso verhält...

M_I_B

#27
Nachtrag:

Habe mal Perl auf dem Firmenrechner gepackt und eine 1:1 Kopie nach C:\opt\fhem\ kopiert. Zudem habe ich die fhem.cfg von allem befreit, was hier nicht vorhanden ist.
So bekomme ich auch die Popup-Meldung "Please define blablub first". Aber! Wenn ich z.B, zwei Dummys "VCCU" und "Backup_dy" anlege, um das abzufangen, dann habe ich wieder genau den beschriebenen Effekt: Sobald ein SET drin vorkommt, ist Ende Gelände ...

EDIT: Hatte jetzt mal das set in unset in der JS geändert. Hat aber (für mich erstaunlich) keinen Einfluss auf das Problem  :o

EDIT 2: Könnte ich den Kram nicht in eine 99_menue auslagern oder so was in der Art, um das Problem bis zur Lösung zu umgehen?

rudolfkoenig

ZitatWenn ich das in meiner Unwissenheit richtig verstehe,
Nein, dieser Code ist erst relevant _nachdem_ der Befehl ausgefuehrt wurde.

ZitatWenn ich z.B, zwei Dummys "VCCU" und "Backup_dy" anlege, um das abzufangen, dann habe ich wieder genau den beschriebenen Effekt: Sobald ein SET drin vorkommt, ist Ende Gelände ...

Bei mir nicht:
Zitatdummy:
  Max_Eco              (pairmode 300)
  VCCU                 (hmPairForSec 300)

Zitat
Könnte ich den Kram nicht in eine 99_menue auslagern oder so was in der Art, um das Problem bis zur Lösung zu umgehen?
Wie auch immer das funktionieren soll. Die Loesung mit cmdalias schon verworfen?

M_I_B

Die Loesung mit cmdalias schon verworfen?
Nö... Schlicht vergessen  ::)