Code : Tout sélectionner
2024-06-06 18:25:07.372 Status: dzVents: Clim config 4: Config4 modifié par Pompe PAC à trueCode : Tout sélectionner
2024-06-06 18:25:07.372 Status: dzVents: Clim config 4: Config4 modifié par Pompe PAC à trueCode : Tout sélectionner
024-06-06 23:03:36.203 Pompe PAC: Light/Switch (Pompe PAC)
2024-06-06 23:03:36.198 Status: User: knasson (IP: 192.168.1.1) initiated a switch command (1238/Pompe PAC/On)
2024-06-06 23:03:36.274 Status: dzVents: Debug: Processing device-adapter for Pompe PAC: Switch device adapter
2024-06-06 23:03:36.274 Status: dzVents: Debug: - Device: Pompe PAC
2024-06-06 23:03:36.286 Status: dzVents: Info: Handling events for: "Pompe PAC", value: "On"
2024-06-06 23:03:36.286 Status: dzVents: Info: ------ Start internal script: Gestion PAC: Device: "Pompe PAC (Pompe PAC)", Index: 1238
2024-06-06 23:03:36.287 Status: dzVents: Clim config 4: Config4 modifié par Pompe PAC à true
2024-06-06 23:03:36.287 Status: dzVents: Info: ------ Finished Gestion PACCode : Tout sélectionner
-- Gestion du paramètre Config4 de la clim
local config4Device = "Clim config 4"
local pompeDevice = "Pompe PAC"
local horlogeDevice = "Horloge PAC"
local modeDevice = "PAC modes"
return {
on = {devices = {config4Device, pompeDevice, horlogeDevice, modeDevice}},
execute = function(domoticz, device)
-- Fonction de changement d'un switch depuis config4
function changeSwitch(setDevice, newState)
if setDevice.active ~= newState then -- Doit on changer le switch ?
print(config4Device..": Mets "..setDevice.name.." à "..tostring(newState))
if newState then
setDevice.switchOn()
else
setDevice.switchOff()
end
end
end
-- Fonction de changement d'un sélecteur depuis config4
function changeSelector(setDevice, newLevel)
if setDevice.levelVal ~= newLevel then -- Doit on changer la valeur ?
print(config4Device..": Mets "..setDevice.name.." à "..tostring(newLevel))
setDevice.setLevel(newLevel)
end
end
-- Fonction de changement de config4 depuis un switch
function changeConfigSwitch(changedDevice, oldState)
if changedDevice.active ~= oldState then -- Doit on changer le switch
print(config4Device..": Config4 modifié par "..changedDevice.name.." à "..tostring(changedDevice.active))
end
return changedDevice.active
end
-- Fonction de changement de config4 depuis un sélecteur
function changeConfigSelector(changedDevice, oldLevel)
if changedDevice.levelVal ~= oldLevel then -- Doit on changer la valeur ?
print(config4Device..": Config4 modifié par "..changedDevice.name.." à "..tostring(changedDevice.levelVal))
end
return changedDevice.levelVal
end
-- Fonction de chargement de config4
function setConfig4(pompe, horloge, mode)
local setValue = (mode / 10) + 23 -- Mode 10 = 24, 20 = 25, 30 = 26
if (pompe == true) then
setValue = setValue + 32 -- Pompe + 32
end
if (horloge ==true) then
setValue = setValue + 132 -- Horloge + 132
end
if domoticz.devices(config4Device).levelVal ~= setValue then -- Doit on changer config4?
print(config4Device..": Défini config4="..tostring(setValue)) -- Oui
domoticz.devices(config4Device).updateCustomSensor(setValue)
end
end
-- Décoder config4. Si le contenu n'est pas comme attendu, ne rien faire
local config4 = domoticz.devices(config4Device).sensorValue -- Lit la valeur de config4
local tmp = config4
local horloge = false
if tmp >= 132 then -- Horloge = 132
horloge = true
tmp = tmp - 132
end
local pompe = false
if tmp >= 32 then -- Pompe = 32
pompe = true
tmp = tmp - 32
end
if tmp < 24 or tmp > 26 then -- Mode = 24 (Froid), 25 (Chaud) ou 26 (Auto)
print(config4Device..": ?? Ne sait pas décoder config4="..tostring(config4))
else
mode = (tmp - 23) * 10 -- Mode 24 = froid (10), 25 = chaud (20), 26 = auto (30)
-- Ici, config4 semble correct, voir ce qui a changé et agir en conséquence
if device.name == domoticz.devices(config4Device).name then
-- C'est config4 qui a été modifié
print(config4Device..": Reçu "..tostring(domoticz.devices(config4Device).sensorValue)..", pompe="..tostring(pompe)..", horloge="..tostring(horloge)..", mode="..tostring(mode))
changeSwitch(domoticz.devices(pompeDevice), pompe) -- Aligner les valeurs
changeSwitch(domoticz.devices(horlogeDevice), horloge)
changeSelector(domoticz.devices(modeDevice), mode)
elseif device.name == domoticz.devices(pompeDevice).name then
-- C'est la pompe qui a changé
setConfig4(changeConfigSwitch(domoticz.devices(pompeDevice), pompe), horloge, mode) -- Aligner les valeurs
elseif device.name == domoticz.devices(horlogeDevice).name then
-- C'est l'horloge qui a changé
setConfig4(pompe, changeConfigSwitch(domoticz.devices(horlogeDevice), horloge), mode)
elseif device.name == domoticz.devices(modeDevice).name then
-- C'est le mode qui a changé
setConfig4(pompe, horloge, changeConfigSelector(domoticz.devices(modeDevice), mode))
else
-- On a été activé par un device inconnu. Bug de Domoticz?
print(config4Device..": ?? Je ne comprends pas le changement de "..device.name..", idx="..device.id)
end
end
end
}Code : Tout sélectionner
[size=85]2024-06-07 08:52:33.342 Pompe PAC: Light/Switch (Pompe PAC)
2024-06-07 08:52:33.479 PAC Calient: onDeviceModified 010/Clim config 4, /home/alsavo/config/4, sValue=56.0
2024-06-07 08:52:33.337 Status: User: knasson (IP: 192.168.1.1) initiated a switch command (1238/Pompe PAC/On)
2024-06-07 08:52:33.423 Status: dzVents: Debug: Processing device-adapter for Pompe PAC: Switch device adapter
2024-06-07 08:52:33.424 Status: dzVents: Debug: - Device: Pompe PAC
2024-06-07 08:52:33.435 Status: dzVents: Info: Handling events for: "Pompe PAC", value: "On"
2024-06-07 08:52:33.435 Status: dzVents: Info: ------ Start internal script: Gestion_PAC V2: Device: "Pompe PAC (Pompe PAC)", Index: 1238
2024-06-07 08:52:33.436 Status: dzVents: Clim config 4: Config4 modifié par Pompe PAC à true
2024-06-07 08:52:33.436 Status: dzVents: Info: ------ Finished Gestion_PAC V2
2024-06-07 08:52:33.947 Status: dzVents: Info: ------ Start internal script: Gestion_PAC V2: Device: "Clim config 4 (PAC Calient)", Index: 1237
2024-06-07 08:52:33.948 Status: dzVents: Debug: Processing device-adapter for Pompe PAC: Switch device adapter
2024-06-07 08:52:33.948 Status: dzVents: Debug: Processing device-adapter for Horloge PAC: Switch device adapter
2024-06-07 08:52:33.949 Status: dzVents: Debug: Processing device-adapter for PAC modes: Switch device adapter
2024-06-07 08:52:33.949 Status: dzVents: Info: ------ Finished Gestion_PAC V2[/size]Code : Tout sélectionner
"Clim config 4": {"topic": "/home/alsavo/config/4",
"type": "243", "subtype": "31", "switchtype": "0",
"options": {"Custom":"1;Bitmap"},
"visible": "false",
"mapping":{"item":"value"},
"set": {"command":"plugins/MqttMapper/alsavoSetNum.sh 4 #"}
}
Code : Tout sélectionner
-- Gestion du paramètre Config4 de la clim
local config4Device = "Clim config 4"
local pompeDevice = "Pompe PAC"
local horlogeDevice = "Horloge PAC"
local modeDevice = "PAC modes"
return {
on = {devices = {config4Device, pompeDevice, horlogeDevice, modeDevice}},
execute = function(domoticz, device)
-- Fonction de changement d'un switch depuis config4
function changeSwitch(setDevice, newState)
if setDevice.active ~= newState then -- Doit on changer le switch ?
print(config4Device..": Mets "..setDevice.name.." à "..tostring(newState))
if newState then
setDevice.switchOn()
else
setDevice.switchOff()
end
end
end
-- Fonction de changement d'un sélecteur depuis config4
function changeSelector(setDevice, newLevel)
if setDevice.levelVal ~= newLevel then -- Doit on changer la valeur ?
print(config4Device..": Mets "..setDevice.name.." à "..tostring(newLevel))
setDevice.setLevel(newLevel)
end
end
-- Fonction de changement de config4 depuis un switch
function changeConfigSwitch(changedDevice, oldState)
if changedDevice.active ~= oldState then -- Doit on changer le switch
print(config4Device..": Config4 modifié par "..changedDevice.name.." à "..tostring(changedDevice.active))
end
return changedDevice.active
end
-- Fonction de changement de config4 depuis un sélecteur
function changeConfigSelector(changedDevice, oldLevel)
if changedDevice.levelVal ~= oldLevel then -- Doit on changer la valeur ?
print(config4Device..": Config4 modifié par "..changedDevice.name.." à "..tostring(changedDevice.levelVal))
end
return changedDevice.levelVal
end
-- Fonction de chargement de config4
function setConfig4(pompe, horloge, mode)
local setValue = (mode / 10) + 23 -- Mode 10 = 24, 20 = 25, 30 = 26
if (pompe == true) then
setValue = setValue + 32 -- Pompe + 32
end
if (horloge == true) then
setValue = setValue + 132 -- Horloge + 132
end
if domoticz.devices(config4Device).sensorValue ~= setValue then -- Doit on changer config4?
print(config4Device..": Défini config4="..tostring(setValue)) -- Oui
domoticz.devices(config4Device).updateCustomSensor(setValue)
end
end
-- Décoder config4. Si le contenu n'est pas comme attendu, ne rien faire
local config4 = domoticz.devices(config4Device).sensorValue -- Lit la valeur de config4
local tmp = config4
local horloge = false
if tmp >= 132 then -- Horloge = 132
horloge = true
tmp = tmp - 132
end
local pompe = false
if tmp >= 32 then -- Pompe = 32
pompe = true
tmp = tmp - 32
end
if tmp < 24 or tmp > 26 then -- Mode = 24 (Froid), 25 (Chaud) ou 26 (Auto)
print(config4Device..": ?? Ne sait pas décoder config4="..tostring(config4))
else
mode = (tmp - 23) * 10 -- Mode 24 = froid (10), 25 = chaud (20), 26 = auto (30)
-- Ici, config4 semble correct, voir ce qui a changé et agir en conséquence
if device.name == domoticz.devices(config4Device).name then
-- C'est config4 qui a été modifié
print(config4Device..": Reçu "..tostring(domoticz.devices(config4Device).sensorValue)..", pompe="..tostring(pompe)..", horloge="..tostring(horloge)..", mode="..tostring(mode))
changeSwitch(domoticz.devices(pompeDevice), pompe) -- Aligner les valeurs
changeSwitch(domoticz.devices(horlogeDevice), horloge)
changeSelector(domoticz.devices(modeDevice), mode)
elseif device.name == domoticz.devices(pompeDevice).name then
-- C'est la pompe qui a changé
setConfig4(changeConfigSwitch(domoticz.devices(pompeDevice), pompe), horloge, mode) -- Aligner les valeurs
elseif device.name == domoticz.devices(horlogeDevice).name then
-- C'est l'horloge qui a changé
setConfig4(pompe, changeConfigSwitch(domoticz.devices(horlogeDevice), horloge), mode)
elseif device.name == domoticz.devices(modeDevice).name then
-- C'est le mode qui a changé
setConfig4(pompe, horloge, changeConfigSelector(domoticz.devices(modeDevice), mode))
else
-- On a été activé par un device inconnu. Bug de Domoticz?
print(config4Device..": ?? Je ne comprends pas le changement de "..device.name..", idx="..device.id)
end
end
end
}
Code : Tout sélectionner
#!/bin/bash
value=$(echo "scale=0; $2 / 1" | bc)
echo "Received $1 $value"
[chemin où est installé AlsavoCtrl]/AlsavoCtrl -s 824500039214 -l 8608 -a 192.168.1.66 -p 1194 $1 $value | python3 mqpublish.py
Code : Tout sélectionner
2024-06-07 22:03:51.227 Pompe PAC: Light/Switch (Pompe PAC)
2024-06-07 22:03:51.200 Status: User: knasson (IP: 192.168.1.1) initiated a switch command (1238/Pompe PAC/On)
2024-06-07 22:03:51.749 Status: dzVents: Debug: Processing device-adapter for Pompe PAC: Switch device adapter
2024-06-07 22:03:51.750 Status: dzVents: Debug: - Device: Pompe PAC
2024-06-07 22:03:51.761 Status: dzVents: Info: Handling events for: "Pompe PAC", value: "On"
2024-06-07 22:03:51.761 Status: dzVents: Info: ------ Start internal script: Gestion_PAC V3: Device: "Pompe PAC (Pompe PAC)", Index: 1238
2024-06-07 22:03:51.762 Status: dzVents: Info: ------ Finished Gestion_PAC V3Code : Tout sélectionner
2024-06-07 22:05:38.529 Status: User: knasson (IP: 192.168.1.1) initiated a switch command (1238/Pompe PAC/Off)
2024-06-07 22:05:38.644 Status: dzVents: Debug: Processing device-adapter for Pompe PAC: Switch device adapter
2024-06-07 22:05:38.644 Status: dzVents: Debug: - Device: Pompe PAC
2024-06-07 22:05:38.656 Status: dzVents: Info: Handling events for: "Pompe PAC", value: "Off"
2024-06-07 22:05:38.657 Status: dzVents: Info: ------ Start internal script: Gestion_PAC V3: Device: "Pompe PAC (Pompe PAC)", Index: 1238
2024-06-07 22:05:38.657 Status: dzVents: Info: ------ Finished Gestion_PAC V3Code : Tout sélectionner
commandArray = {}
local x=x
if (otherdevices['Pompe PAC'] == 'On'and otherdevices['Horloge PAC'] == 'Off') then
if (otherdevices['PAC modes'] == 'Cooling') then
x=56
elseif (otherdevices['PAC modes'] == 'Chauffage') then
x=57
elseif (otherdevices['PAC modes'] == 'Auto') then
x=58
end
print ("variable x"..x)
commandArray ['UpdateDevice']='1237|0|'..x
else
-- x=25
--commandArray ['UpdateDevice']='1237|0|'..x
if (otherdevices['Horloge PAC'] =="On") then
print ("Coucou le furet")
if (otherdevices['PAC modes'] == 'Cooling') then
x=188
elseif (otherdevices['PAC modes'] == 'Chauffage') then
x=189
elseif (otherdevices['PAC modes'] == 'Auto') then
x=190
end
end
commandArray ['UpdateDevice']='1237|0|'..x
end
if (otherdevices['Pompe PAC'] =="Off") then
x=25
commandArray ['UpdateDevice']='1237|0|'..x
end
return commandArray