Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

demande pour domotique #10

Open
hornet49 opened this issue Nov 24, 2017 · 59 comments
Open

demande pour domotique #10

hornet49 opened this issue Nov 24, 2017 · 59 comments
Assignees

Comments

@hornet49
Copy link

hornet49 commented Nov 24, 2017

ti Bonjour d'Angers ;-)
serait il possible de faire une version encore plus "light" de façon à envoyer la notification via une requête http? (pas de conversion wav, pas de airtune, pas besoin de synthèse de voix et pas de manipulation de fichiers sons)
j'utilise impérihome pour faire la notification domotique chez moi.
voici l'exemple d'une notification impérihome.
http://[IP tablette]:[port]/api/rest/speech/tts?text=appel%20entrant%20de
vous pensez que c'est possible ?
sinon je vais regarder ton code mais je suis pas programmeur donc je vais passer bcp de temps sans y arriver forcément lol.
Merci d'avance pour votre aide en tout cas c'est un très beau projet !!!! félicitation ;-)
En tout cas si c'est possible je pense que cela va intéresser bcp d'utilisateur de box domotique...

@jystervinou
Copy link
Owner

Bonjour,

Oui. Il faudrait envoyer le même texte que celui envoyé par SMS ? (en paramètre d'une URL à paramétrer) ou tout le fichier json de l'appel (qui contient le numéro, le nom etc...) ?

Au final cet envoi provoque quoi ?

@hornet49
Copy link
Author

une notification vocal dans mon salon lol

@hornet49
Copy link
Author

j'ai déjà un serveur node.js sous windows 7 qui tourne pour sarah (https://blog.encausse.net/sarah/)

@jystervinou
Copy link
Owner

OK.

Tu as déjà essayé d'installer Freebox Caller ID sur le serveur windows 7 ?
Pour le moment je n'ai testé que pour linux, il faut voir pour les utilitaires utilisés (ffmpeg, sox, Svoxpico...).

Même si dans le cas d'une notification par http, elles ne serviront pas en fait, ça peut servir à d'autres.

Je regarde pour la demande.

@hornet49
Copy link
Author

je suis au taff là pour l'instant, mais je regarde ça ce week end ;-) chuttttttt lol

@jystervinou
Copy link
Owner

jystervinou commented Nov 24, 2017

C'est fait, merci de me dire si ça marche.

La doc n'est pas encore à jour, il faut mettre dans le fichier de conf (je reprends ton exemple d'url) :

{
  "httpget":[{
    "url" : "http://[IP tablette]:[port]/api/rest/speech/tts?text="
    "template" : "{{=call.number}}"
  }]
}

  • il s'agit d'un Array, car tu peux mettre plusieurs confs pour notifier plusieurs URL

  • le champ template est optionnel. (sinon ça utilise le template par défaut)

  • le texte de la notification est ajouté à la fin du l'url spécifiée, encodé avec "url encode".

@ghost
Copy link

ghost commented Nov 25, 2017

Bonjour,
Tout d'abord merci pour ce script.

Je ne m'y connais pas vraiment en js mais par hasard, serait il possible, à partir du code de lancer une commande script linux avec le fichier son en paramètre ?

En effet, je souhaite diffuser le son sur mes Chromecast et Google Home dans la maison.

J'ai déjà un script pour ça, en python mais il faudrait justement pouvoir exécuter ce script pour envoyer le son sur les Chromecast et Google Home.

Voici la syntaxe d'envoi :
/var/www/html/plugins/script/core/ressources/stream2chromecast.py -devicename 192.168.0.XX lienverslefichier

Si vous souhaitez le script, je peux vous l'envoyer si vous voulez.

Merci d'avance,
MaximePrince

@jystervinou
Copy link
Owner

jystervinou commented Nov 25, 2017 via email

@ghost
Copy link

ghost commented Nov 25, 2017

Merci beaucoup.

Oui effectivement le script est bien sur le même serveur.

@hornet49
Copy link
Author

hum :-/ voici le message d'erreur que j'ai:

C:\Users\Salon\Desktop\freebox-caller-id-master>caller_id

C:\Users\Salon\Desktop\freebox-caller-id-master\caller_id.js:56
script.command('init').description("Requests authorization").action( ()=> {
^
SyntaxError: Unexpected token )
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3

ça te parle ?
sachant que j'ai juste installé un serveur node.js et aucun complément (FFmpeg, Svoxpico ni Sox) car sous windows 7.
pour info:
j'ai simplement installé sarah, qui install un serveur node.js sur windows. après j'ai configurer le default.json en ne mettant que ce que:
{
"httpget":[{
"url" : "http://[IP tablette]:[port]/api/rest/speech/tts?text="
"template" : "{{=call.number}}"
}]
}
(avec la bonne IP et port biensur)
et j'ai configurer windows pour qu'il ouvre caller_id.js avec node.exe par default.
j'ai loupé un truc ?

@jystervinou
Copy link
Owner

c'est quelle version de Node ? (node -v)

@hornet49
Copy link
Author

c'est justement ce que j'étais entrain de regarder tu vas rire lol
V0.10.12
bon je crois que je vais mettre à jour...

@jystervinou
Copy link
Owner

Je me traine encore cette version à certains endroits..

Mais comme certaines librairies que j'utilise nécessitent un version de node plus récente, il faut aussi une version de node plus récente pour ce script.

@Laulo7
Copy link

Laulo7 commented Nov 26, 2017

Bonjour,

serait il possible de rajouter une petite fonction "domotique":
Si 'Entrée x' ou Entrée y' du Raspberry Pi, alors envoi SMS avec message personnalisable en fonction de l'entrée active. (par ex.: permet d'envoyer SMS si alarme sonne ou autre ....)

Merci par avance.

@jystervinou
Copy link
Owner

@Laulo7 bonjour. je ne comprends pas bien, il y a un lien avec Freebox Caller ID ou pas du tout ? Merci de me donner un exemple complet.

@hornet49
Copy link
Author

@Laulo7 , pourquoi n'installes tu pas une version de JEEDOM sur ton Raspberry pi ?
@jystervinou je viens de réinstaller la dernière version de nodejs pour windows. donc maintenant je suis en 8.9.1
j'ouvre un command prompt node.js
et je lance npm install au début il télécharge quelques truc puis j'ai cette erreur:

npm ERR! code ENOGIT
npm ERR! No git binary found in $PATH
npm ERR!
npm ERR! Failed using git.
npm ERR! Please check if you have git installed and in your PATH.

et dans le fichier de log j'ai ça:
174 silly fetchPackageMetaData error for node-freeboxos@github:jystervinou/node-freeboxos No git binary found in $PATH
175 silly fetchPackageMetaData error for airtunes@github:jystervinou/node_airtunes No git binary found in $PATH

du coup au final le module "node-freeboxos" n'est pas installé :-(
est ce qu'on peut l'installer manuellement ?

@jystervinou
Copy link
Owner

jystervinou commented Nov 26, 2017 via email

@hornet49
Copy link
Author

oui, j'avais déjà fait ça:
j'ai installé git pour windows sur: git-scm.com
après j'ouvre la fenettre GIT CMD
puis la commande:
git clone https://github.com/jystervinou/freebox-caller-id.git
ça m'a copié le dossier freebox-caller-id sur mon bureau
mais bon ça marche pas mieux :-(

@jystervinou
Copy link
Owner

jystervinou commented Nov 26, 2017 via email

@hornet49
Copy link
Author

effectivement j'avais plusieurs choix j'ai peut être pas prit le bon je vais essayer un autre choix je test ;-)

@hornet49
Copy link
Author

Ok, j'ai rajouter le path et surtout (c'était ça le problème) exécuter en administrateur !!!
donc cette commande ok ça marche => git clone https://github.com/jystervinou/freebox-caller-id.git
ensuite je fais la commande suivante dans le bon répertoir: npm install
là j'ai d'autre problème bon je pense que c'est parce que j'ai pas installer visual studio :-/
C:\Users\Production49\Desktop\freebox-caller-id> npm install

airtunes@0.1.7 install C:\Users\Production49\Desktop\freebox-caller-id\node_mo
dules\airtunes
node-gyp rebuild

C:\Users\Production49\Desktop\freebox-caller-id\node_modules\airtunes>if not def
ined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\nod
e-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node ""
rebuild )
Génération des projets individuellement dans cette solution. Pour activer la gén
ération en parallèle, ajoutez le commutateur "/m".
MSBUILD : error MSB3428: Impossible de charger le composant Visual C++ "VCBuild
.exe". Pour corriger le problème, vous devez 1) installer le Kit de développeme
nt .NET Framework 2.0 SDK, 2) installer Microsoft Visual Studio 2005 ou 3) ajou
ter l'emplacement du composant au chemin d'accès système, s'il est installé ail
leurs. [C:\Users\Production49\Desktop\freebox-caller-id\node_modules\airtunes
build\binding.sln]
gyp ERR! build error
gyp ERR! stack Error: C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe failed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (C:\Program Files\nodejs\node_modules
npm\node_modules\node-gyp\lib\build.js:258:23)
gyp ERR! stack at emitTwo (events.js:126:13)
gyp ERR! stack at ChildProcess.emit (events.js:214:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_proces
s.js:198:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodej
s\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\Production49\Desktop\freebox-caller-id\node_modules\airtun
es
gyp ERR! node -v v8.9.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm WARN freebox-caller-id@0.8.0 license should be a valid SPDX license expressi
on

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! airtunes@0.1.7 install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the airtunes@0.1.7 install script.
npm ERR! This is probably not a problem with npm. There is likely additional log
ging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Production49\AppData\Roaming\npm-cache_logs\2017-11-26T18
_12_39_754Z-debug.log

C:\Users\Production49\Desktop\freebox-caller-id>node caller_id.js init
module.js:538
throw err;
^

Error: Cannot find module 'airtunes'
at Function.Module._resolveFilename (module.js:536:15)
at Function.Module._load (module.js:466:25)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object. (C:\Users\Production49\Desktop\freebox-caller-id\calle
r_id.js:6:16)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)

@jystervinou
Copy link
Owner

jystervinou commented Nov 26, 2017

hum.

mmm, essaye d'installer ces modules individuellement (à la place du npm install) :

https://github.com/jystervinou/freebox-caller-id/blob/master/package.json

npm install commander
npm install request
npm install config
npm install dot
npm install winston

ils ne devraient pas poser de problème.

Ensuite essayer celui-là :

npm install github:jystervinou/node-freeboxos

Si ça marche c'est carrément la fête.

C'est celui-ci qui plante, car il nécessite une compilation:

npm install github:jystervinou/node_airtunes

Coupe Davis les gars :-D

@hornet49
Copy link
Author

bon j'avance, j'avance... visual studio installer et exécution dans le répertoire des modules (ça marche mieux que celui que j'avais copier sur le bureau)
bon nouvelle erreur.... là je bloque...

C:\Program Files\nodejs\node_modules\npm\node_modules>npm install
npm WARN deprecated ignore@2.2.19: several bugs fixed in v3.2.1

npm@5.5.1 prepare C:\Program Files\nodejs\node_modules\npm
node bin/npm-cli.js --no-timing prune --prefix=. --no-global && rimraf test/*/
*/node_modules && make -j4 doc

npm notice created a lockfile as package-lock.json. You should commit this file.

npm WARN ajv-keywords@1.5.1 requires a peer of ajv@>=4.10.0 but none is installe
d. You must install peer dependencies yourself.

up to date in 2.4s
'rimraf' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! npm@5.5.1 prepare: node bin/npm-cli.js --no-timing prune --prefix=. -- no-global && rimraf test/*/*/node_modules && make -j4 doc
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the npm@5.5.1 prepare script.
npm ERR! This is probably not a problem with npm. There is likely additional log
ging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Production49\AppData\Roaming\npm-cache_logs\2017-11-26T18
_34_34_481Z-debug.log

@jystervinou
Copy link
Owner

jystervinou commented Nov 26, 2017

Instructions à tenter pour Windows.

Option 1

Install all the required tools and configurations using Microsoft's windows-build-tools using npm install --global --production windows-build-tools from an elevated PowerShell or CMD.exe (run as Administrator).

Option 1

Installer tous les outils et les configurations nécessaires en utilisant windows-build-tools de Microsoft avec la commande npm install --global --production windows-build-tools à partir de PowerShell ou CMD.exe (avec un compte Administrateur).

Plus d'infos chez Microsoft.

@jystervinou
Copy link
Owner

jystervinou commented Nov 26, 2017

@hornet49 c'est quelle commande qui génère cette dernière erreur ?

Tout le bazar windows-build-tools installé ?

@Laulo7
Copy link

Laulo7 commented Nov 26, 2017

@hornet49: Bonsoir, suis pas expert, mais il me semble qu'avec JEEDOM l'envoi SMS est payant

@jystervinou
En fait l'idée est d'interagir en fonction de du nom / N° appelant pour faire un signal lumineux lorsqu'on est à l’extérieur chez soi et pas avec son portable pour pas loupé un appel important (je sais, j'ai cas prendre mon portable, mais qu'en on jardine ou bricole pas évident). La gestion d'entrée permettrait par exemple d'activer ou pas cette fonction via un switch et en avoir confirm par SMS.

@jystervinou
Copy link
Owner

@Laulo7 ok, je vois mieux le but, mais je ne comprends toujours pas de quelles entrées tu parles ? Désolé je débute en raspberry pi :-)

@Laulo7
Copy link

Laulo7 commented Nov 28, 2017

@MaximePrince
Bonsoir, merci pour l'info.
Dans ce cas, comment faire tourner Jeedom (&Free Mobile SMS) et freebox-caller-id en même temps?
Je débute moi aussi en Rasberry et connait pas Jeedom...
Merci.

@jystervinou
Bonsoir, En fait je débute moi aussi en Rasberry. En fait voici des exemples:
http://nagashur.com/blog/2013/01/01/controler-une-led-depuis-les-ports-gpio-du-raspberry-pi/
https://elinux.org/RPi_GPIO_Code_Samples
https://learn.sparkfun.com/tutorials/raspberry-gpio#c-wiringpi-example
https://myelectronicslab.com/raspberry-pi-gpio-programming-c-wiring-pi-tutorial/
Merci.

@jystervinou
Copy link
Owner

jystervinou commented Nov 28, 2017

@Laulo7 ok, j'y vois plus clair. en fait ce serait plutôt d'utiliser une sortie qu'une entrée ;)

il y a des modules nodes pour ça, donc ça devrait le faire.

à suivre..

@Laulo7
Copy link

Laulo7 commented Nov 28, 2017

@jystervinou oui une sortie mais aussi une entrée pour avoir un bouton pour activer l'option (pour pas faire sapin de noël ... )

@jystervinou
Copy link
Owner

c'est à dire ? exemple ?

@hornet49
Copy link
Author

Salut de retour,
j'ai installé le windows-build-tools de Microsoft en admin ça a fonctionné.
j'avance un peu plus mais j'ai une autre erreur maintenant :-(
voici le code:

C:\Program Files\nodejs\node_modules\npm\node_modules\freebox-caller-id>npm inst
all

airtunes@0.1.7 install C:\Program Files\nodejs\node_modules\npm\node_modules\f
reebox-caller-id\node_modules\airtunes
node-gyp rebuild

C:\Program Files\nodejs\node_modules\npm\node_modules\freebox-caller-id\node_mod
ules\airtunes>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs
node_modules\npm\bin\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js"
rebuild ) else (node "" rebuild )
Génération des projets individuellement dans cette solution. Pour activer la gén
ération en parallèle, ajoutez le commutateur "/m".
codec.cc
bindings.cc
ALACEncoder.cpp
win_delay_load_hook.cc
..\alac\ALACEncoder.cpp(438): warning C4805: '==': unsafe mix of type 'uint8_t'
and type 'bool' in operation [C:\Program Files\nodejs\node_modules\npm\node_mo
dules\freebox-caller-id\node_modules\airtunes\build\airtunes.vcxproj]
..\alac\ALACEncoder.cpp(442): warning C4805: '==': unsafe mix of type 'uint8_t'
and type 'bool' in operation [C:\Program Files\nodejs\node_modules\npm\node_mo
dules\freebox-caller-id\node_modules\airtunes\build\airtunes.vcxproj]
..\alac\ALACEncoder.cpp(686): warning C4805: '==': unsafe mix of type 'uint8_t'
and type 'bool' in operation [C:\Program Files\nodejs\node_modules\npm\node_mo
dules\freebox-caller-id\node_modules\airtunes\build\airtunes.vcxproj]
..\alac\ALACEncoder.cpp(690): warning C4805: '==': unsafe mix of type 'uint8_t'
and type 'bool' in operation [C:\Program Files\nodejs\node_modules\npm\node_mo
dules\freebox-caller-id\node_modules\airtunes\build\airtunes.vcxproj]
..\alac\ALACEncoder.cpp(920): warning C4805: '==': unsafe mix of type 'uint8_t'
and type 'bool' in operation [C:\Program Files\nodejs\node_modules\npm\node_mo
dules\freebox-caller-id\node_modules\airtunes\build\airtunes.vcxproj]
..\alac\ALACEncoder.cpp(924): warning C4805: '==': unsafe mix of type 'uint8_t'
and type 'bool' in operation [C:\Program Files\nodejs\node_modules\npm\node_mo
dules\freebox-caller-id\node_modules\airtunes\build\airtunes.vcxproj]
..\alac\ALACEncoder.cpp(1255): warning C4244: '=': conversion from 'alac_float6
4_t' to 'uint32_t', possible loss of data [C:\Program Files\nodejs\node_modules
\npm\node_modules\freebox-caller-id\node_modules\airtunes\build\airtunes.vcxpro
j]
c:\program files\nodejs\node_modules\npm\node_modules\freebox-caller-id\node_mo
dules\airtunes\src../alac/ALACBitUtilities.h(68): error C2371: 'ELEMENT_TYPE':
redefinition; different basic types (compiling source file ..\src\codec.cc) [C
:\Program Files\nodejs\node_modules\npm\node_modules\freebox-caller-id\node_mod
ules\airtunes\build\airtunes.vcxproj]
C:\Program Files (x86)\Windows Kits\8.1\Include\um\winioctl.h(3944): note: se
e declaration of 'ELEMENT_TYPE' (compiling source file ..\src\codec.cc)
..\src\codec.cc(128): error C2131: expression did not evaluate to a constant [C
:\Program Files\nodejs\node_modules\npm\node_modules\freebox-caller-id\node_mod
ules\airtunes\build\airtunes.vcxproj]
..\src\codec.cc(128): note: failure was caused by non-constant arguments or r
eference to a non-constant symbol
..\src\codec.cc(128): note: see usage of 'kBlockSize'
gyp ERR! build error
gyp ERR! stack Error: C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe fail
ed with exit code: 1
gyp ERR! stack at ChildProcess.onExit (C:\Program Files\nodejs\node_modules
npm\node_modules\node-gyp\lib\build.js:258:23)
gyp ERR! stack at emitTwo (events.js:126:13)
gyp ERR! stack at ChildProcess.emit (events.js:214:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_proces
s.js:198:12)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodej
s\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Program Files\nodejs\node_modules\npm\node_modules\freebox-calle
r-id\node_modules\airtunes
gyp ERR! node -v v8.9.1
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
npm WARN freebox-caller-id@0.8.0 license should be a valid SPDX license expressi
on

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! airtunes@0.1.7 install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the airtunes@0.1.7 install script.
npm ERR! This is probably not a problem with npm. There is likely additional log
ging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Production49\AppData\Roaming\npm-cache_logs\2017-11-29T19
_22_41_977Z-debug.log

si vous avez une idée je prends ;-)

@hornet49
Copy link
Author

mince j'avais pas vu ton post qui demandai d'essayer un par un
alors:
npm install commander => ok
npm install request => ok
npm config => ça marche pas voici l'erreur
npm ERR! Usage:
npm ERR! npm config set
npm ERR! npm config get []
npm ERR! npm config delete
npm ERR! npm config list [--json]
npm ERR! npm config edit
npm ERR! npm set
npm ERR! npm get []
npm ERR!
npm ERR! alias: c

@jystervinou
Copy link
Owner

npm install config ;-)

@jystervinou
Copy link
Owner

jystervinou commented Nov 30, 2017

je modifie plus haut, c'est moi qui me suis planté en copiant :-P

npm install commander
npm install request
npm install config
npm install dot
npm install winston

@hornet49
Copy link
Author

effectivement ça marche mieux
npm install commander => ok
npm install request => ok
npm install config => ok
npm install dot => ok
npm install winston => ok
npm install github:jystervinou/node-freeboxos => ok
npm install github:jystervinou/node_airtunes => erreur
mais ça peut marcher sans airtunes non ? car dans mon cas j'en ai pas besoin ?

@jystervinou
Copy link
Owner

jystervinou commented Nov 30, 2017

tente de lancer le node caller_id.js init en ne mettant pas de voice2freebox dans la conf.

@hornet49
Copy link
Author

non ça il aime pas:
module.js:538
throw err;
^

Error: Cannot find module 'airtunes'
at Function.Module._resolveFilename (module.js:536:15)
at Function.Module._load (module.js:466:25)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object. (C:\Program Files\nodejs\node_modules\npm\node_modules
\freebox-caller-id\caller_id.js:6:16)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)

@jystervinou
Copy link
Owner

A la hache... dans le fichier caller_id.js, remplace la ligne 6:

var airtunes = require('airtunes');

par

var airtunes = null;

@jystervinou
Copy link
Owner

A voir, mais je pense qu'il faudrait un autre projet dédié à Windows, pas sûr qu'il soit possible de dire à npm que certains modules sont optionnels.

mmm quoi que : optionalDependencies

@jystervinou
Copy link
Owner

jystervinou commented Nov 30, 2017

Note à moi-même pour la compilation qui foire sur Windows : un fix ici. (source)

@hornet49
Copy link
Author

hornet49 commented Dec 2, 2017

ok, j'ai résussi a avoir la demande sur la freebox, j'avance.
je vais refaire l'install sur un autre PC afin d'avoir une procésure propre car j'ai fait un peu tout dans tout les sens donc je vais reprendre depuis le début lol mais je pense qu'on est pas mal lol

@hornet49
Copy link
Author

hornet49 commented Dec 3, 2017

Alors, l'assosiation avec la freebox => ok
j'ai modifié le fichier default.json par:
{
"httpget":[{
"url" : "http://192.168.0.65:8080/api/rest/speech/tts?text="
"template" : "{{=call.number}}"
}]
}
je lance la commande dans CMDjodeJS
voici l'erreur :-/

C:\Users\Salon>node caller_id.js init
freebox.json saved with success

C:\Users\Salon>node caller_id.js
C:\Users\Salon\node_modules\config\lib\config.js:931
throw new Error("Cannot parse config file: '" + fullFilename + "': " + e3);
^

Error: Cannot parse config file: 'C:\Users\Salon\config\default.json': SyntaxError: Unexpected string in JSON at position 89
at Config.util.parseFile (C:\Users\Salon\node_modules\config\lib\config.js:931:11)
at C:\Users\Salon\node_modules\config\lib\config.js:702:28
at Array.forEach ()
at C:\Users\Salon\node_modules\config\lib\config.js:698:14
at Array.forEach ()
at Config.util.loadFileConfigs (C:\Users\Salon\node_modules\config\lib\config.js:697:13)
at new Config (C:\Users\Salon\node_modules\config\lib\config.js:122:27)
at Object. (C:\Users\Salon\node_modules\config\lib\config.js:1765:31)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)

@hornet49
Copy link
Author

hornet49 commented Dec 3, 2017

voici une url de test qui fonctionne chez moi:
http://192.168.0.65:8080/api/rest/speech/tts?text=%22test%22
ce n'est pas un problème avec les guillemets ?

@jystervinou
Copy link
Owner

jystervinou commented Dec 3, 2017

Il manque la virgule à la fin de la ligne "url"

{
"httpget":[{
"url" : "http://192.168.0.65:8080/api/rest/speech/tts?text=",
"template" : "{{=call.number}}"
}]
}

@hornet49
Copy link
Author

hornet49 commented Dec 3, 2017

arf, y'a un autre problème on dirait lol

C:\Users\Salon>node caller_id.js
C:\Users\Salon\node_modules\config\lib\config.js:931
throw new Error("Cannot parse config file: '" + fullFilename + "': " + e3);
^

Error: Cannot parse config file: 'C:\Users\Salon\config\default.json': SyntaxError: Unexpected token * in JSON at position 77
at Config.util.parseFile (C:\Users\Salon\node_modules\config\lib\config.js:931:11)
at C:\Users\Salon\node_modules\config\lib\config.js:702:28
at Array.forEach ()
at C:\Users\Salon\node_modules\config\lib\config.js:698:14
at Array.forEach ()
at Config.util.loadFileConfigs (C:\Users\Salon\node_modules\config\lib\config.js:697:13)
at new Config (C:\Users\Salon\node_modules\config\lib\config.js:122:27)
at Object. (C:\Users\Salon\node_modules\config\lib\config.js:1765:31)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)

@jystervinou
Copy link
Owner

En faisant un copier/coller du fichier que j'ai mis juste avant, chez moi c'est ok.

Vérifie que ce sont bien des quotes " normaux par exemple.

@jystervinou
Copy link
Owner

"Unexpected token * in JSON at position 77" ça semble correspondre à l'endroit de la virgule ou juste autour.

@hornet49
Copy link
Author

hornet49 commented Dec 3, 2017

super avec cette commande effectivement ça fonctionne ;-) c'était bien la virgule :-P
je modifie maintenant pour avoir le son plus fort que le téléphone qui sonne et pour avoir le nom de l'appelant...

@hornet49
Copy link
Author

hornet49 commented Dec 3, 2017

ok j'ai remplacer le call.number par call.name, ça me donne bien le nom de l'appelant, par compte 2 questions:

@jystervinou
Copy link
Owner

"url" : "http://192.168.0.65:8080/api/rest/speech/tts?vol=100&text=Attention%20appel%20entrant%20de%20"

?

@hornet49
Copy link
Author

hornet49 commented Dec 3, 2017

purée c'était tout con je pensais pas qu'on pouvait juste inversé l'ordre des commandes !
super ça marche nickel !!!!
PS: j'ai rajouté la virgule a la fin aussi ;-)

@hornet49
Copy link
Author

hornet49 commented Dec 3, 2017

voilà comme promit je post le descriptif de mon installation (faite sur 2 PC sous windows 7 et ok)
PS: si vous avez une ancienne version de node.js (par exemple si vous avez installé sarah) il faudra supprimer les clef de registre suivante si l'une des 2 existes:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib_V2Providers{793c9b44-3d6b-4f57-b5d7-4ff80adcf9a2}
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib_V2Providers{1e2e15d7-3760-470e-8699-b9db5248edd5}

ok c'est partie, je ne suis pas programmeur donc y'a surement plus simple n'hésiter pas a faire des modifs sur le tuto ;-) (heu et corriger les éventuelles fautes lol)

installer la dernière version de node.js:
https://nodejs.org/en/

installer git pour windows:
https://git-scm.com/download/win

ouvrir git CMD en admin:
git clone https://github.com/jystervinou/freebox-caller-id.git

ouvrir nodeCMD en admin:
aller dans le dossier freebox-caller-id crée par la commande git

installer windows-build-tools:
npm install --global --production windows-build-tools
npm install commander
npm install request
npm install config
npm install dot
npm install winston

ouvrir gitCMD regarder le prompt par default
pour moi ex: c\users\esiame>

dans nodeCMD aller dans le dossier prompt default de gitCMD
pour moi ex: cd c:\users\esiame

copier le contenu du dossier freebox-caller-id dans c:\users\esiame

npm install github:jystervinou/node-freeboxos

editer le fichier caller_id.js, remplace la ligne 6:
var airtunes = require('airtunes');
par
var airtunes = null;

toujours dans la fenettre nodeCMD en admin
node caller_id.js init

on valide sur la freebox

pour faire une notification vers impérihome:
mettre uniquement ceci dans le default.json
{
"httpget":[{
"url" : "http://192.168.0.65:8080/api/rest/speech/tts?vol=100&text=Attention%20appel%20entrant%20de%20",
"template" : "{{=call.number}}"
}]
}

retour dans la fenettre nodeCMD en admin
node caller_id.js

voilà ça doit fonctionner...

@jystervinou
Copy link
Owner

super merci.

il faut que je fasse les modifs pour rendre l'installation de airtunes optionnelle, ou, mieux, appliquer le fix pour que ça compile sous Windows.
Ca simplifiera pas mal les instructions ci-dessous.

@hornet49
Copy link
Author

hornet49 commented Dec 4, 2017

c'et claire perso j'avoue avoir bien galéré mais le résultat paye !
ça fait longtemps que j'essai de faire ça j'avais essayer avec un serveur asterisk mais trop usine a gaz à mettre en place juste pour une notification a la base !!!
tu me sauve là!

@jystervinou
Copy link
Owner

Tant mieux :-)

Tu avais essayé de connecter un serveur asterisk à la ligne voip de la freebox ?! ou à une autre ligne voip indépendante de Free ?

@hornet49
Copy link
Author

hornet49 commented Dec 4, 2017

celle de la freebox

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants