[gelöst] Fehlermeldung Popup "fhemweb.js line 929"

Begonnen von Achim, 05 Februar 2017, 17:43:42

Vorheriges Thema - Nächstes Thema

Achim

Hallo,

ich habe gerade einen Fehler? (oder auch nicht) festgestellt. Ich habe für viele Devices ein Filelog definiert (sicher nicht die Ausnahme). Wenn ich dann bei den Devices unten bei "Probably associated with" auf den Filelog Devicenamen klicke, bekomme ich folgende Fehlermeldung:

Firefox:
Zitatfhemweb.js line 929:
TypeError: $(...).attr(...) is undefined

Internet Explorer
Zitatfhemweb.js line 929:
Die Eigenschaft "split" eines undefinierten oder Nullverweises kann nicht abgerufen werden.

die Definition des Filelog ist z.B.
define FileLog_WandTabletGang FileLog /opt/fhem/log/WandTabletGang-%Y-%m.log WandTabletGang

Ist aber bei allen zum Test aufgerufenen Einträgen so.

Beides Browser im "Private" Modus. Wenn man die Fehlermeldung bestätigt, geht das Filelog Device auf.

Ob das nur ein "Schönheitsfehler" ist oder irgendwann mal zu größeren Problemen führen kann, kann ich nicht beurteilen.

Viele Grüße
Achim
1x RPi V1, COC, 6x FHT, 1x S300TH, 2x DS18B20, 1x KS300
1x Arduino Nano mit Firmata, 2x DS2423old, 4x DS18B20, HIH5030, verschiedene Ein/Ausgangsschaltungen am Arduino
Mysensors-Seriell Gateway, Si7021, BH1750, Relais

rudolfkoenig

Ich kann das mit Firefox und fhem.cfg.demo nicht nachstellen. Kannst du das bitte auch probieren?
Und/oder mir eine minimale fhem.cfg hier anhaengen, mit dem das Problem sich reproduzieren laesst.

Achim

Hallo Rudi,

ich habe versucht den Effekt auf meinem Testsystem nachzustellen. Da taucht er leider nicht auf. Nützen dir irgendwelche Logs oder kann ich irgendwo etwas "einbauen" zum zusätzlichen mitloggen, um dem "Problem" auf die Spur zu kommen.

Viele Grüße
Achim
1x RPi V1, COC, 6x FHT, 1x S300TH, 2x DS18B20, 1x KS300
1x Arduino Nano mit Firmata, 2x DS2423old, 4x DS18B20, HIH5030, verschiedene Ein/Ausgangsschaltungen am Arduino
Mysensors-Seriell Gateway, Si7021, BH1750, Relais

rudolfkoenig

Ich weiss noch nicht, wo das Problem herkommt, deswegen weiss ich nicht, wo man was einfuegen soll.
Taucht das Problem auch beim direkten Aufruf der FileLog Seite auf?
Kannst du mir den Quelltext der beiden Detailseiten (FileLog und Device) hier anhaengen?

Achim

Hallo Rudi,

der Fehler kommt immer beim Aufruf einer Filelog Definition. Ist mir nicht früher aufgefallen, da ich die im Normalfall nicht brauche wenn sie einmal definiert ist. Meine Filelog Definitionen haben aus meiner Sicht nichts besonders. Hier mal zwei Beispiele.
define WandTabletGang AMAD 192.x.x.x
attr WandTabletGang event-on-change-reading state,scree.*,batteryTemperature:0.5,power.*,deviceState
attr WandTabletGang room AMAD
attr WandTabletGang setOpenApp com.android.browser

define AMADCommBridge AMAD
attr AMADCommBridge room AMAD

define FileLog_WandTabletGang FileLog /opt/fhem/log/WandTabletGang-%Y-%m.log WandTabletGang
attr FileLog_WandTabletGang room Unsorted

define Ardu_Nano1 FRM 3030 global
attr Ardu_Nano1 room UG_Treppe
attr Ardu_Nano1 verbose 4

define FileLog_Ardu_Nano1 FileLog /opt/fhem/log/Ardu_Nano1-%Y.log Ardu_Nano1
attr FileLog_Ardu_Nano1 logtype text
attr FileLog_Ardu_Nano1 room UG_Treppe


Um dem Fehler näher zu kommen, könnte ich bei Perl zusätzliche Logausgaben einbauen (wenn ich ungefähr wüsste wo), aber bei JS muss ich passen. Da brauche ich den Code. Wenn du eine Idee hast, wo man suchen sollte.

