Skip to content

Instantly share code, notes, and snippets.

@jeffehobbs
jeffehobbs / mississippi.json
Created March 13, 2024 13:35
List of cities and towns of Mississippi
[
"Abbeville",
"Aberdeen",
"Ackerman",
"Algoma",
"Alligator",
"Amory",
"Anguilla",
"Arcola",
"Artesia",
@jeffehobbs
jeffehobbs / texas.json
Created March 13, 2024 13:33
List of municipalities in Texas
[
"Abbott",
"Abernathy",
"Abilene",
"Ackerly",
"Addison",
"Adrian",
"Agua Dulce",
"Alamo",
"Alamo Heights",
@jeffehobbs
jeffehobbs / vibration_sensor_ESP32_HA_how_to.txt
Last active March 7, 2024 09:59
Vibration Sensor for ESPHome/Home Assistant
GOAL: Send a push notification after the (vibrations from the) dryer cycle has completely stopped.
USING:
* Inexpensive hardware (see below)
* ESPhome (http://esphome.io) for chip firmware
* Home Assistant (http://hass.io) for sensor state machine and push notification.
---
SHOPPING LIST:
@jeffehobbs
jeffehobbs / alabama.json
Created June 17, 2020 14:36
JSON array of cities and towns in Alabama
[
"Abbeville",
"Adamsville",
"Addison",
"Akron",
"Alabaster",
"Albertville",
"Alexander",
"Aliceville",
"Allgood",
@jeffehobbs
jeffehobbs / get_wk_token.py
Last active February 1, 2024 20:24
Get ADC WeatherKit token for REST API
# get_wk_token.py // jeffehobbs@gmail.com // Nov. 2022
# from documentation here, which you should read first:
# https://developer.apple.com/documentation/weatherkitrestapi/request_authentication_for_weatherkit_rest_api
#
# 1. Have a valid ADC acount. https://developer.apple.com
# 2. Download this script, and open it in a text editor. You'll have to change three variables.
# 3. Make up a reverse-domain name service ID (i.e., com.domain.app). Place this in SERVICE_ID.
# 4. Create an ADC service identifier. https://developer.apple.com/account/resources/identifiers/add/bundleId
# 5. Create an ADC service key. https://developer.apple.com/account/resources/authkeys/add
# 6. Download that service key, rename to 'wkservicekey.p8', and move it into same directory as this script.
@jeffehobbs
jeffehobbs / curbalertbot.py
Last active January 15, 2024 00:43
curbalertbot - filters free stuff by location and tweets new items. https://twitter.com/CurbAlertBot
# curbalert
# jeffehobbs@gmail.com // last revision July 2023
import asyncio
import tweepy, requests, configparser, json, os, shutil, hashlib, time
from termcolor import colored, cprint
from pyppeteer import launch
from mastodon import Mastodon
# globals
@jeffehobbs
jeffehobbs / dallewood.py
Created November 22, 2023 23:25
bulk generator of terrible AI images
# dallewood | jeffehobbs@gmail.com
import typer, configparser, os, shutil, requests, hashlib, openai
from tqdm import tqdm
app = typer.Typer()
OUTPUT_DIR = '/output'
OUTPUT_PROMPT_PREFIX = ''
# generate image from post text
@jeffehobbs
jeffehobbs / ariseCthulhuBot.py
Last active September 9, 2023 13:00
ariseCthulhuBot - using ML to summon The Old Ones
# ariseCthulhuBot.py | jeffehobbs@gmail.com
# taking the Great Tweets and sending them through the
# Lovecraftian-chaotic wheat thresher of the "bark" TTS library
# in order to summon The Old Ones
#
# to-do:
#
# 1. [X] get a CLASSIC tweet
# 2. [X] make a music intro
# 3. [X] make a text tweet
@jeffehobbs
jeffehobbs / app.py
Last active July 8, 2023 16:27
AWS lambda wrapper for WeatherKit API + OpenAI Summarization
# generates a REST lambda for WeatherKit data & OpenAI summarization
import requests, json, os, boto3, configparser
from flask import Flask, Response, request, json, jsonify
import openai
app = Flask(__name__)
# set up API keys from external config secrets.txt configparser file
SCRIPT_PATH = os.path.dirname(os.path.abspath(__file__))
@jeffehobbs
jeffehobbs / configuration.yaml
Last active July 8, 2023 16:23
YAML configuration for WeatherKit data into Home Assistant
# Configuration for WeatherKit in Home Assistant: customize lat/long/token
rest:
- resource: https://weatherkit.apple.com/api/v1/weather/en/YOUR_LATITUDE/YOUR_LONGITUDE
headers:
Authorization: 'Bearer YOUR_TOKEN_HERE'
params:
countryCode: 'US'
dataSets: 'currentWeather,forecastDaily,forecastNextHour,forecastHourly,weatherAlerts'
timezone: 'GMT-5'
scan_interval: 60