Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Unofficial remote control application for Expert
#26
Hello all,

I tried the Devimote program provided by @gnulabis (huge thanks to him!) for remote controlling my Devialet system, thus far with some success but also with some issues, and I wanted to share my experience.

Originally, I think the program was written for and tested on a D200. My current configuration is a set of three D200 PRO working in AXD (active crossover) mode for feeding a pair of three-way speakers. 

After successfully starting the program, I noticed that the Devimote interface was not being updated correctly.  Using Wireshark for watching the status packets sent by the Devialet, I managed to trace the problem to a minor difference in the structure of the those packets wrt to those expected by my current Deviamote. Basically, the Devialet packets turned out to be somewhat larger, because they were making allowance for a larger number of different sources (15 instead of 8), perhaps because my setup involves chaining several amps. 

After I modified @gnulabis' code to account for that particular change, the status updates turned out to perfectly understood and correctly displayed in my Devimote interface.

However, at this point in time, I am still struggling with two other problems:

1) There also appears to be a small change in the command packets that the Devialet is expecting. Basically all the commands sent by Deviamote to the Devialet are working OK, except those for selecting the first four of my seven different sources. In the Devialet command packets, the source selection is encoded in two consecutive bytes, but at this time I do not understand how specific pairs of bytes are supposed to relate to specific sources. In the Devimote program the value of this pair of bytes is determined using a calculus that I do not understand:
Code:
        out_val = 0x4000 | (output << 5)
        data = bytearray(142)
        data[6] = 0x00
        data[7] = 0x05
        data[8] = (out_val & 0xff00) >> 8
        if output > 7:
            data[9] = (out_val & 0x00ff) >> 1
        else:
            data[9] = (out_val & 0x00ff)

It is the value of bytes 8 and 9 that is expected to select a particular source. However, as it happens, the above calculus does not provide the correct values for my first four sources, as can be seen by comparing the bytes sent by my Devialet Android app with those sent by Deviamote:

Code:
# Change source CMD packets, first 10 bytes, as numbered from 0

44 72 00 2c 00 16 00 05 00 00  (source 0-Cinema, Android app)
44 72 00 04 00 02 00 05 40 00  (source 0-Cinema, devimote)

44 72 00 30 00 18 00 05 3f 80  (source 1-lp12, Android app)
44 72 00 9c 00 4e 00 05 40 20  (source 1-lp12, devimote)

44 72 00 34 00 1a 00 05 40 00  (source 2-upnp, Android app)
44 72 00 a0 00 50 00 05 40 40  (source 2-upnp, devimote)

44 72 00 39 00 1c 00 05 40 40  (source 3-Roon, Android app)
44 72 00 a4 00 52 00 05 40 60  (source 3-roon, devimote)

44 72 00 3c 00 1e 00 05 40 80  (source 4-Airplay, Android app)
44 72 00 a8 00 54 00 05 40 80  (source 4-airplay, devimote)

44 72 00 40 00 20 00 05 40 a0  (source 5-Spotify, Android app)
44 72 00 ad 00 56 00 05 40 a0  (source 5-Spotify, devimote)

44 72 00 44 00 22 00 05 41 60  (source 14-Air, Android app)
44 72 00 b0 00 58 00 05 41 60  (source 14-Air, devimote )

For the time being, I am circumventing this issue by hard coding the relevant pair of bytes in my modified version of Deviamote. However, I hope that I will eventually be able understand the correct logic and get rid of any hard coding.

That being said, at this time my current version of Deviamote is working perfectly both for receing and displaying updates and for sending commands.


2) The second remaing problem is more damning. Deviamote monitors the status of the amp by listening to UDP packets sent by the amp on port 45454. However, my Roon server also needs to listen on that same port, and Deviamote refuses to start whenever Roon is running. For my purpose, this turns out to be a very serious limitation. I hope that Deviamote can somehow be modified to allow for "shared listening". This must be possible, since the Devialet Androis app is listening fine while Roon is running.

Any hints would be most welcome.
Reply


Messages In This Thread
RE: Unofficial remote control application for Expert - by pisabell - 23-Aug-2022, 21:43

Forum Jump:


Users browsing this thread: 1 Guest(s)