Skip to content
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

(klein0r) Breaking change: Removed trigger state (subscribe is deprecated in js-controller 6.x) #709

Open
Baenker opened this issue Nov 1, 2024 · 14 comments

Comments

@Baenker
Copy link

Baenker commented Nov 1, 2024

Hallo @klein0r was genau bedeutet das?

Es gab unter Obkjekte data einen Datenpunkt trigger wenn man den auf true setzt ruft ical die aktuellen Daten ab. Somit konnte man bei Bedarf auch unterhalb des normalen Intervalls die Kalender aktualisieren. Ist dieser Punkt weggefallen? Falls ja welche alternative gibt es (ausser häufiger den Kalender abzurufen)?

@ohle64
Copy link

ohle64 commented Nov 5, 2024

Da wäre ich auch an einer Lösung interessiert. So konnte man kurzfristige Änderungen auch mal neu einlesen lassen. Schade das mit neuem controller auch immer mehr Funktionalität verloren geht.

@jens-maus
Copy link
Collaborator

Warum nicht einfach den Adapter neustarten lassen? Dann sollte er alle eingestellten ics neu einlesen und verarbeiten.

@ohle64
Copy link

ohle64 commented Nov 5, 2024

Wenn der Adapter das machen würde ja, tut er aber nicht. Ich hatte versucht unter system.adapter.ical.0.alive -> true

@Baenker
Copy link
Author

Baenker commented Nov 5, 2024

@jens-maus Warum sollte man einen Adapter komplett neu starten lassen wenn man nur die Daten frisch abrufen will? Ich verstehe halt nicht warum ein sinnvolles Feature entfernt wird? Vermutlich wird es ja einen Grund geben?

Wie ist denn die aktuelle Empfehlung per Javascript eine Instanz platt zu machen und neu zu starten?

Derzeit mache ich das so:

var adapter_cloud = getObject(id_Adapter_cloud); adapter_cloud.common.enabled = false; // Adapter ausschalten setObject(id_Adapter_cloud, adapter_cloud); if(logging){ log('Adpater Cloud wird gestoppt'); }

@jens-maus
Copy link
Collaborator

@jens-maus Warum sollte man einen Adapter komplett neu starten lassen wenn man nur die Daten frisch abrufen will? Ich verstehe halt nicht warum ein sinnvolles Feature entfernt wird? Vermutlich wird es ja einen Grund geben?

Der Grund ist, das ioBroker (genauer gesagt iobroker.js-controller) das feature ohnehin nicht mehr supported.

@Baenker
Copy link
Author

Baenker commented Nov 5, 2024

@jens-maus Meist wird ja eine Funktion nicht einfach gestrichen sondern entweder durch neue Features (die das gleiche machen, nur besser) ersetzt oder es gibt bereits bessere Alternativen? Die Frage wäre also was die bessere Alternative ist?

@ohle64
Copy link

ohle64 commented Nov 5, 2024

Kann man nicht im Adapter den Abruf starten, so mit einem Button oder so?

@Baenker
Copy link
Author

Baenker commented Nov 5, 2024

Das habe ich gefunden: (foxriver76) ioPack mode subscribe has been removed as you can achieve the same with mode once and setting system.adapter.xy.alive state (also removed common.wakeup and common.subscribe because of this)

Also es gibt eine Alternative: Wobei ich die leider nicht verstehe… Was ist mode once?

@Apollon77
Copy link
Member

Ja genau das ist die ALternative, das "once" hier nicht relevant.

Also anstelle dem alten State jetzt einfach system.adapter.xy.alive auf true setzen und es sollte das gleiche passieren

@Baenker
Copy link
Author

Baenker commented Nov 7, 2024

@Apollon77 habe es nun getestet und es tut nichts. Ich hätte auch erwartet das der State danach wieder auf false geht. Auch das passiert nicht.

@Apollon77
Copy link
Member

also alive setzen auf "true" mit ack=false????

@Baenker
Copy link
Author

Baenker commented Nov 7, 2024

@Apollon77 jupp. Kann aber auch nicht gehen. Die Funktion kam vermutlich erst mit js-controller 6.x? Habe noch 5.019 installiert. Allerdings zeigt mir mein System auch nicht das es aktuell nur eine 6.x verfügbar ist sondern eine 4.024?
IMG_0535

Schalte ich auf den Beta Zweig sehe ich das 7.x verfügbar ist. Wie kann ich die aktuelle js-controller Version installieren? Wenn ich iobroker upgrade self nutze installiert er die 4.024 oder die aktuelle 6er Version?

@Apollon77
Copy link
Member

Alive setzen geht seit Urzeiten

@klein0r
Copy link
Contributor

klein0r commented Nov 8, 2024

Warum sollte man einen Adapter komplett neu starten lassen wenn man nur die Daten frisch abrufen will?

iCal ist doch eh ein Schedule-Adapter. Das heißt, da läuft keine Instanz die ganze Zeit durch, sondern nur nach Zeitplan. Man startet also nichts neu (weil gar nichts läuft). Die Instanz startet, macht ihre Aufgaben, und beendet sich dann selbst.

"mode": "schedule",
"schedule": "0,30 * * * *",

Um häufiger abzufragen, kann man in der Instanzübersicht auch einfach die Cron-Intervalle kleiner stellen.

Diese "Trigger-States" waren zusätzliche Features vom js-controller, welche die Instanz gestartet haben, sobald sich etwas geändert hat. Das hat aber kaum ein Adapter genutzt. Daher ist das rausgeflogen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants