Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. ioBroker/create-adapter, Socket.io und writeFile

    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

    ioBroker/create-adapter, Socket.io und writeFile

    This topic has been deleted. Only users with topic management privileges can see it.
    • UncleSam
      UncleSam Developer @snador last edited by

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

      snador 1 Reply Last reply Reply Quote 0
      • snador
        snador @UncleSam last edited by

        @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 Reply Last reply Reply Quote 0
        • UncleSam
          UncleSam Developer @snador last edited by

          @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

          snador 1 Reply Last reply Reply Quote 0
          • snador
            snador @UncleSam last edited by

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

            snador 1 Reply Last reply Reply Quote 0
            • snador
              snador @snador last edited by

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

              UncleSam 1 Reply Last reply Reply Quote 0
              • UncleSam
                UncleSam Developer @snador last edited by

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

                snador 1 Reply Last reply Reply Quote 0
                • snador
                  snador @UncleSam last edited by

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

                  UncleSam 1 Reply Last reply Reply Quote 0
                  • UncleSam
                    UncleSam Developer @snador last edited by

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

                    snador 1 Reply Last reply Reply Quote 0
                    • snador
                      snador @UncleSam last edited by

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

                      UncleSam 1 Reply Last reply Reply Quote 0
                      • UncleSam
                        UncleSam Developer @snador last edited by

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

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        413
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        javascript
                        2
                        11
                        601
                        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