API Examples to get started.

Hi All,

I want to share the API basics so you guys can start hacking your NEEO with other tech.
Be warned that things might change over time, and anything that doesn't start with API is officially not supported.

What do you need:

  • The IP address of the brain. (use this in place of <Brain_IP>) can be found in the about screen of the NEEO app.
  • A browser 
  • REST tool / or something to format JSON in a readable fashion.

As a rest tool, I sometimes use the chrome plugin "Advanced rest client". I mostly just use a browser for the HTTP GET API commands. You could also use curl of course.

 

# Get the brain configuration:

GET http://<Brain_IP>:3000/v1/projects/home/
example: http://192.168.1.20:3000/v1/projects/home/

 

# Get all rooms and it's child configurations.
The following request will return all rooms, the unique room key <KEY> and all child configurations

GET http://<Brain_IP>:3000/v1/projects/home/rooms/

 

#Get a specific room and it's child configurations.

GET http://<Brain_IP>:3000/v1/projects/home/rooms/<Room_KEY>/
example: http://192.168.1.20:3000/v1/projects/home/rooms/6251100181549845340/

 

#Get all devices from a specific room and it's child configurations.

GET http://<Brain_IP>:3000/v1/projects/home/rooms/<Room_KEY>/devices/
example: http://192.168.1.20:3000/v1/projects/home/rooms/6251100181549845340/devices/

 

#Get a specific device and it's child configurations.

GET http://<Brain_IP>:3000/v1/projects/home/rooms/<Room_KEY>/devices/<Device_KEY>/
example: http://192.168.1.20:3000/v1/projects/home/rooms/6251100181549845340/devices/6251100181549845341/

 

#Get all macros from a specific device.

GET http://<Brain_IP>:3000/v1/projects/home/rooms/<Room_KEY>/devices/<Device_KEY>/macros
example: http://192.168.1.20:3000/v1/projects/home/rooms/6251100181549845340/devices/6251100181549845340/macros

 

#Trigger a Macro (Push a button).

GET http://<Brain_IP>:3000/v1/projects/home/rooms/<Room_KEY>/devices/<Device_KEY>/macros/<Macro_KEY>/trigger
example: http://192.168.1.20:3000/v1/projects/home/rooms/6251100181549845340/devices/6251100181549845340/macros/6251100181549845340/trigger

 

From now on i'll fast forward as the above examples should be clear how to obtain the key's and how the structure works.

 

#trigger a recipe.

GET http://<Brain_IP>:3000/v1/projects/home/rooms/<Room_KEY>/devices/<Device_KEY>/macros/<Macro_KEY>/trigger

 

#power off a Scenario.

GET http://<Brain_IP>:3000/v1/projects/home/rooms/<Room_KEY>/scenarios/<Scenario_KEY>/poweroff

 

#Start favourite Channel 3.

GET http://<Brain_IP>:3000/v1/projects/home/rooms/<Room_KEY>/devices/<Device_KEY>/favorites/3/trigger

 

#Set a slider to value 24. (include application/json as contenttype)

PUT http://<Brain_IP>:3000/v1/projects/home/rooms/<Room_KEY>/devices/<Device_KEY>/sliders/<Slider_KEY>/
content: {"value":24}

 

#Set a switch state.

PUT http://<Brain_IP>:3000/v1/projects/home/rooms/<Room_KEY>/devices/<Device_KEY>/switches/<Switch_KEY>/on
PUT http://<Brain_IP>:3000/v1/projects/home/rooms/<Room_KEY>/devices/<Device_KEY>/switches/<Switch_KEY>/off

 

#Get system info.

GET http://<Brain_IP>:3000/v1/systeminfo/

 

# Blink NEEO Brain LED

http://<Brain_IP>:3000/v1/systeminfo/identbrain

 

# Recipes

GET  http://<Brain_IP>:3000/v1/api/Recipes

 

# Is recipe Active?

GET http://<Brain_IP>:3000/v1/projects/home/rooms/<Room_KEY>/recipes/<Recipe_KEY>/isactive
Reply
111replies Oldest first
  • Oldest first
  • Newest first
  • Active threads
  • Popular
  • Is there any way to shut everything down for a room? 

    Pretty much want my house to tell NEEO to shut off the TV (and whatever was last being used on the TV) when I leave. 

    Currently all I can think of is to have it send the SetPowerOff to all of the recipes when I leave. 

    Like
    • Paul Benario it’s possible, I’ve created an automation where I can say that I’m going away and everything is turned off. I also use geo location to see if someone is home. If no one is home then all equipment will be turned off in case I forgot.

      it can be done using the SDK.

      Like
      • Bhushan Ahire
      • Photographer, Software Engineer
      • Bhushan_Ahire
      • 5 yrs ago
      • Reported - view

      Niels de Klerk Where are you running this SDK program? As far as I know we cant push anything to Neeo Brain yet.  

      Like
      • Bhushan Ahire
      • Photographer, Software Engineer
      • Bhushan_Ahire
      • 5 yrs ago
      • Reported - view

      Paul Benario Cant you just press the remote power button and that turns off all devices running? 

      Like
    • Bhushan Ahire You need a always on device witch is cabaple of Node.JS Version 6 (e.g. A Server, a Raspberry Pi, or else)

      in this topic (and the linked ones) you should find anything you need to start using the SDK or code any Drivers for NEEO!

      Like
    • Bhushan Ahire Don't think there is an API command for remote power off button/power off all. 

      Like
    • Paul Benario You can do with the actual API, you just need to call all Recipes and save the State if this recipe is on, you need to switch it of. Or just switch every Recipe OFF when leaving (but there should not be any Stupid devices involved).

      Like
      • Bhushan Ahire
      • Photographer, Software Engineer
      • Bhushan_Ahire
      • 5 yrs ago
      • Reported - view

      Paul Benario Ohh sorry what I meant is not from API, on remote the power button ;) 

      Like
      • Bhushan Ahire
      • Photographer, Software Engineer
      • Bhushan_Ahire
      • 5 yrs ago
      • Reported - view

      Markus Mahr I used and coded my own Sony Bravia SDK on my Mac. Someone commented while back saying you will soon be able to push your custom code to the brain. 

      Like
    • Bhushan Ahire That is at least what NEEO is planning to provide in a later Firmware State. For this you are able to vote over here. In the Meantime, you need an external device and you need to restart the script when the brain is rebooted.

      The custom mapping of buttons is also a open idea and therefor you can vote over here.

      Like 1
    • Bhushan Ahire Yes, that works, but this thread is for the API.. really kills the point if it requires me to press the power button. Upon more testing though, I found that if I do the setpoweroff for the wrong item, it still works. 

      So if I setpoweroff for cable, but the appletv was running, it still works successfully, and vice versa.. so I may be set. 

      Like 1
    • Bhushan Ahire Ive created an intergration app for the home automation device i am using (Homey). But you could write your own  code and run it on a raspberry pi.

      its just calling an API call to get all the active recipes and then tell these recipe to start their shutdown sequence.

      Like
      • Bhushan Ahire
      • Photographer, Software Engineer
      • Bhushan_Ahire
      • 5 yrs ago
      • 1
      • Reported - view

      Niels de Klerk I have Kickstarted Product (Remix Mini) which runs on Android. I used that to run SDK application and its working now. 

      Like 1
    • Bhushan Ahire can you run node on android? 

      Like
      • Bhushan Ahire
      • Photographer, Software Engineer
      • Bhushan_Ahire
      • 5 yrs ago
      • 1
      • Reported - view

      Niels de Klerk Yes you can. As its linux base. Use Termux terminal and you can use apt to install nodejs with apt install nodejs & git

      Like 1
  • Not sure if we can control Nest 

    Like
    • Bhushan Ahire nest is temporarily made unavailable. I’ve seen it working.

      Like
      • Bhushan Ahire
      • Photographer, Software Engineer
      • Bhushan_Ahire
      • 5 yrs ago
      • Reported - view

      Niels de Klerk I will see if I can use SDK and make a driver to control Nest 

      Like
  • Is there any actual documentation for the API? Examples are nice, but clear documentation indicating the entrypoint/name with input and output is an absolute must in my opinion. Just some examples and see what you get back is a bad way of coding, and leads to wrong long-term assumptions in my experience.

    And clearly the NodeJS SDK is also just using an API, documenting this would be very desirable, so people can write drivers in other languages, since in the end it's just a REST API.

    Like 2
    • Bart Meuris yeah... this thread seems to have been here for 6 months and the api was promised from the start.
      Any news on when the api docs will be made available?

      Like
    • Bart Meuris Giles Roadnight there is a basic documantation over here:

      https://neeoinc.github.io/neeo-sdk/

      but due to the fact, that the api is not fully finished, there is currently no other docu beside this topic, and the sdk topic.

      Like
    • Bart Meuris Officially there are not much API calls supported. With the examples I wrote, you should have enough to get started but don't be surprised if they change with a firmware update.

      only the calls that have api in the url likeh http://<Brain_IP>:3000/v1/api/ are supported

      Like
    • Niels de Klerk would be nice if there would be a OpenAPI/Swagger specification (or something similar) for all API's and everything was just built on top of that. That would make things considerably easier/more flexible.

      Like
    • Bart Meuris I’m not sure what that is to be honest (also haven’t googled it tbh). This API is quite easy to use, far from rocket science I would say. Everything I can do with the app I can also do using API calls. I’ve utilized almost every available API endpoint within my Homey App for instance.

      There is one big caveat and that is that 99% of the API endpoints currently available are not officially supported and are very likely to change in the coming firmwares. If NEEO would make these official and add documentation then they will be bound to that and will be less dynamic in their development and or have a much slower development pace.

      Some see me as the coding or SDK wizard but don’t get fooled by that. I’m far from a coder let alone a wizard, 😆. The only difference is that I just had far more time to play with the API than anyone else. I shared these API calls because I thought that it would speed up the adoption to the real coders among us. I deliberately didn’t posted this in detail and not every API endpoint because those who are going to use it need to understand how everything works when a change is made to the API. So a bit of understanding is needed.

      if you want to achieve anything specific then always feel free to ask me.

      i hope this helps.

      Like
    • Niels de Klerk the API seems pretty simple yes, but it's still a lot of work to implement complete bindings for other languages.

      An OpenAPI/Swagger definition would solve this completely, it's for REST what a WSDL is for SOAP - a full description of the API which can be used to create bindings for many languages and documentation, from one single source.

      Once you have the swagger definition file, you'd be able to generate bindings for whatever language, or even get them on-the-fly in dynamic languages by simply loading the swagger file without any code-generation at all.

      It's maybe harder to map an existing API to it, but it would be awesome if Neeo would consider using this in the future, maybe for a v2 of the API? Now OpenAPI/Swagger isn't perfect or as flexible as "do whatever you want" - but at least it should be seriously considered for a public REST API.

      Like 1
  • Niels de Klerk  Do you have a plan to release an API documentation including the complete protocol to NEEO Brain? I'm really interested in writing drivers in other languages such as golang, python etc, it'll be an advantage for NEEO too. 

    Like
    • Steven Y I Am assuming you are referring to the SDK and not the API, am I correct?

      Sorry, I am not planning or expecting to do a full documentation on the SDK. main reasons are that most of the things I'm using myself are officially unsupported, if you are going to use unsupported features then I think you should be aware of how things work and how to adopt to possible future changes in the API or SDK as well. Best way to learn how things work is to just use Wireshark and just code.

      If I would fully document the working of the SDK then I'm sure that it would raise more questions than it would answer any, certainly when something would change in the API/SDK. 

      What I can offer is the code that I use for Homey. It's available on my GitHub and doesn't use the official SDK. https://github.com/nklerk/nl.nielsdeklerk.neeo this would be ideal if you would like to build a SDK yourself.

      Like
      • Steven Y
      • Steven_Y
      • 5 yrs ago
      • Reported - view

      Niels de Klerk Thanks for the info Niels, this is really helpful, yes I'm referring the actual HTTP protocol for building SDK in different programming languages, will look into your GitHub repo.

      Like
  • Any way to get the “instant favorites”  or “my sonos list” in a “sonos recipe”? 

    Like
    • Óscar Abilleira Muñiz I’m not sure what you want to achieve. Could you be more specific?

      Like
    • Niels de Klerk Thanks for the quick answer :)

      I’m testing an apple watch remote for neeo using the API, and I can “get” al the buttons and actions from each recipe.

      But under “sonos” recipe there’s some options that I cant get from it

      I’m talking about the content inside of  “my sonos” section:

      Like
    • Óscar Abilleira Muñiz i think this info is only displayed at neeo, but it is fetched from sonos. Don't think it is stored anyway outside the Show side of NEEO

      Like
    • Markus Mahr Ok thank’s for the answer ;)

      Like
    • Óscar Abilleira Muñiz nice project! I haven’t explored the API’s yet with Sonos. I’m sure wireshark can tell how it’s done. I’ll try to capture Sonos next time.

      Like
    • Niels de Klerk That’s will be great 😉

      Like
    • Óscar Abilleira Muñiz 

      You want to use the folowing API key:

      http://<IP_ADRES>:3000/v1/projects/home/rooms/<ROOM_KEY>/devices/<DEVICE_KEY>/getdirectoryrootitems
      
      

      To get all the API's needed and the way you need to use the API's u need to install wireshark on your computer and just follow the API behaviour of the APP.

      1. Install Wireshark.
      2. Start wireshark and select your active inteface.
      3. You should see some activity happening.
      4. Apply the following display filter:
        ip.addr == 172.16.100.200 && tcp.dstport==3000 && http && not (http.request.uri contains "/v1/image") && not (http.request.uri contains "/socket.io/")
        Replace 172.16.100.200 with the IP of your NEEO brain.
      5. Open a browser and go to the EUI
        http://172.16.100.200:3200/eui
      6. Replace 172.16.100.200 with the IP of your NEEO brain.
      7. now you see all API calls happening as you browse the EUI

      Have fun and be sure to sent me a testflight invite when you can ;-)

      Like 1
    • Niels de Klerk Thanks a lot... I will investigate it ;)

      Of course when there’s “something usable” I will post here 

      Like
  • Niels de Klerk  I found some interesting url hehe, but I found two  one

    problems triggering it in the last step.

     

    If someone is interested, here is the result of my research :)

     

    #get the active scenariokeys

    GET http://brain-ip:3000/v1/projects/home/activescenariokeys

     

    #Sonos start menu (you can find here the directory-key for each element

    GET http://brain-ip:3000/v1/projects/home/rooms/room-key/devices/device-key/getdirectoryrootitems
    
    

     

    #My sonos favorites

    POST http://brain-ip:3000/v1/projects/home/rooms/room-key/devices/device-key/directories/directory-key/browse

     

    #procecures per device (you can get here procedure-key)

    In orde to use it into the tigger url must look for the one that is named "ADD_TO_QUEUE_PROCEDURE"

    GET http://brain-ip:3000/v1/projects/home/rooms/room-key/devices/device-key/procedures

     

    #trigger an action (a favorite or from start menu)  -> where I found the problems hehe

    POST http://brain-ip:3000/v1/projects/home/rooms/room-key/devices/device-key/procedures/procedure-key/trigger
    
    

    I can’t find a way to get the “procedure-key”,  I found a way to get the procedure key, but the tigger url returned  the answer is "directoryId can't be blank”.

    I try a lot of combinations to pass the “directoryId” that can be found in sonos favorites or sonos start menu, but I can’t make this to work 🙄

    Like
    • Óscar Abilleira Muñiz using the wireshark i noticed a POST command is meedeed to browse.

      Like
    • Niels de Klerk Yes I know but I can’t find the way to POST this value, ever time returned the same answer

      Like
    • Óscar Abilleira Muñiz in wireshark you should be able to find what content is posted. Probably json formatted.

      to test, give this chrome plugin a chance:

      https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo

      Like
    • Niels de Klerk For test I use chrome extension “boomerang soap and rest”, but I have also use the one that you posted before, but the same result using “post” with the url.

      I was searching into the wiresharks output but nothing seems to be “post” but the url 🙄

      Like
    • Niels de Klerk  Finally I found that I have to post  this, but in all of my test hangs the brain hehe 😂

       

      {"directoryId": “sonos",
      "actionUri": “actionUri get from broser url",
      
      "metadata”:”get from browser url”,
      "playNow": true,
      "playNext": false
      }
      
      
      Like
    • Óscar Abilleira Muñiz Niels de Klerk  I too am struggling with the POST verb ... from  wireshark I can see that POST is used and I can see what I need to add as arguments. But when I try the statement below (using RESTED) I get "parameter is missing: name"

      What am I doing wrong?

      POST http://IP_BRAIN:3000/v1/projects/home/rooms/6389247357384392704?details=false {"name": "A/V Devices", "icon": "neeo.icon.room.basement", "key":"6389247357384392704", "weight": 6389247357384393000, "hasController": false, "nrDevices": 3}  

      Like
    • Geert Van Der Linden if you’re trying to change something then leave the ?blabla out if the uri. Guess that’s the issue.

      for room editing grab wireshark and edit a room through the eui. You can then see the exact parameters it wants and if it wants a put or post etc

      Like
    • Niels de Klerk that is exactly what I did, make a change through the eui and check wireshark, it included the ?blabla and everything else in my statement (see screenshots).

      Leaving the ? out throws me a "not found" message ... also tried replacing , by ; as i remember regional settings on windows machines sometimes gave issues on those but that didn't help either.

      Like
  • Niels de Klerk Do you know a way I can add Schlage BE496 lock to Neeo? Nothing seems to be working and Patrick / Raphael doesn't seem to respond to this issue across the Neeo Planet :( 

    Like
    • Bhushan Ahire It's just a Zwave device. I've found the original post and Tagged one of the NEEO guy's I believe can help.

      Like 1
  • Having read the docs, it seems there is only a way to send a specific command to the NEEO brain based on the device/activity i want to control. 

    What would be very cool, is if the device added an extra set of api controls that were generic.

    What i mean by that is....

    Right now i have to send, PAUSE, of the DirecTV box, in the LIVINGROOM.

    instead what if I could just send => 'PAUSE' 

    then the NEEO brain knew i was using direcTV so then it sends the pause command to the directv (same could be said for a set of generic controls, up/down/left/right/select/menu/play/pause.

    any thoughts?

    Like
    • Jamie Burgess this is more or less already the case.

      Press the home button on the remote and notice that the physical buttons still work. This is however a local thing on the remote and App.

      When two remotes connected to one brain, both can show and control a different activity while both activities are active.

      from an API standpoint you can get all active recipes and thus the device etcetra.

      one axample that I’m using myself is that when I’m talking to my smart speaker, either the sound of the receiver or TV gets muted. When the smart speaker stopped listening the mute will be removed to.

      Like
    • Niels de Klerk 

      Thanks for the reply :-)

      so from a physcial NEEO remote perspective that happens correct, but how does one make use of that with the SDK?

      i don’t see any physical buttons in the list.

      rather than room/device/key

      i was looking for

      play 

      pause

      then my app could simply send the play command (home assistant) and not worry about what is playing as NEEO knows that, and will send the right command

      Like
    • Jamie Burgess let’s say you have activated a recipe using the remote , the remote knows what is active for that user as that user itself selected that in the first place. Using the API and active recipes and a bit of smart coding you can come a long way.

      Like
    • Niels de Klerk right, but i'd need to know what the active recipe is no? i'm asking to push the intelligence to the NEEO brain. 

      If you think that is possible, i'll do a little more digging :) right now, just been looking at sending an http request - havent gotten into the smarter stuff yet

      Like
    • Jamie Burgess it’s not possible using a single API command. So I would say no. :-)

      Like
  • I want to use the REST API to trigger IR commands assigned to devices directly (without a recipe or macro). Is this possible? Can you share the REST syntax?

    thank you!

    Like
    • Yann FREMONT that’s described in the OP.

      Like
    • Niels de Klerk sorry for my ignorance  :  you mean Official Documentation ? I did not find where. What OP stands for ? 

      Like
    • Yann FREMONT sorry about that. I meant it’s described in the original post. (OP). Everything you can do with the App you can also do using the API. Have fun.

      Like
  • Hi,

    is it possible to get a line break into a text label of Neeo?

    If you add three text labels to your shortcut screen its full. So i want to sum up the information into one label and seperate it by line breaks.

     

    module.exports.getAlbum = function(deviceid) {
     return "this is a nice Album";
    };

     

    How do i break this text into seperate lines?

    Like
  • Hi there, thank you for your short description of the API.

    I have quite problems from the beginning. If I try to get info with Postman

     

    GET 

    {{brainip}}:3000/v1/projects/home/

    I get an error There was an error connecting to 192.168.55.177:3000/v1/projects/home/

    the same with curl, no response. On the other hand if I paste 192.168.55.177:3000/v1/projects/home/ in a browser, I get a correct JSON response. Can anyone help me what I am doing wrong or how to setup Postman for testing correctly 

    Like
    • Fonzo hi, have you tried to add http://?

      like

      http://{{brainip}}/ etc

      A browser assumes it’s http other programs might not,

      Like
      • Fonzo
      • Fonzo
      • 4 yrs ago
      • Reported - view

      Niels de Klerk 

      Thank you very much for your super fast response.

      I tried also with http:

      Has anybody a correct Postman setup and could share this?

      I also tried file_get_contents or curl, nothing works, only the browser, really strange.

      Like
  • Like
    • Fonzo this should be correct for what I can see, are there spaces in the  ip address? It looks that way. Could be a thing to double check. Also a packet capture using wireshark might help you in troubleshooting 

      Like
      • Fonzo
      • Fonzo
      • 4 yrs ago
      • Reported - view

      Niels de Klerk 

      I cannot find a space 

       

      Like
    • Fonzo remove all these headers and just add Content-Type application/json

      i suspect these are the cause. Especially encoding and connection

      Like
      • Fonzo
      • Fonzo
      • 4 yrs ago
      • Reported - view

      Niels de Klerk 

      I tried also

       $config = Get_Brain_Configuration();
       var_dump($config);
      
       // Get the brain configuration
       function Get_Brain_Configuration()
       {
          $command = '/v1/projects/home/';
          $config = Send_NEEO_GET($command);
          return $config;
       }
      
      function Send_NEEO_GET($command)
          {
              // IP be found in the about screen of the NEEO app
      
              $brain_ip = "192.168.55.177";
              $brain_port = 3000;
              $URL = $brain_ip.':'.$brain_port.$command;
      
              echo $URL."<br>\n";
      
              $header = ['Content-type:application/json'];
              $ch = curl_init();
              curl_setopt($ch, CURLOPT_URL, $URL);
              curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
              curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
              curl_setopt($ch, CURLOPT_TIMEOUT, 30); //timeout after 30 seconds
              curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      
              $result = curl_exec($ch);
              $curl_info = curl_getinfo($ch);
              var_dump($curl_info);
              curl_close($ch);
      
              return $result;
          }
       

      But I get only

      192.168.55.177:3000/v1/projects/home/
      array(26) {
        ["url"]=>
        string(44) "http://192.168.55.177:3000/v1/projects/home/"
        ["content_type"]=>
        NULL
        ["http_code"]=>
        int(0)
        ["header_size"]=>
        int(0)
        ["request_size"]=>
        int(0)
        ["filetime"]=>
        int(-1)
        ["ssl_verify_result"]=>
        int(0)
        ["redirect_count"]=>
        int(0)
        ["total_time"]=>
        float(20,281)
        ["namelookup_time"]=>
        float(1,0E-6)
        ["connect_time"]=>
        float(0)
        ["pretransfer_time"]=>
        float(0)
        ["size_upload"]=>
        float(0)
        ["size_download"]=>
        float(0)
        ["speed_download"]=>
        float(0)
        ["speed_upload"]=>
        float(0)
        ["download_content_length"]=>
        float(-1)
        ["upload_content_length"]=>
        float(-1)
        ["starttransfer_time"]=>
        float(0)
        ["redirect_time"]=>
        float(0)
        ["redirect_url"]=>
        string(0) ""
        ["primary_ip"]=>
        string(0) ""
        ["certinfo"]=>
        array(0) {
        }
        ["primary_port"]=>
        int(0)
        ["local_ip"]=>
        string(0) ""
        ["local_port"]=>
        int(0)
      }
      bool(false)
      Like
    • Fonzo I'm not familiair with php i'm afraid.

      If i use curl on my computer and use curl in a minimalistic way then i get a normal answer.

      curl http://10.2.1.61:3000/v1/projects/home

      What is weird is that the API is verry forgiving when it comes to the requests. I asume the IP address is correct as you've sayd that the browser request did work. Could it be that a software firewall is blocking stuff, only allowing connections using the browser but blocking other apps?

      Like
      • Fonzo
      • Fonzo
      • 4 yrs ago
      • Reported - view

      Niels de Klerk 

      Thanks for your input again, i checked again firewall and all settings, now it works perfect. Sometimes the problem is sitting in front of the screen.

      Like
  • Is it possible to set the webhook under settings -> neeo brain -> forward action via the API or is  necessary to do this manually in the app?

    Like
  • Is it also in any way possible to setup a custom device via the API or has the user always to add the device by himself manually in the NEEO app and not by an external source via API?

    Like
    • Fonzo it is possible to offer drivers to the NEEO brain using rest/json as does the SDK. Im using this to offer drivers to NEEO using my Homey. The code ive written for homey is available on Github, with the setting a user can build a driver.

      Like
  • Niels de Klerk Fonzo I've just publish a simple API wrapper module if this is of any use to you: https://www.npmjs.com/package/neeo-api

    It doesn't do everything, but it does allow you to set/delete the forward actions endpoints.

    Like 2
    • Chris Shepherd thanks ill have a look.

      Like
    • Chris Shepherd 

      Nice - there is alot more you can add to it if you want (like scenarios, device timings, etc).  Take a look at both/either Niels de Klerk homey code or my openHAB code for hints

      Like 1
      • Chris Shepherd
      • Software Engineer
      • Chris_Shepherd
      • 4 yrs ago
      • Reported - view

      Tim Roberts Yeah theres plenty missing - I just wanted it out there for feedback. If you have anything in particular you want adding can you create an issue on the repo? Thanks for the feedback bud.

      Like
  • Niels de Klerk

    I your post you mentioned a lot of API commands. I can switch on/off with a macro. I have the room key, device key and the macro key.

    What methods have to be called for getting:

    - <Scenario_KEY>

    - <Slider_KEY>

    - <Switch_KEY>

    Like
    • Fonzo just the device api call. All capabilities will be shown.

      Like
      • Fonzo
      • Fonzo
      • 4 yrs ago
      • Reported - view

      Niels de Klerk 

      Thank you, I thought  "Get the brain configuration:" has all info I need, so I make an extra call for every device.

      But I haven't found a scenario Key. Is a scenario the same as a recipe, so first  I have to add a recipe?

      Like
    • Fonzo if you call project/home then you have all information at once. But getting only specific device data is also possible. I’m not sure if switches had keys or if their name was used to control them but you could try and see what happens. Or use wireshark and capture what the eui does.

      Like
  • I don't know if anyone is still here, but I started using the API yesterday - its fantastic!

    I can trigger a recipe using

    GET http://<Brain_IP>:3000/v1/projects/home/rooms/<Room_KEY>/recipes/<Recipe_KEY>/execute

    But I would like the remote to bring up the device specific screen as well.   
    eg. If I press "watch tv" on the remote, it starts up the TV and then brings up the TV channel list on the remote.


    Is this possible with the API?   (or maybe it cannot be done as the API only controls the brain not the remote?)

    Like 1
    • I am looking for the same

      Like
Like33 Follow