Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Neuer Adapter vCard

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Neuer Adapter vCard

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

      Hallo,

      ich habe einen neuen Adapter erstellt, und möchte diesen hier vorstellen.

      Es handelt sich hierbei um einen Adapter für vCard Adressbücher (vCard V:3.0). Diesen Adapter habe ich erstellt, um die Ausgaben des fritzbox-Adapters als ‚Namen‘ darstellen zu können. (Ursprünglich hatte ich dies direkt im fritzbox-Adapter getan). Beim Adapter-Start wird die vCard Datei einmalig eingelesen. Geburtstage werden automatisch um 0:01Uhr geprüft und ausgegeben. Eine Kurzanleitung (englisch) im README.MD.

      Nebenbei dient der Adapter auch als Adressbuch mit Suchfunktion.
      544_vcard.png

      544_vcard1.png

      544_vcard2.png

      Wer möchte kann den Adapter gerne testen, und mit Feedback geben. Aktuell ist er allerdings ‚nur‘ (erfolgreich) Entwickler-Getestet. Wenn das ganze ausgereift ist, werde ich es auf github stellen.

      PS das Wiki zur Adaptererstellung auf ioBroker.net ist sehr gut.

      Tobias

      1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators last edited by

        Ich habe da noch gar kein wiki erstellt.[CRYING FACE]

        Aber ich würde es gern, wenn ich es könnte.

        Gruß

        Rainer

        Gesendet von meinem LIFETAB_S785X mit Tapatalk

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

          das Wiki lag auf github 🙂

          https://github.com/ioBroker/ioBroker/wi … buntu-1404

          1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators last edited by

            Danke,

            dann werde ich mal sehen, dass ich sie dahin bringe.

            http://www.iobroker.net/docu/?page_id=1786&lang=de

            Und übersetze.

            Gruß

            Rainer

            Gesendet von meinem LIFETAB_S785X mit Tapatalk

            1 Reply Last reply Reply Quote 0
            • S
              steinwedel last edited by

              Wollte Deinen Adapter testen. Leider habe ich nicht rausgefunden, wie ich ihn installieren kann. Könntest Du mir einen Tip geben? Danke.

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

                es sollte reichen, wenn du das Verzeichnis "ipBroker.vcard" nach "ioBroker/node_modules" kopierst. Anschließend auf der ioBroker-Adminseite den "update" Button anklicken. Dann solltest du den Adapter unter "media" sehen.

                1 Reply Last reply Reply Quote 0
                • L
                  looxer01 last edited by

                  Hi,

                  ich habe den Adapter erfolgreich installiert und folgendes getan:

                  • Fritzbox Telefonbuch als xml runtergeladen

                  • Vcards erzeugt mit dem tool aus dem folgenden link: http://software.nv-systems.net/downloads/Contact Conversion Wizard v3.5.0.0.zip

                  • den Pfad eingegeben im Config von Vcard.

                  so, und jetzt stehe ich auf dem Schlauch. Welche Widgets nutzt du ? z.B. um eine Telefonnummer umzuwandeln aus dem Fritzbox adapter ?

                  Wie verwendest du die Suche ?

                  vG L…

                  EDIT:

                  gerade gesehen, dass ich Fehler im LOG habe. könnte es eine falsche vCard version sein ?

                  allerdings steht im Header der vCard Datei 3.0 - also sollte das stimmen

                  raspberrypi	2015-09-19 11:47:49	info	host.raspberrypi Restart adapter system.adapter.vcard.0 because enabled
                  raspberrypi	2015-09-19 11:47:49	error	host.raspberrypi instance system.adapter.vcard.0 terminated with code 6 (uncaught exception)
                  vcard.0	2015-09-19 11:47:49	error	TypeError: Cannot read property 'length' of null at getTodayBirthdayPersons (/opt/iobroker/node_modules/iobroker.vcard/vcard.js:320:38) at /opt/iobroker/node_modules/iobroker.vcard/vcard.js:12
                  vcard.0	2015-09-19 11:47:49	error	uncaught exception: Cannot read property 'length' of null
                  vcard.0	2015-09-19 11:47:49	error	vcard.0 Error reading vcards: Error: ENOENT, open 'C:\Users\Ellen\Desktop\Homematic\IOBroker\BackUp\vCard\vCard Export.vcf'
                  vcard.0	2015-09-19 11:47:49	info	vcard.0 starting. Version 0.0.1 in /opt/iobroker/node_modules/iobroker.vcard
                  raspberrypi	2015-09-19 11:47:45	info	host.raspberrypi instance system.adapter.vcard.0 started with pid 4649
                  raspberrypi	2015-09-19 11:47:30	info	host.raspberrypi Restart adapter system.adapter.vcard.0 because enabled
                  raspberrypi	2015-09-19 11:47:30	error	host.raspberrypi instance system.adapter.vcard.0 terminated with code 6 (uncaught exception)
                  
                  

                  EDIT2: eine Vcard sieht so aus in der Datei:

                  BEGIN:VCARD

                  VERSION:3.0

                  N:Ulrike B;;;;

                  FN:Ulrike B

                  TEL;type=HOME;type=pref:0xxxxxxxx

                  NOTE:SPEEDDIAL(07)

                  END:VCARD

                  1 Reply Last reply Reply Quote 0
                  • S
                    steinwedel last edited by

                    Danke für den Tip mit der Installation. Ich war der irrigen Annahme, das der Adapter über die Funktion "Installieren aus eigenem URL" installiert werden kann.

                    Mir ist aufgefallen, dass in der Adapteransicht kein Icon angezeigt wird (Es wird ein Fragezeichen angezeigt). Wahrscheinlich ein Fehler im Pfad.

                    Das Bild soll sich an folgender Stelle befinden: http://meinserver:8081/adapter/iobroker.vcard/vcard.png

                    In der Instanzenansicht wird ein Bild angezeigt. Der Pfad lautet hier: http://meinserver:8081/adapter/vcard/vcard.png

                    In meinen Augen dürfte es Sinn machen, wenn der Adapter auch CardDAV unterstützt. Dann hätte ich einen automatischen Abgleich.

                    1 Reply Last reply Reply Quote 0
                    • L
                      looxer01 last edited by

                      also,ich habe noch ein wenig gestestet und bekomme immer den gleichen Fehler

                      raspberrypi	2015-09-19 14:11:30	error	host.raspberrypi instance system.adapter.vcard.0 terminated with code 6 (uncaught exception)
                      vcard.0	2015-09-19 14:11:30	error	TypeError: Cannot read property 'length' of null at getTodayBirthdayPersons (/opt/iobroker/node_modules/iobroker.vcard/vcard.js:320:38) at /opt/iobroker/node_modules/iobroker.vcard/vcard.js:12
                      vcard.0	2015-09-19 14:11:30	error	uncaught exception: Cannot read property 'length' of null
                      vcard.0	2015-09-19 14:11:30	error	vcard.0 Error reading vcards: Error: ENOENT, open 'http://192.168.0.62/vCard Export.vcf'
                      
                      

                      Die Datei exisitiert definitv im Pfad und ich kann sie auch über den Browser aufrufen.

                      Ich habe einen Raspi. Kann es sein, dass es irgendwie ein Problem bei der http Pfad Verwendung gibt ?

                      vG L…

                      1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators last edited by

                        Wenn du die datei da hereinkopiert hast, könnte es sein , dass die rechte nicht passen.

                        Ggf. Anpassen

                        Gesendet von meinem LIFETAB_S785X mit Tapatalk

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

                          @steinwedel:

                          • Danke für den Hinweis mit dem Bild. Ich werde das fixen

                          • Ursprünglich wollte ich auch das Google-Adressbuch unterstützen. Da mir aktuell aber die rechtliche Seite (und paar technische Details) unklar sind, ist es erstmal nicht mit drin.

                          @looxer01:

                          • in der aktuellen Version unterstützt der Adapter nur vCard-Dateieln, welche lokal (oder auf einem Netzlaufwerk) liegen. Zugriff über http kommt später.

                          • das Format deiner Datei sollte passen. Zur Info, wenn die Datei erfolgreich eingelesen wurde, kommt im log:

                          "vcard.0 2015-09-19 14:33:29 info vcard.0 Found 51 vcards in file".

                          • Zum Test verwende ich folgende Widgets. Ausgaben mache ich mit "basic - string (unescaped)". Die Eingaben mit dem Widget " jqui - input", oder direkt per Skript im Input-Objekt. Das Input-Widget ist nicht perfekt für diese Anwendung- er da ich keine Widgets erstellen kann, habe ich dieses dennoch verwendet.

                          Tobias

                          1 Reply Last reply Reply Quote 0
                          • L
                            looxer01 last edited by

                            @hometm:

                            • in der aktuellen Version unterstützt der Adapter nur vCard-Dateieln, welche lokal (oder auf einem Netzlaufwerk) liegen. Zugriff über http kommt später. `

                            daraus würde ich schliessen, dass ich folgendes eingeben muesste:

                            /opt/iobroker/iobroker-data/files/VcardData/vCard Export.vcf

                            also den direkten Pfad. Allerdings bekomme ich dann folgenden Fehler:

                            raspberrypi	2015-09-19 15:13:01	error	host.raspberrypi instance system.adapter.vcard.0 terminated with code 6 (uncaught exception)
                            vcard.0	2015-09-19 15:13:01	error	TypeError: Cannot set property 'fullname' of undefined at EventEmitter.attributeMatched (/opt/iobroker/node_modules/iobroker.vcard/node_modules/vcard-json/lib/vcard-json.js:72:24) at EventEmit
                            vcard.0	2015-09-19 15:13:01	error	uncaught exception: Cannot set property 'fullname' of undefined
                            
                            

                            PS: Zugriffsrechte (0777) sind gesetzt
                            6305_backup_error.png

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

                              nach dem Start des Adapters solltest du diese Erfolgsmeldung:

                              "vcard.0 2015-09-19 14:33:29 info vcard.0 Found 51 vcards in file"

                              oder eine Fehlermeldung

                              zum Beispiel "vcard-0 2015-09-19 14:57:33 error Error reading vcards: Error: ENOENT, open 'c:\vCards.vcf'"

                              sehen.

                              Kannst du bitte einmal nach der Fehlermeldung suchen?

                              1 Reply Last reply Reply Quote 0
                              • L
                                looxer01 last edited by

                                Hi,

                                also eingelesen wird das File nicht. Daher bekomme ich auch nicht die Erfolgsmeldung.

                                Wenn ich einen ungültigen Pfad eingebe, dann bekomme ich sowas: error vcard.0 Error reading vcards: Error: ENOENT, open 'http://192.168.0.62/vCard Export.vcf'

                                Wenn ich den Pfad direkt eingebe wie im Raspi gespeichert, dann bekomme ich diese Fehler:

                                raspberrypi	2015-09-19 15:26:36	info	host.raspberrypi Restart adapter system.adapter.vcard.0 because enabled
                                raspberrypi	2015-09-19 15:26:36	error	host.raspberrypi instance system.adapter.vcard.0 terminated with code 6 (uncaught exception)
                                vcard.0	2015-09-19 15:26:36	error	TypeError: Cannot set property 'fullname' of undefined at EventEmitter.attributeMatched (/opt/iobroker/node_modules/iobroker.vcard/node_modules/vcard-json/lib/vcard-json.js:72:24) at EventEmit
                                vcard.0	2015-09-19 15:26:36	error	uncaught exception: Cannot set property 'fullname' of undefined
                                vcard.0	2015-09-19 15:26:36	info	vcard.0 starting. Version 0.0.1 in /opt/iobroker/node_modules/iobroker.vcard
                                raspberrypi	2015-09-19 15:26:35	info	host.raspberrypi instance system.adapter.ical.0 terminated with code 0 (OK)
                                raspberrypi	2015-09-19 15:26:33	info	host.raspberrypi instance system.adapter.vcard.0 started with pid 6407
                                
                                

                                EDIT: gerade erst gesehen, dass es doch noch mehr Hinweise im LOG gibt:

                                TypeError:	2015-09-19 16:10:24	error	at Object.oncomplete (fs.js:107:15)
                                TypeError:	2015-09-19 16:10:24	error	at fs.js:266:14
                                TypeError:	2015-09-19 16:10:24	error	at /opt/iobroker/node_modules/iobroker.vcard/node_modules/vcard-json/lib/vcard-json.js:61:26
                                TypeError:	2015-09-19 16:10:24	error	at parseVcard (/opt/iobroker/node_modules/iobroker.vcard/node_modules/vcard-json/lib/vcard-json.js:23:5)
                                TypeError:	2015-09-19 16:10:24	error	at Function._.each._.forEach (/opt/iobroker/node_modules/iobroker.vcard/node_modules/vcard-json/node_modules/underscore/underscore.js:153:9)
                                TypeError:	2015-09-19 16:10:24	error	at /opt/iobroker/node_modules/iobroker.vcard/node_modules/vcard-json/lib/vcard-json.js:40:7
                                TypeError:	2015-09-19 16:10:24	error	at Function._.each._.forEach (/opt/iobroker/node_modules/iobroker.vcard/node_modules/vcard-json/node_modules/underscore/underscore.js:158:9)
                                TypeError:	2015-09-19 16:10:24	error	at /opt/iobroker/node_modules/iobroker.vcard/node_modules/vcard-json/lib/vcard-json.js:45:12
                                TypeError:	2015-09-19 16:10:24	error	at EventEmitter.emit (events.js:106:17)
                                TypeError:	2015-09-19 16:10:24	error	at EventEmitter.attributeMatched (/opt/iobroker/node_modules/iobroker.vcard/node_modules/vcard-json/lib/vcard-json.js:72:24)
                                TypeError:	2015-09-19 16:10:24	error	Cannot set property 'fullname' of undefined
                                uncaught	2015-09-19 16:10:24	error	exception: Cannot set property 'fullname' of undefined
                                vcard-0	2015-09-19 16:10:24	info	starting. Version 0.0.1 in /opt/iobroker/node_modules/iobroker.vcard
                                vcard-0	2015-09-19 16:10:24	debug	statesDB connected
                                vcard-0	2015-09-19 16:10:24	debug	objectDB connected
                                Non	2015-09-19 16:10:23	info	npm module. No package.json
                                host-raspberrypi	2015-09-19 16:10:22	info	instance system.adapter.vcard.0 started with pid 6952
                                host-raspberrypi	2015-09-19 16:09:51	info	Restart adapter system.adapter.vcard.0 because enabled
                                
                                
                                1 Reply Last reply Reply Quote 0
                                • H
                                  hometm last edited by

                                  Hallo looxer01,

                                  die Probleme sollten behoben sein.

                                  Die aktuelle Version kannst du mit "npm install iobroker.vcard" installieren

                                  Tobias

                                  1 Reply Last reply Reply Quote 0
                                  • L
                                    looxer01 last edited by

                                    ….bin gerade unterwegs und ab 17.10. wieder zurück und werde dann sofort testen. ...und ab in die Sonne .... 🙂

                                    1 Reply Last reply Reply Quote 0
                                    • L
                                      looxer01 last edited by

                                      'Hi Tobias,

                                      super, jetzt funktioniert es technisch erstmal - meine vcards werden eingelesen.

                                      Wenn ich das richtig verstanden habe, dann müsste ich jetzt als input eine Reihe von Telefonnummern einlesen und erhalte als output die korrespondierenden Namen.

                                      Ich würde das gerne mit dem Fritzbox adapter kombinieren. Im Idealfall: wenn eine Rufnummer in vcard gespeichert ist, dann soll der name angezeigt werden, ansonsten die Nummer.

                                      305_fritz.jpg

                                      Hast du das schon umgesetzt ? und wenn könntest du ggf das entsprechende Widget bzw script zur Verfügung stelen ?

                                      vG

                                      L…

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

                                        Hallo looxer01,

                                        hier die Lösung:

                                        Ich habe das Widget "basic-string (unescaped)" verwendet. Das Widget zeigt den Output "vcard.0.Outputs.ReplacedPhoneNumbers" an.

                                        Mit dem folgenden Skript kopiere ich den Output vom Fritzbox-Adapter zum vCard-Adapter.

                                        subscribe({
                                            id: "fritzbox.0.history.allTableHTML"/*history of calls as HTML*/,
                                            change: 'ne'
                                        },function(data){func(data)});
                                        
                                        function func(data)
                                        {
                                            var x=getState("fritzbox.0.history.allTableHTML").val;
                                            setState("vcard.0.Inputs.ReplacePhoneNumbers"/*String source*/, x);
                                        }
                                        
                                        

                                        Das ganze funktioniert so wie du vermutest. Wenn die Nummer bekannt ist, wird der Name im Widget angezeigt.

                                        In der nächsten Version (weiß noch nciht wann ich dazu komme) soll das ganze auch ohne das Skript funktionieren.

                                        Tobias

                                        1 Reply Last reply Reply Quote 0
                                        • B
                                          Brati last edited by

                                          Hallo,

                                          das funktioniert ja perfekt. Hab das Script auf "fritzbox.0.history.missedTableHTML" geändert. Kann man noch intergrieren, dass der Namens String immer gleich lang ist, z.B. 20 Zeichen einnimmt? Dann ist die Tabelle ordentlich formatiert. Jetzt sieht es ja so aus:

                                          ext. Rufnummer…......Eigenes Amt

                                          Max Mustermann.........blabla

                                          Muddi.........blabla

                                          Will Lustig.........blabla

                                          Zum Export der Vcard: Wer Google nutzt, kann die auch gut direkt dort aus den dortigen Kontakten exportieren. Ich hab sie dann aufs NAS gelegt und Verzeichnis gemountet.

                                          Grüße

                                          Brati

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

                                            Hallo,

                                            gute Idee mit der festen Spaltenbreite. Habe auch schon eine Idee, wie ich es in der nächsten Version machen werde

                                            Tobias

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            454
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            23
                                            128
                                            24099
                                            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