Skip to content

Instantly share code, notes, and snippets.

View RobCranfill's full-sized avatar

Rob Cranfill RobCranfill

View GitHub Profile
@RobCranfill
RobCranfill / extract.py
Created November 18, 2022 04:08
Extract headers from online email and create a CSV file to import all found email addresses as contacts into GMail.
import imaplib
import email
import csv
import sys
"""
Extract headers from online email and create a CSV file
to import all found email addresses as contacts into GMail.
(c)2022 robcranfill@gmail.com
based on https://qr.ae/pvQWFi
#!/bin/bash
# compare the boot files on the RPi's SSD with the files on the SD card
sudo mount -r /dev/mmcblk0p1 /mnt/sdboot 2>/dev/null
# SSD BOOT FILES
FILE1="/boot/bcm2710-rpi-3-b.dtb"
# SD CARD BOOT FILES
FILE2="/mnt/sdboot/bcm2710-rpi-3-b.dtb"
#!/bin/bash
# check the weather station's battery by screen-scraping the WeeWX main page
wget --quiet http://pi3b/weewx --output-document=weewx.html
RESULT="`grep Transmitter -A 1 weewx.html | awk -F '[<>]' '{print $5}' | tr -d '\n'`"
# echo "!$RESULT!"
if [ "$RESULT" = "OK" ]; then
echo "Battery is OK."
@RobCranfill
RobCranfill / showTime.html
Created December 27, 2020 01:34
Simple HTML page showing use of setInterval and mucking with the DOM.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="30">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<link href='https://fonts.googleapis.com/css?family=Stylish' rel='stylesheet'>
@RobCranfill
RobCranfill / fix-boot-ssd.sh
Created December 16, 2020 19:30
Update RPi boot SSD after kernel update
#!/bin/bash
# (This isn't really a shell script - you can't run 'sudo' in a script, I don't think.)
#
# Boot/kernel problems 19/Oct/2020
# (On pi3, which boots from SD card, but then mounts the SSD to /boot,
# resulting in the wrong partition gettting updated.)
#
# SOLUTION:
# https://www.raspberrypi.org/forums/viewtopic.php?t=262963
@RobCranfill
RobCranfill / ftpupload.py
Created July 11, 2020 16:01
My weewx mods for sftp and for reducing the frequency of uploads.
#
# Copyright (c) 2009-2020 Tom Keffer <tkeffer@gmail.com>
#
# See the file LICENSE.txt for your full rights.
#
# ** Hacked on by cranfill for sftp, July 2020 - based on weewx v. 4.1.1
#
"""For uploading files to a remove server via FTP or sftp"""
from __future__ import absolute_import
#!/bin/bash
# livestream the livingroom cam?
raspivid -o - -t 0 -fps 30 -b 6000000 | \
avconv -re -ar 44100 -ac 2 -acodec pcm_s16le -f s16le -ac 2 -i /dev/zero -f h264 -i - \
-vcodec copy -acodec aac -ab 128k -g 50 -strict experimental \
-f flv rtmp://a.rtmp.youtube.com/live2/YOUTUBE-THINGY-HERE
# cranfill - udev rules for mapping X10 CM11 device to /dev/cm11, and Vantage data logger to /dev/vantageVue
# Lives in /etc/udev/rules.d
#
# serial to /dev/cm11a
ACTION=="add",SUBSYSTEM=="tty",ATTRS{idVendor}=="067b",ATTRS{product}=="USB-Serial Controller D",SYMLINK+="cm11a",MODE="0777"
# UART to /dev/vantageVue
# ACTION=="add",ATTRS{idVendor}=="10c4",ATTRS{product}=="CP2102 USB to UART Bridge Controller",MODE="0666",SYMLINK+="/sys/dev/vantageVue"
ACTION=="add",ATTRS{product}=="CP2102 USB to UART Bridge Controller",MODE="0666",SYMLINK+="vantageVue"
@RobCranfill
RobCranfill / configuration.yaml
Created July 4, 2019 22:30
Initial YAML for basic card. WTF?
title: Chez Cran
views:
- path: default_view
title: Home
badges:
- person.rob
- sun.sun
cards:
- type: entities
title: Lights
@RobCranfill
RobCranfill / exp.sh
Created February 1, 2019 20:15
Extract a boatload of ZIP files (big ones downloaded from my "good riddance to Flickr") in parallel. Uses GNU "parallel".
#!/bin/bash
# extract all zip files in parallel
find . -name "*zip" | parallel --jobs 8 --progress unzip {} -d {/.}.out