Scripting facile

Forum dédié à tous les sujets sans liens avec DomoticZ.
Discuter de tout et de rien, c'est ici.
Chrominator
Messages : 1042
Inscription : 19 déc. 2015, 07:29
Localisation : France

Scripting facile

Message par Chrominator »

J'ai eu une idée d'une veilleuse dans ma chambre lorsque je me lève la nuit.
Un capteur de présence, et deux dispositifs (des lampes Milight), les lampes de chevets en mode nocturne et un ruban dans la salle de bains attenante.

J'avais besoin d'un script dzVents, et la flemme de l'écrire.
C'est basique mais quand la flemme est là j'ai envie de sous-traiter.

J'ai utilisé une IA (Gemini Flash) avec ce prompt pour décrire ce que j'attendais :
j'utilise domoticz et dzvents pour mes applications domotiques.
J'ai besoin d'un script dzvents qui fasse en sorte d'allumer pour une durée de 2 mn un device nommé "Milight - 0x3F98/rgbw/4" et un autre device nommé "Milight - 0x8B6C/cct/3" en mode éclairage de nuit lorsque l'interrupteur nommé "Présence chambre" est déclenché, seulement pendant les heures nocturnes.
Ca m'a généré le script suivant :

Code : Tout sélectionner

return {
    on = {
        devices = {
            'Présence chambre'
        }
    },
    logging = {
        level = domoticz.LOG_INFO,
        marker = 'Veilleuse Chambre'
    },
    execute = function(domoticz, device)
        -- Vérifie si l'interrupteur est activé ET s'il fait nuit
        if (device.active and domoticz.time.isNightTime) then
            domoticz.log('Mouvement détecté de nuit. Activation du mode nuit pour 2 minutes.', domoticz.LOG_INFO)
            
            local light1 = domoticz.devices('Milight - 0x3F98/rgbw/4')
            local light2 = domoticz.devices('Milight - 0x8B6C/cct/3')
            
            if (light1) then
                light1.setNightMode()
                light1.switchOff().afterMin(2)
            else
                domoticz.log('Device Milight 1 non trouvé !', domoticz.LOG_ERROR)
            end
            
            if (light2) then
                light2.setNightMode()
                light2.switchOff().afterMin(2)
            else
                domoticz.log('Device Milight 2 non trouvé !', domoticz.LOG_ERROR)
            end
        end
    end
}
L'IA a "compris" tout de suite qu'il s'agissait de programmer une veilleuse et que le déclencheur était un détecteur de présence.
Le script a fonctionné du premier coup.
J'ai même eu les instructions pour l'insérer dans DZ.

Bon le problème était simple, mais quand même, ça risque de geler mes neurones ! :lol:

J'espère donner envie à ceux qui ne se sont pas encore lancés d'utiliser une AI et dzVents.
L'output de Gemini :
Pièces jointes
Capture d'écran 2026-03-06 175746.png
Capture d'écran 2026-03-06 175746.png (93.02 Kio) Consulté 666 fois
Un bon frein vaut mieux que deux sparadraps.

Ubuntu 24.04.3 LTS - Domoticz 2025.1 (build 16782)
Pentium G3220T 2.6GHz - 4Go DDR3
RFXtrx433 USB Ver Pro1/1043
Z-Stick GEN5 Version: 1.6-1136-g07ea22bb
Rtl433 RTL-SDR receiver
RFLink Gateway
Zigbee SLZB-06
Répondre