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. Skripten / Logik
  4. ioBroker/create-adapter, Socket.io und writeFile

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    698

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

ioBroker/create-adapter, Socket.io und writeFile

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
11 Beiträge 2 Kommentatoren 922 Aufrufe 2 Watching
  • Ä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.
  • snadorS Offline
    snadorS Offline
    snador
    schrieb am zuletzt editiert von
    #1

    Ich habe einen Spieladapter wo ich Socket.io nutze um u.a. Json Files zu schreiben. Bisher konnte ich mit:

    servConn.init({
         name:          'nightingale.0',                     // optional - default 'vis.0'
         connLink:      'http://localhost:8084',          // optional URL of the socket.io adapter
         socketSession: ''                                   // optional - used by authentication
    },{...
    

    und writeFile() die Files direkt unter "\iobroker-data\files\nightingale.0" ablegen.

    Nun habe ich nach Jahren das Grundgerüst des Adapter mit ioBroker/create-adapter mal neu aufgesetzt.

    Wenn ich jetzt Dateien schreiben mit writeFile() dann landen die alle unter "\iobroker-data\files\vis.0". Hab ich was übersehen oder steckt in dem generierten Skeleton noch irgendwo die VIS mit drin?

    Danke für Hilfe! :-)

    UncleSamU 2 Antworten Letzte Antwort
    0
    • snadorS snador

      Ich habe einen Spieladapter wo ich Socket.io nutze um u.a. Json Files zu schreiben. Bisher konnte ich mit:

      servConn.init({
           name:          'nightingale.0',                     // optional - default 'vis.0'
           connLink:      'http://localhost:8084',          // optional URL of the socket.io adapter
           socketSession: ''                                   // optional - used by authentication
      },{...
      

      und writeFile() die Files direkt unter "\iobroker-data\files\nightingale.0" ablegen.

      Nun habe ich nach Jahren das Grundgerüst des Adapter mit ioBroker/create-adapter mal neu aufgesetzt.

      Wenn ich jetzt Dateien schreiben mit writeFile() dann landen die alle unter "\iobroker-data\files\vis.0". Hab ich was übersehen oder steckt in dem generierten Skeleton noch irgendwo die VIS mit drin?

      Danke für Hilfe! :-)

      UncleSamU Offline
      UncleSamU Offline
      UncleSam
      Developer
      schrieb am zuletzt editiert von
      #2

      @snador Kannst du mal die Datei .create-adapter.json hier posten. Sie befindet sich im Root des neu erstellten Adapters.

      Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
      ♡-lichen Dank an meine Sponsoren

      snadorS 1 Antwort Letzte Antwort
      0
      • UncleSamU UncleSam

        @snador Kannst du mal die Datei .create-adapter.json hier posten. Sie befindet sich im Root des neu erstellten Adapters.

        snadorS Offline
        snadorS Offline
        snador
        schrieb am zuletzt editiert von
        #3

        @UncleSam

        {
        	"cli": true,
        	"adapterName": "nightingale",
        	"title": "Nightingale",
        	"keywords": [
        		"ui",
        		"dashboard",
        		"admin panel",
        		"responsive",
        		"visu",
        		"vis"
        	],
        	"expert": "no",
        	"features": [
        		"adapter"
        	],
        	"adminFeatures": [],
        	"type": "visualization",
        	"startMode": "daemon",
        	"connectionType": "local",
        	"dataSource": "poll",
        	"connectionIndicator": "no",
        	"language": "JavaScript",
        	"adminReact": "no",
        	"tools": [
        		"ESLint",
        		"type checking"
        	],
        	"indentation": "Tab",
        	"quotes": "single",
        	"es6class": "yes",
        	"authorName": "snador",
        	"authorGithub": "snador1977",
        	"authorEmail": "info@....de",
        	"gitRemoteProtocol": "HTTPS",
        	"gitCommit": "no",
        	"license": "MIT License",
        	"ci": "gh-actions",
        	"dependabot": "no",
        	"creatorVersion": "1.31.0"
        }
        
        1 Antwort Letzte Antwort
        0
        • snadorS snador

          Ich habe einen Spieladapter wo ich Socket.io nutze um u.a. Json Files zu schreiben. Bisher konnte ich mit:

          servConn.init({
               name:          'nightingale.0',                     // optional - default 'vis.0'
               connLink:      'http://localhost:8084',          // optional URL of the socket.io adapter
               socketSession: ''                                   // optional - used by authentication
          },{...
          

          und writeFile() die Files direkt unter "\iobroker-data\files\nightingale.0" ablegen.

          Nun habe ich nach Jahren das Grundgerüst des Adapter mit ioBroker/create-adapter mal neu aufgesetzt.

          Wenn ich jetzt Dateien schreiben mit writeFile() dann landen die alle unter "\iobroker-data\files\vis.0". Hab ich was übersehen oder steckt in dem generierten Skeleton noch irgendwo die VIS mit drin?

          Danke für Hilfe! :-)

          UncleSamU Offline
          UncleSamU Offline
          UncleSam
          Developer
          schrieb am zuletzt editiert von
          #4

          @snador sagte in ioBroker/create-adapter, Socket.io und writeFile:

          wo ich Socket.io nutze um u.a. Json Files zu schreiben

          Danke für die Config. Was ich noch nicht ganz verstehe: von wo benutzt du socket.io? Aus dem index_m.html oder aus dem Adapter?

          An beiden Orten gibt es inzwischen fertige Klassen, die die Kommunikation übernehmen und auch ein File Upload können. Dafür brauchst du kein socket.io

          Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
          ♡-lichen Dank an meine Sponsoren

          snadorS 1 Antwort Letzte Antwort
          0
          • UncleSamU UncleSam

            @snador sagte in ioBroker/create-adapter, Socket.io und writeFile:

            wo ich Socket.io nutze um u.a. Json Files zu schreiben

            Danke für die Config. Was ich noch nicht ganz verstehe: von wo benutzt du socket.io? Aus dem index_m.html oder aus dem Adapter?

            An beiden Orten gibt es inzwischen fertige Klassen, die die Kommunikation übernehmen und auch ein File Upload können. Dafür brauchst du kein socket.io

            snadorS Offline
            snadorS Offline
            snador
            schrieb am zuletzt editiert von
            #5

            @unclesam Sorry für die lange Zeit: Das Projekt lag ne ganze Weile... Kurz zum Verständnis: Ich schreibe eine Vue App die über meinen Adapter ein Frontend zur Verfügung stellt, ähnlich der Vis... Ich nutze Socket um im Frontend die States aus dem ioBroker zu holen, Daten zu schreiben usw. Im Frontend kann der Benutzer Dinge konfigurieren, diese Config Daten werden als JSON geschrieben und wenn man das Frontend wieder aufruft geladen.

            Ich nutze die Funktionen aus der conn.js die ich mir aus dem Vis Adpater entlehnt habe. Dort gibt es u.a. eine Funktion "writeFile" welche ich nutze.

            Früher hat er die Daten nach "\iobroker-data\files\nightingale.0" geschrieben was mein Adpater war, jetzt aber landen die Daten unter: "\iobroker-data\files\vis.0". Wo hab ich was übersehen?

            snadorS 1 Antwort Letzte Antwort
            0
            • snadorS snador

              @unclesam Sorry für die lange Zeit: Das Projekt lag ne ganze Weile... Kurz zum Verständnis: Ich schreibe eine Vue App die über meinen Adapter ein Frontend zur Verfügung stellt, ähnlich der Vis... Ich nutze Socket um im Frontend die States aus dem ioBroker zu holen, Daten zu schreiben usw. Im Frontend kann der Benutzer Dinge konfigurieren, diese Config Daten werden als JSON geschrieben und wenn man das Frontend wieder aufruft geladen.

              Ich nutze die Funktionen aus der conn.js die ich mir aus dem Vis Adpater entlehnt habe. Dort gibt es u.a. eine Funktion "writeFile" welche ich nutze.

              Früher hat er die Daten nach "\iobroker-data\files\nightingale.0" geschrieben was mein Adpater war, jetzt aber landen die Daten unter: "\iobroker-data\files\vis.0". Wo hab ich was übersehen?

              snadorS Offline
              snadorS Offline
              snador
              schrieb am zuletzt editiert von
              #6

              @snador Was ich vielleicht noch wichtig ist:

              Socket Adpater ist aktiv. Ich lade in der Vue App / Frontend die http://ipadresse:8084/socket.io/socket.io.js und nutze dann die Funktionen aus der conn.js die ich mir im Vis Adpater entlehnt habe...

              Ich bin also weniger im Adpater selber unterwegs sondern mehr in der Adapter Website, ähnlich dem Vis Adapter...

              UncleSamU 1 Antwort Letzte Antwort
              0
              • snadorS snador

                @snador Was ich vielleicht noch wichtig ist:

                Socket Adpater ist aktiv. Ich lade in der Vue App / Frontend die http://ipadresse:8084/socket.io/socket.io.js und nutze dann die Funktionen aus der conn.js die ich mir im Vis Adpater entlehnt habe...

                Ich bin also weniger im Adpater selber unterwegs sondern mehr in der Adapter Website, ähnlich dem Vis Adapter...

                UncleSamU Offline
                UncleSamU Offline
                UncleSam
                Developer
                schrieb am zuletzt editiert von
                #7

                @snador sagte in ioBroker/create-adapter, Socket.io und writeFile:

                conn.js die ich mir im Vis Adpater entlehnt habe

                Möglicherweise ist dort der Pfad drin beim writeFile.

                Wenn du nur ein einfaches JSON speichern willst, nimm doch einfach einen String Datenpunkt (z.B. in 0_userdata.0), dann sparst du dir die ganze File Geschichte.

                Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
                ♡-lichen Dank an meine Sponsoren

                snadorS 1 Antwort Letzte Antwort
                0
                • UncleSamU UncleSam

                  @snador sagte in ioBroker/create-adapter, Socket.io und writeFile:

                  conn.js die ich mir im Vis Adpater entlehnt habe

                  Möglicherweise ist dort der Pfad drin beim writeFile.

                  Wenn du nur ein einfaches JSON speichern willst, nimm doch einfach einen String Datenpunkt (z.B. in 0_userdata.0), dann sparst du dir die ganze File Geschichte.

                  snadorS Offline
                  snadorS Offline
                  snador
                  schrieb am zuletzt editiert von
                  #8

                  @unclesam Danke für die Info. In den Funktionen ist der Pfad nicht drin, dieser wird als Parameter beim Aufruf der Funktion übergeben. Deshalb hat mich das ja stutzig gemacht. Bisher gibt es ja auch, aber ich schau Mal...

                  Allerdings klingt Dein Vorschlag auch gut. Kannst er Datenpunkt auch komplexe Json speichern? Und ist das ganze persistent? Wenn ich den ioB anhalte und wieder starte sollten die Daten noch da sein und die Konfig laden zu können. Passt das?

                  Danke!

                  UncleSamU 1 Antwort Letzte Antwort
                  0
                  • snadorS snador

                    @unclesam Danke für die Info. In den Funktionen ist der Pfad nicht drin, dieser wird als Parameter beim Aufruf der Funktion übergeben. Deshalb hat mich das ja stutzig gemacht. Bisher gibt es ja auch, aber ich schau Mal...

                    Allerdings klingt Dein Vorschlag auch gut. Kannst er Datenpunkt auch komplexe Json speichern? Und ist das ganze persistent? Wenn ich den ioB anhalte und wieder starte sollten die Daten noch da sein und die Konfig laden zu können. Passt das?

                    Danke!

                    UncleSamU Offline
                    UncleSamU Offline
                    UncleSam
                    Developer
                    schrieb am zuletzt editiert von
                    #9

                    @snador Ich glaube, man kann keine Objekte in States speichern, nur Strings, Zahlen, Boolean und Listen der genannten Typen. Aber du kannst ja einfach zuvor ein JSON.stringify() machen und dann nach dem auslesen wieder ein JSON.parse(). Damit ist es ein String, und das wird auf jeden Fall gehen.

                    Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
                    ♡-lichen Dank an meine Sponsoren

                    snadorS 1 Antwort Letzte Antwort
                    0
                    • UncleSamU UncleSam

                      @snador Ich glaube, man kann keine Objekte in States speichern, nur Strings, Zahlen, Boolean und Listen der genannten Typen. Aber du kannst ja einfach zuvor ein JSON.stringify() machen und dann nach dem auslesen wieder ein JSON.parse(). Damit ist es ein String, und das wird auf jeden Fall gehen.

                      snadorS Offline
                      snadorS Offline
                      snador
                      schrieb am zuletzt editiert von
                      #10

                      @unclesam Stimmt das wäre ein Möglichkeit. So ne Config Datei erreicht aber schnell auch Mal 700Kbyte. Bin mir nicht sicher, dass das als String noch funktioniert.

                      Und was ist mit der Persistenz? Bleibt der Datenpunkt dauerhaft erhalten? Ist er nach Neustart des ioB noch da, also.mit dem Inhalt?

                      UncleSamU 1 Antwort Letzte Antwort
                      0
                      • snadorS snador

                        @unclesam Stimmt das wäre ein Möglichkeit. So ne Config Datei erreicht aber schnell auch Mal 700Kbyte. Bin mir nicht sicher, dass das als String noch funktioniert.

                        Und was ist mit der Persistenz? Bleibt der Datenpunkt dauerhaft erhalten? Ist er nach Neustart des ioB noch da, also.mit dem Inhalt?

                        UncleSamU Offline
                        UncleSamU Offline
                        UncleSam
                        Developer
                        schrieb am zuletzt editiert von
                        #11

                        @snador sagte in ioBroker/create-adapter, Socket.io und writeFile:

                        @unclesam Stimmt das wäre ein Möglichkeit. So ne Config Datei erreicht aber schnell auch Mal 700Kbyte. Bin mir nicht sicher, dass das als String noch funktioniert.

                        Musst du versuchen, sollte aber gehen.

                        Und was ist mit der Persistenz? Bleibt der Datenpunkt dauerhaft erhalten? Ist er nach Neustart des ioB noch da, also.mit dem Inhalt?

                        Zum Gottes Willen: ja. Sonst würde ioBroker seine Arbeit nicht machen. Das ist eines der wichtigsten Merkmale, dass er Daten nicht nur verschickt sondern auch speichert.

                        Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
                        ♡-lichen Dank an meine Sponsoren

                        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

                        432

                        Online

                        32.6k

                        Benutzer

                        82.0k

                        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