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

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

Vorheriges Thema - Nächstes Thema

trabatz

Zitat von: schwatter am 29 Juli 2019, 15:07:42
Ja genau, in den Speicher der Box. Das funktioniert nur bei Aurabox, TimeboxMini u. Timebox.
Alle 16x16 sind mit dem Script noch nicht kompatibel.
Hab leider niergens gefunden wie oder wo mann Bilder oder Animations zur Box hochladen kann. Wenn ich versuche das:  -> Animation (hardcoded): 03   -> Type: 00 - 06 auszuführen  kommt Failed und bei -> Image/Animation (preloaded within the app): 05 kommt zwar answer 01 es passiert aer nix

Zitat von: schwatter am 29 Juli 2019, 15:07:42
Dazu wird ein loop verwendet den z.B der
Raspberry ausführen muss.
Ich habe das im Moment mit einem RaspiZero umgesetzt. Dieser erhält vom Fhemserver per
ssh non blocking den Loop zu starten.

Glaub nicht dass ich das ganz verstanden habe :) Benutze zwar auch ssh um diverse bluetooth geräte über pi zeros mit fhem zu verbinden aber ich wollte einfach doifs erstellen die halt die animations über script lostreten mit repeatsame solang ichs halt brauch oder der doif zweig wechselt.

Das mit dem 16 auf 11 lass ich dann mal bleiben :)

schwatter

So, hier mal ein Testpaket für dich. Musst eigentlich nur noch deine Mac anpassen in der coffee.pl und washer.pl.
Die beiden Scripte laden dir eine Animation auf die Box. Darauf kannst du aufbauen.

Zu der Sache mit dem Loop. Damit täuscht man eine Animation vor. Bedeutet, die Animation ist nicht in die Box geladen,
sondern der Server/Pc greift auf das Script zu, in dem du einen Loop gebaut hast. Das Script rattert dann einfach
vordefinierte Bilder runter. Siehe Post #263.

edit:
wo du auch drauf achten musst, den richtigen Converter im Script setzen:

# load animation pictures
my $pic1 = convertImageAB('timebox/1.png', 10); #Aurabox
my $pic1 = convertImageTB('timebox/1.png', 11); #Timebox/TimeboxMini
my $pic1 = convertImageTBEVO('timebox/1.png', 16); #TimeboxEvo/Pixoo und Co.


edit2:

Solltest du es per ssh auf einem anderen Gerät ausführen, bekommst du bestimmt Probleme beim ausführen.
Dazu benötigt das Script dann eine explizite Pfadangabe zur divoom.pl. So konnte ich es bei mir lösen.


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

mumpitzstuff

Es gibt ein Example Script setAnimation.pl. Und bei all den anderen Versuchen, kopiere bitte exakt die Zeile aus deinem Script oder besser das gesamte Script, so das man sieht, was genau du da machst. Bei der Aussage ich habe 05 gesetzt oder irgendwas, gibt es mindestens 1000 Dinge die man falsch machen kann.

Außerdem stell doch mal dein Script + Beispielbild für dein 16x16 zu 11x11 Problem zur Verfügung. Aus deinen Beschreibungen lässt sich nicht viel entnehmen.

schwatter

Ich habe eben mal mit text to picture gespielt.

apt-get install perlmagick

#!/usr/bin/perl

use Image::Magick;

$image = Image::Magick->new;
$image->Set(size=>'205x30');
$image->ReadImage('xc:black');

$text = "Waschmaschine fertig!";
$image->Annotate(pointsize=>20, fill=>'red', text=>$text, y=>20, x=>0);

print "Content-type: image/gif\n\n";
print $image->Write('./test.gif');


Durch hinzufügen und ändern der X-Achse könnte ein Runningtext erstellt werden

trabatz

Ok sorry glaub wir haben ein bisschen aneinander vorbei geredet!
Also ich mache folgendes:
Ich hab die scripts aus dem github mit den dazugehörigen Beispielen auf den fhem server gesetzt (test System) und in den scripten wie zb. setAnimation.pl meine Mac angepasst und dann einfach über die Konsole gestartet. Das läuft auch alles soweit.
Hab dann eigentlich nur mit Bildern weitergemacht da laut script ja sowieso das convertImageTB gemacht wird op jetzt einmal oder mehrfach ist ja egal.
Dabei hab ich nun festgestellt dass nur native 11x11 ordentlich aussehen und das problem woher pics kriegen die ich nicht selber malen muss :) aber das ist ein anderes Problem... Angehängt noch ein 16x16 Bild, ein 11x11 Bild und das script zu umwandeln/hochladen
Wollte dann noch die anderen Sachen aus der README vom git versuchen so z.b. die talking faces. Die funktionieren super

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

if (connectDivoom('11:75:58:C6:46:82'))
{
  sendPlain('4500', 2);
  # set Talking Faces
  sendPlain('A10102', 3);
  disconnectDivoom();
}


Habe dann das:
Zitat von: trabatz am 29 Juli 2019, 20:13:01
Hab leider niergens gefunden wie oder wo mann Bilder oder Animations zur Box hochladen kann. Wenn ich versuche das:  -> Animation (hardcoded): 03   -> Type: 00 - 06 auszuführen  kommt Failed und bei -> Image/Animation (preloaded within the app): 05 kommt zwar answer 01 es passiert aer nix
im selben script probiert bei sendPlain und das will nicht

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

if (connectDivoom('11:75:58:C6:46:82'))
{
  sendPlain('4500', 2);
  # set Talking Faces
  sendPlain('0301', 3);
  disconnectDivoom();
}

mit  der Fehlermeldung:

Create RFCOMM client (11:75:58:C6:46:82 with port 4)...
Device answer: HELLO
done

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

Send plain command: 0301
Generated raw command: 01040003060304080002
Send raw command: 01040003060304080002
No answer from device!
No answer from device!
No answer from device!
No answer from device!
Failed!
done


Equaliser will auch nicht mit sendPlain('0401', 3)

Dann unterscheide ich noch zwichen den scripten auf Github und den scripten die ich hier im Post #268 von schwatter heruntergeladen habe. Hab mit denen jedoch schnell aufgehört da hier fast nichts mit der TBmini funktioniert.

Zitat von: trabatz am 28 Juli 2019, 13:50:26

Hab jedoch ein problem mit den scripts hier aus dem thread. Wenn ich das setGif.pl anstosse kommt auf der mini nur Pixelsalat an. Hab dann im setGif.pl auf convertImageTB (ohne EVO) umgestellt dann krieg ich leider einen fehler beim ausführen in line 271 der divoom.pl  mit $a = $image->alpha($index) (sorry sitze gerade nicht vorm laufenden system kann die genaue Fehlermeldung aber nachreichen). Die scripte aus dem Git laufen alle.


So jetzt zu den Testpaketen. Erst mal danke dafür aber im prinzip läuft das ja mit der setAnimation.pl. Ich habe jedoch festgestellt dass die Box zimlich wählerich ist welche Bilder sie nimmt und leider laufen weder die coffee.pl noch die washer.pl. Mit dem beigefügten script (also dem hier aus dem forum) krieg ich :


perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_ADDRESS = "de_LU.UTF-8",
LC_NAME = "de_LU.UTF-8",
LC_MONETARY = "de_LU.UTF-8",
LC_PAPER = "de_LU.UTF-8",
LC_IDENTIFICATION = "de_LU.UTF-8",
LC_TELEPHONE = "de_LU.UTF-8",
LC_MEASUREMENT = "de_LU.UTF-8",
LC_TIME = "de_LU.UTF-8",
LC_NUMERIC = "de_LU.UTF-8",
LANG = "en_GB.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_GB.UTF-8").
Can't read image ./images/coffee1.bmp


das script vom Git läuft zwar durch jedoch bleibt der schirm der box schwarz:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_ADDRESS = "de_LU.UTF-8",
LC_NAME = "de_LU.UTF-8",
LC_MONETARY = "de_LU.UTF-8",
LC_PAPER = "de_LU.UTF-8",
LC_IDENTIFICATION = "de_LU.UTF-8",
LC_TELEPHONE = "de_LU.UTF-8",
LC_MEASUREMENT = "de_LU.UTF-8",
LC_TIME = "de_LU.UTF-8",
LC_NUMERIC = "de_LU.UTF-8",
LANG = "en_GB.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_GB.UTF-8").
Image: 11x11 (maxcolors: no palette found, usedcolors: 4)
Image: 11x11 (maxcolors: no palette found, usedcolors: 4)
Image: 11x11 (maxcolors: no palette found, usedcolors: 4)
Image: 11x11 (maxcolors: no palette found, usedcolors: 4)
Create RFCOMM client (11:75:58:C6:46:82 with port 4)...
Device answer: HELLO
done

Send plain command: 49000A0A0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Generated raw command: 01BF0049000A0A040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020030402
Send raw command: 01BF0049000A0A040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020030402
No answer from device!
done

Send plain command: 49000A0A0401000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Generated raw command: 01BF0049000A0A04030400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021030402
Send raw command: 01BF0049000A0A04030400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021030402
No answer from device!
done

Send plain command: 49000A0A0402000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Generated raw command: 01BF0049000A0A04030500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022030402
Send raw command: 01BF0049000A0A04030500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022030402
No answer from device!
done

Send plain command: 49000A0A0403000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Generated raw command: 01BF0049000A0A04030600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023030402
Send raw command: 01BF0049000A0A04030600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023030402
No answer from device!
done



Ha ich das jetzt richtig verstanden dass bei den 16x16 Boxen das setAnimation.pl nicht funktioniert aer das setGif.pl schon?

Nochmals vielen Danke für eure Geduld und Zeit

schwatter

Zu der letzten Frage.
Genau, setAnimation.pl funktioniert nicht. Die setGif.pl ja.

edit:
Post #268 war nur für 16x16

trabatz

Zitat von: schwatter am 29 Juli 2019, 21:12:56
So, hier mal ein Testpaket für dich. Musst eigentlich nur noch deine Mac anpassen in der coffee.pl und washer.pl.
Die beiden Scripte laden dir eine Animation auf die Box. Darauf kannst du aufbauen.

Habe die Bilder aus den Testpacketen mal mit einem paint program geöffnet und als png neu gespeichert und nun funktionieren sie. Jedoch nur mit dem script aus dem git nicht mit dem von dir angehängten aus Post #286 da Bleibt der Bildschirm schwarz.

Kurze Frage noch:
Gibts nen Weg die einzelnen die man über setAnimation.pl aufrufen kann langsamer laufen zu lassen? Wollte einfach mal 2 unterschiedliche Bilder abwechseld anzeigen lassen die wechseln jedoch sehr schnell. Als Workaround hab ich einfach jetzt mal jedes bild 3 mal hintereinander anzeigen lass:

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

# load washer pictures
my $pic1 = convertImageTB('pictures/hallo.png', 11);
my $pic2 = convertImageTB('pictures/hallo.png', 11);
my $pic3 = convertImageTB('pictures/hallo.png', 11);

my $pic4 = convertImageTB('pictures/du.png', 11);
my $pic5 = convertImageTB('pictures/du.png', 11);
my $pic6 = convertImageTB('pictures/du.png', 11);
if (connectDivoom('11:75:58:C6:46:82'))
{
  # set clock
  sendPlain('4500', 2);
  # 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, 3, 0);
disconnectDivoom();
}


schwatter

Jau Delay, geht. So z.B.:

Schnellste
sendPlain('49000A0A040000'.$pic1, 0, 0);
Langsamste
sendPlain('49000A0A0400FF'.$pic1, 0, 0);

00 bis FF in hexdezimal.

https://www.binaryhexconverter.com/decimal-to-hex-converter


namron2000

Hallo Zusammen,
ich möchte gern mein Pixoo in Fhem einbinden (Bildschirm an und aus reicht fürs erste). Welches Script benutze ich dafür am besten und wie wende ich es an ? (das von derHeinz oder ein anders) Ich hab das Pixoo bereits mit meine Raspberry über Bluetooth verbunden. Nur kommt bis jetzt nur Müll raus mit den Sachen die ich ausprobiert habe (derHeinz etc.). Eine kleine Anleitung wäre ganz cool, weil ich schon viel Ausprobiert habe aber einfach nicht weiter komme.
Danke für Eure Hilfe

schwatter

Ich verwende dazu folgende Settings.

Dim000%
#!/usr/bin/perl
require "/opt/fhem/divoom2/divoom.pl";;

if (connectDivoom('11:75:58:FD:4C:CC'))
{
  # set Dimmer
  sendPlain('7400', 1);
  disconnectDivoom();
}


Dim050%
#!/usr/bin/perl
require "/opt/fhem/divoom2/divoom.pl";

#if (connectDivoom('11:75:68:C9:7D:36'))
{
  # set Dimmer
  sendPlain('743F', 1);
  disconnectDivoom();
}


Dim100%
#!/usr/bin/perl
require "/opt/fhem/divoom2/divoom.pl";

if (connectDivoom('11:75:58:FD:4C:CC'))
{
  # set Dimmer
  sendPlain('74FF', 1);
  disconnectDivoom();
}


edit:
siehe dazu die Infos von mumpitzstuff auf github
https://github.com/mumpitzstuff/fhem-Divoom

Set Brightness: 32 or 74 
  -> Level (0 = off, 01 - FF = brightness level): 00 - FF 

schwatter

Habe meine Testscripte im ersten Thread erneuert sowie Info für das Remoteausführen hinzugefügt.

schwatter


schwatter

Script für Timesync. Wichtig, "localtime" muss richtig gesetzt werden.
z.B mit raspi-config --> Localisation Options.Im Moment wird nur
Stunde,Minute, und Sekunde gesetzt.

#!/usr/bin/perl
require "/opt/fhem/divoom2/divoom.pl";
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

if (connectDivoom('11:75:58:FD:4C:CC'))
{
  sendPlain('1820000000'.sprintf("%02X%02X%02X", $hour,$min,$sec), 1);
  disconnectDivoom();
}

schwatter

Update

Sekunde,Minute,Stunde,Tag und Monat werden jetzt richtig gesetzt.


#!/usr/bin/perl
require "/opt/fhem/divoom2/divoom.pl";
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

if (connectDivoom('11:75:58:FD:4C:CC'))
{
  sendPlain('1814'.sprintf("%02X%02X%02X%02X%02X%02X", ($year - 100),($mon + 1),$mday,$hour,$min,$sec), 1);
  disconnectDivoom();
}


@mumpitzstuff

Habe mit einleiten der '18' für Timesetting die '14' festgelegt. Da '14' Hex in Dezimal '20' entspricht. Die '21' erlebe ich eh nich mehr  ;D
Dann kommt die '19' welche aus ($year - 100) generiert wird.
Frage stimmt das ?
Habe das Problem, das auf meiner Evo der Tag Montag angezeigt wird. Daher suche ich den Fehler.
Der Rest stimmt zu 100% [($mon + 1),$mday,$hour,$min,$sec)]