Archives par étiquette : linux

Des trames MQTT avec Alexa

Vous vous êtes sans doute demandé comment on pouvait envoyer des trames MQTT avec Alexa et ainsi profiter de plus de fonctionnalités domotiques.
Commencez par installer le skill URL SWITCH sur votre Alexa :

Activez le skill depuis votre App Alexa puis rendez-vous sur https://www.virtualsmarthome.xyz/ pour venir créer vos interrupteurs, ces switches virtuels qui permettront d’interagir avec vos trames MQTT. Ici, nous avons créé volet salon, un switch destiné à télécommander l’ouverture et la fermeture des volets du salon :

Vous l’aurez compris, l’envoi d’une commande https suppose d’avoir un serveur hébergé, un p’tit VPS tout simple par exemple chez Pulsheberg que nous avons souvent utilisé pour nos dev, avec leur offre de base VPS Cloud à 5 ou 6 € par mois, largement suffisante pour héberger votre serveur Mosquitto, un certificat Let’s Encrypt et un Apache 2 pour vos pages de gestion Web en html ou php. Je passerai sur l’installation d’un serveur, d’Apache2 ou de PHP, c’est décrit un peu partout sur le web, la difficulté ne sera pas là 😉

Nous allons créer deux fichiers :

  • alexa.php pour faire l’appel vers un script python, hébergé sur /var/www/html de votre Apache 2
  • sendmessage.py, un script python hébergé sur /var/www/html/cgi-bin/sendmessage.py pour venir répondre aux commandes d’alexa.php et envoyer les trames MQTT

ALEXA.PHP :

<?php
// alexa.php

function sendMQTTMessage($topic, $message) {
    // On échappe chaque argument séparément pour éviter les injections shell
    $topicArg   = escapeshellarg($topic);
    $messageArg = escapeshellarg($message);

    $command = "python3 /var/www/html/cgi-bin/sendmessage.py $topicArg $messageArg";
    $output  = shell_exec($command);

    return $output;
}

// Récupération des paramètres depuis l’URL, par ex. :
// alexa.php?topic=maison/salon&message=allume+lampe
$topic   = isset($_GET['topic'])   ? $_GET['topic']   : '';
$message = isset($_GET['message']) ? $_GET['message'] : '';

// Un minimum de validation
if ($topic === '' || $message === '') {
    http_response_code(400);
    echo "Paramètres manquants. Utilisation : alexa.php?topic=xxx&message=yyy";
    exit;
}

// Appel du script Python
$result = sendMQTTMessage($topic, $message);

// Retour simple (à adapter selon tes besoins : JSON, texte, etc.)
header('Content-Type: text/plain; charset=utf-8');
echo "OK\n";
echo "Topic : $topic\n";
echo "Message : $message\n";
echo "Résultat Python :\n";
echo $result;

SENDMESSAGE.PY :

#!/usr/bin/env python3

import os
import sys

# Récupérer les arguments passés en ligne de commande
if len(sys.argv) != 3:
    print("Usage: python3 sendmessage.py <topic> <message>")
    sys.exit(1)

topic = sys.argv[1]
message = sys.argv[2]

# Configuration du broker MQTT
broker = "ip_du_serveur_MQTT"
port = 1883
username = "ton_nom_utilisateur"
password = "ton_mot_de_passe"

# Indiquer que le contenu est du texte brut (facultatif)
print()  # Ligne vide nécessaire

# Commande pour publier le message MQTT
command = f"mosquitto_pub -h {broker} -p {port} -u {username} -P {password} -t {topic} -m '{message}' -r"

# Exécuter la commande
exit_code = os.system(command)

if exit_code == 0:
    print("")
else:
    print("Erreur lors de l'envoi de la trame.")

Pas compliqué, si ?
Pensez à bien ajouter une mise à jour de votre certificat SSL par contre, dans crontab :

0 3 * * * root certbot renew --quiet

Pour protéger votre serveur Web, pensez à ajouter un .htaccess adapté… Vous pourrez alors par exemple envoyer une requête https comme suit :

https://login_htaccess:motdepasse_htaccess@iot.monserveurmqtt.fr/alexa.php?topic=/salon/volet&message=1

pour ouvrir et :

https://login_htaccess:motdepasse_htaccess@iot.monserveurmqtt.fr/alexa.php?topic=/salon/volet&message=1

pour fermer. Le login_htaccess et son mot de passe positionnés au début, suivis par @ permettent de contourner la fenêtre d’authentification du serveur web.

Mais vous pouvez tout à fait désactiver le .htaccess pour le simple fichier alexa.php, avec tous les risques que cela comporte bien entendu, en modifiant .htaccess :

 ===== Désactiver l'auth Basic pour alexa.php =====
# Auth sur tout sauf alexa.php
<FilesMatch "^(?!alexa\.php$).*">
    AuthUserFile /var/www/.htpasswd
    AuthType Basic
    AuthName "My restricted Area"
    Require valid-user
</FilesMatch>

# ===== Redirection HTTPS pour tout sauf alexa.php =====
RewriteEngine On

# EXCLURE alexa.php des redirections
RewriteCond %{REQUEST_URI} !^/alexa\.php$

# Pour tous les autres fichiers : forcer HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Hotspot et caméras ?

Et si vous profitiez d’avoir un hotspot WiFi, avec un enregistreur de connexions qui fonctionne sous linux, pour venir y installer un serveur Web et mettre à disposition de vos utilisateurs les clichés instantanés d’une ou plusieurs vues des caméras IP de votre établissement ?

C’est ce qui motive le projet de Monwifi actuellement en version Beta, avec une interface d’administration pour ajouter et supprimer les caméras :

et une interface de visualisation destinée à vos utilisateurs et clients :

Ici nous avons choisi de capturer le flux de 3 caméras en montage, dont celle de Chamonix, excusez nous du peu 😉
Si vous cliquez sur une image, un onglet s’ouvre et elle s’affiche en pleine résolution, permettant aisément de zoomer. Cette page fonctionne sur PC, smartphone, ou tablette, bien entendu.

Imaginons maintenant que vous exploitiez un établissement avec une piscine : les utilisateurs de votre hotspot wifipak vont pouvoir visualiser en temps semi-réel l’occupation du bassin, je dis bien semi-réel car il n’est pas question d’être intrusif et de diffuser un flux vidéo, uniquement d’afficher un snapshot, c’est à dire une capture d’écran à un instant t.
De même, une caméra IP sur un parcours de golf, sur une terrasse de restaurant, sur une plage privée vous offriront la même possibilité : on y va ? on n’y va pas ? Trop de monde ? Y’a personne ?!
Mais on peut également imaginer visualiser une aire de jeux pour voir que le p’tit dernier s’amuse bien, sans risques.

Revenons à l’administration de ces captures, peut-être avez-vous remarqué ce détail :

RTSP ? Oui, rtsp, ce protocole sur pratiquement toutes les caméras IP qui permet de visualiser le flux vidéo. Toutes les caméras ne font hélas pas de snapshot, à l’instar des TP-Link TAPO : il faut dans ce cas pouvoir capturer le flux vidéo et en extraire une image à un instant donné, lors de cette rapide capture, avant de l’afficher.

Vous aurez ainsi le choix de plusieurs modèles de caméras, soit avec un flux RTSP, soit avec une capacité de snapshot. Nous avons pour le moment testé les caméras Ubiquiti, après avoir activé le snapshot dans l’interface d’administration de chaque caméra. Les caméras TAPO TP-Link refusent elle systématiquement la capture rtsp, aussi avons nous décidé de tester un matériel Imou :

Affaire à suivre… nous allons rapidement découvrir si ce matériel nous offrira toutes les fonctionnalités attendues, car à ce tarif (< 50 €), il ne manque pas de qualités 😉

Evolution des fonctionnalités :

Comment faire évoluer l’interface ? Cela va dépendre des idées de nos clients, il faudra dans un premier temps tester un prototype, voir si le retour des clients est positif, découvrir quels aspects nous devrons faire évoluer surtout.

Déjà, nous imaginons pouvoir ajouter l’envoi d’une image vers un serveur Web, pour par exemple afficher une vue en temps réel de la plage en face de votre établissement, l’enneigement des pistes de la station, une ligne d’horizon sur les montagnes voisines, ou tout paysage que vous voudrez bien proposer à vos visiteurs internet : un lien sur la caméra, un serveur ftp avec un login et un mot de passe, des heures de fonctionnement en fonction du lever du jour sur un lieu donné, et une fréquence d’actualisation. Simple non ?

