def test_ledrgb(self): """ RGB LED Testing :return: """ from enerpi.base import CONFIG from enerpi.ledrgb import get_rgbled, led_alarm, led_info, blink_color led = get_rgbled(verbose=True) if led is None: # PINOUT RGB_LED with_rgbled = CONFIG.getboolean('RGBLED', 'WITH_RGBLED', fallback=False) pin_r = CONFIG.getint('RGBLED', 'PIN_R', fallback=19) pin_g = CONFIG.getint('RGBLED', 'PIN_G', fallback=20) pin_b = CONFIG.getint('RGBLED', 'PIN_B', fallback=16) print('ERROR!! NO RGB LED. (WITH_LED={}; PINOUT_RGB=({},{},{})'.format(with_rgbled, pin_r, pin_g, pin_b)) # assert 0 else: print('TESTING RGB LED!') led_alarm(led, timeout=0) sleep(1) led_info(led, n=3) sleep(3) led_alarm(led, time_blinking=2.5, timeout=3) sleep(4) led_info(led, n=2) sleep(4) led_alarm(led, timeout=0) sleep(2) led_info(led, n=1) sleep(3) # Blinking: blink_color(led, (1, 0, 0), n=1) sleep(1) blink_color(led, (0, 1, 0), n=2) sleep(1) blink_color(led, (0, 0, 1), n=3) sleep(1) blink_color(led, (1, 1, 0), n=1) sleep(1) blink_color(led, (1, 0, 1), n=2) sleep(1) blink_color(led, (0, 1, 1), n=3) sleep(1) blink_color(led, (1, 1, 1), n=1) sleep(2) print('OK!!') led.close()
# -*- coding: utf-8 -*- """ ENERPI - RGB LED control methods """ from enerpi.base import CONFIG, log, CONFIG_FILENAME import datetime as dt # dateutil included in python-dateutil # noinspection PyPackageRequirements from dateutil.parser import parse # PINOUT RGB_LED WITH_RGBLED = CONFIG.getboolean('RGBLED', 'WITH_RGBLED', fallback=False) PIN_R = CONFIG.getint('RGBLED', 'PIN_R', fallback=19) PIN_G = CONFIG.getint('RGBLED', 'PIN_G', fallback=20) PIN_B = CONFIG.getint('RGBLED', 'PIN_B', fallback=16) # Horario de funcionamiento del RGB LED LED_TIME_ON = CONFIG.get('RGBLED', 'TIME_ON', fallback=None) LED_TIME_OFF = CONFIG.get('RGBLED', 'TIME_OFF', fallback=None) if LED_TIME_ON is not None: LED_TIME_ON = parse(LED_TIME_ON) if LED_TIME_OFF is not None: LED_TIME_OFF = parse(LED_TIME_OFF) def _use_led(): if LED_TIME_ON and LED_TIME_OFF: if LED_TIME_ON.time() < dt.datetime.now().time() < LED_TIME_OFF.time(): return True
# -*- coding: utf-8 -*- """ ENERPI - RGB LED control methods """ from enerpi.base import CONFIG, log, CONFIG_FILENAME import datetime as dt # dateutil included in python-dateutil # noinspection PyPackageRequirements from dateutil.parser import parse # PINOUT RGB_LED WITH_RGBLED = CONFIG.getboolean('RGBLED', 'WITH_RGBLED', fallback=False) PIN_R = CONFIG.getint('RGBLED', 'PIN_R', fallback=19) PIN_G = CONFIG.getint('RGBLED', 'PIN_G', fallback=20) PIN_B = CONFIG.getint('RGBLED', 'PIN_B', fallback=16) # Horario de funcionamiento del RGB LED LED_TIME_ON = CONFIG.get('RGBLED', 'TIME_ON', fallback=None) LED_TIME_OFF = CONFIG.get('RGBLED', 'TIME_OFF', fallback=None) if LED_TIME_ON is not None: LED_TIME_ON = parse(LED_TIME_ON) if LED_TIME_OFF is not None: LED_TIME_OFF = parse(LED_TIME_OFF) def _use_led(): if LED_TIME_ON and LED_TIME_OFF: if LED_TIME_ON.time() < dt.datetime.now().time() < LED_TIME_OFF.time(): return True return False
STATIC_PATH = os.path.join( DATA_PATH, CONFIG.get('ENERPI_WEBSERVER', 'STATIC_PATH', fallback='WWW')) LOGGING_LEVEL_SERVER = CONFIG.get( 'ENERPI_WEBSERVER', 'LOGGING_LEVEL_WEB', fallback='DEBUG') SERVER_FILE_LOGGING = os.path.join( STATIC_PATH, CONFIG.get( 'ENERPI_WEBSERVER', 'FILE_LOGGING_WEB', fallback='enerpiweb.log')) PREFIX_WEB = CONFIG.get('ENERPI_WEBSERVER', 'PREFIX_WEB', fallback='/enerpi') BASECOLOR = '#{}'.format( CONFIG.get('ENERPI_WEBSERVER', 'BASECOLOR_HEX', fallback='0CBB43')) check_resource_files( STATIC_PATH, os.path.join(basedir, 'static'), verbose=False) # WITH_WEB = CONFIG.getboolean('ENERPI_WEBSERVER', 'WITH_WEBSERVER', # fallback=True) WITH_ML_SUBSYSTEM = CONFIG.getboolean('ENERPI_WEBSERVER', 'WITH_ML', fallback=False) # Shows more info (timming data, debug data, ...) EXTRA_INFO = CONFIG.getboolean('ENERPI_WEBSERVER', 'EXTRA_INFO', fallback=False) # FLASK APP app = Flask(__name__, static_path=PREFIX_WEB + '/static', static_folder=STATIC_PATH) app.url_rule_class = lambda path, **options: Rule(PREFIX_WEB + path, **options) app.jinja_env.trim_blocks = True app.jinja_env.lstrip_blocks = True app.jinja_env.cache = {} app.jinja_loader = jinja2.FileSystemLoader(os.path.join(basedir, 'templates')) # Manual activation of test-mode
SERVER_FILE_LOGGING = os.path.join( STATIC_PATH, CONFIG.get('ENERPI_WEBSERVER', 'FILE_LOGGING_WEB', fallback='enerpiweb.log')) PREFIX_WEB = CONFIG.get('ENERPI_WEBSERVER', 'PREFIX_WEB', fallback='/enerpi') BASECOLOR = '#{}'.format( CONFIG.get('ENERPI_WEBSERVER', 'BASECOLOR_HEX', fallback='0CBB43')) check_resource_files(STATIC_PATH, os.path.join(basedir, 'static'), verbose=False) # WITH_WEB = CONFIG.getboolean('ENERPI_WEBSERVER', 'WITH_WEBSERVER', # fallback=True) WITH_ML_SUBSYSTEM = CONFIG.getboolean('ENERPI_WEBSERVER', 'WITH_ML', fallback=False) # Shows more info (timming data, debug data, ...) EXTRA_INFO = CONFIG.getboolean('ENERPI_WEBSERVER', 'EXTRA_INFO', fallback=False) # FLASK APP app = Flask(__name__, static_path=PREFIX_WEB + '/static', static_folder=STATIC_PATH) app.url_rule_class = lambda path, **options: Rule(PREFIX_WEB + path, **options) app.jinja_env.trim_blocks = True app.jinja_env.lstrip_blocks = True app.jinja_env.cache = {}