Autor Thema: Divoom Aurabox + Timebox + TimeboxEvo [Update, kommunizieren funktioniert]  (Gelesen 7474 mal)

Offline schwatter

  • Full Member
  • ***
  • Beiträge: 258
Hallo zusammen,

da die LaMetric total überteuert ist, hier eine Alternative (wenn auch vielleicht nicht vollwertig).
Bis jetzt unterstützt das Perlscript von mumpitzstuff die Aurabox, TimeBox und TimeboxMini.
Unterstütze Funktionen sind im Github nachzulesen (Siehe Infos).

Ich teste gegenwärtig die Timebox-Evo. Schalten der Basicfunktionen ist schon möglich.


Infos

https://github.com/mumpitzstuff/fhem-Divoom

https://github.com/derHeinz/divoom-adapter

https://github.com/ScR4tCh/timebox

https://github.com/MarcG046/timebox


Onlinemessagegenerator von bigboss97

http://users.tpg.com.au/folksfun/timebox/


Rawcodebeispiele

Aurabox
DisplayOff 0104003200360002
DarkLight 010400323f750002
BrightLight 01040032d208030402
Time 0104004500490002
Temp 0104004503044a0002
OnlyColor 0104004503054b0002
Equalizer 0104004503064c0002
Pixelanimation 01040045044d0002
WalkingTriangle 01040045054e0002
SpinningTriangle 01040045064f0002
Countdown 0104004507500002
Blackscreen 0104004508510002

Timebox-Evo
DigitalUhrRot 010d004500010001000000ff0000530102
DigitalUhrGrün 010d00450001000100000000ff05580102
DigitalUhrBlau 010d0045000100010000000d00ff600102
DigitalUhrGelb 010d004500010001000000fff300460202
DigitalUhrOrange 010d004500010001000000f5a623120202
DigitalUhrHellblau 010d00450001000100000000e4ff370202
DigitalUhrRosa 010d004500010001000000ff00e5380202
DigitalUhrWeiß 010d004500010001000000ffffff510302
Rainbowclock 010d004500010101000000ffffff520302
Uhr 3 010d004500010201000000ffffff530302
Uhr 4 010d004500010301000000ffffff540302
Uhr 5 010d004500010401000000ffffff550302
Uhr 6 010d004500010501000000ffffff560302
StaticColorRosa 010d004501f800b8610001000000650202
StaticColorBlau 010d0045013773f5610001000000540202
StaticColorSoOrange 010d004501f67148610001000000640202
StaticColorSoGelb 010d004501d3f923610001000000a40202
StaticColorSoGrün 010d0045014ef9606100010000005c0202
StaticColorSoBlau 010d0045012f9ad16100010000004f0202
Animation1 01040045024b0002
Animation2 0105004503004d0002
Animation3 0105004503024f0002
Animation4 010500450303500002
Animation5 010500450304510002
Animation6 010500450307540002
Animation7 010500450308550002
Animation8 010500450309560002
Animation9 01050045030a570002
Animation10 01050045030b580002
Animation11 01050045030c590002
Animation12 01050045030d5a0002
Animation13 01050045030e5b0002
Animation14 01050045030f5c0002
Equalizer1 010d0045040b0000000000000000610002
Equalizer2 010d004504000000000000000000560002
Equalizer3 010d004504010000000000000000570002
Equalizer4 010d004504020000000000000000580002
Equalizer5 010d004504030000000000000000590002
Equalizer6 010d0045040400000000000000005a0002
Equalizer7 010d0045040500000000000000005b0002
Equalizer8 010d0045040600000000000000005c0002
Equalizer9 010d0045040700000000000000005d0002
Equalizer10 010d0045040800000000000000005e0002
Equalizer11 010d0045040900000000000000005f0002
Equalizer12 010d0045040a0000000000000000600002


Firmware

Für Aurabox, Timebox, TimeboxEvo und TimeboxMini.

Laut Infos, geht der Updater der neueren Firmware bei der Timebox nicht. Zum Updaten
soll das Burntool der älteren Firmware genommen werden.

https://www.dropbox.com/sh/gg02tdkzg9bgl85/AADVdinsjiNkvCNgpPfzxQpNa?dl=0

Update: Meine TimeboxEvo hat sich nach starten der Divoomapp sofort ein Update gezogen.
Die Dateien befanden sich auf dem Handy unter /sdcard/Divoom/update. Ich habe sie mal
mit hochgeladen. Benötigt werden sie vielleicht mal, wenn nix anderes mehr funktioniert um
die Box zu retten :)


!!!  Achtung, nach dem Update ändert sich wahrscheinlich die MAC  !!!


Testscript

Auf Basis von mumpitzstuff seinem Perlcode, meine Scriptsammlung.
Eure MAC muss in lib.pl unter

our $MAC = "XX:XX:XX:XX:XX:XX"; # your BoxMac
eingetragen werden. Außerdem muss der Ordner nach /opt/fhem.

https://www.dropbox.com/s/1z4wajo78i7v1pk/divoom.rar?dl=0


Damit das Script funktioniert benötigt es,
sudo apt install libnet-bluetooth-perl
sudo cpan install Imager


Was realisiere ich im Moment damit?

- Midnight, Box schaltet Display auf Dark.
- Kaffee fertig mit Sprachausgabe und Customanimation.
- Waschmaschine fertig mit Sprachausgabe und Customanimation.
- Trockner fertig mit Sprachausgabe und Customanimation.
- Temperatur schwelle meines Holzkessels mit Sprachausgabe und Animation für aufsteigende/absteigende Temp.
- MPD startet, Box schaltet von Uhr auf Equalizer. MPD stoppt, Box schaltet zurück auf Uhr.
- Allgemein Internetradio und Sprachausgabe


Fhemsetup (hier meine Aurabox)

AuraBox als Dummy
defmod AuraBox dummy
attr AuraBox devStateIcon ExampleAni:refresh Equalizer:rc_VOLUP Time:clock DisplayBright:FS20.on DisplayDark:FS20.off DisplayOff:light_light Countdown:time_timer
attr AuraBox icon taster_ch6_3
attr AuraBox room 2. Küche
attr AuraBox setList state:ExampleAni,Time,Temp,Equalizer,DisplayBright,DisplayDark,DisplayOff,Countdown,SpinningTriangle,WalkingTriangle,Pixelanimation,OnlyColor
attr AuraBox subType MPD
attr AuraBox webCmd state

Jedes Script als Notify. Hier nur ein Beispiel

defmod AuraBox_Ani01 notify AuraBox:ExampleAni {system("sudo perl /opt/fhem/divoom/ExampleAni.pl")}


Setup für Raspi3 + RaspiZeroW

Mein Setup läuft auf den 2 Raspis unter folgender Konfiguration.

Ich nutze Bluealsa. Damit funktioniert RFCOMM sowie auch Audio.
sudo apt-get install bluealsa

Pairing der Box per bluetoothctl. Hier ist ein super Tutorial.
https://www.sigmdel.ca/michel/ha/rpi/bluetooth_01_en.html

RFCOMM einrichten.
sudo nano /etc/systemd/system/dbus-org.bluez.service
Dort das eintragen.
ExecStart=/usr/lib/bluetooth/bluetoothd -C --noplugin=sap
ExecStartPost=/usr/bin/sdptool add SP

Für RFCOMM einen Service erstellen.
sudo nano /etc/systemd/system/rfcomm.service
Dort das eintragen.
[Unit]
Description=RFCOMM service
After=bluetooth.service
Requires=bluetooth.service

[Service]
ExecStart=/usr/bin/rfcomm watch remote_device_MAC 1
Restart=on-failure
RestartSec=5s
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Jetzt starten mit.
sudo systemctl enable rfcomm
Damit es nach dem Start funktioniert muss rc.local ergänzt werden
rfcomm bind 0 XX:XX:XX:XX:XX:XX 1Die "XX:XX:XX:XX:XX:XX" durch eure MAC der Divoom ersetzen.

Damit auch Audio funktioniert, asound.conf hinzufügen/bearbeiten im Verzeichnis /etc
pcm.!default {
        type plug
        slave.pcm {
                type bluealsa
                device "11:75:68:C9:7D:36"   #<- hier passende Mac des Speakers eintragen
                profile "a2dp"
delay 10000
        }
}

Jetzt nur noch.
shutdown -r now

Funktionsüberprüfung

root@raspberrypi:/opt/fhem/divoom# rfcomm
rfcomm0: 11:75:68:C9:7D:36 channel 1 clean

root@raspberrypi:/opt/fhem/divoom# sdptool browse 11:75:68:C9:7D:36
Browsing 11:75:68:C9:7D:36 ...
Service Name: Serial Port 1
Service RecHandle: 0x10004
Service Class ID List:
  "Serial Port" (0x1101)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 1

Channel = RFCOMM-Port
Channel ist wichtig für das Script. Im Moment schaut es so aus, als wenn
die Aurabox,Timebox und TimeboxMini Channel 4 benutzen, TimeboxEvo
aber Channel 1. Der Channel wird im Perlscript folgendermaßen angepasst.

Aurabox,Timebox und TimeboxMini
if (0 != $socket->connect($device, 4))
TimeboxEvo
if (0 != $socket->connect($device, 1))

Rawcodesniffing

Um Rawcodes der Divoomboxen zu sniffen, habe ich folgendes Setup verwendet.

Android 8.1

1. Bluetooth ein
2. Einstellungen-->System-->Entwickleroptionen-->Bluetooth HCI-Snoop-Protokoll aktivieren
3. Bluetooth aus
4. Bluetooth ein
5. Einstellungen-->System-->Entwickleroptionen-->Android-Debugging an
6. Einstellungen-->System-->Entwickleroptionen-->Debugging-Benachrichtigung an
7. Einstellungen-->System-->Entwickleroptionen-->ADB über Netzwerk an
8. Irgendwas kurzes in der Divoomapp zur Timebox senden oder ändern des Setups.

In Windows

1. adb devices
2. adb connect ipDesHandys
3. adb shell
4. su
5. chmod 777 /data/misc/bluetooth/logs/btsnoop_hci.log
6. exit
7. adb pull /data/misc/bluetooth/logs/btsnoop_hci.log
8. btsnoop_hci.log befindet sich im ADB-Verzeichnis auf Windows
9. Log in Wireshark öffnen und nach Protocol sortieren.

Tip:
Durch aus- und wieder anschalten von Bluetooth wird der Log im Handy genullt.
Sehr hilfreich, um schnell die gewünschten Rawmessages zu bekommen.

Wenn nichts funktioniert, dann diese Option.

- Auf Android unter Entwickleroptionen "Bluetooth HCI-Snoop-Protokoll aktivieren" anschalten.
- Außerdem "Android-Debugging" und "ADB über Netzwerk" aktivieren.
- Neustart des Handys und per Bluetooth mit der Divoombox verbinden.
- Dann gezielt Funktionen durchschalten.
- Jetzt per ADB einen Bugreport erstellen.
adb devices
adb connect "Ip des Handys"
adb bugreport anewbugreportfolder
- Nun wurde eine Zipdatei erstellt mit dem Namen anewbugreportfolder.zip.
- Das Zip öffnen und entpacken.
- In dem Ordner ADB\anewbugreportfolder\FS\data\misc\bluetooth\logs befindet sich der Log btsnoop_hci.log.
- Diesen mit dem Programm Wireshark öffnen.
- Dort oben in der Bar auf "Protocol" klicken und dann ganz runterscrollen.
- Jetzt sollte direkt "SPP" kommen.
- Wichtig ist als "Source" euer Handy.
- Anklicken und nun nur noch "Bluetooth SPP Packet" ausklappen. Dort findet ihr dann einen Hexstream wie diesen
Data:010d004500010001000000f5a623120202
« Letzte Änderung: 03 Dezember 2018, 22:29:31 von schwatter »

Offline jonah

  • New Member
  • *
  • Beiträge: 26
Antw:Divoom Aurabox + Timebox
« Antwort #1 am: 08 Januar 2018, 12:38:12 »
Hej. Ich habe auch eine TimeBox und fände eine Möglichkeit, sie in fhem einzubinden, mega gut.

Gesendet von meinem ONEPLUS A3003 mit Tapatalk


Offline achtball

  • Newbie
  • Beiträge: 2
Antw:Divoom Aurabox + Timebox
« Antwort #2 am: 14 Januar 2018, 21:39:04 »
Evtl. ist dies hier interessant:
AuraBox:
https://github.com/derHeinz/divoom-adapter
TimeBox:
https://github.com/ScR4tCh/timebox

Mein heutiger Versuch mit meiner AuraBox zu "sprechen" hat jedoch nicht auf Anhieb geklappt.

Evtl. schafft es jemand ein Fhem-Modul daraus zu stricken.

Die Einsatzmöglichkeiten der Boxen als Statusdisplay oder zur Notifkation sind sehr vielversprechend, wie ich finde.

Viele Grüße,

achtball
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline schwatter

  • Full Member
  • ***
  • Beiträge: 258
Antw:Divoom Aurabox + Timebox
« Antwort #3 am: 17 Januar 2018, 22:15:39 »
Für 36€ bei Amazon gebraucht mit sehr gut geschossen.
Ich probier mich auch mal   :D

Offline schwatter

  • Full Member
  • ***
  • Beiträge: 258
Antw:Divoom Aurabox + Timebox
« Antwort #4 am: 20 Januar 2018, 11:37:03 »
Meine Aurabox ist da. Jetzt hab ich den letzten Abend damit verbracht, die Box als Bluetoothlautsprecher an meinen Raspi
zu betreiben. Koppeln klappt wunderbar, nur die Einrichtung mit Pulseaudio klappt nicht. Das Problem ist wohl, das Pulseaudio
nicht mit einem Headless-Raspberry zurechtkommt. Also ein generelles Problem.
Ich habe schon alles an Anleitungen durchsucht....komme aber nicht weiter. Vielleicht hat wer einen Tip oder weiß von
einer Pulseaudioalternative.

Offline Hembo

  • New Member
  • *
  • Beiträge: 5
Antw:Divoom Aurabox + Timebox
« Antwort #5 am: 01 März 2018, 20:53:09 »
Ich bin nun auch im Club und fände die Timebox klasse ... Hat schon jemand Fortschritte gemacht ?

Offline schwatter

  • Full Member
  • ***
  • Beiträge: 258
Antw:Divoom Aurabox + Timebox
« Antwort #6 am: 15 September 2018, 22:17:48 »
Habe mal wieder Lust gehabt am Install zu basteln. Endlich mal Erfolg.
Setup ist ein Raspi3 mit aktuellem Stretch Headless.

Als erstes die Zip vom Heinz

https://github.com/derHeinz/divoom-adapter/archive/master.zip
Diese habe ich nach /home/pi/divoom entpackt. Im Anschluss war es etwas tricky alle Pakete
zu finden. Hier ist hoffentlich meine komplette Liste.

sudo apt-get update
sudo apt-get install python-pip
pip install pybluez
sudo apt-get install libboost-python-dev libboost-thread-dev libbluetooth-dev libglib2.0-dev
sudo apt-get install python-dev python-setuptools
sudo apt-get install libjpeg62
sudo apt-get install libjpeg62-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libfreetype6-dev
sudo apt-get install liblcms1-dev
pip install pillow
pip install image

Danach gab es noch Probleme mit Rfcomm.
Folgendes musste ich anpassen.

sudo nano /etc/systemd/system/dbus-org.bluez.service

Dort das eintragen.

ExecStart=/usr/lib/bluetooth/bluetoothd -C --noplugin=sap
ExecStartPost=/usr/bin/sdptool add SP

Dann den Service erstellen.

sudo nano /etc/systemd/system/rfcomm.service
mit folgenden Inhalt.

[Unit]
Description=RFCOMM service
After=bluetooth.service
Requires=bluetooth.service

[Service]
ExecStart=/usr/bin/rfcomm watch remote_device_MAC 1
Restart=on-failure
RestartSec=5s
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Danach ein,

sudo systemctl enable rfcomm
Und in die  /etc/rc.local

rfcomm bind 0 XX:XX:XX:XX:XX:XX 1
Die "XX:XX:XX:XX:XX:XX" durch eure MAC der Divoom ersetzen.

Jetzt "shutdown -r now"




Die letzte Hürde war, die MAC direkt in die example.py (als Beispiel) einzutragen. Dort nach

DIVOMM_ADR = sys.argv[1]
und durch

DIVOMM_ADR = "XX:XX:XX:XX:XX:XX"  # sys.argv[1]
ersetzen.

Endlich funktioniert die Ausgabe über Terminal, wenn folgendes eingegeben wird.

root@raspiFhem:/home/pi/divoom# python example.py
firework
showing files
blinking
show time
show temperature
write hello world
scrolling
program firework
« Letzte Änderung: 15 September 2018, 22:20:43 von schwatter »

Offline schwatter

  • Full Member
  • ***
  • Beiträge: 258
Antw:Divoom Aurabox + Timebox
« Antwort #7 am: 16 September 2018, 11:40:15 »
So, auch Divoom_Timebox_CLI funktioniert. Bei mir natürlich nur eingeschrenkt, da ich die Aurabox habe.

Folgendes musste ich zusätzlich installieren.

python -m pip install appdirs
python -m pip install click
python -m pip install click_spinner
python -m pip install python-dateutil
python -m pip install colour


Danach habe ich noch die MAC in der timebox.py unter "KNOWN_DEVICES = []" eingetragen.

KNOWN_DEVICES = ["XX:XX:XX:XX:XX:XX"]

root@raspiFhem:/home/pi/divoom1/timebox# python timebox.py
Usage: timebox.py [OPTIONS] COMMAND [ARGS]...

Options:
  --address TEXT
  --debug
  --disconnect
  --keepconnected
  --help           Show this message and exit.

Commands:
  animation  display_animation
  clock      display time
  fmradio    control fmradio
  image      display_image
  raw        raw message
  settime    set time
  temp       display temperature, set color
  view       change view
  volume     set volume
root@raspiFhem:/home/pi/divoom1/timebox# python timebox.py clock
-checking device XX:XX:XX:XX:XX:XX                                             root@raspiFhem:/home/pi/divoom1/timebox# python timebox.py -- debug clock
Usage: timebox.py [OPTIONS] COMMAND [ARGS]...

Error: No such command "debug".
root@raspiFhem:/home/pi/divoom1/timebox# python timebox.py --debug clock
using knwon devices to find timebox
-checking device XX:XX:XX:XX:XX:XX                                             connecting to XX:XX:XX:XX:XX:XX
-> ['01', '04', '00', '45', '00', '49', '00', '02']
<- ['01', '06', '00', '04', '45', '55', '00', 'a4', '00', '02']
root@raspiFhem:/home/pi/divoom1/timebox#


Toll ist, das Timebox CLI Rawdata senden ermöglicht. Mal sehen wie es funktioniert, ich hatte Rawdata von der Debugausgabe
kopiert und versucht zu senden, klappte leider nicht. Ich denke, es liegt an der Formatierung. Vielleicht wer einen Tip?

edit

Zwischen Celsius und Fahrenheit switchen


Celsius
python timebox.py --address XX:XX:XX:XX:XX:XXtemp --color "#ff0000"
Fahrenheit
python timebox.py --address XX:XX:XX:XX:XX:XX temp --color "#ff0000" --f



« Letzte Änderung: 16 September 2018, 12:00:25 von schwatter »

Offline mumpitzstuff

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1163
Antw:Divoom Aurabox + Timebox [Update, kommunizieren funktioniert]
« Antwort #8 am: 16 September 2018, 12:42:45 »
Damit hatte ich auch rumgespielt, allerdings kann man kaum was machen. Simple Timer setzen oder sowas funktioniert leider nicht. Und Bilder hat mir das Ding auch nur immer 1-2s lang angezeigt und hat dann wieder auf die Uhrzeit umgeschaltet. Insgesamt war die Steuerung der Timebox damit kaum möglich. Wie ist dein Eindruck?

Offline schwatter

  • Full Member
  • ***
  • Beiträge: 258
Antw:Divoom Aurabox + Timebox [Update, kommunizieren funktioniert]
« Antwort #9 am: 16 September 2018, 13:53:35 »
Mh, ich weiß noch nicht, was ich davon halten soll. Finde aber, Potenzial ist da.
Das Video macht Lust auf mehr.

https://www.youtube.com/watch?v=AxLrxUsjFd8&index=4&list=PLq47UUwc4xVlnbMmUfIOsWvHgIruN_hCf&t=0s

Auch gerade, weil LaMetric so teuer ist. Basteln ist immer möglich, aber Out-Of-The-Box und günstig fehlt einfach.

edit:
Hier gibts etwas mehr Doku.

https://github.com/MarcG046/timebox/tree/master/doc

edit2:

etwas weiter mit RAW. Einfach alle Zahlen zusammenfügen und senden.

Schaltet auf Uhr

python timebox.py --debug --address XX:XX:XX:XX:XX:XX raw 0104004500490002


Schaltet auf Temp

python timebox.py --debug --address XX:XX:XX:XX:XX:XX raw 0104004503044a0002



« Letzte Änderung: 16 September 2018, 14:14:12 von schwatter »

Offline schwatter

  • Full Member
  • ***
  • Beiträge: 258
Antw:Divoom Aurabox + Timebox [Update, kommunizieren funktioniert]
« Antwort #10 am: 16 September 2018, 15:23:42 »
Habe noch ein bisschen experimentiert. Hier z.B ein paar Rawcommands für meine Aurabox.

DisplayOff     python timebox.py --debug --address XX:XX:XX:XX:XX:XX raw 0104003200360002
DarkLight     python timebox.py --debug --address XX:XX:XX:XX:XX:XX raw 010400323f750002
BrightLight python timebox.py --debug --address XX:XX:XX:XX:XX:XX raw 01040032d208030402
ShowEqualizer python timebox.py --debug --address XX:XX:XX:XX:XX:XX raw 010500450306004d0002
ShowTemp python timebox.py --debug --address XX:XX:XX:XX:XX:XX raw 0104004503044a0002
ShowTime python timebox.py --debug --address XX:XX:XX:XX:XX:XX raw 0104004500490002
TriangleAni python timebox.py --debug --address XX:XX:XX:XX:XX:XX raw 01050045030900500002

Und hier eine fertige Waschmaschinen.py von mir. Gehört ins das gleiche Verzeichnis des Aura_CLI's von derHeinz.
Damit läuft ein Runningtext mit "Waschmaschine ist fertig" in rot.

import sys
import time
import divoom_protocol
import divoom_device
import divoom_image


DIVOMM_ADR = "XX:XX:XX:XX:XX:XX" # sys.argv[1]
thing = divoom_protocol.DivoomAuraBoxProtocol()
dev = divoom_device.DivoomDevice(DIVOMM_ADR)

def washer_finished():
img = divoom_image.draw_text_to_image(text="WASHER", color=divoom_image.BMP_RED, size=(70, 10))
sliced_images = divoom_image.horizontal_slices(img)
# create divoom packages
raw_data_packages = []
for img in sliced_images:
raw_data_packages.append(divoom_image.to_divoom_data(img))
# create BT divoom packages
pkgs = thing.create_animation_packages(raw_data_packages, 1)
for i in range(0, len(pkgs)):
dev.send(pkgs[i])

dev.connect()
print("write washer finished")
washer_finished()
time.sleep(30)
dev.disconnect()


edit:

Habe mal den ganzen Ordner nach /opt/fhem verschoben.
Aufrufen aus Fhem klappt auch.

{system("sudo python /opt/fhem/divoom/waschmaschine.py")}


edit2:

Ok, stelle gerade fest, das der Text nicht komplett durchläuft. Abgehackt und fängt von vorne an.


« Letzte Änderung: 17 September 2018, 13:44:05 von schwatter »

Offline schwatter

  • Full Member
  • ***
  • Beiträge: 258
Antw:Divoom Aurabox + Timebox [Update, kommunizieren funktioniert]
« Antwort #11 am: 16 September 2018, 20:10:47 »
Hier eine blink.py, diese habe ich aus der example.py erstellt. Damit wird ein Symbol blinkend signalisiert. Im Anschluss wird wieder zur Uhr
geschaltet.

import divoom_protocol
import divoom_device
import divoom_image

from PIL import Image
import time
import sys
import os
import bluetooth

# create time
hour12 = time.strftime('%I')
minute = time.strftime('%M')
second = time.strftime('%S')


DIVOMM_ADR = "11:75:58:6D:02:93" # sys.argv[1]
thing = divoom_protocol.DivoomAuraBoxProtocol()
dev = divoom_device.DivoomDevice(DIVOMM_ADR)

def imagename(name):
return os.path.join(os.path.dirname(__file__), "images", name)

def show_files(filelist, delay=1):
for f in filelist:
bytes = divoom_image.image_to_divoom(f)
pkg = thing.create_image_package(bytes)
dev.send(pkg)
time.sleep(delay)

def blink(filename):
for c in range(1, 20):
f = ""
if (c % 2 == 0):
f = filename
else:
f = imagename("black.bmp")
bytes = divoom_image.image_to_divoom(f)
pkg = thing.create_image_package(bytes)
dev.send(pkg)
time.sleep(0.5)

def old_to_new(old_img, new_img, way=1):

sliced_images = divoom_image.scroll_between(old_img, new_img, way)
pkgs = []
# prepare the data before sending it
for img in sliced_images:
img_raw_bytes = divoom_image.to_divoom_data(img)
img_bytes = thing.create_image_package(img_raw_bytes)
pkgs.append(img_bytes)
# send single images to divoom
for pkg in pkgs :
dev.send(pkg )
time.sleep(0.1)


dev.connect()
files = [imagename("example7.bmp")]
print("showing files")
show_files(files)

print("blinking")
blink(imagename("example7.bmp"))
time.sleep(3)

print("setting time to "  + hour12 + ":" + minute + ":" + second)
dev.send(thing.create_set_time_package(hour12, minute, second))
print("showing time")
dev.send(thing.create_time_package())
time.sleep(5)

dev.disconnect()

root@raspiFhem:/opt/fhem/divoom# python blink.py
showing files
blinking
setting time to 08:04:50
showing time
root@raspiFhem:/opt/fhem/divoom#

Offline mumpitzstuff

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1163
Antw:Divoom Aurabox + Timebox [Update, kommunizieren funktioniert]
« Antwort #12 am: 17 September 2018, 00:55:14 »
Ich habe leider die Timebox und keine Aurabox. Die Bibliothek dafür ist sehr viel eingeschränkter wie mir scheint. Schrift kann ich dort gar nicht einstellen und auch keine Zeit setzen. Wie das Protokoll funktioniert, ist mir soweit auch klar und einfache Dinge sollten leicht umsetzbar sein. Ich hatte bisher keine Zeit gefunden, aber ich wollte immer mal versuchen Perl anstatt Python zu verwenden, um dann im ersten Schritt RAW Kommandos absetzen zu können. Ich werde mal versuchen die Zeit dafür zu finden. Wenn man erst mal eine Basis hat, dann kann man die sicher leicht erweitern.
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline schwatter

  • Full Member
  • ***
  • Beiträge: 258
Antw:Divoom Aurabox + Timebox [Update, kommunizieren funktioniert]
« Antwort #13 am: 17 September 2018, 13:36:51 »
Für alle Interessierten,

habe in dem Youtubevideo von bigboss97 einen Link gesehen.
Dieser führt zu seinem Onlinemessagegenerator.

http://users.tpg.com.au/folksfun/timebox/

edit:

Der Gen. ist nicht schlecht. Um die Boxfunktionen durchzuschalten, benötigt man nur bei F1=0x45 und F2=0x00 (und dann fortlaufend).

AuraBox (Timebox hat bestimmt eine abweichende Reihenfolge)
DisplayOff 0104003200360002
DarkLight 010400323f750002
BrightLight 01040032d208030402
Time 0104004500490002
Temp 0104004503044a0002
OnlyColor 0104004503054b0002
Equalizer 0104004503064c0002
Pixelanimation 01040045044d0002
WalkingTriangle 01040045054e0002
SpinningTriangle 01040045064f0002
Countdown 0104004507500002
Blackscreen 0104004508510002



« Letzte Änderung: 17 September 2018, 20:27:05 von schwatter »

Offline mumpitzstuff

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1163
Antw:Divoom Aurabox + Timebox [Update, kommunizieren funktioniert]
« Antwort #14 am: 18 September 2018, 10:39:14 »
Habs gestern mal probiert und wie zu erwarten kriege ich RFCOMM nicht zum laufen unter Linux. Pairen scheint irgendwie noch zu gehen, denn das Bluetooth Symbol verschwindet auf der Timebox, aber dann kann ich weder Daten senden noch empfangen. Der übliche Krampf mit Bluetooth unter Linux (Debian Stretch).
Auf meinem Android Handy  hingegen kann ich über die App pairen und dann über andere Tools manuell RAW Nachrichten erstellen und absenden. Das ist aber leider nichts, was sich irgendwie sinnvoll in FHEM nutzen lassen würde.