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