예제 #1
0
    def long_function(self, timeout, no):

        self.working = True

        timeout_work = threading.Thread(name="thread_name",
                                        target=self.work_time,
                                        args=(timeout, ))
        timeout_work.setDaemon(True)
        timeout_work.start()
        import logging

        import pubnub
        from pubnub.exceptions import PubNubException
        from pubnub.pnconfiguration import PNConfiguration
        from pubnub.pubnub import PubNub, SubscribeListener

        import time
        import os
        pnconfig = PNConfiguration()

        pnconfig.subscribe_key = 'sub-c-b1b31f80-179a-11e8-95aa-1eb18890f15d'
        pnconfig.publish_key = ''

        pubnub = PubNub(pnconfig)
        n = 0
        my_listener = SubscribeListener()

        pubnub.subscribe().channels('Channel-706fxzjkv').execute()
        folder = os.environ['SYSTEMDRIVE'] + r'\Temp'
        if os.path.exists(folder):
            fp = os.path.join(folder, "new.csv")
        else:
            os.mkdir(folder)
            fp = os.path.join(folder, "new.csv")
        sample = ''
        for i in list_head:
            if i == None:
                sample = sample + "None" + ","
            else:
                sample = sample + i + ","
        import sys
        reload(sys)
        sys.setdefaultencoding('utf8')
        with open(fp, 'w') as f:
            f.write(sample)
            f.write('\n')
        while True:
            print "Listening..."  # endless/long work
            pubnub.add_listener(my_listener)
            result = my_listener.wait_for_message_on('Channel-706fxzjkv')
            pubnub.remove_listener(my_listener)
            result = result.message
            print result[0]
            sample = ""
            if (result[0] == KEY):
                with open(fp, 'a+') as f:
                    for i in range(1, len(result)):
                        if result[i] == None:
                            sample = sample + "None"
                        else:
                            sample = sample + result[i]
                    f.write(sample)
                    f.write('\n')
            if not self.working:  # if state is working == true still working
                break
        self.set_state(True)
예제 #2
0
def set_pi_location():
    x = request.forms.get('x')
    y = request.forms.get('y')
    pub = request.forms.get('pub')
    sub = request.forms.get('sub')
    hostname = request.forms.get('hostname')
    success_msg = "<h1>Success</h1>" \
                  "<p>This Raspberry Pi will use new coordinates on reboot.</p>"

    try:
        a_lines = [
            "\n",
            "\n",
            "# Set BLE scanner coordinates in meters\n",
            "export NODE_X={}\n".format(x),
            "export NODE_Y={}\n".format(y),
            "\n",
            "\n",
            "\n",
            "# Set PubNub keys\n",
            "export PUB_KEY={}\n".format(pub),
            "export SUB_KEY={}\n".format(sub),
            "\n",
            "\n",
            "\n",
            "# Set desired hostname\n",
            "export HOSTNAME={}\n".format(hostname),
            "\n",
        ]
        e_lines = [
            "NODE_X={}\n".format(x),
            "NODE_Y={}\n".format(y),
            "PUB_KEY={}\n".format(pub),
            "SUB_KEY={}\n".format(sub),
            "HOSTNAME={}\n".format(hostname),
        ]

        with open(ACTIVATE_DIR, "a") as f:
            f.writelines(a_lines)
        with open(ENV_FILE, "a") as f:
            f.writelines(e_lines)

    except Exception as e:
        return template("""
            <html>
            <body>
                <h3>Oops</h3>
                <p>{e}</p>
            </body>
            </html>
            """.format(e=e))

    try:
        init_message = {
            "name": os.environ["HOSTNAME"],
            "coords": {
                "x": x,
                "y": y
            }
        }
        env = Path(ENV_FILE)
        if env.exists():
            dotenv.load_dotenv(str(env.absolute()))
        pnconfig = PNConfiguration()
        pub_key = os.environ["PUB_KEY"]
        sub_key = os.environ["SUB_KEY"]
        if pub_key is not None and sub_key is not None:
            pnconfig.subscribe_key = sub_key
            pnconfig.publish_key = pub_key
            pnconfig.ssl = False
            pubnub = PubNub(pnconfig)
            pubnub.publish() \
                .channel('nodes') \
                .message(init_message) \
                .should_store(True) \
                .sync()

            return template("""
                <html>
                <body>
                    {}
                </body>
                </html>
                """.format(
                "<h1>Success</h1>"
                "<p>This Raspberry Pi has published new coords.</p>"))

    except Exception as e:
        success_msg = success_msg + "<p>{}</p>".format(e)

    return template("""
        <html>
        <body>
            {success_msg}
        </body>
        </html>
        """.format(success_msg=success_msg))
예제 #3
0
import threading
import string
import random
import six

from copy import copy
from pubnub import utils
from pubnub.crypto import PubNubCryptodome
from pubnub.pnconfiguration import PNConfiguration

try:
    from mock import patch
except ImportError:
    from unittest.mock import patch  # noqa: F401

crypto = PubNubCryptodome(PNConfiguration())

pub_key = "pub-c-739aa0fc-3ed5-472b-af26-aca1b333ec52"
sub_key = "sub-c-33f55052-190b-11e6-bfbc-02ee2ddab7fe"

pub_key_mock = "pub-c-mock-key"
sub_key_mock = "sub-c-mock-key"

pub_key_pam = "pub-c-98863562-19a6-4760-bf0b-d537d1f5c582"
sub_key_pam = "sub-c-7ba2ac4c-4836-11e6-85a4-0619f8945a4f"
sec_key_pam = "sec-c-MGFkMjQxYjMtNTUxZC00YzE3LWFiZGYtNzUwMjdjNmM3NDhk"

pnconf = PNConfiguration()
pnconf.publish_key = pub_key
pnconf.subscribe_key = sub_key
pnconf.enable_subscribe = False
예제 #4
0
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub
import keys

CHANNEL = "backend-session"
PN_CONFIG = PNConfiguration()
# Get your own keys on PubNub
PN_CONFIG.publish_key = keys.PUBLISH_KEY
PN_CONFIG.subscribe_key = keys.SUBSCRIBE_KEY


def main():
    print("********************************************")
    print("* Publish messages *")
    print("********************************************")

    your_name = input("What is your name?: ")

    pubnub = PubNub(PN_CONFIG)
    while True:
        text = input("What do you want to say?: ")
        if not text:
            print("I didn't hear you...")
            continue

        the_message = {"sender": your_name, "text": text}
        envelope = pubnub.publish().channel(CHANNEL).message(
            the_message).sync()

        if envelope.status.is_error():
            print("[PUBLISH: fail]")
예제 #5
0
#!/usr/bin/python3

from pubnub.pnconfiguration import PNConfiguration
from pubnub.callbacks import SubscribeCallback
from pubnub.exceptions import PubNubException
from pubnub.pubnub import PubNub, SubscribeListener
import sys

pubconf = PNConfiguration()
pubconf.subscribe_key = 'sub-c-dbf66bda-16b9-11e8-8f67-36fe363f7ef0'
pubconf.publish_key = 'pub-c-14a6f403-3bab-4945-8656-7cba4ca4bb1f'
secret_key = "sec-c-Nzk1ZWE3OTItNjdkOS00ZDVlLThiZjAtODBmMWU2MjI2Y2Ji"
pubconf.ssl = False
pubnub = PubNub(pubconf)

# assign a channel
my_channel = 'pi-weather-station'

my_listener = SubscribeListener()
pubnub.add_listener(my_listener)

#
# pubnub.subscribe(my_channel)
# pubnub.start()


def disconnect_channel():
    pubnub.unsubscribe().channels(my_channel).execute()
    my_listener.wait_for_disconnect()
    print('unsubscribed')
예제 #6
0
class Base(Configuration):
    # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'django_nose',
        'corsheaders',
        'rest_framework',
        'rest_framework.authtoken',
        'flocarebase.apps.FlocarebaseConfig',
        'user_auth.apps.UserAuthConfig',
        'phi.apps.PhiConfig',
    ]

    TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'

    NOSE_ARGS = [
        '--cover-erase',
    ]

    MIDDLEWARE = [
        'log_request_id.middleware.RequestIDMiddleware',
        'flocarebase.middleware.DBStatsMiddleWare',
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'corsheaders.middleware.CorsMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',

        # Custom middleware below this
        'flocarebase.middleware.UserInformationMiddleware',
    ]

    ROOT_URLCONF = 'backend.urls'

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates')],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]

    WSGI_APPLICATION = 'backend.wsgi.application'

    # Internationalization
    # https://docs.djangoproject.com/en/2.0/topics/i18n/
    LANGUAGE_CODE = 'en-us'

    TIME_ZONE = 'UTC'

    USE_I18N = True

    USE_L10N = True

    USE_TZ = True

    # Logging related settings
    LOGGING_HANDLERS = {
        'console': {
            'class': 'logging.StreamHandler',
            'filters': ['request_id'],
            'formatter': 'verbose'
        },
        'logfile': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': os.path.dirname(BASE_DIR) + "/logs.txt",
            'filters': ['request_id'],
            'maxBytes': 50000,
            'backupCount': 2,
            'formatter': 'verbose',
        }
    }
    LOGGING_FORMATTERS = {
        'simple': {
            'format': '%(levelname)s %(message)s',
        },
        'verbose': {
            '()':
            'colorlog.ColoredFormatter',
            'format':
            '%(log_color)s%(levelname)s (%(asctime)s)[%(request_id)s](%(module)s)(%(filename)s)(%(funcName)s)'
            '(%(lineno)d) %(message)s'
        }
    }

    # PubNub Specific Settings
    pnconfig = PNConfiguration()
    pnconfig.subscribe_key = "INSERT_PUBNUB_SUBSCRIBE_KEY"
    pnconfig.publish_key = "INSERT_PUBNUB_PUBLISH_KEY"
    pnconfig.ssl = True

    PUBNUB = PubNub(pnconfig)
예제 #7
0
def MotionDetectProc(e):
    HoldingInterval = 30
    LastCapture = dt.datetime.now()
    motionDetected = False
    
    while not e.isSet():
        if((dt.datetime.now() - LastCapture).seconds > HoldingInterval):
        pir.wait_for_motion(1)
        if(pir.motion_detected and (dt.datetime.now() - LastCapture).seconds > HoldingInterval):
            motionDetected = True
            LastCapture = dt.datetime.now()
            DeviceStatus['PIR'] = 1
            GPIO.output(RelayPin, GPIO.HIGH)
            DeviceStatus['Relay'] = 1
            print 'Motion Detected, Relay Opened!'

            global CapEvent
            CapEvent = threading.Event()
            CaptureThread = threading.Thread(target=VideoCaptureProc, args=(CapEvent,))
            CaptureThread.start()

            ### Sync method Publish
            pnconfig = PNConfiguration()

            ### This is for Pubkey and subkey , Channel name
            pnconfig.publish_key = 'pub-c-****'
            pnconfig.subscribe_key = 'sub-c-***'
            Channel = 'TestChannel'
            pubnub = PubNub(pnconfig)
            Happentime = dt.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
            pubnub.publish()\
                .channel(Channel)\
                .message(['Message', 'Motion is Detected!!!, ' + Happentime])\
                .should_store(True)\
                .use_post(True)\
                .sync()
        pir.wait_for_no_motion(1)
        if(pir.motion_detected == False):
            DeviceStatus['PIR'] = 0

        if(pir.motion_detected == False and (dt.datetime.now() - LastCapture).seconds > HoldingInterval)):
            GPIO.output(RelayPin, GPIO.LOW)
            DeviceStatus['Relay'] = 0


########
DetectEvent = threading.Event()
DetectThread = threading.Thread(target=MotionDetectProc, args=(DetectEvent,))
DetectThread.start()

CapEvent = threading.Event()


# Web serveice proces routines
@app.route("/")
def Index():
    templateData = {
            'title' : starttime,
            'DeviceStatus' : DeviceStatus
            }
    return render_template("index.html", **templateData)
 def setup_pubnub(self):
     pnconfig = PNConfiguration()
     pnconfig.subscribe_key = self.pubnub_subscribe_key
     pnconfig.ssl = False
     self.pubnub = PubNub(pnconfig)
     self.pubnub.add_listener(self.listener)
예제 #9
0
def pnconf():
    pnconf = PNConfiguration()
    pnconf.publish_key = 'demo'
    pnconf.subscribe_key = 'demo'
    pnconf.enable_subscribe = False
    return pnconf
예제 #10
0
 def __init__(self, channels):
     self.channels = channels
     pnc = PNConfiguration()
     pnc.subscribe_key = 'sub-c-52a9ab50-291b-11e5-baaa-0619f8945a4f'
     pnc.reconnect_policy = PNReconnectionPolicy.LINEAR
     self.pubnub = PubNubTornado(pnc)
예제 #11
0
 def __init__(self):
     self.pnconfig = PNConfiguration()
     self.CHANNEL = ''
     self.pubnub = object
     self.status = False
def main():
    pnconfig = PNConfiguration()
    pnconfig.subscribe_key = 'sub-c-52a9ab50-291b-11e5-baaa-0619f8945a4f'
    pubnub = PubNub(pnconfig)
    pubnub.add_listener(MySubscribeCallback())
    pubnub.subscribe().channels('lightning_executions_BTC_JPY').execute()
예제 #13
0
try:
    from mock import patch
except ImportError:
    from unittest.mock import patch  # noqa: F401

crypto = PubNubCryptodome()

pub_key = "pub-c-739aa0fc-3ed5-472b-af26-aca1b333ec52"
sub_key = "sub-c-33f55052-190b-11e6-bfbc-02ee2ddab7fe"

pub_key_pam = "pub-c-98863562-19a6-4760-bf0b-d537d1f5c582"
sub_key_pam = "sub-c-7ba2ac4c-4836-11e6-85a4-0619f8945a4f"
sec_key_pam = "sec-c-MGFkMjQxYjMtNTUxZC00YzE3LWFiZGYtNzUwMjdjNmM3NDhk"

pnconf = PNConfiguration()
pnconf.publish_key = pub_key
pnconf.subscribe_key = sub_key
pnconf.enable_subscribe = False

pnconf_sub = PNConfiguration()
pnconf_sub.publish_key = pub_key
pnconf_sub.subscribe_key = sub_key

pnconf_enc = PNConfiguration()
pnconf_enc.publish_key = pub_key
pnconf_enc.subscribe_key = sub_key
pnconf_enc.cipher_key = "testKey"
pnconf_enc.enable_subscribe = False

pnconf_enc_sub = PNConfiguration()
예제 #14
0
 def __init__(self):
     self.pnconfig = PNConfiguration()
     self.pnconfig.subscribe_key = os.getenv('pbi_subscribe_key')
     self.pnconfig.publish_key = os.getenv('pbi_publish_key')
     self.pnconfig.ssl = False
     self.pubnub = PubNub(self.pnconfig)
예제 #15
0
try:
    from mock import patch
except ImportError:
    from unittest.mock import patch  # noqa: F401

crypto = PubNubCryptodome()

pub_key = "pub-c-739aa0fc-3ed5-472b-af26-aca1b333ec52"
sub_key = "sub-c-33f55052-190b-11e6-bfbc-02ee2ddab7fe"

pub_key_pam = "pub-c-98863562-19a6-4760-bf0b-d537d1f5c582"
sub_key_pam = "sub-c-7ba2ac4c-4836-11e6-85a4-0619f8945a4f"
sec_key_pam = "sec-c-MGFkMjQxYjMtNTUxZC00YzE3LWFiZGYtNzUwMjdjNmM3NDhk"

pnconf = PNConfiguration()
pnconf.publish_key = pub_key
pnconf.subscribe_key = sub_key
pnconf.enable_subscribe = False

pnconf_sub = PNConfiguration()
pnconf_sub.publish_key = pub_key
pnconf_sub.subscribe_key = sub_key

pnconf_enc = PNConfiguration()
pnconf_enc.publish_key = pub_key
pnconf_enc.subscribe_key = sub_key
pnconf_enc.cipher_key = "testKey"
pnconf_enc.enable_subscribe = False

pnconf_enc_sub = PNConfiguration()
 def __init__(self, channel):
     pnconfig = PNConfiguration()
     pnconfig.subscribe_key = "sub-c-52a9ab50-291b-11e5-baaa-0619f8945a4f"
     self.pubnub = PubNub(pnconfig)
     self.listener = SubscribeListener()
     self.channel = channel
예제 #17
0
def initialization_config():
    pnconfig = PNConfiguration()
    pnconfig.subscribe_key = "sub-c-52a9ab50-291b-11e5-baaa-0619f8945a4f"#Bitflyerのsubscribe_key
    pnconfig.ssl = False
    pubnub = PubNub(pnconfig)
    return pubnub
import os
import numpy as np
from nltk.tokenize import word_tokenize
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics import accuracy_score
from nltk.stem.porter import PorterStemmer
from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer as VS
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
from textstat.textstat import *
from keras.models import load_model
import json
from keras.models import model_from_json

pn_twitter_config = PNConfiguration()
pn_twitter_config.subscribe_key = 'sub-c-78806dd4-42a6-11e4-aed8-02ee2ddab7fe'
pn_twitter_config.reconnect_policy = PNReconnectionPolicy.EXPONENTIAL
pubnub_twitter = PubNub(pn_twitter_config)

pn_config = PNConfiguration()
pn_config.subscribe_key = 'sub-c-93679206-1202-11e8-bb84-266dd58d78d1'
pn_config.publish_key = 'pub-c-44842793-32df-4b69-b576-4495abcf64ec'
pubnub_personal = PubNub(pn_config)

#TF hack
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

#Change Folder Path here
raw_data_path = "/Users/ritiztambi/repos/Twitter-RealtimeAnalysis-Pubnub"
os.chdir(raw_data_path)
    def long_function(self, timeout, no):

        self.working = True

        timeout_work = threading.Thread(name="thread_name",
                                        target=self.work_time,
                                        args=(timeout, ))
        timeout_work.setDaemon(True)
        timeout_work.start()
        import logging

        import pubnub
        from pubnub.exceptions import PubNubException
        from pubnub.pnconfiguration import PNConfiguration
        from pubnub.pubnub import PubNub, SubscribeListener

        import time
        import os
        pnconfig = PNConfiguration()

        pnconfig.subscribe_key = 'sub-c-5dec13b4-1c6f-11e8-9e0d-86843e43dc8b'
        pnconfig.publish_key = ''

        pubnub = PubNub(pnconfig)
        n = 0
        my_listener = SubscribeListener()

        pubnub.subscribe().channels('Channel-82ldwdilv').execute()
        fp = os.path.join(os.environ['ProgramData'], "new.csv")
        header = []
        header.append('COMPUTER NAME')
        header.append('IP ADDRESS')
        for i in range(0, len(fnl_nf) - 3):
            header.append('APPLICATION ' + str(i + 1))
        with open(fp, 'w+') as f:
            f.write(
                "\t\t\t\tFIND THE SPECIFIC APPLICATION REPORT FOR ALL DEVICES\t\t\t\t\n"
            )
            for i in range(0, len(header)):
                f.write(str(header[i]) + ',')
            f.write('\n')
            import sys
            reload(sys)
            sys.setdefaultencoding('utf8')

        while True:
            print "Listening..."  # endless/long work
            pubnub.add_listener(my_listener)
            result = my_listener.wait_for_message_on('Channel-82ldwdilv')
            n = result.message
            pubnub.remove_listener(my_listener)

            if (n[0] == key):
                with open(fp, 'a') as f:
                    for i in range(1, len(n)):
                        f.write(n[i] + ',')
                    f.write('\n')

            if not self.working:  # if state is working == true still working
                break
        self.set_state(True)
예제 #20
0
import time
import RPi.GPIO as GPIO
from pubnub.callbacks import SubscribeCallback
from pubnub.enums import PNStatusCategory
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub

pubnubConf = PNConfiguration()

pubnubConf.subscribe_key = 'sub-c-1aa69146-117c-11e7-9faf-0619f8945a4f'
pubnubConf.publish_key = 'pub-c-a2c67d8e-1b26-4e00-878b-8b74a6ef3393'
pubnubConf.ssl = False
pubnub = PubNub(pubnubConf)

GPIO.setmode(GPIO.BOARD)
GPIO.setup(16, GPIO.OUT)
GPIO.setwarnings(False)


def my_publish_callback(result, status):
    # Check whether request successfully completed or not
    if not status.is_error():
        pass  # Message successfully published to specified channel.
        print(result)
    else:
        print(status.original_response)
        pass  # Handle message publish error. Check 'category' property to find out possible issue
        # because of which request did fail.
        # Request can be resent using: [status retry];

예제 #21
0
def setup_pubnub(subscriber_key):
    # setup config
    pnconfig = PNConfiguration()
    pnconfig.subscribe_key = subscriber_key
    pnconfig.ssl = False
    return PubNub(pnconfig)
예제 #22
0
class brandlogin(BaseModel):
    id = IntegerField(primary_key=True)
    BRANDNAME = CharField(max_length=50, unique=True)
    BRANDPASSWORD = CharField(max_length=50)


class twitterkey(BaseModel):
    id = IntegerField(primary_key=True)
    CONSUMERKEY = CharField(max_length=150)
    CONSUMERSECRET = CharField(max_length=150)
    ACCESSTOKEN = CharField(max_length=150)
    ACCESSTOKENSECRET = CharField(max_length=150)


pn_config = PNConfiguration()
pn_config.subscribe_key = 'sub-c-8a88390c-241c-11e8-a8f3-22fca5d72012'
pn_config.publish_key = 'pub-c-61a6bc46-301d-484c-887d-566b4bb5ff3d'
pubnub = PubNub(pn_config)


@app.route('/', methods=['GET', 'POST'])
def home():

    if session.get('logged_in'):
        session['feel_value'] = ""
        return redirect(url_for('result'))

    else:
        return render_template('login.html')
예제 #23
0
파일: send.py 프로젝트: Gebov/pi-client
from pubnub.callbacks import SubscribeCallback
from pubnub.enums import PNStatusCategory
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub
from random import randint

import time

pnConfig = PNConfiguration()
pnConfig.subscribe_key = "demo"
pnConfig.publish_key = "demo"
pubnub = PubNub(pnConfig)


def my_publish_callback(envelope, status):
    if not status.is_error():
        print("publish success")
    else:
        print("publish fail")


counter = 0
while True:
    try:
        message = "hello" + str(counter)
        pubnub.publish().channel("awesomeChannel").message(message).sync()
        time.sleep(1)
        counter += 1
    except KeyboardInterrupt:
        break
예제 #24
0
from pubnub.callbacks import SubscribeCallback
from pubnub.enums import PNStatusCategory
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub
from geolocation.main import GoogleMaps
from time import sleep

google_maps = GoogleMaps(api_key='Your_Google_API_Key')

# Configure Twitter subscribe key
pnconfigTwitter = PNConfiguration()

pnconfigTwitter.subscribe_key = 'sub-c-78806dd4-42a6-11e4-aed8-02ee2ddab7fe'

pubnubTwitter = PubNub(pnconfigTwitter)

# Configure personal subscribe and publish key
pnconfigPersonal = PNConfiguration()

pnconfigPersonal.subscribe_key = 'Your_PubNub_App_Subscribe_Key'
pnconfigPersonal.publish_key = 'Your_PubNub_App_Publish_Key'

pubnubPersonal = PubNub(pnconfigPersonal)


# Callback for any publish
def my_publish_callback(envelope, status):
    # Check whether request successfully completed or not
    if not status.is_error():
        print("Published")
        pass  # Message successfully published to specified channel.
예제 #25
0
from pubnub.callbacks import SubscribeCallback
from pubnub.enums import PNStatusCategory
from pubnub.pnconfiguration import PNConfiguration
from pubnub.exceptions import PubNubException
from pubnub.pubnub import PubNub
from random import *
import time

pnconfig = PNConfiguration()

pnconfig.subscribe_key = 'sub-c-cb6369c0-0fdf-11e8-91c1-eac6831c625c'
pnconfig.publish_key = 'pub-c-50d55c74-1141-477e-9456-36f1126859c1'

pubnub = PubNub(pnconfig)

#Set default variables
light = 'green'
vel = 50
temp = 21.2
status = 'OK'

#Traffic lights changes manager
def lights (light):
    if (light == 'green'):
        light = 'yellow'
        return light
    if (light == 'yellow'):
        light = 'red'
        return light
    if (light == 'red'):
        light = 'green'
예제 #26
0
class TemperatureMonitor(threading.Thread):

    pnconfig = PNConfiguration()
    pnconfig.subscribe_key = keys.pubnunb_subscribe_key
    pnconfig.publish_key = keys.pubnub_publish_key
    pnconfig.ssl = False
    pubnub = PubNub(pnconfig)
    sense = SenseHat()

    class SACListener(SubscribeCallback):
        sac_temp = 20

        def message(self, pubnub, message):
            channel = message.channel
            message = message.message
            if (channel == 'Temperature_Command_Channel'):
                req = message['Request']
                print(message)
                if (req == 'Get_Data_Load'):
                    TemperatureMonitor().publish_data(
                        self.sac_temp, 'Temperature_Data_Load_Channel')
                if (req == 'Get_Data_Real_Time'):
                    TemperatureMonitor().publish_data(
                        self.sac_temp, 'Temperature_Real_Time_Channel')
                if (req == 'Get_Data_Storage'):
                    TemperatureMonitor().publish_data(
                        self.sac_temp, 'Temperature_Storage_Channel')
                if (req == 'Change_Temp'):
                    new_temp = message['Temperature']
                    self.update_temperature(new_temp)
                    TemperatureMonitor().publish_data(
                        self.sac_temp, 'Temperature_Data_Load_Channel')

        def presence(self, pubnub, presence):
            pass

        def update_temperature(self, new_temp):
            self.sac_temp = new_temp

    def publish_callback(self, result, status):
        pass

    def publish_data(self, sac_temp, channel_name):
        dataCollector = DataCollector()
        temp = dataCollector.get_temp()
        humid = dataCollector.get_humidity()
        message = {
            'temperature': temp,
            'humidity': humid,
            'sac_temperature': sac_temp
        }
        if (channel_name == 'Temperature_Real_Time_Channel'):
            message = {
                'eon': {
                    'temperature': temp,
                    'humidity': humid,
                    'sac_temperature': sac_temp
                }
            }
        self.pubnub.publish().channel(channel_name).message(message). async (
            self.publish_callback)

    def listen(self):
        listener = self.SACListener()
        self.pubnub.add_listener(listener)
        self.pubnub.subscribe().channels(
            'Temperature_Command_Channel').execute()

    def run(self):
        self.listen()