Raspberry et Teleinfo

Dans ce chapitre en 2 parties nous verrons comment récupérer les données de teleinfo transmises par le compteurs EDF sur un raspberry puis l’affichage dans Domoticz

Chapitre 1 : Le Hard et le Raspberry

  • il faut un optocoupleur SFH6206, des résistances 1.2K et 47 K
  • Un câble que l’on reliera aux bornes I1 et I2 du compteur, la longueur n’a pas d’importance car on porte à plus de 30 m sans problèmes

le schéma suivant montre le câblage à effectuer

Pour info le raspberry et son brochage, le coté gauche est 1,3,5,7 … le coté droit 2.4.6…

Donc 3.3 Power, GND et GPIO 15 (RXD)

http://elinux.org/images/2/2a/GPIOs.png

Câblage du compteur EDF.

Il n’y a pas de sens à respecter pour cette connexion.

Démontez le capot en bas du compteur.

compteurelec

Dévissez les 2 vis en dessous de ces 2 trous insérez y vos câbles.

Câblez le coté Raspberry 3.3,GND, et le GPIO 15

Le soft coté  Raspberry

  • Modification du fichier « cmdline.txt »

sudo nano /boot/cmdline.txt

remplacer la ligne :
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
par :
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

en d’autre termes supprimer :
console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

puis

  • Modification du fichier « inittab »

sudo nano /etc/inittab
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
devient :
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

(il y a un # devant la ligne)

un petit sudo reboot

au redemarrage
sudo stty -F /dev/ttyAMA0 1200 sane evenp parenb cs7 -crtscts
sudo cat /dev/ttyAMA0

doit afficher les messages du compteur :

OPTARIF HC.. <

ISOUSC 45 ?

HCHC 021475341 !

HCHP 019306374 4

PTEC HP..

IINST 004 [

IMAX 048 
KPAPP 00940

ATTENTION !! Vérifiez bien que vous voyez passer le terme MODETAT , si vous ne le voyez pas essayez avec

stty -F /dev/ttyAMA0 1200 sane parenb -parodd cs7 -isig -icrnl -crtscts -icanon

si ok on fait un lien entre le tty et USB20

sudo ln -s /dev/ttyAMA0 /dev/ttyUSB20

N.B pour conserver le lien à chaque reboot

un sudo /etc/rc.local puis en bas ajoutez la ligne spécifique pour la création du lien, avant le exit 0

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
 printf "My IP address is %s\n" "$_IP"
fi
sudo ln -s /dev/ttyAMA0 /dev/ttyUSB20
exit 0

et voila

Merci à http://www.chaleurterre.com/forum/viewtopic.php?t=15153

et a http://www.domoticz.com/forum/viewtopic.php?f=5&t=627&hilit=teleinfo&start=20

 

 

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

domoticz et script twitter

Depuis quelques jours je cherche a envoyer un tweet lors du changement d’état d’un contact avec le ttytter de floodgap via un script lua.

Cela ne fonctionne absolument pas et impossible de savoir si cela provient de domoticz ou de ttyter.

J’ai changé de script twitter pour utiliser celui ci http://360percents.com/posts/command-line-twitter-status-update-for-linux-and-mac/

attention  make sure that you:

– Enter a correct username and password,
– Have CURL with SSL support installed,
– Have read/write permissions in current directory.
– Run it with “bash” and not with “sh”.

en ayant modifié les #REQUIRED PARAMS

username= »twitteruser »

password= »xxxxx »
tweet= »il y a du courrier dans la boite a lettre ! » #must be less than 140 chars

sans oublier le chmod +x

toujours sans succès, jusqu’à ce que je place l’appel de ce script DIRECTEMENT dans les propriétés de mon contact dans le champ « On Action »

 

2014-09-05 21_31_54

et Victoire !

2014-09-05 21_32_42!!

Attention : Evitez les accents français (àéèê…) dans la variable tweet.

J’espère que ceci pourra aider  Tom23mj et d’autres.

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Domoticz lua scripts et télécommande

Heureux possesseur d’une télécommande DI.O Chacon compatible rfxcomm et pour faire suite à l’article précédent sur les scripts lua, quel ne fut pas mon bonheur lorsque je vis apparaître dans domoticz, tous les ID de ma télécommande 16 canaux au même titre que n’importe quel autre périphérique.

Cela peut sembler logique et normal aux spécialistes mais cela m’a étonné et enthousiasmé.

Et donc c’est super car maintenant je peux lancer un script de backup d’un site web par l’appui d’une touche de la télécommande depuis mon canapé …

J’ai donc passé à ON les canaux non attribués de la télécommande un par un.

J’ai retrouvé dans domoticz mes  périphériques, que j’ai nommé telco11,telco12 ….

puis un script dans /domoticz/scripts/lua  nommé script_device_telco16_is_on.lua et contenant qq chose comme

print(‘telecommande 16 vient de passer a on’)

commandArray = {}
if (devicechanged[‘telco16’] == ‘On’) then
os.execute (‘ curl -s -i – H « mon_url_qui_va_bien’)
end
return commandArray

 Que du bonheur.

Bon certes on peut faire la même chose via l’interface graphique de Domoticz  mais c’est moins fun.

 

periph_ajout

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Domoticz et lua : appeler une commande shell

L’objectif est de pouvoir déclencher une action liée à l’OS depuis domoticz

On peut bien sur utiliser les Events en mode blocs de Domoticz pour des actions telles que l’envoi de mail, l’ouverture fermeture d’un autre périphérique domoticz.

dooropenlighton.PNG

, lecture http://www.domoticz.com/wiki/Events

 

Mais  parfois on a besoin de taper dans des fonctions plus basses de l’OS, déclencher un script bash, envoyer un tweet…

Dans mon cas lorsque le contact de porte s’ouvre je veux déclencher motion pour faire de la capture vidéo.

Il faut utiliser les scripts lua de domoticz.

Rien de trés compliqué, le wiki de domoticz sur les Events est assez détaillé.

Domoticz range ses scripts lua dans /domoticz/scripts/lua

Ces scripts basés sur des devices DOIVENT se nommer script_device_lenomdemonperipherique.lua

Ici j’ai un périphérique nommé ‘contact porte’

mon script se nomme script_device_contact_porte_actif.lua

print(‘switch vient de passer a on’)

commandArray = {}
if (devicechanged[‘contact porte’] == ‘On’) then
os.execute (‘/etc/init.d/motion start’)
end
return commandArray

il faut toujours mettre un if (devicechanged[‘contact porte’] == ‘etat qui vient de changer’) en tête du script pour s’assurer de déclencher les actions au bon moment.

Le moment crucial de ce script est le os.execute (‘la commande shell’) qui permet donc d’exécuter tout ce que l’on veut pour peu que les droits soient bien appliqués.

Bien sur il faut aussi refaire un autre script dans l’autre sens pour arrêter l’action avec un if (devicechanged[‘contact porte’] == ‘Off’) ….

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Video surveillance a base de raspeberry Pi : le son

Comment enregistrer du son ?

installer les outils alsa dont arecord, aplay, alsamixer

Pour enregistrer on a besoin du device

$arecord –list-devices

You should get output similar to this:

**** List of CAPTURE Hardware Devices ****
card 0: IXP [ATI IXP], device 0: ATI IXP AC97 [ATI IXP AC97]
Subdevices: 1/1
Subdevice #0: subdevice #0

This says that my integrated audio card is on card 0, device 0.

Next, try to record your speech at a rate higher than what you think your highest recording rate might be (replacing the numbers in hw:0,0 with your card and device number):

donc ma ligne de command est

arecord -f S16_LE -D hw:1,0 -c 2 -d 5 test.wav

il faudra donc modifier le motion.conf pour lancer arecord avec ces options lors d’un on_motion_detected par exemple

 

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/