Affichage des articles dont le libellé est Dev. Afficher tous les articles
Affichage des articles dont le libellé est Dev. Afficher tous les articles

jeudi 11 décembre 2025

Configurer la sortie son de mdp sous mint

Sous mint, les cartes son ne sont pas toujours identifier de manière stable, une carte son USB peut par exemple passer de hw:0,0 à hw:2,0 ou autre et revenir à hw:0,0 à chaque reboot.

Ceci pose un problème de configuration des sorties audio de mdp.

Par exemple la commande aplay -l peut sortir :

aplay -l
**** Liste des périphériques matériels PLAYBACK ****
carte 0 : NVidia [HDA NVidia], périphérique 3 : HDMI 0 [27GL850]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0
carte 0 : NVidia [HDA NVidia], périphérique 7 : HDMI 1 [HDMI 1]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0
carte 0 : NVidia [HDA NVidia], périphérique 8 : HDMI 2 [HDMI 2]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0
carte 0 : NVidia [HDA NVidia], périphérique 9 : HDMI 3 [HDMI 3]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0
carte 1 : Audio [USB2.0 High-Speed True HD Audio], périphérique 0 : USB Audio [USB Audio]
 Sous-périphériques : 0/1
 Sous-périphérique #0 : subdevice #0
carte 2 : PCH [HDA Intel PCH], périphérique 0 : ALC887-VD Analog [ALC887-VD Analog]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0
carte 2 : PCH [HDA Intel PCH], périphérique 3 : ALC887-VD Digital [ALC887-VD Digital]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0
carte 2 : PCH [HDA Intel PCH], périphérique 7 : HDMI 0 [HDMI 0]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0
carte 2 : PCH [HDA Intel PCH], périphérique 8 : HDMI 1 [HDMI 1]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0
carte 2 : PCH [HDA Intel PCH], périphérique 9 : HDMI 2 [HDMI 2]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0

Puis après reboot :

aplay -l
**** Liste des périphériques matériels PLAYBACK ****
carte 0 : Audio [USB2.0 High-Speed True HD Audio], périphérique 0 : USB Audio [USB Audio]
 Sous-périphériques : 0/1
 Sous-périphérique #0 : subdevice #0
carte 1 : NVidia [HDA NVidia], périphérique 3 : HDMI 0 [27GL850]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0
carte 1 : NVidia [HDA NVidia], périphérique 7 : HDMI 1 [HDMI 1]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0
carte 1 : NVidia [HDA NVidia], périphérique 8 : HDMI 2 [HDMI 2]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0
carte 1 : NVidia [HDA NVidia], périphérique 9 : HDMI 3 [HDMI 3]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0  
carte 2 : PCH [HDA Intel PCH], périphérique 0 : ALC887-VD Analog [ALC887-VD Analog]

 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0
carte 2 : PCH [HDA Intel PCH], périphérique 3 : ALC887-VD Digital [ALC887-VD Digital]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0
carte 2 : PCH [HDA Intel PCH], périphérique 7 : HDMI 0 [HDMI 0]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0
carte 2 : PCH [HDA Intel PCH], périphérique 8 : HDMI 1 [HDMI 1]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0
carte 2 : PCH [HDA Intel PCH], périphérique 9 : HDMI 2 [HDMI 2]
 Sous-périphériques : 1/1
 Sous-périphérique #0 : subdevice #0

Dans mpd.conf les sorties audio sont généralement paramètrées comme suit :

  audio_output {
    type            "alsa"
    name            "USB card"
    device          "hw:0,0"
    mixer_type      "software"  # optional
    mixer_device    "default"   # optional
    mixer_control   "PCM"       # optional
    mixer_index     "0"         # optional
}

hw:0,0 défini la carte 0 et le périphérique 0 MAIS si la carte 0 change d'un boot à l'autre, mpd ne fonctionne plus.
Heureusement on peut utiliser une autre méthode d'identifaction !

Exécutez la commande :   aplay -L | grep ^hw:

On obtient par exemple : 

hw:CARD=NVidia,DEV=3
hw:CARD=NVidia,DEV=7
hw:CARD=NVidia,DEV=8
hw:CARD=NVidia,DEV=9
hw:CARD=Audio,DEV=0
hw:CARD=PCH,DEV=0
hw:CARD=PCH,DEV=3
hw:CARD=PCH,DEV=7
hw:CARD=PCH,DEV=8
hw:CARD=PCH,DEV=9

Il suffit de remplacé hw:0,0 par la ligne contenant le nom du device voulu :

    audio_output {
    type            "alsa"
    name            "USB card"
    device          "
hw:CARD=Audio,DEV=0"
    mixer_type      "software"  # optional
    mixer_device    "default"   # optional
    mixer_control   "PCM"       # optional
    mixer_index     "0"         # optional
}

pour utiliser carte 0 : Audio [USB2.0 High-Speed True HD Audio], périphérique 0 : USB Audio [USB Audio]

  

vendredi 20 septembre 2019

Régulation de chauffage et même plus...

Après avoir envisagé la réalisation de A à Z d'un système de régulation de chauffage électrique à base de Raspberry et d'une interface fil pilote, je me suis finalement et heureusement orienté vers une solution existante (pourquoi réinventer l'eau chaude?) ou presque.
Le labo(rdel) :

Le matériel:

Le cœur : Raspberry Pi 3 B+ (quad cores) +  dietpi + pihole (pour d'autres raisons)

Module radio 433 MHz RFlink (Arduino 2560 mega + récepteur et émetteur 433 MHz) c'est pas cher, c'est très facile à mettre en œuvre, ça marche.
Sondes de température oregon et autre (Auriol, sans marque, RFLink est compatible avec beaucoup de module)
Prises secteur commandées en 433 MHz

Le logiciel:

DietPi (raspbian est aussi bien)
Domoticz.... pourquoi ? ben tout à fonctionné du premier coup, c'est un projet pérenne

C'est parti!

Installer depuis l'utilisateur pi ou dietpi par sudo (pas en root)

🚩Si jamais domoticz plante au redémarrage ou de temps en temps c'est justement peut-être un problème d'accès aux fichiers ou aux dossiers, donc faire :
cd domoticz
sudo service domoticz stop
sudo chown -R pi.pi *
 
ou bien : sudo chown -R dietpi.dietpi * suivant l'utilisateur qui a installer domoticz

🚩Pensez à sauvegarder la configuration de domoticz, c'est un vrai plaisir de la restaurer !
 
🚩Vous pouvez aussi sanvegarder la config de pi-hole... mais je ne suis jamais arrivé à la restaurer 😕
 

Fabrication du module "fil pilote"

L'interface montée:
Le parti pris:
La commande sera partielle: seules les commandes "Hors gel" et "Confort" seront disponibles, les raisons sont : Simplicité du montage et des commandes. Il faudra donc régler les radiateurs à un valeur de consigne légèrement supérieure à celle utilisée "normalement"
Ce qui en cas de panne du système ne pourra avoir comme conséquences que soit une température légèrement supérieure à la normale, soit une coupure de chauffage avec une protection "Hors gel" malgrés tout.
Le schéma, simple donc:
https://drive.google.com/open?id=1ZxQ2F3j3TgUWipmgAYc8Ib9v33t9pW4x

Les PCB ont été réalisés en Chine, 5 pièces pour moins de 10€ port compris (imbattable)
Schéma et tracés au format Kicad sont disponibles ici :
https://drive.google.com/file/d/1GpU_VEaQiBhTw2qPmWH0dix0gT8Tgb6J/view?usp=sharing

Il faudra après connecter l'interface au RFLink à l'aide d'un HE10 et cable en nappe puis bornier ou autres sur le RFLink. Utiliser une carte d'extension est une bonne idée:

Test du hardware:

Connecter le RFLink au PC, ouvrir un terminal sur le port série (57600 baud N 8 1) puis envoyer après boot les commandes suivantes:

mettre tout à OFF : 
10;GPIOset;30;0;OFF;
10;GPIOset;31;0;OFF;
10;GPIOset;32;0;OFF;
10;GPIOset;33;0;OFF;
10;GPIOset;34;0;OFF;
10;GPIOset;35;0;OFF;

mettre gpio ON: 
10;SETGPIO=ON;

Vérifier l'état des sorties:
10;GPIOset;30;0;ON;
10;GPIOset;30;0;OFF;

10;GPIOset;31;0;ON;
10;GPIOset;31;0;OFF;

10;GPIOset;32;0;ON;
10;GPIOset;32;0;OFF;

etc..

Création dans domoticz des dispositifs miniGPIO du RFLink :

(Configuration) > (Matériel) Dans la ligne RFLink > (Create RFLink Devices)
Saisir "10;setgpio=on" > (Ok)
(Configuration) > (Paramètres) > Paragraphe "Matériel/dispositifs:" > (Autoriser pendant 5 minutes)
Faites alors changer l'état des entrées logiques 26 27 28 et 29, les dispositifs seront créés automatiquement (attention: les autres aussi! faire le ménage après dans les dispositifs)

Ajouter les sorties numériques: (Configuration) > (Matériel) Dans la ligne RFLink > (Create RFLink Devices)
Saisir "20;01;GPIOset;ID=30;SWITCH=0;CMD=ON;" > (Ok)

(Create RFLink Devices)
Saisir "20;01;GPIOset;ID=31;SWITCH=0;CMD=ON;" > (Ok)
(Create RFLink Devices)
Saisir "20;01;GPIOset;ID=32;SWITCH=0;CMD=ON;" > (Ok)
(Create RFLink Devices)
Saisir "20;01;GPIOset;ID=33;SWITCH=0;CMD=ON;" > (Ok)
(Create RFLink Devices)
Saisir "20;01;GPIOset;ID=34;SWITCH=0;CMD=ON;" > (Ok)
(Create RFLink Devices)
Saisir "20;01;GPIOset;ID=35;SWITCH=0;CMD=ON;" > (Ok)

TeleInfo ERDF

Le port serie GPIO est utilisé dans ce cas.
....

Préparation du raspberry (V3 mini):

Dans le fichier /boot/cmdline.txt :
supprimer : console=serial0,115200
ajouter : enable_uart=1

Inutile de modifier le fichier /etc/inittab.

Dans mon cas (RPI 3 + DietPi) le port se nomme : /dev/ttyAMA0 c'est ce port que je choisi dans Domoticz

Domoticz

Ajouter le matériel "Teleinfo EDF"
et selectionner le port série