Archives de catégorie : Généralités

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]

Boulanger pompe vos données, et il n’est pas le seul…

Peut-être avez vous déjà commandé en ligne chez Boulanger, grande enseigne d’électroménager française, oh combien compétente, sauf peut-être sur un détail : la capture discrète de vos données !

Vous allez vous faire livrer, puis vous recevrez un email demandant ce que vous avez pensé de la livraison :

Déjà, noter des humains, je n’aime pas ça, et pourtant tous le font, Chronopost en tête qui demande quel était l’état du camion, etc. Bref, passons… Mais c’est sur la seconde page que le gag arrive :

Là, stupéfaction, en quoi Boulanger, après m’avoir livré un frigo par exemple, peut-il s’intéresser à mon boulot, savoir si je suis homme/femme ou une célèbre chanteur-teuse, « paillasson genré grille-pain » ? A quoi bon savoir si je suis en appart ou maison, si je lou ou non, bref, quel intérêt pour un frigo ?

Eh bien figurez-vous que nombre d’enseignes jouent à ce jeu là, complètent leurs données, les fameuses DATA pour speaker l’angliche, ces données qui permettent, à force de croisements et de recoupements, de constituer une fiche précise de vous, Mme MICHU de Bêzons les Glamouilles, ou vous M. FLAMBYMOU de Tulle : et avec cette fiche, revendue en masse par nombre d’exploitants, on peut ainsi vous cibler le mieux possible :

Vous êtes une femme, en appart, 70 ans, allez zou, récupérons le fichier de Rance 3 et proposons des douches avec sièges, des protections anti-fuites. Vous avez une maison ? On va rajouter les monte-escaliers Nanard pour vous éviter trop d’effort pour rejoindre l’étage !! Vous êtes un mec de 75 ans ? Ajoutons MolleProstate pour revivifier votre MMS : le Matin / Midi / Soir s’est depuis transformé en Mars / Mai / Septembre, il est temps de faire quelque chose !! 🙂

Tu es un jeune post-ado de 35 ans ? En couple ? 3 enfants ? un break ? un chien ? une maison ? Waouuuh, jackpot !!! Tu vas avoir droit aux croquettes pour toutou, aux séjours en village-club-vacances avec garde chieurs gratos, à des offres dingues sur les véhicules PeuGel et leurs célèbres moteurs PureM…de (faut bien écouler les stocks !!!), des abonnements à 50% sur Tain-d’or, et j’en passe.

Tout ceci est ironique, mais c’est bien réel, n’imaginez pas une seule seconde que ces enseignes là cherchent à « mieux vous connaitre »… Perso, j’aurais tendance à leur facturer mes données, puisqu’elles sont ensuite utilisées pour faire du fric, et vous ?

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…

RouterOS : calculez le volume de données mensuel !

Vous utilisez RouterOS 7 ou ultérieur sur un appareil Mikrotik pour votre réseau ? Voici un script qui va pouvoir calculer le trafic mensuel passant sur le port WAN, ether1 en général. Vous aurez, au préalable, configuré l’envoi d’email dans votre RouterOS et remplacé les emails de destination (emailTo) et d’émission (emailFrom) par vos propres emails :

# --- Configuration ---
:local interfaceName "ether1"
:local emailTo "tonemail@gmail.com"
:local emailSubject "RAPPORT MENSUEL: Trafic ether1 (Go)"
:local emailFrom "noreply@tonemail.fr"

:put "--- SCRIPT DE TRAFIC (DÉMARRAGE) ---"

# --- 1. Vérification de l'interface ---
:local ifName [/interface get [find name=$interfaceName] name]
:if ($ifName = "") do={
    :put "ERREUR: Interface $interfaceName non trouvée"
    :error "Interface non trouvée"
}
:put "Interface trouvée: $ifName"

# --- 2. Lecture brute des compteurs (forcée en nombre) ---
:local rxBytes [:tonum [/interface get [find where name=$ifName] rx-byte]]
:local txBytes [:tonum [/interface get [find where name=$ifName] tx-byte]]
:local totalBytes ($rxBytes + $txBytes)

:put "Données lues - Total: $totalBytes octets"

# --- 3. Conversion en Go (base 10) ---
:local rxGB ($rxBytes / 1000000000)
:local txGB ($txBytes / 1000000000)
:local totalGB ($totalBytes / 1000000000)

# --- 4. Formatage à 2 décimales ---
:local rxGBstr [:pick [:tostr $rxGB] 0 ([:find [:tostr $rxGB] "."] + 3)]
:local txGBstr [:pick [:tostr $txGB] 0 ([:find [:tostr $txGB] "."] + 3)]
:local totalGBstr [:pick [:tostr $totalGB] 0 ([:find [:tostr $totalGB] "."] + 3)]

:put "Conversions effectuées: $totalGBstr Go"

# --- 5. Construction du mail ---
:local today [/system clock get date]

:local body "RAPPORT MENSUEL DE TRAFIC\n\n"
:set body ($body . "Interface: $ifName\n")
:set body ($body . "Période: 30 jours jusqu'au $today\n\n")
:set body ($body . "TRAFFIC CUMULÉ:\n")
:set body ($body . " $totalGBstr Go\n")

:set body ($body . "Compteurs réinitialisés pour le prochain cycle.")

:put "Corps email généré"

# --- 6. Réinitialisation éventuelle ---
/interface reset-counters $ifName
:put "Compteurs réinitialisés"

# --- 7. Envoi du mail ---
/tool e-mail send to=$emailTo from=$emailFrom subject=$emailSubject body=$body
:put "Email envoyé"

:put "--- SCRIPT TERMINÉ ---"

Ce script a été initialement généra par ChatGPT, modifié manuellement, corrigé, et vous enverra tous les 30 jours un email avec le volume total de trafic généré sur cette période.

RouterOS : gestion du ping et alerte

Comment surveiller une IP sur votre routeur RouterOS 7.xx ? Un simple script, ping, se chargera de vous prévenir par email (à condition d’avoir configuré votre envoi d’email dans /tools/e-mail, cf plus bas dans ce billet.

Voici déjà le script qui va tester 3 fois l’adresse 192.168.1.21, et en cas de non-réponse envoyer un email aux deux destinataires, recipient et recipient1 mentionnés dans le script :

    :local targetIP "192.168.1.21";
    :local recipient "monemail@chezmoi.fr ";
    :local recipient1 "secondemail@chezlui.fr";
    :local subjectFail ("ALERTE PING HS ");
    :local bodyFail ("Email automatisé pour vous indiquer que le module ne répond plus. \r\nMerci de bien vouloir vérifier le branchement ethernet et l'alimentation. \r\nVous pouvez le  débrancher, et le rebrancher. \r\nSi l'alerte persiste, merci de contacter votre prestataire.\r\n\r\n
*** Ceci est un message automatisé, ne pas répondre ****");
    :local logMessage ("Test ping vers " . $targetIP);
    :local success 0
    :for i from=1 to=3 do={
        :if ([/ping $targetIP count=1] = 1) do={
            :set success ($success + 1)
        }
    }
    :if ($success = 0) do={
        /tool e-mail send to=$recipient subject=$subjectFail body=$bodyFail
        /tool e-mail send to=$recipient1 subject=$subjectFail body=$bodyFail
    }

Pour ce qui est de la configuration de l’email dans /tools/e-mail :

        server: mail.monserveur.fr        
          port: 465                    
           tls: yes                    
           vrf: main                   
          from: noreply@chezmoi.fr     
          user: alerte@monserveur.fr
      password: LePenEstNulle;;    

Ici, nous avons créé un email alerte@monserveur.fr pour pouvoir expédier. L’envoi se fait sur mail.monserveur.fr mais cela changera selon votre configuration : smtp, imap, etc. tout est possible, pensez à modifier les paramètres.

Vous n’avez désormais plus qu’à exécuter le script ping toutes les 12 heures par exemple :

/system scheduler add name=ping-schedule \
    interval=12h \
    on-event=ping \
    start-time=startup

Et voilà, en cas de coupure vous recevrez une alerte email sur les 2 emails pré-configurés.
Pratique non ?

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.

Porno, pub, popup : soyez BRAVE !

Dans ce monde globalisé, vous n’avez pas manqué de remarquer les restrictions toujours plus sournoises, les publicités toujours plus déguisées sur vos écrans d’ordinateurs. Parfois on vous dit que c’est pour votre bien, tel le blocage des sites pornos nécessitant de transmettre vos documents d’identité à des prestataires souvent inconnus et d’une fiabilité douteuse… Qui voudra s’exciter ainsi, la carte d’identité à la main, oubliant le code d’accès pour 5 mn de fun ? 🙂

Plus sérieusement, qui n’est pas allé sur un site que je ne citerai pas, un coin qui est bon, pour chercher à revendre ou acheter des produits d’occasion ? Avez-vous déjà tenté d’utiliser l’application mobile sur ce super « bonsite » ? Eh oui, bourrée de pubs alors que vous cherchez simplement à surfer, des pubs partout qui surgissent sans prévenir, dégradant par la même occasion l’expérience utilisateur. Et c’est le cas avec pas mal d’App de sites bien connus, des Apps qui vont se contenter de venir récupérer le contenu du site Web des enseignes, et de venir vous forcer à visionner des pubs à la con, disons le clairement.

La solution ? Le navigateur Brave !

Peu connu des utilisateurs de base, Brave apporte pourtant une solution propre à la navigation, avec son bouclier anti-pubs.

Un exemple avec un site très utilisé en France :

Le simple fait d’afficher le site, ce sont 35 pubs et traqueurs bloqués, TRENTE CINQ, juste pour avoir ouvert la page du site sur Brave, TRENTE CINQ !!! Et plus vous allez surfer, plus le nombre va grimper, grimper.

Mais avec Brave, stop, terminé, plus d’affichage de ces pubs qui vous pourrissent la vie et la vue lors de vos lectures d’un site, votre navigation redevient fluide, simple, sans popups partout : la paix, le calme !!

Et puis s’il vous faut aller sur des sites plus « excitants » bloqués dans votre pays, utilisez la navigation privée Tor sur Brave :

Une nouvelle fenêtre s’ouvre, patientez jusqu’à l’affichage du message « Tor connecté avec succès » et surfez, en liberté, de façon sécurisée.

 

 

 

 

Enregistreur de connexions hotspot : mise à jour !

Voici venir l’évolution des enregistreurs de connexion pour les hotspots Wifipak :

Ce seront désormais des X96, petites box TV à l’origine, transformées en enregistreurs de connexions après quelques manipulations logicielles.
Pourquoi ce choix ? Un stockage emmc qui permet de se passer de carte micro-SD, une très faible consommations électrique, un module ultra-compact qui sait se faire oublier, un prix de revient moindre qui permet de contenir les inévitables augmentations tarifaires de cette époque un brin trouble 😉

Au final, que du bonheur, pas de pannes, pas de maintenance, simplicité totale, conforme à l’esprit de nos hotspots Wifipak : liberté, efficacité, simplicité !

MacOS, mise à jour sans greenwashing

Vous utilisez Apple et vous appréciez l’ergonomie de leurs produits ? Nous aussi ! Seulement voilà, les discours tenus par Tim Cook lors des Keynotes nous sortent désormais par tous les trous, et c’est peu dire : ras le bol des « amaaaaaazing » et autres « greaaaaaat » à longueur de présentation, ras le bol de leur greenwashing avec des produits qui ne dureront pas des années, juste pour que votre expérience utilisateur ne soit pas trop dégradée.

Récemment, c’est sur un iMac 2015 que nous avons dû intervenir, 2015, 10 ans, rien pour une machine aussi bien conçue, rien du tout pour un produit « amaaaaazing », mais pourtant il n’acceptait plus aucune mise à jour ! Bravo La Pomme, Bravo pour nous prendre une fois encore pour des poires, vraiment bravo !

Ni une, ni deux, direction OpenCore Legacy Patcher, un p’tit soft destiné à enfumer le démarrage de votre précieux iMac et lui laisser installer une version plus récente de MacOS :

Et voilà, le vieux MacOS a repris forces et vigueur, il revit, et fonctionne toujours aussi bien avec les 8 Go de mémoire vive. D’ici à penser que notre Tim-bien-pensant-bobo-écolo-bio aurait lui aussi pu imaginer cette solution….

Et vous, votre Mac, il est à jour ? Vous allez l’upgrader ?

 

Et la suite ?

Vous l’avez noté, Blogwifi est muet depuis plus d’une année, la faute au manque de temps, au rouleau compresseur de la vie, ou à la motivation, voir peut-être un mélange de tout ça.

La question se pose donc : faut-il poursuivre ? Après tout des milliers de sites vous donnent des nouvelles infos tout aussi bien, communiquement 100 fois plus fortement et plus vigoureusement sur les différents réseau a-sociaux de l’internet moderne. Alors, dépenser tous les ans plus de 70 EUR pour quoi ?

J’avoue que d’ici Août 2025 il faudra choisir, repartir pour juste exister et ne rien poster, ou laisser de côté BlogWiFi, qui a été un projet super sympa depuis environ 2009, un projet qui a visiblement apporté beaucoup de motiviations à pas mal d’entre vous, mais désormais, à quoi bon ?

Certes ici ça bricole toujours autant, le geek n’est pas enterré, mais l’envie de toujours partager n’est plus là, le temps à prendre pour faire des photos, les mettre en forme, rédiger des billets, je ne l’ai plus ou du moins je veux le consacrer à autre chose, à ma vie, à plus important qu’un blog, avec tout le respect pour les lecteurs n’en doutez pas 😉

Alors, on fait quoi ?