Bonjour,
Je voudrais pouvoir démarrer (et arrêter) un plugin python par une action sur un device switch ou autre.
Le but est d'activer ce plugin (très bavard dans le log ...) uniquement lorsqu'il est utilisé. il s'agit du suivi de mon robot tondeuse dans le jardin. Est-ce possible ?
Merci d'avance.
jfs
Démarrage plugin avec un switch on/off
Re: Démarrage plugin avec un switch on/off
je pense que c'est faisable, tu crées un inter virtuel et dans ton script, première ligne, tu place une condition:
si inter = ON alors je fais le script, si = OFF alors je quitte de suite.
si inter = ON alors je fais le script, si = OFF alors je quitte de suite.
Dz version : 2024.7
Rpi 4 avec dongle téléinfo, GPIO pour le moment !
Rpi 4 avec dongle téléinfo, GPIO pour le moment !
Re: Démarrage plugin avec un switch on/off
Oui, bien sur, c'est l'idée.
Mais comment activer un plugin à partir d'un script, car normalement le plugin est automatiquement géré par Domoticz selon qu'il est activé ou on (réglages, matériel, option activé), Je voudrais simplifier cette procédure par un bouton pour les utilisateurs qui n'accédent pas aux réglages.
Si qqu'un sait ...
Mais comment activer un plugin à partir d'un script, car normalement le plugin est automatiquement géré par Domoticz selon qu'il est activé ou on (réglages, matériel, option activé), Je voudrais simplifier cette procédure par un bouton pour les utilisateurs qui n'accédent pas aux réglages.
Si qqu'un sait ...
Re: Démarrage plugin avec un switch on/off
Dans Action On/Off, en utilisant l'API json
Cf. https://www.domoticz.com/wiki/Domoticz_ ... e_hardware
Cf. https://www.domoticz.com/wiki/Domoticz_ ... e_hardware
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
Re: Démarrage plugin avec un switch on/off
hum! Je n'ai pas réussi à l'utiliser car il faut connaitre tous les paramètres du hardware à activer/désactiver pour les passer en json.htm. et ça fout le bordel dans les hardwares (heureusement qu'il est indiqué de le faire sur un système de test !!!)
La solution pourrait être de récupérer par un script tous les paramètres du hardware et de créer une commande json.htm à rallonge avec tous paramètres et modifier "enabled".
Bien compliqué pour seulement passer le paramètre "enabled" de true à false. !!!
y-a-t-il plus simple que json.htm pour effectuer cette opération ?
La solution pourrait être de récupérer par un script tous les paramètres du hardware et de créer une commande json.htm à rallonge avec tous paramètres et modifier "enabled".
Bien compliqué pour seulement passer le paramètre "enabled" de true à false. !!!
y-a-t-il plus simple que json.htm pour effectuer cette opération ?
Re: Démarrage plugin avec un switch on/off
Il faut juste connaitre le nom, le type et l'index. Ça ne change jamais et peut-être renseigné dans le script.
Sinon, oui, on peut récupérer par une autre requête JSON, à condition de fournir le nom ou l'index.
À partir du nom, ça donnerait qq chose comme ça en dzVents :
Tout pareil, à tester dans un environnement de test au préalable 
Et non, je ne pense pas qu'il y a un autre moyen de désactiver un plugin/hardware.
Sinon, oui, on peut récupérer par une autre requête JSON, à condition de fournir le nom ou l'index.
À partir du nom, ça donnerait qq chose comme ça en dzVents :
Code : Tout sélectionner
local httpTriggerOn = 'HardwareSwitchON'
local httpTriggerOff = 'HardwareSwitchOFF'
return {
on = {
devices = {
'TestVirtual'
},
httpResponses = {
httpTriggerOn,
httpTriggerOff,
}
},
execute = function(domoticz, item)
local name = 'TestDummy'
if item.isDevice then
local trigger = item.active and httpTriggerOn or httpTriggerOff
local getHardwareURL = domoticz.settings['Domoticz url'] .. '/json.htm?type=hardware'
domoticz.openURL(
{
url = getHardwareURL,
method = "GET",
callback = trigger,
})
elseif item.isHTTPResponse then
if item.ok and item.isJSON then
local hardware
for _,hw in ipairs(item.json.result) do
if hw.Name == name then
hardware = hw
break
end
end
if not hardware then
domoticz.log('Harware ' .. name .. ' not found', domoticz.LOG_ERROR)
return
end
local enabled = (item.callback == httpTriggerOn) and 'true' or 'false'
if enabled == hardware.enabled then
-- le hardware est déjà dans l'état voulu
return
end
local htype = tostring(hardware.Type)
local idx = hardware.idx
local toggleURL = string.format('%s/json.htm?type=command¶m=updatehardware&htype=%s&name=%s&idx=%s&enabled=%s',
domoticz.settings['Domoticz url'],
htype,
name,
idx,
enabled)
domoticz.log(toggleURL, domoticz.LOG_DEBUG)
domoticz.openURL(toggleURL)
else
domoticz.log('There was a problem handling the request', domoticz.LOG_ERROR)
domoticz.log(item, domoticz.LOG_ERROR)
end
end
end
}
Et non, je ne pense pas qu'il y a un autre moyen de désactiver un plugin/hardware.
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT