Skip to content

Instantly share code, notes, and snippets.

View alvarowolfx's full-sized avatar
🏠
Working from home

Alvaro Viebrantz alvarowolfx

🏠
Working from home
View GitHub Profile
@alvarowolfx
alvarowolfx / stream.py
Created October 26, 2021 13:30
Querying Golioth LightDB Stream in Python
import requests
import json
from datetime import timedelta, datetime
API_KEY = "YOUR_API_KEY"
PROJECT_ID = "YOUR_PROJECT_ID"
base_url = 'https://api.golioth.io/v1/projects/' + PROJECT_ID
def getStream(start, end, fields):
@alvarowolfx
alvarowolfx / cloudbuild.yaml
Created November 26, 2018 12:40
Google Cloud OTA - Cloud Build file
steps:
- name: 'sglahn/platformio-core:latest'
dir: .
args: ['run']
artifacts:
objects:
location: 'gs://$PROJECT_ID-firmwares/$TAG_NAME'
paths: ['/workspace/.pioenvs/esp32/firmware_esp32.bin','/workspace/.pioenvs/esp8266/firmware_esp8266.bin']
@alvarowolfx
alvarowolfx / platformio.ini
Created November 22, 2018 19:39
Google Cloud OTA Update Post - Config file
[common]
build_flags = '-DVERSION="1.2.0"'
extra_scripts = pre:extra_script.py
monitor_speed = 115200
lib_deps_external =
tzapu/WiFiManager#development
[env:esp8266]
platform = espressif8266
board = nodemcuv2
@alvarowolfx
alvarowolfx / main.cpp
Created November 22, 2018 19:39
Google Cloud OTA Update Post - Arduino main.cpp
/*
* Check if needs to update the device and returns the download url.
*/
String getDownloadUrl()
{
HTTPClient http;
String downloadUrl;
USE_SERIAL.print("[HTTP] begin...\n");
String url = CLOUD_FUNCTION_URL;
@alvarowolfx
alvarowolfx / getDownloadUrl.js
Created November 22, 2018 19:34
Google Cloud OTA Update Post - Get Download URL
const { BigQuery } = require( '@google-cloud/bigquery' )
const semver = require( 'semver' )
const projectId = process.env.GCLOUD_PROJECT
const bqClient = new BigQuery( { projectId } )
/**
* Responds to any HTTP request.
* @param {!express:Request} req HTTP request context.
* @param {!express:Response} res HTTP response context.
@alvarowolfx
alvarowolfx / blink.cpp
Created November 22, 2018 19:34
Google Cloud OTA Update Post - Blink
@alvarowolfx
alvarowolfx / InsertFirmwareOnBigquery.js
Last active November 22, 2018 19:39
Google Cloud OTA Update Post - InsertBQ
const path = require( 'path' )
/**
* Generic background Cloud Function to be triggered by Cloud Storage.
*
* @param {object} data The event payload.
* @param {object} context The event metadata.
*/
exports.insertFirmwaresOnBigquery = ( data, context ) => {
const file = data;
@alvarowolfx
alvarowolfx / index.js
Created January 19, 2018 02:16
Asset Tracker WebApp Firestore Access
/**
* Listen to devices changes on Firestore
* and update the current state
*/
function loadDevices() {
const db = firebase.firestore();
db.collection('devices').onSnapshot(snapshot => {
const devices = snapshot.docs.map(doc => doc.data());
this.setState(
@alvarowolfx
alvarowolfx / index.js
Last active August 14, 2018 14:01
Asset Tracker Cloud Functions
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const Geopoint = require('geopoint');
const googleapis = require('googleapis');
admin.initializeApp();
const GeoPointFirestore = admin.firestore.GeoPoint;
const db = admin.firestore();
@alvarowolfx
alvarowolfx / mos.yml
Created January 17, 2018 14:12
Asset Tracker config
author: Alvaro Viebrantz
description: An asset tracker project
version: 1.0
libs_version: 1.21
modules_version: 1.21
mongoose_os_version: 1.21
# Optional. List of tags for online search.
tags: