Add check-ha-integrations.py
This commit is contained in:
99
check-ha-integrations.py
Normal file
99
check-ha-integrations.py
Normal file
@@ -0,0 +1,99 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Check Home Assistant integrations and suggest kiosk additions"""
|
||||
import urllib.request
|
||||
import json
|
||||
import sys
|
||||
|
||||
TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI4NmM2ZGNlMTY2MWU0M2U5YjQ2MDI3MjMxYjE0NDFlMyIsImlhdCI6MTc2NzE3ODUyNiwiZXhwIjoyMDgyNTM4NTI2fQ.E8eShOsejwDYglixpgM_d_JYBlB1OVNhN7cHPnPiLOs"
|
||||
HA_URL = "http://homeassistant.local:8123"
|
||||
|
||||
def get_config():
|
||||
"""Get Home Assistant config"""
|
||||
url = f"{HA_URL}/api/config"
|
||||
req = urllib.request.Request(url)
|
||||
req.add_header("Authorization", f"Bearer {TOKEN}")
|
||||
try:
|
||||
with urllib.request.urlopen(req) as response:
|
||||
return json.loads(response.read().decode())
|
||||
except Exception as e:
|
||||
print(f"Error getting config: {e}", file=sys.stderr)
|
||||
return None
|
||||
|
||||
def get_services():
|
||||
"""Get available services"""
|
||||
url = f"{HA_URL}/api/services"
|
||||
req = urllib.request.Request(url)
|
||||
req.add_header("Authorization", f"Bearer {TOKEN}")
|
||||
try:
|
||||
with urllib.request.urlopen(req) as response:
|
||||
return json.loads(response.read().decode())
|
||||
except Exception as e:
|
||||
print(f"Error getting services: {e}", file=sys.stderr)
|
||||
return None
|
||||
|
||||
if __name__ == '__main__':
|
||||
print("Checking Home Assistant setup...")
|
||||
config = get_config()
|
||||
services = get_services()
|
||||
|
||||
if config:
|
||||
print(f"\nHome Assistant Version: {config.get('version', 'Unknown')}")
|
||||
print(f"Location: {config.get('location_name', 'Unknown')}")
|
||||
print(f"Timezone: {config.get('time_zone', 'Unknown')}")
|
||||
print(f"Unit System: {config.get('unit_system', {}).get('length', 'Unknown')}")
|
||||
|
||||
if services:
|
||||
print(f"\nAvailable Services: {len(services)}")
|
||||
# Look for interesting services
|
||||
interesting = ['rss', 'news', 'calendar', 'weather', 'media_player', 'notify']
|
||||
found = []
|
||||
for domain in services:
|
||||
if any(x in domain.lower() for x in interesting):
|
||||
found.append(domain)
|
||||
if found:
|
||||
print(f"Interesting services found: {', '.join(found)}")
|
||||
|
||||
print("\n" + "="*60)
|
||||
print("SUGGESTIONS FOR KIOSK DASHBOARD:")
|
||||
print("="*60)
|
||||
print("""
|
||||
1. WEATHER (Already have: weather.forecast_home)
|
||||
- Current conditions
|
||||
- Hourly forecast
|
||||
- Daily forecast
|
||||
- Sun times (sunrise/sunset)
|
||||
|
||||
2. NEWS & RSS FEEDS
|
||||
- Fox News RSS feed
|
||||
- Breaking news alerts
|
||||
- Local news
|
||||
- Custom RSS feeds
|
||||
|
||||
3. CALENDAR
|
||||
- Upcoming events
|
||||
- Today's schedule
|
||||
- Next appointment
|
||||
|
||||
4. SYSTEM STATUS
|
||||
- Home Assistant updates available
|
||||
- System health
|
||||
- Network status
|
||||
|
||||
5. CAMERA FEEDS (You have many!)
|
||||
- Rotating camera views
|
||||
- Motion detection status
|
||||
|
||||
6. TRANSPORTATION
|
||||
- Public transport departures (you have Roslagsbanan sensors!)
|
||||
- Next departure times
|
||||
|
||||
7. SMART HOME STATUS
|
||||
- Active lights
|
||||
- Recent events
|
||||
- Device status
|
||||
|
||||
8. TIME & DATE
|
||||
- Large clock
|
||||
- Date
|
||||
- Weather-based greetings
|
||||
""")
|
||||
Reference in New Issue
Block a user