Aymkdn / assistant-plugins

Des plugins pour les Assistant (comme Google Home, Cortana, Alexa)
https://aymkdn.github.io/assistant-plugins/
MIT License
92 stars 21 forks source link

freebox server undefined #92

Closed Grouick closed 6 years ago

Grouick commented 6 years ago

Bonjour je rencontre un problème, je vous donne avant ma configuration: installation de l'assistant sur un raspberry pi3 sous RASPBIAN STRETCH avec inter-phase graphique assistant plugins avec 3 plugins: freebox, ifft, notifier. je cherche à faire fonctionné un Google Home et une Freebox V6 (air media actifs sans mot de passe)

le contenu de mon fichier configuration.json:

{
  "main": {
    "pushbullet_token": "o.iLzsBnvR8PGmMfILRAg999B3Zo6s7"
  },
  "plugins": {
    "freebox": {
      "code_telecommande": "106747",
      "search_path": "/Disque dur/Vidéos/",
      "use_Mon_Bouquet": false,
      "box_to_control": "hd1"
    },
    "ifttt": {
      "key": "vd2wb9_gmeCHklJ4K"
    },
    "notifier": {
      "host": "192.168.1.199"
    }
  }
}

au lancement de la commande node index.js j'obtient:

[assistant] Assistant v2.0.2 : Chargement en cours... [assistant] 3 plugins trouvés. [assistant] Chargement du plugin 'freebox' (v2.0.7) [assistant-freebox] Demande d'autorisation auprès du Freebox Server... undefined pi@raspberrypi:~/assistant-plugins $

le freebox server ne me propose aucune action l'heure reste affiché. je ne comprend pas pourquoi il me marque undefined. si vous avez une piste, je serai très intéressé.

Merci à vous Cordialement Cyril D.

Aymkdn commented 6 years ago

Quand tu dis Freebox v6, tu parles bien de la Freebox Révolution ?

Grouick commented 6 years ago

Bonjour, oui tout à fais

2018-01-27 10:44 GMT+01:00 Aymeric notifications@github.com:

Quand tu dis Freebox v6, tu parles bien de la Freebox Révolution ?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Aymkdn/assistant-plugins/issues/92#issuecomment-360973414, or mute the thread https://github.com/notifications/unsubscribe-auth/AVyYY2H2T0VmIFgeMy-nPcg8S3pI68ouks5tOvAPgaJpZM4RvOq9 .

Aymkdn commented 6 years ago

Est-ce que ton RPi est sur le même réseau que ta Freebox ? Si tu fais un ping mafreebox.freebox.fr est-ce que ça fonctionne ?

D:\assistant-plugins>ping mafreebox.freebox.fr

Envoi d’une requête 'ping' sur freeplayer.freebox.fr [212.27.38.253] avec 32 octets de données :
Réponse de 212.27.38.253 : octets=32 temps<1ms TTL=64
Réponse de 212.27.38.253 : octets=32 temps<1ms TTL=64
Réponse de 212.27.38.253 : octets=32 temps<1ms TTL=64
Réponse de 212.27.38.253 : octets=32 temps<1ms TTL=64

Statistiques Ping pour 212.27.38.253:
    Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
    Minimum = 0ms, Maximum = 0ms, Moyenne = 0ms
Grouick commented 6 years ago

je viens de lancer la commande et le ping répond bien. par contre le ping continu sans arrêt;

64 bytes from freeplayer.freebox.fr (212.27.38.253): icmp_seq=159 ttl=64 time=0.412 ms 64 bytes from freeplayer.freebox.fr (212.27.38.253): icmp_seq=160 ttl=64 time=0.383 ms 64 bytes from freeplayer.freebox.fr (212.27.38.253): icmp_seq=161 ttl=64 time=0.391 ms 64 bytes from freeplayer.freebox.fr (212.27.38.253): icmp_seq=162 ttl=64 time=0.413 ms je suis parvenu à le stopper

Aymkdn commented 6 years ago

Oui tu l'arrêtes avec CTRL C.

Mmmhhh bizarre alors... J'imagine que tu as réessayé et qu'à chaque fois le programme s'arrête de la même façon ?

Essaies de redémarrer ton Freebox Serveur peut-être ?

Grouick commented 6 years ago

oui je suis dessus depuis hier soir, et toujours le même message la relance du serveur à rien fait hier. je retente le coup de suite

Grouick commented 6 years ago

rien de neuf toujours le même message: pi@raspberrypi:~ $ ls assistant-plugins python_games Desktop Templates Documents used-eth0-mac.dat.txt Downloads Videos Music zihome-rasp.deb node-v9.4.0-linux-armv6l zodiacertificates.dat node-v9.4.0-linux-armv6l.tar.gz zodiaconfigvarscals.dat Pictures zodiascenarios.dat Public pi@raspberrypi:~ $ cd assistant-plugins pi@raspberrypi:~assistant-plugins $ ls configuration.json node_modules package-lock.json index.js package.json postinstall.js pi@raspberrypi:~assistant-plugins $ node index.js [assistant] Assistant v2.0.2 : Chargement en cours... [assistant] 3 plugins trouvés. [assistant] Chargement du plugin 'freebox' (v2.0.7) [assistant-freebox] Demande d'autorisation auprès du Freebox Server... undefined pi@raspberrypi:~assistant-plugins $

Aymkdn commented 6 years ago

Alors essaie de taper :

wget --no-check-certificate -qO- https://mafreebox.freebox.fr/api_version

Cela devrait retourner :

{
  "api_domain":"gqtfxpb7.fbxos.fr",
  "uid":"35d60c065c69de06d0bd4bf63e13a",
  "https_available":true,
  "https_port":2321,
  "device_name":"Freebox Server",
  "api_version":"4.0",
  "api_base_url":"\/api\/",
  "device_type":"FreeboxServer1,1"
}
Grouick commented 6 years ago

oui je confirme j'ai bien une réponse du même type: pas le même port https

{"api_domain":"5l89hk49.fbxos.fr", "uid":"fd5a7b5a65c148dfb31b2ca9aa7edbe9", "http s_available":true, "https_port":36484, "device_name":"Freebox Server", "api_version ":"4.0", "api_base_url":"\/api\/", "device_type":"FreeboxServer1,1"} pi@raspberrypi

Aymkdn commented 6 years ago

OK donc tout est correct de ce côté là ....

Alors.... Essayons de voir sans le plugin Freebox pour vérifier que le problème vient bien de lui et pas d'autre chose. Pour ça tu peux faire :

npm uninstall assistant-freebox

Puis réessaie de lancer l'assistant et voir si tout se lance normalement.

Si oui, alors réinstalle assistant-freebox avec :

npm install assistant-freebox

Et on essaiera d'autres choses...

Grouick commented 6 years ago

sans le plugin freebox: [assistant] Assistant v2.0.2 : Chargement en cours... [assistant] 2 plugins trouvés. [assistant] Chargement du plugin 'ifttt' (v2.0.0) [assistant-ifttt] Plugin chargé et prêt. [assistant] Chargement du plugin 'notifier' (v2.0.0) [assistant-notifier] Plugin chargé et prêt. [assistant] Prêt à écouter les commandes via PushBullet

la réinstalle du plugin freebox donne le même résultat undefined.

Aymkdn commented 6 years ago

OK....

Alors remplace le contenu du fichier node_modules/assistant-freebox/freebox.js par ce contenu-là, puis relance assistant-plugins

Grouick commented 6 years ago

il y a beaucoup d'info avec la modif.

[assistant] Assistant v2.0.2 : Chargement en cours...
[assistant] 3 plugins trouvés.
[assistant] Chargement du plugin 'freebox' (v2.0.7)
[assistant-freebox] Demande d'autorisation auprès du Freebox Server...
options =>  { url: 'https://mafreebox.freebox.fr/api/v4/login/authorize/',
  method: 'POST',
  json:
   { app_id: 'assistant.plugin.freebox',
     app_name: 'Plugin Freebox pour Assistant',
     app_version: '1.0',
     device_name: 'Assistant' },
  encode: 'utf-8',
  agentOptions: { rejectUnauthorized: false } }
erreur =>  { StatusCodeError: 403 - {"uid":"fd5a7b5a65c148dfb31b2ca9aa7edbe9","success":false,"msg":"L'association de nouvelles applications est désactivée","result":{"password_salt":"YN2/IaX3ExxkdkAdm+53GtPU9KpugGJD","challenge":"tiWU3vxJIhgmEdJX4FQi+cB09rzLW3hR"},"error_code":"new_apps_denied"}
    at new StatusCodeError (/home/pi/assistant-plugins/node_modules/request-promise-core/lib/errors.js:32:15)
    at Request.plumbing.callback (/home/pi/assistant-plugins/node_modules/request-promise-core/lib/plumbing.js:104:33)
    at Request.RP$callback [as _callback] (/home/pi/assistant-plugins/node_modules/request-promise-core/lib/plumbing.js:46:31)
    at Request.self.callback (/home/pi/assistant-plugins/node_modules/request/request.js:186:22)
    at Request.emit (events.js:160:13)
    at Request.<anonymous> (/home/pi/assistant-plugins/node_modules/request/request.js:1163:10)
    at Request.emit (events.js:160:13)
    at IncomingMessage.<anonymous> (/home/pi/assistant-plugins/node_modules/request/request.js:1085:12)
    at Object.onceWrapper (events.js:255:19)
    at IncomingMessage.emit (events.js:165:20)
  name: 'StatusCodeError',
  statusCode: 403,
  message: '403 - {"uid":"fd5a7b5a65c148dfb31b2ca9aa7edbe9","success":false,"msg":"L\'association de nouvelles applications est désactivée","result":{"password_salt":"YN2/IaX3ExxkdkAdm+53GtPU9KpugGJD","challenge":"tiWU3vxJIhgmEdJX4FQi+cB09rzLW3hR"},"error_code":"new_apps_denied"}',
  error:
   { uid: 'fd5a7b5a65c148dfb31b2ca9aa7edbe9',
     success: false,
     msg: 'L\'association de nouvelles applications est désactivée',
     result:
      { password_salt: 'YN2/IaX3ExxkdkAdm+53GtPU9KpugGJD',
        challenge: 'tiWU3vxJIhgmEdJX4FQi+cB09rzLW3hR' },
     error_code: 'new_apps_denied' },
  options:
   { url: 'https://mafreebox.freebox.fr/api/v4/login/authorize/',
     method: 'POST',
     json:
      { app_id: 'assistant.plugin.freebox',
        app_name: 'Plugin Freebox pour Assistant',
        app_version: '1.0',
        device_name: 'Assistant' },
     encode: 'utf-8',
     agentOptions: { rejectUnauthorized: false },
     callback: [Function: RP$callback],
     transform: undefined,
     simple: true,
     resolveWithFullResponse: false,
     transform2xxOnly: false },
  response:
   IncomingMessage {
     _readableState:
      ReadableState {
        objectMode: false,
        highWaterMark: 16384,
        buffer: [BufferList],
        length: 0,
        pipes: null,
        pipesCount: 0,
        flowing: true,
        ended: true,
        endEmitted: true,
        reading: false,
        sync: true,
        needReadable: false,
        emittedReadable: false,
        readableListening: false,
        resumeScheduled: false,
        destroyed: false,
        defaultEncoding: 'utf8',
        awaitDrain: 0,
        readingMore: false,
        decoder: null,
        encoding: null },
     readable: false,
     domain: null,
     _events:
      { end: [Array],
        close: [Array],
        data: [Function],
        error: [Function] },
     _eventsCount: 4,
     _maxListeners: undefined,
     socket:
      TLSSocket {
        _tlsOptions: [Object],
        _secureEstablished: true,
        _securePending: false,
        _newSessionPending: false,
        _controlReleased: true,
        _SNICallback: null,
        servername: 'mafreebox.freebox.fr',
        npnProtocol: false,
        alpnProtocol: false,
        authorized: false,
        authorizationError: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',
        encrypted: true,
        _events: [Object],
        _eventsCount: 9,
        connecting: false,
        _hadError: false,
        _handle: null,
        _parent: null,
        _host: 'mafreebox.freebox.fr',
        _readableState: [ReadableState],
        readable: false,
        domain: null,
        _maxListeners: undefined,
        _writableState: [WritableState],
        writable: false,
        allowHalfOpen: false,
        _bytesDispatched: 294,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: undefined,
        _server: null,
        ssl: null,
        _requestCert: true,
        _rejectUnauthorized: false,
        parser: null,
        _httpMessage: [ClientRequest],
        read: [Function],
        _consuming: true,
        _idleNext: null,
        _idlePrev: null,
        _idleTimeout: -1,
        [Symbol(res)]: [TLSWrap],
        [Symbol(asyncId)]: 14,
        [Symbol(bytesRead)]: 448,
        [Symbol(connect-options)]: [Object] },
     connection:
      TLSSocket {
        _tlsOptions: [Object],
        _secureEstablished: true,
        _securePending: false,
        _newSessionPending: false,
        _controlReleased: true,
        _SNICallback: null,
        servername: 'mafreebox.freebox.fr',
        npnProtocol: false,
        alpnProtocol: false,
        authorized: false,
        authorizationError: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',
        encrypted: true,
        _events: [Object],
        _eventsCount: 9,
        connecting: false,
        _hadError: false,
        _handle: null,
        _parent: null,
        _host: 'mafreebox.freebox.fr',
        _readableState: [ReadableState],
        readable: false,
        domain: null,
        _maxListeners: undefined,
        _writableState: [WritableState],
        writable: false,
        allowHalfOpen: false,
        _bytesDispatched: 294,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: undefined,
        _server: null,
        ssl: null,
        _requestCert: true,
        _rejectUnauthorized: false,
        parser: null,
        _httpMessage: [ClientRequest],
        read: [Function],
        _consuming: true,
        _idleNext: null,
        _idlePrev: null,
        _idleTimeout: -1,
        [Symbol(res)]: [TLSWrap],
        [Symbol(asyncId)]: 14,
        [Symbol(bytesRead)]: 448,
        [Symbol(connect-options)]: [Object] },
     httpVersionMajor: 1,
     httpVersionMinor: 1,
     httpVersion: '1.1',
     complete: true,
     headers:
      { server: 'nginx',
        date: 'Sat, 27 Jan 2018 11:26:43 GMT',
        'content-type': 'application/json; charset=utf-8',
        'transfer-encoding': 'chunked',
        connection: 'close' },
     rawHeaders:
      [ 'Server',
        'nginx',
        'Date',
        'Sat, 27 Jan 2018 11:26:43 GMT',
        'Content-Type',
        'application/json; charset=utf-8',
        'Transfer-Encoding',
        'chunked',
        'Connection',
        'close' ],
     trailers: {},
     rawTrailers: [],
     upgrade: false,
     url: '',
     method: null,
     statusCode: 403,
     statusMessage: 'Forbidden',
     client:
      TLSSocket {
        _tlsOptions: [Object],
        _secureEstablished: true,
        _securePending: false,
        _newSessionPending: false,
        _controlReleased: true,
        _SNICallback: null,
        servername: 'mafreebox.freebox.fr',
        npnProtocol: false,
        alpnProtocol: false,
        authorized: false,
        authorizationError: 'UNABLE_TO_GET_ISSUER_CERT_LOCALLY',
        encrypted: true,
        _events: [Object],
        _eventsCount: 9,
        connecting: false,
        _hadError: false,
        _handle: null,
        _parent: null,
        _host: 'mafreebox.freebox.fr',
        _readableState: [ReadableState],
        readable: false,
        domain: null,
        _maxListeners: undefined,
        _writableState: [WritableState],
        writable: false,
        allowHalfOpen: false,
        _bytesDispatched: 294,
        _sockname: null,
        _pendingData: null,
        _pendingEncoding: '',
        server: undefined,
        _server: null,
        ssl: null,
        _requestCert: true,
        _rejectUnauthorized: false,
        parser: null,
        _httpMessage: [ClientRequest],
        read: [Function],
        _consuming: true,
        _idleNext: null,
        _idlePrev: null,
        _idleTimeout: -1,
        [Symbol(res)]: [TLSWrap],
        [Symbol(asyncId)]: 14,
        [Symbol(bytesRead)]: 448,
        [Symbol(connect-options)]: [Object] },
     _consuming: true,
     _dumped: false,
     req:
      ClientRequest {
        domain: null,
        _events: [Object],
        _eventsCount: 5,
        _maxListeners: undefined,
        output: [],
        outputEncodings: [],
        outputCallbacks: [],
        outputSize: 0,
        writable: true,
        _last: true,
        upgrading: false,
        chunkedEncoding: false,
        shouldKeepAlive: false,
        useChunkedEncodingByDefault: true,
        sendDate: false,
        _removedConnection: false,
        _removedContLen: false,
        _removedTE: false,
        _contentLength: null,
        _hasBody: true,
        _trailer: '',
        finished: true,
        _headerSent: true,
        socket: [TLSSocket],
        connection: [TLSSocket],
        _header: 'POST /api/v4/login/authorize/ HTTP/1.1\r\nhost: mafreebox.freebox.fr\r\naccept: application/json\r\ncontent-type: application/json\r\ncontent-length: 126\r\nConnection: close\r\n\r\n',
        _onPendingData: [Function: noopPendingOutput],
        agent: [Agent],
        socketPath: undefined,
        timeout: undefined,
        method: 'POST',
        path: '/api/v4/login/authorize/',
        _ended: true,
        res: [Circular],
        aborted: undefined,
        timeoutCb: null,
        upgradeOrConnect: false,
        parser: null,
        maxHeadersCount: null,
        [Symbol(outHeadersKey)]: [Object] },
     request:
      Request {
        domain: null,
        _events: [Object],
        _eventsCount: 5,
        _maxListeners: undefined,
        method: 'POST',
        encode: 'utf-8',
        agentOptions: [Object],
        readable: true,
        writable: true,
        explicitMethod: true,
        _qs: [Querystring],
        _auth: [Auth],
        _oauth: [OAuth],
        _multipart: [Multipart],
        _redirect: [Redirect],
        _tunnel: [Tunnel],
        _rp_resolve: [Function],
        _rp_reject: [Function],
        _rp_promise: [Promise],
        _rp_callbackOrig: undefined,
        callback: [Function],
        _rp_options: [Object],
        headers: [Object],
        setHeader: [Function],
        hasHeader: [Function],
        getHeader: [Function],
        removeHeader: [Function],
        localAddress: undefined,
        pool: [Object],
        dests: [],
        __isRequestRequest: true,
        _callback: [Function: RP$callback],
        uri: [Url],
        proxy: null,
        tunnel: true,
        setHost: true,
        originalCookieHeader: undefined,
        _disableCookies: true,
        _jar: undefined,
        port: 443,
        host: 'mafreebox.freebox.fr',
        path: '/api/v4/login/authorize/',
        _json: true,
        body: '{"app_id":"assistant.plugin.freebox","app_name":"Plugin Freebox pour Assistant","app_version":"1.0","device_name":"Assistant"}',
        httpModule: [Object],
        agentClass: [Function],
        agent: [Agent],
        _started: true,
        href: 'https://mafreebox.freebox.fr/api/v4/login/authorize/',
        req: [ClientRequest],
        ntick: true,
        response: [Circular],
        originalHost: 'mafreebox.freebox.fr',
        originalHostHeaderName: 'host',
        responseContent: [Circular],
        _destdata: true,
        _ended: true,
        _callbackCalled: true },
     toJSON: [Function: responseToJSON],
     caseless: Caseless { dict: [Object] },
     read: [Function],
     body:
      { uid: 'fd5a7b5a65c148dfb31b2ca9aa7edbe9',
        success: false,
        msg: 'L\'association de nouvelles applications est désactivée',
        result: [Object],
        error_code: 'new_apps_denied' } } }
