def main(): portNumber = 0 hedge = MarvelmindHedge(tty="/dev/ttyACM" + `portNumber`) hedge.start() bridge = bridgeclient() lastMeasureTime = 0 while True: try: sleep(0.2) if hedge.getError() == "NO_ERROR": position = hedge.position() measureTime = position[3] if measureTime == lastMeasureTime: bridge.put("error", ("E")) hedge.stop() hedge=MarvelmindHedge(tty="/dev/ttyACM"+`portNumber%10`) hedge.start() else: lastMeasureTime = measureTime bridge.put("error", ("N")) bridge.put("x", (str(position[0]))) bridge.put("y", (str(position[1]))) #print(str(position[0]),str(position[1])) else: bridge.put("error", ("S")) portNumber += 1 hedge.stop() hedge=MarvelmindHedge(tty="/dev/ttyACM" + `portNumber%10`) hedge.start() except KeyboardInterrupt: hedge.stop() # stop and close serial port sys.exit() except Exception: bridge = bridgeclient() continue
def main(*argv): # set the current thread id threading.current_thread().name = 'Server-Thread' # install signal handler signal.signal(signal.SIGINT, signal_handler) # log.info('Installed signal handler') # setup event for thread synchronization event = threading.Event() # get communication channel to ATMega channel = bridgeclient() # setup data processing thread processor = DataProcessor(name='DataProcessor-Thread', event=event, bridge=channel) processor.start() # log.info('Launched Data processor thread') if not channel: # log.critical('unable to setup bridgeclient to ATMega!') return # TODO: Explore BridgeClient code # Performance: keep the socket open while subsequent get(...) operations # By default BridgeClient open socket at begin of get(...) and closes after get(...) channel.should_close_at_function_end = False last_seen = '' # Get data from the Tx-channel and post it the queue while True: try: data = channel.get('TX-channel') mp = devices.get_mount_points() status = 'F' if len(mp) > 0: status = 'T' channel.put('status', status) # Time stamp is a part of data contract between # ATMega and Atheros. This makes sure that data # is different from that of previous data # Prevent duplicate data read on the bridgeclient before it's refeshed if data == last_seen: continue queue.put(data) last_seen = data event.set() except Exception, e: # log.exception(e) # log.warning('Continue by ignoring the above exception!') # try to re-initialize the ATMega communication channel channel = bridgeclient() processor.channel = channel time.sleep(.7)
def main(): value = bridgeclient() while True: t = value.get('t') h = value.get('h') print(h, t)
def push_update(): db_endpoint = "http://" + SERVER_IP + ":" + str( SERVER_PORT) + "/arduino-to-db" value = bridgeclient() global io_state while True: post = False for io in io_state: new_val = value.get(io) old_val = io_state.get(io) if new_val != old_val: io_state.update({io: new_val}) post = True time.sleep(0.05) if post: print str(datetime.now()), "POSTING TO ENDPOINT ", db_endpoint, print io_state try: io_state_json = json.dumps(io_state) post = urllib2.Request(db_endpoint, io_state_json, {'Content-Type': 'application/json'}) resp = urllib2.urlopen(post, timeout=5) # print resp.read() except urllib2.HTTPError, e: print str(datetime.now()), 'HTTPError = ' + str(e.code) except urllib2.URLError, e: print str(datetime.now()), 'URLError = ' + str(e.reason) except (KeyboardInterrupt, SystemExit): print str(datetime.now()), "KeyboardInterrupt" sys.exit()
def judge(): bridge = bridgeclient() global cooler global heater global humidifier global dehumidifier global aircleaner global light if temperature > policy['c_h'] and cooler == 0: bridge.put('co', '1') cooler = 1 print "Cooler ...... open, according to policy" if temperature < policy['c_l'] and cooler == 1: bridge.put('co', '0') cooler = 0 print "Cooler ...... closed, according to policy" if temperature < policy['h_l'] and heater == 0: bridge.put('he', '1') heater = 1 print "Heater ...... open, according to policy" if temperature > policy['h_h'] and heater == 1: bridge.put('he', '0') heater = 0 print "Heater ...... closed, according to policy" if humidity < policy['hu_l'] and humidifier == 0: bridge.put('hu', '1') humidifier = 1 print "Humidifier ...... open, according to policy" if humidity > policy['hu_h'] and humidifier == 1: bridge.put('hu', '0') humidifier = 0 print "Humidifier ...... closed, according to policy" if humidity > policy['dh_h'] and dehumidifier == 0: bridge.put('dh', '1') dehumidifier = 1 print "Dehumidifier ...... open, according to policy" if humidity < policy['dh_l'] and dehumidifier == 1: bridge.put('dh', '0') dehumidifier = 0 print "Dehumidifier ...... closed, according to policy" if PM25 > policy['ac_h'] and aircleaner == 0: bridge.put('ac', '1') aircleaner = 1 print "Aircleaner ...... open, according to policy" if PM25 < policy['ac_l'] and aircleaner == 1: bridge.put('ac', '0') aircleaner = 0 print "Aircleaner ...... closed, according to policy" if brightness < policy['l_l'] and light == 0: bridge.put('li', '1') light = 1 print "Light ...... open, according to policy" if brightness > policy['l_h'] and light == 1: bridge.put('li', '0') light = 0 print "Light ...... closed, according to policy"
def write(self, color): bridge = bridgeclient() bridge.put('R', str(color[0])) sleep(0.05) bridge.put('G', str(color[1])) sleep(0.05) bridge.put('B', str(color[2])) sleep(0.05)
def main(): value = bridgeclient() while True: t = value.get('t') h = value.get('h') s = value.get('s') l = value.get('l') print(h, t, s, l)
def __init__(self): self.bridge = bridgeclient() self.messageChanged = False self.message = bytearray(MB.NUM) self.changeValue = 1 # initial (invalid) pin assignment self.pin1 = 0 self.pin2 = 0 self.pin3 = 0
def write_arduino(color): color_to_rgb_map = { "RED": ("255", "0", "0"), "YELLOW": ("255", "255", "0"), "GREEN": ("0", "255", "0"), "BLUE": ("0", "0", "255"), "PURPLE": ("255", "255", "0") } pythonRed, pythonGreen, pythonBlue = color_to_rgb_map[color] bridge = bridgeclient() bridge.put('pythonRed', pythonRed) bridge.put('pythonGreen', pythonGreen) bridge.put('pythonBlue', pythonBlue)
def yunbridge(): global grf _client=bridgeclient() while True: time.sleep( 1 ) rf = _client.get('rf') #query rf value from bridge if rf=='1': if grf=='0': enableWarning() grf = '1' print 1 elif rf=='0': if grf=='1': disableWarning() grf='0' print 0
def yunbridge(): global grf _client = bridgeclient() while True: time.sleep(1) rf = _client.get('rf') #query rf value from bridge if rf == '1': if grf == '0': enableWarning() grf = '1' print 1 elif rf == '0': if grf == '1': disableWarning() grf = '0' print 0
def main(): value = bridgeclient() while True: t = value.get('t') h = value.get('h') s = value.get('s') l = value.get('l') payload = { 'humidity': float(h), 'temperataure': float(t), 'sound': int(s), 'luminosity': int(l), } r = requests.put(API_URL, json=payload, auth=HTTPBasicAuth('admin', 'steven8702')) assert r.status_code == 200 print(h, t, s, l)
import sys sys.path.insert(0, '/usr/lib/python2.7/bridge/') import fetch_and_log_functions as filefriend from bridgeclient import BridgeClient as bridgeclient total_days = bridgeclient().get('total_days') year = bridgeclient().get('year') event_str = bridgeclient().get('Event_Log_String') event = {"update": event_str} path = '/mnt/sda1/arduino/www/jonesGreenHouse/data/logs/' + str( year) + '/' + str(total_days) + '/' data_file = path + 'event_log.json' filefriend.file_it(path, data_file, event)
# add logging capability import logging import threading # add modbus import modbus_tk import modbus_tk.defines as cst import modbus_tk.modbus as modbus import modbus_tk.modbus_tcp as modbus_tcp import struct # add bridge sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient avr = bridgeclient() logger = modbus_tk.utils.create_logger(name="console", record_format="%(message)s") if __name__ == "__main__": try: #Create the server server = modbus_tcp.TcpServer(address='0.0.0.0') logger.info("running...") server.start() slave_1 = server.add_slave(1) # todo: add checking for overlaping ranges argc = len(sys.argv)
#!/usr/bin/env python import sys sys.path.insert(0, '/usr/lib/python2.7/bridge/') import fetchtristar from bridgeclient import BridgeClient as bridgeclient import solarmail_functions as SolarMailer Greenhouse_Data = bridgeclient().getall() Tristar_Data = fetchtristar.handle_data() SolarMailer.send_emergency_notification_email(Greenhouse_Data, Tristar_Data)
except: c = 0.00 m = "%0.2f" % c debug_txt = ("%s:%s") % (key, m) syslog.syslog(debug_txt) if DEBUG: print (debug_txt) topic = "%s/%s/%d" % (base_topic, probe_type, i) mqttc.publish(topic, m, 0) mqttc.loop(2, 20) bridge.close() # SETUP bridge = bridgeclient() # load config if mqtt_client_name == "": mqtt_client_name = get_config_from_file("/root/mqtt/MAC", "notconfig", "Yun-") if base_topic == "": base_topic = get_config_from_file("/root/mqtt/MQTT_BASE_TOPIC", "notconfig", "") if device_type == "": device_type = get_config_from_file("/root/mqtt/DEVICE_TYPE", "EnvMon1", "") if mqtt_host == "": mqtt_host = get_config_from_file("/root/mqtt/MQTT_HOST", "100.64.2.1", "") AVR_TEMP_OFFSET = int(get_config_from_file("/root/mqtt/TEMP_OFFSET", -6, "")) debug_txt = "mqtt client %s start" % mqtt_client_name syslog.syslog(debug_txt) if DEBUG:
def handleTrans(client, userdata, message): bridge = bridgeclient() global cooler global heater global humidifier global dehumidifier global aircleaner global light print "New trans ...... received" if client == "SMS": trans = json.loads(message) else: trans = json.loads(message.payload) if 'cooler' in trans.keys() and trans['cooler'] == '1': bridge.put('co', '1') cooler = 1 print "Cooler ...... open, according to Trans" return if 'cooler' in trans.keys() and trans['cooler'] == '0': bridge.put('co', '0') cooler = 0 print "Cooler ...... closed, according to Trans" return if 'heater' in trans.keys() and trans['heater'] == '1': bridge.put('he', '1') heater = 1 print "Heater ...... open, according to Trans" return if 'heater' in trans.keys() and trans['heater'] == '0': bridge.put('he', '0') heater = 0 print "Heater ...... closed, according to Trans" return if 'humidifier' in trans.keys() and trans['humidifier'] == '1': bridge.put('hu', '1') humidifier = 1 print "Humidifier ...... open, according to Trans" return if 'humidifier' in trans.keys() and trans['humidifier'] == '0': bridge.put('hu', '0') humidifier = 0 print "Humidifier ...... closed, according to Trans" return if 'dehumidifier' in trans.keys() and trans['dehumidifier'] == '1': bridge.put('dh', '1') dehumidifier = 1 print "Dehumidifier ...... open, according to Trans" return if 'dehumidifier' in trans.keys() and trans['dehumidifier'] == '0': bridge.put('dh', '0') dehumidifier = 0 print "Dehumidifier ...... closed, according to Trans" return if 'aircleaner' in trans.keys() and trans['aircleaner'] == '1': bridge.put('ac', '1') aircleaner = 1 print "Aircleaner ...... open, according to Trans" return if 'aircleaner' in trans.keys() and trans['aircleaner'] == '0': bridge.put('ac', '0') aircleaner = 0 print "Aircleaner ...... closed, according to Trans" return if 'light' in trans.keys() and trans['light'] == '1': bridge.put('li', '1') light = 1 print "Light ...... open, according to Trans" return if 'light' in trans.keys() and trans['light'] == '0': bridge.put('li', '0') light = 0 print "Light ...... closed, according to Trans" return
#!/usr/bin/python import socket import sys sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient values = bridgeclient() UDP_IP_BC = "192.168.0.255" #Local network broadcast mask UDP_IP_MONITOR = "192.168.0.149" #Local network monitor IP UDP_PORT = 5000 CONSUMPTION = values.get('C') SOLAR = values.get('S') # {\"device\":\"spm\",\"s\":100,\"c\":300} MESSAGE = '{"device":"spm","s":' + str(SOLAR) + ',"c":' + str(CONSUMPTION) + '}' sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.sendto(bytes(MESSAGE), (UDP_IP_MONITOR, UDP_PORT)) sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) sock.sendto(bytes(MESSAGE), (UDP_IP_BC, UDP_PORT)) sock.close() quit()
sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient import time import datetime import sqlite3 from sqlite3 import Error import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.MIMEImage import MIMEImage import mimetypes import httplib import urlparse import urllib bc = bridgeclient() fh = "2019-01-01 00:00:00" hs = 0 ha = 0 ta = 0 ls = 0 llu = "NO" ri = 0 valor_entrada_sensor = 0 fecha = "" hora = "" id_especie = 0 def dict_factory(cursor, row): d = {}
#!/usr/bin/python import cgi import sys import socket sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient sys.stderr = sys.stdout form = cgi.FieldStorage() mbval = bridgeclient() outlets = [ "licht-flur", "licht-wohnen", "licht-schlafen" ] print "Content-Type: text/html" print print "<html>" print "<head>" print "<title>Haussteuerung</title><meta name='viewport' content='width=500px' /><link type='text/css' rel='stylesheet' media='screen' href='style.css' />" print "</head>" print "<body><div class='col'>" if "outlet" not in form: print "<p>Keine Aktion angefragt</p>" elif form.getvalue("outlet") in outlets and int(form.getvalue("action")) > 0: print "<p>Schalte an</p>" mbval.put(form.getvalue("outlet"), "1") elif form.getvalue("outlet") in outlets: print "<p>Schalte aus</p>" mbval.put(form.getvalue("outlet"), "0")
import sys from time import sleep sys.path.insert(0, '/usr/lib/python2.7/bridge') from bridgeclient import BridgeClient as bridgeclient # pyOSC 0.3.5b-5294 OSC.py from OSC import OSCServer # [LED1_GREEN, LED1_RED, LED1_BLUE,LED2_GREEN, LED2_RED, LED2_BLUE] frameArray1 = [255, 0, 0, 0, 255, 0] frameArray2 = [0, 255, 0, 0, 0, 255] frameArray3 = [0, 0, 255, 255, 0, 0] arduino = bridgeclient() print("BridgeClient initiated\n") server = OSCServer(("0.0.0.0", 10023)) def drawFrameCallback(path, tags, args, source): frameArray = [args[0], args[1], args[2], args[3], args[4], args[5]] print("Received frame from OSC client ", frameArray) frameString = "Hello World" arduino.put("frame", (frameString)) print("Sent frame to Arduino ", frameString) server.addMsgHandler("/crocoled/drawFrame", drawFrameCallback)
conn = httplib.HTTPConnection("api.thingspeak.com:80") conn.connect() not_connected = 0 except (httplib.HTTPException, socket.error) as ex: print "Error: %s" % ex time.sleep(10) # sleep 10 seconds conn.request("POST", "/update", payload, headers) response = conn.getresponse() print(response.status, response.reason, payload, time.strftime("%c")) data = response.read() conn.close() while True: value = bridgeclient() #BRIDGE連接 t0 = value.get("t") #取得MPU數據 h0 = value.get("h") l0 = value.get("lpg") c0 = value.get("co") s0 = value.get("smoke") p1 = value.get("PM1") p2 = value.get("PM2") p10 = value.get("PM10") print "Temp: " + t0 #MPU數據印出 print "Humi: " + h0 print "lpg: " + l0 print "co: " + c0 print "smoke: " + s0 print "pm1: " + p1 print "pm2: " + p2
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ # Domotics lights module test, turn on and then off with a delay of 0.1 sec on pin 13. # - # @author giuliobosco # @version 1.0 (2019-04-12 - 2019-04-12) import sys sys.path.insert(0, '/usr/lib/python2.7/bridge') from time import sleep from bridgeclient import BridgeClient as bridgeclient from lights import Lights # class test lights = Lights(bridgeclient()) lights.lightOn() sleep(0.1) lights.lightOff()
def main(argv): # Parse the command-line flags. flags = parser.parse_args(argv[1:]) # If the credentials don't exist or are invalid run through the native client # flow. The Storage object will ensure that if successful the good # credentials will get written back to the file. storage = file.Storage('/home/code/sample.dat') credentials = storage.get() if credentials is None or credentials.invalid: credentials = tools.run_flow(FLOW, storage, flags) # Create an httplib2.Http object to handle our HTTP requests and authorize it # with our good Credentials. http = httplib2.Http() http = credentials.authorize(http) # Construct the service object for the interacting with the Google Analytics API. service = discovery.build('analytics', 'v3', http=http) #Read the Config File to get the twitter keys and tokens config = ConfigParser.RawConfigParser() config.read('twitter.cfg') # Create a twitter.Api object that handles requests of latest tweets to show # when the bot is in standby api = twitter.Api(consumer_key=config.get('DEFAULT', 'consumer_key'), consumer_secret=config.get('DEFAULT', 'consumer_secret'), access_token_key=config.get('DEFAULT', 'access_token_key'), access_token_secret=config.get('DEFAULT', 'access_token_secret')) # 1. Create and Execute a Real Time Report # An application can request real-time data by calling the get method on the Analytics service object. # The method requires an ids parameter which specifies from which view (profile) to retrieve data. # For example, the following code requests real-time data for view (profile) ID 2809964. value = bridgeclient() reload(json) start = 0 while True: try: # Get information about current visitors # (eg. latitude, longitude, country, city and pageTitle) results = service.data().realtime().get( ids='ga:2809964', metrics='ga:activeVisitors', dimensions='ga:latitude,ga:longitude,ga:country,ga:city,ga:pageTitle', max_results=1).execute() # Check if user present otherwise # go standby and show tweets if results.get('rows', []): for row in results.get('rows'): lat = float(row[0]) lon = float(row[1]) country = row[2] city = row[3] page = row[4] f = math.pi / 180 # Formula to convert a point expressed in (latitude, longitude) as degrees # to a point (x,y) expressed in centimeters. # This formula works with a planisphere based on Wagner VII projection # also known as Hammer-Wagner rad_lon = f * lon rad_lat = f * lat y = 0.90630778703664996 * math.sin(rad_lat) theta = math.asin(y) ct = math.cos(theta) lon_t = rad_lon / 3.0 D = 1/(math.sqrt(0.5 * (1 + ct * math.cos(lon_t)))) x = 2.66723 * ct * math.sin(lon_t) y *= 1.24104 * D x *= D x = round((x * 25.892745506), 2) y = round((y * 24.585971767), 2) # Check if we have a latitude and a longitude to move to # otherwise go standby and show tweets if (x != 0 and y != 0): print (x, y) output = country + ' / ' + city + ' / lat:' + format(lat, '.3f') + ' / lon:' + format(lon, '.3f') print(output) print(page.encode('ascii', 'ignore')) else: if ((time.time() - start) > 60): print 'Getting tweets' mentions = api.GetUserTimeline(screen_name='dot_cube',count=3) start = time.time() i = 0 output = mentions[i%3].text.encode('ascii', 'ignore').replace('\n', ' ') page = '...' i += 1 try: value.put('page', page) value.put('geo', output) value.put('x', str(x-1)) value.put('y', str(y)) except socket.error: print 'Waiting Arduino...' time.sleep(10) else: print 'No Results Found' if ((time.time() - start) > 60): print 'Getting tweets' mentions = api.GetUserTimeline(screen_name='dot_cube',count=3) start = time.time() i = 0 output = mentions[i%3].text.encode('ascii', 'ignore').replace('\n', ' ') page = '...' i += 1 try: value.put('geo', output) value.put('page', page) except socket.error: print 'Waiting Arduino...' time.sleep(10) time.sleep(10) except TypeError, error: # Handle errors in constructing a query. print ('There was an error in constructing your query : %s' % error) except HttpError, error: # Handle API errors. if error.resp.reason in ['userRateLimitExceeded', 'quotaExceeded']: time.sleep((2 ** n) + random.random()) else: print ('Arg, there was an API error : %s : %s' % (error.resp.status, error._get_reason()))
""" # Test program to read from the arduino BridgeClient the value of the Thermistor. # - # @author giuliobosco # @version 1.0 (2019-04-12 - 2019-04-12) import sys sys.path.insert(0, '/usr/lib/python2.7/bridge') from time import sleep # import sleep function from bridgeclient import BridgeClient as bridgeclient # import arduino bridge client from math import log # import log function from math class bridge = bridgeclient() # initialize the bridge while True: RT0 = 10000 # thermistor datasheet values B = 3977 # thermistor datasheet values # --- VCC = 5 # supply voltage R = 10000 # resistor: 10kOhm # --- T0 = 25 + 273.15 # temperature T0 from thermistor datasheet # --- VRT = float(bridge.get('A1')) # read value from the pin A1 of the arduino VRT = (5.00 / 1023.00) * VRT # conversion to voltage VR = VCC - VRT # reverse of voltage RT = VRT / (VR / R) # resistence of RT # ---
import sys import os import socket import ConfigParser import RPi.GPIO as GPIO from flask import Flask, request, redirect, url_for, send_from_directory sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient # Create a proper path: staticroot = os.path.join(os.path.dirname(os.path.abspath(__file__)), "static") parser = ConfigParser.ConfigParser() cfg = parser.read("/etc/nuage/nuage.cfg") app = Flask(__name__, static_url_path='/static', static_folder=staticroot) brg = bridgeclient() @app.route('/') def default_route(): return app.send_static_file('start.html') # FIXME: Will not work due to missing privileges @app.route("/reset/") def reset(): subprocess.call(["/usr/bin/nuage-reset"]) return app.send_static_file('reset.html') @app.route('/keystore_manager_example/<path:path>', methods=['GET']) def send_example(path): return send_from_directory(staticroot + '/keystore_manager_example', path)
# add logging capability import logging import threading # add modbus import modbus_tk import modbus_tk.defines as cst import modbus_tk.modbus as modbus import modbus_tk.modbus_tcp as modbus_tcp import struct # add bridge sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient avr = bridgeclient() logger = modbus_tk.utils.create_logger(name="console", record_format="%(message)s") if __name__ == "__main__": try: #Create the server server = modbus_tcp.TcpServer(address='0.0.0.0') logger.info("running...") server.start() slave_1 = server.add_slave(1) # todo: add checking for overlaping ranges
ON_NEITHER = 2 UNASSOC = 3 LORA_REQ_ACCESS = 0xAC def encrypt(msg, lock): return pow(msg, PUBLIC_KEY, LOCK_MODULUS[lock]) def decrypt(msg): return pow(msg, GATEWAY_PRI, GATEWAY_MODULUS) from bridgeclient import BridgeClient as bridgeclient bridge = bridgeclient() locks = {} for lock_id in LOCK_LIST: lock = {} lock['whitelist'] = set() lock['blacklist'] = set() lock['req_access'] = 0 fname = 'db/lock_{}.whitelist'.format(lock_id) if os.path.isfile(fname): with open(fname, 'r') as f: for line in f: l = line.strip() if l: lock['whitelist'].add(l)
#!/usr/bin/env python import sys sys.path.insert(0, '/usr/lib/python2.7/bridge/') import fetchtristar from bridgeclient import BridgeClient as bridgeclient import solarmail_functions as SolarMailer total_days = bridgeclient().get('total_days') Tristar_Data = fetchtristar.handle_data() total_kWh = Tristar_Data['total_kwh'] SolarMailer.send_morning_email(total_kWh, total_days)
import sys import socket import sqlite3 sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient from datetime import datetime, date, time # Mailbox- und Datenbankverbindung mailbox = bridgeclient() dbconn = sqlite3.connect('/usr/local/hausautomation/sensors.sqlite') cursor = dbconn.cursor() # Datum zerlegen t = datetime.now() this_hour = t.hour this_min = t.minute this_day = t.day this_mon = t.month this_year = t.year # Tabelle anlegen: try: cursor.execute( "CREATE TABLE sensors (year int, month int, day int, hour int, min int, node int, value int)" ) except: print "Creating table failed!" # Sensoren auslesen und in die Datenbank schreiben: sensors = [5, 23] for s in sensors:
#!/usr/bin/python import os import sys sys.path.insert(0, '/usr/lib/python2.7/bridge/') import json import fetch_and_log_functions as filefriend import fetchtristar import fetchsmarthome import solarmail_functions as SolarMailer from bridgeclient import BridgeClient as bridgeclient total_days = bridgeclient().get('total_days') year = bridgeclient().get('year') rtc_dt = bridgeclient().get('RTC_dt') Power_Data = {} fetchtristar.logIt() Tristar_Data = fetchtristar.handle_data() Tristar_Data['update'] = rtc_dt Power_Data.update(Tristar_Data) for each, value in Tristar_Data.items(): print each + ': ' + str(value) bridgeclient().put(each, str(value)) fetchsmarthome.logIt() Smarthome_Data = fetchsmarthome.handle_data() Power_Data.update(Smarthome_Data) for each, value in Smarthome_Data.items(): print each + ': ' + str(value) bridgeclient().put(each, str(value)) path = '/mnt/sda1/arduino/www/jonesGreenHouse/data/' + str(
import os import socket import ConfigParser import Adafruit_BBIO.GPIO as GPIO from flask import Flask, request, redirect, url_for, send_from_directory sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient # Create a proper path: staticroot = os.path.join(os.path.dirname(os.path.abspath(__file__)), "static") parser = ConfigParser.ConfigParser() cfg = parser.read("/etc/nuage/nuage.cfg") app = Flask(__name__, static_url_path='/static', static_folder=staticroot) brg = bridgeclient() @app.route('/') def default_route(): return app.send_static_file('start.html') # FIXME: Will not work due to missing privileges @app.route("/reset/") def reset(): subprocess.call(["/usr/bin/nuage-reset"]) return app.send_static_file('reset.html') @app.route('/keystore_manager_example/<path:path>', methods=['GET']) def send_example(path): return send_from_directory(staticroot + '/keystore_manager_example', path)
import sys import socket sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient UDP_IP = "10.76.23.232" UDP_PORT = 5678 sock = socket.socket( socket.AF_INET, # Internet socket.SOCK_DGRAM) # UDP sock.bind((UDP_IP, UDP_PORT)) mbval = bridgeclient() while True: data, addr = sock.recvfrom(1024) toks = data.split(':') if (len(toks) > 1) and (toks[0] == 'uptime'): print toks[1] # Translate key-val pair directly to localstore mbval.put(toks[0], str(int(toks[1])))
def checkph(): value = bridgeclient() phvalue = value.get('PH') return phvalue;
# but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Yafa. If not, see <http://www.gnu.org/licenses/>. import sys import string import time import logging import logging.handlers sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient bc = bridgeclient() class BridgeComm: COMMAND_LEN=16 VALUE_LEN=32 previous_tx_id='Z' read_ID='' read_command='' read_value='' filler='#' def send(self,command,value): if BridgeComm.previous_tx_id=='Z': msg_id='A' else: msg_id=chr(ord(BridgeComm.previous_tx_id) + 1) msg=msg_id+(command[:BridgeComm.COMMAND_LEN]).ljust(BridgeComm.COMMAND_LEN,BridgeComm.filler)+(value[:BridgeComm.VALUE_LEN]).ljust(BridgeComm.VALUE_LEN,BridgeComm.filler)
import sys import socket import sqlite3 sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient from datetime import datetime, date, time # Mailbox- und Datenbankverbindung mailbox = bridgeclient() dbconn = sqlite3.connect('/usr/local/hausautomation/sensors.sqlite') cursor = dbconn.cursor() # Datum zerlegen t = datetime.now() this_hour = t.hour this_min = t.minute this_day = t.day this_mon = t.month this_year = t.year # Tabelle anlegen: try: cursor.execute("CREATE TABLE sensors (year int, month int, day int, hour int, min int, node int, value int)") except: print "Creating table failed!" # Sensoren auslesen und in die Datenbank schreiben: sensors = [ 5, 23 ] for s in sensors: sval = mailbox.get("sensor-" + str(s)) if sval is None:
# Copyright (c) 2011, Yaler GmbH, Switzerland # All rights reserved # based on TimeService.py by Yaler GmbH # modified for Arduino Yun by Bo Peterson www.asynkronix.se import sys import time import socket sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient value = bridgeclient() def find (pattern, s): x = [0] * len(pattern) i = j = t = 0 while True: k = 0 match = True while (k != len(pattern)) and match: if i + k == j: x[j % len(x)] = s.recv(1) j += 1 t = x[(i + k) % len(x)] match = pattern[k] == t k += 1 i += 1 if match or (t == ''): break
sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient # Impulse Powermeter previousPowermeterImpulse = 0 # Outdoor temperature previousTemperature = 0 # Flow temperature previousTemperatureFlow = 0 bridgeCli = bridgeclient() ### initial switch state is off bridgeCli.put('switch1','0') ### timer for looping Bridge output def loopTemperatureBridge(): global previousTemperature currentTemperature = bridgeCli.get('celsiusOutdoor') print("Temperature Outdoor :") print(currentTemperature) if abs(int(previousTemperature) - int(currentTemperature)) > 1: # absolute d$ previousTemperature = currentTemperature ws.send('{"key":"tempOut","value":'+str(previousTemperature)+'}') ws.send('{"variable":"300","value":'+str(previousTemperature)+'}')
from time import localtime, strftime import sys sys.path.insert(0,'/usr/lib/python2.7/bridge') from bridgeclient import BridgeClient as bridgeclient client = bridgeclient() f = open("log.txt",'a') client.put('laserOn',"N") f.write(strftime("%Y-%m-%d %H:%M:%S", localtime())+": Laser toy is off. \n")
# Author: Michael Macherey import ssl from websocket import websocket import sys from pprint import pprint import json from threading import Timer ###### begin Bridge ############ sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient bridgeCli = bridgeclient() ### initial switch state is off bridgeCli.put('switch1', '0') # Impulses of Powermeters previousPowermeterOneImpulse = 0 previousPowermeterTwoImpulse = 0 ### timer for looping Bridge output def loopImpulseOneBridge(): global previousPowermeterOneImpulse currentPowermeterImpulse = float(bridgeCli.get('PowerMeterImpulseOne')) print(currentPowermeterImpulse)
certificatePath) # AWSIoTMQTTClient connection configuration myAWSIoTMQTTClient.configureAutoReconnectBackoffTime(1, 32, 20) myAWSIoTMQTTClient.configureOfflinePublishQueueing( -1) # Infinite offline Publish queueing myAWSIoTMQTTClient.configureDrainingFrequency(2) # Draining: 2 Hz myAWSIoTMQTTClient.configureConnectDisconnectTimeout(10) # 10 sec myAWSIoTMQTTClient.configureMQTTOperationTimeout(5) # 5 sec # Connect and subscribe to AWS IoT myAWSIoTMQTTClient.connect() sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient value = bridgeclient() # Publish to the same topic in a loop forever while True: humidity = value.get("h") temperature = value.get("t") print "Humi: " + humidity print "Temp: " + temperature t = time.time() date = datetime.datetime.fromtimestamp(t).strftime('%Y%m%d%H%M%S') print "humidity: %d, temperature: %d" % (float(humidity), float(temperature)) myAWSIoTMQTTClient.publish( "sensingData/TemperatureHumidity/Room2", json.dumps({
# Access to YUN datastore lib (bridge interface ARM <->ATmega) import sys sys.path.insert(0, '/usr/lib/python2.7/bridge/') from bridgeclient import BridgeClient as bridgeclient # global vars vig_level = { 1: 'V', 2: 'J', 3: 'O', 4: 'R', } th_lock = threading.Lock() store = bridgeclient() vig_59 = 'I' vig_59_up = 0 vig_62 = 'I' vig_62_up = 0 p_atmo = 0.0 p_atmo_up = 0 t_atmo = 0.0 t_atmo_up = 0 nb_mail = 0 nb_mail_up = 0 def on_connect(client, userdata, rc): print("Connected with result code " + str(rc)) client.subscribe("pub/meteo_vig/dep/59")