Divoom Aurabox + Timebox + TimeboxEvo [Update, kommunizieren funktioniert]

Begonnen von schwatter, 25 Dezember 2017, 23:37:43

Vorheriges Thema - Nächstes Thema

schwatter

Funktioniert bei mir nicht.

Habe in der "sub convertImageTB($;$)" die Größe  auf " $size = 16 if (!defined($size));" geändert.

setPicture.pl angepasst.

#!/usr/bin/perl
require "./divoom.pl";

# load picture
my $pic = convertImageTB('timebox/skull16.png', 16);

if (connectDivoom('11:75:68:C9:7D:36'))
{
  # set clock
  #sendPlain('4500', 5);
  # set picture
  sendPlain('44000A0A04'.$pic, 10, 0);
  disconnectDivoom();
}


Und, das skull.png von 11 auf 16 Pixel erweitert.

Konsolenoutput

root@raspberrypi:/opt/fhem/divoom2# perl setPicture.pl
Image: 16x16 (maxcolors: no palette found, usedcolors: 2)
Create RFCOMM client (11:75:68:C9:7D:36 with port 1)...
root@raspberrypi:/opt/fhem/divoom2#

schwatter

Slot laden funktioniert. Ich musste mich nun auch mal bei Divoom registrieren. Ersten Slot bestückt,
dann upload auf die Box. Aufruf klappt mit

#!/usr/bin/perl
require "./divoom.pl";

if (connectDivoom('11:75:68:C9:7D:36'))
{
  # set Slot
  sendRaw('01090045050000000000530002', 5);
  disconnectDivoom();
}


Es gibt maximal 12 Slots. Jetzt muss ich schauen, ob alle einzeln aufrufbar sind oder ob sie nur nacheinander durchlaufen.

edit:

Die Animationen laufen nacheinander stumpf durch. Einzeln aufrufbar scheint nicht gegeben zu sein.

schwatter

Senden von Bildern, welche ich vorher in der App ausgewählt und dann gesnifft habe, funktioniert per Raw auch.

#!/usr/bin/perl
require "./divoom.pl";

if (connectDivoom('11:75:68:C9:7D:36'))
{
  # set RawPictureTest
  sendRaw('017d0044000a0a04aa760000000005000000ffffff0000fefefe00fd040400002000240900040000000800006c1b000800806ddb000001300000060400360c18360000b66ddb360000b66ddb364000b661c3360000b001c0060000806ddb180600416c1b491220490240480600490040c2440008000000000000000000003d1a02', 5);
  sendRaw('017d0044000a0a04aa760000000005ffffff000000fefe000000fe01ff0100802449000000124992120040244992a40088a4489222058824455224059192244a922891244552242991a44892222991344992342991242589242991a490642429889490642205882491a42405402491a4a400001291a412000080906400000a2602', 5);
  sendRaw('015a0044000a0a04aa530000000004ffffff000000fefe00fe00000054150040a96a0190aaaa06a4aaaa1ae4aeee1af9bfff6be9affe6aa9abba6aa99aa66aa9baae6aa9baae6aa4aaaa1aa455951a9056a5064059a905005455001f2702', 5);
  sendRaw('01340044000a0a04aa2d0000000002fab07bff0000366c7ffe3e7c1c38081000000e700e700e700e700000000080014002800100000e0b02', 5);
  sendRaw('015a0044000a0a04aa530000000004fefe00fe00fe000000ffffff0040150000545a0500a5aa1640a9aa1a40aaaa1a50aaaa1a90fabe1a90aaaa1a90aaaa1a90aaaa1a90aaaa1a90aaaa1a90aaaa1650aaaa1650a96a1550a95a151e2302', 5);
  sendRaw('01ac0044000a0a04aaa5000000000afefe00fea80000e0ffff01d800fff2fe01690157ff60fd00000afd9200fd0000000000000000101120222200330310112022220033031011202222003303101120222200330310112022220033030000000000000000000000000000000040506070078890094050607007889009405060700788900940506070078890094050607007889009405060700788900940506070078890090000000000000000bc2702', 5);
  sendRaw('01340044000a0a04aa2d00000000020000fecf00fffe7efe7efe7efe7efe7efe7efe7e0000fe7efe7efe7efe7efe7efe7efe7efe7e791a02', 5);
  sendRaw('01340044000a0a04aa2d0000000002000000ffffff00800080000000000000000038000000000000000000000000000000000000009e0502', 5);
  disconnectDivoom();
}


root@raspberrypi:/opt/fhem/divoom2# perl setTest.pl
Create RFCOMM client (11:75:68:C9:7D:36 with port 1)...

done

Send raw command: 017d0044000a0a04aa760000000005000000ffffff0000fefefe00fd040400002000240900040000000800006c1b000800806ddb000001300000060400360c18360000b66ddb360000b66ddb364000b661c3360000b001c0060000806ddb180600416c1b491220490240480600490040c2440008000000000000000000003d1a02
No answer from device!
Device answer: 01
done

Send raw command: 017d0044000a0a04aa760000000005ffffff000000fefe000000fe01ff0100802449000000124992120040244992a40088a4489222058824455224059192244a922891244552242991a44892222991344992342991242589242991a490642429889490642205882491a42405402491a4a400001291a412000080906400000a2602
Device answer: 01
done

Send raw command: 015a0044000a0a04aa530000000004ffffff000000fefe00fe00000054150040a96a0190aaaa06a4aaaa1ae4aeee1af9bfff6be9affe6aa9abba6aa99aa66aa9baae6aa9baae6aa4aaaa1aa455951a9056a5064059a905005455001f2702
Device answer: 01
done

Send raw command: 01340044000a0a04aa2d0000000002fab07bff0000366c7ffe3e7c1c38081000000e700e700e700e700000000080014002800100000e0b02
Device answer: 01
done

Send raw command: 015a0044000a0a04aa530000000004fefe00fe00fe000000ffffff0040150000545a0500a5aa1640a9aa1a40aaaa1a50aaaa1a90fabe1a90aaaa1a90aaaa1a90aaaa1a90aaaa1a90aaaa1a90aaaa1650aaaa1650a96a1550a95a151e2302
Device answer: 01
done

Send raw command: 01ac0044000a0a04aaa5000000000afefe00fea80000e0ffff01d800fff2fe01690157ff60fd00000afd9200fd0000000000000000101120222200330310112022220033031011202222003303101120222200330310112022220033030000000000000000000000000000000040506070078890094050607007889009405060700788900940506070078890094050607007889009405060700788900940506070078890090000000000000000bc2702
Device answer: 01
done

Send raw command: 01340044000a0a04aa2d00000000020000fecf00fffe7efe7efe7efe7efe7efe7efe7e0000fe7efe7efe7efe7efe7efe7efe7efe7e791a02
Device answer: 01
done

Send raw command: 01340044000a0a04aa2d0000000002000000ffffff00800080000000000000000038000000000000000000000000000000000000009e0502
Device answer: 01
done

root@raspberrypi:/opt/fhem/divoom2#

mumpitzstuff

Da ist aber schon der Verbindungsaufbau gescheitert. Bis zum senden des Bildes ist das Script gar nicht gekommen.

Zitat von: schwatter am 25 November 2018, 11:54:17
Funktioniert bei mir nicht.

Habe in der "sub convertImageTB($;$)" die Größe  auf " $size = 16 if (!defined($size));" geändert.

setPicture.pl angepasst.

#!/usr/bin/perl
require "./divoom.pl";

# load picture
my $pic = convertImageTB('timebox/skull16.png', 16);

if (connectDivoom('11:75:68:C9:7D:36'))
{
  # set clock
  #sendPlain('4500', 5);
  # set picture
  sendPlain('44000A0A04'.$pic, 10, 0);
  disconnectDivoom();
}


Und, das skull.png von 11 auf 16 Pixel erweitert.

Konsolenoutput

root@raspberrypi:/opt/fhem/divoom2# perl setPicture.pl
Image: 16x16 (maxcolors: no palette found, usedcolors: 2)
Create RFCOMM client (11:75:68:C9:7D:36 with port 1)...
root@raspberrypi:/opt/fhem/divoom2#


mumpitzstuff

Sieht für mich so aus, als ob da noch ein zusätzliches aa hinten dran klebt und noch mal eine Art Länge des Bildes. Ich vergleiche das mal mit einer raw Nachricht der Timebox Mini, dann kann ich vielleicht mehr sagen.

Zitat von: schwatter am 25 November 2018, 14:06:39
Senden von Bildern, welche ich vorher in der App ausgewählt und dann gesnifft habe, funktioniert per Raw auch.

#!/usr/bin/perl
require "./divoom.pl";

if (connectDivoom('11:75:68:C9:7D:36'))
{
  # set RawPictureTest
  sendRaw('017d0044000a0a04aa760000000005000000ffffff0000fefefe00fd040400002000240900040000000800006c1b000800806ddb000001300000060400360c18360000b66ddb360000b66ddb364000b661c3360000b001c0060000806ddb180600416c1b491220490240480600490040c2440008000000000000000000003d1a02', 5);
  sendRaw('017d0044000a0a04aa760000000005ffffff000000fefe000000fe01ff0100802449000000124992120040244992a40088a4489222058824455224059192244a922891244552242991a44892222991344992342991242589242991a490642429889490642205882491a42405402491a4a400001291a412000080906400000a2602', 5);
  sendRaw('015a0044000a0a04aa530000000004ffffff000000fefe00fe00000054150040a96a0190aaaa06a4aaaa1ae4aeee1af9bfff6be9affe6aa9abba6aa99aa66aa9baae6aa9baae6aa4aaaa1aa455951a9056a5064059a905005455001f2702', 5);
  sendRaw('01340044000a0a04aa2d0000000002fab07bff0000366c7ffe3e7c1c38081000000e700e700e700e700000000080014002800100000e0b02', 5);
  sendRaw('015a0044000a0a04aa530000000004fefe00fe00fe000000ffffff0040150000545a0500a5aa1640a9aa1a40aaaa1a50aaaa1a90fabe1a90aaaa1a90aaaa1a90aaaa1a90aaaa1a90aaaa1a90aaaa1650aaaa1650a96a1550a95a151e2302', 5);
  sendRaw('01ac0044000a0a04aaa5000000000afefe00fea80000e0ffff01d800fff2fe01690157ff60fd00000afd9200fd0000000000000000101120222200330310112022220033031011202222003303101120222200330310112022220033030000000000000000000000000000000040506070078890094050607007889009405060700788900940506070078890094050607007889009405060700788900940506070078890090000000000000000bc2702', 5);
  sendRaw('01340044000a0a04aa2d00000000020000fecf00fffe7efe7efe7efe7efe7efe7efe7e0000fe7efe7efe7efe7efe7efe7efe7efe7e791a02', 5);
  sendRaw('01340044000a0a04aa2d0000000002000000ffffff00800080000000000000000038000000000000000000000000000000000000009e0502', 5);
  disconnectDivoom();
}


root@raspberrypi:/opt/fhem/divoom2# perl setTest.pl
Create RFCOMM client (11:75:68:C9:7D:36 with port 1)...

done

Send raw command: 017d0044000a0a04aa760000000005000000ffffff0000fefefe00fd040400002000240900040000000800006c1b000800806ddb000001300000060400360c18360000b66ddb360000b66ddb364000b661c3360000b001c0060000806ddb180600416c1b491220490240480600490040c2440008000000000000000000003d1a02
No answer from device!
Device answer: 01
done

Send raw command: 017d0044000a0a04aa760000000005ffffff000000fefe000000fe01ff0100802449000000124992120040244992a40088a4489222058824455224059192244a922891244552242991a44892222991344992342991242589242991a490642429889490642205882491a42405402491a4a400001291a412000080906400000a2602
Device answer: 01
done

Send raw command: 015a0044000a0a04aa530000000004ffffff000000fefe00fe00000054150040a96a0190aaaa06a4aaaa1ae4aeee1af9bfff6be9affe6aa9abba6aa99aa66aa9baae6aa9baae6aa4aaaa1aa455951a9056a5064059a905005455001f2702
Device answer: 01
done

Send raw command: 01340044000a0a04aa2d0000000002fab07bff0000366c7ffe3e7c1c38081000000e700e700e700e700000000080014002800100000e0b02
Device answer: 01
done

Send raw command: 015a0044000a0a04aa530000000004fefe00fe00fe000000ffffff0040150000545a0500a5aa1640a9aa1a40aaaa1a50aaaa1a90fabe1a90aaaa1a90aaaa1a90aaaa1a90aaaa1a90aaaa1a90aaaa1650aaaa1650a96a1550a95a151e2302
Device answer: 01
done

Send raw command: 01ac0044000a0a04aaa5000000000afefe00fea80000e0ffff01d800fff2fe01690157ff60fd00000afd9200fd0000000000000000101120222200330310112022220033031011202222003303101120222200330310112022220033030000000000000000000000000000000040506070078890094050607007889009405060700788900940506070078890094050607007889009405060700788900940506070078890090000000000000000bc2702
Device answer: 01
done

Send raw command: 01340044000a0a04aa2d00000000020000fecf00fffe7efe7efe7efe7efe7efe7efe7e0000fe7efe7efe7efe7efe7efe7efe7efe7e791a02
Device answer: 01
done

Send raw command: 01340044000a0a04aa2d0000000002000000ffffff00800080000000000000000038000000000000000000000000000000000000009e0502
Device answer: 01
done

root@raspberrypi:/opt/fhem/divoom2#


schwatter

Ja, du hast recht mit dem Verbindungsaufbau. War aber zu dem Zeitpunkt so.
Etwas seltsames. Nachdem ich ein Rawpic schicke und danach versuche Plain das Skull16.png zu senden läuft das Script durch,
setzt aber wieder das Rawpic, welches ich aber schon längst rausgeschmissen habe. Kann ich beliebig wiederholen mit anderen
Rawpic's

#!/usr/bin/perl
require "./divoom.pl";

# load picture
my $pic = convertImageTB('timebox/skull16.png', 16);

if (connectDivoom('11:75:68:C9:7D:36'))
{
  # set clock
  sendPlain('4500', 5);
  # set picture
  sendPlain('44000A0A04'.$pic, 10, 0);
  disconnectDivoom();
}



root@raspberrypi:/opt/fhem/divoom2# perl setPicture.pl
Image: 16x16 (maxcolors: no palette found, usedcolors: 2)
Create RFCOMM client (11:75:68:C9:7D:36 with port 1)...

done

Send plain command: 4500
Generated raw command: 0104004500490002
Send raw command: 0104004500490002
No answer from device!
Device answer: 01
done

Send plain command: 44000A0A0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0ffffffffffffff000000000000000000000000000000ffffffffffffffffffff0f00000000000000000000000000ff0f0000f0ff000000ff0f00000000000000000000000000ff0f0000f0ff000000ff0f00000000000000000000000000ffffffffffffffffffff0f0000000000000000000000000000f0ffffffffffffff00000000000000000000000000000000f0ff00f0ff00f0ff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Generated raw command: 01880144000A0A0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0ffffffffffffff000000000000000000000000000000ffffffffffffffffffff0f00000000000000000000000000ff0f0000f0ff000000ff0f00000000000000000000000000ff0f0000f0ff000000ff0f00000000000000000000000000ffffffffffffffffffff0f0000000000000000000000000000f0ffffffffffffff00000000000000000000000000000000f0ff00f0ff00f0ff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a43202
Send raw command: 01880144000A0A0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0ffffffffffffff000000000000000000000000000000ffffffffffffffffffff0f00000000000000000000000000ff0f0000f0ff000000ff0f00000000000000000000000000ff0f0000f0ff000000ff0f00000000000000000000000000ffffffffffffffffffff0f0000000000000000000000000000f0ffffffffffffff00000000000000000000000000000000f0ff00f0ff00f0ff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a43202
Device answer: 01
done

root@raspberrypi:/opt/fhem/divoom2#

schwatter

Mit setAnimation sieht es so aus.

#!/usr/bin/perl
require "./divoom.pl";

# load animation pictures
my $pic1 = convertImageTB('timebox/1.png', 16);
my $pic2 = convertImageTB('timebox/2.png', 16);
my $pic3 = convertImageTB('timebox/3.png', 16);
my $pic4 = convertImageTB('timebox/4.png', 16);
my $pic5 = convertImageTB('timebox/5.png', 16);
my $pic6 = convertImageTB('timebox/6.png', 16);
my $pic7 = convertImageTB('timebox/7.png', 16);
my $pic8 = convertImageTB('timebox/8.png', 16);

if (connectDivoom('11:75:68:C9:7D:36'))
{
  # set clock
  sendPlain('4500', 5);
  # set animation
  sendPlain('49000A0A040000'.$pic1, 0, 0);
  sendPlain('49000A0A040100'.$pic2, 0, 0);
  sendPlain('49000A0A040200'.$pic3, 0, 0);
  sendPlain('49000A0A040300'.$pic4, 0, 0);
  sendPlain('49000A0A040400'.$pic5, 0, 0);
  sendPlain('49000A0A040500'.$pic6, 0, 0);
  sendPlain('49000A0A040600'.$pic7, 0, 0);
  sendPlain('49000A0A040700'.$pic8, 20, 0);
  disconnectDivoom();
}


root@raspberrypi:/opt/fhem/divoom2# perl setAnimation.pl
Image: 16x16 (maxcolors: no palette found, usedcolors: 2)
Image: 16x16 (maxcolors: no palette found, usedcolors: 3)
Image: 16x16 (maxcolors: no palette found, usedcolors: 2)
Image: 16x16 (maxcolors: no palette found, usedcolors: 2)
Image: 16x16 (maxcolors: no palette found, usedcolors: 2)
Image: 16x16 (maxcolors: no palette found, usedcolors: 2)
Image: 16x16 (maxcolors: no palette found, usedcolors: 1)
Image: 16x16 (maxcolors: no palette found, usedcolors: 1)
Create RFCOMM client (11:75:68:C9:7D:36 with port 1)...

done

Send plain command: 4500
Generated raw command: 0104004500490002
Send raw command: 0104004500490002
Device answer: 01
done

Send plain command: 49000A0A04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000f000000000000000000000000000000000000000000f0000f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Generated raw command: 018a0149000A0A04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000f000000000000000000000000000000000000000000f0000f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ea0202
Send raw command: 018a0149000A0A04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000f000000000000000000000000000000000000000000f0000f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ea0202
Device answer: 01
done

Send plain command: 49000A0A0401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000800000000000000000000000000000000000000000080000800000000000000000000000000000000000000000a000000a0000000000000000000000000000000000880000000000000000880000000000000000000000000000880000000000000000880000000000000000000000000000000000a000000a00000000000000000000000000000000000000000800008000000000000000000000000000000000000000000800008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Generated raw command: 018a0149000A0A0401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000800000000000000000000000000000000000000000080000800000000000000000000000000000000000000000a000000a0000000000000000000000000000000000880000000000000000880000000000000000000000000000880000000000000000880000000000000000000000000000000000a000000a00000000000000000000000000000000000000000800008000000000000000000000000000000000000000000800008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000810602
Send raw command: 018a0149000A0A0401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000800000000000000000000000000000000000000000080000800000000000000000000000000000000000000000a000000a0000000000000000000000000000000000880000000000000000880000000000000000000000000000880000000000000000880000000000000000000000000000000000a000000a00000000000000000000000000000000000000000800008000000000000000000000000000000000000000000800008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000810602
No answer from device!
done

Send plain command: 49000A0A04020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000f00000000000000000000000000000000000ff0000000000000000ff0000000000000000000000000000ff0000000000000000ff00000000000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000000000f000000000000000000f0000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000000000000ff0000000000000000ff0000000000000000000000000000ff0000000000000000ff00000000000000000000000000000000000f0000f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Generated raw command: 018a0149000A0A04020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000f00000000000000000000000000000000000ff0000000000000000ff0000000000000000000000000000ff0000000000000000ff00000000000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000000000f000000000000000000f0000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000000000000ff0000000000000000ff0000000000000000000000000000ff0000000000000000ff00000000000000000000000000000000000f0000f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e20c02
Send raw command: 018a0149000A0A04020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000f00000000000000000000000000000000000ff0000000000000000ff0000000000000000000000000000ff0000000000000000ff00000000000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000000000f000000000000000000f0000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000000000000ff0000000000000000ff0000000000000000000000000000ff0000000000000000ff00000000000000000000000000000000000f0000f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e20c02
No answer from device!
done

