Howdy. Linux camera login. Invalid login notification

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


1 Like