[ NUKI Smartlock ] 73_NUKIBridge.pm und 74_NUKDevice.pm

Begonnen von CoolTux, 18 Juli 2016, 23:50:11

Vorheriges Thema - Nächstes Thema

Sascha_F

#645
Hi zusammen,

bei mir läuft die aktuelle Version. Habe das Device neu angelegt, den callback aus der Bridge gelöscht (es komme eine Fehlermeldung, aber gelöscht wird trotzdem) und dann über Autocreate das Device neu angelegt und entsprechend webhook neu angelegt.

Das einzige, was ich noch nicht richtig unterkriege ist das Reading "lastError". Hier habe ich immer wieder "Internal error, 503" stehen. Oder sollte die Bridge doch auch komplett neu angelegt werden?

Edit (ist mir gerade aufgefallen)
Log: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/74_NUKIDevice.pm line 197, <$fh> line 2497.

Viele Grüße und ein schönes Wochenende
Sascha

CoolTux

Hallo Sascha,

Schaue ich mir mal an. Kannst Du mir bitte ein list vom Bridgedevice geben.
Aber die Bridge steht immer auf Connect, oder?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Sascha_F

#647
Hi!

na aber sicher doch :-)

Hier das List aus der Bridge:
[{"nukiId": 87048193, "name": "Zuhause", "lastKnownState": {"state": 3, "stateName": "unlocked", "batteryCritical": false, "timestamp": "2017-01-14T11:35:52+00:00"}}]

Edit: Der Status der Bridge ist immer auf "connected"

Passt nicht so 100 %ig zum Thema: Ich dachte mir, ich versuche nach einem FHEM-Neustart den Status des Schlosses über "set statusRequest" zu bekommen und habe dafür ein notify auf global gesetzt:

global:INITIALIZED set NUKIDevice87048193 statusRequest

Hab ich da nen Denkfehler drin?

Viele Grüße
Sascha

CoolTux

Da ja en wir uns falsch verstanden. Gebe mal bitte in der FHEM Kommandozeile

list BRIDGEDEVICENAME

ein
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Sascha_F

Ach sorry! ^^

Jetzt aber :)

Internals:
   DEF        192.168.178.21 ik2t9i
   HOST       192.168.178.21
   NAME       NukiBridge
   NR         491
   PORT       8080
   STATE      connected
   TOKEN      ik2t9i
   TYPE       NUKIBridge
   VERSION    0.4.5
   Readings:
     2017-01-12 18:14:11   0_name          Zuhause
     2017-01-12 18:14:11   0_nukiId        87048193
     2017-01-14 14:23:02   bridgeType      Hardware
     2017-01-14 14:23:02   currentTime     2017-01-14T13:23:02+00:00
     2017-01-14 14:23:02   firmwareVersion 1.4.11
     2017-01-14 14:23:02   hardwareId      88293553
     2017-01-14 13:44:06   lastError       Internal error, 503
     2017-01-14 14:23:02   serverConnected 1
     2017-01-14 14:23:02   serverId        42151571
     2017-01-12 18:14:11   smartlockCount  1
     2017-01-14 14:23:02   state           connected
     2017-01-14 14:23:02   uptime          2330487
     2017-01-14 14:23:02   wifiFirmwareVersion 1.0.1
   Helper:
     aliveCount 0
Attributes:
   DbLogExclude .*
   alias      &nbsp
    devStateIcon connected:it_wifi@green disabled:10px-kreis-rot .*:it_wifi@orange
   group      NUKI
   icon       Nuki_Bridge
   room       Flur

CoolTux

Zitat
HTTP 503 Returned if the given Smart Lock is offline

Das kann nur bei einem Schaltbefehl passieren oder bei einem manuellen statusRequest beim Smartlock Device.
Ich werde das mal mit einbauen als Info

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Bitte einmal einspielen und schauen was passiert. Es müsste wenn wieder 503 kommt diesmal im Error Reading der Bridge "Smartlock offline" stehen und im state des jeweiligen Smartlock ebenfalls "Smartlock offline"
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Sascha_F

#652
Hi und Danke! :-)

Werde ich gleich mal einspielen, beobachten und natürlich berichten.

Wie war das mit dem Wald und den Bäumen? Ich hab die API in nem anderen TAB auf, aber ... Scheinbar bin ich heute noch nicht ganz wach^^

Demnach kommt der 503 ja nur bei "lockAction" oder "lockState".

Beim Timestamp (2017-01-14 13:44:06) kann ich ein "lockAction" ausschließen.

Ich packe hier mal die NUKI-bezogenen LOG-Einträge mit rein. Vielleicht hilft es, vielleicht nicht - schaden kann es ja nicht ;)

Hatte ein Update gemacht und daher neu gestartet (aber gegen 12:30 h)

