Skip to content

Instantly share code, notes, and snippets.

@joshualyon
joshualyon / traefik-snippet.toml
Created March 29, 2020 16:15
Example snippet of traefik configuration file
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[[entryPoints.https.tls.certificates]]
certFile = """-----BEGIN CERTIFICATE-----
MY-SSL-CERT-FILE-HERE
/**
* Copyright 2015 SmartThings
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
/**
* Copyright 2016 David Lomas (codersaur)
*
* Name: Evohome Heating Zone
*
* Author: David Lomas (codersaur)
*
* Date: 2016-04-08
*
* Version: 0.09
/**
* Copyright 2017 SmartThings
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
@joshualyon
joshualyon / timedSession.groovy
Created October 4, 2019 22:16
Timed Session Driver Example
/*
Timed Session Example
Author: @josh (SharpTools.io)
Just a stubbed driver to test adding a switch attribute without the Switch capability.
Doesn't actually full implement the Timed Session spec as it's just to test the sessionStatus and switch events.
*/
metadata {
definition (name: "Timed Session", namespace: "sharptools-io", author: "Josh Lyon") {
@joshualyon
joshualyon / app_server_proxy_fix.md
Last active August 2, 2019 16:05
dev_appserver fix for external reverse proxy hosts for Task Queues

dev_appserver fix for Task Queues behind proxy like ngrok

By default, it seems dev_appserver Task Queue handling does not work well behind a reverse proxy, like ngrok. This patch allows requests that don't match a host to still be processed.

Specifically, commenting out the raising of the ModuleDoesNotExistError and instead returning None for the _module and inst variables so the task can still be processed.

This is around line 816 in _resolve_target() in dispatcher.py in the 1.9.86 gcloud app Python Extensions:

\platform\google_appengine\tools\devappserver2\dispatcher.py
/**
* Simulated Battery
*
* Copyright 2019 josh
*/
metadata {
definition (name: "Simulated Battery", namespace: "sharptools-io", author: "josh", cstHandler: true) {
capability "Battery"
capability "Sensor"
capability "Actuator"
@joshualyon
joshualyon / virtual-st-fan.groovy
Created July 3, 2019 15:42
Virtual Fan for SmartThings
metadata {
definition(name: "Virtual Fan Controller", namespace: "sharptools-io", author: "josh", ocfDeviceType: "oic.d.fan") {
capability "Switch Level"
capability "Switch"
capability "Fan Speed"
capability "Health Check"
capability "Actuator"
capability "Refresh"
capability "Sensor"
// Developer: [email protected]
metadata {
definition (name: "Simulated Fan", namespace: "sharptools/testing", author: "josh") {
capability "Actuator"
capability "Sensor"
capability "Fan Control"
command "cycleSpeed"
}
}
// Developer: [email protected]
metadata {
definition (name: "Simulated Fan + Switch", namespace: "sharptools/testing", author: "josh") {
capability "Sensor"
capability "Switch"
capability "Fan Control"
capability "Health Check"
command "active"
command "inactive"