Raw definition funktioniert nicht bei der Änderung von TYPE

Begonnen von Ellert, 03 Februar 2017, 09:31:13

Vorheriges Thema - Nächstes Thema

Ellert

Aufgefallen ist mir dieses Verhalten im Zusammenhand mit der Fragestellung hier: https://forum.fhem.de/index.php?topic=66299.msg575958#msg575958

Also dies klappt nicht:
Raw definition geöffnet
XMBC durch KODI ersetzt
Execute commands ausgeführt
gemeldet wird aber, dass es keine Fehler gab.

rudolfkoenig

Kennst du das: man will die Ursache eines Bugs finden, aber man findet gleich 2 Weitere, die nicht auf dem Schirm waren?

Habs gefixt, sollte jetzt wieder funktionieren.

Ellert

#2
Zitat von: rudolfkoenig am 03 Februar 2017, 12:02:01
Kennst du das: man will die Ursache eines Bugs finden, aber man findet gleich 2 Weitere, die nicht auf dem Schirm waren?

Habs gefixt, sollte jetzt wieder funktionieren.
Ich kenne es eher umgekehrt: ein Fehler beseitigt und 2 Neue erzeugt.

Leider hat es nicht funktioniert, der TYPE ändert sich nicht.

Ich habe die 01_FHEMWEB.pm 13319 2017-02-03 10:55:28Z rudolfkoenig und fhemweb.js mit gleichem Zeitstempel benutzt.

Die fhem.pl war beim svn update nicht dabei, warum eigentlich nicht?



rudolfkoenig

ZitatLeider hat es nicht funktioniert, der TYPE ändert sich nicht.
Bist du sicher, dass der Browser die neue Variante der .js Datei hat? Notfalls bitte mit Inkognito Modus testen.

Betroffen ist fhemweb.js, und wg. Warning 01_FHEMWEB.pm. fhem.pl habe ich nicht geaendert.

vbs

Bei mir klappt der Befehl "defmod" alleine auch schon nicht. Also TYPE ändert sich nicht, wenn ich mit folgendem Befehl den TYPE von XBMC auf KODI ändern möchte:
defmod sz_xbmc KODI 192.168.2.206 tcp

rudolfkoenig

Und inwieweit ist das eine Antwort auf meine Frage bzw. bitte?

vbs

 :o Vermutlich in nicht besonders weit. Ich bin leider ziemlich schlecht darin, Auskunft darüber zu geben, welche Javascript-Dateien in Browsern anderer Leute geladen sind. Hatte gehofft, meine Info könnte evtl. helfen, sorry.

rudolfkoenig

Dass es einen Bug gibt, habe ich heute frueh selbst gemerkt, dieses Thema hier war der willkommene Anlass es zu fixen.
Ich habe es bei mir gefixt, getestet und eingecheckt. In der dritten Zeile der Datei steht
Zitatvar version="$Id: fhemweb.js 13319 2017-02-03 10:55:28Z rudolfkoenig $";
das kann man per JavaScript-Konsole, in Chrome z.Bsp. Klick auf Sources, fhem, pgm2, fhemweb.js kontrollieren.

Falls es bei euch auch mit dieser Datei noch Probleme gibt, dann bitte die Meldungen aus der JS Konsole hier anhaengen.

Ellert

Zitat von: rudolfkoenig am 03 Februar 2017, 16:22:23
Bist du sicher, dass der Browser die neue Variante der .js Datei hat? Notfalls bitte mit Inkognito Modus testen.

Betroffen ist fhemweb.js, und wg. Warning 01_FHEMWEB.pm. fhem.pl habe ich nicht geaendert.

Ich verwende Firefox und im "privaten Fenster" funktioniert es auch nicht.
Wenn ich im DOM-Inspector die fhemweb.js über den internen Debugger von Firefox aufrufe, wird mir der Quelltext angezeigt, dort steht:
var version="$Id: fhemweb.js 13319 2017-02-03 10:55:28Z rudolfkoenig $";

Ich gehe davon aus, das dies die geladene Datei ist.

Ich schildere das Problem noch mal:

Das Modul 70_XMBC..pm wird durch 70_KODI.pm abgelöst.
Ich möchte daher den TYPE der bestehenden Definition von XMBC in KODI ändern.
Daher mache ich folgendes:
Zitat
Raw definition öffnen
XMBC durch KODI im sich öffnenden Textfeld ersetzt
Execute commands ausgeführt
gemeldet wird:
Executed everything, no errors found.
Dann habe ich Save ausgeführt, das Browser Fenster geschlossen und Edit files aufgerufen
die fhem.cfg geöffnet und die Definition zeigt weiterhin den TYPE "XBMC".

Ist es vorgesehen den TYPE einer bestehenden Definition über defmod zu ändern? Über "modify"  gibt es diese Möglichkeit nicht, wie ich gerade in der Commandref nach gelesen habe.

rudolfkoenig

#9
ZitatIst es vorgesehen den TYPE einer bestehenden Definition über defmod zu ändern?
Nein, dazu muss man delete+define durchfuehren. Defmod is relativ simpel: fuehrt entweder define oder modify aus.
War also ein defmod Bug, jetzt gibt es eine Fehlermeldung. Auf Ideen kommen die Leute... :)

Nach nochmaligen durchlesen der Geschichte verstehe ich endlich, was ich haette lesen sollen.
Also nicht "Raw definition funktioniert nicht" (was stimmt, und ich habe es gefixt), sondern "funktioniert nicht bei der Änderung von TYPE". Das werde ich auch nicht implementieren, da es viel zu selten sinnvoll und aufwendig zu implementieren ist: es muessen sowohl Definition, wie auch alle Attribute passen. Workaround: in der Raw-Definition vorne "delete <devicename>" einfuegen.

Ellert

Zitat von: rudolfkoenig am 03 Februar 2017, 19:17:05
Nein, dazu muss man delete+define durchfuehren. Defmod is relativ simpel: fuehrt entweder define oder modify aus.
War also ein defmod Bug, jetzt gibt es eine Fehlermeldung. Auf Ideen kommen die Leute... :)
Ok, bei einem define müssen alle Attribute neu gesetzt werden, dann wäre es besser in diesem speziellen Fall in der fhem.cfg XBMC durch KODI zu ersetzen.

marvin78

Nicht, wenn du das machst:

Zitat von: rudolfkoenig am 03 Februar 2017, 19:17:05
Workaround: in der Raw-Definition vorne "delete <devicename>" einfuegen.

Ellert

Zitat von: marvin78 am 03 Februar 2017, 19:34:26
Nicht, wenn du das machst:
Danke, dass Du es erwähnt hast, ich hätte sonst nicht mehr in den Thread gesehen und den Workaround gelesen.