Aller au contenu
zoydu33

Arrêt électrique d'une prise électrique piloté de type FGWP102 après détection de mise en veille d'appareil.

Recommended Posts

Je propose un scénario permettant un arrêt automatique d'alimentation électrique suite à la mise en veille d'un périphérique  (ordinateur, TV, ...). Le principe de fonctionnement est le suivant. Imaginons par exemple un ordinateur branché sur une prise FGWP102. En fonctionnement normal l'ordinateur consomme environ 500w et lorsqu'il est arrêté il continue de consommer 30W. Nous fixons une valeur seuil  de 50w avec un délai d'attente de 10 minutes dans le code du scénario avec une exécution toutes les 10 min (trigger). Dans ce cas de figure la HC3 arrêtera la prise lorsque la consommation passera en dessous de 50w pendant au moins 10min au moment de l'exécution du scénario. Je me base sur la lecture de l'historique  de la HC3 pour déterminer si délai de 10 min sans consommation au delà de 50w est respecté.

Le développement a été réalisé sur prise électrique FGP102 qui est capable de remonter régulièrement la consommation instantanée (donnée nécessaire au fonctionnement du scénario).

 

Code lua du déclencheur

{
  conditions = { {
      isTrigger = true,
      operator = "matchInterval",
      property = "cron",
      type = "date",
      value = {
        date = { "00", "10", "18", "6", "*", "2020" },
--Lancement de la scene toutes les 10 min en seconde (PERSONNALISABLE)
        interval = 1200
      }
    } },
  operator = "all"
}

 

 

Code lua de l'action

--Consommation de bascule (PERSONNALISABLE)
local SeuilPower = 50

--Intervalle de temps en minutes nécessaire avant d'arréter la prise pour une consommation inferieur au seuil (PERSONNALISABLE)
local DelaiTimeOnMin=10

--ID du module prise électrique (PERSONNALISABLE)
local IDdevice = 22


local DelaiTimeOnSeconde = DelaiTimeOnMin * 60
local jsonHistopower
local HistopowerEncode
local LongChaine
local i1, i2, Temp1, Temp2
local VerifSeuil = 0
i1=1
i2=0


-- Etat prise true/false
local jsonDeviceX= api.get('/devices?id=' .. IDdevice .. '')

local EtatDevice=jsonDeviceX["properties"]["value"]
---print(EtatDevice)
if EtatDevice == true then
print("Prise ON")

jsonHistopower= api.get('/energy/now-' .. DelaiTimeOnSeconde .. '/now/summary-graph/devices/power/' .. IDdevice .. '')

--local jsonHistopower= api.get('/energy/now-200/now/summary-graph/devices/power/26')
HistopowerEncode= json.encode(jsonHistopower)
--print(HistopowerEncode)
LongChaine=string.len(HistopowerEncode)
-- positionnement première virgule
Temp1,Temp2=string.find(HistopowerEncode,",",i1)
--print(Temp1)

--recherche positionnement virgule pour connaitre le nombre de couple de valeur
            while Temp1 ~= nil do
            i2=i2+1
            i1=Temp1+1
            Temp1,Temp2=string.find(HistopowerEncode,",",i1)
            end

-- nombre de couples de valeur
i2=(i2+1)/2
print(i2)

-- puissance du dernier couple
print(jsonHistopower[i2][2])

--Verification si existe un log de puissance superieur au seuil
VerifSeuil=0

for i1=1, i2 do
        if jsonHistopower[i1][2] > SeuilPower then
        VerifSeuil=1
        end
end

if VerifSeuil == 0 then
print("arret prise")
fibaro.call(IDdevice, 'turnOff')
end

else
print("Prise OFF")
end 

Les paramètres personnalisables sont les suivant :

 

--Consommation de bascule (PERSONNALISABLE)
local SeuilPower = 50

 

--Intervalle de temps en minutes nécessaire avant d'arrêter la prise pour une consommation inferieur au seuil (PERSONNALISABLE)
local DelaiTimeOnMin=10

 

--ID du module prise électrique (PERSONNALISABLE)
local IDdevice = 22
 

 

Une fois la scène enregistrée ne pas oublier de paramétrer au niveau de la configuration de base de cette même scène l'option "Lancement de la scène" en mode "Auto".

 

Actuellement j'ai trois prises pilotées de cette manière depuis 5 mois et je n'ai pour l'instant pas relevé de problème.

 

Zoydu33

 

  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

Merci pour le partage.

Je cherchai ce type de scenario pour que certain de mes appareils s'éteignent totalement une fois rentré en veille.

Je l'ai testé sur Fibaro Wall Plug FGWPE-102-ZW5 et ca fonctionne sans problème. 

 

 

Modifié par Guizmo

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 11/7/2020 à 4:01 PM, zoydu33 a dit :

I propose a scenario allowing an automatic shutdown of the power supply following the standby of a peripheral (computer, TV, ...).

 

Brilliant idea!

 

It would be feasible to switch the power ON once a consumer is detected? 

Partager ce message


Lien à poster
Partager sur d’autres sites

première question qui me vient à l'esprit :

Est-ce que l'ordinateur qui se serait mis en veille van aimer la coupure de courant ? (si shutdown forcé, sans sauvegarde des données, ce n'est pas la même chose qu'une mise en veille).

 

Pour les fans de GEA (dont je suis), cela est fait en une règle d'une ligne :

gea.add({"Power-",<id_module>,50}, 10*60, {"TurnOff"})

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah non ça c'est sûr, il faut éviter les coupures violentes sur tout ce qui est appareil électrique modernes.... Ordinateur, box domotique (c'est un ordinateur), etc... et même de simples TV, qui doivent être éteintes par le circuit de mise en veille, avant d'être coupé du courant, c'est particulièrement vrai pour les OLED qui ont besoin de faire des cycles de "nettoyage" de l'écran.

C'est un peu le problème de tous les appareils électriques modernes, ils ne supportent plus très bien la bonne vieille coupure électrique "mécanique" à l'ancienne.

 

Il y a 19 heures, Viior a dit :

It would be feasible to switch the power ON once a consumer is detected? 

No you can't detect if a device is plugged if your wall pluged is switched off.

Don't forget that inside there is a simple relay, which opens the electrical circuit, it's as mechanical as unpluging the device from the socket.

 

 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×