NEWS
RIKA Firenet Adapter bringt Fehler nach Update auf JS 5.0.12
-
Systemdata Bitte Ausfüllen Hardwaresystem: Pi3 Arbeitsspeicher: 1GB Festplattenart: SD-Karte Betriebssystem: Linux Node-Version: 18.18.0 Nodejs-Version: 18.18.0 NPM-Version: 9.8.1 Hallo,
nach update auf JS 5.0.12 läuft meine RIKA Firenet 0.0.7 Instanz nicht mehr.
Hat vor dem Update ohne Probleme funktioniert.
Jetzt bleibt die Instanz rot und ich bekomme folgende Fehlermeldung dazu:host.IOBMaster 2023-10-11 20:00:58.258 info Restart adapter system.adapter.rika-firenet.0 because enabled host.IOBMaster 2023-10-11 20:00:58.257 error instance system.adapter.rika-firenet.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.IOBMaster 2023-10-11 20:00:58.257 error Caught by controller[0]: Node.js v18.18.0 host.IOBMaster 2023-10-11 20:00:58.257 error Caught by controller[0]: } host.IOBMaster 2023-10-11 20:00:58.257 error Caught by controller[0]: code: 'ERR_PACKAGE_PATH_NOT_EXPORTED' host.IOBMaster 2023-10-11 20:00:58.257 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/axios-cookiejar-support/lib/index.js:8:40) { host.IOBMaster 2023-10-11 20:00:58.257 error Caught by controller[0]: at require (node:internal/modules/cjs/helpers:119:18) host.IOBMaster 2023-10-11 20:00:58.257 error Caught by controller[0]: at Module.require (node:internal/modules/cjs/loader:1143:19) host.IOBMaster 2023-10-11 20:00:58.257 error Caught by controller[0]: at Module._load (node:internal/modules/cjs/loader:922:27) host.IOBMaster 2023-10-11 20:00:58.256 error Caught by controller[0]: at Module._resolveFilename (node:internal/modules/cjs/loader:1063:27) host.IOBMaster 2023-10-11 20:00:58.256 error Caught by controller[0]: at Module._findPath (node:internal/modules/cjs/loader:636:31) host.IOBMaster 2023-10-11 20:00:58.256 error Caught by controller[0]: at resolveExports (node:internal/modules/cjs/loader:567:36) host.IOBMaster 2023-10-11 20:00:58.256 error Caught by controller[0]: at packageExportsResolve (node:internal/modules/esm/resolve:698:9) host.IOBMaster 2023-10-11 20:00:58.256 error Caught by controller[0]: at exportsNotFound (node:internal/modules/esm/resolve:362:10) host.IOBMaster 2023-10-11 20:00:58.256 error Caught by controller[0]: at new NodeError (node:internal/errors:405:5) host.IOBMaster 2023-10-11 20:00:58.256 error Caught by controller[0]: Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/defaults' is not defined by "exports" in /opt/iobroker/node_modules/axios/package.json host.IOBMaster 2023-10-11 20:00:58.256 error Caught by controller[0]: ^ host.IOBMaster 2023-10-11 20:00:58.255 error Caught by controller[0]: throw e; host.IOBMaster 2023-10-11 20:00:58.255 error Caught by controller[0]: node:internal/modules/cjs/loader:573 host.IOBMaster 2023-10-11 20:00:56.500 info instance system.adapter.rika-firenet.0 started with pid 99575
Ich denke es hat wohl was mit dem "axios" Modul zu tun ???
Hab den Adapter schon gelöscht und neu installiert, hat aber leider nicht geholfen. -
@chinaboy ein pi3 hat nur 1GB RAM!
-
@chinaboy sagte in RIKA Firente Adapter bringt Fehler nach Update auf JS 5.0.12:
2023-10-11 20:00:58.256 error Caught by controller[0]: Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/defaults' is not defined by "exports" in /opt/iobroker/node_modules/axios/package.json
Issues beim Adapter erstellen , aber so wie ich das sehe ist die letzte Adapterpflege 2021.
-
Dieser Adapter ist in keinem offiziellen Repository enthalten.
Auch auf die Gefahr, dass ich mich wiederhole:
Von der Installation von Adapter direkt aus Github wird DRINGEND abgeraten sofern der zustänsige Dev nicht im Zuge von tests dazu auffordert. Sollte ein Adapter nicht via Repository verfügbar sein, so sollte der zuständige Dev eine Aufnahme in die Repositories beantragen.Adapter nur von Github - USE AT OWN RISK
Für alle Adapter die in den Repositories gelistet wurden, wurde vor der Auslieferung von js-controller 5 ein Screening durchgeführt und soweit möglich, Lösungen umgesetzt.
-
Adapter hat letzte Änderung 2021 (!) erhalten.
User ist 'ziemlich' inactiv.Schaut schlecht aus ...
... außer du findest jemand der den Adapter übernehmen will. -
Maybe this link helps someone:
https://github.com/axios/axios/issues/5072#issuecomment-1557245482
All dependencies, especialla axios and axios-cookie-jar are more than outdated.
-
@chinaboy
ja so wie es aussieht, ist es die Kombination axios, axios-cookiejar-support, welche ich in diesem Adapter verwendet habe. Bin gerade dabei, das Ganze wieder mit "Request" umzusetzen, da es damit problemlos funktioniert und mit axios bringe ich es einfach nicht mehr hin. Bitte noch etwas Geduld, dann kannst du dir eine neue Version über Github installieren. Das Ganze als offizielles Repository zu machen, war mir damals zu viel Aufwand. -
@mcm57
ja genau, diese Abhängigkeiten passen anscheinend nicht mehr und ich hab auch keine Lust, diese im axios package.json selber reinzuschreiben, da es nach einem Update ja wieder das gleiche Problem gäbe. -
@xawa
Request ist seit langem DEPRECATED und request hatte mit node 20 auch Probleme. Wie kanfe Request noch funktioniert ist ungwiss.Etwas von axios auf Request umzustellen ist sicher der dslsche Weg.
-
@xawa
Du brauchst nichts ins axios package zu schreiben,das wäre falsch.AktUSisieRE DEINE packages mal,dann wird das alles bereinigt. Ein ' npm i' sollte da reichen - oder lass den dependabot seine Arbeit tun.
-
@mcm57
vielen Dank für deine Ratschläge Den Adapter habe ich für meinen Pelletsofen anfangs mit request entwickelt und danach gleich auf axios umgestellt wegen "request depricated" und das ganze Thema mit Adapterpflege und ofiziellen Repositories war mir einfach zu viel Aufwand. Danach verlor ich mehr und mehr das Interesse und jetzt müsste ich mich in die ganze Thematik mehr einarbeiten, wofür mir Zeit und immer noch das Interesse fehlt. Hab ja probiert, das Ganze mit axios wieder hinzukriegen, aber hab es nicht geschafft. Wäre schön, wenn sich der Sache ev. jemand anderer annehmen könnte. -
@xawa
Wenn sich hier wer angesprochen fühlt was zu tun kann ich sicher bei Fragen helfen.Mangels passendercHardwsre kann ich jaum was entwickel / testen.
Sollte NUR ein Aktuslisierung der Dependencies notwenfig sein,kann ich das getne versuchenbun. Müsste halt dann wer von einem Fork testen. Kann sein das alles ok ist, kann sein dass das nichts nutzt.
Im Prinzip kann der Adspter auch in den Community Bereich verschoben werdrn. Macht aber auch nur dann sinn wenn ihn wer prinzipiell betreuen kann / will.
Ich schau ev mal am Abend bezügluch reinem Deps Updste
-
@mcm57
falls du Zeit und Lust hast, wäre das eine coole Sache. für div. Tests stehe ich gerne zur Verfügung
Was die Abhängigkeiten betrifft, so habe ich auch schon einen neuen Adapter lokal erzeugt und nach Anleitung unter https://github.com/3846masa/axios-cookiejar-support/blob/main/README.md folgende pakete installiert.npm install axios tough-cookie axios-cookiejar-support
Mit den neuesten paketen gab es aber den gleichen Fehler.
Die Aufgabe meines Adapters besteht darin:
- Anmeldung bei folgender Seite: https://www.rika-firenet.com/web/login und abspeichern des cookies damit folgende Aktion durchgeführt werden kann:
- Json mit aktuellen Einstellungen des Ofens von folgender Seite holen: https://www.rika-firenet.com/api/client/[MeineOfenID]/status
- Nach Änderung von Datenpunkten muss geändertes Json wieder an https://www.rika-firenet.com/api/client/[MeineOfenID]/controls gesendet werden
-
@xawa
Oje
Das klingt weniger gut.
Werd mal trotzdem mal schaun -
@mcm57 sagte in RIKA Firenet Adapter bringt Fehler nach Update auf JS 5.0.12:
@xawa
Oje
Das klingt weniger gut.
Werd mal trotzdem mal schaunJa, schau mal drüber, wenn du magst (nur nicht zu viel Aufwand betreiben). Mit request und der Adapter-Version 0.0.8 klappt es nun ja wieder, und vielleicht packt mich das "Adapterfieber" ja bald wieder mal und ich versuch es mit axios oder einem anderen http-Client nochmal
-
Hab jetzt die neue Version 0.0.8 installiert, funktioniert perfekt. Adapter ist wieder grün und überträgt die Werte. DANKE an alle für die schnelle Hilfe
-
Auch wenn der Adapter u nter js-controlle 5 und ev. höher funktioniert ist dieser als ALPHA TEST-VERSION zu klassifizieren da er (zumindest bisher) nicht in den ioBroker repositories registriert wurde.
Von direkten Installation von GitHub - insbesondere auf produktiven Systemen - wird explizit abgeraten.
GitHub Versionen können sich jederzeit (auch kurzfristig) ändern und durchaus auch in sich inkonsistent und fehlerhaft sein. Versionsangaben von GitHub Installationen sind Schall und Rauch da die Versionsnummer zumindest bei Verwendung der standardmäßigen Umgebung erst im Zuge der Releaseerstellung geändert wird.
Auf explizite Aufforderung durch den Entwickler kann eine GitHub Installation zur Fehlereingrenzung oder zum Test neuer Funktionalität - unter Inkaufnahme des erhöhten Risikos - natürlich erfolgen.
Adapter die nur via GitHub oder npm (also NICHT aus einem der beiden Repositories) installierbar sind sind mit erhöhter Vorsicht zu betrachten. Hier sollte der Entwickler drum ersucht werden eine Aufnahme in die Repositories zu veranlassen indem z.B. ein Issue im Adapterrepository erstellt wird.
Und falls es irgendwie unklar ist:
ioBroker unterstützt folgende Arten von Installation:
-
aus dem STABLE Repository
Das sind Adapter Releases die keine groben Fehler aufweisen (sollten). Natürlich kann es auch dort Fehler geben, die Behebung davon obliegt dem jeweiligen Dev und kann ggF auch dauern.
-
aus dem LATEST Repository
Das sind Adapter Releases die neu erstellt wurden und nur rudimentär getestet sind - oft auch als BETA Releases bezeichnet. Releases aus dem LATEST sind primär für unsere zahlreichen freiwilligen Tester gedacht. BETA / LATEST Releases können durchaus Fehler aufweisen - auch wenn ich davon ausgehe dass jeder aintainer dies zu vermeiden versucht. Vom Einsatz auf produktiven Systemen wird abgeraten außer man braucht irgenein neues Feature (z.B. neues Gerät) unbedingt. Hier muss dann jeder Entscheiden was ihm wichtig ist.
-
direkt von GITHUB
Von Installationen direkt aus Giuthub wird definitiv abgeraten außer auf Anweisung des Maintainers und für den Fall dass man gemeinsam mit diesem etwas testen will. Details siehe oben.
-
direkt von npm
Diese Installation kann erforderlich sein, wenn man eine bestimmte Version installieren möchte / muss. Im Normalfall sollte man direkte npm Installationen ebenso meiden wie direkte GitHub Installationen - ausgenommen um z.B. zu einer bekannten Version downzugraden - obwohl hier wenigstens ein definierter Stand garantiert ist.
Adapter die NUR via npm und/oder nur via GitHub installierbar sind sollte man meiden - diese wurden nicht mal einem rudimentären Review unterzogen und sollten mit dem Attribut "vollständig auf eigenes Risiko verwenden" installiert werden. Hier empfiehlt es sich den Developer zu ersuchen eine Aufnahme in die Repos zu veranlassen. Wenn dieser darauf nicht reagiert sollte man von einer eher kurzen und unklaren Lebensdauer des Adapters ausgehen. Support meiner-/unsererseits für solche Adapter ist mit Sicherheit minimalistisch.
-
-
@xawa sagte in RIKA Firenet Adapter bringt Fehler nach Update auf JS 5.0.12:
axios-cookiejar-support
Ich habe damit auch schon mal experimentiert.
Allerdings muss man nicht unbedingt die Erweiterung verwenden.
Meist erwarten die Seiten ein sogenanntes SessionCookie, so das sie einen einmal authorisierten Benutzer von Anfrage zu Anfrage wiedererkennen.
Dieses Sessioncookie kann man aus der response-Antowort der Authorisierungsanfrage auslesen und dann bei jeder weiterer Anfrage als Cookie mitgeben. Dann ist man nicht unbedingt auf die Funktionsweise einer zusätzlichen Bibliothek angewiesen.
Aber ja, das muss man analysieren und durch reengineeren ausprobieren. Das kostet Zeitich habe letztens beim recherchieren aber noch folgende Möglichkeit gefunden. Ob die funktioniert weiß ich nicht
Hier ist die Openapi definition für rika
https://github.com/jeremiehuchet/rika-firenet-api-rs/blob/b201d614a2e2ad34df6acaa6d3e564a88c635cc7/rika-firenet-openapi/rika-firenet-openapi.yml#L4Theoretisch kann man sich mit dem openapi framework daraus eine zugriffsapi für rika in javascript bauen lassen, die man dann im adapter verwendet.
aber auch da muss man sich im Detail mit beschäftigender api definitionsdate nach müsste ein cookie zurückkommen namens conncect.sid, welches dann bei den weiteren zugriffen verwendet wird.
-
@oliverio sagte in RIKA Firenet Adapter bringt Fehler nach Update auf JS 5.0.12:
müsste ein cookie zurückkommen namens conncect.sid, welches dann bei den weiteren zugriffen verwendet wird.
Tut es
Ich habe den Adapter mal geforked: https://github.com/DEV2DEV-DE/ioBroker.rika-firenet
Contributions welcome! Damit der dann auch mal ins Repo kommtJetzt muss ich mir noch mal wieder ins Gedächtnis rufen, wie ich mit axios das Cookie bei einer erneuten Anfrage mitgebe.
-
Bitte mit dem originalen Dev Kontakt aufnehmen. Ohne seine Zustimmung kann der Adapter schon rein technisch nicht als rika-firenet in ein Repository kommen.
Daher:
- aus Gründen der guten Umgangsform bitte mal den Dev kontaktieren.
- Wenn er zustimmt kannst du den Adapter gerne persönluch übernehmen oder wir schieben ihn in den community Bereich
Wenn er nicht zustimmt oder nicht antwortet dann musst du den Adapter jedenfalls umbenennen.
- aus Gründen der guten Umgangsform bitte mal den Dev kontaktieren.