Aller au contenu

Yaps - Présence Simulator, Un De Plus


sebcbien

Messages recommandés

t'inkiètt ;-)

 

la 3.3 l'est mais n'est pas propre et ne se lance pas entre minuit et endtime.

 

là  je vais laisser la 3.5.1 tourner 2 jours, refaire les test de override, de lancement, d'arrêt... ça prends du temps mais normalement le nettoyage et la dernière fonctionnalité ne devraient pas avoir impacté la stabilité de la 3.3

 

A toi de voir

 

Je suis toujours en 3.6 ;-)

 

Oh qu'elle est stable et rapide ma box ;-)

Lien vers le commentaire
Partager sur d’autres sites

ça àl'air IMPECCABLE. Merci !

[DEBUG] 17:19:13: Mon 17/08 Presence Simulation | v3.5.1 Starting up
[DEBUG] 17:19:13: Mon 17/08 --------------------------------------------------------------------------
[DEBUG] 17:19:13: Mon 17/08 Sunset is at 20:59 + Sunset Shift of 10min = Start Time at 21:09
[DEBUG] 17:19:13: Mon 17/08 End of Simulation: 00:15 + random of 15min
[DEBUG] 17:19:13: Mon 17/08 Checking for actions every minute.
[DEBUG] 17:19:13: Mon 17/08 Simu_presence = 0, Aborting Simulation scene
[DEBUG] 22:48:25: Mon 17/08 Presence Simulation | v3.5.1 Starting up
[DEBUG] 22:48:25: Mon 17/08 --------------------------------------------------------------------------
[DEBUG] 22:48:25: Mon 17/08 Sunset is at 20:59 + Sunset Shift of 10min = Start Time at 21:09
[DEBUG] 22:48:25: Mon 17/08 End of Simulation: 00:15 + random of 15min
[DEBUG] 22:48:25: Mon 17/08 Checking for actions every minute.
[DEBUG] 22:48:25: Mon 17/08 It's sunset time -> Simulation ON
[DEBUG] 22:48:25: Mon 17/08 Presence Simulation started. Will stop at: 00:15 + rand(15min) : 00:18
[DEBUG] 22:48:25: Mon 17/08 Turning On Always_On lights:
[DEBUG] 22:48:25: Mon 17/08 Device: Lum_PetitSalon Turned On
[DEBUG] 22:48:25: Mon 17/08 Now randomizing other lights...
[DEBUG] 22:48:26: Mon 17/08 light ID:Lum_SalleManger status:1
[DEBUG] 22:48:26: Mon 17/08 Entering loop of 9.22 minutes
[DEBUG] 22:49:14: Scene already active! Aborting this new instance !!
[DEBUG] 22:49:18: Mon 17/08 TurnOff All Simulation lights!
[DEBUG] 22:49:18: Mon 17/08 Device: Lum_SdBRez_Douche Off
[DEBUG] 22:49:18: Mon 17/08 Sleeping 0 minute(s) before next TurnOff
[DEBUG] 22:49:18: Mon 17/08 Device: Lum_SalleManger Off
[DEBUG] 22:49:18: Mon 17/08 Sleeping 0 minute(s) before next TurnOff
[DEBUG] 22:49:18: Mon 17/08 Device: Prise_Bureau Off
[DEBUG] 22:49:18: Mon 17/08 Sleeping 0 minute(s) before next TurnOff
[DEBUG] 22:49:18: Mon 17/08 Device: Lum_SdBEtage Off
[DEBUG] 22:49:18: Mon 17/08 TurnOff All Always_On lights!
[DEBUG] 22:49:18: Mon 17/08 Device: Lum_PetitSalon Off
[DEBUG] 22:49:18: Mon 17/08 Turned On light Lights_On_if_Simulation_deactivated:
[DEBUG] 22:49:18: Mon 17/08 Lum_HallEntrée
[DEBUG] 22:49:18: Mon 17/08 Presence Simulation deactivated
[DEBUG] 22:49:18: Mon 17/08 Simu_presence = 0, Aborting Simulation scene
Lien vers le commentaire
Partager sur d’autres sites

as-tu placé une caméra chez moi ?

Je l'ai installé à  17h00 et vai commencer des tests. En tout cas j'aime déjà  le log du début qui confirme la bonne prise en compte du parentérale

 

En tout cas ta femme était en petite tenue pendant ta sieste...

Des sous vêtements noirs lui iraient mieux que les rouges avec des froufrous ! :) :)   :)

 

