This flow was submitted before accounts existed, so nobody owns it yet. If you submitted it, open the edit link you were given — it still works — and you can attach the flow to an account from there. There is no deadline, and attaching it retires the link for good.
Valentine’s Heart Animation
This script creates an animated heart sequence on the AWTRIX3 display, perfectly timed to bring Valentine’s Day cheer!
| System | Domoticz |
|---|---|
| Firmware | AWTRIX 3 |
| Topic | Miscellaneous |
| Built by | Galadril |
| File | XjzBOy0woQl7.json · 4.7 KB |
| Icons | — |
| Published | 7 Jan 2025 · updated 7 Jan 2025 |
| Downloads | 22 |
❤️ AWTRIX3 Valentine’s Heart Animation Script ❤️
💡 Script Purpose:
This script creates an animated heart sequence on the AWTRIX3 display, perfectly timed to bring Valentine’s Day cheer!
⚙️ Script Activation:
The script is always active by default, as indicated by active = true.
🎛️ Trigger:
The animation is triggered by a device called 'SwithValentine', ensuring the heart animation starts only when manually activated.
📝 Logging:
Custom logging is used with a marker "AWTRIX_HEART" for easy identification of Valentine-specific log entries.
🔍 Conditions:
- The device
"AWTRIX3 - Power"is checked to ensure the AWTRIX3 display is powered on:
🛑 If"AWTRIX3 - Power"is not found or is Off, the script halts execution. - The device
"AWTRIX3 - Send Custom App"is verified:
🛑 If this device is not found, an error is logged, and the script stops further actions.
🚀 Execution Flow:
Once the conditions are met:
- A sequence of five animated heart frames is prepared as JSON payloads.
- Each frame contains a precise arrangement of pixel data (
"dp") with colors (e.g.,"#971B23"for deep red and"#FFFF00"for yellow accents). - These frames are explicitly sent to the AWTRIX3 device (
AWTRIX3 - Send Custom App) with timed intervals using.afterSec()for smooth animation.
🎥 Animation Details:
- The heart evolves frame by frame, starting as a small core and expanding into a detailed, glowing heart with outer yellow highlights.
- The animation loops seamlessly with a dynamic flow and vibrant red hues, creating an engaging visual display.
✅ Final Touch:
A log entry "Animation scheduling completed." confirms the animation setup is successfully scheduled.
🌹 Valentine’s Special:
This creative script ensures your AWTRIX3 display spreads love and warmth, making it a delightful centerpiece for Valentine’s Day celebrations!
🔗 More Information:
XjzBOy0woQl7.json
return {
active = true,
on = {
devices = {
'SwithValentine'
}
},
logging = {
level = domoticz.LOG_INFO,
marker = "AWTRIX_HEART"
},
execute = function(domoticz)
local appDevice = domoticz.devices('AWTRIX3 - Send Custom App')
if not appDevice then
domoticz.log("AWTRIX3 - Send Custom App device not found", domoticz.LOG_ERROR)
return
end
-- JSON payloads for the animation steps (as strings)
local animationFrames = {
-- Start of Heart (as a JSON string)
'{"draw":[{"dp":[14,3,"#971B23"]},{"dp":[15,3,"#971B23"]},{"dp":[13,4,"#971B23"]},{"dp":[16,4,"#971B23"]},{"dp":[12,5,"#971B23"]},{"dp":[17,5,"#971B23"]},{"dp":[13,6,"#971B23"]},{"dp":[16,6,"#971B23"]},{"dp":[14,7,"#971B23"]},{"dp":[15,7,"#971B23"]}]}',
'{"draw":[{"dp":[13,2,"#971B23"]},{"dp":[14,2,"#971B23"]},{"dp":[15,2,"#971B23"]},{"dp":[16,2,"#971B23"]},{"dp":[12,3,"#971B23"]},{"dp":[17,3,"#971B23"]},{"dp":[11,4,"#971B23"]},{"dp":[18,4,"#971B23"]},{"dp":[12,5,"#971B23"]},{"dp":[17,5,"#971B23"]},{"dp":[13,6,"#971B23"]},{"dp":[16,6,"#971B23"]},{"dp":[14,7,"#971B23"]},{"dp":[15,7,"#971B23"]}]}',
'{"draw":[{"dp":[12,1,"#971B23"]},{"dp":[13,1,"#971B23"]},{"dp":[16,1,"#971B23"]},{"dp":[17,1,"#971B23"]},{"dp":[11,2,"#971B23"]},{"dp":[14,2,"#971B23"]},{"dp":[15,2,"#971B23"]},{"dp":[18,2,"#971B23"]},{"dp":[10,3,"#971B23"]},{"dp":[19,3,"#971B23"]},{"dp":[11,4,"#971B23"]},{"dp":[18,4,"#971B23"]},{"dp":[12,5,"#971B23"]},{"dp":[17,5,"#971B23"]},{"dp":[13,6,"#971B23"]},{"dp":[16,6,"#971B23"]},{"dp":[14,7,"#971B23"]},{"dp":[15,7,"#971B23"]}]}',
'{"draw":[{"dp":[12,1,"#971B23"]},{"dp":[13,1,"#971B23"]},{"dp":[16,1,"#971B23"]},{"dp":[17,1,"#971B23"]},{"dp":[11,2,"#971B23"]},{"dp":[12,2,"#FFFFFF"]},{"dp":[13,2,"#FFFFFF"]},{"dp":[14,2,"#971B23"]},{"dp":[15,2,"#971B23"]},{"dp":[16,2,"#FF0000"]},{"dp":[17,2,"#FF0000"]},{"dp":[18,2,"#971B23"]},{"dp":[10,3,"#971B23"]},{"dp":[11,3,"#FF0000"]},{"dp":[12,3,"#FFFFFF"]},{"dp":[13,3,"#FF0000"]},{"dp":[14,3,"#FF0000"]},{"dp":[15,3,"#FF0000"]},{"dp":[16,3,"#FF0000"]},{"dp":[17,3,"#FF0000"]},{"dp":[18,3,"#D01B23"]},{"dp":[19,3,"#971B23"]},{"dp":[11,4,"#971B23"]},{"dp":[12,4,"#FF0000"]},{"dp":[13,4,"#FF0000"]},{"dp":[14,4,"#FF0000"]},{"dp":[15,4,"#FF0000"]},{"dp":[16,4,"#FF0000"]},{"dp":[17,4,"#D01B23"]},{"dp":[18,4,"#971B23"]},{"dp":[12,5,"#971B23"]},{"dp":[13,5,"#FF0000"]},{"dp":[14,5,"#FF0000"]},{"dp":[15,5,"#FF0000"]},{"dp":[16,5,"#D01B23"]},{"dp":[17,5,"#971B23"]},{"dp":[13,6,"#971B23"]},{"dp":[14,6,"#FF0000"]},{"dp":[15,6,"#D01B23"]},{"dp":[16,6,"#971B23"]},{"dp":[14,7,"#971B23"]},{"dp":[15,7,"#971B23"]}]}',
'{"draw":[{"dp":[12,1,"#971B23"]},{"dp":[13,1,"#971B23"]},{"dp":[16,1,"#971B23"]},{"dp":[17,1,"#971B23"]},{"dp":[11,2,"#971B23"]},{"dp":[12,2,"#FFFFFF"]},{"dp":[13,2,"#FFFFFF"]},{"dp":[14,2,"#971B23"]},{"dp":[15,2,"#971B23"]},{"dp":[16,2,"#FF0000"]},{"dp":[17,2,"#FF0000"]},{"dp":[18,2,"#971B23"]},{"dp":[10,3,"#971B23"]},{"dp":[11,3,"#FF0000"]},{"dp":[12,3,"#FFFFFF"]},{"dp":[13,3,"#FF0000"]},{"dp":[14,3,"#FF0000"]},{"dp":[15,3,"#FF0000"]},{"dp":[16,3,"#FF0000"]},{"dp":[17,3,"#FF0000"]},{"dp":[18,3,"#D01B23"]},{"dp":[19,3,"#971B23"]},{"dp":[11,4,"#971B23"]},{"dp":[12,4,"#FF0000"]},{"dp":[13,4,"#FF0000"]},{"dp":[14,4,"#FF0000"]},{"dp":[15,4,"#FF0000"]},{"dp":[16,4,"#FF0000"]},{"dp":[17,4,"#D01B23"]},{"dp":[18,4,"#971B23"]},{"dp":[12,5,"#971B23"]},{"dp":[13,5,"#FF0000"]},{"dp":[14,5,"#FF0000"]},{"dp":[15,5,"#FF0000"]},{"dp":[16,5,"#D01B23"]},{"dp":[17,5,"#971B23"]},{"dp":[13,6,"#971B23"]},{"dp":[14,6,"#FF0000"]},{"dp":[15,6,"#D01B23"]},{"dp":[16,6,"#971B23"]},{"dp":[14,7,"#971B23"]},{"dp":[15,7,"#971B23"]},{"dp":[12,0,"#FFFF00"]},{"dp":[17,0,"#FFFF00"]},{"dp":[10,1,"#FFFF00"]},{"dp":[19,1,"#FFFF00"]},{"dp":[9,3,"#FFFF00"]},{"dp":[20,3,"#FFFF00"]},{"dp":[10,5,"#FFFF00"]},{"dp":[19,5,"#FFFF00"]},{"dp":[12,8,"#FFFF00"]},{"dp":[17,8,"#FFFF00"]}]}'
}
domoticz.log("AWTRIX3 turned on, starting heart animation.", domoticz.LOG_INFO)
-- Explicitly schedule each frame update
appDevice.setDescription(animationFrames[1]).afterSec(0.5)
appDevice.switchOn().afterSec(1)
appDevice.setDescription(animationFrames[2]).afterSec(1.5)
appDevice.switchOn().afterSec(2)
appDevice.setDescription(animationFrames[3]).afterSec(2.5)
appDevice.switchOn().afterSec(3)
appDevice.setDescription(animationFrames[4]).afterSec(3.5)
appDevice.switchOn().afterSec(4)
appDevice.setDescription(animationFrames[5]).afterSec(4)
appDevice.switchOn().afterSec(4.5)
domoticz.log("Animation scheduling completed.", domoticz.LOG_INFO)
end
}
More flows for Domoticz or Miscellaneous
Something wrong with this flow? Report it.