Neues Modul: Nello

Begonnen von neumann, 06 August 2017, 20:15:41

Vorheriges Thema - Nächstes Thema

neumann

Hallo zusammen,

wie bereits angekündigt habe ich ein natives Modul für den Chip nello one entwickelt, der Gegensprechanlagen steuerbar macht.
Die Steuerung ist leider nur über eine Cloud-Verbindung möglich - die Events kommen dank MQTT allerdings fast in Echtzeit (sobald man die Geräte-ID erkannt hat).

Funktionen des Moduls:

  • Öffnen der Gebäudetür
  • Ereignisse über Öffnen, Klingeln & co

Zum Setup:
Um das Modul aufzusetzen, muss zunächst ein neuer Nutzer mit Admin-Rechten in der Nello-App angelegt werden, der nur für FHEM verwendet wird - eine Nutzung per App ist mit diesem Account dann nicht mehr möglich.
Anschließend kann das Gerät angelegt werden. Sobald das Gerät erstellt wurde, kann der Login durchgeführt werden.

Sollte der Login fehlschlagen, versucht das Passwort über die recoverPassword Funktion zurückzusetzen.

Dringend empfohlen: Für verzögerungsfreie Events die detectDeviceID Funktion nach dem Login aufrufen. Diese erkennt durch Öffnen der Tür die ID und erzeugt Hilfsgeräte, die die Events an das Modul melden.

Benötigte Pakete:

sudo apt-get install libcpan-meta-yaml-perl
sudo cpan -i Net::MQTT::Simple


Ansonsten kann das Modul dann wie dokumentiert benutzt werden.

Ich freue ich auf euer Feedback!


Liebe Grüße
Oskar
Modulentwickler
- Spotify #72490
- Nello #75127

micomat

Danke :) Werde im Urlaub testen.
Synology DS218+ with fhem+iobroker in docker, 2x RasPi w. ser2net, CUL433+868, IT, EGPM2LAN, THZ/LWZ, FB_Callmonitor, HMS100TF, Homematic, 2x TX3-TH, Pushover, USB-IR-SML-Head, SONOS, GHoma, MBus, KLF200

columb

Hi,
habe mein nello auch gerade bekommen und habe großes Interesse an deinem Modul. nur weiß ich leider nicht wie ich es installieren soll. kannst du eine ausführliche Anleitung schreiben? danke!

volschin

Hast Du Dir denn schon mal die Mühe gemacht und die commandref gelesen? Dann könntest Du vielleicht präzisieren, was Dir nicht klar ist.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

Zephyr

Hallo zusammen,

gestern den Nelly bekommen und eingebaut. Funzt super mit der App. Nun möchte ich das Teil natürlich noch in FHEM haben.  ;O)
Also habe ich gestern meine FHEM-Testinstallation gleich auf die aktuelle SVN-Version gebracht.

Die notwendigen Module zu installieren war fast problemlos. Vielleicht ein Hinweis für die commandref: Unter Debian 8.4 musste ich noch zusätzlich das Perl-Modul libcpan-meta-yaml-perl installieren:
sudo apt-get install libcpan-meta-yaml-perl

Da ich den Account unter iOS angelegt  habe, musste ich tatsächlich die Recover password Funktion der App benutzen und bekam ein Passwort zugeschickt, mit dem ich mich einloggen konnte. Der Login klappte dann auch problemlos.

Ein Problem tauchte auf, als ich "detectDeviceID" ausprobieren wollte. Dann stürzte nämlich FHEM ab und gab folgende Fehlermeldungen aus:
2017.08.08 20:55:21 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/31_Nello.pm line 228.
2017.08.08 20:55:31 3: nello_Kameruner: login failed
2017.08.08 20:57:04 3: nello_Kameruner: login failed
2017.08.08 21:06:35 3: nello_Kameruner: login successful
2017.08.08 21:06:44 3: nello_Kameruner: login successful
2017.08.08 21:06:52 3: nello_Kameruner: opening door to detect device ID now.
2017.08.08 21:06:53 3: nello_Kameruner: opened
2017.08.08 21:06:53 3: nello_Kameruner: opened
Undefined subroutine &main::internalExists called at ./FHEM/31_Nello.pm line 140.


mit Verbose 5 kommt folgendes:
2017.08.08 21:21:49 4: DbLog dbl_orpheus -> processing event Timestamp: 2017-08-08 21:21:49, Device: nello_Kameruner, Type: NELLO, Event: login zephyr_allgemein@mac.com Karlsbad91:Wasser, Reading: state, Value: login zephyr_allgemein@mac.com Karlsbad91:Wasser, Unit:
2017.08.08 21:21:49 4: DbLog dbl_orpheus -> 1 of 1 events inserted into table history
2017.08.08 21:21:49 5: DbLog dbl_orpheus -> DbLog_Push Returncode: 0
2017.08.08 21:21:49 5: End notify loop for nello_Kameruner
2017.08.08 21:21:49 5: HttpUtils request header:
POST /login HTTP/1.0
Host: api.nello.io
User-Agent: fhem
Cookie: session=.eJwdyzEKwzAMAMC_aI7AsSVLymeCHMvQoaG4yVT690Jvvw_sr5hPP-O8YLvmHQs8OmxQjdQ0EkYxRcq5oVMdKG0tLmtlbQIL3O-Y-z8clplGUfTOGYkOQUtRcLBxeKIuleH7AyONHuM.DGugww.KtbK9yOz-37S8qMb7mRjgL2TWBI
Content-Length: 117
Content-Type: application/x-www-form-urlencoded


2017.08.08 21:21:49 5: Cmd: >{ReadingsVal("nello_Kameruner","detectDeviceID","")}<
2017.08.08 21:21:49 5: Cmd: >{AttrVal("nello_Kameruner","room","")}<
2017.08.08 21:21:54 5: Cmd: >set nello_Kameruner detectDeviceID<
2017.08.08 21:21:54 4: HttpUtils url=http://nello.oskar.pw/detectMQTT.php
2017.08.08 21:21:54 5: Starting notify loop for nello_Kameruner, 1 event(s), first is detectDeviceID
2017.08.08 21:21:54 5: createNotifyHash
2017.08.08 21:21:54 5: End notify loop for nello_Kameruner
2017.08.08 21:21:54 5: HttpUtils request header:
GET /detectMQTT.php HTTP/1.0
Host: nello.oskar.pw
User-Agent: fhem

2017.08.08 21:21:54 5: Cmd: >{ReadingsVal("nello_Kameruner","detectDeviceID","")}<
2017.08.08 21:21:54 5: Cmd: >{AttrVal("nello_Kameruner","room","")}<
2017.08.08 21:21:56 3: nello_Kameruner: opening door to detect device ID now.
2017.08.08 21:21:56 4: HttpUtils url=https://api.nello.io/locations/1ea3e447-3757-4b80-9f20-fcd0196623ef/users/c9254f38-ad52-44c7-90e3-f595ea04d765/open
2017.08.08 21:21:56 4: HttpUtils url=https://api.nello.io/locations/1ea3e447-3757-4b80-9f20-fcd0196623ef/users/c9254f38-ad52-44c7-90e3-f595ea04d765/open
2017.08.08 21:21:56 5: HttpUtils request header:
POST /locations/1ea3e447-3757-4b80-9f20-fcd0196623ef/users/c9254f38-ad52-44c7-90e3-f595ea04d765/open HTTP/1.0
Host: api.nello.io
User-Agent: fhem
Cookie: session=.eJwdyzEKwzAMAMC_aI7AsSVLymeCHMvQoaG4yVT690Jvvw_sr5hPP-O8YLvmHQs8OmxQjdQ0EkYxRcq5oVMdKG0tLmtlbQIL3O-Y-z8clplGUfTOGYkOQUtRcLBxeKIuleH7AyONHuM.DGugww.KtbK9yOz-37S8qMb7mRjgL2TWBI
Content-Length: 16
Content-Type: application/x-www-form-urlencoded

