Luup et les Variables des Modules

Principes de fonctionnement

Propriétés d'un Module

Les variables d’un module (device) permettent de connaître, voir de modifier, l’état courant d’un module (allumé, éteint, température, niveau des batteries….). Dans l’interface de la Vera, pour accéder aux variables d’un module, il faut cliquer sur la petite clef à molette du module en question afin d’accéder à la boîte de dialogue des propriétés du module. Les variables du module se trouvent dans la partie inférieure de l’onglet Advanced de cette boite de dialogue comme illustré sur l’image ci-dessous.

Variables Module

Une variable est caractérisée par un nom et un Service ID (UPnP). Le nom est celui qui identifie la variable dans l’onglet Advanced de la boîte de dialogue des propriétés du module. Le Service ID apparaît sous forme d’info bulle quand on arrête le curseur de la souris sur le nom d’une variable dans cette boîte de dialogue.

Variable Nom Service ID

luup.variable_get est la fonction Luup qui permet d’interroger l’état d’une variable (Target dans l’exemple) d’un module (remplacer <DEVICE> par le numéro du module) depuis un code Lua :

currentTarget=luup.variable_get("urn:upnp-org:serviceId:SwitchPower1","Target",<DEVICE>)

luup.call_action est la fonction Luup qui permet de modifier l’état d’une variable (Target dans l’exemple) d’un module (remplacer <DEVICE> par le numéro du module) depuis un code Lua :

luup.call_action("urn:upnp-org:serviceId:SwitchPower1","SetTarget",{newTargetValue="1"},<DEVICE>)
luup.call_action("urn:upnp-org:serviceId:SwitchPower1","SetTarget",{newTargetValue="0"},<DEVICE>)

Prises Everspring AD142, AN157 et AN158 ainsi que Fibaro Wall Plug

-- Allumer et Éteindre
luup.call_action("urn:upnp-org:serviceId:SwitchPower1","SetTarget",{newTargetValue="1"},<DEVICE>)
luup.call_action("urn:upnp-org:serviceId:SwitchPower1","SetTarget",{newTargetValue="0"},<DEVICE>)
-- État courant (Statut) et cible (Target) 
local statut=luup.variable_get("urn:upnp-org:serviceId:SwitchPower1","Status",<DEVICE>)
local target=luup.variable_get("urn:upnp-org:serviceId:SwitchPower1","Target",<DEVICE>)
-- Ajuster le gradateur (Everspring AD142)
luup.call_action("urn:upnp-org:serviceId:Dimming1","SetLoadLevelTarget",{newLoadlevelTarget=<LEVEL>},<DEVICE>)
-- État courant du gradateur (Everspring AD142)
local levelStatus=luup.variable_get("urn:upnp-org:serviceId:Dimming1","LoadLevelStatus",<DEVICE>)
-- Consommation instantanée (Watts) et cumulée (KWH) (Everspring AN158 et Fibaro Wall Plug)
local watts=luup.variable_get("urn:micasaverde-com:serviceId:EnergyMetering1","Watts",<DEVICE>)
local kwh=luup.variable_get("urn:micasaverde-com:serviceId:EnergyMetering1","KWH",<DEVICE>)

Thermostat Z-Wave Secure SCS317 et SSR303

-- Allumer et Éteindre la chaudière (module SSR303)
luup.call_action("urn:upnp-org:serviceId:HVAC_UserOperatingMode1","SetModeTarget",{NewModeTarget="HeatOn"},<DEVICE>)
luup.call_action("urn:upnp-org:serviceId:HVAC_UserOperatingMode1","SetModeTarget",{NewModeTarget="Off"},<DEVICE>)
-- Redéfinir la température de consigne (module SCS317)
luup.call_action("urn:upnp-org:serviceId:TemperatureSetpoint1_Heat","SetCurrentSetpoint",{NewCurrentSetpoint=<TEMPERATURE>},<DEVICE>)
-- Température de la pièce (module SCS317)
local temperature=luup.variable_get("urn:upnp-org:serviceId:TemperatureSensor1","CurrentTemperature",<DEVICE>)
-- Température de consigne (module SCS317)
local setPoint=luup.variable_get("urn:upnp-org:serviceId:TemperatureSetpoint1_Heat","CurrentSetpoint",<DEVICE>)
-- Température de consigne suivante (module SCS317)
local setPointTarget=luup.variable_get("urn:upnp-org:serviceId:TemperatureSetpoint1_Heat","SetpointTarget",<DEVICE>)

MultiSensor by Aeon Labs

-- Armer et Désarmer
luup.variable_set("urn:micasaverde-com:serviceId:SecuritySensor1", "Armed", "1", <DEVICE>)
luup.variable_set("urn:micasaverde-com:serviceId:SecuritySensor1", "Armed", "0", <DEVICE>)
-- Niveau de la pile
local batteryLevel=luup.variable_get("urn:micasaverde-com:serviceId:HaDevice1","BatteryLevel",<DEVICE>)
-- Wakeup interval (seconds)
local wakeupInterval=luup.variable_get("urn:micasaverde-com:serviceId:ZWaveDevice1","WakeupInterval",<DEVICE>)
-- Température courante
local currentTemperature=luup.variable_get("urn:upnp-org:serviceId:TemperatureSensor1","CurrentTemperature",<DEVICE>)
-- Humidité courante
local currentHumidity=luup.variable_get("urn:micasaverde-com:serviceId:HumiditySensor1","CurrentLevel",<DEVICE>)
-- Luminosité courante
local currentLight=luup.variable_get("urn:micasaverde-com:serviceId:LightSensor1","CurrentLevel",<DEVICE>)
-- État de détection et date (au format epoch) de la dernière détection
local tripped=luup.variable_get("urn:micasaverde-com:serviceId:SecuritySensor1","Tripped",<DEVICE>)
local lastTrip=luup.variable_get("urn:micasaverde-com:serviceId:SecuritySensor1","LastTrip",<DEVICE>)

Virtual ON/OFF Switches (Plugin)

-- Passer l'état à ON ou à OFF
luup.call_action("urn:upnp-org:serviceId:VSwitch1", "SetTarget", {newTargetValue = "1"}, <DEVICE>)
luup.call_action("urn:upnp-org:serviceId:VSwitch1", "SetTarget", {newTargetValue = "0"}, <DEVICE>)
-- Intérroger l'état du switch
local status=luup.variable_get("urn:upnp-org:serviceId:VSwitch1","Status",<DEVICE>)

Produits

VeraLite

Informations et sources

Cette entrée a été publiée dans Domotique, Tutoriels and taguée , . Placez un signet sur le permalien.

2 Responses to Luup et les Variables des Modules

  1. Savonarole

    Trés intéressant Tutoriel mais il y a une erreur il me semble concernant les fibaro wall plug :

    luup.variable_get(« urn:micasaverde-com:serviceId:EnergyMetering1″, »Watts »,

    ça ne marche pas ….. l’avez vous réellement Testé ?

    Reply
    • Laurent Post author

      Oui, je l’avais réellement testé et je viens de le refaire ce matin. Cela fonctionne bien pour la prise Fibaro Wall Plug comme pour la prise Everspring AN158.

      Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *