From 4b401441d9930a017063cc259c72426f32f04664 Mon Sep 17 00:00:00 2001 From: denis Date: Thu, 12 Mar 2026 12:52:27 +0100 Subject: [PATCH] commit 4 --- README.md | 1 - etc/relay-supervisor.conf | 8 +-- relaycontroller/.env | 2 +- .../relay/migrations/0001_initial.py | 52 +++++++++++++++++++ relaycontroller/relay/migrations/__init__.py | 0 5 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 relaycontroller/relay/migrations/0001_initial.py create mode 100644 relaycontroller/relay/migrations/__init__.py diff --git a/README.md b/README.md index b530eb1..c07c8c8 100644 --- a/README.md +++ b/README.md @@ -17,4 +17,3 @@ RelayController est une application de contrôle de relais électriques et de ca - **Communication WebSocket** : mise à jour instantanée des états via Redis - **Historique des états** : enregistrement des événements et durées d'activation - **Contrôle à distance** : interface web pour piloter les appareils - diff --git a/etc/relay-supervisor.conf b/etc/relay-supervisor.conf index f4ccb1a..78c3aa2 100644 --- a/etc/relay-supervisor.conf +++ b/etc/relay-supervisor.conf @@ -4,8 +4,8 @@ programs = dashboard, workers [program:dashboard] process_name=%(program_name)s priority=900 - directory=/home/rpi4/workspace/django-relay-controller/relaycontroller - command=/home/rpi4/workspace/django-relay-controller/relaycontroller/runserver.sh + directory=/home/rpi4/django-relay-controller/relaycontroller + command=/home/rpi4/django-relay-controller/relaycontroller/runserver.sh user=rpi4 group=rpi4 stopasgroup=true @@ -17,8 +17,8 @@ programs = dashboard, workers [program:workers] process_name=%(program_name)s priority=999 - directory=/home/rpi4/workspace/django-relay-controller/relaycontroller - command=/home/rpi4/workspace/django-relay-controller/relaycontroller/workers.sh start + directory=/home/rpi4/django-relay-controller/relaycontroller + command=/home/rpi4/django-relay-controller/relaycontroller/workers.sh start user=rpi4 group=rpi4 stopasgroup=true diff --git a/relaycontroller/.env b/relaycontroller/.env index cae390d..8d64bb3 100644 --- a/relaycontroller/.env +++ b/relaycontroller/.env @@ -4,7 +4,7 @@ DEBUG=True IS_LOGGING=False APP_DATAS=relaycontroller RAMDISK_DEVICE=/mnt/ramdisk -MKCERT_VERSION=mkcert-v1.4.4 +MKCERT_VERSION=v1.4.4 DJANGO_APP=relaycontroller APP_TITLE=Controleur de relais diff --git a/relaycontroller/relay/migrations/0001_initial.py b/relaycontroller/relay/migrations/0001_initial.py new file mode 100644 index 0000000..1026811 --- /dev/null +++ b/relaycontroller/relay/migrations/0001_initial.py @@ -0,0 +1,52 @@ +# Generated by Django 6.0.3 on 2026-03-12 10:50 + +import datetime +import django.db.models.deletion +import django_resized.forms +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('django_celery_beat', '0019_alter_periodictasks_options'), + ] + + operations = [ + migrations.CreateModel( + name='DeviceType', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=64, null=True, verbose_name='Nom du capteur')), + ('code', models.SlugField(blank=True, help_text='Max 16 caractères', max_length=16, null=True, unique=True, verbose_name='Type de capteur')), + ], + options={ + 'verbose_name': 'Type de capteur', + 'verbose_name_plural': 'Types de capteurs', + 'ordering': ['name'], + }, + ), + migrations.CreateModel( + name='Device', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('label', models.CharField(max_length=100, null=True, verbose_name='Capteur')), + ('uuid', models.SlugField(blank=True, help_text='Uuid iot clef unique', max_length=32, null=True, unique=True, verbose_name='Uuid')), + ('index', models.SmallIntegerField(default=0, help_text="Numéro d'index", verbose_name='Index')), + ('pin_active', models.BooleanField(default=True, help_text="Broche active à l'initialisation", verbose_name='Broche')), + ('image', django_resized.forms.ResizedImageField(blank=True, crop=None, default='devices/vanne.png', force_format=None, help_text='Image du capteur', keep_meta=True, null=True, quality=-1, scale=None, size=[320, 240], upload_to='devices/', verbose_name='Image')), + ('lifetime', models.DurationField(blank=True, default=datetime.timedelta(seconds=4500), help_text="Durée de l'évènement. Jours hh:mm:ss format", null=True, verbose_name='Durée')), + ('heartbeat', models.IntegerField(default=1, help_text='Interrogation du capteur en secondes', verbose_name='Battement')), + ('active', models.BooleanField(default=True, verbose_name='Actif')), + ('task', models.ForeignKey(help_text='Tâche de démarrage périodique de ce capteur (optionnel)', null=True, on_delete=django.db.models.deletion.CASCADE, to='django_celery_beat.periodictask', verbose_name='Tâche périodique')), + ('device_type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='relay.devicetype', verbose_name='Type de capteur')), + ], + options={ + 'verbose_name': 'Capteur', + 'verbose_name_plural': 'Capteurs', + 'ordering': ['index'], + }, + ), + ] diff --git a/relaycontroller/relay/migrations/__init__.py b/relaycontroller/relay/migrations/__init__.py new file mode 100644 index 0000000..e69de29