Mijn pioneer receiver verlaagt de heletijd het volume met 3 db (topic), omdat ik zelf en via het forum geen oplossing heb kunnen vinden wilde ik een workaround maken.
Pioneer heeft zelf een app waarmee je met een telefoon de versterker kan bedienen, dus na wat googlen kwam ik op deze site. Vervolgens wilde ik een automatisch script maken in python die ik dan vervolgens op mijn raspberry kan laten draaien.
Het lukt alleen niet om een command te sturen om het volume op te vragen
Mijn huidige code:
output:
Telnet(192.168.0.103,23): send b'?V'
//Verandering volume van de versterker
Telnet(192.168.0.103,23): recv b'FL004D2E564F4C20202D31392E356442\r\n'
Telnet(192.168.0.103,23): recv b'VOL122\r\n'
b'FL004D2E564F4C20202D31392E356442\r\nVOL'
FL0
//Verandering volume van de versterker
Telnet(192.168.0.103,23): recv b'FL004D2E564F4C20202D31392E306442\r\n'
Telnet(192.168.0.103,23): recv b'VOL123\r\n'
volume changed to: 122
Telnet:
Command:?V
Antwoord: VOL126
//Verandering volume van de versterker
Antwoord: FL004D2E564F4C20202D31372E306442
Antwoord: VOL127
Bij het opvragen krijg ik niet direct een waarde terug, pas na het wijzigen van het volume. Dan krijgt ik ook de waarde FLO terug in plaats van een volume.
Zelf heb ik niet super veel ervaring met python dus ik hoopte dat iemand mij hiermee kan helpen
Pioneer heeft zelf een app waarmee je met een telefoon de versterker kan bedienen, dus na wat googlen kwam ik op deze site. Vervolgens wilde ik een automatisch script maken in python die ik dan vervolgens op mijn raspberry kan laten draaien.
Het lukt alleen niet om een command te sturen om het volume op te vragen
Mijn huidige code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| import telnetlib import sys HOST = '192.168.0.103' # from pudb import set_trace; set_trace() tn = telnetlib.Telnet(HOST) tn.set_debuglevel(100) tn.write("?V".encode('ascii')) data = tn.read_until("VOL".encode('ascii'), 100) print(data) data = data[:3].decode(sys.getdefaultencoding()) volume = data print (volume) while(True): data = tn.read_until(b"VOL", 100) data = int(data[:3].decode(sys.getdefaultencoding())) if(volume == data): for x in range(0,6): tn.write(b"VU") print("volume changed back to: ", volume) else: volume = data print ("volume changed to: ", volume) tn.close() |
output:
Telnet(192.168.0.103,23): send b'?V'
//Verandering volume van de versterker
Telnet(192.168.0.103,23): recv b'FL004D2E564F4C20202D31392E356442\r\n'
Telnet(192.168.0.103,23): recv b'VOL122\r\n'
b'FL004D2E564F4C20202D31392E356442\r\nVOL'
FL0
//Verandering volume van de versterker
Telnet(192.168.0.103,23): recv b'FL004D2E564F4C20202D31392E306442\r\n'
Telnet(192.168.0.103,23): recv b'VOL123\r\n'
volume changed to: 122
Telnet:
Command:?V
Antwoord: VOL126
//Verandering volume van de versterker
Antwoord: FL004D2E564F4C20202D31372E306442
Antwoord: VOL127
Bij het opvragen krijg ik niet direct een waarde terug, pas na het wijzigen van het volume. Dan krijgt ik ook de waarde FLO terug in plaats van een volume.
Zelf heb ik niet super veel ervaring met python dus ik hoopte dat iemand mij hiermee kan helpen