-
Compteur de contenus
819 -
Inscription
-
Dernière visite
-
Jours gagnés
4
Tout ce qui a été posté par flamalex
-
Quick App - GCE Electronics IPX800 v4 et EcoDevice RT2
flamalex a répondu à un(e) sujet de Lazer dans Quick App Developpeur
oui en effet Lazer, merci c'est top ! "MultilevelSensor" il me reste les formules à appliquer parce que la j'ai 0 Entrée Analogique Virtuelle 29 analogue > valeur: x/100 et valeur > analogue: x*100 Entrée Analogique Virtuelle 30 analogue > valeur: x-2500 et valeur > analogue: x+2500 -
Quick App - GCE Electronics IPX800 v4 et EcoDevice RT2
flamalex a répondu à un(e) sujet de Lazer dans Quick App Developpeur
bonsoir, j'ai configuré ce super QA avec 8 IN et 8 OUT, je souhaite récupérer 2 infos de l'ipx800 v4 qui viennent du X200 des sondes PH et REDOX (ORP) j'ai essayé d'activer ces 2 lignes, mais pas de réaction, ni d'erreur {device = {name = "PH piscine", type = "X200 sonde PH"}, value = {command = "Get", argument = "VA" , pin = "VA29"}}, {device = {name = "ORP piscine", type = "X200 sonde ORP"}, value = {command = "Get", argument = "VA" , pin = "VA30"}}, auriez vous une idée? dans l'ipx j'ai Entrée Analogique Virtuelle 29 analogue > valeur: x/100 et valeur > analogue: x*100 Entrée Analogique Virtuelle 30 analogue > valeur: x-2500 et valeur > analogue: x+2500 -
Quick App - Synology Surveillance Station
flamalex a répondu à un(e) sujet de Lazer dans Quick App Developpeur
oui en effet, je pense aussi que le firmware était ancien 5.050.13 Est ce que ça veut dire qu'il ne me proposera jamais la v3 lorsqu'elle ne sera plus en beta? qu'est ce que le zwave 4.33?- 122 réponses
-
- surveillance station
- camera
-
(et 2 en plus)
Étiqueté avec :
-
Quick App - Synology Surveillance Station
flamalex a répondu à un(e) sujet de Lazer dans Quick App Developpeur
alors j'avais lu avant d'obtenir la hc3 cette "subtilité" il ne m'a rien proposé et je n'ai rien vu, sauf zwave v.4.33 donc mais je n'ai encore intégré aucun module- 122 réponses
-
- surveillance station
- camera
-
(et 2 en plus)
Étiqueté avec :
-
Quick App - Synology Surveillance Station
flamalex a répondu à un(e) sujet de Lazer dans Quick App Developpeur
en effet en 5.090.17, ça fonctionne de suite merci- 122 réponses
-
- surveillance station
- camera
-
(et 2 en plus)
Étiqueté avec :
-
Quick App - Synology Surveillance Station
flamalex a répondu à un(e) sujet de Lazer dans Quick App Developpeur
nostalgie, nostalgie !!!! ça me rappelle mes débuts avec la HC2!! lol je n'ai pas de bol, 1er boot, install sans méfiance la beta (pas comme avec la HC2, croiser les doigts, l'apero.......) install du QA surveillance station et hop !!! hop hop "on n'est chez fibaro, coco !! " EDIT: j'avais quand même été bien briffé à l'époque donc j'ai save avant (mais j'ai rien dessus:) ) je re passe en 5.090.17- 122 réponses
-
- surveillance station
- camera
-
(et 2 en plus)
Étiqueté avec :
-
Quick App - Synology Surveillance Station
flamalex a répondu à un(e) sujet de Lazer dans Quick App Developpeur
lol pff je n'avais pas lu !!! dsl mais je suis en 5.093.21 (beta) et c'est le 1er QA que j'installe [31.01.2022] [19:27:03] [DEBUG] [QA_SURVSTATION_21]: New child device name : 'HK_EXT_GARAGE' - type : 'com.fibaro.binarySwitch' - class : 'MyChild' [31.01.2022] [19:27:03] [ERROR] [QA_SURVSTATION_21]: ./include/main.lua:804: attempt to concatenate a nil value (field 'name') [31.01.2022] [19:27:03] [ERROR] [QA_SURVSTATION_21]: Error : child creation failed [31.01.2022] [19:27:03] [DEBUG] [QA_SURVSTATION_21]: New child device name : 'HK_ENTREE' - type : 'com.fibaro.binarySwitch' - class : 'MyChild' [31.01.2022] [19:27:03] [ERROR] [QA_SURVSTATION_21]: ./include/main.lua:804: attempt to concatenate a nil value (field 'name') [31.01.2022] [19:27:03] [ERROR] [QA_SURVSTATION_21]: Error : child creation failed [31.01.2022] [19:27:03] [DEBUG] [QA_SURVSTATION_21]: New child device name : 'HK_TERRASSE_PISCINE' - type : 'com.fibaro.binarySwitch' - class : 'MyChild' [31.01.2022] [19:27:03] [ERROR] [QA_SURVSTATION_21]: ./include/main.lua:804: attempt to concatenate a nil value (field 'name') [31.01.2022] [19:27:03] [ERROR] [QA_SURVSTATION_21]: Error : child creation failed [31.01.2022] [19:27:03] [DEBUG] [QA_SURVSTATION_21]: New child device name : 'HK_TERRASSE_PASTEL' - type : 'com.fibaro.binarySwitch' - class : 'MyChild' [31.01.2022] [19:27:03] [ERROR] [QA_SURVSTATION_21]: ./include/main.lua:804: attempt to concatenate a nil value (field 'name') [31.01.2022] [19:27:03] [ERROR] [QA_SURVSTATION_21]: Error : child creation failed- 122 réponses
-
- surveillance station
- camera
-
(et 2 en plus)
Étiqueté avec :
-
Quick App - Synology Surveillance Station
flamalex a répondu à un(e) sujet de Lazer dans Quick App Developpeur
Bonjour, je saute le pas, vers HC3 1er test, QA surveillance station ./include/main.lua:804: attempt to concatenate a nil value (field 'name') Error : child creation failed j'ai cette erreur pour les 10 cam j'ai des cam dont le nom est "doorbird" et d'autres "HK TERRASSE" , je précise car je pensais que c'était un problème lié à l'espace entre "HK" et "TERRASSE"- 122 réponses
-
- surveillance station
- camera
-
(et 2 en plus)
Étiqueté avec :
-
chose faite: boot automatique suivant nombre de cycle, durée d'arrosage pré programmé dans le VD (plus besoin d'y revenir) --variable depart cycle à 0, cycle actuel = 0 et nbr de cycle est >0 alors on incremente le cycle actu à +1 en demarrant le 1er arrosage GEA.add({{"Global", "DEPART_CYCLE_ARROZ", "0"},{"Global","cycle_actu_arroz", "0"},{"Global+", "NbrAroz", "0"},{"Global","GEA_Statut","ON"},{"Global","Mode_Arrosage","AUTO"},{"Global","OK_FOR_ARROZ","1"},{"Global","OK_FOR_ARROZ_2","1"},{"Global","pluie_dans_lheure","0"},{"Global+" , "TempExt", "20"},{"Global-","HumidExt","70"},{"Global","Saison","Eté"},{"Time", "Sunset+1", "Sunset+3"},{"Global","ARROSAGE_ON_OFF","0"}},30 , "c'est {global, Saison}, cela fait {global, difference_jr} jour(s) qu'il fait beau,humidite {global, HumidExt}% et pas de pluie avant {global, ConsigTps_av_Arros}jour(s), donc allumer arrosage #time#",{{"Global", "cycle_actu_arroz", "inc+"},{"Global", "DEPART_CYCLE_ARROZ", "1"},{"turnOn",id["ARROSAGE"]}}) -- on demarre le cycle apres la durée aroz et on incremente de 1 si le cycle actuel est < à la consigne GEA.add ({{"TurnOff", id["ARROSAGE"]},{"Global", "DEPART_CYCLE_ARROZ", "1"},{"Global","Mode_Arrosage","AUTO"},{"Function", function() if ((tonumber(fibaro:getGlobalValue('cycle_actu_arroz'))) < (tonumber(fibaro:getGlobalValue('NbrAroz')))) then return true end end}},"DureeAroz", -- "00:20" "Nous sommes au {global,cycle_actu_arroz} ème cycle/ {global,NbrAroz}cycles demandés, arrosage à l'arret depuis {global,DureeAroz}, alors on demarre", {{"TurnOn", id["ARROSAGE"]},{"Global", "cycle_actu_arroz", "inc+"}}) -- on arret le cycle apres la durée aroz GEA.add ({{"TurnOn", id["ARROSAGE"]},{"Global", "DEPART_CYCLE_ARROZ", "1"},{"Global","Mode_Arrosage","AUTO"}},"DureeAroz", -- "00:20" "Nous sommes au {global,cycle_actu_arroz}ème cycle/ {global,NbrAroz}cycles demandés, arrosage en marche depuis {global,DureeAroz}, alors on arrete", {{"TurnOff", id["ARROSAGE"]}}) -- en cas de cycle EGALE à la consigne, on arret tt et on passe variables à 0 --GEA.add ({{"Function", function() if ((tonumber(fibaro:getGlobalValue('cycle_actu_arroz'))) > (tonumber(fibaro:getGlobalValue('NbrAroz')))) then return true end end},{"Global", "DEPART_CYCLE_ARROZ", "1"}},30, "cycle_Actu=cycle_Consigne donc = reset 0",{{"Global", "cycle_actu_arroz", "0"},{"Global", "DEPART_CYCLE_ARROZ", "0"},{"turnOff",id["ARROSAGE"]}}) GEA.add( {{"Global", "cycle_actu_arroz", {"Global", "NbrAroz"}},{"Global", "DEPART_CYCLE_ARROZ", "1"}}, 30, "cycle_Actu=cycle_Consigne donc = reset 0",{{"Global", "cycle_actu_arroz", "0"},{"Global", "DEPART_CYCLE_ARROZ", "0"}} ) parenthèse: le "RAZ_cycle actu" est prévu au cas ou !!! (mais normalement, si on ne touche à rien, pas besoin d'y venir sur ce VD) au cas ou vous couperiez les cycles pendant le fonctionnement auto, il permettra de mettre à zero le cycle en cours. j'aurai pu l'intégrer au bouton "AUTO" mais pour mes tests j'ai fait comme ça bon, maintenant (l'année prochaine peut être! ) il me restera à intégrer la quantité de pluie passé et régule auto du nombre de cycle (quantité d'eau apportée)
-
Bonjour, je bloque sur l'évolution de mon VD arrosage, Help Me j'ai une variable qui contient un nombre "NbrAroz" (celui ci est incrémenté ou décrémenté sur un VD, c'est une consigne de nombre de cycle exemple: 1, 2 ou 3) j'ai une 2 eme variable "DureeAroz" (idem on règle la durée de l'arrosage dans le VD ex: (5, 10 ou 15min) puis une 3eme varibale, "PauseAroz" l'espacement entre les cycles qui ne peut pas être inferieur à la durée d'un cycle. je souhaite que l'arrosage se lance x temps suivant le nombre de cycle espacé de la durée de pause on va faire plus simple, on va partir sur les 2 variables en disant que la DuréeAroz = PauseAroz Exemple: si arrosage tourne depuis 5min (DureeAroz) alors stop pause de 5min (DureeAroz) répéter x fois suivant le nombre de cycle "NbrAroz" EDIT: --boot --variable depart cycle à 0, cycle actuel = 0 et nbr de cycles demandés est >0 alors on incremente le cycle actu à +1 en demarrant le 1er arrosage GEA.add({{"Global", "DEPART_CYCLE_ARROZ", "0"},{"Global","cycle_actu_arroz", "0"},{"Global+", "NbrAroz", "0"},{"Global","GEA_Statut","ON"},{"Global","Mode_Arrosage","AUTO"},{"Global","OK_FOR_ARROZ","1"},{"Global","OK_FOR_ARROZ_2","1"},{"Global","pluie_dans_lheure","0"},{"Global+" , "TempExt", "20"},{"Global-","HumidExt","70"},{"Global","Saison","Eté"},{"Time", "Sunset+1", "Sunset+3"},{"Global","ARROSAGE_ON_OFF","0"}},30 , "c'est {global, Saison}, cela fait {global, difference_jr} jour(s) qu'il fait beau,humidite {global, HumidExt}% et pas de pluie avant {global, ConsigTps_av_Arros}jour(s), donc allumer arrosage #time#",{{"Global", "cycle_actu_arroz", "inc+"},{"Global", "DEPART_CYCLE_ARROZ", "1"},{"turnOn",id["ARROSAGE"]}}) -- on demarre le cycle apres la durée aroz et on incremente de 1 si le cycle actuel est < à la consigne GEA.add ({{"TurnOff", id["ARROSAGE"]},{"Global", "DEPART_CYCLE_ARROZ", "1"},{"Global","Mode_Arrosage","AUTO"},{"Function", function() if ((tonumber(fibaro:getGlobalValue('cycle_actu_arroz'))) < (tonumber(fibaro:getGlobalValue('NbrAroz')))) then return true end end}},"DureeAroz", -- "00:20" "Nous sommes au {global,cycle_actu_arroz} ème cycle/ {global,NbrAroz}cycles demandés, arrosage à l'arret depuis {global,DureeAroz}, alors on demarre", {{"TurnOn", id["ARROSAGE"]},{"Global", "cycle_actu_arroz", "inc+"}}) -- on arret le cycle apres la durée aroz GEA.add ({{"TurnOn", id["ARROSAGE"]},{"Global", "DEPART_CYCLE_ARROZ", "1"},{"Global","Mode_Arrosage","AUTO"}},"DureeAroz", -- "00:20" "Nous sommes au {global,cycle_actu_arroz}ème cycle/ {global,NbrAroz}cycles demandés, arrosage en marche depuis {global,DureeAroz}, alors on arrete", {{"TurnOff", id["ARROSAGE"]}}) -- en cas de cycle EGALE à la consigne, on arret tt et on passe variables à 0 GEA.add ({{"Function", function() if ((tonumber(fibaro:getGlobalValue('cycle_actu_arroz'))) > (tonumber(fibaro:getGlobalValue('NbrAroz')))) then return true end end},{"Global", "DEPART_CYCLE_ARROZ", "1"}},30, "cycle_Actu=cycle_Consigne donc = reset 0",{{"Global", "cycle_actu_arroz", "0"},{"Global", "DEPART_CYCLE_ARROZ", "0"},{"turnOff",id["ARROSAGE"]}})
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Bonjour, voila un an que je ne m'étais pas re plongé dans ce module / scèneGEA bon!! j'essaie de faire simple plutôt qu'une usine à gaz je cherche à lancer l'arrosage 3 fois 5 min toutes les 15 min au couché de soleil si toutes les conditions sont OK. je suis en v6.12 nota: --OK FOR ARROZ =1 = si l'écart devient sup à la consigne alors on est ok pour arrosage -- OK_FOR_ARROZ_2=1 si consigne futur respectée il pleuvra pas avant la valeur de la consigne alors ok pas de pluie avant valeur consigne -- le "global,DureeAroz" c'est le temps d'arrosage renseigné dans mon module, dans l'exemple 5 min d'arrosage. -- si la variable Arrosage_auto et humidité(actuelle) < 60%, Eté, au couché du soleil alors allumer arrosage (1) -- en mode auto GEA.add({{"Global","Arrosage_auto","1"},{"Global","OK_FOR_ARROZ","1"},{"Global","OK_FOR_ARROZ_2","1"},{"Global-" , "HumidExt", "60"},{"Global","Saison","Eté"},{"Days", "Weekday"},{"Time", "Sunset+1"}}, 30 , "c'est le {global, Saison} cela fait {global, difference_jr} jour(s) qu'il fait beau, humidite {global, HumidExt}% et pas de pluie avant {global, ConsigTps_av_Arros}jour(s), donc allumer arrosage #time#") (2) -- Si l'arrosage est en marche depuis x minutes alors je l'arrête GEA.add ({{"TurnOn", id["ARROSAGE"]}},"DureeAroz", -- "00:05" "arrosage en marche depuis {global,DureeAroz}, alors on arrete", {"TurnOff", id["ARROSAGE"]}) en (1) je peux ajouter l'action d'arroser en fin de ligne, sans problème en (2) l'arrosage s'arrêtera après 5 minutes mais comment le faire repartir 15 minutes après ? puis encore 15 min...... EDIT: ça fait usine à gaz, mais en attendant ça fait le job! GEA.add({{"Global","Arrosage_auto","1"},{"Global","OK_FOR_ARROZ","1"},{"Global","OK_FOR_ARROZ_2","1"},{"Global","GO_CYCLE1_ARROZ","STOP"},{"Global","CYCLE_PAUSE_15","0"},{"Global-" , "HumidExt", "60"},{"Global","Saison","Eté"},{"Days", "Weekday"},{"Time", "Sunset+1"}}, 30 , "Weather bit c'est le {global, Saison} cela fait {global, difference_jr} jour(s) qu'il fait beau, humidite {global, HumidExt}% et pas de pluie avant {global, ConsigTps_av_Arros}jour(s), donc allumer arrosage #time#",{{"Global","GO_CYCLE1_ARROZ","OK"},{"Global","CYCLE_PAUSE_15","1"},{"turnOn",id["ARROSAGE"]}}) --=======ICI on lance un cycle de 3x15min en AUTO -- TEST cycle 3 x 5min, pause de 15min -- en mode arrosage AUTO, la variable GO_CYCLE1_ARROZ = OK/STOP et TurnOn ARROSAGE -- 1er cycle {"Global","CYCLE_PAUSE_15", 1 2 ou 3 GEA.add ({{"TurnOn", id["ARROSAGE"]},{"Global","Mode_Arrosage","AUTO"},{"Global","CYCLE_PAUSE_15","1"},{"Global","GO_CYCLE1_ARROZ","OK"}},"DureeAroz", -- "00:20" "Cycle 1 arrosage en marche depuis {global,DureeAroz}, alors on arrete", {{"TurnOff", id["ARROSAGE"]},{"Global","CYCLE_PAUSE_15","2"}}) GEA.add({{"Global","CYCLE_PAUSE_15","2"},{"turnOff", id["ARROSAGE"]},{"Global","GO_CYCLE1_ARROZ","OK"}},15*60,"" ,{{"turnOn",id["ARROSAGE"]}}) -- 2em cycle {"Global","CYCLE_PAUSE_15", 1 2 ou 3 GEA.add ({{"TurnOn", id["ARROSAGE"]},{"Global","Mode_Arrosage","AUTO"},{"Global","CYCLE_PAUSE_15","2"},{"Global","GO_CYCLE1_ARROZ","OK"}},"DureeAroz", -- "00:20" "Cycle 2 arrosage en marche depuis {global,DureeAroz}, alors on arrete", {{"TurnOff", id["ARROSAGE"]},{"Global","CYCLE_PAUSE_15","3"}}) GEA.add({{"Global","CYCLE_PAUSE_15","3"},{"turnOff", id["ARROSAGE"]},{"Global","GO_CYCLE1_ARROZ","OK"}},15*60,"" ,{{"turnOn",id["ARROSAGE"]}}) -- 3em cycle {"Global","CYCLE_PAUSE_15", 1 2 ou 3 GEA.add ({{"TurnOn", id["ARROSAGE"]},{"Global","Mode_Arrosage","AUTO"},{"Global","CYCLE_PAUSE_15","3"},{"Global","GO_CYCLE1_ARROZ","OK"}},"DureeAroz", -- "00:20" "Cycle 3 arrosage en marche depuis {global,DureeAroz}, alors on arrete", {{"TurnOff", id["ARROSAGE"]},{"Global","CYCLE_PAUSE_15","0"},{"Global","GO_CYCLE1_ARROZ","STOP"}}) maintenant je voudrai, comme pour DureeAroz, définir manuellement le nombre de cycle sur VD sans devoir aller dans GEA
-
Bonjour, voila un an que je ne m'étais pas re plongé dans ce module / scèneGEA bon!! j'essaie de faire simple plutôt qu'une usine à gaz je cherche à lancer l'arrosage 3 fois 5 min toutes les 15 min au couché de soleil si toutes les conditions sont OK. je suis en GEA v6.12 nota: --OK FOR ARROZ =1 = si l'écart devient sup à la consigne alors on est ok pour arrosage -- OK_FOR_ARROZ_2=1 si consigne futur respectée il pleuvra pas avant la valeur de la consigne alors ok pas de pluie avant valeur consigne -- le "global,DureeAroz" c'est le temps d'arrosage renseigné dans mon module, dans l'exemple 5 min d'arrosage. -- si la variable Arrosage_auto et humidité(actuelle) < 60%, Eté, au couché du soleil alors allumer arrosage (1) -- en mode auto GEA.add({{"Global","Arrosage_auto","1"},{"Global","OK_FOR_ARROZ","1"},{"Global","OK_FOR_ARROZ_2","1"},{"Global-" , "HumidExt", "60"},{"Global","Saison","Eté"},{"Days", "Weekday"},{"Time", "Sunset+1"}}, 30 , "c'est le {global, Saison} cela fait {global, difference_jr} jour(s) qu'il fait beau, humidite {global, HumidExt}% et pas de pluie avant {global, ConsigTps_av_Arros}jour(s), donc allumer arrosage #time#") (2) -- Si l'arrosage est en marche depuis x minutes alors je l'arrête GEA.add ({{"TurnOn", id["ARROSAGE"]}},"DureeAroz", -- "00:05" "arrosage en marche depuis {global,DureeAroz}, alors on arrete", {"TurnOff", id["ARROSAGE"]}) en (1) je peux ajouter l'action d'arroser en fin de ligne, sans problème en (2) l'arrosage s'arrêtera après 5 minutes mais comment le faire repartir 15 minutes après ? puis encore 15 min......
-
ça m'intéresse aussi
-
Bonjour, sur Arduino, je mesure la vitesse du vent avec un anémomètre "pulse" vitesse appelée "vitesseVent" je cherche à envoyer cette vitesse dans une variable globale de la HC2 "testvent" voici un code, qui n'est pas fonctionnel, avec ce code j'envoie une valeur "fixe et prédéfinie" à la hc2 mais ce n'est pas ce que je cherche. pourriez vous m'aider par avance merci voici le code complet: #define ANEMOMETRE 1 //pin D3, interruption n°1 volatile unsigned int countAnemometre = 0; unsigned long previousMillis= 0; unsigned long previousMillis2= 0; unsigned long delaiAnemometre = 3000L; //3 secondes unsigned long delaiProgramme = 60000L; //60 sec float gust(0); //vent max cumulé sur 1 min float wind(0); //vent moyen cumulé sur 1 min int nbAnemo = 0; //nb d'occurence de mesure Anemo float vitesseVent(0); //vent moyen cumulé sur 1 min #include <Ethernet.h> #include <SPI.h> byte mac[] = { 0x90, 0xA2, 0xDA, 0x0E, 0xA5, 0x7E }; //physical mac address 90:A2:DA:0E:A5:7E byte ip[] = { 192, 168, 1, 175 }; // ip in lan byte gateway[] = { 192, 168, 1, 1 }; // internet access via router byte subnet[] = { 255, 255, 255, 0 }; //subnet mask IPAddress server(192,168,1,24); //HC2 FIBARO EthernetClient client; void setup() { Ethernet.begin(mac, ip); Serial.begin(9600); delay(1000); attachInterrupt(ANEMOMETRE,interruptAnemometre,RISING) ; pinMode(3, INPUT); } /* * Fonction d'interruption de l'anémomètre qui incrémente un compteur à chaque impulsion */ void interruptAnemometre(){ countAnemometre++; } void loop(){ int BP = digitalRead(3); // Lecture du capteur unsigned long currentMillis = millis(); // read time passed //Récupération des infos de l'anémomètre toutes les 3 sec //Enregistrement cumulé des valeurs if (currentMillis - previousMillis > delaiAnemometre){ previousMillis = millis(); // vitesseVent = (PI * RAYON * 2 * countAnemometre)/3*3.6; //3 = durée de prise de mesure (3sec) vitesseVent = (0.83 * countAnemometre)/3*3.6; //3 = durée de prise de mesure (3sec) if(vitesseVent>gust) gust = vitesseVent; wind += vitesseVent; nbAnemo++; countAnemometre = 0; Serial.print("Vent:"); Serial.println(vitesseVent); } //Toutes les minutes, compilation des valeurs et envoi au serveur if (currentMillis - previousMillis2 > delaiProgramme){ previousMillis2 = millis(); float avgwind = wind / nbAnemo; Serial.print("Wind AVG : "); Serial.println(avgwind); Serial.print("Gust : "); Serial.println(gust); //RAZ des compteurs qui ont servi a calculé les valeurs moyennes sur 1 min wind = 0; gust = 0; nbAnemo = 0; } if (client.available()) { char c = client.read(); Serial.print(c); } delay(1000); Serial.println("connecting..."); String PostData = "{\r\n\"value\":\"0\"\r\n}"; //JSON data to send if (client.connect(server,80)) { Serial.println("connected"); client.print("PUT /api/globalVariables/testvent"); //Fibaro Global Variable client.println(" HTTP/1.1"); client.println("Host: 192.168.1.24"); client.println("Authorization: Basic xxxxxxxxxxxxxx"); //need to insert base 64 user:password client.print("Content-Length: "); client.println(PostData.length()); client.println(); client.println(PostData); } else { Serial.println("Connection Failed."); } if (!client.connected()) { Serial.println(); Serial.println("disconnecting."); client.stop(); for(;;) ; } }
-
bonjour, Communication du Particle Photon --> HC2 : comment remplacer dans ton code le bouton (NduBoutton) par une variable je souhaite remonter une info vers la hc2 (en renseignant une globalevariable) est ce possible? dans ce style: #define ANEMOMETRE 1 //pin D3, interruption n°1 #define PI 3.1415 #define RAYON 0.10 //rayon en mètre de l'anémomètre en mètre volatile unsigned int countAnemometre = 0; unsigned long previousMillis= 0; unsigned long previousMillis2= 0; unsigned long delaiAnemometre = 3000L; //3 secondes unsigned long delaiProgramme = 60000L; //60 sec float gust(0); //vent max cumulé sur 1 min float wind(0); //vent moyen cumulé sur 1 min int nbAnemo = 0; //nb d'occurence de mesure Anemo float vitesseVent(0); //vent moyen cumulé sur 1 min #include <Ethernet.h> #include <SPI.h> byte mac[] = { 0x90, 0xA2, 0xDA, 0x0E, 0xA5, 0x7E }; //physical mac address 90:A2:DA:0E:A5:7E byte ip[] = { 192, 168, 1, 175 }; // ip in lan byte gateway[] = { 192, 168, 1, 1 }; // internet access via router byte subnet[] = { 255, 255, 255, 0 }; //subnet mask IPAddress server(192,168,1,24); //HC2 FIBARO EthernetClient client; void setup() { Ethernet.begin(mac, ip); Serial.begin(9600); delay(1000); attachInterrupt(ANEMOMETRE,interruptAnemometre,RISING) ; pinMode(13, OUTPUT); pinMode(3, INPUT); Serial.println("connecting..."); String PostData = "{\r\n\"value\":\"'vitesseVent'\"\r\n}"; //JSON data to send if (client.connect(server,80)) { Serial.println("connected"); client.print("PUT /api/globalVariables/testvent"); //Fibaro Global Variable client.println(" HTTP/1.1"); client.println("Host: 192.168.1.24"); client.println("Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXx"); //need to insert base 64 user:password client.print("Content-Length: "); client.println(PostData.length()); client.println(); client.println(PostData); } else { Serial.println("Connection Failed."); } } /* * Fonction d'interruption de l'anémomètre qui incrémente un compteur à chaque impulsion */ void interruptAnemometre(){ countAnemometre++; } void loop(){ int BP = digitalRead(3); // Lecture du capteur if (BP == LOW) { digitalWrite(13, HIGH); // Allume la Led } else { digitalWrite(13, LOW); // Eteind la Led } unsigned long currentMillis = millis(); // read time passed //Récupération des infos de l'anémomètre toutes les 3 sec //Enregistrement cumulé des valeurs if (currentMillis - previousMillis > delaiAnemometre){ previousMillis = millis(); // vitesseVent = (PI * RAYON * 2 * countAnemometre)/3*3.6; //3 = durée de prise de mesure (3sec) vitesseVent = (0.83 * countAnemometre)/3*3.6; //3 = durée de prise de mesure (3sec) if(vitesseVent>gust) gust = vitesseVent; wind += vitesseVent; nbAnemo++; countAnemometre = 0; Serial.print("Vent:"); Serial.println(vitesseVent); } //Toutes les minutes, compilation des valeurs et envoi au serveur if (currentMillis - previousMillis2 > delaiProgramme){ previousMillis2 = millis(); float avgwind = wind / nbAnemo; Serial.print("Wind AVG : "); Serial.println(avgwind); Serial.print("Gust : "); Serial.println(gust); //RAZ des compteurs qui ont servi a calculé les valeurs moyennes sur 1 min wind = 0; gust = 0; nbAnemo = 0; } if (client.available()) { char c = client.read(); Serial.print(c); } if (!client.connected()) { Serial.println(); Serial.println("disconnecting."); client.stop(); for(;;) ; } }
-
hello, 5 ans !!!! j'ai un anémomètre (pulse) sur arduino, j'envoie la vitesseVent sur une page html, j'ai la valeur, par exemple, 22.5 qui s'affiche. sur la HC2, dans un VD comment la récupérer et l'afficher dans un label le code ci dessous ne fonctionne pas local selfId = fibaro:getSelfId() local ARDUINO = Net.FHttp("192.168.1.175", 4200) local response = ARDUINO:GET("vitesseVent") fibaro:call(selfId, "setProperty", "ui.Label8.value", response) merci pour vos retours EDIT: le code ci dessous fonctionne, il ne doit pas etre dans le bonne ordre, je n'arrive pas à remonter la valeur de la variable arduino vitesseVent vers la variable globale fibaro "testvent" je retrouve bien "vitesseVent" comme valeur dans la variable "testvent" mais ça ne s'actualise pas et ce n'est pas la "vrai" valeur puisque je devrai recuper un nombre #define ANEMOMETRE 1 //pin D3, interruption n°1 #define PI 3.1415 #define RAYON 0.10 //rayon en mètre de l'anémomètre en mètre volatile unsigned int countAnemometre = 0; unsigned long previousMillis= 0; unsigned long previousMillis2= 0; unsigned long delaiAnemometre = 3000L; //3 secondes unsigned long delaiProgramme = 60000L; //60 sec float gust(0); //vent max cumulé sur 1 min float wind(0); //vent moyen cumulé sur 1 min int nbAnemo = 0; //nb d'occurence de mesure Anemo float vitesseVent(0); //vent moyen cumulé sur 1 min #include <Ethernet.h> #include <SPI.h> byte mac[] = { 0x90, 0xA2, 0xDA, 0x0E, 0xA5, 0x7E }; //physical mac address 90:A2:DA:0E:A5:7E byte ip[] = { 192, 168, 1, 175 }; // ip in lan byte gateway[] = { 192, 168, 1, 1 }; // internet access via router byte subnet[] = { 255, 255, 255, 0 }; //subnet mask IPAddress server(192,168,1,24); //HC2 FIBARO EthernetClient client; void setup() { Ethernet.begin(mac, ip); Serial.begin(9600); delay(1000); attachInterrupt(ANEMOMETRE,interruptAnemometre,RISING) ; pinMode(13, OUTPUT); pinMode(3, INPUT); Serial.println("connecting..."); String PostData = "{\r\n\"value\":\"'vitesseVent'\"\r\n}"; //JSON data to send if (client.connect(server,80)) { Serial.println("connected"); client.print("PUT /api/globalVariables/testvent"); //Fibaro Global Variable client.println(" HTTP/1.1"); client.println("Host: 192.168.1.24"); client.println("Authorization: Basic XXXXXXXXXXXXXXXXX"); //need to insert base 64 user:password client.print("Content-Length: "); client.println(PostData.length()); client.println(); client.println(PostData); } else { Serial.println("Connection Failed."); } } /* * Fonction d'interruption de l'anémomètre qui incrémente un compteur à chaque impulsion */ void interruptAnemometre(){ countAnemometre++; } void loop(){ int BP = digitalRead(3); // Lecture du capteur if (BP == LOW) { digitalWrite(13, HIGH); // Allume la Led } else { digitalWrite(13, LOW); // Eteind la Led } unsigned long currentMillis = millis(); // read time passed //Récupération des infos de l'anémomètre toutes les 3 sec //Enregistrement cumulé des valeurs if (currentMillis - previousMillis > delaiAnemometre){ previousMillis = millis(); // vitesseVent = (PI * RAYON * 2 * countAnemometre)/3*3.6; //3 = durée de prise de mesure (3sec) vitesseVent = (0.83 * countAnemometre)/3*3.6; //3 = durée de prise de mesure (3sec) if(vitesseVent>gust) gust = vitesseVent; wind += vitesseVent; nbAnemo++; countAnemometre = 0; Serial.print("Vent:"); Serial.println(vitesseVent); } //Toutes les minutes, compilation des valeurs et envoi au serveur if (currentMillis - previousMillis2 > delaiProgramme){ previousMillis2 = millis(); float avgwind = wind / nbAnemo; Serial.print("Wind AVG : "); Serial.println(avgwind); Serial.print("Gust : "); Serial.println(gust); //RAZ des compteurs qui ont servi a calculé les valeurs moyennes sur 1 min wind = 0; gust = 0; nbAnemo = 0; } if (client.available()) { char c = client.read(); Serial.print(c); } if (!client.connected()) { Serial.println(); Serial.println("disconnecting."); client.stop(); for(;;) ; } }
-
un truc tt simple et rapide mais à tester avec des paliers tu passes une variable à 1 si humidité > à 60 pendant 3minutes puis une 2eme variable à 1 si > à 65% pendant 4 minutes puis une 3eme variable à 1 si > à 70% pendant 5mins une fois les 3 variables à 1 alors conditions réunies pour déclencher la VMC si tu as une montée soudaine de l'humidité, les 3 conditions seront vrai dans les 5min (à adapter) {"Value+", id["TxHumid_sdb_rdc"], 60}, 60*3, "", {{"Global","HUMID1","1"}} {"Value+", id["TxHumid_sdb_rdc"], 65}, 60*4, "", {{"Global","HUMID2","1"}} {"Value+", id["TxHumid_sdb_rdc"], 70}, 60*5, "", {{"Global","HUMID3","1"}} GEA.add({{"Global","HUMID1","1"},{"Global","HUMID2","1"},{"Global","HUMID3","1"}}, -1 ,"" ,{{"turnOn", id["CDE_VMC_RDC"]}}) --tu peux stopper VMC si humidité est de retour à la normale {"Value-", id["TxHumid_sdb_rdc"], 60}, 60*3, "", {{"Global","HUMID1","0"}} {"Value-", id["TxHumid_sdb_rdc"], 65}, 60*4, "", {{"Global","HUMID2","0"}} {"Value-", id["TxHumid_sdb_rdc"], 70}, 60*5, "", {{"Global","HUMID3","0"}} GEA.add({{"Global","HUMID1","0"}}, -1 ,"" ,{{"turnOff", id["CDE_VMC_RDC"]}}) alors attention, je n'ai rien testé, il y a surement plus simple et bien plus évolué, mais je ne suis pas un expert, ca peut être une piste et puis je t'avoue qu'en me relisant, j'ai franchement l'impression d'avoir zap un truc évident !!!! mais je ne sais pas encore bref, en attendant à tester
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
j’imagine ceci soit tu détermines une valeur de ref prédéfinie soit tu enregistres une valeur que tu estimes être l’étalon ds variable1 « valeur_de_ref » cette valeur de ref doit etre stable pendant 4h (par exemple) si variable2 « valeur_actuelle » différente de x pendant y temps alors allumer vmc pendant 30min ou jusqu’a ce que la variable2 soit égal à la 1. qu’en penses tu?
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
ok, nickel, donc le code est plus simple: tu peux alors créer un VD avec 2 boutons ON/OFF dans le ON: fibaro:setGlobal("ECL_EXT_MODE","AUTO") dans le OFF: fibaro:setGlobal("ECL_EXT_MODE","MANU") --Allumer Ecl ext---- --si DetecteurMVT alors allum Ecl ext la nuit si eclairage arreté GEA.add({id["DetecteurMVT"]},{"Value",id["LampeExterieur"],0}}, -1 , "", {{"Days", "Weekday, Weekend"},{"Time", "Sunset+1","Sunrise+2"},{"turnOn",id["LampeExterieur"]}}) -- eteindre Ecl Ext si pas de mouv et eclairage allumé et mode auto activé---- GEA.add({id["DetecteurMVT"],{"Value",id["LampeExterieur"],1},{"Global", "ECL_EXT_MODE", "AUTO"}}, -1 , "", {{"Inverse"},{"RestartTask",StopEclext1}}) StopEclext1 = GEA.add({id["DetecteurMVT"]},3*60 , "", {{"Inverse"},{"turnOff",id["LampeExterieur"]}}) -- repasser en auto apres x temps exemple 6h (mais cela veut dire que la lampe risque de rester allumer toute la nuit sans intervention de ta part!!) GEA.add({{"Global", "ECL_EXT_MODE", "MANU"}},6*60*60,"on passe variable de manu à auto apres 6h " , {{"Global", "ECL_EXT_MODE", "AUTO"}})
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
sinon avec une télécommande, sans grande certitude, je n'ai pas testé, tu auras ton ON/OFF --Allumer Ecl ext---- --si DetecteurMVT alors allum Ecl ext la nuit si eclairage arreté GEA.add({id["DetecteurMVT"]},{"Value",id["LampeExterieur"],0}}, -1 , "", {{"Days", "Weekday, Weekend"},{"Time", "Sunset+1","Sunrise+2"},{"turnOn",id["LampeExterieur"]}}) -- eteindre Ecl Ext si pas de mouv et eclairage allumé et mode auto activé---- GEA.add({id["DetecteurMVT"],{"Value",id["LampeExterieur"],1},{"Global", "Ecl_Ext_AUTO_MANU", "0"}}, -1 , "", {{"Inverse"},{"RestartTask",StopEclext1}}) StopEclext1 = GEA.add({id["DetecteurMVT"]},3*60 , "", {{"Inverse"},{"turnOff",id["LampeExterieur"]}}) --telecommande par variable, tu vas créer une variable Ecl_Ext_AUTO_MANU (ou une variable définie mode eclairage ext: auto/manu) GEA.add({{"CentralSceneEvent", id["REMOTE_MIPA"], 2, "HeldDown"}},-1,"on passe variable à 1, je ne veux pas que l'eclairage s'arrete" , {{"Global", "Ecl_Ext_AUTO_MANU", "1"}}) GEA.add({{"CentralSceneEvent", id["REMOTE_MIPA"], 5, "HeldDown"}},-1,"on passe variable à 0, je veux arreter ecl ext apres 3 min" , {{"Global", "Ecl_Ext_AUTO_MANU", "0"}}) --cela implique que lorsque tu ne veux pas que la lampe ext s'arrete alors il faut que tu utilises telecommande pour stopper le "mode auto" (passage variable à 1) et donc lorsque tu as terminé d'etre en ext, passer la variable à 0 pour repasser en extinction auto ttes les 3min. --ou repasser en auto apres x temps exemple 6h (mais cela veut dire que la lampe risque de rester allumer toute la nuit sans intervention de ta part!!) GEA.add({{"Global", "Ecl_Ext_AUTO_MANU", "1"}},6*60*60,"on passe variable à 0 apres 6h pour passer en auto" , {{"Global", "Ecl_Ext_AUTO_MANU", "0"}}) EDIT: j'ai réactualisé code ci dessus avec la notion lever coucher soleil ainsi que éclairage déja sur on ou sur off ainsi que le passage en auto apres 6h
- 12 330 réponses
-
- 1
-
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
@mipa quel est ton utilisation de cette lamp ext? exemple: j’ai un projecteur exterieur au dessus du garage, utilisation 1: il s’allume entre coucher et levé soleil si dection de mouvement et porte garage fermée avec un temps de marche de x min. utilisation 2: il s’allume entre coucher et lever soleil si porte de garage ouverte + detection mouv et reste allumé tant que celle ci n’est pas fermée. une fois la porte de garage fermée et pas de mouvement alors extinction instantanée ou x min. en resumé, utilisation 1, pour passage rapide dans la zone utilisation 2, passage plus long. si tu es avec des amis en ext, tu dois avoir une porte fenetre ou baie ouverte, tu pourrais utiliser un capteur de porte et ainsi passer en « utilisation 2 » qu’en penses tu? --cas 2: --allumer si detection mouv, lampe eteinte la nuit (que la porte soit ouverte ou fermée ça s'allume) GEA.add({{"Value",id["DetecteurMVT"],1},{"Value",id["LampeExterieur"],0}}, -1 , "", {{"Days", "Weekday, Weekend"},{"Time", "Sunset+1","Sunrise+2"},{"turnOn",id["LampeExterieur"]}}) --eteindre si pas de mouv, lumiere allumée la nuit et porte Ext fermée GEA.add({{"Value",id["DetecteurMVT"],0},{"Value",id["LampeExterieur"],1},{"Value",id["PORTE_EXT"],0}},3*60 , "", {{"turnOff",id["LampeExterieur"]}})
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
Bonjour, qu'est qu'une lecture courte? j'ai ceci comme error dans le debug merci [DEBUG] 11:30:45: Actualisation des labels [DEBUG] 11:30:45: quantité de pluie à j+1:11 [DEBUG] 11:30:45: pleut il à j+1?:oui [DEBUG] 11:30:45: quantité de pluie à j+2:3 [DEBUG] 11:30:45: pleut il à j+2?:oui [DEBUG] 11:30:47: quantité de pluie à j+3:0 [DEBUG] 11:30:47: pleut il à j+3?:non [DEBUG] 11:30:58: 2020-09-26 11:30:58.492644 [ error] Handshake error: short read [DEBUG] 11:31:02: Scene activée [DEBUG] 11:31:02: Pas de code ville - Utilisation de la localisation de la HC2 [DEBUG] 11:31:02: Envoie de la requête URL vers WeatherBit [DEBUG] 11:31:02: Appel de l'URL du jour... [DEBUG] 11:31:02: Appel de l'URL des prévisions... [DEBUG] 11:31:12: Actualisation des labels [DEBUG] 11:31:12: quantité de pluie à j+1:11 [DEBUG] 11:31:12: pleut il à j+1?:oui [DEBUG] 11:31:12: quantité de pluie à j+2:3
-
et si tu fais comme ça: --ECL portail GEA.add({"Value",id["Eclairage_Portail"],1}, 15*60, "Extinction automatique Ecl portail #time#", {{"turnOff", id["Eclairage_Portail"]}}) edit: remplace eclairage portail par « Leds_Terrasse »
- 12 330 réponses
-
- support
- script lua
-
(et 1 en plus)
Étiqueté avec :
-
oui il te faut une box jeedom ou un rpi sur lesuel tu installes jeedom. dans market jeedom, tu as une appli alexa qui va te permettre de dialoguer avec alexa et donc de donner des ordres (action sur tes modules......) puis tu as une 2eme appli, « apialexa » qui va te permettre de faire parler alexa! c’est celle ci que j’utilise. ensuite tu as des requêtes http ds un vd fibaro qui te permettent de dialoguer entre fibaro et jeedom (et donc alexa) bref! ya pas plus simple:) l’investissement, kkes euros pour le rpi et bcp bcp bcp de temps
-
System "D" j'utilise l'api Alexa sur jeedom, de fibaro, je fais parler Alexa (comme la tablette android murale) -- tablette entrée ANDROID=Net.FHttp("192.168.1.17",1080);--ip de la tablette android ANDROID:GET("/?action=tts&message=sonnette%20portillon&voice=com.google.android.tts&volume=70"); -- enceinte BOSE par alexa Alexa=Net.FHttp("192.168.1.173", 80);--ip Alexa:GET("/core/api/jeeApi.php?apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx&type=cmd&id=1102&title=montitre&message=<speak>sonnette%20portillon%20</speak>");