initial commit

- added readme
- added recharge scripts
- added dots simple test script
- added images, transitions and animations script
This commit is contained in:
KS_HTK 2025-08-20 23:15:15 +02:00
commit 666a377e32
Signed by: KS_HTK
GPG key ID: B78139943FC60E2D
7 changed files with 404 additions and 0 deletions

81
recharge2.py Normal file
View file

@ -0,0 +1,81 @@
"""
Alternative animation for the flipdot recharge party
"""
# requires: python-fluepdot, python-dotenv
import os
from dotenv import load_dotenv
from fluepdot import Fluepdot, Mode
from time import sleep
battery = [
" XXXXXXXXXXXX XXXXXXXXXXX ",
"XX XX ",
"X X ",
"X X ",
"X XX",
"X XX",
"X X ",
"X X ",
"XX XX ",
" XXXXXXXXXXX XXXXXXXXXXXX "]
lightning=[" X ",
" XX ",
" XXX ",
" XXX ",
" XXXX ",
"XXXXXXXX "]
def get_lightning(level: int) -> str:
if level < 0:
level = 0
elif level > 12:
level = 12
rtn = "\n".rjust(19)+"\n".rjust(19)
for i in range(0, level):
line = lightning[i] if i < len(lightning) else lightning[len(lightning)-i-1][::-1]
rtn = line.rjust(19)+"\n"+rtn
while rtn.count("\n") < 16:
rtn="\n".rjust(19)+rtn
return rtn
def get_battery(level: int) -> str:
lightning = get_lightning(level).split("\n")[:-1]
rtn = ""
for ln in range(0, len(lightning)):
if ln < 3:
rtn+=lightning[ln].ljust(30)
elif ln > 2+len(battery):
rtn+=lightning[ln].ljust(30)
else:
for cind in range(0, len(battery[0])):
try:
rtn += "X" if battery[ln-3][cind] == "X" or lightning[ln][cind] == "X" else " "
except IndexError:
rtn += " "
rtn += "\n"
return rtn
if __name__=="__main__":
load_dotenv()
hostname = os.getenv("DOTS_HOST")
fd = Fluepdot(f"http://{hostname}")
fd.set_mode(Mode.DIFFERENTIAL)
l, h = fd.get_size()
while True:
for i in range(0, 12):
bat = get_battery(i).split("\n")[:-1]
bat = list(map(lambda x: x.rjust(l), bat))
bat = "\n".join(bat)+"\n"
fd.post_frame_raw(frame=bat)
sleep(.5)
for i in range(12, 0, -1):
bat = get_battery(i).split("\n")[:-1]
bat = list(map(lambda x: x.rjust(l), bat))
bat = "\n".join(bat)+"\n"
fd.post_frame_raw(frame=bat)
sleep(.5)