Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. KNX Adapter überholt

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    KNX Adapter überholt

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      c-m-m last edited by

      Ich habe den KNX mit ETS 5 über ein Züblin USB Adapter programmiert.

      Dieser USB Adapter steckt nun am Raspberry und knxd stellt die Verbindung zwischen USB und IP Basierter Kommunikation her.

      Über knxtool kann ich auch Lampen schalten und sehe was auf dem Bus gesendet wird.

      Ich habe jetzt auch mal getestet ob ich mit der ETS über den Raspberry auf den KNX komme. Der Busmonitor funktioniert aber es lassen sich keine Komponenten auslesen oder neu Programmieren. Da bricht ETS immer mit einem Timeout ab. Möglicherweise habe ich also noch ein Problem mit knxd und nicht mit dem Adapter.

      Viele Grüße,

      Conny

      1 Reply Last reply Reply Quote 0
      • C
        c-m-m last edited by

        Ich habe jetzt noch mal mit Wireshark mitgeschnüffelt.

        Auch hier sieht man das alle 10 Sekunden ein Request geschickt wird:
        8332_bildschirmfoto_2018-08-12_21-40-23.png

        Ist das nun normal oder nicht?

        Aber auch das Schalten sieht so aus als würde es funktionieren:
        8332_bildschirmfoto_2018-08-12_21-43-14.png

        Wenn ich das richtig verstehe schickt ioBroker (Port 36277) den Request die Gruppe zu schreiben (Paket 3).

        Und dann kommt doch vom knxd (Port 3671) genau die gleiche Information zurück (Paket 5).

        Was ich nicht verstehe ist, warum schickt knxd das Paket ohne etwas auf den KNX zu schieben?

        Kann mir hier jemand Bestätigen, dass der KNX Adapter sich korrekt verhält?

        Dann lasse ich Euch hier in Ruhe und suche beim knxd weiter.

        Viele Grüße,

        Conny

        1 Reply Last reply Reply Quote 0
        • C
          c-m-m last edited by

          Sorry das ich schon wieder schreibe, bevor überhaupt jemand die Chance hat zu antworten.

          Aber ich habe gerade noch etwas entdeckt, was möglicherweise doch am Adapter liegen könnte.

          Immer wenn knxd Daten senden, dann scheint die Verbindung abzubrechen und der Adapter verbindet sich erneut und nutzt einen neuen Port:
          8332_bildschirmfoto_2018-08-12_22-00-38.png

          Meine Vermutung ist, dass knxd die Verbindung löscht, da kein Ack auf die Pakete 343 und 344 gesendet wird.

          Viele Grüße,

          Conny

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

            Hallo,

            @c-m-m: starte mal bitte den knxd ohne "-R".

            @all: Tut mir leid das ich momentan etwas kurz angebunden bin, wird sich aber bald wieder ändern.

            VG

            chefkoch009

            1 Reply Last reply Reply Quote 0
            • C
              Centurytt last edited by

              @c-m-m:

              Ich habe den KNX mit ETS 5 über ein Züblin USB Adapter programmiert.

              Dieser USB Adapter steckt nun am Raspberry und knxd stellt die Verbindung zwischen USB und IP Basierter Kommunikation her.

              Über knxtool kann ich auch Lampen schalten und sehe was auf dem Bus gesendet wird.

              Ich habe jetzt auch mal getestet ob ich mit der ETS über den Raspberry auf den KNX komme. Der Busmonitor funktioniert aber es lassen sich keine Komponenten auslesen oder neu Programmieren. Da bricht ETS immer mit einem Timeout ab. Möglicherweise habe ich also noch ein Problem mit knxd und nicht mit dem Adapter.

              Viele Grüße,

              Conny `

              So, also wenn du nur KNXTool verwendest siehst du auch den Status der einzelnen Schalter. Siehst du auch den Status der Schalter wenn du den Lichtschalter manuell betätigst ? Das heisst wenn du ihn betätigst ändert sich der Status im Tool ?

              Bzgl. USB - muss nochmal suchen- bilde ich mir ein, dass es da Schwierigkeiten mit dem Senden und Empfangen gibt. Im FHEM Forum gibts da ja auch paar Threads. Ich verwende ein IP Gateway das ich via ETS 5.5 programmiert habe, aber den Status der Schalter/Taster nicht in den ioBroker bekomme wenn ich den Taster manuell betätige. Wenn das aber bei dir funzt dürfte ich mir die Konfig deiner ETS KNXprj. Datei mal ansehen ?

              Der Aufbau der Verbindung alle paar Sekunden ist aber bei mir auch, das ist, das KeepAllive und der Adapter schließt die Verbindung. Beim IP GW kann ständig geschalten werden solange der Adapter läuft obwohl im Log…. habe es oben gepostet ebenfalls Verbindungsaufbau alle paar Sekunden stattfinden. Ausserdem Wrong Channel ID Meldungen die ich ebenfalls nicht nachvollziehen kann.

              lg

              Tom

              1 Reply Last reply Reply Quote 0
              • C
                Centurytt last edited by

                @c-m-m:

                Hallo Zusammen,

                ich habe mir ioBroker auf meinen Raspberry installiert. Leider kann ich aber scheinbar über KNX weder empfangen noch senden.

                Der folgende Block an Logmeldungen wiederholt sich alle 10 Sekunden. Ist das normal oder deutet das auf ein Problem hin?

                <size size="85">__knx.0 2018-08-11 20:05:51.758 info Change state from STATE_CONNECTION_STATE_RESPONSE(6) to STATE_READY(7)

                knx.0 2018-08-11 20:05:51.757 info Change state from STATE_CONNECTION_STATE_REQUEST(5) to STATE_CONNECTION_STATE_RESPONSE(6)

                knx.0 2018-08-11 20:05:51.757 info Received CONNECTIONSTATE_RESPONSE : 06 10 02 08 00 08 01 00 192.168.1.101:3671 ChID : 1 SeqCntIN : 0 SeqCntOUT : 0 msgCode : [object Ob

                knx.0 2018-08-11 20:05:51.757 info Change state from STATE_READY(7) to STATE_CONNECTION_STATE_REQUEST(5)

                knx.0 2018-08-11 20:05:51.756 info Send : conCheck Connection State Request : 06 10 02 07 00 10 01 00 08 01 c0 a8 01 65 85 7a sent to 127.0.0.1:3671

                knx.0 2018-08-11 20:05:51.745 info checkConnectionState 127.0.0.1 State : true__</size>

                Wenn ich versuche das Treppenlicht einzuschalten, bekomme ich folgenden Log:

                <size size="85">__knx.0 2018-08-11 20:14:29.555 info Change state from STATE_READY(7) to STATE_READY(7)

                knx.0 2018-08-11 20:14:29.555 info Change state from STATE_TUNNELLING_ACK(14) to STATE_READY(7)

                knx.0 2018-08-11 20:14:29.555 info ( 4.b ) return to STATE_READY, processing : false

                knx.0 2018-08-11 20:14:29.553 info ( 4 ) Sending Tunnel_Request ACK : 06 10 04 21 00 0a 04 01 00 00 ChID : 1 SeqCntIN : 0 SeqCntOUT : 1

                knx.0 2018-08-11 20:14:29.449 info =====> STATE_TUNNELING_ACK 3

                knx.0 2018-08-11 20:14:29.448 info Change state from STATE_TUNNELLING_REQUEST(13) to STATE_TUNNELLING_ACK(14)

                knx.0 2018-08-11 20:14:29.447 info Change state from STATE_READY(7) to STATE_TUNNELLING_REQUEST(13)

                knx.0 2018-08-11 20:14:29.446 info WRITE : mappedName : Treppe UG/EG dest : 0/0/3 val: 1 (DPT1.001) Treppe_UG_EG

                knx.0 2018-08-11 20:14:29.446 info ( 3 ) Received TUNNEL_REQUEST (WRITE - send ACK ) : 06 10 04 20 00 15 04 01 00 00 2e 00 bc e0 11 81 00 03 01 00 81 1

                knx.0 2018-08-11 20:14:29.445 info ==> easy-knx.js: signal runtime : 0s 14.18136ms

                knx.0 2018-08-11 20:14:29.445 info Change state from STATE_TUNNELLING_SENT_DATA_ACK_RECV(11) to STATE_READY(7)

                knx.0 2018-08-11 20:14:29.445 info ==> successful acknowledged previous package… processing next of 0

                knx.0 2018-08-11 20:14:29.444 info ( 2 ) Received TUNNEL_ACK : 06 10 04 21 00 0a 04 01 00 00 from 192.168.1.101:3671 SeqCntIN : 0 SeqCntOUT : 1 GA : 0/0/0

                knx.0 2018-08-11 20:14:29.444 info STATE_TUNNELlING_WAIT_SENT_ACK: received ACK for previous self sent package

                knx.0 2018-08-11 20:14:29.443 info Change state from STATE_TUNNELlING_WAIT_SENT_ACK(9) to STATE_TUNNELLING_SENT_DATA_ACK_RECV(11)

                knx.0 2018-08-11 20:14:29.443 info Change state from STATE_TUNNELLING_SENT_DATA(8) to STATE_TUNNELlING_WAIT_SENT_ACK(9)

                knx.0 2018-08-11 20:14:29.443 info easy-knx: task.data : 06 10 04 20 00 15 04 01 00 00 11 00 bc e0 11 81 00 03 01 00 81 byteLen : 21

                knx.0 2018-08-11 20:14:29.442 info ( 1 ) Send : GroupValueWrite : 06 10 04 20 00 15 04 01 00 00 11 00 bc e0 11 81 00 03 01 00 81 sent to 127.0.0.1:3671 ChID: 1 SeqCntIN : 0 SeqCntOUT : 0 delay : 12

                knx.0 2018-08-11 20:14:29.442 info Change state from STATE_READY(7) to STATE_TUNNELLING_SENT_DATA(8)

                knx.0 2018-08-11 20:14:29.442 info BINARY CHANGE change from 1 to 1

                knx.0 2018-08-11 20:14:29.441 info add to Buffer cnt: 102 : 06 10 04 20 00 15 04 01 00 00 11 00 bc e0 11 81 00 03 01 00 81 queue.length : 0 GA : 0/0/3

                knx.0 2018-08-11 20:14:29.441 info easy-knx.js groupValueWrite value: 1 dpt : DPT1.001{"type":"Buffer","data":[6,16,4,32,0,21,4,1,0,0,17,0,188,224,17,129,0,3,1,0,129]}

                knx.0 2018-08-11 20:14:29.428 info main.js : tGA.write on Statechange : 0/0/3 P-074F-0_GA-3 typeof val: number 1 DPT1.001__</size>

                In meinen Augen sieht der Log so aus als hätte alles funktioniert. Aber KNXD zeigt überhautp keine Reaktion. Getestet habe ich mit KNXD 0.12.16 und 0.14.24-3

                Folgende Parameter habe ich für KNXD verwendet:

                ./knxd –eibaddr=1.1.128 --client-addrs=1.1.129:8 -D -T -R -S -i -t1023 --listen-local=/tmp/knx -B single -b usb:

                Das schalten mit knxtool groupswrite funktioniert anstandslos.

                Was mich ein wenig verwundert ist, das die IP Adresse 192.168.1.101 auftaucht obwohl doch die Loopback Adresse konfiguriert ist.

                Hier noch Infos über mein System:

                <size size="85">__Plattform: linux

                Die Architektur: arm

                CPUs: 1

                Geschwindigkeit: 700 MHz

                Modell: ARMv6-compatible processor rev 7 (v6l)

                RAM: 433.4 MB

                System uptime: 1 T. 03:06:49

                Node.js: v8.11.3

                NPM: 4.6.1

                Adapter zählen: 183

                Uptime: 23:49:58__</size>

                <size size="85">KNX Adapter ist die Version 1.0.15</size>

                Viele Grüße,

                Conny `

                nochmal… läuft KNXD am gleichen RPi ? wie ioBroker ? und im KNX Adapter hast du 127.0.0.1 eingetragen ? schonmal mit der eigentlichen IP versucht ?

                1 Reply Last reply Reply Quote 0
                • C
                  c-m-m last edited by

                  > nochmal… läuft KNXD am gleichen RPi ? wie ioBroker ? und im KNX Adapter hast du 127.0.0.1 eingetragen ? schonmal mit der eigentlichen IP versucht ?
                  Ja läuft beides auf demselben RPi. Die eigentliche IP habe ich auch schon probiert.

                  > So, also wenn du nur KNXTool verwendest siehst du auch den Status der einzelnen Schalter. Siehst du auch den Status der Schalter wenn du den Lichtschalter manuell betätigst ? Das heisst wenn du ihn betätigst ändert sich der Status im Tool ?
                  Mit grouplisten sehe ich wenn ich einen Schalter betätige.

                  > Bzgl. USB - muss nochmal suchen- bilde ich mir ein, dass es da Schwierigkeiten mit dem Senden und Empfangen gibt. Im FHEM Forum gibts da ja auch paar Threads. Ich verwende ein IP Gateway das ich via ETS 5.5 programmiert habe, aber den Status der Schalter/Taster nicht in den ioBroker bekomme wenn ich den Taster manuell betätige. Wenn das aber bei dir funzt dürfte ich mir die Konfig deiner ETS KNXprj. Datei mal ansehen ?
                  Es hat jetzt gelegentlich mal funktioniert, das ich aus ioBroker heraus eine Lampe schalten konnte. Ich habe das Gefühl das es so lange funktioniert bis knxd etwas an ioBroker schickt. Jedenfalls sobald ich einen Taster betätige kann ich danach nichts mehr mit ioBroker schalten. Eine Statusänderung sehe ich in ioBroker auch nicht.

                  > @c-m-m: starte mal bitte den knxd ohne "-R".
                  Das bring bei mir keine Änderung.

                  Ich habe das Gefühl, dass ich es hier mit zwei Bugs zu tun habe, einen im KNX Adapter, sodass die empfangenen L_Data.ind nicht mit einem ACK bestätigt werden. Der andere Bug scheint in knxd zu liegen. Hier bekomme ich teilweise USB timeouts und die Version 0.14 stürzt sogar gelegentlich ab.

                  1 Reply Last reply Reply Quote 0
                  • W
                    WolleGee last edited by

                    Hallo

                    habe für meine Rollos ua folgende GA´s:

                    Wohnzimmer Großes Fenster auf\ab (relativ, dies benötige ich für die Taster)

                    Wohnzimmer Großes Fenster Status

                    Wohnzimmer Großes Fenster Absolute Position (dies nutze ich zb. in meiner Vis)

                    Nun ist es so das bei einen Import die GA auf\ab und Status als Pärchen erkannt werden, dann haut allerdings der Status in vis nicht mehr hin sobald ich diesen am Taster ändere.

                    Also habe ich manuell die Absolute GA und die Status GA zuzammen geführt, nur leider überschreibt ein neuer Import Vorgang diese Einstellung immer wieder. Habe bereits auf node 8 aktualisert und beim Importieren den Haken bei nur neue Objekte Importieren gesetzt, ohne Erfolg.

                    Kann ich noch etwas ändern?!

                    Gruß Wolfgang

                    1 Reply Last reply Reply Quote 0
                    • C
                      Centurytt last edited by

                      Gibts jemanden bei dem der KNX Adapter die Zuweisungen der DatenPunkte aus ETS ordnungsgemäß macht ? und das KNX Projekt im ETS programmiert wurde ? Würde mir das KNXproj. File gerne mal ansehen um zu sehen was ich falsch mache ?

                      Danke

                      lg

                      Tom

                      1 Reply Last reply Reply Quote 0
                      • H
                        herbser last edited by

                        Hallo,

                        ich habe nach einem Crash meiner alten IOBROKER-Installation auf einem Raspi 3 eine Instanz mit dem fertigen Image (Homematic All-In-One mit piVCCU) neu aufgesetzt. Soweit funktioniert alles… nur leider der KNX-Adapter nicht, der früher aber ohne Probleme funktioniert hat...

                        Installiert ist der KNX-Adapter in Version 1.0.15 - aber er startet einfach nicht....

                        Wenn man auf die Instanz zur Konfiguration klickt, kommt die Fehlermeldung: File index_m.html not found

                        Jemand ggf. Lust zu helfen bzw. einen Tipp für mich ?

                        Danke !!!

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

                          Hast du einen Adapter Upload gemacht?

                          1 Reply Last reply Reply Quote 0
                          • H
                            herbser last edited by

                            Hi, ich habe den Adapter einfach per GUI installiert… --> Adapter von GitHub installieren oder aktualisieren .. Auswahl knx...

                            --> Kommando-Ausführung: $ ./iobroker url "https://github.com/ioBroker/ioBroker.knx/tarball/master" knx

                            Habe den Adpater auch schon deinstalliert und neu installiert... ohne Erfolg.
                            4699_14-08-_2018_23-28-58.jpg

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

                              Probier doch bitte noch im Admin Adapter den KNX Adapter Upload (rechts der Pfeil nach oben).

                              Ansonsten beten und auf Chefkoch009 hoffen.

                              😉

                              1 Reply Last reply Reply Quote 0
                              • H
                                herbser last edited by

                                Habe den Pfeil zwar nicht in der GUi gefunden…. aber ich habe per SSH den KNX Adapter nachgeladen..

                                Hat aber auch nicht geholfen....

                                pi@All-In-One_RasPi:~ $ cd /opt/iobroker

                                pi@All-In-One_RasPi:/opt/iobroker $ sudo iobroker upgrade knx

                                Adapter "knx" is up to date.

                                pi@All-In-One_RasPi:/opt/iobroker $ sudo iobroker upload knx

                                got /opt/iobroker/node_modules/iobroker.knx/admin

                                upload [0] knx.admin /opt/iobroker/node_modules/iobroker.knx/admin/knx.png knx.png image/png

                                Adapter "system.adapter.knx.0" restarted.

                                pi@All-In-One_RasPi:/opt/iobroker $

                                pi@All-In-One_RasPi:/opt/iobroker $ sudo iobroker restart

                                Stopping iobroker controller daemon…

                                iobroker controller daemon stopped.

                                Starting iobroker controller daemon...

                                iobroker controller daemon started. PID: 19241

                                Gesendet von meinem F5321 mit Tapatalk

                                1 Reply Last reply Reply Quote 0
                                • C
                                  c-m-m last edited by

                                  Also ich habe nun das folgende reproduzierbare Verhalten:

                                  Wenn sich der Adapter laut log verbunden hat, kann ich aus ioBroker heraus schalten.

                                  Das geht so lange gut, bis sich irgendetwas auf dem Bus tut. Also ich zum Beispiel einen Schalter drücke.

                                  Der State Change wird mir in ioBroker nicht angezeigt. Wenn ich danach aus ioBroker etwas schalte,

                                  passiert nichts. Wenn ich allerdings warte bis im Log steht, das wieder eine neue Verbindung aufgebaut wurde,

                                  kann ich wieder fröhlich schalten.

                                  Wie oben schon mal erwähnt, habe ich folgende Vermutung. KNXD sendet etwas an den Adapter, aber

                                  bekommt kein ACK. Darum schließt KNXD die Verbindung und nimmt auch bis zu einem erneuten Verbindungsaufbau

                                  keine Pakete mehr an.

                                  Wo finde ich eigentlich den aktuellen Code?

                                  Unter https://github.com/ioBroker/ioBroker.knx.git fehlt mir die Datei knx.js

                                  Und unter https://github.com/chefkoch009/iobroker.knx.git sind die Dateien 2 Jahre alt.

                                  1 Reply Last reply Reply Quote 0
                                  • T
                                    tombox last edited by

                                    @c-m-m:

                                    Also ich habe nun das folgende reproduzierbare Verhalten:

                                    Wenn sich der Adapter laut log verbunden hat, kann ich aus ioBroker heraus schalten.

                                    Das geht so lange gut, bis sich irgendetwas auf dem Bus tut. Also ich zum Beispiel einen Schalter drücke.

                                    Der State Change wird mir in ioBroker nicht angezeigt. Wenn ich danach aus ioBroker etwas schalte,

                                    passiert nichts. Wenn ich allerdings warte bis im Log steht, das wieder eine neue Verbindung aufgebaut wurde,

                                    kann ich wieder fröhlich schalten.

                                    Wie oben schon mal erwähnt, habe ich folgende Vermutung. KNXD sendet etwas an den Adapter, aber

                                    bekommt kein ACK. Darum schließt KNXD die Verbindung und nimmt auch bis zu einem erneuten Verbindungsaufbau

                                    keine Pakete mehr an.

                                    Wo finde ich eigentlich den aktuellen Code?

                                    Unter https://github.com/ioBroker/ioBroker.knx.git fehlt mir die Datei knx.js

                                    Und unter https://github.com/chefkoch009/iobroker.knx.git sind die Dateien 2 Jahre alt. `

                                    https://github.com/ioBroker/ioBroker.knx/issues/36

                                    Mach ein Issue auf github auf chefkoch wird sich dann darum kümmern, wenn er wieder Zeit hat.

                                    Breisgauer created this issue in ioBroker/ioBroker.knx

                                    closed Source Code public #36

                                    1 Reply Last reply Reply Quote 0
                                    • T
                                      tombox last edited by

                                      @WolleGee:

                                      Hallo

                                      habe für meine Rollos ua folgende GA´s:

                                      Wohnzimmer Großes Fenster auf\ab (relativ, dies benötige ich für die Taster)

                                      Wohnzimmer Großes Fenster Status

                                      Wohnzimmer Großes Fenster Absolute Position (dies nutze ich zb. in meiner Vis)

                                      Nun ist es so das bei einen Import die GA auf\ab und Status als Pärchen erkannt werden, dann haut allerdings der Status in vis nicht mehr hin sobald ich diesen am Taster ändere.

                                      Also habe ich manuell die Absolute GA und die Status GA zuzammen geführt, nur leider überschreibt ein neuer Import Vorgang diese Einstellung immer wieder. Habe bereits auf node 8 aktualisert und beim Importieren den Haken bei nur neue Objekte Importieren gesetzt, ohne Erfolg.

                                      Kann ich noch etwas ändern?!

                                      Gruß Wolfgang `
                                      Die GA besser benennen:

                                      Wohnzimmer Großes Fenster Absolute Position State

                                      Wohnzimmer Großes Fenster Absolute Position Status

                                      1 Reply Last reply Reply Quote 0
                                      • T
                                        tombox last edited by

                                        @herbser:

                                        Habe den Pfeil zwar nicht in der GUi gefunden…. aber ich habe per SSH den KNX Adapter nachgeladen..

                                        Hat aber auch nicht geholfen....

                                        Gesendet von meinem F5321 mit Tapatalk `

                                        Über die Adapter Seite eine alte Version installieren einfach das + drücken und 0.8.6 installieren und dann updaten.
                                        6513_knx.png

                                        1 Reply Last reply Reply Quote 0
                                        • C
                                          Centurytt last edited by

                                          ES GEHT ES GEHT jaaaaa…... der Downgrade auf die 0.8.6 hats voll gebracht. Bei mir funzt jetzt alles.....puhh 😄 😄 😄 😄 😄

                                          @all danke

                                          1 Reply Last reply Reply Quote 0
                                          • T
                                            tombox last edited by

                                            @Centurytt:

                                            ES GEHT ES GEHT jaaaaa…... der Downgrade auf die 0.8.6 hats voll gebracht. Bei mir funzt jetzt alles.....puhh 😄 😄 😄 😄 😄

                                            @all danke `

                                            Du solltest aber bitte im github ein issue aufmachen damit auch die neuste Version mit usb und knxd funktioniert

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            891
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            123
                                            1043
                                            294750
                                            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