Skip to content
Snippets Groups Projects
Commit 965d61e6 authored by jkerdreu's avatar jkerdreu
Browse files

New schema 13-06-2018 release

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/trunk@1979 b32b6428-25c9-4566-ad07-03861ab6144f
parent 589fb57e
Branches
No related tags found
No related merge requests found
......@@ -62,6 +62,19 @@ def basic(addr=None):
dev = Device('basic.basic',addr)
return dev
#=====================================================================
def battery(addr=None):
"""Report on state of a battery"""
if (addr==None):addr = tools.get_random_uuid()
dev = Device('battery.basic',addr)
# -- Attributes --
# Battery state
dev.new_attribute('level')
# List of devices concerned with this battery
dev.new_attribute('devices')
return dev
#=====================================================================
def cache(addr=None):
"""Simple cache that can be queried about attributes of devices"""
......@@ -257,6 +270,19 @@ def lamp_dimmer(addr=None):
return dev
#=====================================================================
def linkquality(addr=None):
"""Report on quality of a transmission link"""
if (addr==None):addr = tools.get_random_uuid()
dev = Device('linkquality.basic',addr)
# -- Attributes --
# Link quality
dev.new_attribute('level')
# List of devices concerned with this link
dev.new_attribute('devices')
return dev
#=====================================================================
def luxmeter(addr=None):
"""Simple luxmeter"""
......@@ -431,6 +457,21 @@ def motion(addr=None):
dev.new_attribute('presence')
return dev
#=====================================================================
def powermeter(addr=None):
"""Simple powermeter"""
if (addr==None):addr = tools.get_random_uuid()
dev = Device('powermeter.basic',addr)
# -- Attributes --
# Current power
dev.new_attribute('power')
# Total consumption since cycle beginning
dev.new_attribute('consumption')
# List of devices concerned with this powermeter
dev.new_attribute('devices')
return dev
#=====================================================================
def powerrelay(addr=None):
"""Simple power relay device"""
......@@ -456,10 +497,52 @@ def powerrelay(addr=None):
return dev
#=====================================================================
def scales(addr=None):
"""Simple scales"""
def powerrelay_toggle(addr=None):
"""Power relay with toggle function - Note that a toggle function may leads to undefined state due to its stateful nature; its usage should be avoided."""
if (addr==None):addr = tools.get_random_uuid()
dev = Device('scales.basic',addr)
dev = Device('powerrelay.toggle',addr)
# -- Attributes --
# State of the relay
dev.new_attribute('power')
# -- Methods --
def default_on():
"""Switch on the relay"""
logger.info("default_on()")
def default_off():
"""Switch off the relay"""
logger.info("default_off()")
def default_toggle():
"""Toggle relay state"""
logger.info("default_toggle()")
dev.add_method('on',default_on)
dev.add_method('off',default_off)
dev.add_method('toggle',default_toggle)
return dev
#=====================================================================
def raingauge(addr=None):
"""Simple rain gauge"""
if (addr==None):addr = tools.get_random_uuid()
dev = Device('raingauge.basic',addr)
# -- Attributes --
# Real-time amount of rainfall
dev.new_attribute('rain')
# Accumulated precipitation
dev.new_attribute('accumulated')
return dev
#=====================================================================
def scale(addr=None):
"""Simple scale"""
if (addr==None):addr = tools.get_random_uuid()
dev = Device('scale.basic',addr)
# -- Attributes --
# Weight
......@@ -586,7 +669,7 @@ def thermometer(addr=None):
#=====================================================================
def tts(addr=None):
"""Text-To-Speech devices"""
"""Text-To-Speech device"""
if (addr==None):addr = tools.get_random_uuid()
dev = Device('tts.basic',addr)
......@@ -599,6 +682,23 @@ def tts(addr=None):
return dev
#=====================================================================
def windgauge(addr=None):
"""Simple wind gauge"""
if (addr==None):addr = tools.get_random_uuid()
dev = Device('windgauge.basic',addr)
# -- Attributes --
# Strength of the wind
dev.new_attribute('windStrength')
# Direction of the wind
dev.new_attribute('windAngle')
# Strength of gusts
dev.new_attribute('gustStrength')
# Direction of gusts
dev.new_attribute('gustAngle')
return dev
#=====================================================================
def window(addr=None):
"""Simple window device"""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment