bootshorn stuff
This commit is contained in:
parent
6d38d04a1e
commit
841f523f73
7 changed files with 49 additions and 5 deletions
|
@ -112,6 +112,11 @@ def process_recording(filename):
|
||||||
|
|
||||||
sample_num += samples_per_block - overlapping_samples
|
sample_num += samples_per_block - overlapping_samples
|
||||||
|
|
||||||
|
# move to PROCESSED_RECORDINGS_DIR
|
||||||
|
|
||||||
|
os.makedirs(PROCESSED_RECORDINGS_DIR, exist_ok=True)
|
||||||
|
shutil.move(os.path.join(RECORDINGS_DIR, filename), os.path.join(PROCESSED_RECORDINGS_DIR, filename))
|
||||||
|
|
||||||
|
|
||||||
# write a spectrogram using the sound from start to end of the event
|
# write a spectrogram using the sound from start to end of the event
|
||||||
def write_event(current_event, soundfile, samplerate):
|
def write_event(current_event, soundfile, samplerate):
|
||||||
|
|
|
@ -7,7 +7,6 @@ do
|
||||||
# get date in ISO 8601 format with nanoseconds
|
# get date in ISO 8601 format with nanoseconds
|
||||||
PROGRAMM=$(test $(uname) = "Darwin" && echo "gdate" || echo "date")
|
PROGRAMM=$(test $(uname) = "Darwin" && echo "gdate" || echo "date")
|
||||||
DATE=$($PROGRAMM "+%Y-%m-%d_%H-%M-%S.%6N%z")
|
DATE=$($PROGRAMM "+%Y-%m-%d_%H-%M-%S.%6N%z")
|
||||||
FILE="recordings/$DATE.flac"
|
|
||||||
|
|
||||||
# record audio using ffmpeg
|
# record audio using ffmpeg
|
||||||
ffmpeg \
|
ffmpeg \
|
||||||
|
@ -20,7 +19,7 @@ do
|
||||||
-t "3600" \
|
-t "3600" \
|
||||||
-c:a flac \
|
-c:a flac \
|
||||||
-compression_level 12 \
|
-compression_level 12 \
|
||||||
"$FILE.part"
|
"recordings/current/$DATE.flac"
|
||||||
|
|
||||||
mv "$FILE.part" "$FILE"
|
mv "recordings/current/$DATE.flac" "recordings/$DATE.flac"
|
||||||
done
|
done
|
||||||
|
|
|
@ -8,7 +8,7 @@ urllib3.disable_warnings()
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
||||||
HUE_IP = "10.0.0.134" # replace with your bridge IP
|
HUE_IP = "${hue_ip}" # replace with your bridge IP
|
||||||
HUE_APP_KEY = "${hue_app_key}" # local only
|
HUE_APP_KEY = "${hue_app_key}" # local only
|
||||||
HUE_DEVICE_ID = "31f58786-3242-4e88-b9ce-23f44ba27bbe"
|
HUE_DEVICE_ID = "31f58786-3242-4e88-b9ce-23f44ba27bbe"
|
||||||
TEMPERATURE_LOG_DIR = "/opt/bootshorn/temperatures"
|
TEMPERATURE_LOG_DIR = "/opt/bootshorn/temperatures"
|
||||||
|
|
|
@ -7,11 +7,15 @@ directories = {
|
||||||
'owner': 'ckn',
|
'owner': 'ckn',
|
||||||
'group': 'ckn',
|
'group': 'ckn',
|
||||||
},
|
},
|
||||||
|
'/opt/bootshorn/temperatures': {
|
||||||
|
'owner': 'ckn',
|
||||||
|
'group': 'ckn',
|
||||||
|
},
|
||||||
'/opt/bootshorn/recordings': {
|
'/opt/bootshorn/recordings': {
|
||||||
'owner': 'ckn',
|
'owner': 'ckn',
|
||||||
'group': 'ckn',
|
'group': 'ckn',
|
||||||
},
|
},
|
||||||
'/opt/bootshorn/temperatures': {
|
'/opt/bootshorn/recordings/current': {
|
||||||
'owner': 'ckn',
|
'owner': 'ckn',
|
||||||
'group': 'ckn',
|
'group': 'ckn',
|
||||||
},
|
},
|
||||||
|
@ -34,6 +38,7 @@ files = {
|
||||||
'/opt/bootshorn/temperature': {
|
'/opt/bootshorn/temperature': {
|
||||||
'content_type': 'mako',
|
'content_type': 'mako',
|
||||||
'context': {
|
'context': {
|
||||||
|
'hue_ip': repo.get_node('home.hue').hostname,
|
||||||
'hue_app_key': repo.vault.decrypt('encrypt$gAAAAABoc2WxZCLbxl-Z4IrSC97CdOeFgBplr9Fp5ujpd0WCCCPNBUY_WquHN86z8hKLq5Y04dwq8TdJW0PMSOSgTFbGgdp_P1q0jOBLEKaW9IIT1YM88h-JYwLf9QGDV_5oEfvnBCtO'),
|
'hue_app_key': repo.vault.decrypt('encrypt$gAAAAABoc2WxZCLbxl-Z4IrSC97CdOeFgBplr9Fp5ujpd0WCCCPNBUY_WquHN86z8hKLq5Y04dwq8TdJW0PMSOSgTFbGgdp_P1q0jOBLEKaW9IIT1YM88h-JYwLf9QGDV_5oEfvnBCtO'),
|
||||||
},
|
},
|
||||||
'owner': 'ckn',
|
'owner': 'ckn',
|
||||||
|
|
30
hass_get_temp.py
Normal file
30
hass_get_temp.py
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
#! /usr/bin/env python3
|
||||||
|
|
||||||
|
import requests
|
||||||
|
from datetime import datetime, timedelta, timezone
|
||||||
|
|
||||||
|
BASE = "https://homeassistant.ckn.li"
|
||||||
|
TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI1YjY0ZWE5N2FiMzM0NTQ0OGMyNjhmZTIxYzAxZTE1MSIsImlhdCI6MTc1NjAzOTAxNCwiZXhwIjoyMDcxMzk5MDE0fQ.X-sQli-NTpCjeXpn19zf-maPRDldkSeTuhKZua1k8uM"
|
||||||
|
ENTITY = "sensor.hue_outdoor_motion_sensor_2_temperature"
|
||||||
|
|
||||||
|
HEADERS = {
|
||||||
|
"Authorization": f"Bearer {TOKEN}",
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
}
|
||||||
|
|
||||||
|
begin = datetime(2025, 7, 1, 0, 0, 0, tzinfo=timezone.utc)
|
||||||
|
current = begin
|
||||||
|
now = datetime.now(timezone.utc)
|
||||||
|
|
||||||
|
while current < now:
|
||||||
|
current += timedelta(hours=1)
|
||||||
|
resp = requests.get(
|
||||||
|
f"{BASE}/api/history/period/{current.isoformat()}",
|
||||||
|
params={
|
||||||
|
"end_time": current.isoformat(),
|
||||||
|
"filter_entity_id": ENTITY
|
||||||
|
},
|
||||||
|
headers=HEADERS,
|
||||||
|
timeout=15,
|
||||||
|
)
|
||||||
|
print(current, resp.json())
|
|
@ -15,3 +15,5 @@
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# rsync -avh --progress -e 'ssh -o "StrictHostKeyChecking no"' 10.0.0.150:/opt/bootshorn/recordings /tank/bootshorn
|
||||||
|
|
|
@ -33,6 +33,9 @@
|
||||||
# ssh-ed25519
|
# ssh-ed25519
|
||||||
# AAAAC3NzaC1lZDI1NTE5AAAAIJT9Spe+BYue7iiutl3rSf6PlU6dthHizyK+ZWnLodrA
|
# AAAAC3NzaC1lZDI1NTE5AAAAIJT9Spe+BYue7iiutl3rSf6PlU6dthHizyK+ZWnLodrA
|
||||||
# root@home.server
|
# root@home.server
|
||||||
|
# - >-
|
||||||
|
# ssh-ed25519
|
||||||
|
# AAAAC3NzaC1lZDI1NTE5AAAAILMVroYmswD4tLk6iH+2tvQiyaMe42yfONDsPDIdFv6I ckn
|
||||||
# sftp: true
|
# sftp: true
|
||||||
# compatibility_mode: false
|
# compatibility_mode: false
|
||||||
# allow_agent_forwarding: false
|
# allow_agent_forwarding: false
|
||||||
|
|
Loading…
Reference in a new issue