Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. EXPERIMENTELL: JsonL Datenbank für js-controller

    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

    EXPERIMENTELL: JsonL Datenbank für js-controller

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

      Es gibt ab jetzt den neuen js-controller 3.3 im Latest (https://forum.iobroker.net/topic/44624/js-controller-3-3-jetzt-im-latest) ... Bei Nutzung einer JSONL-Datenbank sollte das Update nach bisherigen Tests problemlos funktionieren ... Falls nicht bitte lasst uns das hier diskutieren.

      Bitte in JEDEM FALL ein Backup vorher haben!

      crunchip 1 Reply Last reply Reply Quote 0
      • M
        msauer last edited by

        Hi. Wie sehe ich eigentlich, welche Version von JSONL ich aktuell einsetze und wenn, wie mache ich einen Update?

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

          @msauer Das ist nur relevant mit js-controller 3.2 und hier sollte es jsonl@1.1.x sein. Ab js-controller 3.3 kommen die Libraries schon mit dem Controller mit.

          Sehen der Version geht per npm ls --all |grep "iobroker/db"

          M crunchip 3 Replies Last reply Reply Quote 0
          • M
            msauer @apollon77 last edited by

            @apollon77 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:

            Sehen der Version geht per npm ls --all |grep "iobroker/db"

            Ausgabe des Commands ist leer!?

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

              @msauer Ausgeführt in /opt/iobroker ??

              M 1 Reply Last reply Reply Quote 0
              • M
                msauer @apollon77 last edited by

                @apollon77 Natürlich nicht. 😞 ... mea culpa

                1 Reply Last reply Reply Quote 0
                • M
                  msauer @apollon77 last edited by

                  @apollon77 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:

                  Ab js-controller 3.3 kommen die Libraries schon mit dem Controller mit.

                  das verstehe ich dann aber nicht:

                  "Users that use the experimental jsonl database classes need to manually update the jsonl packages"

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

                    @msauer Habe mich gestern abend vor release anders entschieden. Fixe changelog gleich

                    1 Reply Last reply Reply Quote 0
                    • crunchip
                      crunchip Forum Testing Most Active @apollon77 last edited by crunchip

                      @apollon77 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:

                      npm ls --all |grep "iobroker/db"

                      hab ich testweise mal eingegeben, Ausgabe mit einigen npm ERR, rein informativ, ist das so ok?
                      Host ist noch auf 3.2.16

                      npm ERR! extraneous: @types/request@2.48.1 /opt/iobroker/node_modules/@types/request
                      npm ERR! extraneous: alcalzone-shared@2.3.0 /opt/iobroker/node_modules/alcalzone-shared
                      npm ERR! extraneous: alexa-remote2@2.5.3 /opt/iobroker/node_modules/alexa-remote2
                      npm ERR! extraneous: anyproxy@4.1.0 /opt/iobroker/node_modules/anyproxy
                      npm ERR! extraneous: bottleneck@2.19.2 /opt/iobroker/node_modules/bottleneck
                      npm ERR! extraneous: castv2-player@2.0.5 /opt/iobroker/node_modules/castv2-player
                      npm ERR! extraneous: coffee-compiler@0.3.2 /opt/iobroker/node_modules/coffee-compiler
                      npm ERR! extraneous: coffee-script@1.12.7 /opt/iobroker/node_modules/coffee-script
                      npm ERR! extraneous: express-fileupload@0.4.1 /opt/iobroker/node_modules/express-fileupload
                      npm ERR! extraneous: iobroker-react-components@1.0.0 /opt/iobroker/node_modules/iobroker-react-components
                      npm ERR! extraneous: js2xmlparser@3.0.0 /opt/iobroker/node_modules/js2xmlparser
                      npm ERR! extraneous: mongodb@3.2.7 /opt/iobroker/node_modules/mongodb
                      npm ERR! extraneous: node-hue-api@2.4.6 /opt/iobroker/node_modules/node-hue-api
                      npm ERR! extraneous: node-inspect@2.0.0 /opt/iobroker/node_modules/node-inspect
                      npm ERR! extraneous: node-red@0.20.7 /opt/iobroker/node_modules/node-red
                      npm ERR! extraneous: node-red-contrib-aggregator@1.5.0 /opt/iobroker/node_modules/node-red-contrib-aggregator
                      npm ERR! extraneous: node-red-contrib-os@0.1.7 /opt/iobroker/node_modules/node-red-contrib-os
                      npm ERR! extraneous: node-red-contrib-polymer@0.0.21 /opt/iobroker/node_modules/node-red-contrib-polymer
                      npm ERR! extraneous: node-red-dashboard@2.15.5 /opt/iobroker/node_modules/node-red-dashboard
                      npm ERR! extraneous: portfinder@1.0.20 /opt/iobroker/node_modules/portfinder
                      npm ERR! extraneous: rpi-gpio@2.1.3 /opt/iobroker/node_modules/rpi-gpio
                      npm ERR! extraneous: sync-exec@0.6.2 /opt/iobroker/node_modules/sync-exec
                      npm ERR! extraneous: systeminformation@4.14.4 /opt/iobroker/node_modules/systeminformation
                      npm ERR! extraneous: typescript@3.5.1 /opt/iobroker/node_modules/typescript
                      npm ERR! extraneous: virtual-device-sdk@1.5.18 /opt/iobroker/node_modules/virtual-device-sdk
                      npm ERR! extraneous: virtual-tsc@0.6.1 /opt/iobroker/node_modules/virtual-tsc
                      npm ERR! extraneous: vm2@3.8.1 /opt/iobroker/node_modules/vm2
                      npm ERR! extraneous: wake_on_lan@1.0.0 /opt/iobroker/node_modules/wake_on_lan
                      npm ERR! extraneous: zigbee-herdsman-converters@14.0.110 /opt/iobroker/node_modules/zigbee-herdsman-converters
                      npm ERR! extraneous: zigbee-shepherd@0.3.0 /opt/iobroker/node_modules/zigbee-shepherd
                      npm ERR! extraneous: zigbee-shepherd-converters@10.1.9 /opt/iobroker/node_modules/zigbee-shepherd-converters
                      npm ERR! extraneous: @alcalzone/release-script@1.8.3 /opt/iobroker/node_modules/iobroker.javascript/node_modules/@alcalzone/release-script
                      npm ERR! extraneous: chai@4.3.4 /opt/iobroker/node_modules/iobroker.javascript/node_modules/chai
                      npm ERR! extraneous: del@6.0.0 /opt/iobroker/node_modules/iobroker.javascript/node_modules/del
                      npm ERR! extraneous: eslint@7.23.0 /opt/iobroker/node_modules/iobroker.javascript/node_modules/eslint
                      npm ERR! extraneous: gulp@4.0.2 /opt/iobroker/node_modules/iobroker.javascript/node_modules/gulp
                      npm ERR! extraneous: gulp-rename@2.0.0 /opt/iobroker/node_modules/iobroker.javascript/node_modules/gulp-rename
                      npm ERR! extraneous: gulp-replace@1.0.0 /opt/iobroker/node_modules/iobroker.javascript/node_modules/gulp-replace
                      npm ERR! extraneous: mocha@8.3.2 /opt/iobroker/node_modules/iobroker.javascript/node_modules/mocha
                      npm ERR! extraneous: timekeeper@2.2.0 /opt/iobroker/node_modules/iobroker.javascript/node_modules/timekeeper
                      npm ERR! peer dep missing: date-fns@^2.0.0, required by @date-io/date-fns@1.3.13
                      npm ERR! peer dep missing: @material-ui/core@^4.0.0, required by @material-ui/pickers@3.2.10
                      npm ERR! peer dep missing: react@^16.8.4, required by @material-ui/pickers@3.2.10
                      npm ERR! peer dep missing: react-dom@^16.8.4, required by @material-ui/pickers@3.2.10
                      npm ERR! peer dep missing: react@>=16.6.0, required by react-transition-group@4.4.1
                      npm ERR! peer dep missing: react@>=16.8, required by rifm@0.7.0
                      npm ERR! peer dep missing: react-dom@>=16.6.0, required by react-transition-group@4.4.1
                      npm ERR! peer dep missing: typescript@3.9.x || 4.0.x || 4.1.x, required by typedoc@0.20.28
                      npm ERR! extraneous: @babel/cli@7.13.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@babel/cli
                      npm ERR! extraneous: @babel/preset-env@7.13.9 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@babel/preset-env
                      npm ERR! extraneous: @babel/preset-typescript@7.13.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@babel/preset-typescript
                      npm ERR! extraneous: @types/debounce@1.2.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@types/debounce
                      npm ERR! extraneous: @types/debug@4.1.5 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@types/debug
                      npm ERR! extraneous: @types/jest@26.0.20 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@types/jest
                      npm ERR! extraneous: @types/nedb@1.8.11 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@types/nedb
                      npm ERR! extraneous: @types/serialport@8.0.1 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@types/serialport
                      npm ERR! extraneous: @typescript-eslint/eslint-plugin@4.16.1 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@typescript-eslint/eslint-plugin
                      npm ERR! extraneous: @typescript-eslint/parser@4.16.1 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@typescript-eslint/parser
                      npm ERR! extraneous: eslint@7.21.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/eslint
                      npm ERR! extraneous: jest@26.6.3 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/jest
                      npm ERR! extraneous: typedoc@0.20.28 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/typedoc
                      npm ERR! extraneous: typedoc-plugin-markdown@3.6.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/typedoc-plugin-markdown
                      npm ERR! extraneous: typedoc-plugin-no-inherit@1.2.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/typedoc-plugin-no-inherit
                      npm ERR! extraneous: typedoc-plugin-sourcefile-url@1.0.6 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/typedoc-plugin-sourcefile-url
                      npm ERR! extraneous: eslint@7.24.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/eslint
                      npm ERR! extraneous: eslint-config-google@0.14.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/eslint-config-google
                      npm ERR! extraneous: eslint-plugin-jest@24.3.5 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/eslint-plugin-jest
                      npm ERR! extraneous: jest@26.6.3 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/jest
                      npm ERR! peer dep missing: typescript@3.9.x || 4.0.x || 4.1.x, required by typedoc@0.20.28
                      npm ERR! extraneous: @babel/cli@7.13.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@babel/cli
                      npm ERR! extraneous: @babel/preset-env@7.13.9 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@babel/preset-env
                      npm ERR! extraneous: @babel/preset-typescript@7.13.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@babel/preset-typescript
                      npm ERR! extraneous: @types/debounce@1.2.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@types/debounce
                      npm ERR! extraneous: @types/debug@4.1.5 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@types/debug
                      npm ERR! extraneous: @types/jest@26.0.20 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@types/jest
                      npm ERR! extraneous: @types/nedb@1.8.11 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@types/nedb
                      npm ERR! extraneous: @types/serialport@8.0.1 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@types/serialport
                      npm ERR! extraneous: @typescript-eslint/eslint-plugin@4.16.1 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@typescript-eslint/eslint-plugin
                      npm ERR! extraneous: @typescript-eslint/parser@4.16.1 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@typescript-eslint/parser
                      npm ERR! extraneous: eslint@7.21.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/eslint
                      npm ERR! extraneous: jest@26.6.3 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/jest
                      npm ERR! extraneous: typedoc@0.20.28 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/typedoc
                      npm ERR! extraneous: typedoc-plugin-markdown@3.6.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/typedoc-plugin-markdown
                      npm ERR! extraneous: typedoc-plugin-no-inherit@1.2.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/typedoc-plugin-no-inherit
                      npm ERR! extraneous: typedoc-plugin-sourcefile-url@1.0.6 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/typedoc-plugin-sourcefile-url
                      │ ├─┬ @iobroker/db-objects-file@1.1.4
                      │ │ ├─┬ @iobroker/db-base@1.1.4
                      │ │ ├── @iobroker/db-objects-redis@1.1.4 deduped
                      │ ├─┬ @iobroker/db-objects-jsonl@1.1.5
                      │ │ ├─┬ @iobroker/db-base@1.1.4
                      │ │ ├─┬ @iobroker/db-objects-file@1.1.4
                      │ │ │ ├── @iobroker/db-base@1.1.4 deduped
                      │ │ │ ├── @iobroker/db-objects-redis@1.1.4 deduped
                      │ │ ├─┬ @iobroker/db-objects-redis@1.1.4
                      │ │ │ ├── @iobroker/db-base@1.1.4 deduped
                      │ ├─┬ @iobroker/db-objects-redis@1.1.4
                      │ │ ├── @iobroker/db-base@1.1.4 deduped
                      │ ├─┬ @iobroker/db-states-file@1.1.4
                      │ │ ├── @iobroker/db-base@1.1.4 deduped
                      │ │ └── @iobroker/db-states-redis@1.1.4 deduped
                      │ ├─┬ @iobroker/db-states-jsonl@1.1.5
                      │ │ ├── @iobroker/db-base@1.1.4 deduped
                      │ │ ├─┬ @iobroker/db-states-file@1.1.4
                      │ │ │ ├── @iobroker/db-base@1.1.4 deduped
                      │ │ │ └── @iobroker/db-states-redis@1.1.4 deduped
                      │ │ └─┬ @iobroker/db-states-redis@1.1.4
                      │ │   ├── @iobroker/db-base@1.1.4 deduped
                      │ ├─┬ @iobroker/db-states-redis@1.1.4
                      │ │ ├── @iobroker/db-base@1.1.4 deduped
                      
                      
                      apollon77 1 Reply Last reply Reply Quote 0
                      • apollon77
                        apollon77 @crunchip last edited by

                        @crunchip Auf 3.2.16 sind die 1.1.x der DB Klassen vollkommen korrekt. Update auf js-controller 3.3 aktualisiert das auch1.2.x

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          saeft_2003 Most Active @apollon77 last edited by

                          @apollon77

                          Wird josnL der neue Standard beim js controller 3.3? Falls ja wann kommt der?

                          K apollon77 2 Replies Last reply Reply Quote 0
                          • K
                            Kueppert @saeft_2003 last edited by

                            @saeft_2003 schau mal hier: https://forum.iobroker.net/topic/42053/experimentell-jsonl-datenbank-für-js-controller/1
                            ich nutze das Format bereits erfolgreich:

                            Objects type: jsonl
                            States  type: jsonl
                            
                            S 1 Reply Last reply Reply Quote 0
                            • S
                              saeft_2003 Most Active @Kueppert last edited by

                              @kueppert

                              was ich nicht kapiert habe was ich hier machen muss? Weil ich habe auch einen Slave...

                              dann Wählen (beim mster bzw single host sowieso) das er migriert (Bei Slaves natürlich keine Migration)

                              AlCalzone 1 Reply Last reply Reply Quote 0
                              • S
                                saeft_2003 Most Active last edited by

                                Würde es auch reichen in der iobroker.json unter states und objects den Typ von file auf jsonl zu ändern?

                                },
                                  "objects": {
                                    "type": "file",
                                    "typeComment": "Possible values: 'file' - [port 9001], redis - [port 6379], couch - [port 5984].",
                                    "host": "0.0.0.0",
                                    "port": 9001,
                                    "user": "",
                                    "pass": "",
                                    "noFileCache": false,
                                    "connectTimeout": 2000,
                                    "options": {
                                      "auth_pass": null,
                                      "enableReadyCheck": true,
                                      "host": "0.0.0.0",
                                      "port": 9001,
                                      "db": 0,
                                      "family": 0,
                                      "password": null,
                                      "autoResubscribe": false,
                                      "connectionName": "host.iobroker"
                                    },
                                    "maxQueue": 1000
                                  },
                                  "states": {
                                    "type": "file",
                                    "typeComment": "Possible values: 'file' - [port 9000], 'redis' - [port 6379].",
                                    "host": "0.0.0.0",
                                    "port": 9000,
                                    "maxQueue": 1000,
                                    "writeFileInterval": 360000,
                                    "options": {
                                      "auth_pass": null,
                                      "enableReadyCheck": true,
                                      "host": "0.0.0.0",
                                      "port": 9000,
                                      "db": 0,
                                      "family": 0,
                                      "password": null,
                                      "autoResubscribe": false,
                                      "connectionName": "host.iobroker"
                                    }
                                
                                
                                1 Reply Last reply Reply Quote 0
                                • M
                                  Megawaldi last edited by

                                  @saeft_2003
                                  Bitte nicht falsch verstehen, aber wenn du nicht genau verstehst was hier gemacht werden muss würde ich es lassen.

                                  S 1 Reply Last reply Reply Quote 1
                                  • S
                                    saeft_2003 Most Active @Megawaldi last edited by

                                    @megawaldi

                                    Ich hab schon öfter was gemacht was ich nicht genau verstanden habe, aber mit Hilfe hier aus dem Forum hat das bis jetzt sehr gut geklappt. Dafür ist es ja da.

                                    Und bitte nicht falsch verstehen, aber dein Kommentar hilft nicht wirklich weiter.

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

                                      @saeft_2003 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:

                                      dann Wählen (beim mster bzw single host sowieso) das er migriert (Bei Slaves natürlich keine Migration)

                                      Wenn du umstellst auf JSONL fragt dich ioBroker, ob du die DB migrieren willst. Auf dem Master beantwortest du das mit "ja", auf dem Slave mit "nein".

                                      S 2 Replies Last reply Reply Quote 0
                                      • S
                                        saeft_2003 Most Active @AlCalzone last edited by

                                        @alcalzone

                                        Alles klar damit kann ich was anfangen. Ich habe das heute auf meinem Testsystem kurz probiert und darauf wahrscheinlich nicht genau geachtet.

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          saeft_2003 Most Active @AlCalzone last edited by

                                          @alcalzone

                                          Sorry das ich nochmal nachfragen muss. Aber ist das die Abfrage „Data directory“? Falls ja was muss hier eingeben werden?

                                          35C7A86F-9D28-4A8E-8437-5DC0D9D37657.jpeg

                                          Dr. Bakterius 1 Reply Last reply Reply Quote 0
                                          • Dr. Bakterius
                                            Dr. Bakterius Most Active @saeft_2003 last edited by

                                            @saeft_2003 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:

                                            Aber ist das die Abfrage „Data directory“?

                                            Nein, das ist der Pfad zu den Datenbankdateien. Wenn von den Standardwerten her nichts geändert wurde, einfach so übernehmen. Die Abfrage zur Konvertierung wird erst danach gestellt.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            532
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            20
                                            187
                                            18284
                                            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