Aller au contenu

Détecteur Fgms-001 Et Eclairage Avec Fgs211


forumAD

Messages recommandés

Bonsoir,

J'ai quelques petits soucis avec mon code attaché.

 

Le code fonctionne correctement c'est à  dire à  chaque détection, la lumière s'allume pour le temps spécifié.

 

Mais le problème set que vu que je 'aimerais pas allumer la lumière la journée, j'ai spécifié avec la fonction os.date l'intervalle horaire.

Dès lors, le code ne fonctionne plus;

j'ai entre autre une erreur du style: " [ERROR] 20:59:20: line 12: attempt to compare number with nil"

 

Quelqu'un pourrait m'aider?

Merci

 

 

:

 

 

post-1368-0-63043100-1416687559_thumb.png

Lien vers le commentaire
Partager sur d’autres sites

Pourquoi passer par du LUA ou un scénario : Tu peux associer directement le FGMS au FGS, et cela fonctionne parfaitement. Et après dans les paramètres du FGMS tu lui dis de ne s'allumer que lorsqu'il fait moins qu'un seuil de luminosité.

Exemple de paramètre àentrer (Que j'ai chez moi sur 3 FGMS) :

name;value;description
UIMessageSendTime;0;
ClassConfigure;0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;
ClassGeneric;49;
ClassSupport;48,49,86,112,114,122,128,132,133,134,142,143,145,156,239;
ClassVersion;1,1,1,1,1,1,1,1,1,1,1,1,1,1,1;
DeviceControlType;0;
DeviceIcon;51;
Disabled;0;
EmailNotificationID;0;
EmailNotificationType;0;
EndPoint;0;
IsBatteryOperated;1;
Log; ;
LogTemp;;
NeedConfigure;5;
NodeID;28;
ParametersTemplate;270;
ParentID;1;
PollingRetryError;0;
PollingTime;;
PollingTimeNext;;
PollingTimeSec;0;
ProductInfo;1,15,8,0,16,1,2,4;
PushNotificationID;0;
PushNotificationType;0;
RequestNodeNeighborState;0;
RequestNodeNeighborStateTimeStemp;0;
SensorSupport;;
ShowChildren;0;
SmsNotificationID;0;
SmsNotificationType;0;
SortOrder;999;
Type;;
Unit;kPa;
UnitSensor;;
UserDescription;;
Value;0;
ValueSensor;;
ZwaveCompany;Fibar Group;
ZwaveInfo;3,3,67;
ZwaveVersion;2,4;
Parameters;[
  {
    "id": 1,
    "size": 1,
    "value": 15,
    "lastSetValue": 15
  },
  {
    "id": 2,
    "size": 1,
    "value": 8,
    "lastSetValue": 8
  },
  {
    "id": 3,
    "size": 1,
    "value": 0,
    "lastSetValue": 0
  },
  {
    "id": 4,
    "size": 1,
    "value": 2,
    "lastSetValue": 2
  },
  {
    "id": 6,
    "size": 2,
    "value": 8,
    "lastSetValue": 8
  },
  {
    "id": 8,
    "size": 1,
    "value": 2,
    "lastSetValue": 2
  },
  {
    "id": 9,
    "size": 2,
    "value": 100,
    "lastSetValue": 100
  },
  {
    "id": 12,
    "size": 1,
    "value": 0,
    "lastSetValue": 0
  },
  {
    "id": 14,
    "size": 1,
    "value": 255,
    "lastSetValue": 255
  },
  {
    "id": 16,
    "size": 1,
    "value": 0,
    "lastSetValue": 0
  },
  {
    "id": 20,
    "size": 1,
    "value": 30,
    "lastSetValue": 30
  },
  {
    "id": 22,
    "size": 2,
    "value": 30,
    "lastSetValue": 30
  },
  {
    "id": 24,
    "size": 1,
    "value": 0,
    "lastSetValue": 0
  },
  {
    "id": 26,
    "size": 1,
    "value": 0,
    "lastSetValue": 0
  },
  {
    "id": 40,
    "size": 2,
    "value": 0,
    "lastSetValue": 0
  },
  {
    "id": 42,
    "size": 2,
    "value": 300,
    "lastSetValue": 300
  },
  {
    "id": 60,
    "size": 1,
    "value": 0,
    "lastSetValue": 0
  },
  {
    "id": 62,
    "size": 2,
    "value": 600,
    "lastSetValue": 600
  },
  {
    "id": 64,
    "size": 2,
    "value": 600,
    "lastSetValue": 600
  },
  {
    "id": 66,
    "size": 2,
    "value": 65531,
    "lastSetValue": 65531
  },
  {
    "id": 80,
    "size": 1,
    "value": 6,
    "lastSetValue": 6
  },
  {
    "id": 81,
    "size": 1,
    "value": 10,
    "lastSetValue": 10
  },
  {
    "id": 82,
    "size": 2,
    "value": 0,
    "lastSetValue": 0
  },
  {
    "id": 83,
    "size": 2,
    "value": 1000,
    "lastSetValue": 1000
  },
  {
    "id": 86,
    "size": 1,
    "value": 18,
    "lastSetValue": 18
  },
  {
    "id": 87,
    "size": 1,
    "value": 28,
    "lastSetValue": 28
  },
  {
    "id": 89,
    "size": 1,
    "value": 1,
    "lastSetValue": 1
  }
];
AssociationSet;[
  {
    "groupID": 1,
    "devices": [
      1,
      2
    ]
  },
  {
    "groupID": 2,
    "devices": [
      1
    ]
  },
  {
    "groupID": 3,
    "devices": [
      1
    ]
  }
];
AssociationView;[
  {
    "groupID": 1,
    "devices": [
      1,
      2
    ]
  },
  {
    "groupID": 2,
    "devices": [
      1
    ]
  },
  {
    "groupID": 3,
    "devices": [
      1
    ]
  }
];
Dead;0;

Lien vers le commentaire
Partager sur d’autres sites

Je ne suis pas spécialiste LUA, mais dans ton code, ligne 12, tu mélanges un peu tout.

Je ne peux pas copier coller la ligne car tu as mis un screenshot, mais làtu compares un coup une chaine, un coup un nombre, un coup tu appelles la variable direct, et l'autre comme si c'était un tableau[]

J'ai du mal àcomprendre ce que tu voulais tester sur cette ligne...

Lien vers le commentaire
Partager sur d’autres sites

if (sonde_mouvement == '1' and sonde_mouvement['hour'] >= 18 and sonde_mouvement['hour'] <= 07then

 

Sur cette ligne j'aimerais juste dire que si les condition du variable "sonde_mouvement" sont réunis c'est à  dire si la variable est active et l'heure est comprise entre 18:00 et 07:00 alors il faut exécuter la routine;

 

@Lazer, Tu penses que ce n'est pas juste comme façon de déclarer?

Lien vers le commentaire
Partager sur d’autres sites

OK, voici le code:

 

-------------------

--[[
%% properties
7 value
%% globals
--]]

--local sonde_mouvement     

local sonde_mouvement = os.date("*t");
sonde_mouvement = fibaro:getValue(7, 'value')
    
    if (sonde_mouvement == '1' and sonde_mouvement['hour'] >= 18 and sonde_mouvement['hour'] <= 07) then
      --if (sonde_mouvement == '1') then
      fibaro:debug("statut lumiere rez= ON");    
    fibaro:call(39, 'turnOn');    
    fibaro:sleep(500000);     
      fibaro:debug("statut lumiere rez= OFF");    
    fibaro:call(39, 'turnOff');
    
    end

-------------------

Lien vers le commentaire
Partager sur d’autres sites

Essaye ça, non testé :

--[[
%% properties
7 value
%% globals
--]]

--local sonde_mouvement     

local currentDate = os.date("*t")
local sonde_mouvement = fibaro:getValue(7, 'value')

if ( sonde_mouvement and (currentDate.hour >= 18 or currentDate.hour <= 7) ) then
	fibaro:debug("statut lumiere rez= ON");    
	fibaro:call(39, 'turnOn');    
	fibaro:sleep(500000);     
	fibaro:debug("statut lumiere rez= OFF");    
	fibaro:call(39, 'turnOff');
end

Par contre, le gros sleep() c'est crade.

Ce que tu veux faire se fait simplement avec GEA, sans coder de LUA, tu devrais faire un tour sur les topics GEA et Support GEA.

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

Yes!! ça fonctionne du premier coup.

 

Normalement après 7:00 demain, la détection ne devrait plus être en marche jusqu'à  18:00.

Merci beaucoup @Lazer.

 

Je veis suivre ton conseil et voir un peu à  quoi ça ressemble ce GEA.

Lien vers le commentaire
Partager sur d’autres sites

Mode GEA ON :)
 

--[[
%% properties
7 value
%% globals
--]]

-- Eteint la lampe après 5 minutes
local autoOff = GEA.add(39, 5*60, "", {{"turnOff"}})
-- Allume la lampe et redémarre le timer des 5 minutes
GEA.add(7, -1, "", {{"turnOn", 39}, {"RestartTask", autoOff}, {"Time", "18:00", "07:00"} })
Lien vers le commentaire
Partager sur d’autres sites

930546TShirt.png

Photo prise par un traître qui mérite le bà»cher. 

 

J'avais préparer le T-Shirt pour faire concurrence au badge miniature de fredo lors d'une rencontre entre personne de bonne compagnie ... bien évidement à  l'exception du traître qui a pris la photo.

  • Upvote 3
Lien vers le commentaire
Partager sur d’autres sites

@ OK Steven,

Ce soir je vais débuter par tester ton code pour les lumières pour l'initiation. J'aimerais comprendre vraiment le fonctionnement de GEA.

J'ai bien compris que ce n'est pas un module virtuel qu'il faut importer et juste adapter les identifiants et l'adresse IP plus les id des modules.

ça a l'air beaucoup plus complexe et demande plus de logique de programmation.

 

Donc si je comprends bien les choses:

 

J'ai crée le GEA_tasks, j'ai crée un scenario" vide" dans scène que j'avais appelé GEA. J'ai inséré ton script GEA.lua dans ma scène GEA.

basé sur ton code, tu me conseilles de tout supprimer et de réadapter tout ce dont j'ai besoin?

Par exemple, comme je ne vais pas faire de scénario concernant l'ouverture d'un garage ou frigo,....je peux enlever cette partie.

Mes questions peuvent paraître bêtes, mais le but c'est de commencer sur une bonne base.

 

Merci d'avance de ton précieux support.

Lien vers le commentaire
Partager sur d’autres sites

  • 1 an après...

 

Mode GEA ON :)

 

--[[
%% properties
7 value
%% globals
--]]

-- Eteint la lampe après 5 minutes
local autoOff = GEA.add(39, 5*60, "", {{"turnOff"}})
-- Allume la lampe et redémarre le timer des 5 minutes
GEA.add(7, -1, "", {{"turnOn", 39}, {"RestartTask", autoOff}, {"Time", "18:00", "07:00"} })

 

je déterre ce topic pour poser une petite question: dans l'exemple GEA donné qui consiste à  créer un allumage automatique sur détection avec extinction automatique au bout de 5 minutes, je comprends que s'il y a détection pendant le premier intervalle de 5 minutes, GEA va quand même éteindre la lampe au bout de 5 minutes. 

Y a t'il un moyen avec GEA de repousser le timer de 5 minutes en 5 minutes en cas de détection ?

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...