Files
mkdocs/docs/Divers/Sonos/soco-cli.md
2021-02-04 09:55:26 +01:00

729 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# soco-cli
https://github.com/avantrec/soco-cli
### Installation
On crée un environnement virtuel:
```bash
~/Documents/venv master* ⇡
python3 -m venv soco-cli
```
On l'active:
```bash
~/Documents/venv master* ⇡
source soco-cli/bin/activate
```
On met à jour pip et setuptools:
```bash
~/Documents/venv/soco-cli/bin master* ⇡
soco-cli pip3 install -U pip setuptools
```
On installe soco-cli:
```bash
~/Documents/venv/soco-cli/bin master* ⇡ 10s
soco-cli pip3 install -U soco-cli
```
soco et soco-cli sont disponibles, ainsi que leurs alias sonos et sonos-discover.
```bash
~/Documents/venv/soco-cli master* ⇡
soco-cli ls bin
Activate.ps1 easy_install python sonos-discover
activate easy_install-3.8 python3 tabulate
activate.csh pip soco
activate.fish pip3 soco-discover
chardetect pip3.8 sonos
```
On peut linker sonos dans /usr/local/bin pour avoir la commande directement
```bash
~/Documents/venv master* ⇡
ln -s /Users/bruno/Documents/venv/soco-cli/bin/sonos /usr/local/bin
```
et créer un alias pour sonos-discover dans .zshrc ou .bashrc
```bash
alias sonos-discover="/Users/bruno/Documents/venv/soco-cli/bin/sonos-discover -t 256 -n 1.0 -m 24"
```
### Commande **sonos-discover**
Permet de découvrir les appareils Sonos sur le réseau:
```bash
sonos-discover -t 256 -n 1.0 -m 24
Networks searched: [IPv4Network('192.168.1.0/24')]
Sonos Household: Sonos_MmiahLD8Lavgm9ypGrX1Zx99sy
Room/Zone Name IP Address Device Model Visibility SW Version
---------------- ------------ -------------- ------------ ------------
Salon 192.168.1.17 One Visible 12.1
1 Sonos Household(s) found
1 Sonos device(s) found
Saved speaker data at: /Users/bruno/.soco-cli/speakers_v2.pickle
```
### Commande **sonos** (ou **soco**)
```bash
$ sonos <enceinte> <commande>
```
#### Enceintes et Système Sonos Info:
Afficher les alarmes:
```
sonos Salon alarms
Speaker Start Time Duration Title Volume Enabled Play Mode Recurrence Include Grouped
--------- ------------ ---------- ------- -------- --------- ----------- ------------ -----------------
Salon 06:00 01:00 Unknown 25 Yes SHUFFLE WEEKDAYS No
```
Infos sur l'enceinte (IP, version...)
```bash
sonos Salon info
balance = (100, 100)
bass = 0
cross_fade = False
display_version = 12.1
grouped_or_paired = False
hardware_version = 1.26.1.7-2.2
household_id = Sonos_MmiahLD8Lavgm9ypGrX1Zx99sy
ip_address = 192.168.1.17
is_coordinator = True
is_playing_line_in = False
is_playing_radio = True
is_playing_tv = False
is_soundbar = False
is_visible = True
loudness = True
mac_address = 48-A6-B8-F0-26-62
model_name = Sonos One
model_number = S18
mute = True
night_mode = None
player_icon = /img/icon-S18.png
player_name = Salon
serial_number = 48-A6-B8-F0-26-62:G
software_version = 60.3-81140
state = PLAYING
status_light = True
title = franceinter-midfi.mp3?ID=76zqey582k
treble = 0
uid = RINCON_48A6B8F0266201400
volume = 21
zone_name = Salon
```
Afficher tous les groupes du système Sonos:
```bash
sonos Salon groups
[Salon] : Salon (192.168.1.17)
```
Liste des partages:
```bash
sonos Salon shares
1: //DS916/music
# shares, libraries
```
Tableau d'info sur toutes les enceintes du système:
```bash
sonos Salon sysinfo
Report generated on: 2020-11-01 12:08 UTC (Sunday)
Zone Name IP Address Visible CoOrd CoOrd IP Vol. Mute State Model Name Model No. HW Version SW Version
----------- ------------ --------- ------- ---------- ------ ------ ------- ------------ ----------- ------------ -----------------
Salon 192.168.1.17 Yes Yes 21 True PLAYING One S18 1.26.1.7-2.2 60.3-81140 (12.1)
Sonos model numbers present: S18.
Device counts: 1 total Sonos device(s), 1 unique model(s).
```
#### Radios:
On peut jouer des radios en les ajoutant aux Favoris Sonos
```bash
sonos Salon play_fav "france inter"
# play_fav, play_favourite, pf
```
ou en les ajoutant à la playlist "My Radio Stations" de Tune-In
```bash
sonos Salon play_favourite_radio_station "france inter"
# play_favourite_radio_station, pfrs
```
Liste des radios favorites:
```bash
sonos Salon favourite_radio_stations
1: France Inter 95.9 (Émissions-débats France)
2: K6 FM 101.6 (Musique Locale)
3: RTL 104.2 (Monde)
# favourite_radio_stations, frs, lfrs
```
#### Favoris et playlists:
Afficher les Favoris Sonos:
```bash
sonos Salon list_favs
1: France Inter 95.9 (Émissions-débats France)
2: K6 FM 101.6 (Musique Locale)
3: Les Introuvables
4: RTL 104.2 (Monde)
5: Rire et Chansons 91.8 (Comédie)
6: Shaka Ponk
7: franceinfo 101.2 (Émissions-débats France)
```
Afficher toutes les pistes de toutes les playlist Sonos:
```bash
sonos Salon list_all_playlist_tracks
Sonos Playlist: plex 1
======================
1: Artist: Renaud | Album: Boucan d'enfer | Title: Docteur Renaud Mister Renaud
2: Artist: Renaud | Album: Boucan d'enfer | Title: Petit pede
```
Afficher les playlist Sonos:
```bash
sonos Salon list_playlists
1: plex 1
# list_playlists, playlists, lp
```
#### Musiques:
Liste des albums:
```bash
sonos Salon list_albums
Sonos Music Library Albums
===========================
1: Album: ¡Dos! | Artist: Green Day
2: Album: "Portrait d'artiste" | Artist: Lynda Lemay
3: Album: (No Reason To Cry) | Artist: Eric Clapton
4: Album: 10 | Artist: Stranglers
5: Album: 100th Window | Artist: Massive Attack
...
# list_albums, albums
```
Liste des artistes:
```bash
sonos Salon list_artists
Sonos Music Library Artists
============================
1: AaRON
2: Aaron Copland
3: Adam - C de Roquemaure
4: Adele
5: Afro-Cuban Project
# list_artists, artists
```
Rechercher un artiste:
```bash
sonos Salon search_artists pink
Sonos Music Library Albums including Artist: Pink Floyd
=======================================================
1: Album: A Momentary Lapse Of Reason | Artist: Pink Floyd
2: Album: A Saucerful of Secrets | Artist: Pink Floyd
3: Album: Animals | Artist: Pink Floyd
4: Album: Atom heart mother | Artist: Pink Floyd
5: Album: Echoes - The Best Of Pink Floyd | Artist: Pink Floyd
6: Album: Eclipse - Live in London | Artist: Pink Floyd
7: Album: Meddle | Artist: Pink Floyd
8: Album: Music From The Film More | Artist: Pink Floyd
9: Album: Obscured By Clouds | Artist: Pink Floyd
10: Album: The Best Of Pink Floyd - A Foot In The Door | Artist: Pink Floyd
11: Album: The Best Of Pink Floyd: A Foot In The Door (2011 Remastered Version) | Artist: Pink Floyd
12: Album: The Dark Side of the Moon | Artist: Pink Floyd
13: Album: The Division Bell | Artist: Pink Floyd
14: Album: The Final Cut | Artist: Pink Floyd
15: Album: The Later Years: 1987-2019 | Artist: Pink Floyd
16: Album: The Piper at the Gates of Dawn | Artist: Pink Floyd
17: Album: The Wall CD1 | Artist: Pink Floyd
18: Album: The Wall CD2 | Artist: Pink Floyd
19: Album: Ummagumma - Live Album | Artist: Pink Floyd
20: Album: Ummagumma - Studio Album | Artist: Pink Floyd
21: Album: Wish You Were Here | Artist: Pink Floyd
Sonos Music Library Albums including Artist: Pink Martini
=========================================================
1: Album: Sympathique | Artist: Pink Martini
Note: multiple artists found ... search not saved
# search_artists, sart
```
Rechercher un album:
```bash
sonos Salon search_albums "The Wall"
Sonos Music Library Album Search: The Wall
==========================================
1: Album: The Wall CD1 | Artist: Pink Floyd
2: Album: The Wall CD2 | Artist: Pink Floyd
# search_albums, salb
```
Rechercher dans la bibliothèque:
```bash
sonos Salon search_library "The Wall"
Sonos Music Library Album Search: The Wall
==========================================
1: Album: The Wall CD1 | Artist: Pink Floyd
2: Album: The Wall CD2 | Artist: Pink Floyd
Sonos Music Library Track Search: The Wall
==========================================
1: Artist: Music | Album: The Music | Title: The Walls Get Smaller
2: Artist: Dave Weckl | Album: Heads Up | Title: Against the Wall
3: Artist: Roger Waters | Album: | Title: Another Brick In The Wall
4: Artist: Pink Floyd | Album: Echoes - The Best Of Pink Floyd | Title: Another Brick In The Wall (Part 2)
5: Artist: Pink Floyd | Album: The Wall CD1 | Title: Another Brick In The Wall Pt.1
6: Artist: Pink Floyd | Album: The Best Of Pink Floyd - A Foot In The Door | Title: Another Brick In The Wall Pt.2
7: Artist: Pink Floyd | Album: The Wall CD1 | Title: Another Brick In The Wall Pt.2
8: Artist: Pink Floyd | Album: The Wall CD1 | Title: Another Brick In The Wall Pt.3
9: Artist: Green Day | Album: Revolution Radio | Title: Bouncing Off The Wall
10: Artist: Radiohead | Album: OK Computer | Title: Climbing Up the Walls
11: Artist: Collectif | Album: Pulp Fiction | Title: Flowers On The Wall / The Statler Brothers
12: Artist: Kaiser Chiefs | Album: The Future is Medieval | Title: Fly On The Wall
13: Artist: Pink Floyd | Album: The Wall CD2 | Title: Outside The Wall
# search_library, sl
```
Recherche une piste:
```bash
sonos Salon search_tracks "Keep the car running"
Sonos Music Library Track Search: Keep the car running
======================================================
1: Artist: Arcade Fire | Album: Neon Bible | Title: Keep the Car Running
# search_tracks, st
```
Afficher les pistes d'un album:
```bash
sonos Salon tracks_in_album "Neon bible"
Sonos Music Library Tracks in Album: Neon Bible
===============================================
1: Artist: Arcade Fire | Album: Neon Bible | Title: Black Mirror
2: Artist: Arcade Fire | Album: Neon Bible | Title: Keep the Car Running
3: Artist: Arcade Fire | Album: Neon Bible | Title: Neon Bible
4: Artist: Arcade Fire | Album: Neon Bible | Title: Intervention
5: Artist: Arcade Fire | Album: Neon Bible | Title: Black Wave/Bad Vibrations
6: Artist: Arcade Fire | Album: Neon Bible | Title: Ocean of Noise
7: Artist: Arcade Fire | Album: Neon Bible | Title: Well and the Lighthouse
8: Artist: Arcade Fire | Album: Neon Bible | Title: (Antichrist Television Blues)
9: Artist: Arcade Fire | Album: Neon Bible | Title: Windowsill
10: Artist: Arcade Fire | Album: Neon Bible | Title: No Cars Go
11: Artist: Arcade Fire | Album: Neon Bible | Title: My Body Is a Cage
# tracks_in_album, tia, lta
```
#### Volume et EQ:
Couper / remettre le son:
```bash
sonos Salon mute <on|off>
```
Retourner le niveau du volume:
```bash
sonos Salon volume
11
# volume 11/100
# volume, vol
```
Régler le niveau du volume:
```bash
sonos Salon volume 12
# volume réglé à 12/100
# volume, vol
```
#### Jouer:
Jouer une piste:
```bash
sonos Salon clear_queue : Salon queue_track "Black Mirror" : Salon play_from_queue 1
```
Jouer la prochaine piste:
```bash
sonos Salon queue_track "Intervention" next : Salon play
```
Aller à la piste suivante:
```bash
sonos Salon next
# next
```
Aller à la piste précédente:
```bash
sonos Salon previous
# previous, prev
```
Mettre en pause:
```bash
sonos Salon pause
sonos Salon pause_all
# Toutes les enceintes du groupe
```
Jouer:
```bash
sonos Salon play
# play, start
```
Arrêter:
```bash
sonos Salon stop
# stop
```
Met en veille dans <durée>:
```bash
sonos Salon sleep_timer 1.5m
sonos Salon sleep_timer 00:01:30
# sleep_timer, sleep <duration|off|cancel> (s/m/h)
# Met en veille dans 90s
```
Met en veille à <heure>:
```bash
sonos Salon sleep_at 17:52
# sleep_at
```
Info sur la piste jouée actuellement:
```bash
sonos Salon track
Album: Neon Bible
Artist: Arcade Fire
Duration: 0:04:19
Playlist_position: 1
Position: 0:01:39
Title: Intervention
# track
```
#### Queue:
Effacer la file d'attente:
```bash
sonos Salon clear_queue
# clear_queue, cq
```
Afficher les pistes dans la file d'attente:
```bash
sonos Salon list_queue
1: Artist: Francis Cabrel | Album: In Extremis | Title: Azincourt
2: Artist: Renaud | Album: Boucan d'enfer | Title: Baltique
3: Artist: Arcade Fire | Album: Neon Bible | Title: Windowsill
4: Artist: Arcade Fire | Album: Neon Bible | Title: Black Mirror
5: Artist: Renaud | Album: Boucan d'enfer | Title: Manhattan-Kaboul
# list_queue, lq, q
```
Jouer la file d'attente:
```bash
sonos Salon play_from_queue
# play_from_queue, pfq, pq
# joue la piste 1
```
Jouer une piste de la file:
```bash
sonos Salon play_from_queue 21
# play_from_queue, pfq, pq
# joue la piste 21
```
Afficher la piste en position 2 de la file:
```bash
sonos Salon list_queue 2
2: Artist: Francis Cabrel | Album: In Extremis | Title: Azincourt
# list_queue, lq,
```
Ajouter une piste à la file d'attente:
```bash
sonos Salon queue_track "Black Mirror"
1
sonos Salon queue_track "Manhattan-Kaboul"
2
# queue_track, qt
# retourne la position dans la file
```
```bash
sonos Salon queue_track "Azincourt" play_next
1
# la piste est mise en dernière position de la file => prochaine piste à être lue.
# play_next | next
```
Ajouter un album à la file d'attente:
```bash
sonos Salon queue_album "Wake Up And Smell The Coffee" play_next
8
# queue_album, qa <play_next|next>
```
Sauver la file d'attente comme playlist Sonos:
```bash
sonos Salon save_queue "Ma playlist"
# save_queue, sq, create_playlist_from_queue
```
Supprimer la piste courante de la file:
```bash
sonos Salon remove_current_track_from_queue
# remove_current_track_from_queue, rltfq
# la piste est retirée de la file, la piste suivante est jouée
```
Supprimer des pistes de la file:
```bash
# range
sonos Salon remove_from_queue 15-17
# séquence
sonos Salon remove_from_queue 3,9
#piste
sonos Salon remove_from_queue 14
# remove_from_queue, rfq, rq
```
#### Divers:
Chainer 2 commandes:
```bash
sonos Salon volume 10 : Salon play
# avec le séparateur ' : '
```
Insérer des délais:
```bash
sonos Salon play : wait 3m : Salon stop
# wait <duration> (10s, 30m, 1.5h, 2:30, 0:1:25)
sonos Salon play : wait_until 18:35:00 : Salon stop
# wait_until <time> (HH:MM, HH:MM:SS)
```
Attendre que la lecture ait démarré / stoppé:
```bash
sonos Salon wait_stop : Salon volume 15
# attend que la lecture s'arrête puis règle le volume à 15
sonos Salon wait_start : Salon volume 13
# attend que la lecture démarre (appui sur le bouton >|| ) puis règle le volume à 13
```
Attendre arrêté pendant <durée>:
```bash
sonos Salon wait_stopped_for 30m : Salon play
# wait_stopped_for, wsf <duration>
```
Boucles:
```bash
loop
loop <iterations>
loop_for <duration>
loop_until <time>
loop_to_start
```
Conditions:
```bash
sonos Salon if_stopped volume 15
# Ajuste le volume à 15 seulement quand Salon sera arrêté.
sonos Salon if_playing volume 15
# Ajuste le volume à 15 seulement si Salon joue.
```
| | |
| ---- | ----------------------------------- |
| sfi | sonos Salon play_fav "france inter" |
| | |
| ss | sonos Salon stop |