Problème de print dans les log

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
ker49
Messages : 85
Inscription : 08 janv. 2016, 18:13

Problème de print dans les log

Message par ker49 »

Bonjour à vous tous,
Je ne sais pas trop où poster mon sujet ...
Voici mon problème.
J'ai créé (avec plusieurs aides sur ce forum) un script plutôt complet qui me permet de "domotiser" mon poêle MCZ.
J'en suis très content. Le confoirt est là ... et j'économise des granulés.
Cette année, j'ai apporté une modification : j'ai fait un thermostat déroulant qui me permet de régler la température (éco, nuit, confort).
Le problème c'est que désormais je n'arrive plus à faire un print de la température de consigne !
Si quelqu'un à une idée je suis preneur car après différents essais je ne trouve aucune soultion
dans les log il est affiché : la température de consigne de thermostat est de Thermostatderoulant°C
J'aimerais pouvoir récupérer la valeur correspondante au choix (éco, nuit, confort) mais impossible
Est-ce possible ?
Voici une partie de mon script

Code : Tout sélectionner

------ Variables à éditer ------
--local consigne = 23.0  --Température de consigne
local consigne = 'Thermostatderoulant' --Nom du thermostat déroulant virtuel
local sonde = 'SondeCuisine' --Nom de la sonde de température
local thermostat = 'ThermostatCuisine' --Nom de l'interrupteur virtuel du thermostat
local radiateur = 'MCZchaud' --Nom du radiateur à allumer/éteindre ici pour le TEST un interr
local radiateur2 = 'MCZfroid' --Nom du radiateur à allumer/éteindre ici pour le TEST un interr
local allumage = 'allumageMCZ' 
-- Fin des variables à éditer --

commandArray = {}
...

Code : Tout sélectionner

        end
end

if (otherdevices[radiateur2]=='On' and (uservariables["ModePoele"]) == "0") then
    print ("Poële éteint et désormais froid")
        print('la température de consigne du thermostat est de '..consigne..'°C')
end
-- intérêt à voir car pas forcement utile

return commandArray

Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Problème de print dans les log

Message par Keros »

Je résume encore ton script :

Code : Tout sélectionner

local consigne = 'Thermostatderoulant' --Nom du thermostat déroulant virtuel
print('la température de consigne du thermostat est de '..consigne..'°C')
C'est normal que le print t'affiche :
la température de consigne de thermostat est de Thermostatderoulant°C
La variable consigne contient le "nom du thermostat déroulant virtuel". C'est même écrit en commentaire dans le script. C'est normal que le script t'affiche Thermostatderoulant puisque c'est ça qui est enregistré dans la variable.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: Problème de print dans les log

Message par denis_brasseur »

ker49 a écrit : 10 nov. 2021, 16:08
Cette année, j'ai apporté une modification : j'ai fait un thermostat déroulant qui me permet de régler la température (éco, nuit, confort).
Je crois comprendre que tu a créé un selector switch avec 3 valeurs éco, nuit, confort

Pour travailler sur un selector switch nommé yourotherdevicename

Code : Tout sélectionner

otherdevices['yourotherdevicename']
te retournera la valeur du switch : éco, nuit ou confort

Code : Tout sélectionner

otherdevices_svalues['yourotherthermometer'] = string of svalues
te retournera le niveau du switch : 10, 20 ou 30.

A moins qu'il ne s'agisse d'un thermostat Setpoint, auquel cas

Code : Tout sélectionner

tonumber(string.match(otherdevices_svalues['yourotherthermometer'], "(%d+%.*%d*)"))
te retournera la valeur de cette consigne, 20,5, 21 ...
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Répondre