Voici, une nouvelle mise à jour du firmware et de l’interface WEB, comprenant les dernières nouveautés ( à retrouver sur mon github ) :
- Mise à jour de MQTT / Ajout nouveau TOPIC Options / Correction bug
- Création d’un Topic config , pour automatiser la remontée dans home assistant. Prise en compte de MQTT discovery. Création auto des éléments suivants , à retrouver dans le menu entité ( si mise à jour auto activé ).
- Sensors DHT ( Température et Humidité ) si présent sur NotifHeureXL
- Switch Affichage Secondes
- Switch Affichage Horloge
- Switch Mode Auto / Manuel
- Light , si LED présente ( Led ou Néopixel )
- Correction bug luminosité
- Ajout du mode CYCLE , pour répéter les notifications x fois.
- Divers corrections , etc …
Paramètre MQTT
Le NotifHeure communique ses états sur le topic suivant :
Topic Etat
byfeel/NotifheureXL/45F875/bureau/state
la partie : 45F875 , correspond au numero de série de votre ESP ( afin de différencier les notifheures si plusieurs présents sur votre réseau ) . Bureau , et le nom que vous avez donné lors de la configuration.
Vous retrouverez la définition exacte de votre Topic sur l’onglet MQTT , de la page de configuration du NotifHeureXL . Ci dessous un exemple des infos remontés à ce jour. ledState et BrighnessLed sont propre à Home assistant , pour le fonctionnement de l’entité « Light ».
{ "temperature": "24.40", "humidity": "59.20", "sec": true, "hor": true, "lum": false, "led": false, "ledState": "off", "ledint": 30, "brightnessLed": 77 }
Topic Notification
byfeel/NotifheureXL/45F875/bureau/message
Les notifications sont à publier sur ce topic , dans le format JSON suivant :
{ "msg":"Hello World", "opt":"pause=0; nzo=1" }
msg: Le texte à notifié
opt: Les options pour l’affichage ( Optionnel ) , si pas renseigné , affichage par défaut ( Scrolling sur zone message ). Chaque options doit être séparé par un « ; » .
Options pour Notification :
- nzo : Numéro de Zone si plusieurs zone
- audio: Volume si MP3 installé
- num: numéro de la piste à jouer ( Buzzer ou MP3 )
- ledfx: effet pour Led si installé
- color: Couleur de la led si Neopixel
- loop: répéter x fois l’effet led
- ledlum: luminosité de la led ou neopixel
- flash ou breath : effet préprogrammé pour led ou neopixel
- intnotif ou lum: intensité de la notification
- speed: vitesse de défilement
- pause: temps de pause en fin de notification
- fx: Numéro d’effet pour affichage notification ( si texte à affiché inférieur à affichage écran )
- anim: Numéro d’animation avant affichage ( si texte à affiché inférieur à affichage écran )
- cycle: Répétition de l’affichage x fois
- type: Type affichage ( INFO,FIX,PAC,ARROW,ROLL)
- fi et fo et fio : effet fx pour l’entrée et la sortie de l’affichage ( si fio=3 alors fi=3 et fo=3 )
- important: flag le document sur important , pour historique
L’envoie de notification sous Home Assistant utilise le service MQTT.publish
Topic Options
byfeel/NotifheureXL/45F875/bureau/options
Les options sont à publier sur ce topic , dans le format JSON suivant :
{ "key":"value" }
Il est possible d’enchainer , plusieurs options : {« SEC »:« true », »LED »: »true », »COLOR »: »1″} , affiche les secondes et allume le ring Néopixel en Rouge.
Liste des Options :
- LED : Active / désactive la LED
- COLOR : Indique une couleur d’affichage ( 0 à 7 )
- LEDINT : Intensité de la LED
- DDHT: Active/ Déasctive l’affichage des valeurs du DHT sur NotifHeure
- REV: Active / Désactive Reveil
- SEC: Active / Désactive l’affichage des secondes
- HOR: Active / Désactive l’affichage de l’horloge
- LUM: Active / Désactive le mode automatique
- TIMEREV : Heure du reveil sous la forme « 07:00 »
- INT: Réglage de l’intensité du notifHeure en mode manuel
- MIN: lance le minuteur en secondes ( 300 pour 5 minutes )
- CR: Affiche / Masque le minuteur
- CRSTP : Arrête le minuteur
- ALD: jours alarme sous la forme « false,true,true,true,true,true,false » pour activer que les jours de la semaine.
L’envoie des Options sous Home Assistant utilise le service MQTT.publish .
Home Assistant : Auto Discovery
Le prefix par défaut est : « homeassistant » , si vous avez modifié le prefix par défaut dans home assistant , il est possible de l’ajuster dans la page d’administration du NotifHeureXL.
Au démarrage , lors de la première connexion le NotifHeure envoie la configuration à home assistant pour la création automatique des entités.
Ces entités seront créés sous le nom par défaut :
notif_bureau_T ( pour le capteur de température )
notif_ ( en début de nom ) , puis le nom du notifheure ( ici bureau ) , puis le type de sensor ( T pour température )
Il est possible , si Home assistant n’etait pas démarré , de relancer une demande de création depuis la page Web du notifHeure ( onglet MQTT )
Mode Répétition ( cycle)
Il est possible de répéter x fois , une notification . Soit depuis l’interface WEB
Soit depuis une commande http sous la forme :
http://adressipnotif//Notification?msg=helllo%202%20fois&cycle=2
25 commentaires sur “Mise à jour NOTIFHEURE XL v0.9.6”
Bonjour,
je cherche un moyen de lancer un reboot via mqtt. cette fonction est-elle implémentée ?
Merci
Bonsoir Thomas
Cette option n est pas prise en compte pour le moment.
Le reboot peut être pour l instant géré à distance que via une requête HTTP.
Merci pour ta réponse. J’ai regardé ton article sur la documentation du notif’heure mais je n’ai pas trouvé le bon format d’écriture:
http://ip notif’/config/reboot
Je souhaiterai créer sur mon jeedom un bouton qui enverrai cette requête.
Merci
Je n ai pas le code sous les yeux en ce moment mais pour reboot , il faut ajouter true. http://ip notif’/Config/reboot=true
C majuscule pour config
Ça devrait être bon comme ça.
Non c’est pas ça, ce n’est pas grave. Je peux attendre, rien d’urgent.
Merci
Il faut mettre un point d interrogation après config et avant reboot pour indiquer à la requête que l on envoie un paramètre.
On progresse mais c’est toujours pas bon. Maintenant ça me retourne le message « aucune modification »
je viens de verifier le code , effectivement il y a un bug.
Je vais corriger çela avec la nouvelle version V1 qui va bientôt sortir.
la commande est bien
http://ip_notif/Config?reboot=true
Bonjour Byfeel, encore merci pour tout le taf que tu fais. La version 0.9.5 ayant corrigé pas mal de bugs d’affichage via Jeedom.
J’ai mis à jour hier un de mes Notif’Heure en v0.9.6 pour la tester et j’ai des petits problèmes 🙁
Dans Jeedom, j’utilise le plugin « Notif’Heure » et il m’a fallu éditer et sauvegarder l’équipement pour qu’il m’affiche la bonne version.
J’utilise également le plugin « jMQTT » pour récupérer tous les Topics.Les Topics « state » et « config » n’ont pas été mis à jour malgré que j’ai édité et sauvegardé l’équipement. Le Topic « state » me donne encore : {« temperature »: »23.40″, »humidity »: »49.50″, »sec »:false, »hor »:true, »lum »:false} et le Topic « config » me donne encore : {« name »: »nh_cuisine », »id »: »7fe3cb », »hardware »: »NotifheureXL », »version »: »0.9.2″, »ip »: »192.168.29.157″}.
Par contre, j’ai bien eu la création d’un nouvel équipement qui correspond aux Topics « homeassistant » qui est la nouveauté de la version 0.9.6. Serait-il possible de pouvoir les désactiver car je n’utilise pas Home Assistant et ça me crée 4 Topics par Notif’Heure pour rien et j’en ai 6 chez moi ?
Je trouve dommage que la publication des Topics MQTT se fasse périodiquement toutes les 120 secondes (réglage par défaut). Avant cette mise à jour, je crois que le Topic était publié dès qu’une valeur changé, ce qui permettait d’avoir une mise à jour de l’état dans Jeedom en temps réel (c’est ce qui m’a fait adopté le protocole MQTT).
A l’instant, j’ai voulu mettre à jour un 2ème Notif’Heure et lorsque j’ai ouvert Atom, PlatformiO c’est mis à jour (core 4.3.4 et Home 3.2.3) et lorsque j’ai voulu transférer le dossier « data », je n’ai plus l’option « PIO Upload File System image » dans « Run other target.. ».
Maintenant, lorsque j’appuie sur « Run other Target… », il me propose : « PIO Build », « PIO Upload », « PIO Monitor », « PIO Devices », « PIO Clean », « PIO Test » et « PIO Check ».
Du coup, maintenant, je ne sais pas comment mettre à jour le dossier « data ». Est-ce que quelqu’un d’autre à ce problème ?
Concernant le capteur de température et d’humidité, j’utilise des DHT22 et bien souvent, je suis obligé de corriger la valeur dans Jeedom pour avoir la bonne température.
Le problème est que j’ai activé l’affichage automatique de la température que tu as mis en place dernièrement mais forcément, la température affichée n’est pas correcte. Serait-il possible de pouvoir saisir un offset pour la température et pour l’humidité directement dans la page de configuration du Notif’Heure (en positif ou en négatif) ?
Avant que tu n’ajoutes cette fonction d’afficher la température directement par le Notif’Heure, je le faisais via un scénario dans Jeedom (depuis, je l’ai supprimé et j’utilise ta fonction). Serait-il possible de désactiver cette fonction lorsque l’horloge est masquée et de la réactiver lorsque l’horloge est affichée sur le Notif’Heure (j’ai mis un Notif’Heure juste en dessous de la TV de mon salon et lorsque je regarde un film, je masque l’horloge pour ne pas être gêné mais forcément la température continue de s’afficher de temps en temps).
Ça serait cool d’avoir une icône de « tendance » lorsque la température s’affiche. Par exemple, une flèche vers le haut si la température actuelle est supérieure à la précédente, une flèche vers le bas si elle est inférieure ou un égal si la température n’a pas changé.
Dans tous les cas, je te remercie encore de continuellement faire évoluer le Notif’Heure que j’adore et que je mets partout dans ma maison.
J’ai oublié de te demander comment configurer le fichier « platformiO.ini » de façon à pouvoir faire les mises à jour via OTA.
Pour l’instant, je fais les mises à jour via un câble USB, j’ai donc commenté la ligne « upload_port = 192.168.1.126 » et j’ai ajouté la ligne « upload_port = /COM6 ».
Pour une mise à jour via OTA, à quoi correspond l’adresse IP « 192.168.1.126 » que tu as mis dans le projet ? C’est celle du Notif’Heure ou celle de l’ordinateur qui va lancer la mise à jour OTA ?
Comment faire une mise à jour OTA via Atom et PlatformiO ? (je ne maîtrise pas du tout ce logiciel et je ne l’utilise que pour le Notif’Heure).
Rm : il y a une petite faute au mot « Préciser » de la ligne 23 😉
Pour une mise à jour en OTA , il faut que la ligne upload_port pointe vers l’adresse IP du notifHeure , et commenter celle qui envoie vers le port com.
Pour faciliter les mises à jours , en OTA . J’explique comment le faire en ligne de commande , dans l’article , comment flasher facilement le notifheure. ( surtout pour la partie SPIFFS , pas toujours facile à compiler ).
Bien sur , il faut que le service OTA soit activé sur le notifHeure ( la première installation , est donc obligatoirement en Série ).
Les firmwares , sont dans le menu « firmware notifheure » déjà compilé selon deux types de matrices.
Pour « preciser » , c’est dans quel fichier ?
Bonjour Byfeel.
Désolé pour la réponse tardive.
Concernant la mise à jour OTA, c’est ok avec tes explications.
Pour « préciser », c’est dans le fichier « platformio.ini » au niveau de la configuration pour l’USB.
bonjour BZH et tout d’abord merci pour ton soutien 🙂 .
Je vais essayer de répondre à tes questions :
Pour la partie Jeedom , je vais regarder cela … quelle partie as tu modifié ?
Pour la partie Mqtt , j’ai modifié la plupart des topics .Selon le broker , il faudra éliminer à la « main » les anciens Topic. Je conseille pour cela d’utiliser le logiciel MQTT explore ( http://mqtt-explorer.com ) qui permet de connaitre tous les topics dans le broker. Le plus simple et de tout détruire , puis laisser les topics se recréer. Cela , peut étre du à un mauvais QOS , ou l’option « retain » activé.
Le topic config , dans lequel j’indiquais la version et d’autres infos , n’existe plus ( je ne le trouve pas utile ).
Pour éviter que les topic home assistant apparaissent , il est possible de demander au plugin de n’ecouter que sur la branche : byfeel/# , mais je vais voir pour ajouter une option , pour empecher la diffusion du topic dédié à HA.
Le topic est publié par défaut tous les 120 secondes ( la tempo peut etre réglé dans la page configuration ) , mais des qu’il y a une modification d’un paramétre ( sec , horloge , intensité , led , etc … ) le topic est publié.
Pour la partie température et humidité le topic est modifié par défaut toutes les 5 minutes environ.
C’est une bonne idée d’ajouter un offset sur la température et l’humidité.
En effet je n’ai pas prévu le cas , ou l’horloge est désactivé , je dois corriger ça.
Pour la tendance , pourquoi pas , je met ça de coté aussi , dans les options à ajouter.
Pour la partie Atom , j’ai constaté plusieurs bug , aussi ces derniers temps , du coup je suis passé sous visual studio avec platformio
Bonjour Byfeel.
Pour la partie « Jeedom », c’est avec ton plugin, je n’ai rien modifié, j’ai juste resauvegardé tous mes notif’heures pour avoir la bonne version. Dans la page de configuration de l’appli web des notif’heures, quelle est l’URL Update à mettre dans la partie « URL Action Domotique ». J’ai mis l’url de la commande « rafraichir » de chaque notif’heure de ton plugin (ex => http://URL_de_Jeedom/core/api/jeeApi.php?apikey=Clé_API_de_Jeedom&type=cmd&id=5854) mais ça m’indique « derniére requéte URL : Erreur ( code OK ) » sur la page web du notif’heure.
Ça fait 2 semaines que j’essayais de téléverser dans les notif’heures ton code sans y arriver. Ni avec Atom (disparition de « PIO Upload File System image » avec la dernière mise à jour), ni avec Arduino IDE (se dernier restait bloqué sur sur la ligne « C:\\Users\\Utilisateur_Windows\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\2.7.1\\libraries\\ESP8266WiFi\\src\\ESP8266WiFiGeneric.cpp » -o nul -DARDUINO_LIB_DISCOVERY_PHASE »). Peut-être que c’est la dernière mise à jour de mon Windows qui a mi le bazar car je crois qu’il intègre maintenant Python !
Hier, j’ai enfin essayé d’utiliser « Visual Studio Code » et tout c’est bien passé du 1er coup (l’installation de VSCode et du plugin « PlateformIO » et le téléversement du stretch et du dossier data). J’ai enfin pu mettre à jour tous mes notif’heure à la version 0.9.7
Peut-être que tu devrais modifier dans tes précédents tutos en supprimant l’utilisation d’Atom au profit de Visual Studio Code.
En effet pour le plugin jeedom , il faut appuyer sur sauvegarder pour mettre à jour les modifications. Pas besoin d’enlever et réinstaller.
Pour l’url update , il faut que la requête soit en http ( pas en https ) et être locale uniquement : 192.168.x.x
Le message d’erreur pour l’instant n’est pas géré ( je renvoie le code de l’execution seulement correspond au requete http , mais pas eu le temps de mettre en forme les messages .)
Salut Byfeel,
Merci pour toutes ces améliorations !
Mais perso j’ai toujours des problèmes de luminosité.
Ok peux tu m en dire plus ? Avec photocell ou sans ? En automatique ou manuel ? Dans quel condition. Afin que je puisse reproduire le bug , merci de me donner une marche à suivre.
Alors je suis sans photocell.
Config toute simple avec un mini D1 et un un bloc de 4 matrices FC16.
CS_PIN 2 (je suis sur un Smart Led Messenger)
J’envoi des notif en boucle avec Jeedom avec des pauses de 5s entre elles.
La luminosité de la notif semble se mettre au max une fois sur 2.
Phénomène que je n’ai pas sur la 3.3.2 du Notiheure
Donc si je comprend bien le problème provient du plugin Jeedom ? Ou est ce via des requêtes http via les scripts ?
Pour moi non parce que je passe par le plugin script et une commande curl
Ok quel sont les paramètres envoyés via la requête curl ?
Voici le contenu :
curl « http://192.168.1.115/Notification?speed=11&intnotif=0 » –data-urlencode « msg=$* »
Du coup je suis le seul dans cette situation ?
Ça vient peut être de mon matériel alors…