Send plain command: 49000A0A04030000000000000000000000000000000000000000000000000000000000000000000000f0000f000000000000000000000000000000000000000000f0000f000000000000000000000000000000f0000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000f000000000000000000000000000000f0000f000000f0000f000000000000000000000000000000f0000f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000000000f000000000000000000000000000000f0000f000000000000000000000000000000000000000000f0000f000000000000000000000000000000000000000000000000000000000000000000000000
Generated raw command: 018a0149000A0A04030000000000000000000000000000000000000000000000000000000000000000000000f0000f000000000000000000000000000000000000000000f0000f000000000000000000000000000000f0000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000f000000000000000000000000000000f0000f000000f0000f000000000000000000000000000000f0000f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000000000f000000000000000000000000000000f0000f000000000000000000000000000000000000000000f0000f000000000000000000000000000000000000000000000000000000000000000000000000e50a02
Send raw command: 018a0149000A0A04030000000000000000000000000000000000000000000000000000000000000000000000f0000f000000000000000000000000000000000000000000f0000f000000000000000000000000000000f0000000000000000000000000000f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000f000000000000000000000000000000f0000f000000f0000f000000000000000000000000000000f0000f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000000000000000000000000000f000000000000000000000000000000f0000f000000000000000000000000000000000000000000f0000f000000000000000000000000000000000000000000000000000000000000000000000000e50a02
No answer from device!
done

Send plain command: 49000A0A04040000000000000000000000f0000f000000000000000000000000f0000f000000000000000000000000000000f0000f000000f0000f000000000000000000000000000000f0000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000f0000f000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000f000000000000000000000000000000f0000f000000f0000f000000000000000000000000000000f0000f000000000000000000000000f0000f000000000000000000000000
Generated raw command: 018a0149000A0A04040000000000000000000000f0000f000000000000000000000000f0000f000000000000000000000000000000f0000f000000f0000f000000000000000000000000000000f0000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000f0000f000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000f000000000000000000000000000000f0000f000000f0000f000000000000000000000000000000f0000f000000000000000000000000f0000f000000000000000000000000e40c02
Send raw command: 018a0149000A0A04040000000000000000000000f0000f000000000000000000000000f0000f000000000000000000000000000000f0000f000000f0000f000000000000000000000000000000f0000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000f0000f000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0000f000000000000000000000000000000f0000f000000f0000f000000000000000000000000000000f0000f000000000000000000000000f0000f000000000000000000000000e40c02
No answer from device!
done

Send plain command: 49000A0A0405000f000000000000000000000000000000000000000000f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000f00000
Generated raw command: 018a0149000A0A0405000f000000000000000000000000000000000000000000f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000f00000ef0202
Send raw command: 018a0149000A0A0405000f000000000000000000000000000000000000000000f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000000000000000000000f00000ef0202
No answer from device!
done

Send plain command: 49000A0A04060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Generated raw command: 018a0149000A0A04060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f20002
Send raw command: 018a0149000A0A04060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f20002
No answer from device!
done

Send plain command: 49000A0A04070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Generated raw command: 018a0149000A0A04070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f30002
Send raw command: 018a0149000A0A04070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f30002
No answer from device!
done

root@raspberrypi:/opt/fhem/divoom2#


Bilder habe ich auch alle auf 16x16 /32bit erweitert. Kein Erfolg.

schwatter

Zitat von: schwatter am 25 November 2018, 12:41:34
Slot laden funktioniert. Ich musste mich nun auch mal bei Divoom registrieren. Ersten Slot bestückt,
dann upload auf die Box. Aufruf klappt mit

#!/usr/bin/perl
require "./divoom.pl";

if (connectDivoom('11:75:68:C9:7D:36'))
{
  # set Slot
  sendRaw('01090045050000000000530002', 5);
  disconnectDivoom();
}


Es gibt maximal 12 Slots. Jetzt muss ich schauen, ob alle einzeln aufrufbar sind oder ob sie nur nacheinander durchlaufen.

edit:

Die Animationen laufen nacheinander stumpf durch. Einzeln aufrufbar scheint nicht gegeben zu sein.

Ok, hier muss ich mich korrigieren. Ich hatte geschrieben

-> Image/Animation (preloaded within the app): 05 <-keine Funktion

Stimmt doch nicht. Nachdem ich den Slot mit der App befüllt habe, funktioniert das richtig.
Hatte es falsch zugeordnet.

#!/usr/bin/perl
require "./divoom.pl";

if (connectDivoom('11:75:68:C9:7D:36'))
{
  # set animation (loaded by app)
  sendPlain('4505', 5);

}


mumpitzstuff

Kannst du das skull.png mit der App laden (unverändert) und die raw Nachricht mitschneiden. Ich bin grad etwas unsicher wie das Format aussehen muss. Oder du speicherst eins der Bilder von denen du die RAW Nachrichten bereits kennst und hängst es hier mal an.

schwatter

Ja, ich bin auch verunsichert. Hier Skull in 11x11 gesendet.

#!/usr/bin/perl
require "./divoom.pl";

# load picture
my $pic = convertImageTB('timebox/skull.png', 11);

if (connectDivoom('11:75:68:C9:7D:36'))
{
  # set clock
  sendPlain('4500', 5);
  # set picture
  sendPlain('44000A0A04'.$pic, 10, 0);
  disconnectDivoom();
}


root@raspberrypi:/opt/fhem/divoom2# perl setPicture.pl
Image: 11x11 (maxcolors: no palette found, usedcolors: 2)
Create RFCOMM client (11:75:68:C9:7D:36 with port 1)...

done

Send plain command: 4500
Generated raw command: 0104004500490002
Send raw command: 0104004500490002
No answer from device!
Device answer: 01
done

Send plain command: 44000A0A0400000000000000000000000000000000000000000000000000000000000000000000000000f0ffffffffffffff00000000000000f0ffffffffffffffffffff000000000000ff0f0000f0ff000000ff0f0000000000f0ff000000ff0f0000f0ff000000000000ffffffffffffffffffff0f00000000000000ffffffffffffff0f0000000000000000f0ff00f0ff00f0ff0000000000000000000000000000000000000000000000000000000000000000000000000000
Generated raw command: 01bd0044000A0A0400000000000000000000000000000000000000000000000000000000000000000000000000f0ffffffffffffff00000000000000f0ffffffffffffffffffff000000000000ff0f0000f0ff000000ff0f0000000000f0ff000000ff0f0000f0ff000000000000ffffffffffffffffffff0f00000000000000ffffffffffffff0f0000000000000000f0ff00f0ff00f0ff0000000000000000000000000000000000000000000000000000000000000000000000000000b93302
Send raw command: 01bd0044000A0A0400000000000000000000000000000000000000000000000000000000000000000000000000f0ffffffffffffff00000000000000f0ffffffffffffffffffff000000000000ff0f0000f0ff000000ff0f0000000000f0ff000000ff0f0000f0ff000000000000ffffffffffffffffffff0f00000000000000ffffffffffffff0f0000000000000000f0ff00f0ff00f0ff0000000000000000000000000000000000000000000000000000000000000000000000000000b93302
Device answer: 01
done

root@raspberrypi:/opt/fhem/divoom2#


Die Bilder der Divoomapp werden in 2 Größen abgespeichert.
- /sdcard/Divoom/selfInfo = 144x144 Pixel /24Bit als JPG
- /sdcard/DCIM/Divoom = 240x240 Pixel /32Bit als PNG


An die echten 16x16 Pixelpics komme ich nicht. Die werden bestimmt on-the-fly konvertiert. Daher stelle ich dir die beiden Pics zur Verfügung + ein Bild, was ich mit Paint auf 16x16 verkleinert habe. Keines lässt sich erfolgreich senden, auch wenn es laut Scriptoutput so scheint.

Hier das Bild in Raw.

sendRaw('017d0044000a0a04aa760000000005000000ffffff0000fefefe00fd040400002000240900040000000800006c1b000800806ddb000001300000060400360c18360000b66ddb360000b66ddb364000b661c3360000b001c0060000806ddb180600416c1b491220490240480600490040c2440008000000000000000000003d1a02', 5);

schwatter

Ok, ich konnte eine Veränderung hervorrufen. Ich habe anstatt

sendPlain('44000A0A04'.$pic, 10, 0);

es so geändert.

sendPlain('44000A0A04aa'.$pic, 10, 0);

Jetzt wurde endlich nicht das letzte Bild aus dem Speicher geladen, sondern Pixelsalat  :D

mumpitzstuff

#176
#!/usr/bin/perl
require "./divoom.pl";

# load picture
my $pic = convertImageTB('timebox/skull.png', 11);

if (connectDivoom('11:75:58:4F:A1:CB'))
{
  # set clock
  sendPlain('4500', 5);
  # set picture
  #sendPlain('44000A0A04'.$pic, 10, 0);
  sendPlain('44000A0A04AA'.sprintf("%02x", (length($pic) / 2) + 2).$pic, 10, 0);
  disconnectDivoom();
}


Bevor wir noch andere Versuche starten, probier es mal damit...

