Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. [Adapter] Syncthing (Version 0.1.2 ) (alle Syncthing Endpunkt-Informationen eines Folders)

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

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

Geplant Angeheftet Gesperrt Verschoben Entwicklung
30 Beiträge 6 Kommentatoren 5.5k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    schrieb am zuletzt editiert von
    #2

    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 :-)

    Adapter: Fritzbox, Unify Circuit
    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

    1 Antwort Letzte Antwort
    0
    • blauholstenB Offline
      blauholstenB Offline
      blauholsten
      Developer
      schrieb am zuletzt editiert von
      #3

      @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?

      Entwickler vom: - Viessman Adapter
      - Alarm Adapter

      1 Antwort Letzte Antwort
      0
      • blauholstenB Offline
        blauholstenB Offline
        blauholsten
        Developer
        schrieb am zuletzt editiert von
        #4

        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"
        		},
        

        Entwickler vom: - Viessman Adapter
        - Alarm Adapter

        1 Antwort Letzte Antwort
        0
        • apollon77A Offline
          apollon77A Offline
          apollon77
          schrieb am zuletzt editiert von
          #5

          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

          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            sushbone
            schrieb am zuletzt editiert von
            #6

            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!~~

            Procedural Terrain/Universe programing [Unity3D/C#/C++ on CPU/GPU] - http://www.zdarsky.info/v4/programing/procedural-universe-generation/

            1 Antwort Letzte Antwort
            0
            • AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              schrieb am zuletzt editiert von
              #7

              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.

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                sushbone
                schrieb am zuletzt editiert von
                #8

                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 :P

                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..

                Procedural Terrain/Universe programing [Unity3D/C#/C++ on CPU/GPU] - http://www.zdarsky.info/v4/programing/procedural-universe-generation/

                1 Antwort Letzte Antwort
                0
                • apollon77A Offline
                  apollon77A Offline
                  apollon77
                  schrieb am zuletzt editiert von
                  #9

                  @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

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    sushbone
                    schrieb am zuletzt editiert von
                    #10

                    @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" />

                    Procedural Terrain/Universe programing [Unity3D/C#/C++ on CPU/GPU] - http://www.zdarsky.info/v4/programing/procedural-universe-generation/

                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      sushbone
                      schrieb am zuletzt editiert von
                      #11

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

                      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" />~~~~

                      Procedural Terrain/Universe programing [Unity3D/C#/C++ on CPU/GPU] - http://www.zdarsky.info/v4/programing/procedural-universe-generation/

                      1 Antwort Letzte Antwort
                      0
                      • apollon77A Offline
                        apollon77A Offline
                        apollon77
                        schrieb am zuletzt editiert von
                        #12

                        Cool!

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

                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                        1 Antwort Letzte Antwort
                        0
                        • S Offline
                          S Offline
                          sushbone
                          schrieb am zuletzt editiert von
                          #13

                          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.

                          Procedural Terrain/Universe programing [Unity3D/C#/C++ on CPU/GPU] - http://www.zdarsky.info/v4/programing/procedural-universe-generation/

                          1 Antwort Letzte Antwort
                          0
                          • apollon77A Offline
                            apollon77A Offline
                            apollon77
                            schrieb am zuletzt editiert von
                            #14

                            @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

                            Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                            1 Antwort Letzte Antwort
                            0
                            • S Offline
                              S Offline
                              sushbone
                              schrieb am zuletzt editiert von
                              #15

                              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.

                              Procedural Terrain/Universe programing [Unity3D/C#/C++ on CPU/GPU] - http://www.zdarsky.info/v4/programing/procedural-universe-generation/

                              1 Antwort Letzte Antwort
                              0
                              • apollon77A Offline
                                apollon77A Offline
                                apollon77
                                schrieb am zuletzt editiert von
                                #16

                                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 ..

                                Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                1 Antwort Letzte Antwort
                                0
                                • S Offline
                                  S Offline
                                  sushbone
                                  schrieb am zuletzt editiert von
                                  #17

                                  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.~~

                                  Procedural Terrain/Universe programing [Unity3D/C#/C++ on CPU/GPU] - http://www.zdarsky.info/v4/programing/procedural-universe-generation/

                                  1 Antwort Letzte Antwort
                                  0
                                  • apollon77A Offline
                                    apollon77A Offline
                                    apollon77
                                    schrieb am zuletzt editiert von
                                    #18

                                    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.

                                    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                    1 Antwort Letzte Antwort
                                    0
                                    • S Offline
                                      S Offline
                                      sushbone
                                      schrieb am zuletzt editiert von
                                      #19

                                      > 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?

                                      Procedural Terrain/Universe programing [Unity3D/C#/C++ on CPU/GPU] - http://www.zdarsky.info/v4/programing/procedural-universe-generation/

                                      1 Antwort Letzte Antwort
                                      0
                                      • apollon77A Offline
                                        apollon77A Offline
                                        apollon77
                                        schrieb am zuletzt editiert von
                                        #20

                                        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+

                                        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                                        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                                        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                                        1 Antwort Letzte Antwort
                                        0
                                        • S Offline
                                          S Offline
                                          sushbone
                                          schrieb am zuletzt editiert von
                                          #21

                                          Danke Dir, die letzten Hinweise von Dir bzgl. Terminierung des Adapters war die Lösung.

                                          Ich habe am Ende jetzt analog Weatherunderground Adapter ein setTimeout gesetzt weil der http-Request noch einen Moment braucht und ein adapter.stop() zu schnell terminiert. Aber gut zu wissen dass es beides gibt.

                                          Den SetTimeout Wert werde ich dann noch per Admin-Oberfläche konfigurierbar machen mit einem default von 30 Sekunden. Und ggf. noch eine Anpassung machen dass der Adapter nach Speichern der Konfiguration bereits einmal initial ausgeführt wird vor dem ersten schedule, das fänd ich irgendwie schöner.

                                          Aber ansonsten wars das, jetzt klappt alles, der Cron-Job wird schön jede Minute ausgeführt und alle Werte aus Syncthing geholt und die Object-Werte aktualisiert! TOP!! Jetzt kann ich den Adapter diese Woche fertig machen, d.h. die Readme finalisieren und den Code noch ein klein wenig polishen (z.B. die Log-Ausgaben). Mal sehen vielleicht schafft er's ja irgendwann in das Default Verzeichnis der Adapter. Aber am wichtigsten war mir jetzt erstmal dass er fertig wird.Daher danke nochmal für die tolle Hilfe!

                                          Procedural Terrain/Universe programing [Unity3D/C#/C++ on CPU/GPU] - http://www.zdarsky.info/v4/programing/procedural-universe-generation/

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          671

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe