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

Offline schwatter

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

da die LaMetric total überteuert ist, habe ich auf Github nach Projekten zu Divoom gesucht.
Folgendes habe ich gefunden:


### Infos ###

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/


Einige Rawcodebeispiele

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


### Firmware ###

Für Aurabox, Timebox 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


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


### Testscript ###

Auf Basis von mumpitzstuff seinem ersten 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


Was realisiere ich im Moment damit?

- MPD startet, Box schaltet von Uhr auf Equalizer. MPD stoppt, Box schaltet zurück auf Uhr.
- Midnight, Box schaltet Display auf Dark.
- Bei TTS schaltet die Box von Uhr auf Equalizer. Nach Ende, schaltet die Box auf Uhr.


### Mein Fhemsetup als Beispiel ###

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")}

« Letzte Änderung: 12 November 2018, 21:45:14 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: 214
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: 214
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: 214
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: 214
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: 1128
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: 214
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: 214
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: 214
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: 1128
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: 214
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: 1128
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.