Connecter un Raspberry directement à mon PC Windows

Après quelques semaines sans nouveaux articles sur le blog cause changement de boulot, plantages, changement de serveurs … reprenons un rythme plus habituel de publication par un tuto tout simple :

Comment connecter mon Raspberry, en IP fixe, directement à mon PC Windows par un simple câble réseau sans routeur,box…; comme ceci :

raspberry_connexion_directe

Matériel :

Un raspberry, son alimentation, une carte SD avec une distribution Linux dessus (c.f https://easydomoticz.com/domotique-comment-debuter/installation-de-domoticz-sur-raspberrylinux-debian/

Nous prendrons ici l’exemple de Raspbian.

Un câble réseau RJ45  NORMAL (droit) bien que les cartes réseau actuelles savent aussi utiliser les câbles croisés.

Tout d’abord nous devrons trouver une ip compatible avec notre PC puis modifier un fichier Linux pour donner l’adresse IP fixe.

Quelle IP donner à mon Raspberry ?

Etant donné que votre PC Windows n’est connecté à rien sur sa prise réseau RJ45, Windows à donné à cette interface réseau une adresse automatique commençant par 169.X.X.X  dite APIPA.

Ouvrons un terminal et jettons un œil à ipconfig à la ligne de la carte ethernet et non pas du Wifi.

ipconfig_windows

Ici mon PC Windows à l’adresse IP 169.254.16.146. Il faut que je donne à mon Raspberry une IP compatible, je choisis 169.254.16.147

Vous devez donner une IP en ne changeant QUE la dernière valeur (147) que vous devez adapter à votre configuration.

Configuration du fichier cmdline.txt :

Notez bien que la manip documentée pour une connexion avec Windows est valable pour n’importe quel système d’exploitation du moment que vous savez quelle ip à été donnée à votre RJ45.

Je ne décris ici que la mise en place avec un PC Windows.

Une fois votre image « gravée » sur votre carte SD, ouvrez un explorateur de fichiers, allez sur votre carte SD puis trouvez le fichier cmdline.txt, recopiez le au cas ou cela se passerait mal en cmdline.old puis ouvrez le cmdline d’origine

 

cmdline raspberry

Vous y trouvez quelque chose comme :

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

et AU BOUT DE CETTE LIGNE vous ajoutez ip=l’ip choisie plus haut sans retour à la ligne

dwc_otg.lpm_enable bla bla bla .... elevator=deadline rootwait ip=169.254.16.147

PAS DE TOUCHE ENTREE, DE RETOUR CHARIOT, DE TABULATION, c’est juste ESPACE ip=xxxx.xxxx.xxxx.xxxx

Sauvegardez vos modifs, éjectez proprement votre carte SD, insérez la dans le Raspberry, branchez le câble réseau et l’alim et patientez quelques secondes le temps du démarrage du Raspberry.

Un ping vers votre adresse vous confirmera que tout est correct, vous pouvez utiliser putty,mremote, un navigateur web pour aller vers votre nouvelle connexion.

Dans le cas ou cela ne fonctionne pas , retirez la carte SD, inserez la sur une autre machien et examinez la ligne en question.

Dans le pire des cas supprimez cmdline.txt et renommez cmdline.old en cmdline.txt puis refaites les manips.

Cette configuration prend le pas sur celle de /etc/network/interfaces.

Bien entendu la technique de /etc/networks/interfaces et toujours possible, celle ci est simple dans le cas ou aucune connexion vers une box n’est nécessaire.

Bien entendu on peut installer un serveur DHCP sur la machine Windows pour notre Raspberry, mais c’est une autre aventure…

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Les périphériques USB, les Raspberry et Domoticz

Question récurrente du débutant sur Raspberry et Domoticz, la déclaration et l’utilisation des ports USB sur le Raspberry et leur utilisation au sein de Domoticz.

Car, un peu comme dans Windows, les ports USB affectés à un USB peuvent changer ou tout du moins on aime bien savoir que le rfxcom est USB10 et le z-wave USB11, voyons donc cette méthode dite des « persistent USB »

L’article d’origine ici https://www.domoticz.com/wiki/PersistentUSBDevices

L’exemple ci dessous est celui de la connexion d’ un stick Z-Wave Aeon Labs Serie 2

z-stick z-wave

z-stick z-wave

Installation

Je ne vais pas réinventer la roue, mais passer en revue les trucs incontournables pour la mise en place.

J’ai déjà un module Rfxcom sur le USB, on peut le constater avec un

sudo udevadm info --query=all --name=ttyUSB0

qui affiche plein d’infos et entre autre une ligne ID_VENDOR=RFXCOM dont on se servira par la suite, ou toute autre ligne qui ne se répète qu’une fois sur tous vos USB pourra servir (ID_SERIAL_SHORT est pas mal aussi).

Estimant que le Z-stick devrait être en USB1,  un

sudo udevadm info --query=all --name=ttyUSB1

me donne

P: /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/ttyUSB1/tty/ttyUSB1
N: ttyUSB1
S: serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
S: serial/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-port0
E: DEVLINKS=/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 /dev/serial/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-port0
E: DEVNAME=/dev/ttyUSB1
E: DEVPATH=/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/ttyUSB1/tty/ttyUSB1
E: ID_BUS=usb
E: ID_MODEL=CP2102_USB_to_UART_Bridge_Controller
E: ID_MODEL_ENC=CP2102x20USBx20tox20UARTx20Bridgex20Controller
E: ID_MODEL_FROM_DATABASE=CP210x UART Bridge / myAVR mySmartUSB light
E: ID_MODEL_ID=ea60
E: ID_PATH=platform-bcm2708_usb-usb-0:1.3:1.0
E: ID_PATH_TAG=platform-bcm2708_usb-usb-0_1_3_1_0
E: ID_REVISION=0100
E: ID_SERIAL=Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001
E: ID_SERIAL_SHORT=0001
E: ID_TYPE=generic
E: ID_USB_DRIVER=cp210x
E: ID_USB_INTERFACES=:ff0000:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=Silicon_Labs
E: ID_VENDOR_ENC=Siliconx20Labs
E: ID_VENDOR_FROM_DATABASE=Cygnal Integrated Products, Inc.
E: ID_VENDOR_ID=10c4
E: MAJOR=188
E: MINOR=1
E: SUBSYSTEM=tty
E: UDEV_LOG=3
E: USEC_INITIALIZED=139369208365

En effet la ligne ID_Vendor_Enc affiche Silicons Labs, c’est donc bien le Z-Stick AEON qui est sur USB1.

Fixons définitivement cette affectation dans le Raspberry  sur un port USB de notre choix: USB11 par exemple.

ATTENTION :

Il est déconseillé de garder USB01,USB02 dans Domoticz à cause des zéros préliminaires et il faut préférer des notations à 2 chiffres sans 0 préliminaires 10,11…(c.f. le wiki de Domoticz (http://www.domoticz.com/wiki/PersistentUSBDevices)

Je nommerai USB11 mon stick Z-Wave.

On fait un

sudo lsusb -v | more

Notez ou copiez les lignes, (avancez par appui sur la touche espace) et trouvez

  • idVendor
  • idProduct
  • iSerial (éventuellement)
idVendor 0x10c4 Cygnal Integrated Products, Inc.
idProduct 0xea60 CP210x UART Bridge / myAVR mySmartUSB light

Ici j’ai  idVendor=10c4 et IdProduct=ea60

Pour cela installons des USB persistants et afin d’éviter que les ports USB changent à chaque fois (comme dans Windows) , on fixe dans un fichier les liens entre le nom du périphérique et le port USB que l’on veut toujours utiliser.

On configure  donc  le fichier /etc/udev/rules.d/99-usb-serial.rules

sudo nano /etc/udev/rules.d/99-usb-serial.rules
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="ttyUSB11" 
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="ef1c", SYMLINK+="ttyUSB15"

On reconnait les ID_VENDOR notés plus haut.

Un reboot.

Paramétrage Domoticz

Repassez dans la config Domoticz à « Configuration/Matériel »

Ajoutez un matériel Open-Zwave-USB et affectez le selon votre config du fichier 99-usb-serial.rules

Config_usb_Domoticz

Config_usb_Domoticz

Idem pour le RfxCom à lier au USB10

Et voila, maintenant vous devez avoir un périphérique USB définitivement lié à votre Domoticz, elle est pas belle la vie !

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Bluetooth, Squeezelite, Max2play, Picoreplayer : la config des platines Squeezebox pour du Bluetooth

Dans ma mise en place de squeezeplayers à base de Raspberry

multiroom

J’avais déjà installé un Logitech Media Serverlogo_lms sur une distrib Max2play  (LMS dont j’ai marré la mise en place ici)

lms_config

Le but étant aussi de pouvoir faire jouer un MP3 en fonction des événements gérés par Domoticz (présence/absence/messages divers) sur ce player ou un autre de la maison.

J’ai ajouté à chacun de mes players (platines Squeezebox) une paire d’enceinte Bluetooth et une clé USB Orico BT 2.0.

J’ai raconté en détail l’installation de Bluetooth sur un Rapsberry. Ce petit article servira à détailler le support de Bluetooth dans  trois types de platines

Rappel

Nous avions défini dans l’article précédent que les enceintes Bluetooth étaient connues sous le nom de « enceintes »

Voyons ici comment paramétrer nos platines pour utiliser  cette sortie ‘ »enceintes »

Paramétrage de l’interface Max2play

Dans la partie Lecteur Audio , les options avancées

max2play1

max2play2

permettent d’ajouter l’option -o nom_de_notre_periphérique, -o enceintes dans mon cas.

On sauvegarde

Le squeezelite se relance

et donc maintenant, grâce à l’option -o, ce player est capable de jouer sur le périphérique « enceintes »

Allons dans le logitech media server sur mon autre Raspberry , puis un petit play lancé sur le player nommé max2play

max2play3

nous fait bien sortir le son sur nos enceintes bluetooth.

Paramétrage via l’interface Picoreplayer

Dans la partie « Squeezelite Settings » , on peut changer le nom de cette platine (le nom affiché dans LMS), mais surtout mettre un -o enceintes dans le champ « Output Settings »

picoreplayer

Paramétrage d’une Squeezelite

L’excellent article http://www.gerrelt.nl/RaspberryPi/wordpress/tutorial-installing-squeezelite-player-on-raspbian/ nous

donne les instructions pour l’installation d’une Squeezelite sur une Raspbian.

Comme nos sorties se nomment « enceintes » un

sudo /usr/bin/squeezelite-armv6hf -o enceintes

permettent de rendre visible le player et d’utiliser la sortie Bluetooth.

Le fichier de configuration de squeezelite est éditable par

sudo nano /usr/local/bin/squeezelite_settings.sh

 

On y trouve le nom de la platine, et le mode

# the name for the squeezelite player (-n option):
#SL_NAME="Framboos"
#        Note: "Framboos" is Dutch for Raspberry... :-)

# Set the soundcard
SL_SOUNDCARD="sysdefault:CARD=ALSA"

 

Décommentez la ligne SL_NAME et placez y le nom voulu de votre platine et dans le SL_SOUNCARD affectez « enceintes »

# =========================================================
#              CHANGE THESE VALUES IF NEEDED

# the name for the squeezelite player (-n option):

# the name for the squeezelite player (-n option):
SL_NAME="Cuisine"
#        Note: "Framboos" is Dutch for Raspberry... :-)

# Set the soundcard
SL_SOUNDCARD="enceintes"

Suivez les instructions du site ci-dessus pour placer tout ceci au démarrage du Pi et pour pouvoir lancer/arrêter le squeezeplayer par des start/stop.

sudo ./squeezelite restart

affiche

Restarting Squeezebox client squeezelite-armv6hf

Starting: /usr/bin/squeezelite-armv6hf  -o enceintes -n Cuisine -m b8:27:eb:6a:82:7c
with pidfile: /var/run/squeezelite-armv6hf.pid

et c’est gagné.

Conclusion

Voila Résultat de recherche d'images pour "c'est gagne"Résultat de recherche d'images pour "c'est gagne"

 

 Au bout de ces deux articles consécutifs nous avons vu comment ajouter du Bluetooth à nos Raspberry, configurer des platines pour utiliser ces connexions Bluetooth.
La prochaine fois nous verrons (enfin !) comment utiliser Domoticz en liaison avec nos platines

 

 

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Mise en place de Bluetooth pour Raspberry

Dans ma mise en place de squeezeplayers à base de Raspberry

multiroom

j’ai souhaité connecter des enceintes Bluetooth (et non pas câblées) à un de mes Raspberry player, voici le détail de mes aventures dans le domaine.

J’avais déjà installé un Logitech Media Serverlogo_lms sur une distrib Max2play  (LMS dont j’ai marré la mise en place ici)

lms_config

Le but étant aussi de pouvoir faire jouer un MP3 en fonction des événements gérés par Domoticz (présence/absence/messages divers) sur ce player ou un autre de la maison.

Après avoir pas mal cherché et galéré pour ajouter du Bluetooth sur mon raspberry, j’ai trouvé cet article sur le wiki officiel de Domoticz 😯 (pff pourtant j’ai cherché partout sur le web) qui m’a servi de base.

Cet article ne se veut pas exhaustif , il s’agit davantage d’un mémo pour mes prochaines installations que un tour d’horizon complet du Bluetooth sur un Raspberry.

Mais en espérant que d’autres y trouveront leur bonheur, voici donc une traduction libre et adaptée à mes besoins de l’article initial.

<culture>

Savez vous que le nom Bluetooth vient du roi Harald du Danemark grand consommateur de myrtilles il avait les dents bleues. C’est sous son règne que les régions du Danemark ont été unifiées au même titre que le protocole Bluetooth unifie les communication entre périphériques. Et oui !!

</culture>

Cette manip est faite sur une distrib max2play destinée aux squeezebox sur  laquelle on se connecte directement en root et donc il n’y a pas besoin de sudo.

Configuration Bluetooth

Installer les paquets bluetooth, droits et configuration.

Commencez par faire une mise à jour par des

sudo apt-get update
sudo apt-get upgrade

Avant d’insérer votre clé USB Bluetooth faites un

lsusb

Observez les lignes affichées, insérez votre clé Bluetooth puis refaites un

lsusb

Cela vous donnera les identifiants de la clé du type

Bus 001 Device 006: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
  • Installons les paquets
  • sudo apt-get install bluetooth bluez bluez-utils bluez-alsa python-gobject libbluetooth-dev

On installe aussi les pilotes Bluetooth d’imprimantes, si le cœur vous en dit vous pourrez imprimer depuis Domoticz sur votre imprimante BT !

  • Adaptons quelques droits

N.B. Il est possible que le sudo devant usermod ne soit pas obligatoire.

sudo usermod -a -G lp root
sudo usermod -a -G lp pi
  • Editez le fichier de configuration bluetooth audio
sudo nano /etc/bluetooth/audio.conf

Dans la section [General] modifier l’original :

# If we want to disable support for specific services
# Defaults to supporting all implemented services
#Disable=Control,Source

par celui ci :

# If we want to disable support for specific services
# Defaults to supporting all implemented services
#Disable=Control,Source
Enable=Source,Sink,Socket
Disable=Media

rebootez le pi.

Appairage et liaisons des équipements Bluetooth

  • Montons la clé USB
sudo hciconfig hci0 up
  • Passez vos éléments bluetooth en mode appairage en appuyant le le bouton dédié.

puis

sudo hcitool scan

renvoie les mac-adresses de mes 2 enceintes DS-1178 (00:52:5B:13:A0:00 et 00:02:5B:13:01:16)

root@max2play:~# hcitool scan
Scanning ...
 00:52:5B:13:A0:00 DS-1178
 00:02:5B:13:01:16 DS-1178
  • Effectuons l’appairage par un
sudo bluetooth-agent --adapter hci0 0000 00:02:5B:13:01:16

Explications : on lance le programme bluetooth-agent sur l’adaptateur bluetooth hci0 (celui pour lequel nous avons fait un up plus haut) puis on passe le code 0000 aux enceintes en tant que pincode et enfin on donne l’adresse d’une des deux enceintes

Pincode request for device /org/bluez/2372/hci0/dev_00_02_5B_13_01_16
Agent has been released
  • Ajout dans le mode trusted
    sudo bluez-test-device trusted 00:02:5B:13:01:16 yes

me renvoie une erreur

Traceback (most recent call last):
      File "/usr/bin/bluez-simple-agent", line 5, in <module>
        from gi.repository import GObject
    ImportError: No module named gi.repository
  • il manque une libraire python
sudo apt-get install python-gobject

on refait

sudo bluez-test-device trusted 00:02:5B:13:01:16 yes

on vérifie que ça fonctionne par un

sudo bluez-test-device trusted 00:02:5B:13:01:16

qui renvoie le chiffre 1 si tout est correct.

Puis enfin un

sudo bluez-test-audio connect 00:02:5B:13:01:16

les enceintes bippent, elles sont liées.

Continuons

Je décide de nommer les 2 hauts parleurs « enceintes » dans ce qui suit.

Dans le fichier etc/asound.conf  (créez le si il n’existe pas) ajouter à la fin un bloc et nommons le matériel bluetooth

 pcm.enceintes {
          type plug
          slave {
                pcm {
                    type bluetooth
                    device 00:02:5B:13:01:16
                    profile "auto"
                }
          }
          hint {
               show on
               description "Mes enceintes bluetooth"
          }
       }

       ctl.enceintes {
          type bluetooth
       }

un petit aplay -L affiche

null
 Discard all samples (playback) or generate zero samples (capture)
pulse
 PulseAudio Sound Server
plugequal
 Equalizer for plughw:0,0
enceintes
 Mes enceintes bluetooth
default:CARD=ALSA
 bcm2835 ALSA, bcm2835 ALSA

Bien, elles sont présentes !

un aplay  -D enceintes test.wav et on a du son !!

Si cela ne marche pas , rebootez

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Une 2eme plateforme SMS à base de téléphone Android puis évolution vers le pilotage SMS de Domoticz

C’est le deuxième article sur le sujet des SMS et de Domoticz.

Il est le copié/collé (pas tout à fait quand même) d’un article précédent https://easydomoticz.com/une-plateforme-sms-a-laide-dun-vieux-telephone-android-pour-domoticz/ , la seule différence est le changement de l’appli du téléphone Android.

Ce changement permet de pouvoir réutiliser un script Lua réalisé par Vil1driver sur le forum , référence ici https://easydomoticz.com/forum/viewtopic.php?f=17&t=596 permettant le pilotage de Domoticz VIA l’envoi de SMS (oui, oui c’est possible)

Vil1driver c’est basé sur une appli Android (SMS Gateway Ultimate) et moi sur une autre SMS Gateway (tout court)).

Je vais donc détailler ici l’utilisation d’une autre gateway SMS pour Android puis nous verrons comment utiliser le script Lua au sein de Domoticz afin de donner des ordres via SMS dans un autre article.

Repartons donc à la découverte de l’envoi de SMS depuis Domoticz.

Introduction

Une question récurrente des utilisateurs Domoticz est l’envoi de SMS depuis notre système favori, voyons ici les possibilités qui nous sont offertes, leurs avantages et leurs inconvénients.

  • Free permet à ses utilisateurs l’envoi gratuit de SMS vers leur propre numéro, mais on est donc limité à un seul numéro (c.f cet article). L’inconvénient est d’avoir un forfait téléphonique Free et on doit utiliser l’api http:// de Free dépendante d’une connexion Internet.
  • On peut aussi utiliser la plateforme SMS Clickatell, surtout depuis son inclusion native dans Domoticz, ou d’autres (OVH) mais radins comme nous sommes, le coût nous freine rapidement.

Partant de ce constat j’ai cherché une autre solution.

Le postulat de base est :

  • le moins cher possible avec des coûts prévisibles et planifiables (un forfait fixe),
  • pas de trucs dans le cloud (je ne veux pas dépendre de ma connexion internet pour cela).

Sachant que j’ai un vieux téléphone Android dans un placard, qu’un forfait à 2 euros chez Free ne me parait pas prohibitif, l’idée vient rapidement d’utiliser le téléphone pour envoyer nos SMS. Il nous faut donc un logiciel sur le téléphone capable d’envoyer des SMS et d’être piloté depuis l’extérieur (Raspberry/Domoticz).

Quelques recherches sur le Google Play nous amènent vers le logiciel SMS gatewaySMS Gateway Ultimate qui possède une interface qui écoute sur http pour envoyer les SMS.

D’autres fonctions sympathiques existent dans cette appli (SMS vers Http que nous utiliserons plus tard, mail vers SMS, SMS vers mail…)

L’appli SMS GATEWAY Ultimate SMSGUltimate

Après installation depuis le Google Play , le lancement de l’appli donne cela:

Lire la suite

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/