Re: MAJ Tempo EDF
Publié : 14 nov. 2024, 22:27
@manuloup, il me semble avoir vu dans ce sujet des scripts LUA, DzVents et Python, mais pas bash.
Reprenez le contrôle de votre domotique
https://easydomoticz.com/forum/
Merci AlainAlain78 a écrit : 14 nov. 2024, 21:18 Les icônes personnalisées sont visibles dans le menu "configuration" "Plus d'options" et "icônes personnalisées"
la première icône porte le nombre 101 et ensuite 102, 103 etc.
Version: 2024.7
Build Hash: b317cfab1
Compile Date: 2024-07-13 16:59:31
dzVents Version: 3.1.8
Python Version: 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
Active User: admin
sur RPi 4b
Code : Tout sélectionner
--[[ gestion des Icons sur les Widgets en fonction de leurs status
Couleur pour tempo: seconde valeur = mes icones perso (le premier icone =101)
- GRIS ........... 110 115
- Rouge .......... 107 118
- Blanc .......... 101 117
- Bleu .......... 104 116
- ROUGE HP ....... 109 118
- Rouge HC ....... 108 118
- Blanc HP ....... 103 117
- Blanc HC ....... 102 117
- Bleu HP ....... 106 116
- Bleu HC ....... 105 116
Tempo: 300 Jours Bleus (Tout au long de l’année) - 43 jours blancs (Tout au long de l’année, hors dimanche) - 22 jours rouges (Du 1er novembre au 31 mars, hors week-end et jours fériés).
--]]
local scriptName = 'script_device_Change_Icone_Widget'
local scriptVersion = ' 1.0'
local NbrJBleu = 300 -- Tout au long de l’année
local NbrJBlanc = 43 -- Tout au long de l’année, hors dimanche
local NbrJRouge = 22 -- Du 1er novembre au 31 mars, hors week-end et jours fériés
return {
on = {
variables = { 'TempoJ', -- Couleur Tempo du jour.
'TempoJ1', -- Couleurl Tempo du lendemain.
'Tempo_HP-HC' },
},
logging = { -- La section de journalisation facultative vous permet de remplacer le paramètre de journalisation globale de dzVents.
-- comme défini dans Configuration> Paramètres> Autre> Système d'événements> Niveau de journalisation dzVents.
-- Cela peut être pratique lorsque vous voulez que ce script ait une journalisation de débogage étendue pendant que le reste de votre script s'exécute en mode silencieux.
level = domoticz.LOG_ERROR, -- domoticz.LOG_INFO, domoticz.LOG_MODULE_EXEC_INFO, domoticz.LOG_DEBUG or domoticz.LOG_ERROR, domoticz.LOG_FORCE,
marker = scriptName..' v'..scriptVersion
},
execute = function(domoticz, item)
local function logWrite(str,level)
domoticz.log(tostring(str),level or domoticz.LOG_DEBUG)
end
local function text_color(text,color) -- Fonction pour écriture du texte en fonction de la couleur TEMPO.
if color == "ROUGE" then text = '<FONT COLOR=#FF0000>' .. text .. '</FONT>' end
if color == "BLEU" then text = '<FONT COLOR=#0000FF>' .. text .. '</FONT>' end
if color == "GRIS" then text = '<FONT COLOR=#708090>' .. text .. '</FONT>' end
if color == "BLANC" then text = '<FONT COLOR=#000000>' .. text .. '</FONT>' end
return text
end
-- Variables et devices pour traitement des jours Tempo.
local TEMPOJ = domoticz.devices('Couleur Tempo Aujourd\'hui')
local TEMPOJ1 = domoticz.devices('Couleur Tempo Demain')
local TEMPOH = domoticz.variables('Tempo_HP-HC') -- Variable HP-HC TEMPO.
if item.isVariable then
-------------------------
-- Icones pour TEMPO J --
-------------------------
if item.name == "TempoJ" then
local icons = 115
if item.value == "ROUGE" then
if TEMPOH.value == "HP" then
icons = 118
else
icons = 118
end
NbrJ = NbrJRouge
mode = item.value..'-'..TEMPOH.value
NbJours = domoticz.variables('Tempo_J_Rouge').value
elseif item.value == "BLANC" then
if TEMPOH.value == "HP" then
icons = 117
else
icons = 117
end
NbrJ = NbrJBlanc
mode = item.value..'-'..TEMPOH.value
NbJours = domoticz.variables('Tempo_J_Blanc').value
elseif item.value == "BLEU" then
if TEMPOH.value == "HP" then
icons = 116
else
icons = 116
end
NbrJ = NbrJBleu
mode = item.value..'-'..TEMPOH.value
NbJours = domoticz.variables('Tempo_J_Bleu').value
else
icons = 115
mode = "GRIS"
end
if mode == "GRIS" then --- Couleur Indéfinie
texte = text_color('Pas de données communiquées. ',mode)
else
texte = text_color('Nbr de jours restants: '..NbJours..'/'..NbrJ..'<br>'..'Couleur TEMPO Aujourd\'hui: '..item.value,item.value)
end
TEMPOJ.updateText(texte)
TEMPOJ.setIcon(tonumber(icons))
----------------------
-- Icones pour TEMPO J + 1 --
----------------------
elseif item.name == "TempoJ1" then
local icons = 115
if item.value == "ROUGE" then
icons = 118
NbrJ = NbrJRouge
mode = item.value
NbJours = domoticz.variables('Tempo_J_Rouge').value
elseif item.value == "BLANC" then
icons = 117
NbrJ = NbrJBlanc
mode = item.value
NbJours = domoticz.variables('Tempo_J_Blanc').value
elseif item.value == "BLEU" then
icons = 116
NbrJ = NbrJBleu
mode = item.value
NbJours = domoticz.variables('Tempo_J_Bleu').value
else
icons = 115
mode = "GRIS"
end
if mode == "GRIS" then --- Couleur Indéfinie
texte = text_color('Pas de données communiquées. ',mode)
else
texte = text_color('Nbr de jours restants: '..NbJours..'/'..NbrJ..'<br>'..'Couleur TEMPO demain: '..item.value,item.value)
end
TEMPOJ1.updateText(texte)
TEMPOJ1.setIcon(tonumber(icons))
end
end
end
}merci Alain78 pour ta réponse;Alain78 a écrit : 15 nov. 2024, 23:21 Bonsoir,
@salinois,, si tu mets le niveau de log à DEBUG, as-tu des informations dans les logs?
Pour info j'ai mis une version 1.1 qui corrige un petit bug découvert hier lors du site RTE HS.
suppression des lignes en italiques à la fin du script:
-------
else
domoticz.openURL({
url = urlTempoJoursRTE,
method = 'GET',
headers = {["User-Agent"]= "Wget/1.20.3 (linux-gnu)",["Content-Type"]="application/json"},
callback = scriptName, -- see httpResponses above.
})
domoticz.log('Réponse KO : '..item.data, domoticz.LOG_DEBUG)
end
------
Est-ce que les variables se mettent à jours ?
As-tu intégrer la partie pour la mise à jours des widgets?
Pour info, voir le sujet mise à jours des widgets si c'est la le sujet :viewtopic.php?p=122486#p122486 avec les échanges qui suivent.
Cordialement
Alain
2 - j'ai mis debug pour les logs , mais rien du tout !!! : tu parles bien "debug dans le script " ? ligne28024-11-16 20:10:32.166 Status: EventSystem: reset all events...
2024-11-16 20:10:32.168 Status: dzVents: Write file: /home/patrick/domoticz/scripts/dzVents/generated_scripts/script_time_Tempo_Couleur_RTE.lua
3 - les variables sont comme je les ai créées au début, pas de mise à jour.2024-11-16 20:46:31.003 Status: dzVents: Write file: /home/patrick/domoticz/scripts/dzVents/generated_scripts/script_time_Tempo_Couleur_RTE.lua
2024-11-16 20:46:31.003 Status: EventSystem: reset all device statuses...
2024-11-16 20:46:31.077 Status: Python EventSystem: Initializing event module.
2024-11-16 20:46:31.077 Status: EventSystem: Started
2024-11-16 20:46:31.077 Status: EventSystem: Queue thread started...
2024-11-16 20:46:31.134 dzVents: Handling system event for: "start"
2024-11-16 20:46:31.134 dzVents: script_time_Tempo_Couleur_RTE v1.0: ------ Start internal script: script_time_Tempo_Couleur_RTE: Domoticz event: "start"
2024-11-16 20:46:31.135 dzVents: script_time_Tempo_Couleur_RTE v1.0: ------ Finished script_time_Tempo_Couleur_RTE
2024-11-16 20:47:14.945 Status: [web:443] Incoming connection from: 192.168.0.6
Bonjourmarcus_54 a écrit : 16 nov. 2024, 10:30 l'effacement du cache est sans effet...
après ce n'est pas bien grave, l'essentiel est que l'information soit juste.
Bonne journée