L’IA, outil de taille :

Inutile de vous le cacher, nous avons utilisé plusieurs IA pour générer ces interfaces, avec en tête ChatGPT et MistralAI. Nous avons rapidement oublié Gemini par Google car à chaque correction, seule une partie des codes était affichée, nécessitant de redemander sans cesse l’envoi du code entier pour ne pas perdre de temps : en vain, l’intelligence est absente de Gemini pour ce qui concerne le code informatique, il vaut mieux l’utiliser pour trouver des recettes de cuisine ou demander l’âge avancé de Flamby Mou 1er, ex-Mouzident sociamou de la France ;-))))

Ces outils sont fabuleux, rapides surtout, mais en aucun cas ne remplacent totalement, pour le moment, notre capacité d’analyse et de programmation. Nous les avons éduqués, orientés, modifiés à la main souvent. Cela reste des outils, mais ne nous voilons pas la face, ils sont fabuleusement utiles !

Conclusion :

Si le projet vous intéresse, si vous utilisez ou voudriez utiliser un hotspot Wifipak, n’hésitez pas à nous faire signe sur Monwifi.fr pour devenir Beta-testeur dès que le projet sera un peu plus avancé.
A terme il pourrait bien s’ouvrir à d’autres matériels hotspot en ne s’utilisant que comme serveur Web et serveur de capture d’images, qui sait…

Effaroucheur à oiseaux sur Raspberry Pi

La saison de la chasse à neuneus est de retour, voici venu le temps de tir dans les champs, la chasse à ces dangereux volatiles, les pigeons par exemple, une espèce sauvagement invasive qu’il ne faut surtout pas hésiter à détruite jusqu’au bout 😉

Si vous aussi les nuisances sonores de ces intellectuels à fusils vous brouillent l’écoute, voici une solution basée sur un simple Raspberry Pi en python 3 :

import pygame
import time
import random
import paho.mqtt.client as mqtt
from datetime import datetime

# Initialisation du mixer de pygame
pygame.mixer.init()

# Liste des fichiers audio
audio_files = ["faucon.mp3", "aigle.mp3", "buse.mp3"]

# Variables de contrôle
mqtt_broker = "iot.tonserveur.fr"
mqtt_port = 1883
mqtt_topic = "/raspibuse"
mqtt_username = "ton_login"
mqtt_password = "ton_mot_de_passe"

# État du script (activé/désactivé)
script_active = False

# Jouer le son de démarrage une seule fois
def jouer_son_demarrage():
    print("🎵 Lecture du son de démarrage : buse.mp3")
    pygame.mixer.music.load("buse.mp3")
    pygame.mixer.music.play()

# Fonction de lecture audio
def jouer_audio():
    global script_active

    while True:
        if script_active:
            fichier_audio = random.choice(audio_files)
            pygame.mixer.music.load(fichier_audio)
            print(f"Lecture de : {fichier_audio}")

            pygame.mixer.music.play()

            while pygame.mixer.music.get_busy():
                pygame.time.Clock().tick(10)

            print("Lecture terminée à :", datetime.now().strftime("%H:%M:%S"))

            # Pause aléatoire entre 20 et 120 secondes
            pause = random.randint(20, 120)
            print(f"Pause de {pause} secondes...\n")
            time.sleep(pause)
        else:
            time.sleep(1)

# Callback de connexion MQTT
def on_connect(client, userdata, flags, rc):
    if rc == 0:
        print("✅ Connexion MQTT réussie")
        client.subscribe(mqtt_topic)
    else:
        print(f"⚠ Échec de la connexion MQTT, code {rc}")

# Callback de réception d'un message MQTT
def on_message(client, userdata, msg):
    global script_active

    message = msg.payload.decode("utf-8").strip()
    print(f"📩 Message reçu: {message}")

    if message.upper() == "ON":
        script_active = True
        print("🔊 Activation du script")
    elif message.upper() == "OFF":
        script_active = False
        pygame.mixer.music.stop()
        print("🔇 Désactivation du script")

# Jouer le son de d  marrage
jouer_son_demarrage()

# Configuration du client MQTT
client = mqtt.Client()
client.username_pw_set(mqtt_username, mqtt_password)
client.on_connect = on_connect
client.on_message = on_message

# Connexion au broker MQTT
client.connect(mqtt_broker, mqtt_port, 60)
client.loop_start()

# Démarrage du script
jouer_audio()

Le script va lancer au choix 3 sons : faucon (pas ceux avec les fusils qui sont des vrais, ne confondez pas), buse, et aigle. Vous pouvez choisir une pause entre 20 et 120 secondes, aléatoire.

Venez ajouter sur la sortie audio du Pi un amplificateur audio à moins de 40 € sur Amazon :

et associez le à un haut-parleur étanche et directif, toujours sur Amazon, dans les 20 € :

Bonne nouvelle, vous allez pouvoir activer l’effaroucheur via un serveur MQTT, cf le script, en envoyant /raspibuse ON ou OFF selon vos besoins. Pratique pour l’activer à distance si besoin.

Je ne détaille volontairement pas l’installation des librairies Python et tous les détails, au besoin Google ou ChatGPT pourront vous aider sur les commandes à utiliser.

X96 : ajoutez des GPIO avec un FT232H

Le X96 est certes une solution super sympa pour réaliser un p’tit serveur linux, des applications domotiques, mais si vous avez besoin d’interfacer un peu plus de choses, pourquoi ne pas ajouter une extension GPIO ? En clair, des entrées et des sorties configurables et activables à volonté, sur un port série, à l’aide d’un module FT232H.

Pour le moment, ne branchez pas votre FT232H. Nous allons créer un fichier :

nano /etc/udev/rules.d/11-ftdi.rules

et nous venons y placer ce qui suit :

SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", GROUP="plugdev", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6011", GROUP="plugdev", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6010", GROUP="plugdev", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6014", GROUP="plugdev", MODE="0666"
SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6015", GROUP="plugdev", MODE="0666"

Sauvegardez avec un CTRL-O, puis CTRL-X pour sortir. La règle se mettra en place une fois le FT232H branché.

Installons maintenant les différents modules nécessaires :

pip3 install pyftdi
pip3 install adafruit-blinka

et positionnons la variable d’environnement :

export BLINKA_FT232H=1

Branchez le FT232H sur l’un des ports USB et vérifions qu’il soit bien reconnu :

Python3
from pyftdi.ftdi import Ftdi
Ftdi().open_from_url('ftdi:///?')

Le résultat doit montrer la détection du module USB :

Available interfaces: 
 ftdi://ftdi:232h:1:2/1   (Single RS232-HS)

Relançons de nouveau python3 puis demandons :

import os
os.environ["BLINKA_FT232H"]

La réponse sera 1 si tout est correctement configuré.

Nous allons pouvoir créer le fichier blink.py :

import time 
import board 
import digitalio 

led = digitalio.DigitalInOut(board.C0) 
led.direction = digitalio.Direction.OUTPUT 

while True: 
   led.value = True 
   time.sleep(0.5) 
   led.value = False 
   time.sleep(0.5)

Venez relier une LED entre la masse GND et le port AC0 du FT232H, en prenant soin d’insérer une résistance d’1 kOhm en série sur la ligne + de la LED :

 

Exécutez le script Python :

python3 blink.py

et voici logiquement votre LED qui clignote ! Votre premier test sur le GPIO USB est terminé, à très vite pour des billets plus poussés sur le sujet 😉

 

Des Times Capsules de 2 à 6 To

Devant la pauvreté de l’offre d’Apple (2 ou 3 To), et après avoir réalisé pas mal d’essais, nous sommes arrivés à sortir un produit répondant parfaitement aux besoin de sauvegarde des ordinateurs sous OS/X :

[checklist]

  • Rapidité : un port ethernet gigabit, un CPU réactif, et 1 Go de mémoire vive
  • Efficacité : un disque dur relié en eSata (5 Gb/s) au gestionnaire
  • Simplicité : reconnaissance immédiate avec Time Machine
  • Puissance : de 2 à 6 To, très utile pour sauvegarder par exemple plusieurs ordinateurs via le réseau local
  • Coût : nos modules sont à des tarifs inférieurs aux Time Capsules Apple

[/checklist]

L’offre qui vous est proposée sur Monwifi.fr est donc très intéressante pour les utilisateurs d’OS/X, que ce soit sur iMac, Macbook, MacMini, MacPro, ou même sur Hackintosh, ces copies utilisant des matériels très proches :

 

time machine_Apple_capsules

Nous ne pouvions bien entendu pas les nommer Time Capsule, ce produit d’origine 100 % Apple étant bien différent : plus compact, difficile à réparer en cas de crash du disque dur, WiFi intégré.

La Sauvegarde Apple se compose dans notre cas d’un boitier disque dur (facile à faire évoluer ou à changer) relié en eSata avec son contrôleur (Linux inside, bien entendu, question de stabilité), et de deux alimentations 220 V.

Notre propos est donc exclusivement de proposer une sauvegarde, juste une sauvegarde, simple, performante (adieu les disques USB ou les solutions à base de Raspberry Pi, trop lents).

A découvrir sur Monwifi.fr, rubrique Apple, what else 😉

Raspberry + AirCam ? La sonnette facile ?

Prenez un Raspberry Pi :

raspberry_pi2

Prenez une caméra AirCam :aircam_full

Ajoutez la sonnette de votre porte d’entrée :

sonnette

puis saupoudrez de quelques scripts, un peu de configuration, quelques réglages ici et là, un joli boitier, reliez la sonnette au Raspberry Pi et vous obtenez une sonnette domotique, capable de vous expédier le cliché de votre visiteur par email !

En plus clair :

  1. on sonne
  2. l’image de la caméra IP est capturée, sauvegardée
  3. l’image est envoyée par email sur votre smartphone via un script bien placé

Certes, ainsi, impossible d’engager le dialogue avec votre visiteur, mais l’idée n’est pas là : l’objectif est de pouvoir réaliser un portier vidéo pour moins de 100 EUR, un portier qui va venir s’intégrer à du matériel déjà en place.

Cette solution peut évoluer, utiliser une simple webcam USB par exemple, plus simple à mettre en place ou à intégrer, et plus petite qu’une caméra IP. Elle peut également utiliser la caméra propre au Raspberry Pi, la Pi Hut, histoire d’avoir une solution compacte et performante (5 Mpixel).

Certains bricoleurs très avertis ont également eu l’idée d’inclure une solution audio complète en utilisant une carte son externe, un micro, un haut parleur amplifié et un logiciel de téléphonie VoIP : ils peuvent ainsi engager le dialogue avec leur visiteur en recevant un appel sur leur smartphone. Si cette solution semble idéale, elle semble toutefois techniquement lourde pour un Raspberry Pi qui a toujours été modeste dans ses prétentions. On peut par contre envisager un message audio diffusé automatiquement quelques secondes après la sonnerie pour faire toujours simple.

Unifi : nouveau mini-PC de gestion

Pour gérer vos bornes Unifi, nous vous proposons désormais une version light du gestionnaire déjà disponible sur un ordinateur de plus forte capacité. Cette version light fonctionne toujours sous Linux, avec un Celeron 1037U 1.8 GHz, 4 Go de mémoire : une version supérieure aux modèles copiés par nos confrères et concurrents, une version qui utilisera un disque dur 500 Go et non un petit SSD de 80 Go trop limité en capacité de traitement et en cycle de lectures/écriture surtout.

unifi_serveur_miniCe mini-PC ne consomme en outre que 40 W (200 W les modèles concurrents) et trouvera aisément sa place avec ses 900 g (4.5 kg chez les concurrents). Et pour terminer, il vous coûtera environ 200 € de moins que la copie concurrente.

Résumons un peu :

  • plus petit, 900 g seulement et non 4.5 kg
  • moins gourmand avec seulement 40 W et non 200 W
  • 1.8 GHz avec 4 Go de RAM et non 2 Go
  • 500 Go de disque dur, pas 80 seulement
  • une marque connue : MSI

Intéressant ?

==>>> A découvrir sur monwifi.fr

 

Ubuntu sur un Eeepc

Voici plusieurs années, au début de mon aventure avec le festival des Vieilles Charrues, j’avais cherché un ordinateur portable de petite taille, fiable, avec une bonne autonomie. A l’époque, c’est Blogeee, devenu depuis Minimachines.net, qui avait orienté mon choix sur l’Asus 1005HA :

Trimbalé de partout, que ce soit au boulot, en vacances, et même pour travailler depuis la voiture, cela fait 3 ans que ce petit engin d’entrée de gamme me suit fidèlement, m’offrant généreusement ses 7 heures d’autonomie.

Seulement voilà, sous Windows Seven, avec les 20 000 patches annuels appliqués à Frankeinstein-Windows par la firme de Redmond, avec la pitoyable organisation d’un disque dur qu’il faut régulièrement fragmenté tellement il s’est mal géré, le 1005HA était devenu d’une lenteur à faire pâlir de jalousie un Suisse Romand ! Impossible d’ouvrir la moindre page internet sans devoir attendre que flash et je ne sais encore quel java s’activent avant de pouvoir espérer réussir à faire défiler la page, c’était devenu le PC de la misère, toujours fidèle au poste mais bien peu pratique.

Ni une, ni deux, une sauvegarde sur le NAS du bureau plus tard, j’insérais la clé d’Ubuntu 12.04.1 et lançais la résurrection logicielle de l’EeePC. Au risque de passer pour un énorme troll anti-window$$, le résultat ne se fit pas attendre : fluidité, rapidité, démarrage accéléré, simplicité de l’interface Unity, je n’en demandais pas plus, redonnant une nouvelle vie à un ordinateur qui, pourtant, semblait à bout de souffle.

C’est également sans compter avec tout ce que Linux intègre pour mon travail de tous les jours : ssh et ftp par exemple, des service qu’il faut souvent ajouter à Windows. Et je ne parle pas des possibilités réseau ou IP, Linux est largement supérieur sur ce plan là, et ce depuis toujours.

Me voici donc avec un ordinateur ancien (3 ans déjà, waouhh 😉 ) totalement remis à neuf sur l’aspect logiciel. Si cela n’avait pas fonctionné, j’aurais été obligé de choisir une nouvelle machine, sans doute moins fiable, sans doute entre 400 et 700 € pour espérer avoir quelque chose de potable, sans doute moins transportable, et sans doute hors de prix si j’avais opté pour un MacBook Air par exemple.

Quid des applications, me demanderait alors Mme Michu ? J’ai le souvenir d’avoir basculé l’ordinateur d’un ami cuisinier sous Ubuntu, un ami qui n’y connaissait RIEN en informatique et qui pourtant a réussi, de lui même, à retrouver ce qu’il faisait habituellement : surfer, manipuler les photos de son appareil numérique, discuter sur skype ou msn, envoyer des emails, rédiger des courriers. Non, Ubuntu ne change pas les habitudes, il les améliore, ouvre des portes, change le comportement de l’utilisateur. Les logiciels changent parfois de nom mais ils sont toujours présents, on retrouve rapidement ses réflexes.

Prochaine étape ? Sans doute investir dans un petit SSD, ce disque dur-mémoire : je n’ai pas besoin des 160 Go du disque actuel et j’avoue que, bénéficier d’une machine beaucoup plus rapide ne me déplairait pas.

 

Raspberry Pi : il arrive… enfin bientôt…

La patience étant une vertue, tout venant à point à qui sait attendre, voici enfin l’arrivée prochaine du Raspberry Pi, ce minus-ordinateur produit par la fondation du même nom, propulsé par Linux.

Certes, il faudra encore patienter 3 semaines, le fournisseur officiel ayant compris tout l’intérêt de faire payer de suite ses clients, de faire fructifier les sommes ainsi récoltées et d’ensuite valider la fabrication en Asie. Bref, on vit une époque formidable, mais après tout, business is business hein, ne nous berçons pas avec des jolies illusions 😉

Mais à quoi va donc pouvoir servir la mini-bestiole ? Quelques idées en vrac :

[checklist]

  • Lecteur multimedia XBMC
  • Serveur d’enregistrement des logs pour hotspot
  • Ordinateur de salon
  • Platine pour l’éducation
  • Caméra IP surpuissante
  • Automate pour une gestion domotique
  • Mini AP WiFi

[/checklist]

Vous avez le choix des armes, mais, personnellement, je pense commencer par un environnement Linux de base, graphique, voir si la bête tient la route comme minus-PC, pour ensuite m’orienter vers une distribution plus axée vers les lignes de commande, tenter d’y installer quelques paquets spécifiques, puis terminer par XBMC pour profiter des flux multimédia sur une TV HD.

Et vous, vos idées ? Vos applications ? Vos délires ? 😉