edit: parentérale c'est ton correcteur ??? ;-)

 

https://fr.wikipedia.org/wiki/Voie_parent%C3%A9rale

Lien vers le commentaire
Partager sur d’autres sites

bonjour,

 

j'essaye d'utilisé ton code mais je n'arrive pas a le faire démarrer a une heure fixe et terminer a une heure fixe 

 

le but est quand je suis en mode vacances tout les jour démarrer la simulation a 00H15 et la terminer a 23H45 pour en fait que tout la journée soit simulé aléatoirement

 

est-ce possible avec ton script ?

 

merci 

Lien vers le commentaire
Partager sur d’autres sites

Aie...

Il n'a pas été prévu pour ça...

Je ne suis pas devant mon PC, mais de mémoire dans la boucle principale (la boucle while true do a la fin), il y a une ligne commentée qui permet de forcer la variable sunset unix hour. Essaye avec Midnight + 15*60... Mais sans garantie

Sent from my SM-N910F using Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

dans cette boucle ci ?

-- Main Loop 
while (simu=="1") do 
 
-- Condition to start simulation 
simu = fibaro:getGlobal("Simu_presence"); 
manualOveride = fibaro:getGlobal("overideSimuSunset"); 
 
if (os.date("%H:%M") >= start_simu) then 
sunset = 1 
else 
sunset = 0 
end 
 
if ((simu == "1") and os.time() <= endtime and sunset == 1 ) or ((simu == "1") and manualOveride == "1" ) then 
SimulatorPresenceEngine:Launch(); --launch the simulation. 
 
if manualOveride == "1" and sunset == 0 then 
Debug("grey", "Manual override activated") 
elseif sunset == 1 then 
Debug("grey", "It's sunset time, starting simulation") 
end 
 
if sunset == 0 and manualOveride == "0" then 
Debug("grey", "Not manual override so Presence Simulation will not be activated"); 
elseif os.time() >= endtime then 
Debug("grey", "Time is now after:"..stop_hour..":"..stop_minute.."deactivating"); 
SimulatorPresenceEngine:TurnOff(ID_devices_lights); 
Debug("red","Simulation is deactivated") 
pushMessage("Lights simulation stopped") 
end 
end 
end 

je ne vois pas quel ligne commenter 

Lien vers le commentaire
Partager sur d’autres sites

Bon, moi j'ai une question. Est-ce que YAPS peut faire la même chose avec des lumières commandées par VD ? Je m'explique, j'ai une IPX et des MILIGHT commandés par des VD (on/off).. c'est donc des lumières, mais inutilisable dans la simulation car tu ne prends en compte que des "matériels".

Comme je vois que t'aimes bien faire fonctionner tes neurones, je te laisse chercher une solution :D Merci d'avance seb :P

Lien vers le commentaire
Partager sur d’autres sites

@sebcbien,

Nous sommes sorti hier soir, et la simulation semble s'être très bien déroulée.

Mais lorsqu'on est rentré, la lampe qui devait s'allumer en fin de simulation ne s'est pas allumée.

Pour info, cette lampe fait partie des lampes àallumer aléatoirement.

Voici la fin du log


[DEBUG] 00:05:04: Sun 23/08 light ID:Lum_SdBEtage status:1
[DEBUG] 00:05:04: Sun 23/08 Entering loop of 9.82 minutes
[DEBUG] 00:14:55: Sun 23/08 light ID:Lum_SalleManger status:1
[DEBUG] 00:14:55: Sun 23/08 Entering loop of 4.02 minutes
[DEBUG] 00:15:01: Sun 23/08 TurnOff All Simulation lights!
[DEBUG] 00:15:01: Sun 23/08 Device: Lum_SdBRez_Douche Off
[DEBUG] 00:15:01: Sun 23/08 Sleeping 2 minute(s) before next TurnOff
[DEBUG] 00:17:01: Sun 23/08 Device: Lum_SalleManger Off
[DEBUG] 00:17:01: Sun 23/08 Sleeping 2 minute(s) before next TurnOff
[DEBUG] 00:19:01: Sun 23/08 Device: Prise_Bureau Off
[DEBUG] 00:19:01: Sun 23/08 Sleeping 2 minute(s) before next TurnOff
[DEBUG] 00:21:01: Sun 23/08 Device: Lum_SdBEtage Off
[DEBUG] 00:21:01: Sun 23/08 TurnOff All Always_On lights!
[DEBUG] 00:21:01: Sun 23/08 Device: Lum_PetitSalon Off
[DEBUG] 00:21:01: Sun 23/08 Presence Simulation deactivated
[DEBUG] 00:21:01: Sun 23/08 Presence Simulation will restart tomorrow.
[DEBUG] 00:21:01: Sun 23/08 Sunset is around 20:47 + Sunset Shift of 10min = Start Time around 20:59
[DEBUG] 01:09:17: Scene already active! Aborting this new instance !!
[DEBUG] 01:10:01: Sun 23/08 Simu_presence = 0, Aborting Simulation scene

ainsi que ma config

--[[ 
%% autostart
%% properties 
%% globals 
Simu_presence 
--]] 

---------------------------------------
local version = "3.5.1"; 
-- YAPS Presence Simulation by SebcBien
-- August 2015
---------------------------------------
--V3.5.1
-- Fixed launch between midnight and endtime (if endtime is after midnight)
-- clean up code midnight-endtime

if (fibaro:countScenes() > 1) then 
	fibaro:debug("Scene already active! Aborting this new instance !!"); 
	fibaro:abort(); 
end 
--------------------- USER SETTINGS --------------------------------
local id = {
	LAMPE_Rez_Salon		  = 552,
    LAMPE_Rez_SalleManger = 550,
	LAMPE_Rez_SdB 		  = 41,
    LAMPE_Rez_Hall        = 51,
	LAMPE_Etage_Bureau	  = 24,
	LAMPE_Etage_SdB		  = 126,
	PHONE_NEXUS_5		  = 357,
	}

  
local Stop_hour = "00"; -- Hour when you want Simulation to stop 
local Stop_minute = "15"; -- Minute of the hour you want Simulation to stop 
-- note 1: the script will not exit while waiting the random time of the last light turned on. So end time can be longer than specified end time. (even more with var Random_max_TurnOff_duration)
-- note 2: if the global variable changes during the same wait time as above, it will exit immediately (when back home while Simulation runs)
local Sunset_offset = 10 -- number of minutes before or after sunset to activate Simulation
local Random_max_duration = 12; -- random time of light change in minutes --> here each device is on maximum 30min 
local Random_max_TurnOff_duration = 15; -- random time to add at the stop hour+stop minute so the Simulation can be more variable (0 to deactivate)
local Lights_always_on = {id["LAMPE_Rez_Salon"]} -- IDs of lights who will always stay on during Simulation - leave empty array if none -> {}
local Random_lights = {id["LAMPE_Rez_SdB"], id["LAMPE_Rez_SalleManger"], id["LAMPE_Etage_Bureau"], id["LAMPE_Etage_SdB"]} -- IDs of lights to use in Simulation 
local Activate_Push = true; -- activate push when Simulation starts and stops 
local Activate_FreeSms = false; -- activate push with Activate_FreeSms (Activate_Push must be true also) 
local Smartphones_push = {id["PHONE_NEXUS_5"]}; -- list of device receiving Push
local Lights_On_at_end_Simulation = 0; -- If next line is commented, no light will turn on after Simulation ends
--local Lights_On_at_end_Simulation = id["LAMPE_COULOIR"]; -- ID of a light (Only One) to turn on after Simulation ends (at specified Stop_hour & Stop_minute). Comment this line to turn off this feature
local Lights_On_if_Simulation_deactivated = 0; -- If next line is commented, no light will turn on after Simulation is stopped (by putting Simu_presence to 0)
local Lights_On_if_Simulation_deactivated = id["LAMPE_Rez_Hall"]; -- ID of a light (Only One) to turn on after Simulation is stopped (Simulation_). Comment this line to turn off this feature
--------------------- USER SETTINGS END ---------------------------- 
----------------------ADVANCED SETTINGS----------------------------- 
local Show_standard_debug = true; -- Debug displayed in white 
local Show_extra_debug = false; -- Debug displayed in orange 

Lien vers le commentaire
Partager sur d’autres sites

pour moi c'est normal, la simulation s'est arrêtée entre 0h15 et 0h21

puis elle a attendu le prochain sunset.

 

et à  1h10 vous êtes rentrés, la simulation ne tournais pas, donc pas d'arrêt de simulation, donc pas de lampe allumée.

 

je ferais une ligne gea style if entre 00h15 et sunrise et AT_home then lampe_rez_hall on

Lien vers le commentaire
Partager sur d’autres sites

Bon, moi j'ai une question. Est-ce que YAPS peut faire la même chose avec des lumières commandées par VD ? Je m'explique, j'ai une IPX et des MILIGHT commandés par des VD (on/off).. c'est donc des lumières, mais inutilisable dans la simulation car tu ne prends en compte que des "matériels".

Comme je vois que t'aimes bien faire fonctionner tes neurones, je te laisse chercher une solution :D Merci d'avance seb :P

pfouuu...  je vois le truc d'ici, id de vd, id bouton on, id bouton off, ca change vraiment beaucoup de choses :-/

Si je fais une V4 j'y penserai mais la pour le moment j'ai déjà  plein de trucs pour mes neurones ;-)

Lien vers le commentaire
Partager sur d’autres sites

@sebcbien,

Merci de ton analyse.

En effet je pourrais régler cela avec GEA.

Mais pour rendre la scène autonome, on pourrait faire que la lampe qui s'allume à  la fin de la simulation, ne dépende pas de la simulation.

 

Au moment où il écrit cette ligne dans le débug

[DEBUG] 01:10:01: Sun 23/08 Simu_presence = 0, Aborting Simulation scene

si entre sunset et next sunrise, alors allumer la lampe qui est précisée ici

local Lights_On_if_Simulation_deactivated = id["LAMPE_Rez_Hall"];

je ne connais pas la logique que tu as suivie pour créer ce simulateur, mais je pensais que c'était ce qu'il devait faire lorsque Simu_presence = 0

Lien vers le commentaire
Partager sur d’autres sites

la logique actuelle c'est que lorsqu'il est occupé a faire la simulation, s'il est interrompu, il analyse la raison de l'interruption (endtime ou simupresence=0) et déclenche deux procédure d'arrêt différents.

 

ensuite si c'est simupresence=0 alors la scène est arrêtée, sinon il entre dans une boucle de calcul et d'attente du prochain sunset.

 

dans cette boucle (la "while true do" tout a la fin), si simupresence passe a 0 alors il abort aussi. seulement ce test ne se fait que toutes les minutes pour ne pas charger la box.

 

comme tu vois l'architecture ne se prête pas trop a ce besoin et j'irais plutot chez Steven pour ca :-)

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

J'ai juste créé une fonction Mail

Au cas ou, pour les futures versions, il suffit  de changer la fonction Mail() par PushMessage()

Pour le moment, je n'ai fait que lors du lancement.

-- first start notifications
YAPS_Engine:EndTimeCalc();
Mail("Scheduled presence Simulation at "..YAPS_Engine:ReverseUnixTimeCalc("Sunset unix time", Sunset_unix_hour).." (Sunset: "..fibaro:getValue(1, "sunsetHour")..")");
Debug("green","Sunset is at "..fibaro:getValue(1, "sunsetHour").." + Sunset Shift of "..Sunset_offset.."min = Start Time at "..YAPS_Engine:ReverseUnixTimeCalc("Sunset unix time", Sunset_unix_hour));
Debug("green","End of Simulation: "..YAPS_Engine:ReverseUnixTimeCalc("End Simulation", End_simulation_time).." + random of "..Random_max_TurnOff_duration.."min");
Debug("green", "Checking for actions every minute.");
Is_first_launch = true
Lien vers le commentaire
Partager sur d’autres sites

idée :

Tu as déjà  créée un variable locale

local Smartphones_push = {id["PHONE_NEXUS_5"]}; -- list of device receiving Push

si la liste est vide => pas de push

 

De même, on crée une variable locale pour les mails

local Notif_mail = {id["Vincent_Mail"]}; -- list of users receiving mail

et ton engine de notification, parcours ces 2 tables si # entrées >0

Lien vers le commentaire
Partager sur d’autres sites

sur le principe ok, mais je ne veux supprrimer du push smartphone que le premier push qui dit que la simulation est prévue pour le soir à XX heures... et comme je suis toujours rentré avant, ça n'a aucun intérêt.

Par contre si la simulation commence (si je ne suis pas làun soir), je reçois un push, si je ne suis toujours pas làa la fin de la simulation, j'en reçois un autre ainsi que la programmation pour la prochaine fois.

Ca me semble être du push utile, pcq a la fin y'a tellement de push qu'on ne les lis plus

Autant en faire peu mais quand ça vaut vraiment la peine, tous les matins, ce push est inutile 98 fois sur 100

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...