Viele Grüße
Achim
1x RPi V1, COC, 6x FHT, 1x S300TH, 2x DS18B20, 1x KS300
1x Arduino Nano mit Firmata, 2x DS2423old, 4x DS18B20, HIH5030, verschiedene Ein/Ausgangsschaltungen am Arduino
Mysensors-Seriell Gateway, Si7021, BH1750, Relais

rudolfkoenig

Muss was anderes sein: ich kann mit diesen Definitionen keinen Fehler reproduzieren.
Wenn du helfen willst, einfach das, was ich schreibe, befolgen:
ZitatKannst du mir den Quelltext der beiden Detailseiten (FileLog und Device) hier anhaengen?
Falls es unklar war: mit Quelltext meine ich im Browser, Rechte Maustaste "View Page Source" oder vgl.
Nach deiner letzten Aussage reicht wohl die vom FileLog.

Achim

Hallo Rudi,

das mit dem Quelltext war mir leider nicht klar. Ich hänge dir 2 Beispiele an.

Als ich gerade bei der Seite (Fehler1,html) ein Attribut ändern wollte (Klick auf den Button "attr"), kam derselbe Fehler auch.

Viele Grüße
Achim
1x RPi V1, COC, 6x FHT, 1x S300TH, 2x DS18B20, 1x KS300
1x Arduino Nano mit Firmata, 2x DS2423old, 4x DS18B20, HIH5030, verschiedene Ein/Ausgangsschaltungen am Arduino
Mysensors-Seriell Gateway, Si7021, BH1750, Relais

rudolfkoenig

Leider generiert keiner der beiden bei mir Fehler.

Kannst du bitte in fhemweb.js, Zeile 927 (direkt unter var div = $(selEl).closest("div.makeSelect");) folgende Zeilen einfuegen:
print_call_stack();
console.log(selEl);
log(selVal);
log("dS:"+$(div).attr("list"));

Danach bitte den Fehler provizieren, und JS-Consoleninhalt hier anhaengen.

Achim

Hallo Rudi,

ich habe den Output in eine Datei geschrieben und angehängt. Ziemlich unleserlich, für mich zumindest.

Viele Grüße
Achim
1x RPi V1, COC, 6x FHT, 1x S300TH, 2x DS18B20, 1x KS300
1x Arduino Nano mit Firmata, 2x DS2423old, 4x DS18B20, HIH5030, verschiedene Ein/Ausgangsschaltungen am Arduino
Mysensors-Seriell Gateway, Si7021, BH1750, Relais

rudolfkoenig

Du hast irgendwie geschafft, dass fhemweb.js zweimal geladen wurde.

Kannst du bitte den Inhalt deines <head> Tags zeigen? Im Firefox: JS-Console -> Inspector -> <head> aufklappen.
Und bitte den Inhalt von /opt/fhem/www/pgm2 auch hier anhaengen.

Ich habe fhemweb.js trotzdem modifiziert, damit sowas ignoriert wird.

Achim

Hallo Rudi,

würde mich auch interessieren, wie ich das geschafft habe. Im Anhang die gewünschten Daten. Ich habe einmal <HEAD> aufgeklappt und einmal "alles" kopiert. Als Inhalt von pgm2 habe ich ein "ls -l" des Verzeichnisses gemacht und auch alle Dateien in ein ZIP gepackt.

Viele Grüße
Achim
1x RPi V1, COC, 6x FHT, 1x S300TH, 2x DS18B20, 1x KS300
1x Arduino Nano mit Firmata, 2x DS2423old, 4x DS18B20, HIH5030, verschiedene Ein/Ausgangsschaltungen am Arduino
Mysensors-Seriell Gateway, Si7021, BH1750, Relais

rudolfkoenig

Du hast fhemweb.js nach fhemweb-18.js kopiert.
FHEMWEB laedt alles, was im pgm2 Verzeichnis mit fhemweb anfaengt.

Achim

#12
Hallo Rudi,

Vielen Dank. Dass Module anhand von "Namensteilen" aus Verzeichnissen komplett geladen werden, wusste ich nicht. Bei Tests kopiere ich die zu ändernde Datei einfach mit einem Namenszusatz. Das ging hier wohl schief.

Mit deinen Änderungen wird fhemweb.js auch nicht mehr zweimal geladen. Habe ich gerade bei mir getestet. Der Effekt ist jetzt weg. Die Fehlermeldung poppt jetzt nicht mehr hoch.

Viele Grüße
Achim
1x RPi V1, COC, 6x FHT, 1x S300TH, 2x DS18B20, 1x KS300
1x Arduino Nano mit Firmata, 2x DS2423old, 4x DS18B20, HIH5030, verschiedene Ein/Ausgangsschaltungen am Arduino
Mysensors-Seriell Gateway, Si7021, BH1750, Relais