1
1
# go-kef-w2
2
2
3
- Library, CLI and Apps for controlling KEFs W2 platform based speakers over the network.
3
+ CLI, library and apps (planed) for controlling KEFs W2 platform based speakers over the network.
4
4
5
- ## Library
5
+ ## Command line tool
6
6
7
- ### Usage
7
+ ### Installation
8
8
9
- ``` go
10
- package main
9
+ #### General
11
10
12
- import (
13
- " fmt"
14
- " log"
11
+ Grap a version for your OS from the [ releases] ( https://github.com/hilli/go-kef-w2/releases ) page.
15
12
16
- " github.com/hilli/go-kef-w2/kefw2"
17
- )
13
+ #### macOS
18
14
19
- func main () {
20
- speaker , err := kef.NewSpeaker (" 10.0.0.93" )
21
- if err != nil {
22
- log.Fatal (err)
23
- }
15
+ Install with Homebrew:
24
16
25
- fmt.Println (speaker.Name )
26
- fmt.Println (speaker.Model )
27
- fmt.Println (speaker.MacAddress )
28
- fmt.Println (speaker.IPAddress )
29
- fmt.Println (speaker.Version )
30
- fmt.Println (speaker.SerialNumber )
31
- fmt.Println (speaker.MacAddress )
32
- }
17
+ ``` shell
18
+ brew install hilli/tap/kefw2
33
19
```
34
20
35
- ## Command line tool
21
+ #### Linux
36
22
37
- ### Plan
23
+ Install with Homebrew:
38
24
39
- - [x] Set volume
40
- - [x] Mute/unmute
41
- - [x] Select source
42
- - [x] Get status
43
- - [x] Turn on/off
44
- - [x] Track next/previous
45
- - [x] Discover speakers automatically
46
- - [x] Display cover art in ASCII (wifi media)
47
- - [x] Backup speaker settings/eq profiles to file
48
- - [ ] Restore speaker settings/eq profiles to file
49
- - [ ] Play Podcasts/Radio
50
- - [ ] Play titles from built-in music streaming services (Amazon Music, Deezer, Qobus, Spotify, Tidal)
25
+ ``` shell
26
+ brew install hilli/tap/kefw2
27
+ ```
51
28
52
29
### Usage
53
30
@@ -63,7 +40,7 @@ If you only have one set of speakers, then that will be the default, otherwise c
63
40
kefw2 config speaker default < name or IP>
64
41
```
65
42
66
- If you want to controll a speaker that is not the default use the ` -s ` global flag
43
+ If you want to controll a speaker that is not the default use the ` -s ` global flag. Eksample:
67
44
68
45
``` shell
69
46
kefw2 -s 10.0.0.93 status
@@ -125,18 +102,63 @@ kefw2 config eq_profile > my_profile.json
125
102
Set the max volume limit
126
103
127
104
``` shell
128
- $ kefw2 config maxvol 65
129
- $ kefw2 config maxvol
130
- 65
105
+ kefw2 config maxvol 65
131
106
```
132
107
108
+ All with tab completion available of the options, where applicable.
133
109
134
- All with tab completion available of the options.
110
+ ### Plan
111
+
112
+ - [x] Set volume
113
+ - [x] Mute/unmute
114
+ - [x] Select source
115
+ - [x] Get status
116
+ - [x] Turn on/off
117
+ - [x] Track next/previous
118
+ - [x] Discover speakers automatically
119
+ - [x] Display cover art in ASCII (wifi media)
120
+ - [x] Backup speaker settings/eq profiles to file
121
+ - [ ] Restore speaker settings/eq profiles to file
122
+ - [ ] Play Podcasts/Radio
123
+ - [ ] Play titles from built-in music streaming services (Amazon Music, Deezer, Qobus, Spotify, Tidal)
124
+
125
+ ## Library
126
+
127
+ ### Usage
128
+
129
+ ``` go
130
+ package main
131
+
132
+ import (
133
+ " fmt"
134
+ " log"
135
+
136
+ " github.com/hilli/go-kef-w2/kefw2"
137
+ )
138
+
139
+ func main () {
140
+ speaker , err := kefw2.NewSpeaker (" 10.0.0.93" )
141
+ if err != nil {
142
+ log.Fatal (err)
143
+ }
144
+
145
+ fmt.Println (speaker.Name )
146
+ fmt.Println (speaker.Model )
147
+ fmt.Println (speaker.MacAddress )
148
+ fmt.Println (speaker.IPAddress )
149
+ fmt.Println (speaker.Version )
150
+ fmt.Println (speaker.SerialNumber )
151
+ fmt.Println (speaker.MacAddress )
152
+ }
153
+ ```
135
154
136
155
## Player
137
156
138
157
UI for controlling the speakers, show whats playing etc.
139
158
159
+ The idea is to create a [ Fyne] ( https://fyne.io/ ) App that will let you select inputs, show whats playing etc.
160
+ My own needs is to have a Raspberry Pi with a touch screen interact with the speakers and not least control the brigtness of the screen.
161
+
140
162
### Plan
141
163
142
164
- [ ] Cross compilation of Fyne apps
0 commit comments