Skip to content

Instantly share code, notes, and snippets.

View hvv-departures-card.js
class HvvDeparturesCard extends HTMLElement {
set hass (hass) {
const entityId = this.config.entity
const state = hass.states[entityId]
const name = this.config.name || state.attributes['friendly_name']
if (!this.content) {
const card = document.createElement('ha-card')
card.header = name
this.content = document.createElement('div')
View lovelace.yaml
button_card_templates:
homekit:
aspect_ratio: 1/1
hold_action:
action: more-info
show_label: true
show_state: true
color_type: card
color: '#232321'
size: 28px
View greet.js
[{"id":"6e393969.673f5","type":"server-state-changed","z":"974a0bef.a0e068","name":"Someone comes 🏠","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"person\\..*","entityidfiltertype":"regex","outputinitially":false,"state_type":"str","haltifstate":"home","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"x":110,"y":620,"wires":[["49d067bc.f7f448"],[]]},{"id":"49d067bc.f7f448","type":"delay","z":"974a0bef.a0e068","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":235,"y":620,"wires":[["e01bf48d.d8b98"]],"l":false},{"id":"e01bf48d.d8b98","type":"function","z":"974a0bef.a0e068","name":"Filter family","func":"let family = ['person.alice', 'person.bob', 'person.celine', 'person.dylan'];\n\nif(family.includes(msg.topic)) {\n node.status({fill:\"
@vigonotion
vigonotion / campfire-orange.yaml
Created Apr 26, 2020
Theme for Home Assistant
View campfire-orange.yaml
# Main colors
primary-color: '#ffb430' #322a65
accent-color: '#ffb430' #312868
#dark-primary-color: '#2980b9'
light-primary-color: '#fff6e6'
#mdc-theme-primary: '#e971ae'
# Backgrounds
lovelace-background: 'center / cover no-repeat url("/local/background.jpg?v=1") fixed'
@vigonotion
vigonotion / save_and_restore_states.yaml
Created Dec 27, 2019
Save and restore light states using Home Assistant (Node-RED automation)
View save_and_restore_states.yaml
[
{
"id": "1a171a83.11dfdd",
"type": "api-call-service",
"z": "25e52f9c.ae111",
"name": "save state",
"server": "e02cc9b7.16ead8",
"version": 1,
"debugenabled": false,
"service_domain": "scene",
View diy-echo-link-amp.json
@vigonotion
vigonotion / export_as_primitive.py
Created Jun 25, 2019
Blender script to export as a geometry for three.js
View export_as_primitive.py
import bpy, os
result = ""
obdata = bpy.context.object.data
result += 'Vertices: \n'
for v in obdata.vertices:
result += ('{}, {}, {}, '.format(v.co.x, v.co.z, v.co.y)) + '\n'
View water_bottles.yaml
esphome:
name: water_bottles
platform: ESP8266
board: d1_mini
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
api:
View spzb_quirk.py
from zigpy.profiles import PROFILES, zha
from zigpy.zcl.clusters.general import Basic, Identify,\
Ota, PowerConfiguration, Time, Groups
from zigpy.zcl.clusters.hvac import Thermostat
from zigpy.quirks import CustomDevice, CustomCluster
import zigpy.types as types
from zigpy.zcl import foundation
THERMOSTAT_CHANNEL = 'thermostat'
View elevator.js
{
init: function(elevators, floors) {
var elevator = elevators[0]; // Let's use the first elevator
var requested_floors = new Set();
var stop_for_leavers = new Set();
var collectPassengersOnPass = function(elevator) {
elevator.on("passing_floor", function(floorNum, direction) {