Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,

 

as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.

 

As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!

 

Regards,

Smart Home Forum by FIBARO Team


  • 0

Neato Connected


Question

Posted

Hi

 

Does anyone have a virtual device for the Neato Connected? 

 

It has Alexa support, so would think it can be connected to the HC2?

 

Please login or register to see this link.

  • Like 2

11 answers to this question

Recommended Posts

  • 0
Posted

The topic has been moved from "

Please login or register to see this link.

" to "

Please login or register to see this link.

".

 

Temat został przeniesiony z "

Please login or register to see this link.

" do "

Please login or register to see this link.

".

  • 0
Posted

Did you find any solution or plugin to this? I just bought a Neato D5 Connected and I'm very interested in adding it to me Fibaro panel.

  • 0
Posted

Hi !.

 

Same thinks for me. I have a Neato D7, and I would like to launch it with the HC2 automatically when we aren't in the house. Do you find a solution ? Thanks.

 

Arnaud (from France)

  • 0
Posted

You can do it by connecting FIBARO to IFTTT and connect Neato also to IFTTT.

  • Like 1
  • 0
Posted

Anyone have a Luea scene build up to update value's of a virtual device.

i looked into the documentation of Neato and i can get some info with post requests from their API but the problem is that some part of the post request needs to be converted into a HMAC256.

Anyone that can help on that one ?

  • 0
Posted

can anyone maybe offer help to put this in a quickapp ?
in meanwhile i have my robot working with post requests in JSON reply but the coding issue still remains that a HMAC256 is required which i do not know how to code.

  • 0
Posted
20 godzin temu, Christophe van vossel napisał:

can anyone maybe offer help to put this in a quickapp ?
in meanwhile i have my robot working with post requests in JSON reply but the coding issue still remains that a HMAC256 is required which i do not know how to code.

 

  • 0
Posted

I understand that tinman made some library but also there i am afraid i have no skills in computing this.
i am currently trying to first make a correct post request in JSON to the nucleo cloud, for the moment i am stuck on a invalid date header for example as Neato requires it tobe in a specific way.
The screenshot below shows what i did in postman and it works beautifull :-)
If anyone could help we could make a contribution to finally have neato products working in Homecenter which i think should be possible since you can command them remotely.

 

error for the moment trying to get a good command togo out.

[03.11.2024] [18:13:26] [DEBUG] [SCENE9]: {"message":"Unacceptable range for date"}

 

my coding so far in HC 3 scene is the following:

 

 

local url = "https://nucleo.neatocloud.com:4443/vendors/neato/robots/OPSXXXXXXXXXXXXX/messages"
local Timestamp = os.date("%a, %d %b %Y %X GMT")
local Payload = '{"reqId": "77", "cmd": "getRobotState"}'
 
net.HTTPClient():request(url, {
    options={
        method = 'POST',
            headers = {
                       ["Accept"] = "application/vnd.neato.nucleo.v1",
                       ["Content-Type"] = "application/json",
                       ["Date"] = os.date("%a, %d %b %Y %X GMT"),
                       ["Authorization"] = "NEATOAPP {{signature}}"
            },
            data = Payload,
        timeout = 5000
    },
    success = function(response)
        hub.debug("Scene9", response.data)
    end,
    error = function(errorMessage)
        hub.debug("Scene9", "HTTPClient error" .. errorMessage)
    end
})


i attached the configuration i did in postman

Please login or register to see this attachment.

  • 0
Posted

Solved the Date issue with a lua convertor :-) 

Please login or register to see this link.

it showed me the difference from the example on the neato developer website.
although my date was correct it did not accept it as it was missing a ! sign.

output of the lua convertor was the following based on the example of neato themselves.

 

translated to Lua
-- Using Lua and OpenSSL library equivalents

-- request params
local robot_serial = "123456789"
local date = os.date("!%a, %d %b %Y %H:%M:%S GMT") -- UTC date format
-- => "Fri, 03 Apr 2015 09:12:31 GMT"
local body = '{"reqId":"77", "cmd":"getRobotState"}'
local robot_secret_key = "sgbuysg5oiuemrvoiuw3g5o23rtq3yiuaegroiuaregnq3o5iyun"

-- build string to be signed
local string_to_sign = string.lower(robot_serial) .. "\n" .. date .. "\n" .. body

-- create signature with SHA256
local signature = openssl.hmac("sha256", robot_secret_key, string_to_sign)

  • 0
Posted
On 10/30/2024 at 9:55 AM, marczu_83 said:

 

Did get so far already to create a button that is firing off a script written in the quickapp but i keep getting errors so i believe i need some coding help here.

 

function QuickApp:getrobotinfo()
    local robotserial = "xxxxxxxxxxx"
    local robotseriallow = string.lower(robotserial)
    local robotsecret = "xxxxxxxxxxxxxxxx"
    local date = tostring(os.date("!%a, %d %b %Y %X GMT"))
    local string_to_sign = robotseriallow .. "\n".. date .. "\n" .. requestbody
    local requestbody = '{"reqId": "77", "cmd": "getRobotState"}'
    local signature = sha.hmac(sha.sha256, robotsecret, string_to_sign)
    local binary_hash = sha.hex2bin(hmac)
    local base64_hash = sha.bin2base64(binary_hash)
    self.http = net.HTTPClient({timeout=5000})
   
 
    self.http:request("https://nucleo.neatocloud.com:4443/vendors/neato/robots/OPS02217-985DADC5A1BA/messages", {
          options = {
              data = json.encode(requestbody),
              method = "POST",
              checkCertificate = false,
              headers = {
                ["Accept"] = "application/vnd.neato.nucleo.v1",
                ["Content-Type"] = "application/json",
                ["Date"] = os.date("!%a, %d %b %Y %X GMT"),
                ["Authorization"] = "NEATOAPP" + " " + signature,
              }
          },
          success = function(response)
              self:debug(response.status)
              self:debug(response.data)
          end,
          error = function(message)
              self:debug("error:", message)
          end
      })
end



[07.11.2024] [19:53:43] [TRACE] [QUICKAPP53]: UIEvent: {"eventType":"onReleased","elementName":"button_ID_2_1","deviceId":53,"values":[]}[07.11.2024] [19:53:43] [DEBUG] [QUICKAPP53]: ./include/Neato_Robot_Info.lua:6: attempt to concatenate a nil value (global 'requestbody')[07.11.2024] [19:53:43] [ERROR] [QUICKAPP53]: QuickApp crashed[07.11.2024] [19:53:43] [ERROR] [QUICKAPP53]: Unknown error occurred: handleJsonRpc

 

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...