Added proper russian locale

This commit is contained in:
2026-01-29 20:37:57 +03:00
parent 4466b9e102
commit 60200ff764
7 changed files with 199 additions and 5 deletions

46
.gitignore vendored Normal file
View File

@@ -0,0 +1,46 @@
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
# Virtual environments
venv/
ENV/
env/
.venv/
# IDE
.idea/
.vscode/
*.swp
*.swo
*~
# OS
.DS_Store
Thumbs.db
# Testing
.pytest_cache/
.coverage
htmlcov/
# Claude Code
.claude/

73
README.md Normal file
View File

@@ -0,0 +1,73 @@
# HAOS Integrations
A collection of custom Home Assistant integrations.
## Integrations
### Immich Album Watcher
<img src="immich_album_watcher/icon.png" alt="Immich" width="64" height="64">
Monitors [Immich](https://immich.app/) photo/video library albums for changes and exposes them as Home Assistant sensors with event-firing capabilities.
#### Features
- **Album Monitoring** - Watch selected Immich albums for asset additions and removals
- **Sensor Integration** - Creates Home Assistant sensors showing current asset count per album
- **Event Firing** - Fires Home Assistant events when albums change:
- `immich_album_watcher_album_changed` - General album changes
- `immich_album_watcher_assets_added` - When new assets are added
- `immich_album_watcher_assets_removed` - When assets are removed
- **Configurable Polling** - Adjustable scan interval (10-3600 seconds)
- **Rich Metadata** - Provides detailed album info including:
- Album name and ID
- Asset count
- Owner information
- Shared status
- Thumbnail URL
- Last updated timestamp
#### Installation
1. Copy the `immich_album_watcher` folder to your Home Assistant `custom_components` directory
2. Restart Home Assistant
3. Go to **Settings****Devices & Services****Add Integration**
4. Search for "Immich Album Watcher"
5. Enter your Immich server URL and API key
6. Select the albums you want to monitor
#### Configuration
| Option | Description | Default |
|--------|-------------|---------|
| Server URL | Your Immich server URL (e.g., `https://immich.example.com`) | Required |
| API Key | Your Immich API key | Required |
| Albums | Albums to monitor | Required |
| Scan Interval | How often to check for changes (seconds) | 60 |
#### Events
Use these events in your automations:
```yaml
automation:
- alias: "New photos added to album"
trigger:
- platform: event
event_type: immich_album_watcher_assets_added
action:
- service: notify.mobile_app
data:
title: "New Photos"
message: "{{ trigger.event.data.added_count }} new photos in {{ trigger.event.data.album_name }}"
```
#### Requirements
- Home Assistant 2024.1.0 or newer
- Immich server with API access
- Valid Immich API key
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@@ -51,9 +51,10 @@ class ImmichAlbumSensor(CoordinatorEntity[ImmichAlbumWatcherCoordinator], Sensor
"""Sensor representing an Immich album.""" """Sensor representing an Immich album."""
_attr_state_class = SensorStateClass.MEASUREMENT _attr_state_class = SensorStateClass.MEASUREMENT
_attr_native_unit_of_measurement = "assets"
_attr_icon = "mdi:image-album" _attr_icon = "mdi:image-album"
_attr_translation_key = "album_asset_count"
def __init__( def __init__(
self, self,
coordinator: ImmichAlbumWatcherCoordinator, coordinator: ImmichAlbumWatcherCoordinator,
@@ -77,11 +78,11 @@ class ImmichAlbumSensor(CoordinatorEntity[ImmichAlbumWatcherCoordinator], Sensor
return self.coordinator.data.get(self._album_id) return self.coordinator.data.get(self._album_id)
@property @property
def name(self) -> str: def translation_placeholders(self) -> dict[str, str]:
"""Return the name of the sensor.""" """Return translation placeholders."""
if self._album_data: if self._album_data:
return self._album_data.name return {"album_name": self._album_data.name}
return f"Album {self._album_id[:8]}" return {"album_name": f"Album {self._album_id[:8]}"}
@property @property
def native_value(self) -> int | None: def native_value(self) -> int | None:

View File

@@ -1,4 +1,11 @@
{ {
"entity": {
"sensor": {
"album_asset_count": {
"name": "{album_name}: Asset Count"
}
}
},
"config": { "config": {
"step": { "step": {
"user": { "user": {

View File

@@ -1,4 +1,11 @@
{ {
"entity": {
"sensor": {
"album_asset_count": {
"name": "{album_name}: Asset Count"
}
}
},
"config": { "config": {
"step": { "step": {
"user": { "user": {

View File

@@ -0,0 +1,60 @@
{
"config": {
"step": {
"user": {
"title": "Подключение к Immich",
"description": "Введите данные вашего сервера Immich. API-ключ можно получить в Immich → Настройки пользователя → API-ключи.",
"data": {
"immich_url": "URL Immich",
"api_key": "API-ключ"
},
"data_description": {
"immich_url": "URL вашего сервера Immich (например, http://192.168.1.100:2283)",
"api_key": "Ваш API-ключ Immich"
}
},
"albums": {
"title": "Выбор альбомов",
"description": "Выберите альбомы для отслеживания изменений.",
"data": {
"albums": "Альбомы для отслеживания"
}
}
},
"error": {
"cannot_connect": "Не удалось подключиться к серверу Immich",
"invalid_auth": "Неверный API-ключ",
"no_albums": "На сервере не найдено альбомов",
"no_albums_selected": "Пожалуйста, выберите хотя бы один альбом",
"unknown": "Произошла непредвиденная ошибка"
},
"abort": {
"already_configured": "Этот сервер Immich уже настроен"
}
},
"options": {
"step": {
"init": {
"title": "Настройки Immich Album Watcher",
"description": "Настройте отслеживаемые альбомы и частоту проверки изменений.",
"data": {
"albums": "Альбомы для отслеживания",
"scan_interval": "Интервал сканирования (секунды)"
},
"data_description": {
"scan_interval": "Как часто проверять изменения в альбомах (10-3600 секунд)"
}
}
},
"error": {
"cannot_connect": "Не удалось подключиться к серверу Immich"
}
},
"entity": {
"sensor": {
"album_asset_count": {
"name": "{album_name}: Число файлов"
}
}
}
}