2017.08.08 21:21:56 5: HttpUtils request header:
POST /locations/1ea3e447-3757-4b80-9f20-fcd0196623ef/users/c9254f38-ad52-44c7-90e3-f595ea04d765/open HTTP/1.0
Host: api.nello.io
User-Agent: fhem
Cookie: session=.eJwdyzEKwzAMAMC_aI7AsSVLymeCHMvQoaG4yVT690Jvvw_sr5hPP-O8YLvmHQs8OmxQjdQ0EkYxRcq5oVMdKG0tLmtlbQIL3O-Y-z8clplGUfTOGYkOQUtRcLBxeKIuleH7AyONHuM.DGugww.KtbK9yOz-37S8qMb7mRjgL2TWBI
Content-Length: 16
Content-Type: application/x-www-form-urlencoded

2017.08.08 21:21:56 4: https://api.nello.io/locations/1ea3e447-3757-4b80-9f20-fcd0196623ef/users/c9254f38-ad52-44c7-90e3-f595ea04d765/open: HTTP response code 200
2017.08.08 21:21:56 4: HttpUtils https://api.nello.io/locations/1ea3e447-3757-4b80-9f20-fcd0196623ef/users/c9254f38-ad52-44c7-90e3-f595ea04d765/open: Got data, length: 93
2017.08.08 21:21:56 5: HttpUtils response header:
HTTP/1.1 200 OK
Content-Type: application/json
Date: Tue, 08 Aug 2017 19:28:39 GMT
Server: nginx/1.4.6 (Ubuntu)
Set-Cookie: session=.eJwdyzEKwzAMAMC_aI7AsSVLymeCHMvQoaG4yVT690Jvvw_sr5hPP-O8YLvmHQs8OmxQjdQ0EkYxRcq5oVMdKG0tLmtlbQIL3O-Y-z8clplGUfTOGYkOQUtRcLBxeKIuleH7AyONHuM.DGug1A.ClYDQVo3NXq3KbM4hhK5T6Ce5GA; Expires=Wed, 08-Aug-2018 19:21:56 GMT; HttpOnly; Path=/
Content-Length: 93
Connection: Close
2017.08.08 21:21:56 3: nello_Kameruner: opened
2017.08.08 21:21:56 4: HttpUtils url=https://api.nello.io/locations/1ea3e447-3757-4b80-9f20-fcd0196623ef/activity
2017.08.08 21:21:56 5: HttpUtils request header:
GET /locations/1ea3e447-3757-4b80-9f20-fcd0196623ef/activity HTTP/1.0
Host: api.nello.io
User-Agent: fhem
Cookie: session=.eJwdyzEKwzAMAMC_aI7AsSVLymeCHMvQoaG4yVT690Jvvw_sr5hPP-O8YLvmHQs8OmxQjdQ0EkYxRcq5oVMdKG0tLmtlbQIL3O-Y-z8clplGUfTOGYkOQUtRcLBxeKIuleH7AyONHuM.DGugww.KtbK9yOz-37S8qMb7mRjgL2TWBI

2017.08.08 21:21:57 4: https://api.nello.io/locations/1ea3e447-3757-4b80-9f20-fcd0196623ef/users/c9254f38-ad52-44c7-90e3-f595ea04d765/open: HTTP response code 200
2017.08.08 21:21:57 4: HttpUtils https://api.nello.io/locations/1ea3e447-3757-4b80-9f20-fcd0196623ef/users/c9254f38-ad52-44c7-90e3-f595ea04d765/open: Got data, length: 93
2017.08.08 21:21:57 5: HttpUtils response header:
HTTP/1.1 200 OK
Content-Type: application/json
Date: Tue, 08 Aug 2017 19:28:39 GMT
Server: nginx/1.4.6 (Ubuntu)
Set-Cookie: session=.eJwdyzEKwzAMAMC_aI7AsSVLymeCHMvQoaG4yVT690Jvvw_sr5hPP-O8YLvmHQs8OmxQjdQ0EkYxRcq5oVMdKG0tLmtlbQIL3O-Y-z8clplGUfTOGYkOQUtRcLBxeKIuleH7AyONHuM.DGug1A.ClYDQVo3NXq3KbM4hhK5T6Ce5GA; Expires=Wed, 08-Aug-2018 19:21:56 GMT; HttpOnly; Path=/
Content-Length: 93
Connection: Close
2017.08.08 21:21:57 3: nello_Kameruner: opened
2017.08.08 21:21:57 4: HttpUtils url=https://api.nello.io/locations/1ea3e447-3757-4b80-9f20-fcd0196623ef/activity
2017.08.08 21:21:57 4: http://nello.oskar.pw/detectMQTT.php: HTTP response code 200
2017.08.08 21:21:57 4: HttpUtils http://nello.oskar.pw/detectMQTT.php: Got data, length: 40
2017.08.08 21:21:57 5: HttpUtils response header:
HTTP/1.1 200 OK
Date: Tue, 08 Aug 2017 19:21:54 GMT
Server: Apache/2.4.10 (Debian)
Content-Length: 40
Connection: close
Content-Type: text/html; charset=UTF-8
Undefined subroutine &main::internalExists called at ./FHEM/31_Nello.pm line 140.


