fhemweb.js line 1275: TypeError: FW_widgets[vArr[0]] is undefined

Begonnen von Zeitisen, 29 Oktober 2018, 23:31:53

Vorheriges Thema - Nächstes Thema

Zeitisen

Seit einiger Zeit bekomme ich den Fehler

fhemweb.js line 1275:
TypeError: FW_widgets[vArr[0]] is undefined

Nach Click auf OK komt die nächste Meldung, wahrscheinlich ein Folgefehler:
fhemweb_uzsu.js line 1:SyntaxError: expected expression, got '<'
Die Definition :
defmod time_switch_Laden3 DOIF ([$SELF:Betriebsart] eq "Automatik" and [d_Laden3_offen] eq "offen" and [[$SELF:nicht_vor,"06:00"]-23:55])\    (set Fensterladen_3_Sw_08 on-for-timer 1) ## Laden auf\
DOELSEIF ([$SELF:Betriebsart] eq "Automatik" and [d_Laden3_offen] eq "zu")\
    (set Fensterladen_3_Sw_07 on-for-timer 1) ## Laden zu   \
DOELSEIF ([$SELF:Betriebsart] eq "Manuell")\
    ## nichts
attr time_switch_Laden3 alias Laden 3 öffnen nicht vor
attr time_switch_Laden3 cmdState Laden_oeffnen|Laden_schliessen|nichts
attr time_switch_Laden3 comment Automatik: Der Laden wird von der Steuerung nicht vor der eingestellten Zeit bei Helligkeit geöffnet. Bei Dunkelheit wird er geschlossen.\
Manuell: Der Laden wird weder durch Zeit noch durch Helligkeit gesteuert.
attr time_switch_Laden3 devStateIcon Laden_oeffnen:control_arrow_up_right Laden_schliessen:control_arrow_down_right nichts:time_manual_mode
attr time_switch_Laden3 group Laden Bügelzimmer
attr time_switch_Laden3 icon weather_sunrise
attr time_switch_Laden3 readingList nicht_vor Betriebsart
attr time_switch_Laden3 setList nicht_vor:time Betriebsart:Automatik,Manuell
attr time_switch_Laden3 timerWithWait 1
attr time_switch_Laden3 wait rand(3) * 60
attr time_switch_Laden3 webCmd nicht_vor:Betriebsart:Hilfe
attr time_switch_Laden3 widgetOverride Betriebsart:uzsuToggle,Automatik,Manuell

Auch die Webansicht zur Einstellung funktioniert nicht mehr wie gewünscht. Es fehlen die Tasten zur Änderung der Betriebsart Hand/Automatik und der Zeiteinstellung "Öffnen nicht vor"
defmod rg_time_switch_Laden3 readingsGroup time_switch_Laden3:,nicht_vor,Betriebsart,<Soll>,state@!d_Laden3_offen,<&nbsp;;&nbsp;;&nbsp;;&nbsp;;&nbsp;;Hand:>,state@Fensterladen_3_Sw_07,<&nbsp;;&nbsp;;&nbsp;;>,state@Fensterladen_3_Sw_08,webCmd&Hilfe
attr rg_time_switch_Laden3 alias Fensterladen Bügelzimmer Bedienung
attr rg_time_switch_Laden3 commands {"nicht_vor"=>"nicht_vor:","Betriebsart"=>"Betriebsart:","Fensterladen_3_Sw_07.state.off" => "set Fensterladen_3_Sw_07 on-for-timer 1","Fensterladen_3_Sw_08.state.off" => "set Fensterladen_3_Sw_08 on-for-timer 1","Hilfe"=>"Hilfe:"}
attr rg_time_switch_Laden3 comment Hier kann die Zeit eingestellt werden, bis zu der der Laden am Morgen auf jeden Fall geschlossen bleibt.\
Automatik: Der Laden wird durch Helligkeit und frühester Zeit gesteuert.\
Manuell: Es findet keine automatische Steuerung statt.\
Soll zeigt den Sollzustand der automatischen Steuerung.\
Die Taster "Zu" und "Auf" ermöglichen eine Handbedienung.
attr rg_time_switch_Laden3 group Fensterladen Bedienung
attr rg_time_switch_Laden3 icon weather_sunrise
attr rg_time_switch_Laden3 room Aussen
attr rg_time_switch_Laden3 valueIcon { "d_Laden3_offen.state.off" => "Laden_zu", "d_Laden3_offen.state.on" => "Laden_auf", "Fensterladen_3_Sw_07.state.on" => "taster_ch_an_gruen" ,"Fensterladen_3_Sw_07.state.off" => "taster_ch_zu" ,"Fensterladen_3_Sw_08.state.on" => "taster_ch_an_gruen" ,"Fensterladen_3_Sw_08.state.off" => "taster_ch_auf" ,"Fensterladen_3_Sw_07.state.set_on-for-timer 1" => "taster_ch","Fensterladen_3_Sw_08.state.set_on-for-timer 1" => "taster_ch"}
attr rg_time_switch_Laden3 webCmd Hilfe

Beim ersten Schließen Anfang Oktober nach der Sommerpause war die Webansicht noch in Ordnung. Danach habe ich einen oder zwei Updates durchgeführt.


Seit dem Update heute sind auch die Schriftgrößen total daneben.

Kann mir jemand die Richtung sagen, wo ich suchen muß?


rudolfkoenig

#1
ZitatTypeError: FW_widgets[vArr[0]] is undefined
Einer der dynamisch geladenen Widgets fuellt nicht die vereinbarten Datenstrukturen.
Ich habe das jetzt abgefangen, in der JavaScript Console sollte eine Fehlermeldung ausggeben werden mit dem Text
"ERROR: fhemweb_....js does not fill FW_widgets"

