Hacked By SA3D HaCk3D

Image

<br /> HaCkeD by SA3D HaCk3D<br />

HaCkeD By SA3D HaCk3D

Long Live to peshmarga

KurDish HaCk3rS WaS Here

fucked
FUCK ISIS !

Pour mémoire : Transfert de fichiers via ncftpput sur disque dur Freebox

En passant

Bonjour visiteur de passage.

Rahan souhaitait transférer les photos prises par la caméra de son raspberry pi sur le disque dur de sa freebox. Il s’est basé sur le tuto du site http://anderson69s.com/2014/06/28/raspberry-pi-picam-camera-de-securite/

Au chapitre 6, le blogeur explique comment transférer les clichés sur son serveur FTP. Jusque-là, il n’y avait rien de bien compliqué sauf que sur la freebox en ftp, c’était déjà plus pénible surtout avec l’espace entre les termes disque et dur.

disque_dur

Bref, on a pas mal échangé sur les options de la commande ncftpput. La solution consiste à mettre des «  » avant et après disque dur !

Dans le cron, ça pourrait donner un truc comme ça.

*/15 * * * * ncftpput -u $user_box -p $pass_box mafreebox.free.fr  « Disque dur/Jeedom » /mnt/usbkey/*

Je détaille:

*/15 * * * * : l’action se passera toutes les 15 minutes.

ncftpput : le programme avec l’option -u pour l’utilisateur et -p pour le mot de passe.

mafreebox.free.fr : le nom DNS de la freebox.

« Disque dur/Jeedom » : le fameux disque dur interne avec son espace.

/mnt/usbkey/* : la clé USB où sont enregistrées les images.

Danse de la victoire

Domoticz – Gérer sa consommation de granulés

Bonjour visiteur de passage,

Aujourd’hui, je partage ma gestion personnelle de la consommation en granulés de mon poêl Rika Como au moyen de domoticz et de mon karotz.

Tout un programme…

karotzCe dernier ne fait pas grand chose en ce moment. Il était temps pour lui d’arrêter de glander et de me regarder avec son ventre clignotant. Je ne vais pas ici vous faire découvrir ce qu’est un karotz mais sachez que s’il vous encombre, il existe une solution pour lui donner une nouvelle vie Openkarotz.

Bref, je chauffe une grande partie de la maison avec un poêle Rika Como. Depuis 2010, il marche parfaitement bien mais surtout il ne fait pas de bruit. rika

eo2Je stocke des sacs de 15 kg livrés par palette de 66 sacs.

Contrairement à belle maman qui note tout, je n’avais aucune idée de la quantité de granulés restants en stock dans la cabane de jardin. Alors, au lieu d’avoir sur une petite feuille de papier (vouée à être perdue corps et âme) le nombre de sacs engloutis par le poêle, j’ai décidé de faire la gestion par domoticz.

Le principe est le suivant:

Je passe un tag rfid devant le lapin. Lorsqu’il n’est pas trop débordé ^^, il lance une requête à destination d’un scénario de domoticz  « Ajout granulés ».

ajout

Le script récupère la valeur du compteur de granulés, l’incrémente de 1 (je compte par sac) et remet à jour le compteur. Le lapin m’annonce la quantité de sacs restants et l’équivalent en kg de la quantité consommé avec sa petite voix et enfin, je reçois un sms m’indiquant les mêmes informations. Tout ça est sensé éviter de tomber en panne de sacs… Mais je vous rassure comme tout bonhomme qui se respecte j’ai encore oublié d’en commander.

Allo Belle maman….

granulés

Le chiffre en haut se met à jour automatiquement après quelques minutes.

Val : 61 correspond au nombre de sacs consommés.

Prérequis:

Le karotz fonctionne sous openkarotz et dispose d’un flatnoz  flatnozprogrammé pour envoyer une url.

rfid

Le point important c’est l’URL. Mettez ici l’url json en remplaçant le caractère & par son équivalent en %26. Par exemple: (à adapter)

http://192.168.2.32:8080/json.htm?type=command%26param=switchlight%26idx=49%26switchcmd=On

En cas de problème, je pourrais faire un topo dessus.

La suite

Je dispose d’un fichier de configuration comprenant toutes les adresses ip et autres valeurs communes (quantité de sacs, poids, adresse ip et port de domoticz). Ce fichier fait partie des « import » appelé au début du script principal. En partique, il est situé dans le même répertoire que le script.

Voici un extrait:

#!/usr/bin/python
# -*-coding:Utf-8 -*
# José - Janvier 2015

# Module contenant toutes les variables Karotz
karotz_ip='192.168.10.113'
karotz_voip='alice'

# Module contenant toutes les variables Domoticz
domoticz_ip='192.168.10.120'
domoticz_port='8080'
domoticz_ident='XXXXX'
domoticz_passwd='ZZZZZ'

# Identifiants SMS Free mobile José
user = 'user'
pas = 'password'

# Phrases types température
texte_lu='Je viens de relever la température '
texte_liaison=' .Il y fait '
texte_fin='degrés.'

# Messages SMS
sms_chauffeau_off = 'Le chauffe-eau est en service.'
sms_chauffeau_on = 'L\'alimentation électrique du chauffe-eau est coupée.'

sms_ordi_romain_on= 'Le PC portable de Romain est connecté au réseau wifi.'
sms_ordi_romain_off= 'Le PC portable de Romain n\'est plus sur le réseau wifi.'

# IDX des widgets domoticz
# IDX du compteur de granulés
Idx_cpt_gra = '164'
qte_granules_total = 66
poids_sac_granules = 15

# IDX des valeurs de la cuve
Idx_vol_cuve = '177'
Idx_haut_cuve = '176'
config.py

De cette manière, lorsque je suis amené à changer une valeur, je ne suis pas obligé de rechercher les paramètres dans tous les scripts.

Le programme principal

Il est lancé au moyen du Karotz ou à partir du scénario dont le détail est illustré ici

ajout_granulés

Le code n’est pas optimisé, j’en suis conscient mais l’essentiel pour moi c’est que ça fonctionne. Lorsque j’aurais du temps (si ça arrive un jour), je remplacerai urllib par request.

#!/usr/bin/python
# -*-coding:Utf-8 -*
# José - Janvier 2015 - Module de gestion des granulés.
# Permet de relever la valeur du compteur dédié et ajoute la quantité du jour
#
import urllib
import urllib2
import sys
import config # On retrouve le nom du fichier décrit au dessus
import requests

##### Les variables sont stockées dans le fichier config.py
#
# Terme a rechercher
terme='Counter'
#
# Décalage de caractères
offset=5
#
# Longeur de la chaine à garder
lg_chaine_a_garder=2
#
# Initialisation du compteur
val_compteur=''
#
# Debug
debug=0
#
###############  fin des parametres #############################

# l URL Domoticz a interroger pour recuperer les infos est type=devices&rid=XXX
def inter(val_compteur):
        json_url='/json.htm?type=devices&rid='
        requete='http://'+config.domoticz_ip+':'+config.domoticz_port+json_url+config.Idx_cpt_gra #La variable est située dans le fichier config.sonNom

        r=requests.get (requete)
        ch=r.text
        lgterme=len(terme)
        trouve_a=ch.find(terme)
        debut=trouve_a+lgterme

        sschaine=ch[debut+offset:debut+offset+lg_chaine_a_garder]

        # Calcul de la quantité en sac et en kg pour le compteur
        # Récupération de la valeur du compteur domoticz
        # Ajoute la quantité de granulés d'un sac
        val_compteur = int(sschaine) + 1

        # Calcul combien il reste de sac pour l'annonce en retirant la valeur du compteur au nb total
        stock = config.qte_granules_total - val_compteur

        # Calcul du poid de la consommation
        poids = val_compteur * config.poids_sac_granules

        # Met les varibales au format texte pour passer dans la requête
        val_compteur = str(val_compteur)
        stock = str(stock)
        poids = str(poids)

        if debug == 1:
                print u'Chiffre de la requête : '+sschaine
                print 'Nombre de sacs consommés : ' +val_compteur
                print 'Nombre de sac restant en stock : '+stock
                print 'Equival conso ' +poids+' kg'

        # Lance la requete de mise à jour du widget compteur
        json_url='/json.htm?type=command%26param=udevice&idx='
        requete='http://'+config.domoticz_ip+':'+config.domoticz_port+json_url+config.Idx_cpt_gra+'&nvalue=0&svalue='+val_compteur
        r=requests.get (requete)

        # Fait bouger les oreilles du Karotz
        the_url= 'http://'+config.karotz_ip+'/cgi-bin/ears_random'
        req = urllib2.Request(the_url)
        handle = urllib2.urlopen(req)

        # Mise en forme du texte en codant les espaces en %20
        texte_lu = config.txt_granules_1+stock+config.txt_granules_2+poids+config.txt_granules_3
        if debug == 1:
                print texte_lu
        result = urllib.quote(texte_lu).encode('utf8')

        # Change la couleur du Karotz en mode normal
        the_url= 'http://'+config.karotz_ip+'/cgi-bin/leds?pulse=1&color=2b00ff&speed=700&color2=def50e'
        req = urllib2.Request(the_url)
        handle = urllib2.urlopen(req)

        # Lance la requête vers le Karotz
        the_url= 'http://'+config.karotz_ip+'/cgi-bin/tts?voice='+config.karotz_voip+'&text='+result+'&nocache=0'
        req = urllib2.Request(the_url)
        handle = urllib2.urlopen(req)

        # Envoi d'un sms sur le portable de José
        url = 'https://smsapi.free-mobile.fr/sendmsg?&user='+config.user+'&pass='+config.pas+'&msg='+texte_lu
        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.'

        if debug == 1:
                print 'Le SMS a été envoyé sur votre mobile.'

#### MAIN ####
# lance la requete json
inter(val_compteur)

 L’avenir…

Après un échange par mail avec un amateur éclairé, je pense mettre en œuvre l’ajout de sac lors de la réception d’une commande. Ceci ne devrait pas être trop difficile à faire.

Les conseils du jour !

– Le prix des granulés est moins élevé en été et plus les acheteurs sont nombreux moins c’est cher auvergne!

– Faites vos sauvegardes

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 🙂