-
-
Notifications
You must be signed in to change notification settings - Fork 187
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Geräteliste leer #408
Comments
kann das Problem nicht verifizieren |
I have the same issue. The device list in the "Settings"-menu is empty. |
Bitte mal die Javascript Konsole des Browsers checken. Es kann gut sein das dort Fehler gemeldet werden die das Problem erklären. Siehe https://homematic-forum.de/forum/viewtopic.php?p=456335#p456335 |
|
Danke, das ist wohl Deckungsgleich wie im Forum. Kann jemand bei dem das Problem auftritt mal folgende Änderung probieren und schauen ob das bereits das Problem behebt? --- /www/webui/webui.js
+++ /www/webui/webui.js
@@ -9426,7 +9426,8 @@ DeviceList = Singleton.create({
{
var device = this.devices[id];
var deviceStatus = homematic("Device.listStatus", {"id": device.id});
- device.updateStatus(deviceStatus, _rssiInfoHmRF_);
+ if (deviceStatus !== null && typeof(deviceStatus) !== 'undefined')
+ device.updateStatus(deviceStatus, _rssiInfoHmRF_);
}
}, |
Ich hatte das gleiche Problem. Diese Änderung behebt das Problem. Danke |
Hallo, auch ich hatte das Problem und die Anpassung hat das Problem auch bei mir behoben. Gruss |
Das hört sich gut an! Ich würde gerne aber noch verstehen wollen bei welchem Gerät aus der Geräteliste es hier genau zu besagtem Problem kommt damit ich rausbekomme wieso, weshalb, warum?!? Kann hier jemand mal einfach einen |
Leider habe ich nicht genug Ahnung um die Änderung umzusetzen, was ist gemeint, die Datei webui.js editieren?? |
Die die das Problem betreffen und helfen wollen es dauerhaft zu beseitigen, bitte folgende Änderung in der Datei --- /www/webui/webui.js
+++ /www/webui/webui.js
@@ -9426,7 +9426,10 @@ DeviceList = Singleton.create({
{
var device = this.devices[id];
var deviceStatus = homematic("Device.listStatus", {"id": device.id});
- device.updateStatus(deviceStatus, _rssiInfoHmRF_);
+ if (deviceStatus !== null && typeof(deviceStatus) !== 'undefined')
+ device.updateStatus(deviceStatus, _rssiInfoHmRF_);
+ else
+ console.log("NULL-Device: " + device.name + " (" + device.id + ") - " + device.typeName);
}
}, Und dann bitte in der Javascript-Konsole des Browsers schauen was als "NULL-Device" ausgegeben wird. Und dann das hier bitte melden damit ich verstehe was wohl der Grund ist für den Fehler. |
Hallo, also bei mir wird folgendes ausgegeben.... NULL-Device: HMW-RCV-50 (1214) - HMW-RCV-50. Hoffe es hilft. |
@guny74 Ah, das ist eine Wired Komponente. Das habe ich natürlich selbst nicht :) Vmtl. liegt es daran. Kannst du mal bitte den Inhalt deiner |
Hallo, also ich habe auch keine "Wired" Komponenten. Habe gestern nur das Upgrade auf die letzte Version gemacht... Die Komponente ist die "HMW-RCV-50 / Virtuelle Fernbedienung (drahtgebunden)".
|
@guny74 Danke für die Info. Dann liegt das doch an was anderem. Dann bitte mal folgenden HMScript unter "Skript testen" ausführen: var device = dom.GetObject(1214);
if (device)
{
var interface = dom.GetObject(device.Interface());
Write("ID {" # device.ID() # "}");
Write(" NAME {" # device.Name() # "}");
Write(" ADDRESS {" # device.Address() # "}");
Write(" INTERFACE {"# interface.Name() # "}");
} Und bitte das Ergebnis hier zeigen. |
@jens-maus : Ergebnis ist ID {1214} NAME {HMW-RCV-50} ADDRESS {BidCoS-Wir} INTERFACE {BidCos-Wired} |
@guny74 Komisch das du überhaupt dieses Gerät hast obwohl du ja kein HomeMatic-Wired hast?!? Eigentlich sollte ein Gerät "HMW-RCV-50" nicht existieren bei dir. Aber gut. ich schau mal was ich da anpassen kann um sowas abzufangen. |
Wäre mal interessant, ob bei den anderen Usersn, die das Problem haben, auch nur diese "Virtuelle Wired Komponente" vorhanden ist. |
@guny74 So, ich denke ich habe einen "besseren" Patch der das ursprüngliche Problem beheben sollte (das du geräte in deiner Liste hast für die es kein Interface gibt): --- /www/api/methods/device/liststatus.tcl
+++ /www/api/methods/device/liststatus.tcl
@@ -42,7 +42,11 @@ if { ![info exists device(NAME)] } then {
# get device status information
#
set url [getIfaceURL $device(INTERFACE)]
-array set valueset [xmlrpc $url getParamset [list string "$device(ADDRESS):0"] [list string VALUES]]
+if { $url != "" } then {
+ array set valueset [xmlrpc $url getParamset [list string "$device(ADDRESS):0"] [list string VALUES]]
+} else {
+ array set valueset {}
+}
#
# form output JSON D.h. bitte mal den ursprünglichen Patch der |
Hallo Jens, Ich habe keine WIRED und keine IP-Komponenten. Danke! |
@pedromania Danke für das verifizieren das der Patch an liststatus.tcl das finale Ergebnis liefert. Ich würde aber gerne dich noch bitten doch in dem neu hinzugefügten exec echo "$device(ID) $device(NAME) $device(ADDRESS) $device(INTERFACE)" >>/tmp/blah Und dann bitte die Geräteliste aufrufen und danach in das /tmp Verzeichnis auf RaspberryMatic schauen nach einer Datei |
… so that we catch strange config problems with devices for which no valid interface definition exist and thus result in empty device list being displayed instead. This refs #408.
Hallo, habe ich gemacht und es funktioniert immer noch. Danke Gruss |
@FraatRamski Die Lösung ist doch hier schon gepostet worden. bitte mal den Patch für die liststatus.tcl anwenden und dann schauen ob das Problem damit verschwindet. |
Hallo Jens, Ich führe das heute Abend aus und melde mich dann. |
Anmerkungen: Die virtuellen Wired-Taster sind bei erst jetzt (?) wieder in der Geräteliste aufgetaucht. Auf der CCU2 waren sie nicht in der Geräteliste. Mein Projekt begann auf einer CCU1, die natürlich die virtuellen Wired-Taster besaß. Der Patch von Der Patch von Es wird in
|
@mdzio Danke für die Info. Das deckt sich dann mit @guny74. Jedoch interessiert mich die Ausgabe von @pedromania hier da er ggf. ein etwas anders gelagertes Problem hat. Und das das Problem bei Umsteigern von CCU1 auftritt macht natürlich Sinn. Dort hatte man ja per se BidCos-Wired und damit automatisch den Virtuellen Taster für Wired. |
Hallo Jens, Inhalt von blah: Das andere Skript ergibt: Wired habe ich, und zwar nicht zu knapp. Dazu habe ich auch
Gruß, Tobias. |
Ja, auch ich konnte feststellen, dass das Laden der Seite spürbar länger dauert. Gerade wenn man viel in den Geräten unterwegs ist, dann macht sich das doch deutlich bemerkbar. Klar kann man natürlich damit argumentieren, dass das ja nicht so häufig vorkommt, aber wenn es mal so ist, wird das eine nervige Angelegenheit. Kann man für die neue Anzeige die Daten nicht irgendwie nachträglich asynchron beschaffen und dann in der Spalte nachreichen (z.B. via Ajax)? Dann wäre das ursprüngliche, schnelle Laden sichergestellt und dennoch dieses tolle neue Feature vorhanden... |
@dehsgr Na dann hinsetzen und aufbauend auf meinem Patch eine Erweiterung schreiben und dann als PullRequest einreichen! |
@FraatRamski Also ich hab da andere Erfahrungen gemacht. Nur das erste frische Laden drr Geräteliste scheint länger zu dauern. Jedes erneuern der Liste hingehen sollte fast so schnell sein wie in der alten Version. Allerdings ist das hier ein Bugtracker und kein Diskussionsforum und insofern erübrigt sich zumindest hier weitere Diskussionen darüber. |
@jens-maus ich kann Deine Erfahrung bestätigen. Insoweit ist die Ladezeit für mich okay. Wenn ich die Zeit übrig hätte, würde ich mich am Projekt beteiligen (hätte ich dann auch schon längst getan; evtl. wird es in der Zukunft etwas), aber momentan lässt es meine Zeit einfach nicht zu. :'( |
Habe das else-statement in der liststatus.tcl durchgeführt. Das Ergebnis der /tmp/blah: Es sind somit virtuelle HVL-Devices (https://github.com/thkl/Homematic-Virtual-Interface/tree/master/addon/hvl). |
Kann mir bitte jemand helfen, wie ich den Patch einspiele? Habe gestern versucht, die Datei mit WinSCP direkt zu editieren, konnte sie aber nicht abspeichern (readonly). Ich bin als root angemeldet, und da stehen die Rechte der tcl-Datei doch auf rw. Auch über putty bin ich zwar als root auf das System gekommen, konnte die liststatus.tcl aber nicht ändern. |
Mach mal, bevor Du die Datei editierst, Folgendes in der shell: und nach dem Editieren: |
@pedromania Danke, hat geklappt (ist wohl verdreht :-) ) |
Ich warte auf den neuen Release. Danke |
Ich hatte denselben Fehler und der Patch funktioniert. Das Laden der Geräte Seite geht nun immer langsamer. Da bei jedem Aufbau der Geräteliste diese Daten gelesen werden und bei vielen Geräten ist das sehr nervig. |
@StefanGubler Na dann implementiere es mittels iFrame&Co und stell ein PullRequest zur Aufnahme der Änderungen. |
Leider bin ich kein Webprogrammierer, beschäftige mich mit Datenbanken und anderen Applikationen und Application-Servers. Ich würde gerne, wenn ich könnte. ich sehe aber eigentlich EQ-3 mehr in der Pflicht. |
Dir ist aber schon klar, dass die Anzeige der RSSI Werte etc. kein von eq-3 hinzugefügtes Feature ist? |
Ich habe ebenfalls Probleme mit dem Laden der Geräteliste Hier meine liststatus.tcl: Vielleicht habe ich etwas verkehrt editiert proc getIfaceURL {interface} {
global INTERFACE_LIST
if {[info exists INTERFACE_LIST($interface)]} {
array set ifaceList $INTERFACE_LIST($interface)
return $ifaceList(URL)
} else {
return ""
}
}
set script {
var device = dom.GetObject(id);
if (device)
{
var interface = dom.GetObject(device.Interface());
Write("ID {" # device.ID() # "}");
Write(" NAME {" # device.Name() # "}");
Write(" ADDRESS {" # device.Address() # "}");
Write(" INTERFACE {"# interface.Name() # "}");
}
}
array set device [hmscript $script args]
@@ -42,7 +42,11 @@ if { ![info exists device(NAME)] } then {
jsonrpc_error 501 "device not found"
}
#
# get device status information
#
set url [getIfaceURL $device(INTERFACE)]
if { $url != "" } then {
array set valueset [xmlrpc $url getParamset [list string "$device(ADDRESS):0"] [list string VALUES]]
} else {
array set valueset {}
}
#
# form output JSON
#
set result "\{"
append result "\"ID\":[json_toString $device(ID)]"
append result ",\"NAME\":[json_toString $device(NAME)]"
append result ",\"ADDRESS\":[json_toString $device(ADDRESS)]"
append result ",\"INTERFACE\":[json_toString $device(INTERFACE)]"
foreach key [array names valueset] {
append result ",\"$key\":[json_toString $valueset($key)]"
}
append result "\}"
jsonrpc_response $result |
@kekzmobile Ja, du hast da einen Fehler gemacht. Einfach die .. oder einfach bis zum Wochenende warten dann bringe ich eine neue version mit den fixes raus. |
Da das problem mit der leeren Geräteliste für die nächste Version bereits behoben ist schliesse ich dieses Ticket nun. |
RaspberryMatic-3.37.8.20180922-rpi3.zip
Beim Aufruf von Einstellungen Geräte kommt kurz eine Einblendung "Bitte warten, Konfigurationsdaten werden geladen" (oder so ähnlich, Fenster ist nur kurz zu sehen).
Danach bleibt die komplette Liste leer (weißer Bereich, auch kein Tabellenkopf).
Geprüft mit Firefox, Edge und Opera.
The text was updated successfully, but these errors were encountered: