Awtrix - Idées / Cas d'usage

Bonjour à tous,

J’ouvre ce post, pour échanger sur des cas d’usages / scénario sur Awtrix. mais en soit ca peut être appliquer à d’autres afficheur.

Perso j’utilise le plugin JMQTT et des scenarios pour orchestrer tout ca.

Je mets 2 posts qui donnent de bonnes infos pour pouvoir piloter l’Awtrix.

De mon coté j’ai ces cas d’usages :

  • Date / Heure
  • Température Intérieur
  • Température Extérieur
  • Conso électrique temps réel
  • Titre et artiste en cours de diffusion sur un chromecast
  • Temps de trajet pour aller au travail
  • Alerte météo
  • Message perso quand il se passe un truc (Halloween, dire bienvenue à des amis, un message doux à sa chérie ;), …) - Configurable depuis mon application mobile
  • Notifications éphémère pour avoir un retour sur certaines actions (Changement mode de la maison, …)

Après j’ai des scénarios qui activent ou pas les infos.

Et vous comment utiliser vous cet afficheur ? Avez vous fait des animations ?

Merci pour vos retours.

2 « J'aime »

Je l’utilise en continu pour la date/heure, environ 3 minutes, puis température extérieur/intérieur, 7 secondes. Si il pleut dehors les couleurs températures sont inversées.

Sinon pour les autres messages, c’est au coup par coup avec un nombre de passage puis retour en mode continu.

Je l’utilise aussi avec le plugin-jmqtt.

awtrix002

7s par page:

  • Page heure: Couleur tempo du jour et du lendemain (dans le bandeau du calendrier) + sortie poubelle + diagramme de pluie 5min s’il pleut
  • Page meteo: Meteo du jour et T° exterieure
  • Page vent: Vitesse et direction + diagramme de pluie 5min
  • Page prévision: min/max du jour (ou du lendemain à partir de 18h) + pictogramme de la météo sur 3jours
  • Page maison: Temperature intérieure + Icone maison avec etat des volets (vert), lumière (jaune) par étage et pièce, VMC, ouverture du garage et du portail, alerte température congel et eau dans le ss sol.

awtrix

1 « J'aime »

Merci pour ces premiers retours, Je prends l’indicateur poubelle et la prévision sur 3 jours.

@Jeandhom pour les autres messages c’est des « notifications » en fonction de ce qui se passe ?

Vous avez des trucs et astuces pour tester l’affichage custo ?
Pas si simple juste en visualisant le json :wink: je pensais a utiliser un excel pour représenter la matrice de pixel.

Oui, tout à fait.

Hello,

Perso j’utilise l’indicateur 1 (3 pixels en haut à droite pour donner la couleur Tempo si en heures pleines, et l’indicateur 3 (en bas à droite) si heures creuses.
Et l’indicateur 2 (6 pixels tout à droite au milieu) pour indiquer la couleur des poubelles dont le ramassage est prévu pour le lendemain.

Sinon par défaut j’ai écran noir, sur détection de présence via un oeil fibaro juste à côté, l’écran s’allume pour y montrer ces indicateurs, et les message s’il y en a.

Du coup je garde les messages pour des évènements spécifiques : si Tempo rouge prévu le lendemain, si mon ballon d’eau chaude solaire n’est pas chaud à 18h…etc

A propos, j’aurais souhaité afficher dans un design, la page Liveview pour permettre de visualiser ce qui passe sur l’awtrix depuis mon design jeedom.
Pour se faire je voulais mettre dans un iframe via le plugin plugin-htmldisplay l’url http://IP_de_l'awtrix/screen
Mais les iframes ne sont plus très à la mode et sont interdit par Jeedom ou le navigateur ou les deux.
Je me demandais si qqn savait faire quand même sans dégrader la sécurité (ici c’est une url interne, du même réseau local…)

Tu fais comment pour l’animation de poubelle ?

1- Je n’ai pas un Ulanzi mais une matrice DIY: elle fait 40pixels de largeur
2- J’ai créer des gif avec Piskel. Vu que les gif tournent en boucle, il a fallu que je fasse des gif qui durent longtemps pour justement éviter que l’animation recommence
3 Initial - J’ai reconstruit la page Time en utilisant 'draw': et j’ai utilisé 'icon':$icon,'iconOffset':33 pour décaler l’icone de 33 pixels (c’est pas dans l’aide). L’heure est un 'text' que je rafraichis toutes les minutes via JMQTT. Pour la date c’est un draw dt
3 Final - j’ai recompilé le code source pour ajouter une fonction qui permet d’affecher un texte de type Heure sans avoir à rafraichir toutes les minutes via JMQTT (j’en ai profité pour changer le WE en vert)

Ha ouais quand meme :wink:
Merci je vais regarder la propriété iconoffset.

Bonjour,
Ca m’affiche en continue, l’heure, la T° extérieure, la production Solaire, la consommation Linky tirée du réseau, l’injection en cours, Si une des voitures charge et à quel Ampérage, si la pompe piscine est en marche.
Tout cela par scénario et en fonction des plages horaires et des cas, voiture présente ou pas etc …
Bien cordialement

bonjour,

ça m’intéresse bien ce principe pour tempo, mais comment choisis t-on l’indicateur 1,2 ou 3?

Hello !

Déjà je me suis documenté ici

Ensuite dans mon équipement Ulanzi de jMQTT, j’ai créé les 3 commandes suivantes :

Enfin je n’ai plus qu’à remplir ces #message# via des scenario en fonction de ce que je veux. Qq exemples :
Je fais l’hypothèse que tu sais récupérer la couleur du jour et heure creuse ou pas, tu adapteras en fonction de ce que tu as chez toi, moi j’utilise plugin-rteecowatt :

Au top merci je vais m’y inspirer! Je suis sur ce plugin aussi pour tempo.

1 « J'aime »

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):
image

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 ?

1 « J'aime »

Bravo !!!
Ca fonctionne du premier coup ! Un grand merci à toi !
Perso j’ai enlevé le premier DIV avec l’affichage de la mise à jour, le rendu est parfait !
Trop bien !

1 « J'aime »