Variateur lumière pour piloter script .sh (NanoLeaf)

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
Répondre
marcus_54
Messages : 150
Enregistré le : 28 févr. 2018, 12:15

Variateur lumière pour piloter script .sh (NanoLeaf)

Message par marcus_54 »

Bonjour,
J'ai acheté un ensemble de NanoLeaf.
Je me suis fait une série de commande dont un sélecteur de luminosité de 10% 25 50 75 100% en utilisant des scripts "nano_lum25.sh"

Code : Tout sélectionner

#!/bin/bash
curl --location --request PUT 'http://192.168.0.17:16021/api/v1/BxEautevcodebidonU8kJVATc6CuIkY/state' \
--header 'Content-Type: application/json' \
--data-raw '{"brightness" : {"value":25}}'
Pensez-vous qu'il serait possible de réaliser un "Dimmer" pour permettre une plus grande finesse de réglage ?

Marc
Domoticz 2020.2
Domoticz Maitre RPI 3B+ : RFlink DIY 433; Téléinfo ;Commande volets; Commande PAC ; 4 DS18B20 ;Capteur compteur eau, NanoLeaf.
Domoticz Esclave RPI 1B+ : Capteur 4 DS18B20; 3 Capteurs I2C

boum
Messages : 102
Enregistré le : 18 janv. 2019, 11:34
Localisation : France

Re: Variateur lumière pour piloter script .sh (NanoLeaf)

Message par boum »

C'est relativement simple à faire en dzVents. Il suffit de créer un dummy Switch, puis de le modifier pour le changer en Dimmer.

Ensuite, le script permet de changer le niveau, il faut rajouter la commande pour éteindre l'appareil :

Code : Tout sélectionner

return {
	on = {
		devices = {
			'DimmerLeaf'
		}
	},
	execute = function(domoticz, item)
		domoticz.log('Device ' .. item.name .. ' was changed', domoticz.LOG_INFO)
		if item.active then
		    local level = item.level
		    local command = [[curl --location --request PUT 'http://192.168.0.17:16021/api/v1/BxEautevcodebidonU8kJVATc6CuIkY/state' --header 'Content-Type: application/json' --data-raw '{"brightness" : {"value":%d}}' &]]
		    command = string.format(command, level)
		    os.execute(command)
  	        else
	            -- Commande pour couper la lampe
                end
        
	end
}
Pas testé (à part la syntaxe).

Il est possible d'utiliser domoticz.openURL() plutôt qu'un os.execute(curl) (cf. https://www.domoticz.com/wiki/DzVents:_ ... P_requests ). Mais ça ne devrait pas changer grand chose.
Domoticz v4.10717 sur Pi³ / Z-Wave / RFXCom

marcus_54
Messages : 150
Enregistré le : 28 févr. 2018, 12:15

Re: Variateur lumière pour piloter script .sh (NanoLeaf)

Message par marcus_54 »

Merci super,
je teste aujourd'hui et je vous tient au courant
Domoticz 2020.2
Domoticz Maitre RPI 3B+ : RFlink DIY 433; Téléinfo ;Commande volets; Commande PAC ; 4 DS18B20 ;Capteur compteur eau, NanoLeaf.
Domoticz Esclave RPI 1B+ : Capteur 4 DS18B20; 3 Capteurs I2C

marcus_54
Messages : 150
Enregistré le : 28 févr. 2018, 12:15

Re: Variateur lumière pour piloter script .sh (NanoLeaf)

Message par marcus_54 »

Bonsoir,

La commande de variation fonctionne super bien :P

J'ai été un peu vite la commande off ne fonctionne pas, le curseur reprend sa position après quelques secondes...

Code : Tout sélectionner

return {
	on = {
		devices = {
			'NanoLeaf Lum'
		}
	},
	execute = function(domoticz, item)
		domoticz.log('Device ' .. item.name .. ' was changed', domoticz.LOG_INFO)
		if item.active then
		    local level = item.level
		    local command = [[curl --location --request PUT 'http://192.168.0.17:16021/api/v1/BxEcodebidonIkY/state' --header 'Content-Type: application/json' --data-raw '{"brightness" : {"value":%d}}' &]]
		    command = string.format(command, level)
		    os.execute(command)
  	      else
	      local command = [[curl --location --request PUT 'http://192.168.0.17:16021/api/v1/BxEcodebidonIkY/state' --header 'Content-Type: application/json' --data-raw '{"on": {"value": false}}' &]]
        end
        
	end
}
Domoticz 2020.2
Domoticz Maitre RPI 3B+ : RFlink DIY 433; Téléinfo ;Commande volets; Commande PAC ; 4 DS18B20 ;Capteur compteur eau, NanoLeaf.
Domoticz Esclave RPI 1B+ : Capteur 4 DS18B20; 3 Capteurs I2C

boum
Messages : 102
Enregistré le : 18 janv. 2019, 11:34
Localisation : France

Re: Variateur lumière pour piloter script .sh (NanoLeaf)

Message par boum »

La commande est-elle exécutée ? Je ne vois pas le os.execute dans ce cas.
Pour factoriser et faciliter de futurs changements, on peut réécrire comme ça :

Code : Tout sélectionner

return {
    on = {
        devices = {
            'NanoLeaf Lum'
        }
    },
    execute = function(domoticz, item)
        domoticz.log('Device ' .. item.name .. ' was changed', domoticz.LOG_INFO)
        local command = [[curl --location --request PUT 'http://192.168.0.17:16021/api/v1/BxEcodebidonIkY/state' --header 'Content-Type: application/json' --data-raw '{"%s" : { "value": %s }}' &]]
        if item.active then
            local level = item.level
            command = string.format(command, 'brightness', tostring(level))
        else
            command = string.format(command, 'on', 'false')
        end
        os.execute(command)

    end
}
Domoticz v4.10717 sur Pi³ / Z-Wave / RFXCom

marcus_54
Messages : 150
Enregistré le : 28 févr. 2018, 12:15

Re: Variateur lumière pour piloter script .sh (NanoLeaf)

Message par marcus_54 »

Ça fonctionne,

bravo et merci tu es un chef :)
Domoticz 2020.2
Domoticz Maitre RPI 3B+ : RFlink DIY 433; Téléinfo ;Commande volets; Commande PAC ; 4 DS18B20 ;Capteur compteur eau, NanoLeaf.
Domoticz Esclave RPI 1B+ : Capteur 4 DS18B20; 3 Capteurs I2C

Répondre