Avant toute chose merci de (re)prendre connaissance de la charte et de la respecter.
Pour résumer :
- Avant de poser une question, je cherche si la réponse existe
- Je suis poli, courtois et je respecte tout un chacun sur le forum
- Si un post m'agace : je m'en éloigne plutôt que de répondre d'une façon qui pourrait être mal interprétée


Il n'est jamais du luxe que de rappeler des choses simples :
Courtoisie, amabilité, politesse et bonne humeur sont les maîtres mots pour un forum sympathique, bienveillant et accueillant :)

Le groupe des Helpers est present pour vous aidez, n'hésitez pas à poser des questions ;)

Toute la communauté vous remercie

/!\ L’ancien forum passera en lecture seule en janvier 2020./!\
Merci de vous rendre sur https://community.jeedom.com maintenant pour vos prochains postes ;)

[DIY] Mon Radio Réveil Domotique

Pour parler de tout, et surtout de rien !
Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 29 juin 2018, 12:12


Thyer
Timide
Messages : 163
Inscription : 30 mai 2017, 09:51
Localisation : Lorraine

Re: [DIY] Mon Radio Réveil Domotique

Message par Thyer » 30 juin 2018, 11:22

Excellent Dcjona, copieur :D
le mien est en fonction depuis plus de 3 semaines maintenant tout fonctionne parfaitement
j'ai fait un post sur le Forum mais tout le monde sans branle :D

Un screen du zinzin
Image

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 30 juin 2018, 12:09

Ah ben j'ai même pas vu ! Tu l'as mis ou?
Suis encore en galère avec les boutons et la gestion des zones dans parole. J'attends la maj de byfeel car suis dépassé lol

Envoyé de mon Redmi 5 Plus en utilisant Tapatalk


Thyer
Timide
Messages : 163
Inscription : 30 mai 2017, 09:51
Localisation : Lorraine

Re: [DIY] Mon Radio Réveil Domotique

Message par Thyer » 30 juin 2018, 12:44

ICI : viewtopic.php?f=151&t=38213
tu a jeter un coup d’œil à mon Code Arduino ?? l'ajout du bouton fonctionne au poil :)

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 30 juin 2018, 14:31

Oui j'ai regardé. Un bouton sur deux fonctionne le d4 veut pas. Je dois vérifier pourquoi car il est bien sur le gpio0 pourtant. Pour les interactions avec jeedom pas encore pu finir car avec les variables supplémentaires que tu as mise. Je ne sais pas si ça fonctionne aussi avec les ids équipements ou juste les scénarios?

Envoyé de mon Redmi 5 Plus en utilisant Tapatalk


Thyer
Timide
Messages : 163
Inscription : 30 mai 2017, 09:51
Localisation : Lorraine

Re: [DIY] Mon Radio Réveil Domotique

Message par Thyer » 30 juin 2018, 16:56

Y a les 3 manières de faire dans le code

Code : Tout sélectionner

String BaseUrlJeedom ="http://"+IPJeedom+":"+PortJeedom+"/core/api/jeeApi.php?apikey=" + ApiKey + "&type=virtual&id="; 
String BaseUrlJeedomscenario ="http://"+IPJeedom+":"+PortJeedom+"/core/api/jeeApi.php?apikey=" + ApiKey + "&type=scenario&id=";
String BaseUrlJeedomcmd ="http://"+IPJeedom+":"+PortJeedom+"/core/api/jeeApi.php?apikey=" + ApiKey + "&type=cmd&id="; 

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 01 juil. 2018, 08:20

Je vais creuser çà merci :)

En tout cas la vidéo du tiens rend super bien !

J'ai pu trouver à 10€une paire de hp philips alimenté par usb pour procéder de la même façon que toi :)

et finalement comme j'avais déjà acheter des hp de 4cm ( plus puissant) j'ai juste récupérer l'alimentation et ampli intégré sur les hp usb acheté.

C'est vrai que le son est pas top mais bon pour un radio réveil comme tu dis c'est plus que suffisant :)

J'ai placé deux boutons aussi et çà serait vraiment cool de pouvoir définir 3-4 actions par boutons ( plus je m'y perdrais je pense) ... merci pour les liens

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 01 juil. 2018, 18:42

Bon after check ca roule bien pour un bouton (D4), lancement scenario ok :)
par contre pour le D3 gpio 0 il veut pas ... et je n'ai fait que reprendre ton code...

Code : Tout sélectionner

// Bouton
#if (ACTIVBOUTON)
#define bouton  2 // GPIO2  D4 pullup integré et builtin led
ClickButton boutonClick(bouton, LOW, CLICKBTN_PULLUP);

//THYER
#define bouton2 0 // GPIO0 ( pullup integré - D3 pour R2 )
ClickButton boutonClick2(bouton2, LOW, CLICKBTN_PULLUP);

#endif

Code : Tout sélectionner

//THYER
  switch (clic2) {
    case 1:  // Simple clic
      if (clicstate2==1) {
        AutoIn=false;
        sendToJeedomscenario(BaseUrlJeedomscenario , idtrajetIttre);
        P.print("ITTRE");
        clicstate2=0;   
        }
       ++clicstate2;
       delay(600);
       clic2=0;
       break;

    case 2: // double clic
       sendToJeedomscenario(BaseUrlJeedomscenario , idtrajetNiv);
       P.print("NIVELLES");  
       delay(600);
       clic2=0;
       break;

    //case 3: // double clic
   //    sendToJeedomcmd(BaseUrlJeedomcmd , idvolet);
   //    P.print("OUVERTURE VOLET");  
   //    delay(600);
   //    clic2=0;
    //   break;  
  }
  
#endif
// ******** Fin gestion bouton
le code a l'air ok .. et j'ai testé au multimètre le bouton.. pareil lol

Thyer
Timide
Messages : 163
Inscription : 30 mai 2017, 09:51
Localisation : Lorraine

Re: [DIY] Mon Radio Réveil Domotique

Message par Thyer » 01 juil. 2018, 19:58

Si tu regarde le GPIO2 est utilisé pour la gestion d'une LED, j'ai enlevé cette fonction ;)

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 01 juil. 2018, 22:22

Oui oui mais même avec la led pas de soucis


Envoyé de mon Redmi 5 Plus en utilisant Tapatalk


Dernière édition par dcjona le 01 juil. 2018, 22:22, édité 1 fois.

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 02 juil. 2018, 07:53

En fait ce n'est pas la gpio0 2 qui pose problème. C'est la 0

Envoyé de mon Redmi 5 Plus en utilisant Tapatalk


weado
Timide
Messages : 205
Inscription : 15 janv. 2017, 22:19

Re: [DIY] Mon Radio Réveil Domotique

Message par weado » 12 juil. 2018, 08:36

Hello !
Bon je suis en train d'avancer de mon côté, mais je voudrais changer l'utilité afin de transformer mon affichage 7 segments actuel par ce type d'afficheur.
Par contre, je cherche à récupérer les informations de mon Jeedom depuis le Wemos, car je voudrais afficher les informations de manière constante. En exemple : Témpérature (10 secondes) --> Consommation ( 10 secondes ) --> Heure (10 secondes) ...etc

En utilisant les notifications du Jeedom vers le Wemos, je peux faire cela que toutes les minutes, alors que mon enchainement dur uniquement 30 secondes.

Auriez vous des pistes pour que je puisse intégrer cela dans le script de ByFeel. J'ai commencer à chercher avec les librairies httpclient ou webclient, mais je ne rien de concluant.

Merci d'avance pour votre aide et bon continuation, car c'est vraiment sympa ce que vous avez fait !

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 14 juil. 2018, 09:44

Salut, ca doit être faisable mais perso je n'ai pas vraiment l'idée de comment modifier le code pour cela...

Thyer a demandé a Byfeel pour les prochaines versions si il était possible d'afficher la Températu etc en fixe sur des zones donc si cela vient dans les prochaines MAJ ca répondra à tes besoins :)

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 14 juil. 2018, 09:45

Première nuit de test pour le mien après la dernière MAJ 2.6 et je me suis réveillé en musique :D

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 16 juil. 2018, 14:18

Je finalise le mien :

Image
Image
Image
Image

weado
Timide
Messages : 205
Inscription : 15 janv. 2017, 22:19

Re: [DIY] Mon Radio Réveil Domotique

Message par weado » 18 juil. 2018, 13:51

Pour ma part, j'ai (enfin) réussi à faire ma configuration, en me basant beaucoup sur Byfeel, pour afficher des informations dans mon salon. Voici les infos :
- Affichage de la température / Consommation / Heure avec animation et alternance toutes les 10/20 secondes.
- Gestion de la luminosité par Jeedom (Jeedom/Heliotrope)
- Gestion de on/off de l'affichage en fonction de la présence (Jeedom)

Reste à faire :
- Emballage ;-) je vais essayer de m'inspirer de dcjona
- Simplifier/réécriture le code, car j'ai fait avec mes petites compétences et c'est pas très joli.

Si vous êtes intéressé, je peux le partager avec plaisir.

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 18 juil. 2018, 13:57

bah oui suis intéressé pour l'affichage en permanence des infos jeedom moi :)

weado
Timide
Messages : 205
Inscription : 15 janv. 2017, 22:19

Re: [DIY] Mon Radio Réveil Domotique

Message par weado » 19 juil. 2018, 11:00

Hello,

Comme souhaité, voici le code pour mon installation. Perso, je n'ai pas utilisé la partie Wifi Manager, vu que je ne suis pas amener à changer de réseau Wifi toutes les semaines.

Reste à faire :
- Optimiser un peu le code ... voir beaucoup
- Comprendre le fonctionnement des animations
- idéalement avoir l'horloge avec les secondes et les deux points clignotants
- Ajouter les notifications (petit plus)

Je suis bien sûr ouvert à toutes améliorations/optimisations.

Code : Tout sélectionner

//Bibliothèque de base
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

//Librairie Display
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include "Parola_Fonts_data.h"
#include "Font_Byfeel.h"

// librairie temps
#include <TimeLib.h>
#include <NtpClientLib.h>
#include <Dns.h>
#include <EthernetClient.h>
#include <Ethernet.h>

//*****************************************
// Caractéristique et déclaration variables
//*****************************************
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4   // nombre de matrice
#define CS_PIN    D6
#define NTPSERVER "fr.pool.ntp.org" 
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

String message=""; //Variable pour l'horloge
//String temp=""; //Variable A TESTER
String unit_tempC="C";
String unit_conso="kW";
char unit_temp= char(176); // Affichage du caractères ° pour la température
String prox_me=""; //Variable proximité

#define BUF_SIZE 75
//char curMessage[BUF_SIZE] = { "Jeedom" };
char temperature[BUF_SIZE] = " 16";
char consommation[BUF_SIZE] = "1";
char Notif[BUF_SIZE]; //Variable pour l'horloge

// ----------------------------------WIFI---------------------------
const char* ssid = "Livebox-4785";
const char* password = "xxxxxxxxxxxxxxx";

//
//------------------------------Gestion du NTP----------------------
//
// TimeZone
int8_t timeZone = 1;
// Le fuseau utilise les horaires été / hiver

bool DLS = true;
boolean syncEventTriggered = false; // True if a time even has been triggered
NTPSyncEvent_t ntpEvent; // Last triggered event


 void processSyncEvent (NTPSyncEvent_t ntpEvent) {
  if (ntpEvent) {
    if (ntpEvent == noResponse)
      P.print ("Serveur NTP injoignable");
    else if (ntpEvent == invalidAddress)
      P.print ("Adresse du serveur NTP invalide");
  } else {
     if ( year() != 1970 or year() != 2036 ) {
             NTP.setInterval (1200);
            }
    
  }
 }
//*****************************************
//         UTF8 - Ascii etendu
//*****************************************
uint8_t utf8Ascii(uint8_t ascii)
// Convertit un caractere UTF8 en caractére etendu ASCII selon la norme // ISO 8859-1 , aussi appellé ISO Latin-1
// Codes 128-159 contient les codes Microsoft Windows Latin-1
// 
// - codes 0..127 sont identiques entre ASCII et UTF-8
// - codes 160..191 in ISO-8859-1 and Windows-1252 are two-byte characters in UTF-8
//  + 0xC2 then second byte identical to the extended ASCII code.
// - codes 192..255 in ISO-8859-1 and Windows-1252 are two-byte characters in UTF-8
// + 0xC3 then second byte differs only in the first two bits to extended ASCII code.
// - codes 128..159 in Windows-1252 are different, but usually only the €-symbol will be needed from this range.
//                 + The euro symbol is 0x80 in Windows-1252, 0xa4 in ISO-8859-15, and 0xe2 0x82 0xac in UTF-8.
// Extended ASCII encoding should match the characters at http://www.ascii-code.com/
//
// Return "0" if a byte has to be ignored.
{
  static uint8_t cPrev;
  uint8_t c = '\0';

  if (ascii < 0x7f)   // Standard ASCII-set 0..0x7F, no conversion
  {
    cPrev = '\0';
    c = ascii;
  }
  else
  {
    switch (cPrev)  // Conversion depending on preceding UTF8-character
    {
    case 0xC2: c = ascii;  break;
    case 0xC3: c = ascii | 0xC0;  break;
    case 0x82: if (ascii==0xAC) c = 0x80; // Euro symbol special case
    }
    cPrev = ascii;   // save last char
  }
  return(c);
}

void utf8Ascii(char* s)
// In place conversion UTF-8 string to Extended ASCII
// The extended ASCII string is always shorter.
{
  uint8_t c, k = 0;
  char *cp = s;

  while (*s != '\0')
  {
    c = utf8Ascii(*s++);
    if (c != '\0')
      *cp++ = c;
  }
  *cp = '\0';   // terminate the new string
}

//*****************************************
//                  SETUP
//*****************************************




void setup () {
//Démarrage Display
   P.begin();
   P.setFont(0,ExtASCII);
   P.setIntensity(5);
   delay (2000);
 //Wifi
  Serial.begin(115200);
  WiFi.begin(ssid, password);
   while (WiFi.status() != WL_CONNECTED) {
    Serial.println();
    Serial.println("Connecting..");
    P.print("dial...");
    delay(5000);
   }
   Serial.print("Connecting to ");
   Serial.println(ssid);
   Serial.println("WiFi connected");  
   Serial.print("IP address: ");
   Serial.println(WiFi.localIP()); 
   P.print("Wifi ok");
   delay(5000);

    //******* Service NTP ********
    NTP.onNTPSyncEvent ([](NTPSyncEvent_t event) {
      ntpEvent = event;
      syncEventTriggered = true;
    });
// Démarrage du processus NTP  
NTP.begin(NTPSERVER, timeZone, DLS);
// Interval de synchronisation en seconde , 10 s au depart pour forcer une mise a jour rapide
NTP.setInterval (10);
   
}
  
//*****************************************
//                   LOOP
//*****************************************
 
void loop() {

//
// -------------------------------Gestion présence --------------------------------------------------
//
  if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status

    HTTPClient http;  //Declare an object of class HTTPClient
    http.begin("http://192.168.1.xxx/core/api/jeeApi.php?apikey=xyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxy&type=cmd&id=1117");  //Virtuel pour la gestion de la présence
    int httpCode = http.GET();
    if (httpCode > 0) { //Check the returning code
      prox_me = http.getString();   //Get the request response payload
      http.end();
    }
  }

if (prox_me == "0"){
  P.displayClear();
  delay (100000);
  }
  else {
  
//
// -------------------------------Gestion Luminosité --------------------------------------------------
//
  if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status

    HTTPClient http; 
    http.begin("http://192.168.1.xxx/core/api/jeeApi.php?apikey=xyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxy&type=cmd&id=406");  // info d'héliotrope pour la valeur binaire jour/nuit
    int httpCode = http.GET();
    if (httpCode > 0) {
      String lum = http.getString();
      Serial.println(lum);
        if (lum == "1") {
          P.setIntensity(2);
        }
        else {
          P.setIntensity(0);
        }
     }
     http.end();
   }

//
// -------------------------------Température --------------------------------------------------
//
P.displayClear();
  if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status

    HTTPClient http;
    http.begin("http://192.168.1.xxx/core/api/jeeApi.php?apikey=xyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxy&type=cmd&id=322");  //Valeur de ma sonde de température
    int httpCode = http.GET();                                                                  //Send the request
    if (httpCode > 0) { 
      String temp_orig = http.getString();   												//Récupération en mode string de la température
      Serial.println(temp_orig);
      String temp = temp_orig+unit_temp+unit_tempC; 										//concaténation : tempéraure + signe ° + Lettre "C"
      temp.toCharArray(temperature,50);														//Convertion en char
      P.setFont(0, numeric7Seg_Byfeel);														//Utilisation de la Fonts Byfee
      P.displayText(temperature, PA_CENTER, 25, 20000, PA_SCROLL_RIGHT, PA_SCROLL_RIGHT);	//Affichage avec le choix de l'animation
      while (!P.displayAnimate())															//Impossible de vous donner l'utilité des 3 lignes suivantes, mais dysfonctionne sans elles.
      delay(1);
      delay(200);
     }
     http.end();   //Close connection
   }

//
// -------------------------------Consommation --------------------------------------------------
// Sur le même schéma que l'exemple précédent.

  if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status

    HTTPClient http;
    http.begin("http://192.168.1.xxx/core/api/jeeApi.php?apikey=xyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxyxy&type=cmd&id=11");  //Valeur de ma conso electrique
    int httpCode = http.GET();
    if (httpCode > 0) { //Check the returning code
      String conso_orig = http.getString();
      Serial.println(conso_orig);
      String conso = conso_orig+unit_conso;
      conso.toCharArray(consommation,50);
      //P.setFont(0,ExtASCII);
      P.displayText(consommation, PA_CENTER, 25, 10000, PA_SCROLL_RIGHT, PA_SCROLL_RIGHT);
      while (!P.displayAnimate())
      delay(1);
      delay(200);
     }
     http.end();   //Close connection
   }

//
// -------------------------------Temperature New --------------------------------------------------
// Répétition

      P.displayText(temperature, PA_CENTER, 25, 20000, PA_SCROLL_RIGHT, PA_SCROLL_RIGHT);
      while (!P.displayAnimate())
      delay(1);
      delay(200);


//
// -------------------------------Autre --------------------------------------------------
//

//P.setFont(0,ExtASCII);
//P.displayText(curMessage, PA_CENTER, 25, 5000, PA_SCROLL_RIGHT, PA_SCROLL_RIGHT); // Affichage d'un message personnel si besoin
//while (!P.displayAnimate())
//delay(1);
//delay(500);

//
// -------------------------------Horloge --------------------------------------------------
// Récupération des lignes de Byfeel pour l'horloge

P.setFont(0, numeric7Seg_Byfeel);
digitalClockDisplay().toCharArray(Notif,BUF_SIZE);
P.displayText(Notif, PA_CENTER, 0, 10000, PA_PRINT, PA_SCROLL_UP);
while (!P.displayAnimate())
delay(1);
delay(200);

  }
}

//
//---------------------- FIN DU LOOP -----------------------------------------------------
//

//*****************************************
//                  Horloge
//*****************************************
//Récupération code Byfeel

// Fonction clockformat ( ajoute les zeros devant les unités )
String digitalClockDisplay()
    {
          message=printDigits(hour());
          message+=":";
          message+=printDigits(minute());
  return message;
  }

String printDigits(int digits)
{
  String Digital;
  // Digital=":";
  if (digits < 10) Digital+="0";
  Digital+=digits;
  return Digital;
}

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 25 juil. 2018, 08:59

Merci :) je jette un oeil a cela dés que j'ai un moment :) de ce que je vois tu joues avec les delay uniquement?

weado
Timide
Messages : 205
Inscription : 15 janv. 2017, 22:19

Re: [DIY] Mon Radio Réveil Domotique

Message par weado » 25 juil. 2018, 09:28

Oui, car je n'ai pas d'autre action en plus que l'affichage. Tu penses à l'utilisation des compteurs plutôt que les delay ?

Répondre

Revenir vers « Discussions Générales »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 5 invités