コード例 #1
0
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
コード例 #2
0
ファイル: Server.py プロジェクト: nikhil195/UPOD_Bridge
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)
コード例 #3
0
def main():
    value = bridgeclient()

    while True:
        t = value.get('t')
        h = value.get('h')
        print(h, t)
コード例 #4
0
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()
コード例 #5
0
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"
コード例 #6
0
 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)
コード例 #7
0
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)
コード例 #8
0
ファイル: MeccaBridge.py プロジェクト: yvanvds/pianola
  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
コード例 #9
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)
コード例 #10
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   
コード例 #11
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
コード例 #12
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)
コード例 #13
0
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)
コード例 #14
0
# 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)
コード例 #15
0
#!/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)
コード例 #16
0
        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:
コード例 #17
0
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
コード例 #18
0
ファイル: udp.py プロジェクト: SDeventer/MyHomeControl
#!/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()
コード例 #19
0
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 = {}
コード例 #20
0
#!/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")
コード例 #21
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)
コード例 #22
0
ファイル: t3n2.py プロジェクト: sofia0416/107201GIT
            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
コード例 #23
0
ファイル: Server.py プロジェクト: pdez90/UPOD_Bridge
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)
コード例 #24
0
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()
コード例 #25
0
ファイル: main.py プロジェクト: dot-dot-dot/dot-bot
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()))
コード例 #26
0
"""

# 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
    # ---
コード例 #27
0
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)
コード例 #28
0
# 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
コード例 #29
0
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)
コード例 #30
0
#!/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)
コード例 #31
0
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:
コード例 #32
0
#!/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(
コード例 #33
0
ファイル: webui.py プロジェクト: impressiver/nuage
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)
コード例 #34
0
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])))
コード例 #35
0
ファイル: yundoser.py プロジェクト: MiklosNet/pebbles
def checkph():
	value = bridgeclient()
	phvalue = value.get('PH')
	return phvalue;
コード例 #36
0
ファイル: BridgeComm.py プロジェクト: NicoLugil/Yafa
# 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)
コード例 #37
0
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:
コード例 #38
0
# 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
コード例 #39
0

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)+'}')
コード例 #40
0
ファイル: laserOff.py プロジェクト: pddpp/RaggieHomeCam
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")
コード例 #41
0
# 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)
コード例 #42
0
                                        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({
コード例 #43
0
ファイル: yun.py プロジェクト: sourceperl/arduino.yun.viewbox
# 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")