Eventuell auch mal das Bild durch etwas mit 16x16 Pixeln ersetzen und bei convertImageTB die 16 als zweiten Parameter verwenden.

mumpitzstuff

Habe mir das gestern noch mal detaillierter angesehen. Die alte Timebox generiert aus einem Pixel 1,5 Byte.

1 Pixel = besteht aus 3 Werten R, G und B. Von jedem dieser Werte werden 4 Bit verwendet und ergeben insgesamt 12 Bit, also 1,5 Byte.

Bei der neuen Timebox hast du ja das Bild entsprechend gezeigt mit 16 x 16 Pixeln = 256 Pixeln.

sendRaw('017d0044000a0a04aa760000000005000000ffffff0000fefefe00fd040400002000240900040000000800006c1b000800806ddb000001300000060400360c18360000b66ddb360000b66ddb364000b661c3360000b001c0060000806ddb180600416c1b491220490240480600490040c2440008000000000000000000003d1a02', 5);

Die Bildinformationen sind hier aber nur 0x76 = 118 Byte lang. Mit anderen Worten, das Bild wird irgendwie komprimiert. Damit entspricht ein Byte der Raw Nachricht rund 2 Pixeln auf der neuen Timebox. Das Encoding ist somit komplett anders. Ich muss mal etwas drüber nachdenken, ob mir dazu noch etwas einfällt. Ansonsten kannst du mal versuchen als sendPlain mit folgendem zu spielen:

"44000a0a04aa" + (Länge der nachfolgenden Daten + 2) + Daten

Das sieht dann wie folgt aus:

44000a0a04aa0301
44000a0a04aa040102
44000a0a04aa05010203


Man müsste hier raus bekommen wie die einzelnen Pixel kodiert werden müssen...

schwatter

Habe die 3 getestet, außerdem auch noch etwas erweitert. Alle führten zu Pixelsalat.

44000a0a04aa0301
Wird zu Raw:
01c00044000a0a04aa030100000000000000000000000000000000000000000000000000000000000000000000000000f0ffffffffffffff00000000000000f0ffffffffffffffffffff000000000000ff0f0000f0ff000000ff0f0000000000f0ff000000ff0f0000f0ff000000000000ffffffffffffffffffff0f00000000000000ffffffffffffff0f0000000000000000f0ff00f0ff00f0ff00000000000000000000000000000000000000000000000000000000000000000000000000006a3402

44000a0a04aa040102

Wird zu Raw:
01c10044000a0a04aa04010200000000000000000000000000000000000000000000000000000000000000000000000000f0ffffffffffffff00000000000000f0ffffffffffffffffffff000000000000ff0f0000f0ff000000ff0f0000000000f0ff000000ff0f0000f0ff000000000000ffffffffffffffffffff0f00000000000000ffffffffffffff0f0000000000000000f0ff00f0ff00f0ff00000000000000000000000000000000000000000000000000000000000000000000000000006e3402


44000a0a04aa05010203

Wird zu Raw:
01c20044000a0a04aa0501020300000000000000000000000000000000000000000000000000000000000000000000000000f0ffffffffffffff00000000000000f0ffffffffffffffffffff000000000000ff0f0000f0ff000000ff0f0000000000f0ff000000ff0f0000f0ff000000000000ffffffffffffffffffff0f00000000000000ffffffffffffff0f0000000000000000f0ff00f0ff00f0ff0000000000000000000000000000000000000000000000000000000000000000000000000000733402


Das funktioniert auch nicht.

sendPlain('44000A0A04AA'.sprintf("%02x", (length($pic) / 2) + 2).$pic, 10, 0);

Wird zu Raw:
01bf0044000a0a04aab800000000000000000000000000000000000000000000000000000000000000000000000000f0ffffffffffffff00000000000000f0ffffffffffffffffffff000000000000ff0f0000f0ff000000ff0f0000000000f0ff000000ff0f0000f0ff000000000000ffffffffffffffffffff0f00000000000000ffffffffffffff0f0000000000000000f0ff00f0ff00f0ff00000000000000000000000000000000000000000000000000000000000000000000000000001d3502

mumpitzstuff

Deine ersten drei Versuche meinte ich ohne Bild hinten dran. Also wirklich nur genau das schicken was ich geschrieben habe. Du hast hinten noch das skull.png dran gehangen oder sowas.