ldleman / yana-server

Interface PHP de domotique Y.A.N.A (You Are Not Alone)
http://projet.idleman.fr/yana
107 stars 59 forks source link

Comment intégrer des modules de températures dans YANA? #72

Closed Elfnoir closed 8 years ago

Elfnoir commented 10 years ago

Bonjour! J'ai du mal à faire le lien entre le tuto pour réaliser une sonde de température sans fil: http://blog.idleman.fr/?p=2263 et son intégration dans YANA: 1) Comment on fait pour passer du tuto de la sonde avec Yuri vers Yana? 2) sur quel port doit être le récepteur radio? 3) quel code doit-on donner au capteur?: dans le script du tuto pour Yuri, on donne un code sur 4 bits, alors que dans l'interface Web de YANA, le code doit commencer par 28-00000 ...ou alors, pour l’instant, on ne peut avoir que la température autours du Raspberry, l'implémentation à distance via Arduino + liaison 433Mhz n'est pas encore codée? Et on ne peut que utiliser Yuri pour l'avoir? Si j'ai loupé un ou 2 tutos, surtout n'hésitez pas à me pousser des liens :-D !!!

darkpisto commented 10 years ago

Perso je suis en plein travaux/déménagement donc un peu chaud pour moi de partager mes avancées, mais si ça intéresse, j'ai mis en place un arduino (puce atmega328) avec une sonde de température et un capteur de luminosité. Le tout est relié à un ENC28J60 et permet d'envoyer un tableau HTML avec la température et le niveau de lumière capté (c'est basique pour le moment ^^) accessible via l'IP de l'arduino par navigateur pour mes tests.

Reste à récupérer l'info via le raspberry (c'est juste un petit cron à faire pour le récupérer toutes les X secondes) et pour faire plus propre il faudra l'encoder en JSON pour le récupérer directement en ajax :)

Le but pour moi c'est de ne rien faire passer en liaison radio : je compte faire passer du RJ45 partout donc autant en profiter pour faire transiter toutes mes données :)

sachaw0lf commented 10 years ago

Salut tous ! Comme le dit darkpisto, pour le moment il faut faire un peu à sa sauce pour utiliser les tutos d'Idleman en RF. Perso je travaille sur un plugin qui intègre ces modules directement dans YANA et en passant toujours par le radioReception. Dès que je le termine, bientôt j'espère, je le mettrais en validation à la communauté. @darkpisto, moi qui vais bientôt changer de maison, j'ai eu la même réflexion que toi sur le RJ45 partout même près des volets ;-)

darkpisto commented 10 years ago

Yep c'est plus pratique et ça permettra aussi à l'avenir de mettre un micro+baffle par puce atmega pour faire transiter du son dans les 2 sens (ça permettra d'avoir la commande vocale dans toute les pièces, indépendamment du fait qu'on utilise la solution microsoft, une linux, ou une google pour la gestion de la voix ^^)

J'en profite de l'avoir sous la main pour partager mon code pour ARDUINO (qui nécessite 2 librairies de YOURDUINO : dallas_temperature_control et OneWire). C'est sale, je n'ai pas encore commenté proprement (j'ai laissé les commentaires des sources dont je me suis inspiré), mais ça permettra d'avoir le concept si quelqu'un en a besoin :

// This is a demo of the RBBB running as webserver with the Ether Card
// 2010-05-28 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

#include <EtherCard.h>
#include <OneWire.h>
#include <DallasTemperature.h>

// ethernet interface mac address, must be unique on the LAN
static byte mymac[] = { 
  0x74,0x68,0x69,0x2D,0x30,0x31 };
static byte myip[] = { 
  192,168,7,75 };

int photocellPin = 0; // the cell and 10K pulldown are connected to a0
int photocellReading; // the analog reading from the analog resistor divider

// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2
// Setup a oneWire instance to communicate with any OneWire devices 
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

char temp1[10];

const int ledPin = 4;
boolean ledStatus;

char* on = "ON";
char* off = "OFF";
char* statusLabel;
char* buttonLabel;

byte Ethernet::buffer[500];
BufferFiller bfill;

void setup () {
  if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
    Serial.println( "Failed to access Ethernet controller");
  ether.staticSetup(myip);

  sensors.begin();

  //pour le debug
  Serial.begin(57600);

  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  ledStatus = false;
}

static word homePage() {

  photocellReading = analogRead(photocellPin);

  sensors.requestTemperatures(); // Send the command to get temperatures

    if(strstr((char *)Ethernet::buffer + pos, "GET /?status=ON") != 0) {
    Serial.println("Received ON command");
    ledStatus = true;
  }

  if(strstr((char *)Ethernet::buffer + pos, "GET /?status=OFF") != 0) {
    Serial.println("Received OFF command");
    ledStatus = false;
  }

  if(ledStatus) {
    digitalWrite(ledPin, HIGH);
    statusLabel = on;
    buttonLabel = off;
  } 
  else {
    digitalWrite(ledPin, LOW);
    statusLabel = off;
    buttonLabel = on;
  }

  bfill = ether.tcpOffset();
  bfill.emit_p(PSTR(
  "HTTP/1.0 200 OK\r\n"
    "Content-Type: text/html\r\n"
    "Pragma: no-cache\r\n"
    "\r\n"
    "<meta http-equiv='refresh' content='1'/>"
    "<title>Arduino - RBBB server</title>"
    "<h1>$D</h1>"
    "<h1>$S</h1>" ),
  photocellReading,
  dtostrf(sensors.getTempCByIndex(0),1,2,temp1)
    );

  Serial.println(photocellReading);
  Serial.println(sensors.getTempCByIndex(0));
  Serial.println("-----------------");

  return bfill.position();
}

void loop () {
  word len = ether.packetReceive();
  word pos = ether.packetLoop(len);

  if (pos) { // check if valid tcp data is received
    ether.httpServerReply(homePage()); // send web page data
  }

}
sachaw0lf commented 10 years ago

Salut Tartous ! Oui je suis ch'ti ça arrive :-) Je termine le plugin pour la gestion des sondes de température. Pour fonctionner pour le moment il faut lancer en tâche de fond le radioReception inclus dans mon plugin et modifier le fichier action.php j'ai pas trouvé autrement pour l'instant mais je suis dessus.

Prochain objectif créer un démon qui lance le radioReception au démarrage du PI. Ensuite faire qu'on ait plus à modifier le fichier action.php @ ++ Sachaw0lf

Elfnoir commented 10 years ago

Trô bien! Mais les infos que tu reçois de tes sondes en 433Mhz, comment fais-tu pour l'intégrer dans YANA? Chep est dessus, et de ce que j'ai compris (oui, je sais, je suis une quiche en programmation, mais j'assume :-p) il faut populer une BdD... comment fais-tu de ton côté? Comment est-ce insérer dans YANA? Tu as des bouts de codes pour que mes sondes servent enfin à quelque chose qu'à part prendre la poussière??!! Merci de tes retours.

sachaw0lf commented 10 years ago

Hello. Alors il faut populer la BDD. En fait cela tiens au fonctionnement interne de Yana. Le script radioReception lance l action Update engine state des qu une température est recue. Mon plugin traite l action en enregistrant en bdd la valeur et le signe plus ou moins en fonction du code de la sonde. Mes sondessont gérées part mon plugin. Il sera a dispo des question j'ai fini et su idleman le validera. Bien a vous zotes Sachawolf

--- Message initial ---

De : "Elfnoir" notifications@github.com Envoyé : 6 mai 2014 15:17 A : "ldleman/yana-server" yana-server@noreply.github.com Cc: "sachawolf" sachawolf@live.fr Objet : Re: [yana-server] Comment intégrer des modules de températures dans YANA? (#72)

Trô bien! Mais les infos que tu reçois de tes sondes en 433Mhz, comment fais-tu pour l'intégrer dans YANA? Chep est dessus, et de ce que j'ai compris (oui, je sais, je suis une quiche en programmation, mais j'assume :-p) il faut populer une BdD... comment fais-tu de ton côté? Comment est-ce insérer dans YANA? Tu as des bouts de codes pour que mes sondes servent enfin à quelque chose qu'à part prendre la poussière??!! Merci de tes retours.


Reply to this email directly or view it on GitHub: https://github.com/ldleman/yana-server/issues/72#issuecomment-42300285

sachaw0lf commented 10 years ago

Ben re, Veni vidi et grâce à Idleman vici. Mon plugin fonctionne correctement, j'attends juste son retour sur quelques points et on verra si on le publie de suite. See you Sachawolf

Elfnoir commented 10 years ago

Salut! Aurais-tu la possibilité de nous communiquer ton script, en exclusivité, ou va-t-il bientôt être mis à dispo stp? Merci!

sachaw0lf commented 10 years ago

Hello, Je publie le plugin ce soir avec la bénédiction d'Idleman. Il me reste à l'améliorer et à réussir à transformer le radioReception en démon Linux. Bon amusement et n'hésitez pas à me remonter les bugs Sachawolf Edit : Ben suite à un problème technique sur le market pas d'upload.

Elfnoir commented 10 years ago

Salut! Peux-tu me donner l'url de ton plugin stp, je n'arrive pas à le trouver :-(

sachaw0lf commented 10 years ago

Salut, Je suis en vacances. Je le publies des que je rentre Sachawolf

--- Message initial ---

De : "Elfnoir" notifications@github.com Envoyé : 15 mai 2014 00:13 A : "ldleman/yana-server" yana-server@noreply.github.com Cc: "sachawolf" sachawolf@live.fr Objet : Re: [yana-server] Comment intégrer des modules de températures dans YANA? (#72)

Salut! Peux-tu me donner l'url de ton plugin stp, je n'arrive pas à le trouver :-(


Reply to this email directly or view it on GitHub: https://github.com/ldleman/yana-server/issues/72#issuecomment-43144710

sachaw0lf commented 10 years ago

Hello Plugin publié en attente de validation :-) @ bientôt Sach@w0lf

Elfnoir commented 10 years ago

peux-tu le mettre à dispo sur un lien partagé stp? j'ai trop hâte !!! :-D

sachaw0lf commented 10 years ago

Hello, Idleman l'a rajouté sur le Market Sachaw0lf

Date: Thu, 22 May 2014 13:47:39 -0700 From: notifications@github.com To: yana-server@noreply.github.com CC: sachawolf@live.fr Subject: Re: [yana-server] Comment intégrer des modules de températures dans YANA? (#72)

peux-tu le mettre à dispo sur un lien partagé stp? j'ai trop hâte !!! :-D

— Reply to this email directly or view it on GitHub.

Elfnoir commented 10 years ago

Bonjour, J'ai des difficultés à aller sur le market et quand j'y arrive, j'ai une erreur au téléchargement. Peut-tu le mettre autre part stp? Merci!

sachaw0lf commented 10 years ago

Hello. Si tu as un mail je te l envoie comme ca.

--- Message initial ---

De : "Elfnoir" notifications@github.com Envoyé : 24 mai 2014 12:09 A : "ldleman/yana-server" yana-server@noreply.github.com Cc: "sachawolf" sachawolf@live.fr Objet : Re: [yana-server] Comment intégrer des modules de températures dans YANA? (#72)

Bonjour, J'ai des difficultés à aller sur le market et quand j'y arrive, j'ai une erreur au téléchargement. Peut-tu le mettre autre part stp? Merci!


Reply to this email directly or view it on GitHub: https://github.com/ldleman/yana-server/issues/72#issuecomment-44083048

sachaw0lf commented 10 years ago

Hello, Je profite de 5 minutes de libre pour venir aux nouvelles. Est-ce que tu as réussi à faire fonctionner le plugin ? Je travaille sur la V2 avec historique des températures et graphs si possible. @ bientôt sach@w0lf

Elfnoir commented 10 years ago

comme je n'y arrive toujours pas, je me suis dis: On efface tout et on recommence! à force de tout écraser, et repartir de 0 depuis plusieurs mois, je vais finir par faire un trou dans la carte SD du RPI :-p Mais cela doit être le prix à payer pour les non initiés comme moi... Mais cessons de pleurer: en voulant réinstaller ton plugin à partir de l'interface Web de Yana, j'ai le message d'erreur suivant: "Warning: file_get_contents(http://market.idleman.fr/http://market.idleman.fr/plugins/1400740027-5.zip): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/yana-server/action.php on line 446" Saurais-tu comment y remédier stp? Merci! ... sinon, j'attends ta v2 pour continuer de m'arracher les cheveux!

sachaw0lf commented 10 years ago

Bonjour, Oui alors ça devrait être du au zip. Je vais remettre le plugin sur le market au départ le fichier de description du plugin n'était pas à la racine du ZIP comme demandé par Idleman :coupdefouet: Je remets très vite !

Date: Sun, 20 Jul 2014 10:38:50 -0700 From: notifications@github.com To: yana-server@noreply.github.com CC: sachawolf@live.fr Subject: Re: [yana-server] Comment intégrer des modules de températures dans YANA? (#72)

comme je n'y arrive toujours pas, je me suis dis: On efface tout et on recommence! à force de tout écraser, et repartir de 0 depuis plusieurs mois, je vais finir par faire un trou dans la carte SD du RPI :-p

Mais cela doit être le prix à payer pour les non initiés comme moi...

Mais cessons de pleurer: en voulant réinstaller ton plugin à partir de l'interface Web de Yana, j'ai le message d'erreur suivant:

"Warning: file_get_contents(http://market.idleman.fr/http://market.idleman.fr/plugins/1400740027-5.zip): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/yana-server/action.php on line 446"

Saurais-tu comment y remédier stp? Merci!

— Reply to this email directly or view it on GitHub.

Elfnoir commented 10 years ago

ah ça va mieux pour l'installation :-) par contre, toujours le même message d'erreur: Dernière réception : Warning: date() expects parameter 2 to be long, string given in /var/www/yana-server/plugins/sensor/sensor.plugin.disabled.php on line 249

Bon ben je continue de chercher :-(

sachaw0lf commented 10 years ago

Bonjour, Désolé du retard mais mon p'tit bout est arrivé y'a une semaine donc là on est un peu débordé :-) Alors j'ai trouvé l'erreur, je l'ai corrigé et je vais publier un nouveau plugin rectifié. @+

Elfnoir commented 10 years ago

Bonjour, En lisant tes explicatifs dans le fichier Read me, tu indiques qu'il faut créer un lien symbolique vers la base de données 'ln -s'; où doit se faire cette commande stp? dans un fichier que l'on doit créer? ou une ligne de commande à taper dans n'importe quelle endroit de l'arborescence stp? et lorsque j'essaye de rendre 'radioReception' en Deamon, j'ai le messages: "insserv: script radioReception is not an executable regular file, skipped!" après avoir mis radioReception dans le répertoire /etc/init.d :-( Peux-tu m'en dire plus stp? Je pense que mes sondes de températures émettent, mais je ne vois que "°C" dans l'interface Yana :-(

D'ailleurs, où en es-tu de ta version 2, as-tu pu avancer? Et enfin, tu donnes la possibilité d'avoir des capteurs 'Température' et 'Température+Humidité dans ton script'; c'est à base de DHT11 ou 22? quel script mets-tu dans les Arduinos? Merci de tes retours!!

sachaw0lf commented 10 years ago

Bonjour,Ouh là, que de questions pour mon petit cerveau pas réveillé :-) Alors d'abord pour le lien symbolique, tu te places dans le dossier sensor (du plugin donc) et tu fais "ln -s ../../db/database.db ou .database.db selon l'install"Alors on ne peut pas lancer radioReception direct comme ça en daemon (ca serait trop simple) et pas glop pour le shell :-) Dans le dossier script il y a un autre radioReception (actuce ! :-p ) , c'est lui qu'il faut copier dans init.d c'est un script shell réellement.Pour la V2 standby pour le moment, la naissance du petit dernier m'a pris pas mal de temps donc là je vais pouvoir m'y remettre doucement vu qu'il commence à faire ses nuits.Je vais également revoir le README afin d'être plus explicite, tu es le seul retour que j'ai donc je ne sais pas trop ce qu'il en est du reste.Oui en fait, j'anticipe qu'on puisse y mettre n'importe quel type de sensor (capteur) là ce sont les sonde températures mais on peut appliquer le principe des tutos d'idleman à tout ce qu'on veut.D'où le fait d'avoir mis un type pour les sensorVoilà voilàJ'espère que c'est un peu plus clair pour toi.@ ++ Date: Mon, 8 Sep 2014 15:31:40 -0700 From: notifications@github.com To: yana-server@noreply.github.com CC: sachawolf@live.fr Subject: Re: [yana-server] Comment intégrer des modules de températures dans YANA? (#72)

Bonjour,

En lisant tes explicatifs dans le fichier Read me, tu indiques qu'il faut créer un lien symbolique vers la base de données 'ln -s'; où doit se faire cette commande stp? dans un fichier que l'on doit créer? ou une ligne de commande à taper dans n'importe quelle endroit de l'arborescence stp?

et lorsque j'essaye de rendre 'radioReception' en Deamon, j'ai le messages: "insserv: script radioReception is not an executable regular file, skipped!" après avoir mis radioReception dans le répertoire /etc/init.d :-(

Peux-tu m'en dire plus stp? Je pense que mes sondes de températures émettent, mais je ne vois que "°C" dans l'interface Yana :-(

D'ailleurs, où en es-tu de ta version 2, as-tu pu avancer?

Et enfin, tu donnes la possibilité d'avoir des capteurs 'Température' et 'Température+Humidité dans ton script'; c'est à base de DHT11 ou 22? quel script mets-tu dans les Arduinos?

Merci de tes retours!!

— Reply to this email directly or view it on GitHub. =

Elfnoir commented 9 years ago

bon.... ben j'abandonne :-) J'ai acheté une antenne rfxcom, + domoticz, et ça marche de folie :-)

Bon courage pour la suite :-)

Le 9 septembre 2014 10:20, sachawolf notifications@github.com a écrit :

Bonjour,Ouh là, que de questions pour mon petit cerveau pas réveillé :-) Alors d'abord pour le lien symbolique, tu te places dans le dossier sensor (du plugin donc) et tu fais "ln -s ../../db/database.db ou .database.db selon l'install"Alors on ne peut pas lancer radioReception direct comme ça en daemon (ca serait trop simple) et pas glop pour le shell :-) Dans le dossier script il y a un autre radioReception (actuce ! :-p ) , c'est lui qu'il faut copier dans init.d c'est un script shell réellement.Pour la V2 standby pour le moment, la naissance du petit dernier m'a pris pas mal de temps donc là je vais pouvoir m'y remettre doucement vu qu'il commence à faire ses nuits.Je vais également revoir le README afin d'être plus explicite, tu es le seul retour que j'ai donc je ne sais pas trop ce qu'il en est du reste.Oui en fait, j'anticipe qu'on puisse y mettre n'importe quel type de sensor (capteur) là ce sont les sonde températures mais on peut appliquer le principe des tutos d'idleman à tout ce qu'on veut.D'où le fait d'avoir mis un type pour les sensorVoilà voilàJ'espère que c'est un peu plus clair pour toi.@ ++ Date: Mon, 8 Sep 2014 15:31:40 -0700 From: notifications@github.com To: yana-server@noreply.github.com CC: sachawolf@live.fr Subject: Re: [yana-server] Comment intégrer des modules de températures dans YANA? (#72)

Bonjour,

En lisant tes explicatifs dans le fichier Read me, tu indiques qu'il faut créer un lien symbolique vers la base de données 'ln -s'; où doit se faire cette commande stp? dans un fichier que l'on doit créer? ou une ligne de commande à taper dans n'importe quelle endroit de l'arborescence stp?

et lorsque j'essaye de rendre 'radioReception' en Deamon, j'ai le messages: "insserv: script radioReception is not an executable regular file, skipped!" après avoir mis radioReception dans le répertoire /etc/init.d :-(

Peux-tu m'en dire plus stp? Je pense que mes sondes de températures émettent, mais je ne vois que "°C" dans l'interface Yana :-(

D'ailleurs, où en es-tu de ta version 2, as-tu pu avancer?

Et enfin, tu donnes la possibilité d'avoir des capteurs 'Température' et 'Température+Humidité dans ton script'; c'est à base de DHT11 ou 22? quel script mets-tu dans les Arduinos?

Merci de tes retours!!

— Reply to this email directly or view it on GitHub. =

— Reply to this email directly or view it on GitHub https://github.com/ldleman/yana-server/issues/72#issuecomment-54938369.

sachaw0lf commented 9 years ago

Hello, Je compatis, j'ai bien du mal à avancer également de mon côté et donc le plugin V2 est au point mort même si bientôt fini. Je vais prochainement tester les mêmes tutos mais avec des transceivers NRF24L01 en 2,4Ghz et plus en RF433 car trop de perturbations et de déchets... Je vous tiendrai informer des avancées une fois le temps libre revenu. En tout cas merci d'avoir testé ça me permet de voir que bien que ça fonctionnait chez moi l'environnement était pour beaucoup. Bon amusement avec tes nouveaux joujoux ;-) Sachawolf

Date: Sat, 27 Sep 2014 03:46:46 -0700 From: notifications@github.com To: yana-server@noreply.github.com CC: sachawolf@live.fr Subject: Re: [yana-server] Comment intégrer des modules de températures dans YANA? (#72)

bon.... ben j'abandonne :-)

J'ai acheté une antenne rfxcom, + domoticz, et ça marche de folie :-)

Bon courage pour la suite :-)

Le 9 septembre 2014 10:20, sachawolf notifications@github.com a écrit :

Bonjour,Ouh là, que de questions pour mon petit cerveau pas réveillé :-)

Alors d'abord pour le lien symbolique, tu te places dans le dossier sensor

(du plugin donc) et tu fais "ln -s ../../db/database.db ou .database.db

selon l'install"Alors on ne peut pas lancer radioReception direct comme ça

en daemon (ca serait trop simple) et pas glop pour le shell :-) Dans le

dossier script il y a un autre radioReception (actuce ! :-p ) , c'est lui

qu'il faut copier dans init.d c'est un script shell réellement.Pour la V2

standby pour le moment, la naissance du petit dernier m'a pris pas mal de

temps donc là je vais pouvoir m'y remettre doucement vu qu'il commence à

faire ses nuits.Je vais également revoir le README afin d'être plus

explicite, tu es le seul retour que j'ai donc je ne sais pas trop ce qu'il

en est du reste.Oui en fait, j'anticipe qu'on puisse y mettre n'importe

quel type de sensor (capteur) là ce sont les sonde températures mais on

peut appliquer le principe des tutos d'idleman à tout ce qu'on veut.D'où le

fait d'avoir mis un type pour les sensorVoilà voilàJ'espère que c'est un

peu plus clair pour toi.@ ++

Date: Mon, 8 Sep 2014 15:31:40 -0700

From: notifications@github.com

To: yana-server@noreply.github.com

CC: sachawolf@live.fr

Subject: Re: [yana-server] Comment intégrer des modules de températures

dans YANA? (#72)

Bonjour,

En lisant tes explicatifs dans le fichier Read me, tu indiques qu'il faut

créer un lien symbolique vers la base de données 'ln -s'; où doit se faire

cette commande stp? dans un fichier que l'on doit créer? ou une ligne de

commande à taper dans n'importe quelle endroit de l'arborescence stp?

et lorsque j'essaye de rendre 'radioReception' en Deamon, j'ai le

messages: "insserv: script radioReception is not an executable regular

file, skipped!" après avoir mis radioReception dans le répertoire

/etc/init.d :-(

Peux-tu m'en dire plus stp? Je pense que mes sondes de températures

émettent, mais je ne vois que "°C" dans l'interface Yana :-(

D'ailleurs, où en es-tu de ta version 2, as-tu pu avancer?

Et enfin, tu donnes la possibilité d'avoir des capteurs 'Température' et

'Température+Humidité dans ton script'; c'est à base de DHT11 ou 22? quel

script mets-tu dans les Arduinos?

Merci de tes retours!!

Reply to this email directly or view it on GitHub. =

Reply to this email directly or view it on GitHub

https://github.com/ldleman/yana-server/issues/72#issuecomment-54938369.

— Reply to this email directly or view it on GitHub. =