Skip to content

About

Modules externes de Cornelius, mis à jour sans toucher au miroir.

Topics

Resources

Contributing

Stars

24 stars

Watchers

2 watching

Forks

Repository files navigation

Cornelius · modules : des modules qui se branchent sur le miroir

De nouvelles informations pour le miroir, mises à jour sans toucher à Cornelius.

Pour Cornelius 0.2 ou plus récent Contrat des modules v1 Node.js 24 En français Licence MIT

Les modules · Installer · Créer un module · Compatibilité · Documentation · Licence


Cornelius est le miroir intelligent de la famille. Il répond à la voix et affiche des cartes : l’heure, la météo, le prochain bus… Ces informations viennent de modules.

Cornelius livre ses modules de base avec lui. Ce dépôt accueille tous les autres : chacun est un dossier, Cornelius les charge au démarrage, et un git pull suffit à les mettre à jour, sans toucher au miroir.

📦 Les modules

Module Ce qu’il fait Jeton Fiche
📅 Agenda Les prochains rendez-vous d’un agenda Google, iCloud ou Outlook, par son lien iCal privé, répétitions comprises ; « et samedi ? » se demande à la voix lien privé agenda
🚌 Arrêts et itinéraires N’importe quel arrêt de Suisse : les lignes qui le desservent, le prochain départ de chacune, l’itinéraire avec correspondances et, à la voix, l’heure de départ pour arriver à une heure donnée ; la ville est facultative aucun arrets
💸 Dépenses OpenAI Ce que coûte Cornelius chez OpenAI : mois, jour, 7 derniers jours et usages les plus chers, avec alerte de budget ; mois et jour du foyer clé Admin OpenAI depenses_openai
📜 Éphéméride Ce qui s’est passé un jour comme aujourd’hui, l’anniversaire le plus rond d’abord, d’après Wikipédia aucun ephemeride
🌦️ Météo libre Les prévisions du jour et des jours suivants pour un lieu (latitude, longitude), d’après Open-Meteo : températures, temps, pluie, vent aucun meteo_libre
🔔 Perturbations Travaux, déviations et lignes interrompues du réseau suisse (SIRI-SX), filtrés sur les lignes et les arrêts du foyer jeton gratuit perturbations
🗑️ Poubelles Quel bac sortir et quand, d’après le calendrier de la commune écrit en toutes lettres, encombrants compris ; rappel la veille au soir aucun poubelles
⛽ Prix des carburants Les prix d’une station-service, carburant principal d’abord ou celui demandé (« et le SP98 ? ») ; station trouvée par commune ou code postal aucun carburants
📰 Titres de l’actualité Les premiers titres d’un journal, d’après son flux RSS ou Atom (franceinfo par défaut) aucun actu
🏖️ Vacances et jours fériés En vacances ou pas, prochaines vacances scolaires de la zone, prochain jour férié ; affichage permanent possible aucun vacances
🚲 Vélos en libre-service Vélos (mécaniques, électriques) et places libres d’une station : Vélib’, V’Lille, Vélo’v, STAR, TBM… (norme GBFS) aucun velos
▶️ YouTube La dernière vidéo d’une chaîne (par défaut, Les Frères Poulain), avec ou sans les Shorts aucun youtube

Livrés avec Cornelius, et donc absents d’ici : Heure, Météo, Transports, Ragator. Voir Les modules dans Cornelius.

🚀 Installer

Clonez ce dépôt à côté du dossier de Cornelius :

git clone https://github.com/lfpoulain/cornelius-modules.git
📁 GitHub/
├── 📁 cornelius/            le miroir, avec ses modules livrés (addons/)
└── 📁 cornelius-modules/    ce dépôt : un dossier par module

Redémarrez Cornelius. Les modules apparaissent dans Administration → Modules, avec leur nom et leur icône, à côté des modules livrés. Ils se règlent comme eux : une ou plusieurs sources, un propriétaire, un jeton si le fournisseur en demande un.

Tip

Pour ranger ce dépôt ailleurs, indiquez son chemin dans le .env de Cornelius : CORNELIUS_MODULES_DIR=/chemin/vers/cornelius-modules.

🔄 Mettre à jour

git -C cornelius-modules pull

Redémarrez ensuite Cornelius : les modules ne sont lus qu’au démarrage. Les sources déjà réglées sont gardées, et reprises si la forme des réglages a changé.

Important

Les modules 1.1.0 demandent Cornelius 0.2.0 : mettez Cornelius à jour avant, ou en même temps que ce dépôt.

Un module qui demande une version de Cornelius plus récente que celle installée n’est pas chargé. L’administration l’indique en bas de Modules, sous « Module non chargé », avec la version attendue : il suffit alors de mettre Cornelius à jour.

🧩 Créer un module

cp -r _template parking

Le gabarit _template est un module complet relié à un fournisseur fictif, avec ses schémas, une réponse d’exemple et ses tests. Remplacez le fournisseur, adaptez les schémas et les tests, puis vérifiez :

Commande Effet
npm test Lance les tests de tous les modules avec le vrai cœur de Cornelius (createTestModule : base en mémoire, horloge réglable, réseau simulé)
npm run check Vérifie les types contre le contrat de Cornelius
npm run format Met le code en forme, avec les règles de Cornelius

Rien à installer ici : ces commandes utilisent les outils du Cornelius voisin, où npm ci doit avoir été lancé. S’il est rangé ailleurs, indiquez son dossier dans CORNELIUS_DIR.

Le pas à pas complet est dans Créer un module, et la façon de proposer un module dans Contribuer.

🔗 Compatibilité

Un module dépend de Cornelius par trois alias, toujours résolus vers le Cornelius qui le charge :

Alias Contenu
#cornelius/addons Le contrat : types, AddonCollectError
#cornelius/validation La compilation des schémas JSON
#cornelius/testing Pour les tests : createTestModule (le module dans le vrai cœur, horloge et réseau simulés), et validateAddonDefinition, openDatabase, AddonRepository, AddonRuntime
  • apiVersion: 1 est le contrat. Il ne change qu’en cas de rupture : un module d’une autre version est refusé.
  • minCoreVersion, facultatif, est la version minimale de Cornelius pour un module qui s’appuie sur un ajout récent du cœur. Les modules de ce dépôt demandent '0.2.0' : présentation dans l’administration, listes du formulaire, précisions à la voix, fuseau du foyer, affichage recalculé à l’heure dite.
  • Un module externe ne remplace jamais un module livré : s’il en reprend l’identifiant, il est refusé.

Les règles complètes vivent dans Cornelius, à côté du code qu’elles décrivent : référence du contrat des modules.

🔒 Sécurité

  • 🧑‍💻 Un module s’exécute dans le serveur de Cornelius, avec les mêmes droits que lui : n’installez que des modules dont vous avez lu le code ou connaissez l’auteur.
  • 🌐 Le cœur leur impose son client HTTP (adresses http(s) sans identifiants, trois redirections au plus et jamais vers une adresse non chiffrée, réponses bornées) et valide tout ce qu’ils renvoient.
  • 🔑 Leurs jetons restent dans le .env ou l’administration de Cornelius, jamais dans ce dépôt.

📚 Documentation

Écrire Créer un module · Fiche à remplir · Contribuer
Le contrat Référence · Types
Utiliser Les modules dans Cornelius : sources, jetons, affichage permanent
Suivre Historique des changements

📜 Licence

Les modules de ce dépôt sont sous licence MIT : utilisation, partage et modification libres, y compris pour un usage commercial, en gardant la notice du fichier LICENSE. Chaque auteur garde ses droits sur ce qu’il a écrit. Cornelius lui-même reste sous la PolyForm Noncommercial License 1.0.0. Les données des fournisseurs gardent leur propre licence, indiquée dans la fiche de chaque module.

About

Modules externes de Cornelius, mis à jour sans toucher au miroir.

Topics

Resources

Contributing

Stars

24 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages