Synchroniser ses scripts avec bitbucket.

Salut lecteur de passage,

Aujourd’hui, j’ai placé mes scripts domoticz sur un serveur d’hébergement gratuit de code source. Je ne suis pas devenu un cador du développement qui souhaite monter une équipe autour de son projet, mais je voulais plutôt avoir un endroit où se synchronisent mes fichiers pour les modifier facilement.

J’ai opté pour la solution https://bitbucket.org/ qui propose un hébergement gratuit comprenant un nombre illimité de dépots privés avec 5 collaborateurs max si vous êtes plusieurs sur un projet.

Après la création du compte, il faut s’occuper des clés SSH pour le transfert entre la plateforme et le raspberry (dans mon cas). L’utilisation de SSH évite l’invite de mot de passe lorsque vous poussez du code vers Bitbucket. Je vous invite à lire le tuto sur leur site sur la création de la clé RSA.

Je reprends ici les éléments les plus importants à partir du chapitre n°3 de leur tuto.

Dans une console sur votre rapsberry, tapez : ssh-keygen

key

D’une fois que c’est fait, retourner sur votre compte bitbuket puis:

1- Cliquez sur votre avatar en haut à droite de la page.

2- Gérer le compte.

3- Clés SSH dans le menu de gauche

4- Ajouter une cléclé

Retour sur la console et taper la commande :

cat ~/.ssh/id_rsa.pub

Ceci va afficher votre clé qui vous allez copier / coller dans la fenêtrebit

Et hop, on valide avec Add Key

Ensuite, il faut créer son premier dépôt.

new_dep

Retour sur la console et dans mon cas, je voulais synchroniser tous mes répertoires situés dans /home/pi/domoticz/scripts. Le problème est lié au fait que certains ne peuvent pas être copiés (avec le compte pi) et pis de toute façon les autres je m’en balance. Alors il faut faire le tri et ne sélectionner que les répertoires qui vous intéressent.

liste

Pour mémoire, voici mes commandes :

git init

puis 

git config --global user.name "Prénom Nom"
git config --global user.email "monmail@free.fr" 
git add SUIVI DU NOM DU RÉPERTOIRE 1 A SYNCHO
git add SUIVI DU NOM DU RÉPERTOIRE 2 A SYNCHO
git add SUIVI DU NOM DU RÉPERTOIRE ETC A SYNCHO

git commit -m "Ajout des premiers répertoires"

git push -u origin master

Quelques secondes après, les répertoires et fichiers apparaissent sur le bitbucket.

scripts

Bonne semaine 🙂

 

 

Projet domotique avec domoticz part 1

Salutations visiteur d’un jour,

C’est le premier article d’une série portant sur un projet domotique personnel fait à partir d’un raspberry pi et de quelques composant, beaucoup de patience, de l’huile de coude et des centaines de litres de déca.

Pour mémoire, vous trouverez l’ensemble des composants à avoir ici.

Pour avoir testé pendant quelques mois l’année dernière la Version 1 et après l’avoir passé en production cet hiver, je dois dire que ça fonctionne très bien. La preuve, j’ai démonté notre ancien gestionnaire de chauffage pour le remplacer par un écran LCD qui affiche toutes les 15 min un état du chauffage, des températures et pleins d’autres info.

Au départ, je m’étais mis en tête de détailler mon installation précédente. Mais il faut reconnaitre qu’elle n’était pas très dynamique, l’ajout d’un simple capteur de température rendait la configuration complexe. Quand au packaging DIY ça ressemblait plus à du DBM (Destroy By Myself).

Attention, je parle bien de mes scripts, de mon environnement et non du projet YANA-SERVEUR que j’évoque pendant un temps. J’ai eu le plaisir de tester ce soft et les dernières versions sont toutes aussi prometteuses.

En attendant des photos de la baie informatique et de la box domotique perso, je vous fais un petit topo sur….

domoticz-570x300Et oui j’essaie actuellement domoticz. Vous avez peut être eu l’occasion de découvrir ce projet en scrutant le net à la recherche d’une solution domotique attractive, pas cher et dont la communauté et dynamique.

En cherchant bien sur ce blog, j’ai fait un petit topo sur le site français le plus précis sur le sujet à savoir easydomoticz.

Par quoi je commence ?
  • Téléchargez la dernière image de domoticz disponible sur le site ici,
  • L’installation de l’image se fait de manière classique,
  • A la mise sous tension, faites comme d’habitude le rasp-config qui va bien,

Au reboot, rendez vous sur l’adresse ip de votre serveur:8080. Si éventuellement la page ne s’affichait pas vérifiez que le service est bien actif sur le raspberry. A défaut :

sudo service domoticz start

domo anglais

Menu de la page de garde en anglais pour commencer

Pour modifier les premiers paramètres, tels que la langue et la localisation etc, rendez vous sur Setup puis modifier les paramètres suivants:

  • Langage: Français
  • Localisation à valider impérativement (pour la météo): cliquez sur le lien pour rechercher votre ville.
  • Save à gauche pour commencer.

Je vous laisse découvrir toutes les autres options qui sont, pour la plus part, relativement simples à comprendre.

