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 @saeft_2003 last edited by

      @saeft_2003 Nein, vorauss Richtung Oktober mit controller 3.4

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

        @saeft_2003 An sich dachte ich das der Migrationsprozess und die Fragen und so da drin recht eindeutig sind 🙂 Scheinbar nicht ...

        Wenn Du von file auf jsonl migrierst musst di an sich nur am Anfang einmal jsonl eingeben und dann alle settings einfach bestötigen 😉 (quasi). Dann die Migrationsfragen beantworten. Der Rest sollte automatisch passieren - auf dem Master wird migriert, auf dem Slave nicht.

        Am besten ist es auf allen Systemen den gleichen DB typ zu konfigurieren ... kann sonst ggf komische Effekte haben.

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

          @apollon77

          Alles klar danke für deine Info 👍

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

            @apollon77 wollte gerade mal den Controller testen, scheitere jedoch schon zu Beginn an diesem

            root@IoBroker:/opt/iobroker# iobroker stop
            root@IoBroker:/opt/iobroker# iobroker update
            No connection to databases possible ...
            Server Cannot start inMem-objects on port 9001: The "fd" argument must be of type number. Received undefined
            root@IoBroker:/opt/iobroker#
            
            
            apollon77 1 Reply Last reply Reply Quote 0
            • apollon77
              apollon77 @crunchip last edited by

              @crunchip Für "controller testen" ist das aber der falsche Thread hier ...

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

                @apollon77 nein, das ist schon richtig, geht ja um jsonl

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

                  @crunchip Dann musst Du jetzt mal sagen was Du schon getan hast ... ist das jetzt schon nach jsonl Paket Install oder was?

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

                    @apollon77 jsonL läuft bei mir schon sei 14.Feb., siehe https://forum.iobroker.net/post/581193 und folgende

                    was ich gerade getan hab
                    iobroker stop
                    iobroker update

                    mehr hab ich nicht gemacht

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

                      @crunchip Und dann hast Du ein controller 3.3 update gemacht oder noch nicht?

                      Was sagt im ioBroker Verzeichnis

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

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

                        @apollon77 hab ich nicht gemacht, iobroker wieder gestartet, wollte mich lieber vorher versichern bzw nachfragen😉

                        root@IoBroker:/opt/iobroker# npm ls --all |grep "iobroker/db"
                        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
                        │ ├─┬ @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
                        root@IoBroker:/opt/iobroker#
                        
                        
                        apollon77 1 Reply Last reply Reply Quote 0
                        • apollon77
                          apollon77 @crunchip last edited by

                          @crunchip Na dann bin ich erstmal bei der Annahme das es an dem liegt was einige User schonmal hatten: Editiere mal in der iobroker.json das "connectTimeout" unter states und objects und seite es auf 10000

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

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

                            das "connectTimeout" unter states und objects und seite es auf 10000

                            das gibts bei mir nur unter objects?

                            "objects": {
                                "type": "jsonl",
                                "typeComment": "Possible values: 'file' - [port 9001], redis - [port 6379], couch - [port 5984].",
                                "host": "127.0.0.1",
                                "port": 9001,
                                "user": "",
                                "pass": "",
                                "noFileCache": false,
                                "connectTimeout": 10000,
                                "dataDir": "../../iobroker-data/",
                                "options": {
                                "auth_pass": null,
                                "retry_max_delay": 5000
                                }
                              },
                              "states": {
                                "type": "jsonl",
                                "typeComment": "Possible values: 'file' - [port 9000], 'redis' - [port 6379].",
                                "host": "127.0.0.1",
                                "port": 9000,
                                "maxQueue": 1000,
                                "options": {
                                  "auth_pass": null,
                                  "retry_max_delay": 5000
                                },
                                "dataDir": "../../iobroker-data/"
                            
                            apollon77 1 Reply Last reply Reply Quote 0
                            • apollon77
                              apollon77 @crunchip last edited by

                              @crunchip Kannst es bei states mit einfügen,aber denke ist eh am relevantesten bei Objects

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

                                @apollon77 ok, mach ich und teste mal

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

                                  @apollon77 soll ich danach `connenctTimeout wieder zurückstellen?
                                  update ist durch, was mich aber gewundert hat, iobroker lief selbstständig wieder an, ohne iobroker start?
                                  wollte eigentlich noch nen iobroker fix hinterher schieben

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

                                    @crunchip Ja beim ersten update von <3.3 auf 3.3 passiert das. danach nicht mehr. das timeout kann wieder runtergesetzt werden

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

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

                                      Wenn alles klappt wird das im js-controller 3.3 vllt die neue Standard Datenbank ... mal sehen

                                      Ich nutze jsonl nun von Anfang an und kann nichts negatives berichten, es läuft einfach 👍
                                      Wie es denn hier der Stand? Standard oder nicht? Es gibt ja einige die redis noch nutzen...

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

                                        @fredf laaamngsam … keine Äpfel mit Birnen vergleichen bitte. Der Controller 4 wechselt vielleicht (!!!!) bei filedb automatisch auf jsonl. Das sehen wir noch …

                                        Und auch dann hat redis seine Zielgruppe. Man muss nur halt das Tool einsetzen was für einen und sein System sinnvoll ist.

                                        Thomas Braun 1 Reply Last reply Reply Quote 0
                                        • Thomas Braun
                                          Thomas Braun Most Active @apollon77 last edited by

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

                                          Man muss nur halt das Tool einsetzen was für einen und sein System sinnvoll ist.

                                          Gibt es dahingehend Vorschläge oder Einschätzungen, wann welches Tool angebracht sein könnte?

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

                                            @apollon77

                                            hab das gerade mal versucht von redis auf jsonl umzustellen, er bricht mir ab mit dem Fehler, dass iobroker noch laufen wuerde..
                                            dabei habe ich vorher ein iobroker fix gemacht und er ist durch gelaufen.

                                            Dann nochmal versucht, wieder das gleiche. Js-controller ist 3.3.22, Rest auf Beta.

                                            ilovegym@VMC123-iobroker /opt/iobroker $ iobroker stop
                                            ilovegym@VMC123-iobroker /opt/iobroker $ iobroker status
                                            iobroker is not running on this host.
                                            
                                            At least one iobroker host is running.
                                            
                                            Objects type: redis
                                            States  type: redis
                                            ilovegym@VMC123-iobroker /opt/iobroker $ iobroker setup custom
                                            Current configuration:
                                            - Objects database:
                                              - Type: redis
                                              - Host/Unix Socket: 127.0.0.1
                                              - Port: 6379
                                            - States database:
                                              - Type: redis
                                              - Host/Unix Socket: 127.0.0.1
                                              - Port: 6379
                                            
                                            Type of objects DB [(f)ile, (r)edis, ...], default [redis]: jsonl
                                            Host / Unix Socket of objects DB(jsonl), default[127.0.0.1]:
                                            Port of objects DB(jsonl), default[9001]:
                                            Type of states DB [(f)file, (r)edis, ...], default [jsonl]:
                                            Host / Unix Socket of states DB (jsonl), default[127.0.0.1]:
                                            Port of states DB (jsonl), default[9000]:
                                            Data directory (file), default[../../iobroker-data/]:
                                            Host name of this machine [VMC123-iobroker]:
                                            It appears that you want to convert this slave host into a Master or Single host system. Is this correct? [Y/n]: y
                                            
                                            Do you want to migrate objects and states from "redis/redis" to "jsonl/jsonl" [y/N]: y
                                            
                                            Migrating the objects database will overwrite all objects! Are you sure that this is not a slave host and you want to migrate the data? [y/N]: y
                                            
                                            Connecting to previous DB "redis"...
                                            
                                            Cannot migrate DB while js-controller is still running!
                                            Please stop ioBroker and try again. No settings have been changed.
                                            ilovegym@VMC123-iobroker /opt/iobroker $ ps -aux
                                            USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
                                            root           1  0.0  0.1  22000  9800 ?        Ss   15:49   0:00 /sbin/init
                                            root          56  0.0  0.2  29588 12376 ?        Ss   15:50   0:00 /lib/systemd/systemd-journald
                                            _rpc          94  0.0  0.0   6828  3536 ?        Ss   15:50   0:00 /sbin/rpcbind -f -w
                                            root          97  0.0  0.0 225828  3488 ?        Ssl  15:50   0:00 /usr/sbin/rsyslogd -n -iNONE
                                            message+      99  0.0  0.0   8976  4280 ?        Ss   15:50   0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-onl
                                            root         103  0.0  0.0   4684  3768 ?        Ss   15:50   0:00 /bin/bash /opt/iobroker/wetterstation.sh
                                            root         104  0.0  0.1  19528  7116 ?        Ss   15:50   0:00 /lib/systemd/systemd-logind
                                            root         179  0.0  0.0  76472  3064 ?        Ssl  15:50   0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 110:116
                                            root         180  0.0  0.1  15856  6860 ?        Ss   15:50   0:00 /usr/sbin/sshd -D
                                            redis        184  0.0 15.6 1197652 939944 ?      Ssl  15:50   1:03 /usr/bin/redis-server 0.0.0.0:6379
                                            root         345  0.0  0.0  43480  3920 ?        Ss   15:50   0:00 /usr/lib/postfix/sbin/master -w
                                            postfix      347  0.0  0.1  43820  7060 ?        S    15:50   0:00 pickup -l -t unix -u -c
                                            postfix      348  0.0  0.1  43872  7188 ?        S    15:50   0:00 qmgr -l -t unix -u
                                            root         355  0.0  0.0   5516  2160 ?        Ss   15:50   0:00 /usr/sbin/cron -f
                                            root         356  0.0  0.0   2424  1544 pts/0    Ss+  15:50   0:00 /sbin/agetty -o -p -- \u --noclear --keep-baud console 115200,38400,9600 linux
                                            root         357  0.0  0.0   2424  1664 pts/2    Ss+  15:50   0:00 /sbin/agetty -o -p -- \u --noclear --keep-baud tty2 115200,38400,9600 linux
                                            root         358  0.0  0.0   2424  1656 pts/1    Ss+  15:50   0:00 /sbin/agetty -o -p -- \u --noclear --keep-baud tty1 115200,38400,9600 linux
                                            root         360  0.0  0.0   6428  2240 ?        S    15:50   0:00 /usr/sbin/CRON -f
                                            root         373  0.0  0.0   2392   748 ?        Ss   15:50   0:00 /bin/sh -c sleep 600 && systemctl start wetterstation
                                            root         375  0.0  0.0   2300   736 ?        S    15:50   0:00 sleep 600
                                            root         382  0.0  0.0 829944  5516 ?        Ssl  15:50   0:00 adb -L tcp:5037 fork-server server --reply-fd 4
                                            root         474  0.0  0.1  16636  7720 ?        Ss   15:50   0:00 sshd: ilovegym [priv]
                                            root         487  0.0  0.1  16636  7620 ?        Ss   15:50   0:00 sshd: ilovegym [priv]
                                            ilovegym     489  0.0  0.1  21164  8968 ?        Ss   15:50   0:00 /lib/systemd/systemd --user
                                            ilovegym     490  0.0  0.0  23116  2332 ?        S    15:50   0:00 (sd-pam)
                                            ilovegym     513  0.0  0.0  16920  5008 ?        S    15:50   0:00 sshd: ilovegym@notty
                                            ilovegym     514  0.0  0.1  17104  6072 ?        R    15:50   0:00 sshd: ilovegym@pts/3
                                            ilovegym     515  0.0  0.0   2460  1724 ?        Ss   15:50   0:00 /usr/lib/openssh/sftp-server
                                            ilovegym     516  0.0  0.0   5508  4708 pts/3    Ss   15:50   0:00 -bash
                                            ilovegym     517  0.0  0.0   3656  2652 ?        Ss   15:50   0:00 bash -c while true; do sleep 1;head -v -n 8 /proc/meminfo; head -v -n 2 /proc/stat /proc/version /proc/
                                            root        2867  0.0  0.0   2300   740 ?        S    15:54   0:00 sleep 30
                                            ilovegym    2957  0.0  0.0   2300   676 ?        S    15:54   0:00 sleep 1
                                            ilovegym    2958  0.0  0.0   7928  2760 pts/3    R+   15:54   0:00 ps -aux
                                            ilovegym@VMC123-iobroker /opt/iobroker $ iobroker setup custom
                                            Current configuration:
                                            - Objects database:
                                              - Type: redis
                                              - Host/Unix Socket: 127.0.0.1
                                              - Port: 6379
                                            - States database:
                                              - Type: redis
                                              - Host/Unix Socket: 127.0.0.1
                                              - Port: 6379
                                            
                                            Type of objects DB [(f)ile, (r)edis, ...], default [redis]: jsonl
                                            Host / Unix Socket of objects DB(jsonl), default[127.0.0.1]:
                                            Port of objects DB(jsonl), default[9001]:
                                            Type of states DB [(f)file, (r)edis, ...], default [jsonl]:
                                            Host / Unix Socket of states DB (jsonl), default[127.0.0.1]:
                                            Port of states DB (jsonl), default[9000]:
                                            Data directory (file), default[../../iobroker-data/]:
                                            Host name of this machine [VMC123-iobroker]:
                                            It appears that you want to convert this slave host into a Master or Single host system. Is this correct? [Y/n]: y
                                            
                                            Do you want to migrate objects and states from "redis/redis" to "jsonl/jsonl" [y/N]: y
                                            
                                            Migrating the objects database will overwrite all objects! Are you sure that this is not a slave host and you want to migrate the data? [y/N]: y
                                            
                                            Connecting to previous DB "redis"...
                                            
                                            Cannot migrate DB while js-controller is still running!
                                            Please stop ioBroker and try again. No settings have been changed.
                                            ilovegym@VMC123-iobroker /opt/iobroker $ iobroker start
                                            
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            810
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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