I made a commandline interface for howdy.
a face login system for linux
on the laptop.
GNU nano 8.3 howdy_control.sh
#!/bin/bash
case "$SSH_ORIGINAL_COMMAND" in
"list_snapshot")
ls -t /var/log/howdy/snapshots/ | head -n 1
;;
"get_snapshot")
# Send the latest snapshot as base64
LATEST=$(ls -t /var/log/howdy/snapshots/ | head -n 1)
base64 /var/log/howdy/snapshots/"$LATEST"
;;
"disable_howdy")
sudo howdy disable 1
;;
"enable_howdy")
sudo howdy disable 0
;;
"running")
grep -i "disabled =" /usr/local/etc/howdy/config.ini | awk -F' = ' '{print ($2 == "false" ? "true" : "false")}'
;;
*)
echo "Access denied"
exit 1
;;
esac
set a ssh key that only runs on the script. command="/home/daft/bin/howdy_control.sh",restrict ssh-ed25519 AAAAC
and setup home assistant.
sh script
LATEST=$(ssh -i /config/ssh/howdy -o StrictHostKeyChecking=accept-new [email protected] 'list_snapshot') &&
BASE64_IMAGE=$(ssh -i /config/ssh/howdy -o StrictHostKeyChecking=accept-new [email protected] 'get_snapshot') &&
echo "$BASE64_IMAGE" | base64 -d > /media/howdy/$LATEST
echo "$BASE64_IMAGE" | base64 -d > /config/www/howdy/$LATEST
echo $LATEST
configuration
shell_command:
fetch_howdy_snapshot: /config/bin/howdycopy.sh
- switch:
name: laptop howdy
command_on: "ssh -i /config/ssh/howdy -o StrictHostKeyChecking=accept-new user@laptop 'enable_howdy'"
command_off: "ssh -i /config/ssh/howdy -o StrictHostKeyChecking=accept-new user@laptop 'disable_howdy'"
command_state: "ssh -i /config/ssh/howdy -o StrictHostKeyChecking=accept-new user@laptop 'running'"
- sensor:
name: Howdy Snapshot Change
command: ssh -i /config/ssh/howdy -o StrictHostKeyChecking=accept-new user@laptop 'list_snapshot'
scan_interval: 10
value_template: "{{ value | trim }}"
you can make a automation that triggers howdy logins and send the image to your phone for example.
alias: howdy login blue mage
description: ""
triggers:
- trigger: state
entity_id:
- sensor.howdy_snapshot_change
conditions: []
actions:
- action: shell_command.fetch_howdy_snapshot
metadata: {}
data: {}
response_variable: howdy
- action: notify.mobile_app_phone
data:
message: invalid howdy login for laptop
data:
image: https://smarthome/local/howdy/{{howdy.stdout}}
mode: single