Achives de la catégorie ‘Linux’
2017
Domotiser simplement un radiateur à fil pilote
Bonjour à tous,
La semaine dernière j’ai fait changer mes vieux radiateurs électrique par un modèle plus récent et surtout avec l’option « Fil pilote ».
Loin de moi de l’idée de faire de la pub pour une marque ou une autre, mais c’est MON Blog et donc oui je vais citer les marques n’en déplaisent à certains.
Pour les radiateur, ils sont de chez Balma, une marque Française que je ne connaissais pas donc bon coté fiabilité je ne pourrais pas m’avancer pour le moment …
Par contre ils ont un fil pilote 6 ordres et ça c’est chouette !
Alors un fil pilote pour résumer c’est une vieille techno qui permets d’effectuer quelques contrôles sur son radiateur en « bidouillant » la tension 230v alternative de votre arrivée électrique.
Du peu que j’en ai vu, il y a des fils pilotes à 4 ou 6 ordres et j’ai bien l’impression que c’est normé (ouf).
Voici les 6 ordres disponibles sur mon modèle :
Sur un modèle avec fil pilote à 4 ordres vous n’aurez que :
-Confort
-Eco
-Hors-gel
-Arrêt chauffage
Ma domotique fonctionnant sur un Raspberry avec Jeedom, pour le moment je ne gère que du Zigbee (Xiaomi, Philips Hue) et du 433Mhz avec une gateway RFXcom de chez nodo-shop.nl
Après quelques recherches je suis tombé sur un module qui gère les 6 ordres mais sur du Z-wave : QUBINO ZMNHJD1
le gros avantage de ce module c’est qu’il est compatible toute box Z-wave car pour le changement d’état sur le fil pilote il utilise simplement la fonction dimmer (de 0 à 10% mode confort -2, de 11 à 20% mode confort -1, etc …) Il permet également de remonter des états ou de contrôler des boutons poussoirs donc pour les plus bricoleurs, vous pouvez interfacer les interrupteurs du radiateur sur votre module Qubino pour pouvoir par exemple contrôler la température de consigne sur le radiateur ! Mais pour les retours d’affichage … Je pense qu’il va falloir faire sans…
Le plus gros inconvénient est financier, en effet 60 euro le module par radiateur plus un dongle également à 60 euro ça fait pratiquement 200 euros pour contrôler simplement les 6 ordres de deux radiateurs .
Mais ATTENTION, on ne peut contrôler la température du thermostat intégré au radiateur sans le démonter et relier les interrupteurs au module, je suis bricoleur mais là j’ai mes limites d’autant plus que si l’on démonte le radiateur on perds généralement la garantie et en cas d’incendie je n’ai pas envie de batailler avec les assurances …
J’ai donc fait pour ma part le choix économique, je ne gère que deux ordres :
-Confort : Le radiateur tourne en fonctionnement normal
-Arrêt chauffage : Radiateur éteint
Et je peux gérer ces deux ordres très simplement avec un module type luminaire On/Off de chez Chacon (que l’on trouve à 15 euro chez Amazon).
Pour le mode confort, aucun signal n’es envoyé au signa pilote, il correspondra à l’état Off du module Chacon
Pour le mode Arrêt chauffage, il suffit d’envoyer 115v positif, à la sortie du module Chacon il nous faudra donc une diode pour ne pas laisser passer la partie négative du signal électrique (Qui est de 230v alternative sinusoidale) ce qui nous donnera une demi sinusoidale oscillant entre 0 et 115v positif.
Voici une petite photo avant intégration dans un boitier encastrable :
Et voici un petit schémas :
Avec ça je vais pouvoir contrôler le radiateur via Jeedom et avec les sondes de températures des différentes pièces je vais pouvoir allumer ou non un radiateur pour atteindre la température désiré dans la pièce.
Evidement il va falloir que la température de consigne paramétré sur le radiateur soit supérieur à la température maximal souhaité mais le résultat est là .
La journée j’ai mon 20° quand je suis présent et la nuit je passe à 17° dans la chambre et je passe à 16 dans le salon (mes pièces sont très rapide à chauffer).
Evidemment le mode éco m’intéresse également, pour la nuit ce mode devrait être largement suffisant et me permettrait de faire quelques économies supplémentaires. je pourrais trouver un module pour gérer plusieurs relais mais je pense plutôt que je sauterais un jour le pas sur du Z-wave et changerais le module Chacon par le QUBINO.
Si vous avez des questions, n’hésitez pas les commentaires sont fait pour ça !!
JJ
2017
DIY – Distributeur de croquettes connecté sous arduino
Bonjour à tous,
Ce samedi matin, comme d’habitude je me suis réveillé un peu ronchon …
Car comme tous les amoureux des animaux, je me fait réveillé par la meute qui vit à la maison.
Mais ce matin là, j’ai décidé de ne pas me laisser faire, après quelques recherche sur comment manger nourrir son chat automatiquement, je suis tombé sur des distributeurs de croquettes à piles et après quelques rapides passages sur les commentaires, j’ai compris qu’en dessous de 50 euros bah c’est de la merde !
En plus ayant deux chats qui ne mangent pas au meme endroit, ça fait cher la tranquillité …
Tout ça pour balancer quelques croquettes dans un bol, je dirais meme que c’est abusé…
J’ai commencé à regarder les différents systèmes permettant de distribuer des croquettes, on peut y trouver des systèmes de cylindre avec une ouverture sur le coté, ou encore des systèmes à vis infini voir des trucs encore plus fou.
Mais j’ai craqué pour un système basé sur deux contenant et un servo moteur, le servo tourne le contenant du haut pour que l’ouverture croise celle du bas un cours instant (assez pour faire tomber quelques croquettes), cette idée je l’ai piqué sur une vidéo youtube russe dont je ne retrouve plus le lien …(promis je vais chercher).
Bon une fois le problème de distribution de croquettes réglé, il faut se pencher sur le coté connecté de l’objet.
Alors là ayant en stock des ESP 8266 (ESP-12E, ce sont en gros des puces wifi que l’on peut programmer comme un arduino) je me suis dit que c’était parfait d’autant que Jeedom contient un plugin EasyESP.
Et voici ce que ça donne en vidéo :
Si vous souhaitez réaliser vous meme votre distributeur de croquettes et que vous êtes pressé, n’hésitez pas à me contacter, sinon soyez patient, un tuto complet en vidéo ne devrait pas trop tarder.
Su ce, je retournes me coucher
2016
Raspberry Pi – Raspbian pixel et Chromium en mode kiosk – ouverture automatique d’un navigateur en mode plein écran au démarrage de Raspbian
Bonjour à tous,
Aujourd’hui je vais vous présenter une façon simple de démarrer votre raspberry pi en lançant automatiquement un navigateur (En mode kiosk).
Nous allons aller un peu plus loin de la plupart des tutoriels en ajoutant l’autologin ainsi que la rotation automatique d’un onglet à l’autre.
J’ai deja écrit un premier article sur le sujet avec midori et firefox, mais ayant une préférence pour chromium et avec l’arrivée de Raspbian pixel, je me devais de faire un nouveau tutoriel.
Ce tuto à été fait avec Raspbian Pixel.
Ouvrez un terminal sur votre raspberry (En local ou via ssh).
Mettez à jour vos dépots :
sudo aptitude update
Lançons ensuite l’installation du navigateur :
sudo aptitude install rpi-chromium-mods chromium-browser
Puis nous allons éditer le fichier :
sudo nano ~/.config/lxsession/LXDE-pi/autostart
Commentez la ligne :
#@xscreensaver -no-splash
Et ajoutez les lignes suivante à la fin du fichier :
@xset s off @xset -dpms @xset s noblank
Si vous ne voulez pas que chrome vous affiche ses message d’erreur en cas de plantage et reboot du raspberry, ajoutez :
@sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences
Si vous ne voulez pas que chromium ne vous affiche pas la popup restore table, editez le fichier :
sudo nano /etc/rc.local
Et ajoutez ces deux lignes avant le exit 0; :
## Empeche l'affichage du restore table au reboot de chromium sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences sed -i 's/"exit_type": "Crashed"/"exit_type": "None"/' ~/.config/chromium/Default/Preferences
Passons maintenant au plus interessant, le lancement du navigateur!
Nous allons voir plusieurs cas avec des options différentes que vous pourrez par la suite adapter à vos besoins :
-Ouvrir le navigateur vers l’adresse www.jjtronics.com :
@chromium-browser -noerrdialogs http://www.jjtronics.com
Maintenant avec le mode Kiosk (un mode full screen que l’on ne peut quitter)
-Ouvrir le navigateur en plein écran Kiosk vers l’adresse www.jjtronics.com :
@chromium-browser -noerrdialogs -kiosk http://www.jjtronics.com
Comme vous pouvez le constater, c’est l’option kiosk qui permet un affichage full screen
-Ouvrir le navigateur en plein écran Kiosk et en mode navigation privé vers l’adresse www.jjtronics.com :
@chromium-browser -noerrdialogs -kiosk -incognito http://www.jjtronics.com
-Ouvrir le navigateur en plein écran Kiosk, en mode navigation privé avec deux onglets, l’un pointant sur www.jjtronics.com et un second sur www.keepfreeze.com
@chromium-browser -noerrdialogs -kiosk -incognito http://www.jjtronics.com http://www.keepfreeze.com
Et voici en mode plein écran que l’on peut quitter :
-Ouvrir le navigateur en plein écran vers l’adresse www.jjtronics.com :
@chromium-browser -noerrdialogs--start-fullscreen http://www.jjtronics.com
-Ouvrir le navigateur en plein écran et en mode navigation privé vers l’adresse www.jjtronics.com :
@chromium-browser -noerrdialogs --start-fullscreen -incognito http://www.jjtronics.com
-Ouvrir le navigateur en plein écran, en mode navigation privé avec deux onglets, l’un pointant sur www.jjtronics.com et un second sur www.keepfreeze.com
@chromium-browser -noerrdialogs --start-fullscreen -incognito http://www.jjtronics.com http://www.keepfreeze.com
Maintenant que nous avons un kiosk avec plusieurs onglets, il va falloir automatiser le changement d’onglet, ce qui va permettre d’afficher plusieurs pages web avec un intervale de rotation d’un onglet vers l’autre.
Pour ce faire, nous allons simplement utiliser l’extension revolver-tabs.
ATTENTION, le mode navigation privé n’autorise pas l’utilisation de plugins, nous allons donc enlever l’option -incognito.
Ouvrez votre navigateur chromium sur le raspberry et allez à l’adresse :
https://chrome.google.com/webstore/detail/revolver-tabs/dlknooajieciikpedpldejhhijacnbda
Installez l’extension et allez ensuite dans les parametres de revolver :
-Parametrez le délais avant de switcher d’un onglet vers l’autre
-Activez l’auto-start pour que l’extension puisse se lancer automatiquement au lancement du navigateur
-Activez l’option Rotate only when inactive (Cela vous évitera de batailler pour rester sur un onglet)
Voici pour les options de base, une fois paramétré, vous pouvez redémarrer votre raspberry pour voir ce que ça donne.
Vous devriez avoir Chromium qui se lance en plein écran avec les deux onglets qui s’affiche l’un après l’autre au bout de X secondes.
Votre Kiosk commence à ressembler à quelque chose, mais si comme moi, vous avez certains sites web qui nécessite une authentification avant d’afficher vos précieuses informations et que vous souhaitez vraiment que dès le démarrage de votre Raspberry, votre kiosk s’authentifie automatiquement aux divers sites web que vous affichez, il y a l’extension auto-login pour chrome que vous pouvez installer en ouvrant votre navigateur chrome et allez à l’adresse :
https://chrome.google.com/webstore/detail/auto-login/kjdgohfkopafhjmmlbojhaabfpndllgk
Une fois installé, allez sur un site nécessitant une authentification :
Comme vous pouvez le voir sur votre droite, un icone est apparu, vous devez cliquer dessus pour que l’extension enrengistre les credentials que vous allez taper.
Une fois votre premier site web enrengistré, vous pouvez activer ou non l’auto-login en allant dans les options de l’extension :
Vous pouvez maintenant tenter un reboot de votre Raspberry, votre navigateur devrait s’ouvrir en plein écran avec deux onglets qui tournent au bout de X secondes et authentifié sur les sites que vous avez préalablement enrengistré sur auto-login.
Que demander de plus ?
Je vous souhaite bon courage pour la suite et n’hésitez pas si vous avez des soucis ou une autre façon de faire ;)
2016
Diverses commandes linux
Voici un petit memo personnel de quelques commandes en vrac à ajouter à votre boite à outils :
-DEBIAN like : Suppression d’un packet mal installé qui nécessite une réinstallation :
sudo dpkg --force-remove-reinstreq --remove $NomDuPacket
-LINUX : Compter le nombre de fichiers contenu dans un répertoire :
ls -1A |wc -l
-LINUX : Rechercher occurence toto dans tous les fichiers du répertoire courant :
find . -name ‘*’ -exec grep -Hsl ‘toto’ {} ;
-LINUX : activer un script dans init.d au boot du système :
update-rc.d $NomDuScrupt defaults
-LINUX : désactiver le démarage d’un script init.d au boot du système :
update-rc.d -f $NomDuScript remove
-La CheatOgraphie :
###Bash Commands uname -a #Show system and kernel head -n1 /etc/issue #Show distribution mount #Show mounted filesystems date #Show system date uptime #Show uptime whoami #Show your username man command #Show manual for command
###Bash Shortcuts CTRL-c #Stop current command CTRL-z #Sleep program CTRL-a #Go to start of line CTRL-e #Go to end of line CTRL-u #Cut from start of line CTRL-k #Cut to end of line CTRL-r #Search history !! #Repeat last command !abc #Run last command starting with abc !abc:p #Print last command starting with abc !$ #Last argument of previous command ALT-. #Last argument of previous command !* #All arguments of previous command ^abc^123 #Run previous command, replacing abc with 123
###Bash Variables env #Show environment variables echo $NAME #Output value of $NAME variable export NAME=value #Set $NAME to value $PATH #Executable search path $HOME #Home directory $SHELL #Current shell
###IO Redirection cmd < file #Input of cmd from file cmd1 <(cmd2) #Output of cmd2 as file input tocmd1 cmd > file #Standard output (stdout) of cmd to file cmd > /dev/null #Discard stdout of cmd cmd >> file #Append stdout to file cmd 2> file #Error output (stderr) of cmd to file cmd 1>&2 #stdout to same place as stderr cmd 2>&1 #stderr to same place as stdout cmd &> file #Every output of cmd to file
###Pipes cmd1 | cmd2 #stdout of cmd1 to cmd2 cmd1 |& cmd2 #stderr of cmd1 to cmd2
###Command Lists cmd1 ; cmd2 #Run cmd1 then cmd2 cmd1 && cmd2 #Run cmd2 if cmd1 is successful cmd1 || cmd2 #Run cmd2 if cmd1 is not successful cmd & #Run cmd in a subshell
###Directory Operations pwd #Show current directory mkdir dir #Make directory dir cd dir #Change directory to dir cd .. #Go up a directory ls #List files ###ls Options -a Show all (including hidden) -R Recursive list -r Reverse order -t Sort by last modified -S Sort by file size -l Long listing format -1 One file per line -m Comma-separated output -Q Quoted output
###Search Files grep pattern #files Search for pattern in files grep -i #Case insensitive search grep -r #Recursive search grep -v #Inverted search grep -o #Show matched part of file only find /dir/ -name name* #Find files starting with name in dir find /dir/ -user name #Find files owned by name in dir find /dir/ -mmin num #Find files modifed less than num minutes ago in dir whereis command #Find binary / source / manual for command locate file #Find file (quick search of system index)
###File Operations touch file1 #Create file1 cat file1 file2 #Concatenate files and output less file1 #View and paginate file1 file file1 #Get type of file1 cp file1 file2 #Copy file1 to file2 mv file1 file2 #Move file1 to file2 rm file1 #Delete file1 head file1 #Show first 10 lines of file1 tail file1 #Show last 10 lines offile1 tail -F file1 #Output last lines offile1 as it changes
###Watch a Command watch -n 5 'ntpq -p' #Issue the 'ntpq -p' command every 5 seconds and display output
###Process Management ps #Show snapshot of processes top #Show real time processes kill pid #Kill process with id pid pkill name #Kill process with name name killall name #Kill all processes with names beginning name
###Nano Shortcuts ##Files Ctrl-R #Read file Ctrl-O #Save file Ctrl-X #Close file ##Cut and Paste ALT-A #Start marking text CTRL-K #Cut marked text or line CTRL-U #Paste text ##Navigate File ALT-/ #End of file CTRL-A #Beginning of line CTRL-E #End of line CTRL-C #Show line number CTRL-_ #Go to line number ##Search File CTRL-W #Find ALT-W #Find next CTRL- #Search and replace
###Screen Shortcuts screen #Start a screen session. screen -r #Resume a screen session. screen -list #Show your current screen sessions. ###Screen Shortcuts (cont) CTRL-A #Activate commands for screen. CTRL-A c #Create a new instance of terminal. CTRL-A n #Go to the next instance of terminal. CTRL-A p #Go to the previous instance of terminal. CTRL-A " #Show current instances of terminals. CTRL-A A #Rename the current instance.
###File Permissions chmod 775 file #Change mode of file to 775 chmod -R 600 folder #Recursively chmod folder to 600 chown user:group file #Change file owner to user and group to group ###File Permission Numbers #First digit is owner permission, second is group and third is everyone. #Calculate permission digits by adding numbers below. #4 read (r) #2 write (w) #1 execute (x)
Si vous en avez d’autres que vous considérez utiles, n’hésitez pas à me les envoyer en commentaire.
2016
Raspberry Pi 2 ou 3 et Raspbian Jessie – VLC 2.4 et accélération matériel (hardware acceleration)
Aujourd’hui je vais à nouveau publier une mise à jour de l’article : Raspberry Pi 2 – VLC et accélération matériel (hardware acceleration)
En effet, ce tuto à été fait à l’époque sur une Raspbian Wheezy avec un Raspberry PI 2.
Depuis la sortie du Raspberry Pi 3 et de Raspbian Jessie, je me devais de faire une mise à jour de ce tuto :
Vous pouvez également suivre le tutoriel en vidéo :
Donc allez chercher la version de Raspbian suivante : 2016-09-23-raspbian-jessie.img
Installez la sur votre carte SD (il y a assez de tuto sur le net pour ça)
Démarrez votre Raspberry, et un écran de setup devrait apparaitre.
Paramétrer votre interfaces réseau, vos paramètres de locales, clavier, password… blabla …
Et connectez vous en SSH à votre Raspberry (Là le travail commence vraiment)
faites :
sudo apt-get update
Pour mettre à jour vos dépots, nous allons ensuite installer tous les packet nécessaire à la compilation de VLC ainsi que ses dépendances :
sudo apt-get install build-essential autoconf pkg-config zlib1g-dev libtool autopoint gettext liba52-0.7.4-dev libaa1-dev libasound2-dev libass-dev libavahi-client-dev libavc1394-dev libavcodec-dev libavformat-dev libbluray-dev libcaca-dev libcddb2-dev libcdio-dev libchromaprint-dev libdbus-1-dev libdc1394-22-dev libdca-dev libdirectfb-dev libdvbpsi-dev libdvdnav-dev libdvdread-dev libegl1-mesa-dev libfaad-dev libflac-dev libfluidsynth-dev libfreerdp-dev libfreetype6-dev libfribidi-dev libgl1-mesa-dev libgles1-mesa-dev libgles2-mesa-dev libgnutls28-dev libgtk2.0-dev libidn11-dev libiso9660-dev libjack-jackd2-dev libkate-dev liblircclient-dev liblivemedia-dev liblua5.2-dev libmad0-dev libmatroska-dev libmodplug-dev libmpcdec-dev libmpeg2-4-dev libmtp-dev libncursesw5-dev libnotify-dev libogg-dev libomxil-bellagio-dev libopus-dev libpng12-dev libpulse-dev libqt4-dev libraw1394-dev libresid-builder-dev librsvg2-dev libsamplerate0-dev libschroedinger-dev libsdl-image1.2-dev libsdl1.2-dev libshine-dev libshout3-dev libsidplay2-dev libsmbclient-dev libspeex-dev libspeexdsp-dev libssh2-1-dev libswscale-dev libtag1-dev libtheora-dev libtwolame-dev libudev-dev libupnp-dev libv4l-dev libva-dev libvcdinfo-dev libvdpau-dev libvncserver-dev libvorbis-dev libx11-dev libx264-dev libxcb-composite0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shm0-dev libxcb-xv0-dev libxcb1-dev libxext-dev libxinerama-dev libxml2-dev libxpm-dev libzvbi-dev lua5.2 oss4-dev
Nous allons ensuite télécharger les sources de VLC 2.4 via wget :
wget http://download.videolan.org/vlc/2.2.4/vlc-2.2.4.tar.xz
Puis les décompresser pour ensuite les compiler :
tar Jxvf vlc-2.2.4.tar.xz cd vlc-2.2.4/ ./bootstrap CFLAGS="-I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/mmal -I/opt/vc/include/interface/vchiq_arm -I/opt/vc/include/IL -I/opt/vc/include/GLES2 -mfloat-abi=hard -mcpu=cortex-a7 -mfpu=neon-vfpv4" CXXFLAGS="-I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/mmal -I/opt/vc/include/interface/vchiq_arm -I/opt/vc/include/IL -mfloat-abi=hard -I/opt/vc/include/GLES2 -mcpu=cortex-a7 -mfpu=neon-vfpv4" LDFLAGS="-L/opt/vc/lib" ./configure --prefix=/usr --enable-omxil --enable-omxil-vout --enable-rpi-omxil --disable-mmal-codec --disable-mmal-vout --enable-gles2 --enable-gles1 make -j3 sudo make install
Une fois installé, lancez vlc puis cliquez sur « Menu » puis le sous-menu « Son et vidéo »
Dans VLC, cliquez ensuite sur « Outils » puis « Préférences »
Sur le menu du haut, cliquez sur « Audio« , puis dans « Module de sortie« , sélectionnez « Sortie audio ALSA« .
Dans « Périphérique« , sélectionnez « bcm2835 ALSA, bcm2835 ALSA Default Audio Device » voir screenshot :
Sur le menu du haut, cliquez ensuite sur « Vidéo« , puis dans « Sortie » sélectionnez « Sortie vidéo « OpenMAX IL » » voir screenshot :
Retournez dans le menu « Audio« , puis en bas à gauche de la fenêtre, cliquez sur « Tous » (Permet d’afficher plus de paramètres)
Dans l’onglet « Audio« , sur le champ « Ré-échantillonnage audio« , sélectionnez « Désactiver » voir screenshot :
Vous pouvez maintenant profiter de votre player préféré !
Si vous avez des questions, n’hésitez pas !