NEWS
Blockly mit Search and Replace bearbeiten ?.
-
Ich möchte gerne einige Blocklys mit einem search and replace editor bearbeiten um einige objektids zu ändern. Dazu habe ich die Scripte über den internen Editor exportiert und mit search und replace bearbeitet und diese scripte nach dem editieren wieder importiert.
Das seltsame was ich nun festgestellt habe ist das wenn ich im internen editor nun ein blockly script bearbeite und mir das geänderte objekt ansehe immer noch die alte objektid darin steht. Woher kommt das und wer kann mir dabei helfen ??
zum testen habe ich dann auch die objects.json und states.json nach der gleichen methode bearbeitet aber es ist immer noch das gleiche verhalten bei den blockly scripten im interne blockly editor sieht man nur die alte objektid .
Danke schon mal für Hilfe. -
@crazyfloyd ich arbeite zwar nur mit JS/TS aber ich könnte mir vorstellen, dass es nicht reicht die Namen zu ändern, es sogar wahrscheinlich nichts bringt. Du kannst ja Namen mehrmals vergeben, dann würde nichts mehr funktionieren.
Die Namen werden aus der Objekt-ID direkt geholt. Du müsstest also nach IDs suchen und diese ändern. Es ist ein riesen Unterschied zwischen ID und NAMEGeh den Weg und ändere es per Klick, dass wird schneller gehen
-
@crazyfloyd
Mit welchem Editor hast denn die Änderungen vorgenommen? -
@jan1 sagte in Blockly mit Search and Replace bearbeiten ?.:
@crazyfloyd
Mit welchem Editor hast denn die Änderungen vorgenommen?Mit dem Programm "Mass Search and Replace". und mit "Notepad++" nochmal kontrolliert.
-
@xenon sagte in Blockly mit Search and Replace bearbeiten ?.:
@crazyfloyd ich arbeite zwar nur mit JS/TS aber ich könnte mir vorstellen, dass es nicht reicht die Namen zu ändern, es sogar wahrscheinlich nichts bringt. Du kannst ja Namen mehrmals vergeben, dann würde nichts mehr funktionieren.
Die Namen werden aus der Objekt-ID direkt geholt. Du müsstest also nach IDs suchen und diese ändern. Es ist ein riesen Unterschied zwischen ID und NAMEGeh den Weg und ändere es per Klick, dass wird schneller gehen
Ich habe ja die ObjektID geändert. Beispiel: "deconz.0.lights.000b57fffe965292" auf neue ID "deconz.0.lights.56"
-
@crazyfloyd
Hättes auch gleich direkt mit Node++ machen können, der kann das auch. Hatte auch mal das Vergnügen einiges ändern zu müssen und damit hat das sofort geklappt. -
@jan1 sagte in Blockly mit Search and Replace bearbeiten ?.:
@crazyfloyd
Hättes auch gleich direkt mit Node++ machen können, der kann das auch. Hatte auch mal das Vergnügen einiges ändern zu müssen und damit hat das sofort geklappt.Ah ja. habe die Funktion in Node++ gefunden. Danke. Trotz alledem es funktioniert nicht. In dem Javascript das ich nun geändert habe und es anschliessend importiert habe sind die neuen objekt ids zu sehen. Gehe ich nun in das script per iobroker javascript editor werden mir in den blockly feldern wieder die alten objekt ids angezeigt. ich verstehe das nicht. Noch jemand einen Tip??
-
@crazyfloyd sagte in Blockly mit Search and Replace bearbeiten ?.:
@xenon sagte in Blockly mit Search and Replace bearbeiten ?.:
@crazyfloyd ich arbeite zwar nur mit JS/TS aber ich könnte mir vorstellen, dass es nicht reicht die Namen zu ändern, es sogar wahrscheinlich nichts bringt. Du kannst ja Namen mehrmals vergeben, dann würde nichts mehr funktionieren.
Die Namen werden aus der Objekt-ID direkt geholt. Du müsstest also nach IDs suchen und diese ändern. Es ist ein riesen Unterschied zwischen ID und NAMEGeh den Weg und ändere es per Klick, dass wird schneller gehen
Ich habe ja die ObjektID geändert. Beispiel: "deconz.0.lights.000b57fffe965292" auf neue ID "deconz.0.lights.56"
Oder gibt es noch andere IDs die du meinst ??
-
@crazyfloyd sagte in Blockly mit Search and Replace bearbeiten ?.:
Noch jemand einen Tip??
Ich exportiere Blocklys in eine Textdatei, dann bearbeite ich es mit einem "richtigen" Editor.
Dann importiere ich es in ein neues leeres Blockly. (nicht in das bestehende, auch nicht wenn der Inhalt des bestehenden Blockly gelöscht war...Also, ein neues leeres Blockly erstellen und dort importieren) -
@crazyfloyd Bist du sicher das du die ID korrekt ersetzt hast ? Ich habe das (an einem einfachen Beispiel) selber gerade probiert:
Export von Blockly:
<block xmlns="https://developers.google.com/blockly/xml" type="control" id="FEL~2Y.zrbG$l6jtZ~ve" x="438" y="-362"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.New_Object</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=")8qd$gB[NA(;!_FG^~v%"> <field name="BOOL">TRUE</field> </block> </value> </block>
vor dem import:
<block xmlns="https://developers.google.com/blockly/xml" type="control" id="FEL~2Y.zrbG$l6jtZ~ve" x="438" y="-362"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.led</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=")8qd$gB[NA(;!_FG^~v%"> <field name="BOOL">TRUE</field> </block> </value> </block>
Beide Blöcke in einem Skript nach Import
Getestet mit JS 4.8.4
-
@asgothian sagte in Blockly mit Search and Replace bearbeiten ?.:
@crazyfloyd Bist du sicher das du die ID korrekt ersetzt hast ? Ich habe das (an einem einfachen Beispiel) selber gerade probiert:
Export von Blockly:
<block xmlns="https://developers.google.com/blockly/xml" type="control" id="FEL~2Y.zrbG$l6jtZ~ve" x="438" y="-362"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.New_Object</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=")8qd$gB[NA(;!_FG^~v%"> <field name="BOOL">TRUE</field> </block> </value> </block>
vor dem import:
<block xmlns="https://developers.google.com/blockly/xml" type="control" id="FEL~2Y.zrbG$l6jtZ~ve" x="438" y="-362"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.led</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id=")8qd$gB[NA(;!_FG^~v%"> <field name="BOOL">TRUE</field> </block> </value> </block>
Beide Blöcke in einem Skript nach Import
Getestet mit JS 4.8.4
Danke erst einmal für deine Hilfestellung:
Wenn ich diese Funktion für Import/Export nutze funktioniert das ganze
nutze ich aber diese Import/Export (json datei) Funktion bekomme ich das besagte Problem das die alte ID im Blockly zu sehen ist obwohl die Importdatei die neue ID hat.
Diese .json Datei hat am Ende auch eine kryptische Zeichenkette. Vielleicht liegt das daran das dort noch Informationen hinterlegt sind.
Siehe letzte Zeile auf dem Bild.
Werde das ganze jetzt aber mit der 1ten Export Funktion umsetzen. Damit scheint es ja zu funktionieren.
-
@crazyfloyd sagte in Blockly mit Search and Replace bearbeiten ?.:
Vielleicht liegt das daran das dort noch Informationen hinterlegt sind.
selbstverständlich!
da sind alle Informationen für die Blöcke drin