ZitatSeit dem Update heute sind auch die Schriftgrößen total daneben.
Ist ein ganz anderes Problem (und gehoert in separaten Thema), evtl. haengt es mit der Umstellung hier zusammen:
https://forum.fhem.de/index.php/topic,90983.0.html

Zeitisen

Vielen Dank für die schnelle Reaktion.
Zunächst einmal wollte ich mit update check und update die neue Datei fhemweb.js holen. Das funktionierte nicht. Die Datei kam nicht mit.
Dann habe ich die Datei direkt aus svn heruntergeladen und eingefügt, Cache im Browser gelöscht und die Seite aufgerufen. (firefox 63 unter Ubuntu).
Über den  Webseiten-Debugger habe ich die Datei fhemweb.js angesehen. Es war die aktuelle Revision.
Dann Aufruf der Funktion  time_switch_Laden3. Es kommt der gleiche Fehler. Unter der Datei fhemweb.js im Debugger steht jetzt nur noch FW_longpoll() !!!
Das geht über mein Verständnis hinaus. Kann der Code sich selbst verändern?

Was nach wie vor fehlt, sind dann die Commands
nicht_vor und Betriebsart, die in der Funktion time_switch_Laden3 definiert werden.

attr time_switch_Laden3 readingList nicht_vor Betriebsart
attr time_switch_Laden3 setList nicht_vor:time Betriebsart:Automatik,Manuell
attr time_switch_Laden3 webCmd nicht_vor:Betriebsart:Hilfe
attr time_switch_Laden3 widgetOverride Betriebsart:uzsuToggle,Automatik,Manuell

defmod rg_time_switch_Laden3 readingsGroup time_switch_Laden3:,nicht_vor,Betriebsart,<Soll>,state@!d_Laden3_offen,<&nbsp;;&nbsp;;&nbsp;;&nbsp;;&nbsp;;Hand:>,state@Fensterladen_3_Sw_07,<&nbsp;;&nbsp;;&nbsp;;>,state@Fensterladen_3_Sw_08,webCmd&Hilfe
attr rg_time_switch_Laden3 alias Fensterladen Bügelzimmer Bedienung
attr rg_time_switch_Laden3 commands {"nicht_vor"=>"nicht_vor:","Betriebsart"=>"Betriebsart:","Fensterladen_3_Sw_07.state.off" => "set Fensterladen_3_Sw_07 on-for-timer 1","Fensterladen_3_Sw_08.state.off" => "set Fensterladen_3_Sw_08 on-for-timer 1","Hilfe"=>"Hilfe:"}



rudolfkoenig

ZitatZunächst einmal wollte ich mit update check und update die neue Datei fhemweb.js holen. Das funktionierte nicht.
Die eingecheckten Dateien stehen erst am naechsten Tag ab 8 fuer update zur Verfuegung.

ZitatDann Aufruf der Funktion  time_switch_Laden3
Bin verwirrt: laut attr Zeilen ist time_switch_Laden3 keine Funktion, sondern eine FHEM-Geraete-Instanz. Habs auch versucht mit den gezeigten defmod/attr und time_switch_Laden3 als dummy was nachzustellen, damit kann ich aber nichts anklicken. Wenn ich helfen soll, bitte was zum Nachstellen anhaengen.

Zeitisen

#4
ZitatBin verwirrt: laut attr Zeilen ist time_switch_Laden3 keine Funktion, sondern eine FHEM-Geraete-Instanz.
Ich bitte darum, die sprachliche Ungenauigkeit zu entschuldigen. Meine Assoziation: Eine Geräteinstanz erfüllt eine Funktion.

Nach einer erneuten Aktualisierung kommt jetzt nur noch der zweite Fehler :

fhemweb_uzsu.js line 1:
SyntaxError: expected expression, got '<'

Die Zeile 1 von fhemweb_uzsu.js ist leer. Oder ist damit die erste Zeile des Attributs gemeint:
widgetOverride Betriebsart:uzsuToggle,Automatik,Manuell

Nach einigem Probieren habe ich auch hier die Lösung gefunden: Nach Betriebsart: muss ein Leerzeichen stehen.
Woraus sich diese Forderung ableitet, habe ich aus der Doku nicht entnehmen können. Bei den Beispielen da sind auch keine Leerzeichen enthalten.
Bei der fhem.cfg.demo geht es auch ohne Leerzeichen.

Ich habe jetzt Funktionen (pardon Geräteinstanzen) in fhem.cfg.demo eingefügt zum Testen. Ich kann jetzt nicht genau sagen, ob alle eingefügten Teile wirklich benötigt werden. Es kommt hier zumindest keine Fehlermeldung mehr.


Ich habe jetzt nach langem Probieren herausgefunden, dass die Zustände nach einem Absturz des Raspi nicht definiert waren.
Nachdem ich bei allen Läden die Zeiten und Betriebsarten einmal von Hand gesetzt hatte, war auch wieder alles zu sehen.


Hier sieht man auch, dass der neue Style f18 von der Größe nicht passt. Die Auswahl von default bei Select Style ist fast nicht mehr zu sehen. Die Schrift ist zu groß ( ja ich weiß, anderes Thema).

rudolfkoenig

ZitatNach dem Text "Laden T öffnen nicht vor" sollte eine Zeitauswahl kommen.
Bei mir kommt sie, siehe Anhang. Ich kann die Zeitauswahl oeffnen, und manipulieren.

ZitatHier sieht man auch, dass der neue Style f18 von der Größe nicht passt.
Dass f18 verbesserungswuerdig ist, gebe ich gerne zu, allerdings habe ich keine Probleme die Schrift zu erkennen, die ist genauso gross, wie sonst.

Zeitisen

Mein Edit hat sich gerade mit deiner Antwort überschnitten.
Hier der Screenshot bei mir: