Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. IoBroker simple-api adapter, POST mit setbulk, Fehler oder kann nicht lesen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    IoBroker simple-api adapter, POST mit setbulk, Fehler oder kann nicht lesen

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

      Kannst Du mal ohne die geschweiftren Klammern testen?

      Ansonsten: Entweder GET oder POST! Bei GET werden die Daten aus der URL genommen und verarbeitet. Der Body wird ignoriert. Bei POST werden die Daten aus dem Body genommen und die URL ignoriert! Mischen geht kaputt 🙂

      Kommt bei deinen POST-beispielen noch irgendewas im Body mit?

      Error500 bei GET kommt in dem Fall wohl weil die State-ID nicht gefunden wird - Es sei denn "NukiBridgeResponse" ist im entsprechenden Objekt als "Name" gesetzt.

      1 Reply Last reply Reply Quote 0
      • greyhound
        greyhound last edited by

        POST http://192.168.200.110:8087/setBulk?javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse=1.0&javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2=2.0
        

        Response: [{"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse"},{"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2"},{"id":"feiertage.0.next","val":null}]

        
        

        POST http://192.168.200.110:8087/setBulk/javascript.0.Nuki.Devices.NukiSL1?NukiBridgeResponse=1.1&NukiBridgeResponse2=2.1

        Response: [{"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse","val":1.1},{"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2","val":2.1},{"id":"feiertage.0.next","val":null}]
        ````>> Erfolg
        
        ````
        POST http://192.168.200.110:8087/setBulk?NukiBridgeResponse=1.2&NukiBridgeResponse2=2.2
        

        Response: [{"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse","val":1.2},{"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2","val":2.2},{"id":"feiertage.0.next","val":null}]

        
        Bei den POST-Beispielen ist Response == Body.
        
        ~~@apollon77:~~ 
        
        > Bei POST werden die Daten aus dem Body genommen und die URL ignoriert! Mischen geht kaputt `  
        Bist du dir da sicher? Was sind denn die Daten im Body?
         ![1591_post-sample.png](/assets/uploads/files/1591_post-sample.png) 
        
        ~~@apollon77:~~ 
        
        > Error500 bei GET kommt in dem Fall wohl weil die State-ID nicht gefunden wird - Es sei denn "NukiBridgeResponse" ist im entsprechenden Objekt als "Name" gesetzt. `  
         ![1591_nukibridgeresponse-name.png](/assets/uploads/files/1591_nukibridgeresponse-name.png) 
        
        Der Anbieter von Nuki hat gerade geschrieben, dass sie ihre Daten````
        {"nukiId": 91049449, "state": 3, "stateName": "unlocked", "batteryCritical": false}
        ````nicht so ohne weiters in der URL kodiert senden werden, da dies auf ihrer Seite doch einige Konfigurationsvarianten nach sich ziehen würde.
        
        Danke
        
        GH
        1 Reply Last reply Reply Quote 0
        • apollon77
          apollon77 last edited by

          Die Erfolge liegen daran das er an der Stelle den "Namen" nutzt und nicht die "state-id".

          Ich habe in der Version auf Github mal debug logging für setBulk eingebaut. Also bitte:

          • update vo github

          • instanz in debug mode schalten (Instanzen -> Expertenmodus)

          • instanz neu starten (sollte autmatisch mit debug aktivieren passieren)

          • mal ANfrage machen … dann logs raussuchen und mal schicken ... dann wissen wir vllt mehr.

          Da die Nutzung der direkten namen ja scheinbar geht wäre der Aufruf mit

          POST http://192.168.200.110:8087/setBulk?javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse={0123456xx}&javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2={123456xx}
          

          der interessante

          1 Reply Last reply Reply Quote 0
          • greyhound
            greyhound last edited by

            Habe das jetzt auf einem meiner Testinstallationen gemacht (W10), also andere IP

            POST http://192.168.200.210:8087/setBulk?javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse={0123456xx}&javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2={123456xx}
            
            Response: [{"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse","val":"{0123456xx}"},{"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2","val":"{123456xx}"},{"id":"feiertage.0.next"}]
            ````>> Erfolg
            
            Das das Log nicht so lang ist, hänge ich es hier mit rein
            

            2017-03-07 16:20:30.384 - [34mdebug[39m: simple-api.0 objectDB connected
            2017-03-07 16:20:30.400 - [34mdebug[39m: simple-api.0 statesDB connected
            2017-03-07 16:20:30.415 - [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 16:20:30.428 - [32minfo[39m: simple-api.0 simpleAPI server listening on port 8087
            2017-03-07 16:20:30.430 - [32minfo[39m: simple-api.0 http server listening on port 8087
            2017-03-07 16:24:39.407 - [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 16:24:39.407 - [34mdebug[39m: simple-api.0 "javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse"
            2017-03-07 16:24:39.408 - [34mdebug[39m: simple-api.0 "javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2"
            2017-03-07 16:24:39.408 - [34mdebug[39m: simple-api.0 ""
            2017-03-07 16:24:39.409 - [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 16:24:39.410 - [34mdebug[39m: simple-api.0 Add to Response: {"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse","val":"{0123456xx}"}
            2017-03-07 16:24:39.411 - [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 16:24:39.411 - [34mdebug[39m: simple-api.0 POST-setBulk for id=feiertage.0.next, oid=used=feiertage.0.next, value=undefined
            2017-03-07 16:24:39.413 - [34mdebug[39m: simple-api.0 Add to Response: {"id":"javascript.0.Nuki.Devices.NukiSL1.NukiBridgeResponse2","val":"{123456xx}"}
            2017-03-07 16:24:39.414 - [34mdebug[39m: simple-api.0 Add to Response: {"id":"feiertage.0.next"}

            1 Reply Last reply Reply Quote 0
            • apollon77
              apollon77 last edited by

              Und ein Update der Werte findet nicht statt? Mindestens kann man sehen wo das komische "feiertage.0" herkommt 🙂 Fixe ich

              1 Reply Last reply Reply Quote 0
              • greyhound
                greyhound last edited by

                doch, die Werte werden gesetzt~~@greyhound:~~

                Erfolg `

                1 Reply Last reply Reply Quote 0
                • greyhound
                  greyhound last edited by

                  noch eine Frage zur Konfiguration 1591_simpleapi-konfiguration.png
                  Was bewirkt diese Einstellung?

                  Kann ich das irgendwo nachlesen?

                  1 Reply Last reply Reply Quote 0
                  • apollon77
                    apollon77 last edited by

                    @greyhound:

                    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 :-))

                    1 Reply Last reply Reply Quote 0
                    • greyhound
                      greyhound last edited by

                      [{"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?

                      1 Reply Last reply Reply Quote 0
                      • apollon77
                        apollon77 last edited by

                        ääähm räusper … hab vergessen zu committen ... kommt in 30 mins oder :-((

                        1 Reply Last reply Reply Quote 0
                        • apollon77
                          apollon77 last edited by

                          Jetzt :-))

                          1 Reply Last reply Reply Quote 0
                          • greyhound
                            greyhound last edited by

                            Moin, Moin,

                            habe mir zwischenzeitlich den Code angeschaut und die mir fehlende Methode "setValueFromBody" eingebaut.
                            1591_fiddler-composer.png 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
                            1 Reply Last reply Reply Quote 0
                            • apollon77
                              apollon77 last edited by

                              Super, reiche ein, ich checke und dann gehts fix 🙂

                              1 Reply Last reply Reply Quote 0
                              • greyhound
                                greyhound last edited by

                                ist drin

                                1 Reply Last reply Reply Quote 0
                                • apollon77
                                  apollon77 last edited by

                                  1.5.0 auf github … bitte testen

                                  1 Reply Last reply Reply Quote 0
                                  • greyhound
                                    greyhound last edited by

                                    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

                                    1 Reply Last reply Reply Quote 0
                                    • apollon77
                                      apollon77 last edited by

                                      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 🙂

                                      1 Reply Last reply Reply Quote 0
                                      • greyhound
                                        greyhound last edited by

                                        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

                                        1 Reply Last reply Reply Quote 0
                                        • apollon77
                                          apollon77 last edited by

                                          Ich musste nochmal was fixen … update auf github

                                          1 Reply Last reply Reply Quote 0
                                          • greyhound
                                            greyhound last edited by

                                            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

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            891
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            41
                                            7932
                                            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