2017.01.14 13:43:08 2: NUKIDevice (NUKIDevice87048193) - Unregistering NUKIDevice for webhook URL /NUKIDevice...
2017.01.14 13:43:08 3: NUKIDevice (NUKIDevice87048193) - undefined with Code: NukiBridge-87048193
.
.
2017.01.14 13:43:34 3: NUKIBridge (NukiBridge) - defined with host 192.168.178.21 on port 8080, Token ik2t9i
.
.
2017.01.14 13:43:34 3: NUKIDevice (NUKIDevice87048193) - URL ist: http://192.168.178.46:8083/fhem/NUKIDevice-87048193:8083/fhem/NUKIDevice-87048193
.
.
2017.01.14 13:44:06 3: NUKIDevice (NukiBridge) - NukiId '87048193' already defined as 'NUKIDevice87048193'



EDIT: Habe gerade mal wieder reingeschaut (v0.4.6):
lastError          Internal error, 503          2017-01-14 17:13:44

CaptainCarrot

#653
Zitat
Das ändern des Webhook Ports hatte ich in früheren Versionen drin. Da man aber nun bequem alle vorhandenen FHEM WEB Instanzen auswählen kann ergibt sich der Port ja automatisch. Man kann ja nur den Port nehmen den die Webinstanz anbietet und den lese ich automatisch aus.
Wenn ich mir Punkt 1 bei Dir so durchlese, gehe ich davon aus das Du etwas im Modulcode angepasst hast um einen anderen Port aus zu wählen. Daraus ergibt sich aber ein Problem. Beim define eines jeden Smartlock Devices wird eine Art Marker gesetzt, Anhand dieses Markers wird erkannt ob das Device Berechtigt ist ein Webhookaufruf an zu nehmen. Hier wird dann wohl auch Dein 503 her gekommen sein.

Um zusammen zu fassen. Sobald ich eine FHEM Webinstanz ausgesucht habe (es werden alle vorhandenen aufgelistet) steht automatisch der Port fest, und dieser wird dann beim anlegen des webhooks ausgelesen.

Hallo Leon,

hm... also bei mir werden nicht alle Instanzen aufgelistet. Ich habe insgesamt 4 Instanzen, WEB mit Nutzername/Passwort auf 8083, WEBphone auf 8084 mit PW, WEBTablet auf 8085 ohne PW (die benutze ich) und WEB auf 8086 ohne PW (die hätte ich benutzen wollen, aber die kann ich nicht auswählen). 
Den Modulcode habe ich nicht angerührt. Aber das smartlock wurde ursprünglich mal mit einer relativ frühen Version erzeugt (ich meine niedrige 0.2er).

Gruß, Joachim

P.S.: Den internal error 503 bekomme ich nach wie vor (ähnlich wie bei Sascha scheint mir), ich werde jetzt mal beobachten, wann der bei mir auftritt.

CoolTux

Hallo Joachim,

Welche Modulversion setzt Du aktuell ein?
Kannst Du bitte ein list von der Webinstanz machen welche Du nehmen möchtest?
Welche werden denn angezeigt? Alle anderen ausser die die Du nehmen möchtest?



Grüße
Leon
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CaptainCarrot

Zitat von: CoolTux am 15 Januar 2017, 06:58:45
Welche Modulversion setzt Du aktuell ein?

0.4.5 aus dem Standard-repository

Zitat
Kannst Du bitte ein list von der Webinstanz machen welche Du nehmen möchtest?

Internals:
   CONNECTS   79
   DEF        8086 global
   FD         190
   NAME       IntraWEB
   NR         460
   NTFY_ORDER 50-IntraWEB
   PORT       8086
   STATE      Initialized
   TYPE       FHEMWEB
Attributes:

Zitat
Welche werden denn angezeigt? Alle anderen ausser die die Du nehmen möchtest?

Ja, es werden die 3 Standard-Instanzen angezeigt, also WEB, handy und tablet auf 8083, 8084 und 8085

Gruß, Joachim

CoolTux

Kannst Du das bitte mal bei Dir eingeben in der FHEM Commandline


{ join( ",", devspec2array('TYPE=FHEMWEB:FILTER=TEMPORARY!=1') ) }
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CaptainCarrot

Zitat von: CoolTux am 15 Januar 2017, 10:31:08
Kannst Du das bitte mal bei Dir eingeben in der FHEM Commandline


{ join( ",", devspec2array('TYPE=FHEMWEB:FILTER=TEMPORARY!=1') ) }


Das liefert alle Instanzen zurück:

IntraWEB,WEB,WEBphone,WEBtablet

Sascha_F

Hi zusammen,

hier ein kurzes Feedback zum "Internal error, 503":

Habe ich zwischendurch ab und zu. Definitiv aber mit jedem Schaltbefehl (doif für morgens und abends), welche aber korrekt ausgeführt werden - inkl. des callbacks.

Das Device hatte ich mit der 0.4.6 neu angelegt - die Bridge nicht. Das kann ich ja noch mal testen. Ist ja nix wildes :)

Guten Wochenstart!
Sascha

CoolTux

Hallo Sascha,

Der Code müsste eigentlich korrekt aufgelöst werden. Steht irgendwo bei Dir Smartlock offline? Bei der Bridge oder als state bei dem Smartlock Device?



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net