Hilft das für eine eventuelle Fehlersuche oder kann mir jemand einen Tipp geben?

Vielen Dank
Zephyr
FHEM 5.5 auf Fritz!Box 7390 und Beagle Bone black mit RFXtrx433

neumann

Lieber Zephyr,

vielen Dank für's Testen und das Feedback - da hatte sich tatsächlich ein Fehler eingeschlichen - bitte probiere es mit der neuen Version aus dem SVN erneut.
Das fehlende Paket habe ich ebenfalls der Liste hinzugefügt.

Vielen Dank!

LG
Oskar
Modulentwickler
- Spotify #72490
- Nello #75127

columb

Zitat von: volschin am 08 August 2017, 20:55:48
Hast Du Dir denn schon mal die Mühe gemacht und die commandref gelesen? Dann könntest Du vielleicht präzisieren, was Dir nicht klar ist.

Sorry natürlich nicht. Aber jetzt... ;D

neumann

Zitat von: columb am 09 August 2017, 11:32:21
Sorry natürlich nicht. Aber jetzt... ;D

und jetzt kommst du klar?
Modulentwickler
- Spotify #72490
- Nello #75127

columb

Naja, habe nello jetzt eingerichtet kann mich einloggen, aber nur mit dem Account den als erstes das Setup für nello gemacht habe.

Nachdem ich set detectDeviceID eingebe stürzt fhem leider ab.

neumann

Wie gesagt, das habe ich eben behoben.
Ersetz mal die Datei anbei (morgen dann auch als Update verfügbar).

Und füge einen neuen Nutzer hinzu, da du sonst den Account auf deinem Handy nicht mehr verwenden kannst (du wirst ständig ausgeloggt werden).
Modulentwickler
- Spotify #72490
- Nello #75127

columb

Danke jetzt funktioniert alles soweit.

User wird erkannt und fhem stürzt nicht ab. Jetzt schaue ich mal wie ich das bastel das wenns klingelt mein Lametric anspringt..

Tausend d´Dank erstmal an dich.

neumann

Super, gerne!
Erstell dir dafür einfach ein notify auf das Reading last_ring bei deinem Nello device.

LG
Modulentwickler
- Spotify #72490
- Nello #75127

columb

Danke. Es funktioniert.

Hier der notify code:
nello {fhem ("set lametric msg 'a9766' 'Es klingelt an der Haustür' 'notifications:knock-knock'") if (ReadingsVal("nello","last_ring","") > 1502275036)}

neumann

Hey,

das mit dem hardgecodeten timestamp ist keine gute Idee, änder mal dein Notify ab auf folgendes:
nello.last_ring:.* {fhem ("set lametric msg 'a9766' 'Es klingelt an der Haustür' 'notifications:knock-knock'")}

das sollte es zuverlässig tun.

LG
Modulentwickler
- Spotify #72490
- Nello #75127

asciidisco

Sehr cool. Habe es vor ner guten Stunde bei mir installiert & direkt eingebunden. Funktioniert tadellos soweit. Danke für´s Modul.