Je l’ai depuis hier et c’est un objet super intéressant. En attendant de créer tout les scénarios qui qui le gère, j’avais besoin d’avoir un résultat visible dans Jeedom.
C’est en réussissant à avoir la map du Dreame X40 que j’ai réussi à appliqué le même process pour obtenir l’image en temps réel pour le Awtrix (grace à Gemini^^) :
1- création d’un fichier nommé : get_ulanzi_screen.php
Contenu (met l’IP de ton équipement à la place de XX.XX.XX.XX^^) :
Résumé
<?php
$ulanzi_ip = "XX.XX.XX.XX";
$data = file_get_contents("http://" . $ulanzi_ip . "/api/screen");
$pixels = json_decode($data);
if (is_array($pixels) && count($pixels) == 256) {
// On crée une image vide de 32x8 pixels
$img = imagecreatetruecolor(32, 8);
// On désactive l'alpha blending pour avoir des couleurs nettes
imagealphablending($img, false);
imagesavealpha($img, true);
foreach ($pixels as $index => $color) {
$x = $index % 32; // Colonne
$y = floor($index / 32); // Ligne
// Conversion du format décimal Awtrix vers RGB
$r = ($color >> 16) & 0xFF;
$g = ($color >> 8) & 0xFF;
$b = $color & 0xFF;
$pixelColor = imagecolorallocate($img, $r, $g, $b);
imagesetpixel($img, $x, $y, $pixelColor);
}
// Sortie de l'image au format PNG
header('Content-Type: image/png');
imagepng($img);
imagedestroy($img);
} else {
echo "Erreur : Impossible de lire les donnees de l'Ulanzi.";
}
?>
Je l’ai placé dans /plugins/script/data/get_ulanzi_screen.php mais sinon met le ou tu veux mais il faudra que tu change la source dans les étapes ensuite…
2- quand c’est fait, essai de voir le résultat à cette adresse dans une page web:(http://IPdetonjeedom/plugins/script/data/get_ulanzi_screen.php)
Tu devrait voir un résultat tout minuscule mais fonctionnelle.
3- dans le plugin HTML Display, crée un équipement avec ceci mais veille à ce qu’il appelle le fichier .php au bon endroit si tu l’a changé (mettre 2 fois sa source dans le code):

Résumé
<div style="width:100%; text-align:center; background-color:#000; padding:20px; border-radius:15px;">
<div style="display:inline-block; background:#050505; padding:8px; border-radius:5px; box-shadow: 0 0 15px rgba(0,0,0,1);">
<img id="awtrix_live_view"
src="/plugins/script/data/get_ulanzi_screen.php"
style="width:480px; height:120px; image-rendering: pixelated; display:block; border: 1px solid #333;">
</div>
<div id="awtrix_timer" style="color:#444; font-size:9px; margin-top:5px; font-family:monospace;">Flux actif</div>
</div>
<script>
// Utilisation d'une fonction nommée pour éviter les conflits
function refreshAwtrix() {
var img = document.getElementById('awtrix_live_view');
if (img) {
// Le paramètre 'v=' avec le temps actuel force le navigateur à ignorer le cache
var timestamp = new Date().getTime();
img.src = "/plugins/script/data/get_ulanzi_screen.php?v=" + timestamp;
// Petit indicateur visuel de mise à jour (discret)
document.getElementById('awtrix_timer').innerText = "MàJ: " + new Date().toLocaleTimeString();
}
}
// On lance le rafraîchissement toutes les 2000ms (2 secondes)
// On vide l'intervalle précédent s'il existe pour éviter de saturer le navigateur
if (window.awtrixInterval) clearInterval(window.awtrixInterval);
window.awtrixInterval = setInterval(refreshAwtrix, 2000);
</script>```
4- Et normalement tu aura donc le visuel en temps réel actualisé toutes les secondes dans ton équipement:
Avis aux experts, concernant la charge ou la sécurité, ça devrait être mieux que les iframe non ?