setupPour bien prendre en main l’outil, je vous invite à découvrir les blogs suivants:

1/ Déclaration du bus OneWire

Pour mémoire ce bus, collecte les températures de 13 capteurs répartis dans la maison et à l’extérieur. Ils sont alimentés par un 5 volts différents du raspberry pi pour une meilleure stabilité. Pas de souci également pour le 5 volts sur le port GPIO 4 car vu la longueur du câblage, j’ai même diminué la résistance de pull up (faut que je cherche m’en rappelle plus ohms).

Vous z’êtes déjà perdus ? Allez zou, pas de blabla, lisez cet article sur Framboise 314

 Sur domoticz, allez sur « Configuration => Périphériques » comme sur l’image.

perif

Vue de la page de périphériques déclarés

Au bas de la page, cherchez dans le menu déroulant 1-wire (system), donnez un nom à ce slot (le nom importe peu et n’influence pas les capteurs qui en découleront). Cochez bien la case « Activé » et laissez le menu déroulant à « Désactiver ».

Ajouter le capteur et il viendra rejoindre les autres dans la liste.

Si des capteurs sont raccordés sur le bus, ils apparaitront automatiquement dans la liste des dispositifs. Si vous en avez plusieurs, soit vous les raccordez un par un [#meilleureoption] soit vous vous faites [#gros mot] comme moi. Dans la liste, le nom attribué par domoticz se trouve être le numéro de série du capteur 28-00000000, pas très pratique pour les différencier.

Bref, finalement on s’en sort entre la liste des capteurs, les températures qui s’affichent à la hausse a grand coup de sèche cheveux. 🙂

Dans cette fameuse liste, cliquez sur la flèche verte, donnez lui un nom et valider. Ci dessous, vous trouverez un exemple.

eau

Vue du capteur déclaré après son nommage.

Dans le menu température, votre capteur apparait désormais et en cliquant sur log, vous verrez dans quelques temps apparaitre un graphique.

panelchauffeau1

Chauffeeau2

Quand tout est fait ça donne un truc comme ça:

panel2

C’est tout pour l’instant, n’hésitez pas a revenir vous perdre ici de temps en temps.

 Fermer, démonter, rouler !

 

 

Projet domotique complet (fin)

Bonjour visiteur du soir ou du matin 🙂

Je dois depuis bien longtemps rédiger et publier mon petit projet domotique. Faute de temps et de courage, je me trouve toujours autre chose à faire.

Bon d’accord, je commence la rédac ce soir. Pour vous mettre l’eau à la bouche et avant de débuter cette série d’articles, j’aimerai vous montrer à quoi ressemble mon tableau de bord. La fin du projet en quelque sorte.

Et maintenant voilà qu’il nous parle de voiture…

Mais non pas de panique ! Il s’agit d’un point d’information qui permet en un seul coup d’œil, de connaitre tous les points qui me semble important dans la maison. Totalement inspiré du site magdiblog, brièvement décrit dans un précédent article, j’ai adapté le projet HOMEDASHSCREEN à mes besoins.

Voici le résultat:

DashBoard

Cette page web se trouve être la page par défaut de mon navigateur internet. Ainsi au premier coup d’oeil, je visualise l’heure, le flux rss (il s’agit du monde dans l’exemple), le nombre de visites du blog (okay jamais plus de 15 par jours).

Au centre, j’ai dessiné le plan de la maison avec les températures de toutes les pièces (rafraichissement toutes les 5 minutes). Les deux gauges à droite indiquent le niveau d’eau dans la cuve ainsi que la consommation électrique de la maison.

Lorsque le chauffage est en marche, sous le plan, apparait les zones de chauffe et enfin en bas à gauche sont listés les évènement d’un calendrier Google au format ical.

Merci encore aux utilisateurs du site magdiblog pour leur travail.

Hasta la vista 🙂

Envoi de SMS via freemobile

Vous le savez déjà certainement, Free Mobile propose une nouvelle option permettant l’envoi automatique de SMS sur votre portable muni d’une SIM Free Mobile.
Il existe déjà pas mal de sites décrivant les modalités pour mettre en œuvre ce service. Si vous ne savez pas de quoi je parle, prenez 5 minutes pour lire les articles ici et .

L’essentiel n’est pas là.

Ce petit script python, vous permettra d’envoyer des sms à partir de votre rapsberry.

#!/usr/bin/python
# -*-coding:Utf-8 -*
# José - Juin 2014

import urllib2
import sys

user = 'identifiant_free_mobile'
texte = 'texte_du_sms'
pas = 'password'
url = 'https://smsapi.free-mobile.fr/sendmsg?&user='+user+'&pass='+pas+'&msg='+texte

req = urllib2.Request(url)
try:
  reponse = urllib2.urlopen(req)

except IOError, e:
  if hasattr(e,'code'):
    if e.code == 400:
        print 'Un des paramètres obligatoires est manquant.'
    if e.code == 402:
        print 'Trop de SMS ont été envoyés en trop peu de temps.'
    if e.code == 403:
        print 'Le service n’est pas activé sur l’espace abonné, ou login / clé incorrect.'
    if e.code == 500:
        print 'Erreur côté serveur. Veuillez réessayez ultérieurement.'

print 'Le SMS a été envoyé sur votre mobile.'
sms.py

L’exemple suivant décrit l’envoi d’un sms automatique si la température de la boite de dérivation de la cuve est supérieure à 40°C. Plutôt que d’inclure le script d’envoi de sms directement dans celui qui relève les températures, l’idée est de transmettre les données à envoyer à un script dédié.

#!/usr/bin/python
# -*-coding:Utf-8 -*

import sys

tfile = open("/sys/bus/w1/devices/28-0000049d7894/w1_slave")
text = tfile.read()
tfile.close()
secondline = text.split("\n")[1]
temperaturedata = secondline.split(" ")[9]
temperature = float(temperaturedata[2:])
temperature = temperature / 1000

if temperature > 40:
 sys.argv='La temperature du boitier est de '+str(temperature)+' degres.'
 execfile("sms.py")
verif_tech.py

La variable sys.argv récupère le texte et la valeur de la température puis la ligne suivante lance le script sms.py.

#!/usr/bin/python
# -*-coding:Utf-8 -*
# José - Juin 2014

import urllib2
import sys

user = 'identifiant_free_mobile'
texte = sys.argv
pas = 'password'
url = 'https://smsapi.free-mobile.fr/sendmsg?&user='+user+'&pass='+pas+'&msg='+texte

req = urllib2.Request(url)
try:
  reponse = urllib2.urlopen(req)

except IOError, e:
  if hasattr(e,'code'):
    if e.code == 400:
        print 'Un des paramètres obligatoires est manquant.'
    if e.code == 402:
        print 'Trop de SMS ont été envoyés en trop peu de temps.'
    if e.code == 403:
        print 'Le service n’est pas activé sur l’espace abonné, ou login / clé incorrect.'
    if e.code == 500:
        print 'Erreur côté serveur. Veuillez réessayez ultérieurement.'

print 'Le SMS a été envoyé sur votre mobile.'

Regardez bien, la variable texte se voit attribuer la valeur transmise par l’autre script.
Bon comme d’hab, le code peut être amélioré mais dans le fond cela fonctionne bien.

Les permaliens WP chez free, la galère !

Bonjour à tous,

Petite aparté par rapport aux articles précédents, je vous fais partager la galère de la modification des permaliens et de la superbe erreur 500 chez free !

Suite à la mise en ligne de ce blog, j’ai demandé à des pros du domaine de me donner leurs avis sur l’ergonomie et le contenu du blog. Il ressort quelques points à améliorer 😉 et en particulier les modifications des permaliens.

Pour assurer un meilleur référencement du blog sur les moteurs de recherche, il est nécessaire de modifier les permaliens de WordPress par défaut.

http://eyesathome.free.fr/?p=123

par un lien de ce type par exemple

http://eyesathome.free.fr/index.php/projets/projet-domotique-complet/

Pour cela, il faut se rendre dans la rubrique Réglages => Permaliens puis (dans mon cas) ajouter dans le champ personnalisé.

/index.php/%postname%/

La première fois où j’ai fait cette manipulation j’ai perdu l’accès complet au blog y compris la page d’administration. La panique totale !

Ah c’est bien tout ça mais comment récupérer la situation et supprimer cette superbe erreur 500

Dans ce cas de figure,

  • Connectez vous à la base mysql via phpmyadmin à l’adresse sql.free.fr.
  • Cherchez la table wp_options, puis permalink_structure.
  • Editez et supprimer /index.php/%postname%/

wp_options

  • Récupérez sur votre PC le fichier .htacess avec un logiciel FTP. Attention dans certains cas le fichier peut être masqué, n’hésitez pas à modifier les propriétés d’affichage de votre logiciel.
  • Supprimez les lignes.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
  • Transférer de nouveau votre .htaccess.

Normalement à ce stade vous avez récupérer la main et tout devrait rouler à nouveau 🙂

Mais alors comment faire ?

La solution la plus fonctionnelle m’a été apportée par ce site.

  • Faire une sauvegarde de votre blog (on ne sais jamais).
  • Faire une copie de sauvegarde du .htaccess.
  • Modifier les permaliens comme évoqué au début.

Normalement à partir de là ça plante

  • Remettez le fichier .htaccess
  • Si ça ne fonctionne pas du premier coup, n’hésitez pas à refaire un transfert du .htaccess et rafraichir la page.

[Modification du 26 mars]

Suite à un échange avec Luciole135, j’ai décidé de supprimer la dernière partie du post indiquant la nécessité d’installer le plugin redirection qui ne semble pas être utile après de multiples essais.

Attention tout de même car dans tous les cas, chaque modification impliquant une réécriture du fichier .htaccess refait apparaitre la page de blocage.

Conservez bien votre .htaccess source pour une remise en place au cas où.

Après tout, on ne modifie pas le structure du blog tous les jours 🙂

Merci à Luciole135 pour sa relecture.

Les sources et conseils :