iobroker-community-adapters / ioBroker.enigma2

Adapter for ioBroker to retrieve information from an enigma2 receiver and send commands.
https://forum.iobroker.net/topic/25112/test-adapter-enigma2-v1-2-x
MIT License
16 stars 15 forks source link

Entfernen der enigma2 v2.0.5 Instanz: SendTo Blockly nicht mehr wählbar #207

Closed m4ding closed 3 months ago

m4ding commented 7 months ago

Hi,

ich setze die aktuelle stable Version von javascript (7.8.0) ein. Ich habe die aktuelle Version des enigma2 Adapters installiert. Sobald ich diesen deinstalliere, kann ich kein sendTo in Blockly mehr wählen: grafik

Sobald der Adapter wieder installiert ist, geht es wieder.

Das Problem ist problemlos reproduzierbar (deinstallieren/ wieder installieren des enigma2 Adapters).

Ich benötige den Adapter nicht mehr und würde ihn gerne deinstallieren können.

Danke!

mcm1957 commented 7 months ago

@klein0r Hast du da irgendeine Idee dazu?

An sich wäre ja ein blockly Problem als Issue im Javascript Adapter zu behandeln. Ich hab keine Idee wieso das DEINSTALLIEREN eines Adapters blockly permanent stören kann. Der Adapter hat ja gar keinen besonderen "Deinstallationscode". Und wenn die Blockly Extension von Enigma entfernt ist sollte doch der javascript Adapter diese einfach nicht mehr anbieten ...

klein0r commented 7 months ago

Hast du da irgendeine Idee dazu?

Ohne die Fehlermeldung aus der Browser-Console fällt mir dazu auch nichts ein.

mcm1957 commented 7 months ago

@m4ding Bitte wie von klein0r angesprochen um einen Check der Browser-Console und das log

Und bitte sicherheitshalber nach der Deinstallation des Adapters auch mal browser cache löschen.

m4ding commented 7 months ago

es muss was damit zu tun haben, dass enigma ja auch ein sendto anbietet

grafik

nach der Deinstallation des enigma2 Adapters, habe ich den sendto Bereich aufgerufen, hier die Ausgabe der Konsole, ich hoffe, das hilft:

`Nice to see you here! :) Join our dev community here https://github.com/ioBroker/ioBroker or here https://github.com/iobroker-community-adapters Prompt.js:16:12 Help us to create open source project with reactJS! Prompt.js:17:12 See you :) Prompt.js:18:12 [2024-02-20T09:10:29.965Z] Try to connect socket.io.js:66:41 Detected custom blockly: awtrix-light console.ts:40:19 Detected custom blockly: enigma2 console.ts:40:19 Detected custom blockly: mqtt console.ts:40:19 Detected custom blockly: telegram console.ts:40:19 Translation for word "Sends message via telegram" in "de" was ignored: existing = "Sendet eine Nachricht per telegram", new = Sendet Nachricht per Telegramm console.ts:40:19 Translation for word "You can use %s in the text to display current trigger value or %id to display the triggered object ID" in "de" was ignored: existing = "Sie können %s im Text verwenden, um den aktuellen Triggerwert anzuzeigen, %id, um die ausgelöste Objekt-ID zu verwenden, %name, um den ID-Namen des ausgelösten Objekts anzuzeigen, oder %old, um den alten Triggerwert zu verwenden", new = Sie können %s im Text verwenden, um den aktuellen Triggerwert anzuzeigen, oder %id, um die ID des ausgelösten Objekts anzuzeigen console.ts:40:19 Calling the Mutator constructor without passing the block it is attached to was deprecated in version 9 and will be deleted in version 10. Use the constructor by passing the list of subblocks and the block instance to attach the mutator to instead. console.ts:40:19 Calling the Icon constructor with a null block was deprecated in version 9 and will be deleted in version 10. Use a non-null block instead. console.ts:40:19 Ignoring non-existent input TIMEOUT in block sendto_otherscript console.ts:40:19 Ignoring non-existent input STEP in block sendto_gethistory console.ts:40:19 Uncaught TypeError: FieldDropdown options must not be an empty array. validateOptions$$module$build$src$core$field_dropdown blockly_compressed.js:280 FieldDropdown$$module$build$src$core$field_dropdown blocklycompressed.js:658 init blockly.js:70 doInit blockly_compressed.js:761 BlockSvg$$module$build$src$core$block_svg blockly_compressed.js:901 newBlock blockly_compressed.js:1662 domToBlockHeadless$$module$build$src$core$xml blockly_compressed.js:182 domToBlock$$module$build$src$core$xml blocklycompressed.js:172 createFlyoutBlock blocklycompressed.js:1395 createFlyoutInfo blockly_compressed.js:1393 show blocklycompressed.js:1392 updateFlyout blockly_compressed.js:1626 setSelectedItem blocklycompressed.js:1625 onClick blockly_compressed.js:1614 g blockly_compressed.js:133 r helpers.ts:98 blockly_compressed.js:280:166 XHRPOST https://sentry.iobroker.net/api/56/envelope/?sentry_key=504499a725eb4898930d3b9e9da95740&sentry_version=7&sentry_client=sentry.javascript.browser/7.98.0 [HTTP/2 403 59ms]

XHRPOST https://sentry.iobroker.net/api/56/envelope/?sentry_key=504499a725eb4898930d3b9e9da95740&sentry_version=7&sentry_client=sentry.javascript.browser/7.98.0 [HTTP/2 403 55ms]

Source-Map-Fehler: Error: request failed with status 404 Ressourcen-Adresse: http://192.168.253.202:8081/adapter/javascript/google-blockly/blockly_compressed.js Source-Map-Adresse: blockly_compressed.js.map`

klein0r commented 7 months ago

nach der Deinstallation des enigma2 Adapters, habe ich den sendto Bereich aufgerufen

Dann dürfte aber eigentlich das hier nicht mehr auftauchen:

Detected custom blockly: enigma2 console.ts:40:19

Oder hast Du nur die Instanz gelöscht, aber den Adapter weiterhin installiert? Dann wäre es eventuell ein Bug im Blockly des enigma Adapters, dass er das Dropdown mit den Instanzen nicht füllen kann

klein0r commented 7 months ago

Ich denke das ist der Fall, denn dann wäre options leer - und das mag Blockly nicht:

https://github.com/iobroker-community-adapters/ioBroker.enigma2/blob/877b4a635b00b99bf6943720beba667dd501ca77/admin/blockly.js#L53-L70

mcm1957 commented 7 months ago

@klein0r Ich hab keine Ahnung von Blockly. Wenn du Zeit hast und das fixen kannst sag ich DANKE. PR od commit der blockly Dateien.wär ausreichend, release kann ich dir genre abnehmen wenn dir das was hilft.

Ansonsten muss das Issue halt warten bis wer mit Blockly Kenntnissen das anschaun / antesten kann.

m4ding commented 7 months ago

@klein0r richtig, ich habe nur die Instanz gelöscht. Ich kann gerne den Adapter auch entfernen.

m4ding commented 7 months ago

ok, nach dem Entfernen des Adapters gehts wieder. Auf die Idee bin ich noch nicht gekommen.

klein0r commented 7 months ago

Ich kann gerne den Adapter auch entfernen.

Na wozu behalten und weiterhin updates machen, wenn man den eh nicht mehr haben will? 😄

m4ding commented 7 months ago

warum einfach, wenns auch schwierig geht ;) bin einfach nicht auf die Idee gekommen :). Weg ist weg (Instanz ;I))

klein0r commented 7 months ago

@m4ding Sobald ich diesen deinstalliere, kann ich kein sendTo in Blockly mehr wählen:

Bitte in Zukunft genauer sein bei den Beschreibungen. Du hattest den Adapter ja nicht deinstalliert. Sonst schickst Du uns hier in die falsche Richtung 👍

Aber danke für den Report. @mcm1957 Mir fehlt da momentan die Zeit für (und das ist ja auch wirklich ein Edge-Case).

Weg ist weg (Instanz ;I))

Naja, wenn Du ein Word-Dokument löschst, ist Word davon auch nicht deinstalliert...

m4ding commented 7 months ago

OK sorry, ja: wie geschrieben: bin nicht auf die Idee gekommen. Mache ich zukünftig. Danke für eure Hilfe!

Der Vergleich hinkt etwas, aber ich verstehe deinen Punkt 👍

klein0r commented 7 months ago

Der Vergleich hinkt etwas

Naja, wenn Du nur die Instanz löschst, dann werden einfach nur ein paar Objekte im System entfernt. Alle Daten des Adapters im Dateisystem bleiben bestehen. Warum hinkt der Vergleich dann?

Du siehst ja, dass die Dateien alle noch bestehen bleiben - der Blockly-Block wäre ja auch noch da (wenn er nicht diesen Bug hätte).

m4ding commented 7 months ago

bei Adaptern von Git installiert man ja erst den Adapter und dann noch die Instanz. Wenn ich einen Adapter aus dem "Adapter" Tab installiere, dann ist dem ja nicht so, richtig? Daher habe ich wohl nicht dran gedacht.

klein0r commented 7 months ago

Wenn ich einen Adapter aus dem "Adapter" Tab installiere, dann ist dem ja nicht so, richtig?

Dann wird auch der Adapter erst installiert (von npm). Nur wird in dem Fall automatisch eine Instanz erzeugt. Das Ergebnis ist genau das gleiche. Du hast trotzdem eine Adapter-Installation und eine Instanz mit der Konfiguration.

Von Github installieren ist in 99% der Fälle aber eh eine schlechte Idee.

m4ding commented 7 months ago

wie mache ich es besser, wenn der Adapter nicht im Adapter-Tab gelistet ist?

klein0r commented 7 months ago

wie mache ich es besser, wenn der Adapter nicht im Adapter-Tab gelistet ist?

Das kommt drauf an, ob dieser schon eine definierte Version hat (auf npm) oder nicht und welches Repo Du nutzt. Würde hier jetzt den Rahmen sprengen und habe ich ja schon in diversen Video-Inhalten ausführlichst mit Beispielen erklärt. Was fehlt Dir da an Infos?

m4ding commented 7 months ago

ich schaue mal deine Videos danach durch. Ich arbeite schon einige Jahre mit iobroker, das scheint mir durch die Lappen gegangen zu sein. Danke für deine Unterstützung und auch generell für deinen Einsatz in dem Projekt!

mcm1957 commented 7 months ago

wie mache ich es besser, wenn der Adapter nicht im Adapter-Tab gelistet ist?

Wenn ein Adapter nicht im Repository gelistet ist solltest du zuerst mal seeehr vorsichtig sein. Von einer Installation von Adaptern die nicht im Repository gelistet sind auf produktiven Systeme wird generell abgeraten.

Natürlich kannst du - auf eigenes Risiko - einen neuen Adapter in Abstimmung mit dem DEV auch direkt von Github installieren. Aber bitte bedenke, dass der Softwarestand auf Github sich jederzeit ändern kann und die dort verfügbaren Versionsnummern nicht zwingend in Relation zu einem Softwarestand stehen.

Prinzipiell solltest du (für produktive Systeme)

Nur für Testsysteme oder experimentierfreudige User gilt:

Wenn ein Entwickler mittel / langfristig seinen Adapter nicht in die Repos aufnehmen lässt sollte er darauf angesprochen werden (z.B. via Issue im Adapter repository). Oft (aber nicht immer) ist dies ein Indiz, dass der Adapter eine Art Quick Hack ist und nur mäßig gewartet wird. Die Aufnahme ins Repo kostet nichts - außer ev. ein paar Anpassungen wenn sich im Zuge des Reviews Anpassungsbedarf gezeigt hat.

mcm1957