No description
| .gitignore | ||
| config.py | ||
| logo.png | ||
| main.py | ||
| README.md | ||
| requirements.txt | ||
| run.sh | ||
| scraper.py | ||
Prezimmo - Vitrine Immobilière
Application de présentation pour vitrine d'agence immobilière. Affiche les derniers biens à la vente avec photos et descriptions de manière animée et design.
Caractéristiques
- Affichage plein écran optimisé pour écrans 16/9 (1920x1080)
- Photos animées avec effets de transition (fade, zoom)
- Description avec texte défilant automatique
- Design moderne avec dégradés et transparences
- Cache local des données et images (durée configurable)
- Navigation au clavier intuitive
- Compatible Raspberry Pi 2W
Installation
Prérequis
- Python 3.9+
- pip
Sur macOS / Linux
# Cloner le projet
git clone <url-du-repo>
cd Prezimmo
# Créer l'environnement virtuel et installer les dépendances
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Sur Raspberry Pi
# Installer les dépendances système pour Pygame
sudo apt-get update
sudo apt-get install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev
sudo apt-get install python3-dev python3-pip
# Cloner et installer
git clone <url-du-repo>
cd Prezimmo
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Utilisation
Lancer l'application
./run.sh
Ou manuellement:
source venv/bin/activate
python3 main.py
Rafraîchir les données
Pour forcer le téléchargement des nouvelles annonces:
./refresh_cache.sh
Contrôles clavier
| Touche | Action |
|---|---|
→ ou Espace |
Bien suivant |
← |
Bien précédent |
R |
Rafraîchir les données depuis le site |
Échap |
Quitter l'application |
Configuration
Le fichier config.py permet de personnaliser l'application:
# Durée d'affichage de chaque bien (secondes)
PROPERTY_DISPLAY_TIME = 15
# Durée entre chaque photo (secondes)
PHOTO_TRANSITION_TIME = 5
# Vitesse de défilement du texte
TEXT_SCROLL_SPEED = 2
# Durée du cache (heures)
CACHE_DURATION_HOURS = 24
# Résolution (si plein écran non disponible)
SCREEN_WIDTH = 1920
SCREEN_HEIGHT = 1080
Couleurs
Les couleurs sont définies dans le dictionnaire COLORS:
COLORS = {
"background": (15, 23, 42), # Fond sombre
"primary": (59, 130, 246), # Bleu principal
"secondary": (99, 102, 241), # Violet secondaire
"text": (248, 250, 252), # Texte blanc
"text_secondary": (148, 163, 184),# Texte gris
"accent": (251, 191, 36), # Jaune/or accent
}
Architecture
Prezimmo/
├── config.py # Configuration centrale
├── main.py # Application Pygame principale
│ ├── AnimatedValue # Gestion des animations fluides
│ ├── PropertyDisplay # Affichage des biens
│ └── main() # Point d'entrée
├── scraper.py # Scraper du site arthimmo19.fr
│ ├── Scraper # Classe de scraping
│ ├── get_properties()# Récupération avec cache
│ └── Cache functions # Sauvegarde/chargement du cache
├── requirements.txt # Dépendances Python
├── run.sh # Script de lancement
├── refresh_cache.sh # Script de rafraîchissement
└── cache/ # Dossier de cache (non versionné)
├── properties.json # Données des biens
└── images/ # Photos téléchargées
Fonctionnement
Scraper
- Récupère les liens des biens depuis la page d'accueil
- Pour chaque bien, extrait:
- Titre
- Prix
- Description
- Surface, chambres, terrain
- URLs des photos
- Télécharge les images localement
- Met en cache les données
Affichage
- Charge les données depuis le cache (ou scrape si expiré)
- Affiche chaque bien pendant
PROPERTY_DISPLAY_TIMEsecondes - Les photos défilent avec des transitions toutes les
PHOTO_TRANSITION_TIMEsecondes - La description défile en continu
- Une barre de progression indique le temps restant
Animations
Les animations utilisent une fonction d'easing cubique pour des transitions fluides:
eased = 1 - (1 - progress) ** 3
Démarrage automatique sur Raspberry Pi
Pour lancer l'application au démarrage du Raspberry Pi:
Méthode avec systemd
- Créer le service:
sudo nano /etc/systemd/system/prezimmo.service
- Contenu du fichier:
[Unit]
Description=Prezimmo Vitrine Immobilière
After=network.target
[Service]
Type=simple
User=pi
WorkingDirectory=/home/pi/Prezimmo
ExecStart=/home/pi/Prezimmo/run.sh
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
- Activer le service:
sudo systemctl enable prezimmo
sudo systemctl start prezimmo
Méthode avec autostart (interface graphique)
mkdir -p ~/.config/autostart
nano ~/.config/autostart/prezimmo.desktop
Contenu:
[Desktop Entry]
Type=Application
Name=Prezimmo
Exec=/home/pi/Prezimmo/run.sh
Terminal=false
Maintenance
Vider le cache
rm -rf cache/images/*
rm cache/properties.json
Mettre à jour les dépendances
source venv/bin/activate
pip install --upgrade -r requirements.txt
Personnalisation pour une autre agence
Pour adapter l'application à un autre site immobilier:
-
Modifier
config.py:BASE_URL: URL du sitePROPERTIES_URL: URL de la liste des biens
-
Modifier
scraper.py:- Adapter
get_property_links()selon la structure HTML - Adapter
extract_image_urls()pour les sélecteurs d'images - Adapter
extract_property_data()pour les métadonnées
- Adapter
Dépannage
L'application ne se lance pas en plein écran
Vérifier que SDL2 est correctement installé:
python3 -c "import pygame; print(pygame.display.Info())"
Pas d'images affichées
Vérifier le contenu du cache:
ls -la cache/images/
cat cache/properties.json | python3 -m json.tool
Erreur de connexion lors du scraping
Le site peut bloquer les requêtes. Vérifier la connexion:
curl -I https://www.arthimmo19.fr
Licence
Projet interne pour Arthimmo19.