Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. [Adapter] Syncthing (Version 0.1.2 ) (alle Syncthing Endpunkt-Informationen eines Folders)

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Adapter] Syncthing (Version 0.1.2 ) (alle Syncthing Endpunkt-Informationen eines Folders)

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      sushbone last edited by

      Hallo,

      nachdem ich zuhause seit ein paar Monaten ioBroker auf dem Raspberry nutze und von ioBroker völlig begeistert bin würde ich gerne versuchen auch etwas beizutragen. Daher habe ich in den vergangenen Wochen an einem Adapter für Syncthing gearbeitet.

      Dank apollon77 konnte ich den Adapter in Version 0.1.1 fertigstellen.

      Jetzt erweitert auf Version 0.1.2 mit allen Informationen die zu einem Syncthing Folder beim Syncthing Endpunkt verfügbar sind.

      ~~![](</s><URL url=)https://abload.de/img/syncthingb8ui4.png" />

      Link: https://syncthing.net/

      <u>Was ist Syncthing?</u>

      Kurz gesagt eine OpenSource Cloud-Lösung mit dessen Hilfe man lokale Dateien mit belieben anderen Devices (weitere Rechner, Freunde oder Bekannte etc.) sharen kann. Im Hintergrund laufend synchronisiert Syncthing regelmäßig neue Dateien oder Löschvorgänge mit den anderen Devices über eine verschlüsselte Verbindung.

      Wenn man an eine lokale OpenSource Cloud-Alternative sucht dem sei Syncthing ans Herz gelegt.

      ~~![](</s><URL url=)https://syncthing.net/images/screenshot-720.jpg" />

      <u>Was kann der Adapter?</u>

      An dem REST Endpunkt von Syncthing kann für einen konfigurierten Share (in Syncthing als "Folder" bezeichnet) der aktuelle Status abgefragt werden.

      Abfragbare Daten:

      • wird gerade synchronisiert?

      • wie viele Dateien liegen insgesamt global in dem Share (in bytes und zusätzlich als formatierte Ausgabe als KB/MB/GB Angabe)?

      • wie viele Dateien hat man davon schon lokal (in bytes und zusätzlich als formatierte Ausgabe als KB/MB/GB Angabe)?

      Man könnte also zum Beispiel regelmäßig pollen und wenn neue Dateien reinkommen (d.h. Regel wäre zum Beispiel status=sync und localShare < globaleShare) einen Hinweis über Sonos ausgeben.

      ~~![](</s><URL url=)https://abload.de/img/funktioniert2pzuxn.png" />

      ~~![](</s><URL url=)https://abload.de/img/unbenannt-1insle.jpg" />

      <u>Installation:</u>

      Der Adapter ist erhältlich über github unter: https://github.com/joergzdarsky/ioBroker.syncthing

      <u>Nächste Schritte:</u>

      1.0 Adapter

      1.1 Installierbarer Adapter auf Basis des Template

      1.2 Anpassung von Texten und Logos

      1.3 Bugfixing

      2.0 Admin UI

      2.1 Anpassung Admin UI (Texte, Felder)

      2.2 Speichern der Eingabewerte
      syncthingurl, syncthingapikey, syncthingfolderid

      2.3 Optimierung UI Design (Ausrichtung der Felder und Texte) und Ergänzung Hilfehinweise

      2.4 Bugfixing

      3.0 Ausgabe-Variablen

      3.0 Einfügen der Instanz Ausgabevariablen (im Template "testVariable"):
      state, stateChanged, localBytes, globalBytes (statisch)

      3.1 Belegen der Ausgabevariablen (hardcoded)

      4.0 REST Endpunkt Aufruf

      4.1 Aufruf des Syncthing REST Endpunktes und Auswertung des JSON (separates JavaScript).

      4.2 Aufruf des Syncthing REST Endpunktes innerhalb des Adapters

      4.3 Belegen der Ausgabevariablen mit dem Ergebnis des JSON.

      4.4 Umstellung auf mode scheduler

      5.0 Finalisierung für Version 0.1.1

      5.2 Travis-CI/Appveyor Anmeldung und Einarbeitung Bugfix Hinweise

      5.2 Update/Finalisierung der
      README.md

      5.3 Migrate configuration UI for ioBroker Admin V3

      6.0 (optional) ioBroker Adapter

      6.1 Bereistellung im allgemeinem ioBroker Repository als Standard-Adapter (ohne dass die URL manuell hinzugefügt werden muss) (?)~~~~~~~~

      1 Reply Last reply Reply Quote 0
      • ruhr70
        ruhr70 last edited by

        Ziemlicher Hammer. Ich bin immer wieder beeindruckt, wie ioBroker über Monate genutzt wird und sich dann jemand mit dem ersten Post mit so einem Knaller meldet! Top!

        Bei Deinem Problem kann ich Dir leider nicht helfen mein einziger Adapter ist schon etwas her.

        Ich suche noch nach einem lohnenswerten Ziel für den nächsten Adapter 😉

        Mit welcher Plattform und IDE entwickelst Du denn?

        Den Fritzbox-Adapter hatte ich mit Webstorm erstellt. Habe mir die Tage mal Visual Studio Code angesehen und mit iobroker.template gespielt. Debüt auf einen Remote-Host und die Dateien direkt per SMB Share in VSCode geladen. Damit konnte ich programmieren, debugen, den "Adapter" starten und brauchte an diesem Punkt npm noch nicht. Da ich sonst mit Softwareentwicklung nichts zu tun habe, ist npm und Github ein Buch mit sieben Siegeln für mich 🙂

        1 Reply Last reply Reply Quote 0
        • blauholsten
          blauholsten Developer last edited by

          @sushbone:

          Hallo,

          nachdem ich zuhause seit ein paar Monaten ioBroker auf dem Raspberry nutze und völlig begeistert bin würde ich gerne versuchen auch etwas beizutragen.

          Daher arbeite ich aktuell an einem Adapter für Syncthing.

          ~~![](</s><URL url=)<link_text text="https://upload.wikimedia.org/wikipedia/ ... al.svg.png">https://upload.wikimedia.org/wikipedia/commons/thumb/a/a2/SyncthingLogoHorizontal.svg/500px-SyncthingLogoHorizontal.svg.png</link_text>" />

          Link: https://syncthing.net/

          Was ist Syncthing?

          Kurz gesagt würde ich sagen eine private OpenSource Cloud-Lösung, mit deren Hilfe man lokale Dateien mit belieben anderen Devices (weitere Rechner, Freunde oder Bekannte etc.) Verzeichnisse und Dateien sharen kann. Im Hintergrund laufend synchronisiert es regelmäßig neue Dateien oder Löschvorgänge mit den anderen Devices über eine verschlüsselte Verbindung.

          ~~![](</s><URL url=)https://syncthing.net/images/screenshot-720.jpg" />

          Was soll der Adapter können in der ersten Phase?

          An dem REST Endpunkt von Syncthing für einen konfigurierten Share (in Syncthing als "Folder" bezeichnet) den aktuellen Status abfragen.

          D.h. wird gerade synchronisiert, wie viele Dateien liegen insgesamt global in dem Share, wieviel hat man davon schon lokal. Man könnte dann zum Beispiel regelmäßig pollen und wenn neue Dateien reinkommen (d.h. Regel wäre zum Beispiel status=sync und localShare<globaleshare) einen/hinweis/über/sonos/ausgeben/das/gerade/was/runtergeladen/wird./<e="">;-)

          Arbeitsstand (hier werde ich Hilfe benötigen):

          Gleich vorab: Es gibt noch nichts lauffähiges, ich arbeite erst seit kurzem an dem Adapter und muss mich auch erst in die Struktur einfinden (das ist mein erster Syncthing Adapter).

          Ein wichtiger Teil ist schonmal erledigt: Die gewünschten Daten konnte ich mir per JavaScript und REST CALL schon vom Syncthing Endpunkt holen wie ich sie brauche.

          Das muss ich jetzt mit dem Adapter Template kombinieren.

          Da ich noch keine Erfahrung mit den ioBroker Adaptern habe arbeite ich mich hier gerade ein. Im ersten Schritt will ich zunächst mal das ioBroker-Template

          in meiner lokalen Installation verfügbar machen mit dem leicht modifizierten Admin-Frontend.

          ~~![](</s><URL url=)https://abload.de/img/iobroker.syncthinghhuyk.png" />

          Ich habe den Teil auf Github abgelegt unter: https://github.com/joergzdarsky/ioBroker.syncthing

          Im Moment scheitere ich allerdings daran diesen ersten Testlauf unter ioBroker installiert zu bekommen.

          Download mittels npm install https://github.com/joergzdarsky/ioBroker.syncthing funktiert (ausgeführt unter /opt/iobroker/node_modules $) bzw. über ioBroker, aber im Moment will es noch nicht klappen irgendwo steckt noch ein Fehler ("Cannot parse /opt/iobroker/node_modules/iobroker.js-controller/adapter/syncthing/io-package.json:Error: ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.js-controller […]"). Gibts in den Docs bzw. hier irgendwo noch eine genauere Beschreibung was alles zu beachten ist bzw. die einzelnen Schritte sind?</globaleshare)>~~ ` Hast du dein Adapter Mal versucht über die Administration Oberfläche zu installieren?

          1 Reply Last reply Reply Quote 0
          • blauholsten
            blauholsten Developer last edited by

            Habe eben versucht dein Adapter zu installieren, ging leider nicht nicht.

            Erste Fehersuche ergab, in der io-package…..

            ` > {

            "common": {

            "name": "Syncthing",

            "version": "0.1.0",

            "news": {

            "0.5.0": {

            "en": "beta version",

            "de": "Betaversion",

            },

            "0.0.1": {

            "en": "initial adapter",

            "de": "Initiale Version",

            }

            },

            "title": "Javascript/Node.js based template adapter",

            "desc": {

            "en": "ioBroker Syncthing Adapter",

            "de": "ioBroker Syncthing Adapter",

            },

            "platform": "Javascript/Node.js",

            "mode": "daemon",

            "icon": "icon.png",

            "enabled": true,

            "extIcon": "https://github.com/joergzdarsky/ioBroke … n/icon.png",

            "keywords": ["template", "vis", "GUI", "graphical", "scada"],

            "readme": https://github.com/joergzdarsky/ioBroke … /README.md",

            "loglevel": "info",

            "type": "common adapters",

            "restartAdapters": ["vis"]

            },

            "native": {

            "syncthingipadress": "default",

            "syncthingapikey": "default",

            "syncthingfolderid": "default"

            },

            "objects": [

            ]

            } `
            muss das Komma hinter <size size="150">ALLE</size> "de":…... weg…

             "desc":                     {
            				 "en": "ioBroker Syncthing Adapter",
            				 "de": "ioBroker Syncthing Adapter"
            		},
            
            1 Reply Last reply Reply Quote 0
            • apollon77
              apollon77 last edited by

              Installationsproblem:

              Nach dem npm install ggf manuell noch ein "iobroker upload syncthing" machen … Danach ggf iobroker stoppen und starten ... dann könnte ein iobroker add syncthing gehen

              Grundsätzlich: Am besten noch bei travis-ci und appveyor anmelden mit deinem Github account, dann werden bei jedem Commit testst ausgeführt ... unter anderen ein test-Install 🙂 Da sieht man recht fix ob irgendwas kaputt ist

              1 Reply Last reply Reply Quote 0
              • S
                sushbone last edited by

                Danke Euch für die Hilfe und Hinweise, die Kommas, argh blöd. Bin während ich deswegen nachgeschaut habe noch über einen kleinen weiteren Fehler gestolpert

                den ich behoben habe. Es knallt zwar immer noch wenn man das Paket über die ioBroker Admin Oberfläche installiert, aber das ganze ist einen Schritt weiter und der

                Adapter taucht in der Oberfläche der auswählbaren Adapter auf. 😉

                ~~![](</s><URL url=)https://abload.de/img/iobroker.syncthing24wsfo.png" />

                Als Instanz lässt er sich noch nicht installieren, dazu muss ich wohl erst den Fehler beheben der während der Installation noch im Log auftaucht. Aber hat mir schon weitergeholfen, danke euch.

                PS: Nutze Visual Studio ohne JS Extension, sowie die Commando-Zeile mit node.js. Komme aus der C#/C++ Ecke, JavaScript ist normalerweise nicht meins :lol: 😉

                Aber geht schon für den Moment, den Adapter werd ich irgendwie schon hinkriegen, muss mir VS ggf. noch richtig einrichten für JS um sauber debuggen zu können. Werde mir aber trotzdem auch mal Webstorm mal anschauen, ebenso travis-ci und appveyor (ein Test direkt beim commit wäre definitiv wesentlich einfacher und besser). Gute Tipps, danke!~~

                1 Reply Last reply Reply Quote 0
                • AlCalzone
                  AlCalzone Developer last edited by

                  Ich kann die Node.JS-Tools definitiv empfehlen für Visual Studio. Alleine Remote-Debugging für den Raspberry ist Gold wert, aber auch IntelliSense.

                  Nicht nötig, dich in eine andere IDE einzuarbeiten, wenn du schon fit mit VS bist.

                  Ansonsten lohnt sich eventuell auch VS Code.

                  1 Reply Last reply Reply Quote 0
                  • S
                    sushbone last edited by

                    Ich denke ich werde heute das Update auf VS 2017 machen, dann schaue ich dass ich die node.js Erweiterungen mitinstalliere. Und dann gucke ich mal bzw. der beiden Ergänzungen travis-ci und appveyor.

                    EDIT:

                    Ich habe zwischendurch beschlossen den Adapter nochmal sauber from scratch auf Basis des Template aufzusetzen.

                    Jetzt wird alles sauber installiert und der Adapter läuft auch als Instanz, so wie es sein soll. Sehr gut, auf der Basis kann ich jetzt erstmal weitermachen 😛

                    Im Moment bin ich erstmal auf der Suche in den Docs wie man die Eingaben in der Admin-Oberfläche speichern kann bzw. was man tun muss um die Speicherfunktion zu aktivieren.

                    Leider noch nix gefunden dazu, aber vielleicht suche ich auch schlecht. Na mal schauen..

                    1 Reply Last reply Reply Quote 0
                    • apollon77
                      apollon77 last edited by

                      @sushbone:

                      Im Moment bin ich erstmal auf der Suche in den Docs wie man die Eingaben in der Admin-Oberfläche speichern kann bzw. was man tun muss um die Speicherfunktion zu aktivieren.

                      Leider noch nix gefunden dazu, aber vielleicht suche ich auch schlecht. Na mal schauen.. `

                      Ne Doku würde ich da nicht wirklich kennen. Such Dir nen Adapter mit vergleichbarer Konfig und schau Dir da das index.html an.

                      AM Ende musst DU an den JavaScripts im HTMl nichts ändern. Irgendwo ist eine HTML-tabelle mit den ganzen Feldern und Beschriftungen. Da dann so anpassen wie die Felder die Du brauchst

                      1 Reply Last reply Reply Quote 0
                      • S
                        sushbone last edited by

                        @apollon77:

                        Ne Doku würde ich da nicht wirklich kennen. Such Dir nen Adapter mit vergleichbarer Konfig und schau Dir da das index.html an.

                        Am Ende musst DU an den JavaScripts im HTMl nichts ändern. Irgendwo ist eine HTML-tabelle mit den ganzen Feldern und Beschriftungen. Da dann so anpassen wie die Felder die Du brauchst `

                        Stimmt, es lag daran dass ich im HTML die Input-Identifier test1 und test2 umbenannt hatte in etwas "passendes" für meinen Adapter.

                        Ich hatte damit gerechnet dass dies ggf.dazu führt dass die Felder nicht mehr vorbelegt werden, dass damit der komplette Save-Prozess ausgehebelt wird damit hatte ich nicht gerechnet. Blöd wenn man die ioBroker Adapterstruktur noch nicht genau kennt. Macht aber im Nachhinein Sinn vor dem Hintergrund dass die Save-Funktion ja auf Eingabe-Events in den Feldern reagiert.

                        Ich schreibe jedenfalls die ganze Zeit die Schritte zum eigenen Adapter mit sowie die kleinen Fallen in die man laufen kann.

                        Man vergisst das leider viel zu schnell wieder.

                        Aber danke Dir für den Hinweis, ich hab mir das Template nochmal genau angeschaut und die Änderungen (andere/weitere Input-IDs) direkt auch in der main.js

                        und io-package.json vorgesehen. Jetzt funktioniert alles.

                        ![](</s><URL url=)https://abload.de/img/iobroker.syncthing9z8rkm.png" />

                        1 Reply Last reply Reply Quote 0
                        • S
                          sushbone last edited by

                          Tschaka!!! Durchstich gelungen, funktioniert!! 😄 :lol: 😄

                          Zwei Fragen an die ioBroker Experten damit ich mich an die Finalisierung des Adapters machen kann:

                          1. Aktuell werden die Daten des Syncthing Endpoint in der main.js in der Main-Funktion einmal geladen, d.h. immer dann wenn das Script (neu) gestartet wird.

                          Was sollte ich noch anpassen damit man die aktuellen Daten erhält wenn man zum Beispiel per JavaScript/CoffeeScript Engine und dortiger Zeitsteuerung on demand die Variablen abfragen möchte?

                          1. Bei der <u>deinstallation</u> des Adapters findet sich folgender Erroreintrag in den Logs. Mir ist nicht klar wo der herkommt, hat jemand eine Idee?
                            ` > host.raspberrypi 2017-04-17 13:02:41.133 error Cannot write files: /opt/iobroker/node_modules/iobroker.js-controller/lib/objects/../../../../iobroker-data/files/syncthing.admin/_data.json: ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.js-controller/lib/objects/../../../../iobroker-data/files/syncthing.admin/_data.json'

                          host.raspberrypi 2017-04-17 13:02:41.131 error Cannot write files: /opt/iobroker/node_modules/iobroker.js-controller/lib/objects/../../../../iobroker-data/files/syncthing/_data.json: ENOENT: no such file or directory, open '/opt/iobroker/node_modules/iobroker.js-controller/lib/objects/../../../../iobroker-data/files/syncthing/_data.json' `
                          Es funktioniert aber soweit ich das sehen kann alles, auch nach mehrfacher De- und Neuinstallation des Adapters.

                          Script startet sauber, Admin-GUI funktioniert inkl. Speichern.

                          ioBroker:

                          ~~![](</s><URL url=)https://abload.de/img/funktioniert2pzuxn.png" />

                          Beim Start des Scripts werden die Daten jetzt aus Syncthing geladen und in ioBroker verfügbar gemacht!

                          Syncthing:

                          ~~![](</s><URL url=)https://abload.de/img/funktioniert17yu1i.png" />

                          ioBroker:

                          ![](</s><URL url=)https://abload.de/img/funktioniert3jmuhe.png" />~~~~

                          1 Reply Last reply Reply Quote 0
                          • apollon77
                            apollon77 last edited by

                            Cool!

                            Den Fehler beim Löschen hatte ich auch mal gesehn … keine Ahnung wo der herkommt

                            1 Reply Last reply Reply Quote 0
                            • S
                              sushbone last edited by

                              Ich habe heute früh einen Bekannten der auch Syncthing nutzt gebeten den Adapter zu installieren und wieder deinstallieren, um zu schauen ob der Fehler bei Ihm auch kommt.

                              Meine Hoffnung liegt daran dass der Fehler irgendwo daher kommt dass ich vorher mit Adaptern gleichen Namens experimentiert habe und dass das noch irgendwie mit diesen vorherigen Tests zu tun hat.

                              Ansonsten suche ich noch auf einen Hinweis an welcher Stelle außer main() (in main.js) ich noch ein Update der Variablen machen sollte damit sich die Daten nicht nur beim Start des Script aktualisieren, sondern auch zum Zeitpunkt einer Abfrage mittels der Scripting Funktionen in ioBroker. Notfalls muss ich mal stärker beim DWD Adapter abgucken, der tickt eigentlich genauso wie ich das auch brauche. Das wäre das letzte was für die erste Version vor einer Bugfixing Runde noch fehlt.

                              1 Reply Last reply Reply Quote 0
                              • apollon77
                                apollon77 last edited by

                                @sushbone:

                                … sondern auch zum Zeitpunkt einer Abfrage mittels der Scripting Funktionen in ioBroker. `

                                Wie meinst du das? Abfrage = "getState"? Dann: geht nicht. getState liesst die aktuellen Werte.

                                Wenn Du es öfter haben willst könntest Du ggf Messages nutzen die Du sendest und dann aktualisierst oder so

                                1 Reply Last reply Reply Quote 0
                                • S
                                  sushbone last edited by

                                  Wenn ich das richtig sehe ist der DWD Adapter auch "nur" als Scheduler gebaut der einmal am Tag die aktuellen Werte holt.

                                  Ich denke dann werde ich es erstmal auch so machen und den Adapter als Scheduler die Daten alle X Minuten aktualisieren lassen. Ggf. kann man das ja über die Admin-GUI mit vorgegebenen Werten (alle 5,15,30,60 Minuten) konfigurabel machen anstatt dem User das per CRON zu überlassen. Mal schauen.

                                  1 Reply Last reply Reply Quote 0
                                  • apollon77
                                    apollon77 last edited by

                                    Hey,

                                    am Ende musst Du zwischen den Adapter-Modi "once" (hat einen Schedule der auf "Low-Level-Instanz-Ebene" definiert ist und per Admin-UI geändert wird) und "deamon" (läuft immer, Zeitabstände per "setTimeout" und dann kannst Du diese per Admin-Konfig und Adapter-Parameter vom user flexiber einstellbar machen.

                                    Zu versuchen den Schedule bei "once" per Admin-Konfiguration zu ändern könnte schwierig werden weil der woanders im Konfigobjekt steht ..

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      sushbone last edited by

                                      Ich bräuchte nochmal Eure Hilfe, leider hatte ich die letzten Monate wenig Zeit für dieses Projekt aufgrund meiner Tochter die 2017 gebohren wurde :-). Jetzt würde ich den Adapter aber gerne soweit erstmal fertig machen um ihn in einer ersten finalen Version dann auch für andere nutzbar machen zu können, ihn auf eine höhere Versionsnummer zu heben und die Readme fertigzumachen. Er ist ja fast fertig, wäre schade drum, ich würde da gerne abschließen für andere Syncthing der ioBroker Nutzer.

                                      Die letzte Version liegt nach wie vor unter:

                                      https://github.com/joergzdarsky/ioBroker.syncthing

                                      Ich möchte den Adapter jetzt erstmal ganz einfach analog dem DWD Adapter im Mode scheduler laufen lassen. Vielleicht ohnehin die flexibelste Variante, denke das reicht für diesen Adapter es braucht keine Konfig per custom parameter im Admin-Frontend.

                                      Leider bin ich echt zu doof zu kapieren wie der scheduler tickt, trotz Blick in den DWD Adapter.

                                      Als daemon funktioniert der Adapter wie erwartet, es wird unter Objecte ein syncthing.0 angelegt, darunter das object "folder", und darunter dann "folder.folderState", "folder.folderLocalBytes", etc. mit den aktuellen Werten aus Syncthing.

                                      Wenn ich das richtig sehe werden bei Nutzung mode="daemon" die Ordner durch die io-package.jspon angelegt, und meine main.js aktualisiert die objects dann durch Aufruf von adapter.on('ready',…) bzw. main().

                                      // start here!
                                      adapter.on('ready', function () {
                                          adapter.log.info('adapter.on(ready) function invoked, calling main() function to fetch data.');
                                          main();
                                      });
                                      
                                      function main() {
                                      .... aufruf der syncthing URL und update der objekte...
                                      }
                                      

                                      Wenn ich nun allerdings in io-package.json den Adapter auf mode="schedule" (und minütlicher Ausführung) sieht die Welt leider anders aus.

                                      Der Adapter erscheint unter Objects als syncthing.0, auch das object "folder" wird noch angelegt. Die darunteliegende Folder Struktur

                                      scheinbar auch noch aufgrund der io-package.jspn

                                      ~~![](</s><URL url=)https://abload.de/img/2018-05-2720_17_20-io7as7p.jpg" />

                                      Das sehe ich im Log
                                      ` > host.raspberrypi 2018-05-27 20:12:33.541 info instance scheduled system.adapter.syncthing.0 /1 * * * *

                                      host.raspberrypi 2018-05-27 20:12:31.012 info stopInstance canceled schedule system.adapter.syncthing.0

                                      host.raspberrypi 2018-05-27 20:12:31.012 info stopInstance system.adapter.syncthing.0

                                      host.raspberrypi 2018-05-27 20:12:31.011 info object change system.adapter.syncthing.0

                                      iobroker 2018-05-27 20:12:13.019 info exit 0

                                      iobroker 2018-05-27 20:12:13.007 info host.raspberrypi object system.adapter.syncthing.0 created

                                      host.raspberrypi 2018-05-27 20:12:12.992 info instance scheduled system.adapter.syncthing.0 /1 * * * *

                                      host.raspberrypi 2018-05-27 20:12:12.981 info object change system.adapter.syncthing.0

                                      iobroker 2018-05-27 20:12:12.940 info host.raspberrypi object system.adapter.syncthing.0.alive created

                                      iobroker 2018-05-27 20:12:12.907 info host.raspberrypi object system.adapter.syncthing.0.connected created

                                      iobroker 2018-05-27 20:12:12.873 info host.raspberrypi object system.adapter.syncthing.0.memHeapUsed created

                                      iobroker 2018-05-27 20:12:12.840 info host.raspberrypi object system.adapter.syncthing.0.memHeapTotal created

                                      iobroker 2018-05-27 20:12:12.805 info host.raspberrypi object system.adapter.syncthing.0.memRss created

                                      iobroker 2018-05-27 20:12:12.770 info host.raspberrypi object system.adapter.syncthing.0.uptime created

                                      iobroker 2018-05-27 20:12:12.737 info host.raspberrypi object system.adapter.syncthing.0.inputCount created

                                      iobroker 2018-05-27 20:12:12.696 info host.raspberrypi object system.adapter.syncthing.0.outputCount created

                                      iobroker 2018-05-27 20:12:12.661 info host.raspberrypi object system.adapter.syncthing.upload created

                                      iobroker 2018-05-27 20:12:12.626 info host.raspberrypi object syncthing.0.folder created

                                      iobroker 2018-05-27 20:12:12.593 info host.raspberrypi object syncthing.0.folder.folderState created

                                      iobroker 2018-05-27 20:12:12.559 info host.raspberrypi object syncthing.0.folder.folderStateChange created

                                      iobroker 2018-05-27 20:12:12.517 info host.raspberrypi object syncthing.0.folder.folderLocalBytes created

                                      iobroker 2018-05-27 20:12:12.484 info host.raspberrypi object syncthing.0.folder.folderLocalBytesFormated created

                                      iobroker 2018-05-27 20:12:12.451 info host.raspberrypi object syncthing.0.folder.folderGlobalBytes created

                                      iobroker 2018-05-27 20:12:12.417 info host.raspberrypi object syncthing.0.folder.folderGlobalBytesFormated created

                                      iobroker 2018-05-27 20:12:12.402 info host.raspberrypi create instance syncthing `

                                      Es sieht mir aber nicht so aus als würde jetzt noch main.js bzw. die darin enthaltenen Funktionen adapter.on('ready',…) bzw. main() durch den scheduler aufgerufen, weil die entsprechenden Logeinträge nicht zu sehen sind bzw. die Werte der objects nicht aktualisiert werden.

                                      Daher meine frage, was genau macht der scheduler genau bzw. welche Funktion innerhalb des Adapters ruft er auf?

                                      Was ich letztlich brauche ist ein erneuter Aufruf von adapter.on('ready',...) oder eine andere Funtkion in welche ich wieder die main() Funktion aufrufen kann.~~

                                      1 Reply Last reply Reply Quote 0
                                      • apollon77
                                        apollon77 last edited by

                                        Es sollte ready aufgerufen werden. Weatherunderground ist auch schedule. Schau da mal rein.

                                        Am besten lösche die Instanz nochmal und lege Sie neu an nachdem du nach der Umstellung der ip-Package am besten ein „iobroker upload adaptername“ und nen restart gemacht hast.

                                        Umstellen des Typs is tricky und manchmal zickig.

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          sushbone last edited by

                                          > Umstellen des Typs is tricky und manchmal zickig.
                                          Wohl wahr… :lol:

                                          Wenn ready aufgerufen werden müsste sollte der Teil in der main.js zumindest schonmal korrekt sein. Ggf. geben die Logs aber den richtigen Hinweis, irgendwie scheint der Adapter nicht richtig zu terminieren nachdem er gelaufen ist (oder besser: "initialisiert wurde") , folgendes habe ich heute früh in den Logs gefunden. Korrekterweise jede Minute, darauf habe ich den scheduler testweise eingestellt.

                                          ` > …

                                          host.raspberrypi 2018-05-28 05:00:01.413 error instance system.adapter.syncthing.0 terminated with code 7 (Adapter already running)

                                          host.raspberrypi 2018-05-28 05:00:00.054 info instance system.adapter.syncthing.0 started with pid 10059

                                          host.raspberrypi 2018-05-28 04:00:01.375 error instance system.adapter.syncthing.0 terminated with code 7 (Adapter already running)

                                          host.raspberrypi 2018-05-28 04:00:00.054 info instance system.adapter.syncthing.0 started with pid 9192

                                          ... `

                                          Spannende Frage ist jetzt, woran liegts? Ich wüsste nicht was in meiner main() Methode den Adapter "am Leben" erhält. Wobei die Objekte noch keine Werte aus der main-Methode erhalten haben, main() scheint also zuvor noch nicht aufgerufen worden zu sein, es wurde lediglich die Objekt-Struktur angelegt.

                                          Seltsam… Muss man den ganz gezielt irgendwo in den JavaScript klassen den Adapter terminieren am Ende?

                                          1 Reply Last reply Reply Quote 0
                                          • apollon77
                                            apollon77 last edited by

                                            Es sollte alles korrekt klappen wenn man

                                            Adapter.stop()

                                            nutzt. Einige schedule Adapter haben aber auch ein „nach x weiteren Sekunden process.exit() Hard kill“ drin 😉

                                            Muss halt so lange sein das ggf. Letzte Werte noch verarbeitet/gespeichert werden konnten… also 30/60s+

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            952
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            30
                                            4826
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo