def init_pubnub():
    global pubnub
    pnconfig = PNConfiguration()
    pnconfig.subscribe_key = 'sub-c-f97a2b14-b03f-11e7-8d4b-66b981d3b880'
    pnconfig.publish_key = 'pub-c-b7f324ac-e190-4bcf-ba5e-b860168f6f9b'
    pnconfig.secret_key = 'sec-c-YjQ1ZDQwYzktYTY4YS00OWY0LWIzNDUtYTlkNjI4YTIxNDBj'
    pubnub = PubNub(pnconfig)
    pubnub.add_listener(MySubscribeCallback())
    pubnub.subscribe().channels('magicmirror').execute()
    print('pubnub subscription completed')
    def subscribe(channels, keys):
        print('subscribing now... {c}, {k}'.format(c=channels, k=keys))

        pnconfig = PNConfiguration()
        pnconfig.subscribe_key = keys[0]
        pnconfig.publish_key = keys[1]
        pnconfig.secret_key = keys[2]
        pubnub = PubNub(pnconfig)

        pubnub.add_listener(MySubscribeCallback())
        pubnub.subscribe().channels(channels).execute()
    def __init__(self, gdatabase = None, admin_channel = None):
        self.gdatabase = gdatabase
        self.admin_channel = admin_channel

        if gdatabase is None:
            password = input("Database password: "******"Rebuilding subscriptions..")
        subscriptions = self.gdatabase.get_channels()
        if subscriptions:
            self.subscribe_channels(subscriptions)

        self.default_channels = ["policy", "gateway_global", self.admin_channel, "embedded_devices"]

        print("GatewayReceiver: Subscribing to the Policy server and Gateway global feed..")
        self.pubnub.grant().channels(self.default_channels[0]).auth_keys([self.gdatabase.receivers_key(), self.gdatabase.policy_key()]).read(True).write(True).manage(True).ttl(0).sync()
        self.pubnub.grant().channels(self.default_channels[1:]).read(True).write(True).manage(True).sync()

        self.subscribe_channels(self.default_channels[:-1])

        self.pastebin = PasteFetcher.PasteFetcher()
예제 #4
0
    def __init__(self, host, user, password, database):
        print("GatewayAuth: Starting gateway database..")
        self.gd = gateway_database.GatewayDatabase(host, user, password,
                                                   database)

        pnconfig = PNConfiguration()
        pnconfig.subscribe_key = self.gd.sub_key()
        pnconfig.publish_key = self.gd.pub_key()
        pnconfig.secret_key = self.gd.sec_key()
        pnconfig.subscribe_timeout = 9 ^ 99
        pnconfig.connect_timeout = 9 ^ 99
        pnconfig.non_subscribe_timeout = 9 ^ 99
        pnconfig.ssl = True
        pnconfig.reconnect_policy = PNReconnectionPolicy.LINEAR
        pnconfig.uuid = 'GA'
        pnconfig.auth_key = idgen.id_generator(size=42)

        self.pubnub = PubNub(pnconfig)
        self.pubnub.add_listener(self)
        self.pubnub.unsubscribe_all()

        self.admin_channel = idgen.id_generator(size=255)
        self.pubnub.grant().channels(self.admin_channel).auth_keys(
            [self.gd.receivers_key(),
             pnconfig.auth_key]).read(True).write(True).manage(True).sync()

        print("GatewayAuth: Starting the receiver..")
        self.gr = gateway_receiver.Receiver(self.gd, self.admin_channel)
        self.gateway_uuids = [pnconfig.uuid, self.gr.uuid]
        self.gateway_channels = ["gateway_auth", "gateway_global"]

        self.pubnub.grant().channels(
            self.gateway_channels).read(True).write(True).manage(True).sync()
        print(
            "GatewayAuth: Connecting to gateway channel and gateway global feed.."
        )
        self.pubnub.subscribe().channels(
            self.gateway_channels +
            [self.admin_channel]).with_presence().execute()

        self.receiver_auth_key = self.gd.receivers_key()
예제 #5
0
import Adafruit_DHT
from gpiozero import LED, Button
from time import sleep


import pubnub
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub
from pubnub.callbacks import SubscribeCallback
from pubnub.enums import PNOperationType, PNStatusCategory

 
pnconfig = PNConfiguration()
pnconfig.subscribe_key = "sub-c-7da197b0-a787-11ea-ae1a-36d49400aaff"
pnconfig.publish_key = "pub-c-12ed66b1-705b-4eb4-aef6-4fe9dcf7b245"
pnconfig.secret_key = "sec-c-ZGM5OWE4YmMtYzdlOC00MzljLTkxYmQtOTUzZmMyZTM4NmI2"
pnconfig.ssl = False
 
pubnub = PubNub(pnconfig)

#Pump is connected to GPIO4 as an LED
pump = LED(4)

#DHT Sensor is connected to GPIO17
sensor = 22
pin = 17

#Soil Moisture sensor is connected to GPIO14 as a button
soil = Button(14)

flag = 1
예제 #6
0
from pubnub.callbacks import SubscribeCallback
from pubnub.enums import PNStatusCategory
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub

pnconfig = PNConfiguration()

pnconfig.subscribe_key = 'Enter your subscribe key here'
pnconfig.publish_key = 'Enter your publish key here'
pnconfig.secret_key = 'Enter your secret key here'

pubnub = PubNub(pnconfig)


def my_publish_callback(envelope, status):
    if not status.is_error():
        pass
    else:
        pass


class MySubscribeCallback(SubscribeCallback):
    def presence(self, pubnub, presence):
        pass

    def status(self, pubnub, status):
        if status.category == PNStatusCategory.PNUnexpectedDisconnectCategory:
            pass
        if status.category == PNStatusCategory.PNConnectedCategory:
            pubnub.grant().read(True).write(True).channels('RP').auth_keys(
                'Valid_key').ttl(2).sync()
예제 #7
0
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub
from dotenv import load_dotenv

# App creation
app = Flask(__name__)
CORS(app)

# DB init
db = FireDB()

# Pubnub init
load_dotenv()

pnconfig = PNConfiguration()
pnconfig.publish_key = os.environ['PN_PUBLISH_KEY']
pnconfig.subscribe_key = os.environ['PN_SUBSCRIBE_KEY']
pnconfig.secret_key = os.environ['PN_SECRET_KEY']
pnconfig.uuid = os.environ['PN_SERVER_UUID']

pubnub = PubNub(pnconfig)

# Import blueprints
from flaskr import home, users, friends, groups, auth

app.register_blueprint(home.bp)
app.register_blueprint(users.bp)
app.register_blueprint(friends.bp)
app.register_blueprint(groups.bp)
app.register_blueprint(auth.bp)
예제 #8
0
pnconf_enc.publish_key = pub_key
pnconf_enc.subscribe_key = sub_key
pnconf_enc.cipher_key = "testKey"
pnconf_enc.enable_subscribe = False
pnconf_enc.uuid = uuid_mock

pnconf_enc_sub = PNConfiguration()
pnconf_enc_sub.publish_key = pub_key
pnconf_enc_sub.subscribe_key = sub_key
pnconf_enc_sub.cipher_key = "testKey"
pnconf_enc_sub.uuid = uuid_mock

pnconf_pam = PNConfiguration()
pnconf_pam.publish_key = pub_key_pam
pnconf_pam.subscribe_key = sub_key_pam
pnconf_pam.secret_key = sec_key_pam
pnconf_pam.enable_subscribe = False
pnconf_pam.uuid = uuid_mock

pnconf_pam_stub = PNConfiguration()
pnconf_pam_stub.publish_key = "pub-stub"
pnconf_pam_stub.subscribe_key = "sub-c-stub"
pnconf_pam_stub.secret_key = "sec-c-stub"
pnconf_pam_stub.uuid = uuid_mock

pnconf_ssl = PNConfiguration()
pnconf_ssl.publish_key = pub_key
pnconf_ssl.subscribe_key = sub_key
pnconf_ssl.ssl = True
pnconf_ssl.uuid = uuid_mock
예제 #9
0
import logging

import asyncio
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub_asyncio import PubNubAsyncio

pnconfig = PNConfiguration()

pnconfig.publish_key = "pub-c-98863562-19a6-4760-bf0b-d537d1f5c582"
pnconfig.subscribe_key = "sub-c-7ba2ac4c-4836-11e6-85a4-0619f8945a4f"
pnconfig.secret_key = "sec-c-MGFkMjQxYjMtNTUxZC00YzE3LWFiZGYtNzUwMjdjNmM3NDhk"
pnconfig.auth_key = "blah"
pnconfig.enable_subscribe = False

pubnub = PubNubAsyncio(pnconfig)


async def grant():
    envelope = await pubnub.grant().auth_keys("blah").channels(
        "history_channel").read(True).write(True).ttl(0).future()
    print("Grant access: %r" % envelope.status.is_error())


logger = logging.getLogger("pubnub")


async def publish500():
    for i in range(0, 500):
        envelope = await pubnub.publish()\
            .message(['message#', i])\
            .channel('history_channel')\
예제 #10
0
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()
pnconf_enc_sub.publish_key = pub_key
pnconf_enc_sub.subscribe_key = sub_key
pnconf_enc_sub.cipher_key = "testKey"

pnconf_pam = PNConfiguration()
pnconf_pam.publish_key = pub_key_pam
pnconf_pam.subscribe_key = sub_key_pam
pnconf_pam.secret_key = sec_key_pam
pnconf_pam.enable_subscribe = False

pnconf_ssl = PNConfiguration()
pnconf_ssl.publish_key = pub_key
pnconf_ssl.subscribe_key = sub_key
pnconf_ssl.ssl = True

message_count_config = PNConfiguration()
message_count_config.publish_key = 'demo-36'
message_count_config.subscribe_key = 'demo-36'
message_count_config.origin = 'balancer1g.bronze.aws-pdx-1.ps.pn'

objects_config = PNConfiguration()
objects_config.publish_key = 'demo'
objects_config.subscribe_key = 'demo'
예제 #11
0
파일: PB.py 프로젝트: D00219161/FARMIoTCA3
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub

server_UUID = "df89d8b2-358e-11eb-adc1-0242ac120002"  # UUID Generated
cipherKey = "myCipherKey"  # Cipher Key
myChannel = "Homesafe"  # Channel Name

############################
pnconfig = PNConfiguration()

# Homesafe PubNub Connections - All members have access using these
pnconfig.subscribe_key = 'sub-c-12924b4c-2f48-11eb-9713-12bae088af96'
pnconfig.publish_key = 'pub-c-4c71c151-b075-498f-bfbc-c6f3221ed3b6'
pnconfig.secret_key = "sec-c-MTliZTg5YmItYjE3Zi00OGYxLTgwZDEtOTE5OGY5NDlmNWVk"
pnconfig.uuid = server_UUID
pnconfig.cipher_key = cipherKey
pubnub = PubNub(pnconfig)


def grant_access(auth_key, read, write):
    if read is True and write is True:
        grant_read_and_write_access(auth_key)
    elif read is True:
        grant_read_access(auth_key)
    elif write is True:
        grant_write_access(auth_key)
    else:
        revoke_access(auth_key)


def grant_read_and_write_access(auth_key):
예제 #12
0
파일: helper.py 프로젝트: pubnub/python
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()
pnconf_enc_sub.publish_key = pub_key
pnconf_enc_sub.subscribe_key = sub_key
pnconf_enc_sub.cipher_key = "testKey"

pnconf_pam = PNConfiguration()
pnconf_pam.publish_key = pub_key_pam
pnconf_pam.subscribe_key = sub_key_pam
pnconf_pam.secret_key = sec_key_pam
pnconf_pam.enable_subscribe = False

pnconf_ssl = PNConfiguration()
pnconf_ssl.publish_key = pub_key
pnconf_ssl.subscribe_key = sub_key
pnconf_ssl.ssl = True


def pnconf_copy():
    return copy(pnconf)


def pnconf_enc_copy():
    return copy(pnconf_enc)
예제 #13
0
파일: myPB.py 프로젝트: sonali-Packt/IOT
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub

server_UUID = "server"
cipherKey = "myCipherKey"
myChannel = "RSPY"

############################
pnconfig = PNConfiguration()

pnconfig.subscribe_key = 'sub-c-c96cd480-3528-11e8-a218-f214888d2de6'
pnconfig.publish_key = 'pub-c-f141a42f-ae6d-4f11-bbaf-4bc7cb518b6c'
pnconfig.secret_key = "sec-c-YzhiNDQ0ZDEtODNmMS00M2NmLTgwMDktZmNlYjgzMDJkYjE5"
pnconfig.uuid = server_UUID
pnconfig.cipher_key = cipherKey
pnconfig.ssl = True
pubnub = PubNub(pnconfig)


def grantAccess(auth_key, read, write):
    if read is True and write is True:
        grantReadAndWriteAccess(auth_key)
    elif read is True:
        grantReadAccess(auth_key)
    elif write is True:
        grantWriteAccess(auth_key)
    else:
        revokeAccess(auth_key)


def grantReadAndWriteAccess(auth_key):
예제 #14
0
import logging
import pubnub
from pubnub.callbacks import SubscribeCallback
from pubnub.enums import PNOperationType, PNStatusCategory, PNPushType

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

pubnub.set_stream_logger('pubnub', logging.DEBUG)

pnconfig = PNConfiguration()

pnconfig.publish_key = "demo"
pnconfig.subscribe_key = "demo"
pnconfig.secret_key = "demo"

pubnub = PubNub(pnconfig)


def gcm_handler(result, status):
    if status.is_error():
        # handle error
        return

    print(result)

envelope = pubnub.add_channels_to_push()\
    .push_type(PNPushType.GCM)\
    .channels("ch1", "ch2", "ch3")\
    .device_id("deviceId")\
    .sync()