NEWS
Test Adapter Contact v1.1.x
-
Aktuelle Test Version 1.1.2 Veröffentlichungsdatum 07.01.2020 Github Link https://github.com/WLAN-Kabel/ioBroker.contact NPM Link https://www.npmjs.com/package/iobroker.contact Da es einen Wunsch nach einem Contact Adapter gab, habe ich mich mal dran gesetzt und möchte euch nun darum bitten, diesen zu test.
Funktionen
- lädt eure Kontakte aus eurem Google Konto in ioBroker
- Rückwärtssuche von Kontakten (Telefonnummer eingeben, Kontakt erhalten)
Konfiguration
Damit Ihr den Adapter verwendet könnt, benötigt ihr einen API Key.Wichtig: Sollte dein ioBroker nicht lokal laufen, musst du zunächst noch folgende Schritte durchführen:
API Key besorgen:
- Gehe auf https://console.cloud.google.com/apis/dashboard und logge dich mit deinem Google Account ein.
- Öffne die Liste in der Kopfzeile und erstelle im sich öffnenden Fenster ein neues Projekt.
- Gib einen Namen ein und klicke auf erstellen. Beispielname: "ioBroker"
- Gehe sicher, dass du das richtige Projekt in der Liste ausgewählt hast.
- Öffne den Tab "Bibliothek" und suche dort nach "people".
- Wähle den Eintrag "Google People API" und klicke auf "aktivieren".
- Klick auf "APIs & Dienste" und öffne den Tab "OAuth-Zustimmungsbildschirm".
- Schreibe dort einen Namen und speichere die Seite ab.
- Öffne den Tab"Anmeldedaten" und klicke auf "Anmeldedaten erstellen".
- Wähle "OAuth-Client-ID" und im nächsten Fenster "Webanwendung".
- Trage dort einen Namen ein z.B. "ioBroker" oder "Webclient".
- Füge "JavaScript Quellen" folgenden Eintrag hinzu:
http://<FQDN aus Adapterconfig>:<Port aus Adapterconfig>
- Füge bei "Authorisierte Rediret URIs" folgende Einträge hinzu:
http://<FQDN aus Adapterconfig>:<Port aus Adapterconfig>/google
undhttp://<FQDN aus Adapterconfig>:<Port aus Adapterconfig>/google/
- Speichere diese Seite und kopiere dir die darauf angezeigte Client ID sowie das Client Secret.
- Füge beide in die Adapterconfig ein und starte den Adapter.
Authentifizieren:
Schaue im Log nach, dort wird dir ein Link mitgeteilt, über den du dich Authentifizieren kannst. Sollte alles gut gehen, steht am Ende ein "Done" im Browser Fenster.
Changelog
1.1.3 (2020-01-23)
- Staterollen wurden auf Offizielle geändert
- Deprecation von Buffer behoben
- Fehlerbehandlung vom HTTP-Server hinzugefügt
1.1.2 (2020-01-07)
- Der Server wird beim beenden gestoppt
- Adapter aus den Statuseinstellungen entfernt
1.1.1 (2020-01-06)
- Cron job wird beim beenden des Adapters gestoppt
- Problem behoben, bei dem nicht alle States gelöscht wurden
- Einige Debugnachrichten hinzugefügt
1.1.0 (2020-01-05)
- sendTo() wird jetzt unterstützt
- Problem behoben, bei dem Straßen in die Rolle geschrieben werden
- Problem behoben, bei dem Kontakte beim Aktualisieren gelöscht werden
1.0.1 (2019-12-29)
- Problem mit Unternehmen in Google-Kontakten behoben
- 'undefined' von fullName entfernt, wenn ein Name fehlt
- Adapter hängt nicht mehr beim Aktualisieren auf
- Nextcloud-Standardkennwort geändert, da das alte Kennwort Nachrichten verursachte
1.0.0 (2019-12-23)
- Nextcloud Kontakte wurden hinzugefügt
- Neuer DP fullName bei der Suche sowie bei allen Kontakten
- FDQN und Intervall wurden auf die Hauptseite verschoben
- Channelnamen für addresses, emailAddresses und phoneNumbers wurden geändert
- Neuer DP type für emailAddresses und phoneNumbers
0.0.3 (2019-12-21)
- Der Standard-Ländercode kann jetzt selbst ausgewählt werden.
0.0.2 (2019-12-21)
- Es wurde ein Problem behoben, durch das die Suche eingeschränkt wurde.
- Begrenzung von 100 Kontakten wurde entfernt.
0.0.1 (2019-12-17)
- Erstveröffentlichung
Datenpunkte
contact.0.Datenpunkt Beschreibung query Dort wird die Rufnummer eingetragen, nach der gesucht werden soll familyName Familienname des Kontaktes, der gesucht wurde (kann direkt für die VIS genutzt werden) givenName Vornamename des Kontaktes, der gesucht wurde (kann direkt für die VIS genutzt werden) photo Foto des Kontaktes, der gesucht wurde (kann direkt für die VIS genutzt werden) id ID des Kontaktes, der gesucht wurde (kann in der nachfolgenden Tabelle bei <id> eingesetzt werden, für Scripte interessant) contact.0.<id>.
Datenpunkt Beschreibung familyName Familienname des Kontaktes givenName Vornamename des Kontaktes photo Foto des Kontaktes addresses.* Adressen des Kontaktes emailAddresses.* Emailadressen des Kontaktes phoneNumbers.* Rufnummern des Kontaktes Javascript
An den Adapter kann persendTo()
eine Anfrage geschickt werden, so wie es auch der query Datenpunkt macht, jedoch erhalt man dadurch ein JSON Object zurück, das man in einem Skript verarbeiten kann (Wurde auch schon genutzt: https://forum.iobroker.net/topic/28294/asynchron-callback-promise-await-hilfe.sendTo('contact.0', 'query', {phonenumberr: '+49 1234 567890'}, (obj) => { if(obj.error) { log(obj.error); } else { log(JSON.stringify(obj.contact)); } });
Für weitere Ideen und Vorschläge bin ich offen und freue mich auf eure Hilfe.
Ihr müsst nicht zwingend hier Kommentieren, sondern könnt dies auch auf Github tun.
Vielen Dank im Vorraus
Todo
*Hilfe
Wer Probleme bei der Konfiguration hat, kann auch mal im folgenden Thread vorbeischauen, dort wurden schon ein paar Probleme erleutert (https://forum.iobroker.net/topic/27136/ideensammlung-kalender-adapter-google-outlook/29). Der Adapter verwendet die gleiche Vorgehensweise bezüglich des API Keys und Authetifizierung. -
Version 0.0.2
- Es wurde ein Problem behoben, durch das die Suche eingeschränkt wurde.
- Begrenzung von 100 Kontakten wurde entfernt.
-
0.0.1 wurde grün
Bei der 0.0.2 kommt Fehler:
host.Asus-Buero 2019-12-19 20:40:02.633 error instance system.adapter.contact.0 terminated with code 1 () host.Asus-Buero 2019-12-19 20:40:02.633 error Caught by controller[0]: at Function.Module._load (module.js:498:3) host.Asus-Buero 2019-12-19 20:40:02.633 error Caught by controller[0]: at tryModuleLoad (module.js:506:12) host.Asus-Buero 2019-12-19 20:40:02.633 error Caught by controller[0]: at Module.load (module.js:566:32) host.Asus-Buero 2019-12-19 20:40:02.633 error Caught by controller[0]: at Object.Module._extensions..js (module.js:664:10) host.Asus-Buero 2019-12-19 20:40:02.633 error Caught by controller[0]: at Module._compile (module.js:653:30) host.Asus-Buero 2019-12-19 20:40:02.633 error Caught by controller[0]: at Object.<anonymous> (C:\ioBroker\node_modules\iobroker.contact\main.js:14:14) host.Asus-Buero 2019-12-19 20:40:02.633 error Caught by controller[0]: at require (internal/module.js:11:18) host.Asus-Buero 2019-12-19 20:40:02.633 error Caught by controller[0]: at Module.require (module.js:597:17) host.Asus-Buero 2019-12-19 20:40:02.633 error Caught by controller[0]: at Function.Module._load (module.js:475:25) host.Asus-Buero 2019-12-19 20:40:02.633 error Caught by controller[0]: at Function.Module._resolveFilename (module.js:548:15) host.Asus-Buero 2019-12-19 20:40:02.633 error Caught by controller[0]: Error: Cannot find module 'node-cron' host.Asus-Buero 2019-12-19 20:40:02.633 error Caught by controller[0]: host.Asus-Buero 2019-12-19 20:40:02.633 error Caught by controller[0]: ^ host.Asus-Buero 2019-12-19 20:40:02.633 error Caught by controller[0]: throw err; host.Asus-Buero 2019-12-19 20:40:02.633 error Caught by controller[0]: module.js:550
-
Instanz komplett gelöscht.
Und dann neu installiert.
google eingegeben.Adapter bleibt rot.
o.g. Fehler kommt weiterhin. -
@bahnuhr
Dort fehlt dir ein Modul, das anscheinend nicht installiert wurde.Geh einmal in den Ordner
C:\ioBroker\node_modules\iobroker.contact
und gib dortnpm install
ein.Ansonsten versuch den Adapter noch einmal neu zu installieren.
An den Abhängigkeiten wurde nichts geändert.
-
hat alles geklappt.
Musste dann aber wieder den browser cache löschen; erst dann konnte ich wieder die anmeldung bei google durchführen.
Aber dann hats geklappt.Der Adapter hat nun alle 260 Kontakte eingelesen.
Und auch die Abfrage mit query klappt nun.Bestens.
mfg
Dieter -
Nachfrage:
oben steht:
Eingabe bei query; dann wird der Name, etc. angezeigt.
-> Klappt auch.Aber umgedreht geht es nicht.
Also Eingabe des namens um die Nr. angezeigt zu bekommen.Ist dies noch angedacht ?
mfg
-
@bahnuhr sagte in Test Adapter Contact v0.0.x:
Aber umgedreht geht es nicht.
Also Eingabe des namens um die Nr. angezeigt zu bekommen.
Ist dies noch angedacht ?Da bin ich mir noch nicht sicher. Da ist dann auch ein paar Fragen die man sich stellen muss:
- Wie wird der Name eingegeben ("Nachname, Vorname", "Vorname Nachname", "Vorname Zweitname Nachname")?
- Alle Nummer, oder nur eine Ausgeben?
- Nummern in welchem Format ausgeben (Ursprung oder doch alle gleich formatiert?
Ich werde es im Hinterkopf behalten, weiß aber derzeit noch keine ideale Lösung.
-
@J-A-R-V-I-S
Ja, da hast du recht; ist ein Problem der Eingabe des namens.Jetzt geb mir aber nochmal einen Tipp.
Wenn ich nun in photo die url bekomme.Wie zeige ich diese dann in vis an.
hab zwar schon viel gemacht, steh aber gerade auf dem Schlauch.
-
@bahnuhr
Du nimmst ein Image Widget und trägst bei Quelle{contact.0.photo}
ein. -
@J-A-R-V-I-S sagte in Test Adapter Contact v0.0.x:
@bahnuhr
Du nimmst ein Image Widget und trägst bei Quelle{contact.0.photo}
ein.Das war mein 1. Versuch.
Dies klappt nicht. Das Bild wird nicht angezeigt.
(ausprobiert mit "basic.image") -
@bahnuhr
das basic Image Widget habe ich auch verwendet. Hat damit super geklappt.
Hier einmal mein Export:
Das Bild wird aber nicht im Edit Modus angezeigt, sondern nur beim Ansichtsmodus.
-
Du hast das gleiche Widget.
Bei mir ging es nicht, bei dir geht es.Hab auch den Unterschied gefunden.
Hatte den dp kopiert bei den Objekten.
Also wurde eingegeben:
contact.0.photoBei dir steht aber:
{contact.0.photo}Wieso hast du da { }.
diese hatte ich noch nie eingegeben ?
Komisch -
@bahnuhr
Damit bindest du das Objekt ein. Hier steht noch mehr dazu: Bindings of objectsAnderfalls würde er contact.0.photo als Pfad ansehen. Den gibt es allerdings nicht.
-
@J-A-R-V-I-S IMHO ist Kontakte bei Google zu halten suboptimal um nicht Scheiße zu sagen. Ich habe meine Kontakte in meiner Nextcloud. Über eine Möglichkeit diese anzubinden würde ich mich sehr freuen. Der Webdavlink sieht in etwa so aus:
https://nextcloud.meinedomain.de/remote.php/dav/addressbooks/users/a200/contacts/
Meine Kalender aus Nextcloud werden über den ical Adapter bestens importiert.
Danke für deinen Einsatz!
-
Ja, ich hab schon viel mit bindings gemacht.
Allerdings mehr so:
{v:hm-rpc.1.KEQ0048407.22.VALUE;((v/100)<3) ? "blue": ((v/100)<4) ? "yellow": ((v/100)<5) ? "orange": ((v/100)<6) ?
"red": ((v/100)<8) ? "#e633a6": "green"}Also Einstellung der Farbe, etc.
-
@a200 sagte in Test Adapter Contact v0.0.x:
IMHO ist Kontakte bei Google zu halten suboptimal um nicht Scheiße zu sagen.
Klasse Aussage; und so direkt.
Und dann stellt er auch noch einen Link ein der nicht funktioniert.Fazit von mir:
Der Adapter hier von jarvis ist seit Langem der beste Adapter für mich.
Bin seit 2 Jahren auf der Suche wie ich die Bilder angezeigt bekomme.von mir 100 Daumen wenn dies ginge.
mfg
-
Ich habe mir schon vorgenommen, den Adapter zu erweitern, aber alles Schritt für Schritt. Ich werde das gerne mit aufnehmen. Habe leider selber keine Nextcloud, werde aber mal schauen, was sich da machen lässt.
-
@bahnuhr sagte in Test Adapter Contact v0.0.x:
@a200 sagte in Test Adapter Contact v0.0.x:
IMHO ist Kontakte bei Google zu halten suboptimal um nicht Scheiße zu sagen.
Klasse Aussage; und so direkt.
Gut dass du es auch so siehst.
Und dann stellt er auch noch einen Link ein der nicht funktioniert.
Du willst doch nicht den Link zu meinen Kontakten, oder? Außerdem brauchst du ein Passwort. Und was hast du an meinem Satz " Der Webdavlink sieht in etwa so aus:" nicht verstanden?
Fazit von mir:
Der Adapter hier von jarvis ist seit Langem der beste Adapter für mich.
Bin seit 2 Jahren auf der Suche wie ich die Bilder angezeigt bekomme.von mir 100 Daumen wenn dies ginge.
Sage mir was im DP {contact.0.photo} steht und ich sage dir, wie du das Bild einbinden kannst. Ich habe mit Bindings schon einiges gemacht.
-
@J-A-R-V-I-S sagte in Test Adapter Contact v0.0.x:
Ich habe mir schon vorgenommen, den Adapter zu erweitern, aber alles Schritt für Schritt. Ich werde das gerne mit aufnehmen. Habe leider selber keine Nextcloud, werde aber mal schauen, was sich da machen lässt.
Gut. Du kannst einen Docker-Container nehmen oder ich kann dir ein Account auf meinem nextcloud Server zum Testen geben. Melde dich, wenn du die Zeit hast die CARTDAV-Schnittstelle zu bauen. Ich würde dich nach Kräften unterstützen.