NEWS
IoBroker simple-api adapter, POST mit setbulk, Fehler oder kann nicht lesen
-
noch eine Frage zur Konfiguration
Was bewirkt diese Einstellung?Kann ich das irgendwo nachlesen?
-
doch, die Werte werden gesetzt~~@greyhound:~~
Erfolg
Ok, damit "solved", oder ?!
Bzw nur noch das komische "feiertage" Ding offen, korrekt?! Dann bitte nochmal vom github checken
Zu Der "Erweitere Web-Adapter"-Frage: Du kannst auch weg vom eigenen Server/Port hin zur Nutzung eines der existierenden Web-Adapter gehen. Wenn ich es richtig verstehe kannst Du einen Web-Adapter dort wählen. Dann müsste die "Port"-Abfrage und so verschwindet weil dann das vom gewählten Web-Adapter genommen wird. Dort ist es dann unter /simple-api/… erreichbar (also extra Pfadteil mit dem Adapternamen).
Ist aber theoretisch ... habs auch noch nicht versucht :-))
-
[{"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse","val":"{0123456xx}"},{"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2","val":"{123456xx}"},{"id":"feiertage.0.next"}]
Die Feiertage sind noch in der Antwort, habe ich den Adapter aktualisiert, habe dann den Adapter beendet, neu geladen und gestartet, selbes Ergebnis.
Im Log ist merkwürdigerweise das Update nicht zu sehen
2017-03-07 18:05:54.920 - [32minfo[39m: simple-api.0 starting. Version 1.4.0 in C:/ioBroker/node_modules/iobroker.simple-api, node: v4.5.0 2017-03-07 18:05:54.929 - [32minfo[39m: simple-api.0 simpleAPI server listening on port 8087 2017-03-07 18:05:54.931 - [32minfo[39m: simple-api.0 http server listening on port 8087 2017-03-07 18:06:38.962 - [34mdebug[39m: simple-api.0 POST-setBulk: values = {"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse":"{0123456xx}","javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2":"{123456xx}","user":"system.user.admin","":null} 2017-03-07 18:06:38.963 - [34mdebug[39m: simple-api.0 "javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse" 2017-03-07 18:06:38.964 - [34mdebug[39m: simple-api.0 "javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2" 2017-03-07 18:06:38.964 - [34mdebug[39m: simple-api.0 "" 2017-03-07 18:06:38.965 - [34mdebug[39m: simple-api.0 POST-setBulk for id=javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse, oid=NukiBridgeResponseused=javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse, value={0123456xx} 2017-03-07 18:06:38.966 - [34mdebug[39m: simple-api.0 POST-setBulk for id=javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2, oid=NukiBridgeResponse2used=javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2, value={123456xx} 2017-03-07 18:06:38.967 - [34mdebug[39m: simple-api.0 POST-setBulk for id=feiertage.0.next, oid=used=feiertage.0.next, value=undefined 2017-03-07 18:06:38.968 - [34mdebug[39m: simple-api.0 Add to Response: {"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse","val":"{0123456xx}"} 2017-03-07 18:06:38.969 - [34mdebug[39m: simple-api.0 Add to Response: {"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2","val":"{123456xx}"} 2017-03-07 18:06:38.970 - [34mdebug[39m: simple-api.0 Add to Response: {"id":"feiertage.0.next"}
Wie stellte ich am einfachsten fest, ob ich die version installiert habe, die ich haben sollte?
-
ääähm räusper … hab vergessen zu committen ... kommt in 30 mins oder :-((
-
Jetzt :-))
-
Moin, Moin,
habe mir zwischenzeitlich den Code angeschaut und die mir fehlende Methode "setValueFromBody" eingebaut.
Response
[ { "id": "javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2", "val": "{\"nukiId\": 91049449, \"state\": 3, \"stateName\": \"unlocked\", \"batteryCritical\": false}" } ] ````Log
2017-03-08 11:47:10.210 - [32minfo[39m: simple-api.0 starting. Version 1.4.0 in C:/ioBroker/node_modules/iobroker.simple-api, node: v4.5.0
2017-03-08 11:47:10.219 - [32minfo[39m: simple-api.0 simpleAPI server listening on port 8087
2017-03-08 11:47:10.222 - [32minfo[39m: simple-api.0 http server listening on port 8087
2017-03-08 11:47:18.064 - [34mdebug[39m: simple-api.0 POST-setBulk: body = ""
2017-03-08 11:47:18.064 - [34mdebug[39m: simple-api.0 POST-setBulk: values = {"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2":""{12345678}"","prettyPrint":true,"user":"system.user.admin"}
2017-03-08 11:47:18.064 - [34mdebug[39m: simple-api.0 "javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2"
2017-03-08 11:47:18.066 - [34mdebug[39m: simple-api.0 POST-setBulk for id=javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2, oid=NukiBridgeResponse2used=javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2, value="{12345678}"
2017-03-08 11:47:18.068 - [34mdebug[39m: simple-api.0 Add to Response: {"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2","val":""{12345678}""}
2017-03-08 11:53:49.255 - [34mdebug[39m: simple-api.0 POST-setValueFromBody: values = {"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2":"{"nukiId": 91049449, "state": 3, "stateName": "unlocked", "batteryCritical": false}","prettyPrint":true,"user":"system.user.admin"}
2017-03-08 11:53:49.255 - [34mdebug[39m: simple-api.0 POST-setValueFromBody: _id2="javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2"
2017-03-08 11:53:49.256 - [34mdebug[39m: simple-api.0 POST-setValueFromBody for id=javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2, oid=NukiBridgeResponse2used=javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2, value={"nukiId": 91049449, "state": 3, "stateName": "unlocked", "batteryCritical": false}
2017-03-08 11:53:49.258 - [34mdebug[39m: simple-api.0 Add to Response: {"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2","val":"{"nukiId": 91049449, "state": 3, "stateName": "unlocked", "batteryCritical": false}"}Werde meine Erweiterung als Pull-request einreichen. Nochmal Danke für deine Hilfe und Geduld Gruß GH
-
Super, reiche ein, ich checke und dann gehts fix
-
ist drin
-
1.5.0 auf github … bitte testen
-
Danke für die Übernahme.
Ich bin gerade beim Testen mit node 6.9 / 6.10. Bekomme beim installieren diverser Adapter ecklige Warnings und Fehlermeldungen
2017-03-10 16:36:45.823 - info: iobroker npm install iobroker.mqtt --production --prefix "/opt/iobroker" (System call) 2017-03-10 16:37:16.892 - info: iobroker In file included from ../node_modules/nan/nan.h:82:0, from ../src/bufferutil.cc:16: ../node_modules/nan/nan_new.h: In function ‘v8::Local NanIntern::To(v8::Handle<v8::integer>) [with T = v8::Int32; v8::Handle <v8::integer>= v8::Local<v8::integer>]’: ../node_modules/nan/nan_new.h:34:64: warning: ‘v8::Local <v8::int32>v8::Value::ToInt32() const’ is deprecated (declared at /opt/iobroker/.node-gyp/6.9.5/include/node/v8.h:8202): Use maybe version [-Wdeprecated-declarations] To<v8::int32>(v8::Handle <v8::integer>i) { return i->ToInt32(); } ^ 2017-03-10 16:37:16.895 - info: iobroker ../node_modules/nan/nan_new.h: In function ‘v8::Local NanIntern::To(v8::Handle<v8::integer>) [with T = v8::Uint32; v8::Handle <v8::integer>= v8::Local<v8::integer>]’:../node_modules/nan/nan_new.h:39:65: warning: ‘v8::Local <v8::uint32>v8::Value::ToUint32() const’ is deprecated (declared at /opt/iobroker/.node-gyp/6.9.5/include/node/v8.h:8196): Use maybe version [-Wdeprecated-declarations] To<v8::uint32>(v8::Handle <v8::integer>i) { return i->ToUint32(); } ^ . . . 2017-03-10 16:37:16.931 - info: iobroker In file included from ../src/bufferutil.cc:16:0:../node_modules/nan/nan.h: At global scope: ../node_modules/nan/nan.h:261:25: error: redefinition of ‘template <class t="">v8::Local _NanEnsureLocal(v8::Local)’ NAN_INLINE v8::Local _NanEnsureLocal(v8::Local val) { ^ ../node_modules/nan/nan.h:256:25: note: ‘template <class t="">v8::Local _NanEnsureLocal(v8::Handle)’ previously declared here NAN_INLINE v8::Local _NanEnsureLocal(v8::Handle val) { ^ ../node_modules/nan/nan.h: In function ‘bool NanIdleNotification(int)’: ../node_modules/nan/nan.h:289:71: warning: ‘bool v8::Isolate::IdleNotification(int)’ is deprecated (declared at /opt/iobroker/.node-gyp/6.9.5/include/node/v8.h:6113): use IdleNotificationDeadline() [-Wdeprecated-declarations] return v8::Isolate::GetCurrent()->IdleNotification(idle_time_in_ms); ^ . . .</class></class></v8::integer></v8::uint32></v8::uint32></v8::integer></v8::integer></v8::integer></v8::integer></v8::int32></v8::int32></v8::integer></v8::integer></v8::integer>
Am Schluss werden die Adapter in der Regel auch installiert und sind als Instanz vorhanden. Habe bisher nicht getestet, ob die Adapter wirklich auch funktionieren.
Weißt du, ob es an der node-Version liegt? Welche ist die letzte Version unter der alles laufen sollte?
Danke und Gruß
GH
-
Das liegt nur bedingt an node, sondern eher an den "c-binary-Teilen" die einige Libraries drin haben die der Adapter benutzt. Das sind compiler-Meldungen und viele davon Warnungen weil die Checks im Compiler recht strikt sind, aber dennoch nur warnen.
Wenn es fehlschlagen würde würdest Du nen Fehler bekommen.
In sofern: unschön, aber ignore. Wenn DU was dagegen tun willst dann verursachende Library raussuchen und dort ein Ticket aufmachen
-
bin wieder auf node 4.7 zurück, da sieht dass kompilieren besser aus.
Und das mit dem callback von meiner Nuki-Bridge mit POST setValueFromBody hat auch funktioniert. - Danke
Wie ich in meinem pull geschrieben habe, bin ich noch imer der Meinung das da etwas quer läuft bei der POST-Variante von setBulk. Entweder stimmt die Beschreibung nicht oder die Implementierung.
Gruß
GH
-
Ich musste nochmal was fixen … update auf github
-
bei mir geht noch alles, die Version war aber auch 1.5.0 oder?
Muss langsam Schluss machen, Frauchen wartet schon.
Wochenende bin ich auch Unterwegs, wohl erst Montagabend wieder on.
Gruß
GH
-
Ja, Version bleibt bis zum Release auf 1.5.0
Nach dem Update ggf manuell restarten
-
hatte ich so gemacht, sah gut aus.
Kann ich im Code verifizieren, dass meine aktive Version die richtige ist?
-
So, jetzt haben wirs … ich hab das nochmal komplett geändert nachdem ich das bisherige Konzept verstanden habe!
Es ändert sich für Deine Funktion leicht der aufruf!!
POST http://127.0.0.1:18183/setValueFromBody ... user=admin&...
bzw im Normalfall kein Fragezeichen und keine Parameter.
0.5.1 auf Github bitte testen!
-
bin wieder zu Hause und habe die neue Version getestet.
- setValueFromBody funktioniert bei mir
callback-Post http://192.168.200.110:8087/setValueFromBody/javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse Body: {\"nukiId\": 123456789, \"state\": 3, \"stateName\": \"unlocked\", \"batteryCritical\": false}
- und set funktioniert auch
GET http://192.168.200.110:8087/set/javascript.0.alarm.Devices.Cams.Cam1.alarm_ack?value=true
-
Würde das Thema hier gerne nochmal aufgreifen. Komme mit den ganzen Beiträgen in diesem Forentopic leider nicht weiter da ich oft nur "Bahnhof" verstehe.
kann jemand Schritt für Schritt beschreiben wie ich den simple api Adapter mit Nuki genau nutze? Ich habe leider noch recht wenig Plan von APIs
Was muss ich alles Konfigurieren?
Ich nehme an die Steuerung und Statusabfrage erfolgt ausschließlich per Script, oder? Wie hat das Script auszusehen?
Objekte werden sicher nicht automatisch generiert, oder?
Ein paar Kleine Hilfestellungen mit Beispielen würden mich sicher schon etwas weiterbringen.
Danke für eure Hilfe!
-
Dann solltest du bitte ein paar mehr Infos geben. Ich kann beispielsweise mit "mit Nuki" nichts anfangen …