Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Probleme mit js2fs adapter: Skripte werden doppelt gestartet und ausgeführt

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Probleme mit js2fs adapter: Skripte werden doppelt gestartet und ausgeführt

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

      Hallo Zusammen,

      für Backup Zwecke probiere ich gerade den js2fs Adapter aus.

      Funktional perfekt - macht genau das, was ich will.

      Leider gibt es einen Seiteneffekt: Im Debug log habe ich schon gesehen, dass alle Nachrichten zweimal kommen (so, als ob das Skript zweimal durchlaufen würde).

      Ich bin davon ausgegangen, dass alle Schedules und Events durch den zweiten Aufruf des Skripts zurückgesetzt werden. Dem ist aber nicht so.

      Zu Debugzwecken lasse ich mir z.B. per Telegram Adapter eine Botschaft zu einer festen Uhrzeit schicken - diese kommt nun zweimal.

      Ob ein Rollo nun zweimal das Kommando zum Hochfahren bekommt, wäre ja egal. Da ich bald auch einen Wecker damit Triggern möchte, wäre dies aber unglücklich.

      Hier meine Konfiguration vom Adapter:
      3980_screenshot.jpg

      Hat jemand Ähnliches beobachtet und wie kann ich dieses Verhalten abstellen?

      Danke

      Christof

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

        Ich habe das Problem auch wenn man Skripte im ioBroker-Admin editiert und speichert. Dann passiert genau das. In wirklichkeit werden die Skripte vom Admin nach dem Speichern neu gestartet, dann mach der js2fs aber noch eine Änderung am Skript-Objekt und damit werden die Skripte beendet und nochmals gestartet. Manchmal geht das schieff und die Skripte laufen doppelt.

        Ich bin schon dran das zu ändern (sobald ich mal die nötige Ruhe finde) da geht es ab js-controller 1.2.4 ohne das doppelte.

        Workarounds:

        1.) Skript stoppen, dann editieren/speichern, dann manuell starten

        2.) Nur die Files editieren und alleine per js2fs (Filesystem) arbeiten

        1 Reply Last reply Reply Quote 0
        • Christof.Kac
          Christof.Kac last edited by

          Hi,

          Workaround 1 verstehe ich.

          Nr. 2 finde ich eleganter, ich verstehe nur eine Sache nicht.

          Bisher dachte ich, der js2fs Adapter arbeitet nur in eine Richtung: Editieren im admin erzeugt synchrone Kopien im filesystem.

          Verstehe ich Dich richtig, dass Änderungen im Filesystem (also Arbeiten auf den exportierten Skripten) auch wieder zurück zum admin hochsynchronisiert werden?

          Danke und bis bald

          Christof

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

            Der Adapter arbeitet bidirektional … ich editiere nur noch im filesystem. Ist cool

            1 Reply Last reply Reply Quote 0
            • Christof.Kac
              Christof.Kac last edited by

              Klingt ja super…..dann noch eine letzte Fragen zum Handling:

              -Gibt es hier eine IDE/Editor, welcher sich am besten dafür eignet?

              Danke nochmals

              Christof

              1 Reply Last reply Reply Quote 0
              • arteck
                arteck Developer Most Active last edited by

                @Christof.Kac:

                Klingt ja super…..dann noch eine letzte Fragen zum Handling:

                -Gibt es hier eine IDE/Editor, welcher sich am besten dafür eignet?

                Danke nochmals

                Christof `

                ich nutze PSPad für.. aber du kansnt auch jeden beliebeigen Editor nehmen

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

                  Ich nehme atom.io. Ein Editor der JavaScript code highlighting kann hilft 😉

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

                    <== großer Fan von VSCode

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

                      <== großer Fan von VSCode

                      Vor allem kann es mit https://github.com/ioBroker/ioBroker.javascript/blob/master/lib/javascript.d.ts Autovervollständigung und Typüberprüfung für die Funktionen der ioBroker-Schnittstelle, wenn du am Anfang deines Skripts diesen Kommentar einfügst:

                      /// <reference path="javascript.d.ts">
                      // @ts-check</reference>
                      

                      1097_unbenannt.png
                      1097_unbenannt2.png

                      1 Reply Last reply Reply Quote 0
                      • htrecksler
                        htrecksler Forum Testing last edited by

                        @AlCalzone:

                        <== großer Fan von VSCode `

                        Muss VSCode dann auf der gleichen Maschine installiert sein auf der auch ioBroker läuft?

                        Bei mir läuft ioBroker auf einem IntelNuc unter Windows 10. Der Rechner ist jedoch nur per RDP erreichbar.

                        Jetzt würde ich VSCode gerne auf meinem normalen PC ausführen. Würde das auch funktionieren?

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

                          @htrecksler:

                          Muss VSCode dann auf der gleichen Maschine installiert sein auf der auch ioBroker läuft? `
                          Wenns nur um die Entwicklung geht und du nachher eh js2fs verwendet, dann nicht. Brauchst aber die verlinkte Datei in deinem Arbeitsverzeichnis.

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

                            Ich hab per Atom.io ein scp Plugin womit ich die files auf den iobroker Host übertrage mach Änderungen.

                            Sowas gibt’s für vscode auch

                            1 Reply Last reply Reply Quote 0
                            • M
                              Marty56 last edited by

                              Ich habe auch das Szenario, dass meine iobroker auf einem Raspberry installiert ist und ich auf Macs editieren möchte.

                              Jetzt muss ich wohl, die Datei 'javascript.d.ts' ins Arbeitsverzeichnis des Editors kopieren.

                              Wo finde ich die denn auf dem Raspberry?

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

                                @Marty56:

                                Ich habe auch das Szenario, dass meine iobroker auf einem Raspberry installiert ist und ich auf Macs editieren möchte.

                                Jetzt muss ich wohl, die Datei 'javascript.d.ts' ins Arbeitsverzeichnis des Editors kopieren.

                                Wo finde ich die denn auf dem Raspberry? `
                                Ich hab oben nen Link gepostet. Dort auf Raw-Ansicht wechseln und die im Arbeitsverzeichnis speichern.

                                1 Reply Last reply Reply Quote 0
                                • M
                                  Marty56 last edited by

                                  Danke!

                                  Alles klar. Ich hatte den Link übersehen.

                                  Funktioniert super!

                                  1 Reply Last reply Reply Quote 0
                                  • Christof.Kac
                                    Christof.Kac last edited by

                                    Ich wollte mich auch nur kurz für die Tipps bedanken - VSCode ist echt super - speziell mit der Erweiterung, dass die ioBroker Funktionen bekannt gemacht werden können.

                                    Also danke nochmal

                                    Christof

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

                                      @AlCalzone:

                                      <== großer Fan von VSCode

                                      Vor allem kann es mit https://github.com/ioBroker/ioBroker.javascript/blob/master/lib/javascript.d.ts Autovervollständigung und Typüberprüfung für die Funktionen der ioBroker-Schnittstelle, wenn du am Anfang deines Skripts diesen Kommentar einfügst:

                                      /// <reference path="javascript.d.ts">
                                      // @ts-check</reference>
                                      ```` `  
                                      

                                      Gerade mal probiert und ich bin ziemlich begeistert.

                                      Einen angezeigten Fehler kann ich nicht nachvollziehen:

                                      327_2018-02-07_javascript.d.ts.png

                                      327_2018-02-07_create_state.png

                                      Die Funktion wird doch üblicherweise so genutzt?

                                      createState() "erkennt doch die Anzahl und Art der Parameter, sprich die Parameter zur Stelle lässt sich doch nicht genau bestimmen oder?

                                      Die Datei meckert das fehlende "forceCreation" an, welches ich laut Dokumentation auch weglassen kann.

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

                                        Danke für den Hinweis, müsste ich checken. Kann durchaus sein, dass ich eine der Funktionssignaturen nicht korrekt abgebildet habe.

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

                                          @AlCalzone:

                                          Danke für den Hinweis, müsste ich checken. Kann durchaus sein, dass ich eine der Funktionssignaturen nicht korrekt abgebildet habe. `

                                          kann man das denn überhaupt abbilden?

                                          Ich habe so verstanden, dass die Funktion schaut, welche Werte übergeben werden, sie interpretiert und erst zuordned. Also Werte weggelassen werden können und die Definition dann "eine Stelle aufrutscht".

                                          Ist so etwas in einer Definitionsdatei machbar?

                                          Da steckt doch Programmlogik hinter.

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

                                            @ruhr70:

                                            Ist so etwas in einer Definitionsdatei machbar? `
                                            Ja, indem du alle Möglichkeiten auflistest. Als letztes muss dann die allgemeine Form stehen, die zu allen aufgelisteten Varianten kompatibel ist.

                                            Siehe getForeignObjects hier: https://github.com/AlCalzone/ioBroker.t … d.ts#L1031

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            816
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            67
                                            5282
                                            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