[assistant-freebox] Récupération des chaines télé...
[assistant-freebox] Récupération des chaines terminée !
[assistant-freebox] Plugin chargé et prêt.
[assistant] Chargement du plugin 'ifttt' (v2.0.0)
[assistant-ifttt] Plugin chargé et prêt.
[assistant] Chargement du plugin 'notifier' (v2.0.0)
[assistant-notifier] Plugin chargé et prêt.
[assistant] Prêt à écouter les commandes via PushBullet
Aymkdn commented 6 years ago

Ouais, et ça indique l'erreur : L'association de nouvelles applications est désactivée

Tu as désactivé les applications sur ton Freebox Serveur ....

Connecte toi sur ta Freebox Serveur via http://mafreebox.freebox.fr/login.php puis va dans : Paramètres de la Freebox > Mode Simplifié > Gestion des accès

Puis dans la zone "Applications" tu dois cocher la case Permettre les nouvelles demandes d'association

Aymkdn commented 6 years ago

Une fois fait, remets le fichier freebox.js d'origine (tu peux le trouver là) et relance le programme

Grouick commented 6 years ago

oui cette fonction est désactivée volontairement. je réactive pour l'associé. ça fonctionne bien, merci beaucoup [assistant] Assistant v2.0.2 : Chargement en cours... [assistant] 3 plugins trouvés. [assistant] Chargement du plugin 'freebox' (v2.0.7) [assistant-freebox] Demande d'autorisation auprès du Freebox Server... options => { url: 'https://mafreebox.freebox.fr/api/v4/login/authorize/', method: 'POST', json: { app_id: 'assistant.plugin.freebox', app_name: 'Plugin Freebox pour Assistant', app_version: '1.0', device_name: 'Assistant' }, encode: 'utf-8', agentOptions: { rejectUnauthorized: false } } response => { success: true, result: { app_token: 'BPPRu4J1BfFf7QdZrEK+vlbffy4hpAm79keY9l/R/Kx+QLJzQHisFst0xN0ux0YC', track_id: 0 } } [assistant-freebox] Approuvez le plugin en allant sur l'écran LCD de votre Freebox Serveur et en utilisant la flèche de droite sur celui-ci. [assistant-freebox] Le plugin a été autorisé sur la Freebox [assistant-freebox] Configuration terminée. Vous êtes prêt à utiliser le plugin Freebox. [assistant-freebox] Récupération des chaines terminée ! [assistant-freebox] Plugin chargé et prêt. [assistant] Chargement du plugin 'ifttt' (v2.0.0) [assistant-ifttt] Plugin chargé et prêt. [assistant] Chargement du plugin 'notifier' (v2.0.0) [assistant-notifier] Plugin chargé et prêt. [assistant] Prêt à écouter les commandes via PushBullet [assistant-freebox] Configuration sauvegardée. [assistant] Commande reçue: [ 'freebox_zappe sur la 5' ] [assistant] Appelle du plugin 'freebox' [assistant-freebox] Durée de la vérification de la Freebox allumée : 892ms [assistant-freebox] Url => http://hd1.freebox.fr/pub/remote_control?code=10674741&key=5 [assistant-freebox] Commande « zappe sur la 5 » exécutée [assistant] Commande reçue: [ 'freebox_zappe sur FM' ] [assistant] Appelle du plugin 'freebox' [assistant-freebox] Chaine fm inconnue [assistant-freebox] Aucune action nécessaire. [assistant-freebox] Commande « zappe sur FM » exécutée

Grouick commented 6 years ago

en remettant le fichier : [assistant] Assistant v2.0.2 : Chargement en cours... [assistant] 3 plugins trouvés. [assistant] Chargement du plugin 'freebox' (v2.0.7) [assistant-freebox] Récupération des chaines terminée ! [assistant-freebox] Plugin chargé et prêt. [assistant] Chargement du plugin 'ifttt' (v2.0.0) [assistant-ifttt] Plugin chargé et prêt. [assistant] Chargement du plugin 'notifier' (v2.0.0) [assistant-notifier] Plugin chargé et prêt. [assistant] Prêt à écouter les commandes via PushBullet

je vous Remercie beaucoup pour le développement de cette application et pour votre Aide. vous êtes au top. ;)