Ejemplo n.º 1
0
"""

import os
import logging
from django.conf.urls import url
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from influxdb.exceptions import InfluxDBClientError
from endpoints.utils import BasePlugin
from endpoints.utils import basicauth, get_influxdb_client, create_influxdb_obj
from endpoints.utils import get_setting
from endpoints.tasks import save_to_influxdb

ENV_NAME = 'ESPEASY_URL'
URL = get_setting(ENV_NAME)
ESP_EASY_DB = get_setting('ESP_EASY_DB', 'espeasy')
logger = logging.getLogger(__name__)


class Plugin(BasePlugin):
    """
    Esp Easy plugin. Checks if endpoint's URL has been set in env.
    """
    name = 'espeasy'
    viewname = 'espeasyhandler'

    def __init__(self):
        """Check that `ENV_NAME` is in env variables."""
        super().__init__()
        if URL is not None:
Ejemplo n.º 2
0
import pytz
import re
import random
from django.conf import settings
from django.conf.urls import url
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from django.utils import timezone
from influxdb.exceptions import InfluxDBClientError
from endpoints.utils import BasePlugin
from endpoints.utils import get_influxdb_client, create_influxdb_obj
from endpoints.utils import get_setting, get_datalogger
from endpoints.views import dump_request

ENV_NAME = 'EVERYNET_URL'
URL = get_setting(ENV_NAME)
EVERYNET_DB = get_setting('EVERYNET_DB', 'everynet')
logger = logging.getLogger(__name__)


def handle_v1(data):
    pass


def handle_paxcounter(data_str):
    wifi = int.from_bytes(data_str[:2], byteorder='big')
    ble = int.from_bytes(data_str[2:], byteorder='big')
    idata = {'wifi': wifi, 'ble': ble}
    return idata

Ejemplo n.º 3
0
import binascii
import dateutil
import pytz
from django.conf import settings
from django.conf.urls import url
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from django.utils import timezone
from influxdb.exceptions import InfluxDBClientError
from endpoints.utils import BasePlugin
from endpoints.utils import get_influxdb_client, create_influxdb_obj
from endpoints.utils import get_setting, get_datalogger
from endpoints.views import dump_request

ENV_NAME = 'DIGITA_URL'
URL = get_setting(ENV_NAME)
DIGITA_DB = get_setting('DIGITA_DB', 'digita')
logger = logging.getLogger(__name__)


def hex2int(hex_str):
    """
    Convert 2 hex characters (e.g. "23") to int (35)
    :param hex_str: hex character string
    :return: int integer
    """
    return int(hex_str, 16)


def calc_temp(hex_str):
    """
Ejemplo n.º 4
0
import datetime
import json
import logging

from dateutil.parser import parse
from django.conf.urls import url
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from influxdb.exceptions import InfluxDBClientError
from endpoints.utils import BasePlugin
from endpoints.utils import basicauth, get_influxdb_client, create_influxdb_obj
from endpoints.utils import get_setting, get_datalogger
from endpoints.tasks import save_to_influxdb, push_ngsi_orion

ENV_NAME = 'SENTILO_URL'
URL = get_setting(ENV_NAME)
SENTILO_DB = get_setting('SENTILO_DB', 'sentilo')
logger = logging.getLogger(__name__)

ORION_URL_ROOT = get_setting('ORION_URL_ROOT')
ORION_USERNAME = get_setting('ORION_USERNAME')
ORION_PASSWORD = get_setting('ORION_PASSWORD')


def parse_sentilo_data(data):
    measurements = []
    for item in data['sensors']:
        ts_str = item['observations'][0].get('timestamp')
        if ts_str is not None:
            ts = parse(item['observations'][0]['timestamp'], dayfirst=True)
        else:
Ejemplo n.º 5
0
import json
import logging
import os
from dateutil.parser import parse
from django.conf.urls import url
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from influxdb.exceptions import InfluxDBClientError
from endpoints.utils import BasePlugin
from endpoints.utils import get_influxdb_client, create_influxdb_obj
from endpoints.utils import get_setting
from endpoints.views import dump_request
from endpoints.models import Plate

ENV_NAME = 'PLATECAMERA_URL'
URL = get_setting(ENV_NAME)
logger = logging.getLogger(__name__)


def invalid_data(data_str, msg, status=400):
    log_msg = '[PLATECAMERA] Invalid data: "{}". {}.'.format(
        data_str[:50], msg)
    err_msg = 'Invalid data: "{}"... Hint: {}'.format(data_str[:50], msg)
    logger.error(log_msg)
    return HttpResponse(err_msg, status=status)


class Plugin(BasePlugin):
    """
    Example plugin. Checks if endpoint's URL has been set in env.
    """
Ejemplo n.º 6
0
"""

import json
import dateutil.parser
import logging
from django.conf.urls import url
from django.http import HttpResponse
from django.utils.timezone import get_default_timezone
from django.views.decorators.csrf import csrf_exempt
from endpoints.utils import BasePlugin
from endpoints.utils import basicauth, create_influxdb_obj
from endpoints.utils import get_setting
from endpoints.tasks import save_to_influxdb

ENV_NAME = 'RUUVISTATION_URL'
URL = get_setting(ENV_NAME)
RUUVISTATION_DB = get_setting('RUUVISTATION_DB', 'ruuvistation')
logger = logging.getLogger(__name__)

to_save = [
    "rssi",
    "voltage",
    "accelY",
    "accelZ",
    "accelX",
    "temperature",
    "pressure",
    "humidity",
    "movementCounter",
    "defaultBackground",
]