relm923 / MMM-Roomba

Roomba980 module for the Magic Mirror.
MIT License
10 stars 5 forks source link

Help with Roomba module #11

Open ryanrgbr opened 3 years ago

ryanrgbr commented 3 years ago

@relm923 Hey there, I have a question in regards to this Module. I currently own a roomba i7 vacuum and just wanted to view the live stats of it up on my magic mirror. I don't exactly want to control it via the mirror. Firstly, is this model robot even compatible with this module and if so, would i need to follow the Dorita980 method? Is there an easier way of doing it? I'm new to the whole github community so I'm still learning. Your help and advice would be much appreciated.

-Ryan

fischbear commented 3 years ago

Is only "Loading" on Screen? My MM shows my only loading! The Logs told me that the SSL is the Problem.

But i didnt understand how include this:

_Error: SSL routines:OPENSSL_internal:NO_CIPHER_MATCH - Node v12

Solution: ROBOT_CIPHERS=AES128-SHA before staring MagicMirror_

Could anybody help me?

plumcraft commented 3 years ago

You need to export the variable before starting the MagicMirror script

try ROBOT_CIPHERS=AES128-SHA npm start

hope that works for you

fischbear commented 3 years ago

Should i do this only one time or everytime before i Start MagicMirror?

fischbear commented 3 years ago

Sorry! I pur into Putty but he didnt understand the command! Could you explain ist for dummys? Please

plumcraft commented 3 years ago

Every time you launch your MagicMirror, you need it

Go to your MagicMirror folder and run

ROBOT_CIPHERS=AES128-SHA npm start

Does it work do you ?

You can use pm2 to execute your MagicMirror script at startup

fischbear commented 3 years ago

many thanks for your effort! I finished MagicMirorr and did the following:

cd ~ / MagicMirror ROBOT_CIPHERS = AES128-SHA npm start

MagicMirror starts ...

MagicMirror still says "LOADING" :-(

As in the instructions, I can get the username and password from Roomba and the example script to start the cleaning process also works perfectly.

Where is the mistake?

plumcraft commented 3 years ago

Do you have an error when checking error logs file ? Or output of npm start ?

Did you run npm install into a module folder ?

Cheers

fischbear commented 3 years ago

npm ERR! A complete log of this run can be found in: npm ERR! /home/pi/.npm/_logs/2020-09-30T05_05_31_066Z-debug.log npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! magicmirror@2.11.0 start: DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the magicmirror@2.11.0 start script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in: npm ERR! /home/pi/.npm/_logs/2020-09-30T05_06_36_951Z-debug.log [2020-09-30 07:07:46.014] [ERROR] Error: error:100000b1:SSL routines:OPENSSL_internal:NO_CIPHER_MATCH at Object.createSecureContext (_tls_common.js:177:13) at Object.connect (_tls_wrap.js:1401:48) at Object.buildBuilder (/home/pi/MagicMirror/modules/MMM-Roomba/node_modules/mqtt/lib/connect/tls.js:13:20) at MqttClient.wrapper [as streamBuilder] (/home/pi/MagicMirror/modules/MMM-Roomba/node_modules/mqtt/lib/connect/index.js:140:36) at MqttClient._setupStream (/home/pi/MagicMirror/modules/MMM-Roomba/node_modules/mqtt/lib/client.js:277:22) at new MqttClient (/home/pi/MagicMirror/modules/MMM-Roomba/node_modules/mqtt/lib/client.js:258:8) at Object.connect (/home/pi/MagicMirror/modules/MMM-Roomba/node_modules/mqtt/lib/connect/index.js:143:10) at localV2 (/home/pi/MagicMirror/modules/MMM-Roomba/node_modules/dorita980/lib/v2/local.js:30:23) at new local (/home/pi/MagicMirror/modules/MMM-Roomba/node_modules/dorita980/index.js:17:10) at Class.updateStats (/home/pi/MagicMirror/modules/MMM-Roomba/node_helper.js:53:16) at Class.scheduleUpdates (/home/pi/MagicMirror/modules/MMM-Roomba/node_helper.js:95:8) at Class.handleStartNotification (/home/pi/MagicMirror/modules/MMM-Roomba/node_helper.js:45:8) at Class.socketNotificationReceived (/home/pi/MagicMirror/modules/MMM-Roomba/node_helper.js:28:10) at Socket. (/home/pi/MagicMirror/js/node_helper.js:113:11) at Socket.emit (events.js:200:13) at /home/pi/MagicMirror/node_modules/socket.io/lib/socket.js:528:12 at processTicksAndRejections (internal/process/task_queues.js:82:9) { library: 'SSL routines', function: 'OPENSSL_internal', reason: 'NO_CIPHER_MATCH', code: 'ERR_SSL_NO_CIPHER_MATCH' }

Log (/home/pi/.npm/_logs/2020-09-30T05_05_31_066Z-debug.log)

0 info it worked if it ends with ok 1 verbose cli [ '/usr/bin/node', '/usr/local/bin/npm', 'start' ] 2 info using npm@6.14.5 3 info using node@v10.21.0 4 verbose run-script [ 'prestart', 'start', 'poststart' ] 5 info lifecycle magicmirror@2.11.0~prestart: magicmirror@2.11.0 6 info lifecycle magicmirror@2.11.0~start: magicmirror@2.11.0 7 verbose lifecycle magicmirror@2.11.0~start: unsafe-perm in lifecycle true 8 verbose lifecycle magicmirror@2.11.0~start: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/pi/MagicMirror/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/g$ 9 verbose lifecycle magicmirror@2.11.0~start: CWD: /home/pi/MagicMirror 10 silly lifecycle magicmirror@2.11.0~start: Args: [ '-c', 10 silly lifecycle 'DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js' ] 11 silly lifecycle magicmirror@2.11.0~start: Returned: code: 1 signal: null 12 info lifecycle magicmirror@2.11.0~start: Failed to exec start script 13 verbose stack Error: magicmirror@2.11.0 start: DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js 13 verbose stack Exit status 1 13 verbose stack at EventEmitter. (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16) 13 verbose stack at EventEmitter.emit (events.js:198:13) 13 verbose stack at ChildProcess. (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14) 13 verbose stack at ChildProcess.emit (events.js:198:13) 13 verbose stack at maybeClose (internal/child_process.js:982:16) 13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5) 14 verbose pkgid magicmirror@2.11.0 15 verbose cwd /home/pi/MagicMirror 16 verbose Linux 5.4.47-v7+ 17 verbose argv "/usr/bin/node" "/usr/local/bin/npm" "start" 18 verbose node v10.21.0 19 verbose npm v6.14.5 20 error code ELIFECYCLE 21 error errno 1 22 error magicmirror@2.11.0 start: DISPLAY="${DISPLAY:=:0}" ./node_modules/.bin/electron js/electron.js 22 error Exit status 1 23 error Failed at the magicmirror@2.11.0 start script. 23 error This is probably not a problem with npm. There is likely additional logging output above. 24 verbose exit [ 1, true ]

fischbear commented 3 years ago

What does ist mean (Did you run npm install into a module folder ?)

plumcraft commented 3 years ago

Did you run the command "npm install" inside the module folder (after git clone the repo)

fischbear commented 3 years ago

yes! I installed first Dorita und than this Plugin. Then I read out the access data from roomba with dorita and wrote it in config.js.,

plumcraft commented 3 years ago

Works for me , don't understand 😕

relm923 commented 3 years ago

@plumcraft are you still having issues?

Doemy commented 3 years ago

Hi!

I have the same Problem. Tryed 2 980-Robots, at both the same. under the header only loading...

Anyone an Idea? Thanks

Doemy

mrhawkin commented 2 years ago

I have the same issue.

However if I replace the line in dorita980/lib/v2/local.js from: ciphers: process.env.ROBOT_CIPHERS || 'AES128-SHA256', to ciphers: 'TLS_AES_256_GCM_SHA384' || 'AES128-SHA256',

I don't get the NO_CIPHER_MATCH error anymore. But still the module is just in state "Loading.."

possibility to reopen this issue @relm923 ?

relm923 commented 2 years ago

@mrhawkin happy to reopen if there are issues

Are you able to connect to your Roomba using Dorita980 directly to retrieve the username/password?

Are you seeing anything related to MMM-Roomba in your MagicMirror logs? I find it easier to disable all other modules and debug a single on at a time

mrhawkin commented 2 years ago

Yes I have successfully managed to use the getPasswordCloud.js script to get the BLID and the password for the robots. I had to modify the package.json in this repo to get the newer version of dorita980 that included that script though: "dorita980": "^3.1.11"

FYI: I have 2 iRobots, one 960 model with 2.x firmware, and one i7 with 3.2 firmware. So they both require the V2 lib

relm923 commented 2 years ago

I have an 980 and i7 as well on 3.20.7 both our working today for me. I did just update dorita980 to 3.1.1 and pushed the change on this repo. I have not use the getPasswordCloud.js so I can't say if that piece works

A few things to check:

mrhawkin commented 2 years ago

PS: I also tried the getPasword.js script instead of the newer cloud version. It managed to get the BLID and password from 960 model and it corresponded to what I got of result from the Cloud script.