Teleinfo EDF par USB : récupérer la couleur du jour et du lendemain

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
Keros
Messages : 649
Enregistré le : 23 juil. 2019, 20:57

Re: Teleinfo EDF par USB : récupérer la couleur du jour et du lendemain

Message par Keros »

Je daigne prendre du temps pour te répondre :)

Excuse moi je n'avais pas vu sur ton widget que la couleur avait été mise à jour à 6h00. Chez moi, ce n'est pas la cas :?


Pour info, voici ce qu'il c'est passé quand j'ai essayé d'aider quelqu'un : https://easydomoticz.com/forum/viewtopi ... 9a41b286dc (tu verras que suis quelqu'un de bonne volonté)


Pour débuter , il faut apprendre les bases : https://easydomoticz.com/point-scripts-lua est un point de départ. Il y a d'autres articles sur le Lua.

Commence à faire des exercices simple :
1 - tu créer 2 devices virtuels et tu commandes l'un avec l'autre > Ca marche : tu viens de faire ton premier script
2- tu remplaces le device que tu commandes par ta lumière > Tu arrives à allumer ta lumière depuis le premier device virtuel : Bingo tu es arrivé à faire un script qui fait une action réelle
3- tu utilises le deuxième device virtuel pour faire des conditions : si inter 1 "On"et inter 2 "On" alors Lumière "On" sinon Lumière "Off".

Dans tout les cas, aides toi des print() pour afficher des infos dans les log pour déboguer.

Quand tu arriveras à faire ça, tu auras compris que la programmation se compose de blocs que tu pourras assembler pour faire des script plus compliqué.

didi
Messages : 32
Enregistré le : 27 janv. 2018, 22:15

Re: Teleinfo EDF par USB : récupérer la couleur du jour et du lendemain

Message par didi »

la programmation, c'est pas un problème...les If then else... ou autre...il y a longtemps que j'ai compris!
Je faisais de l'assembleur sur Oric1 pour gérer un réseau de train HO avec Interface Electronique (gestion cantons, régulateur de trafic , régulateur de vitesse par tronçons.., commande aiguillage, ..) en 1985. J'ai fais de l'assembleur sur ordinateur de process industriel sur des cartes en logique câblée (matériel américain) dans les années 85-90...J'ai même fais de la programmation Fortran IV sur carte perforée et dérouleur de bande...puis du Fortran 77 sur PDP (Digital) ...etc..etc...

Donc programmer, je sais ce que c'est...

Maintenant, je demande de l'aide pour quelques lignes de code...j'ai pas demandé la lune.
Juste quelques lignes de code, histoire d'accélérer les choses pour qu'ensuite je puisse poursuivre pour améliorer ce code et le mettre à mon goût suivant mes besoins...

Tout ce qu'il me faut, c'est un exemple de LUA avec les lignes qui vont bien pour tester la couleur du jour et allumer mon device Lumière1 pour une couleur particulière.... et ensuite je rajouterai des lignes pour tester d'autre choses suivant d'autre critères..

merci de votre compréhension.

Keros
Messages : 649
Enregistré le : 23 juil. 2019, 20:57

Re: Teleinfo EDF par USB : récupérer la couleur du jour et du lendemain

Message par Keros »

Tu vas dans Configurations / Plus d'options / Evénements et tu créé un nouveau script LUA (pour le choix entre device, time, etc... Je t'invite à aller sur https://easydomoticz.com/point-scripts-lua)

La trame par défaut du script LUA Device est :

Code : Tout sélectionner

--
-- Domoticz passes information to scripts through a number of global tables
--
-- device changed contains state and svalues for the device that changed.
--   devicechanged['yourdevicename'] = state 
--   devicechanged['svalues'] = svalues string 
--
-- otherdevices, otherdevices_lastupdate and otherdevices_svalues are arrays for all devices: 
--   otherdevices['yourotherdevicename'] = "On"
--   otherdevices_lastupdate['yourotherdevicename'] = "2015-12-27 14:26:40"
--   otherdevices_svalues['yourotherthermometer'] = string of svalues
--
-- uservariables and uservariables_lastupdate are arrays for all user variables: 
--   uservariables['yourvariablename'] = 'Test Value'
--   uservariables_lastupdate['yourvariablename'] = '2015-12-27 11:19:22'
--
-- other useful details are contained in the timeofday table
--   timeofday['Nighttime'] = true or false
--   timeofday['SunriseInMinutes'] = number
--   timeofday['Daytime'] = true or false
--   timeofday['SunsetInMinutes'] = number
--   globalvariables['Security'] = 'Disarmed', 'Armed Home' or 'Armed Away'
--
-- To see examples of commands see: http://www.domoticz.com/wiki/LUA_commands#General
-- To get a list of available values see: http://www.domoticz.com/wiki/LUA_commands#Function_to_dump_all_variables_supplied_to_the_script
--
-- Based on your logic, fill the commandArray with device commands. Device name is case sensitive. 
--
commandArray = {}

-- loop through all the changed devices
for deviceName,deviceValue in pairs(devicechanged) do
    print ("Device based event fired on '"..deviceName.."', value '"..tostring(deviceValue).."'");
--    if (deviceName=='myDevice') then
--        if deviceValue == "On" then
--            print("Device is On")
--        elseif deviceValue == "Off" then
--            commandArray['a device name'] = "On"
--            commandArray['another device name'] = "Off AFTER 10"
--            commandArray['Scene:MyScene'] = "Off"
--            commandArray['Group:My Group'] = "Off AFTER 30"
--        end
--    end
end

return commandArray

Un peu plus haut je t'ai donné :

Code : Tout sélectionner

    if otherdevices['Teleinfo Couleur du jour']== '(3) Jour Rouge' then
        print ("Aujourd'hui : Jour Rouge")
    elseif otherdevices['Teleinfo Couleur du jour']== '(2) Jour Blanc' then
        print ("Aujourd'hui : Jour Blanc")
    else
        print ("Aujourd'hui : Jour Bleu")
    end
Il me semble que tu avais toutes les infos :roll:

Neutrino
Messages : 1548
Enregistré le : 10 juil. 2015, 15:42
Localisation : Challans (85)
Contact :

Re: Teleinfo EDF par USB : récupérer la couleur du jour et du lendemain

Message par Neutrino »

Juste un petit rappel.
Cela peut agacer certains, mais sur ce forum, le but est de s'entraider. Nous ne sommes pas un SAV.
Nous sommes plusieurs à participer activement, plus ou moins régulièrement, mais toujours dans une approche de faire apprendre.
Donc parfois (souvent :roll: ), comme Keros je préfère mettre sur une piste plutôt que donner la réponse directement.

On ne demande pas la Lune, surtout pas la reconnaissance, mais des efforts et du partage.
Nous seront très heureux de t'aider, mais il va falloir commencer ton script toi même et lire lire lire lire.
Il y a plein d'exemples et de documentation sur ce forum et le blog.
Tu pourras poster ton script final s'il fonctionne ou en cours de débogage pour qu'on t'aide.
Mais on ne le rédigera pas pour toi.

Les modos ici font très rarement la police car ce n'est pas nécessaire.
Ce genre de commentaire :
"Dommage que tu ne puisse daigner céder quelques lignes de code fonctionnel"
n'est pas utile.
Dispo en MP pour en discuter si besoin afin de ne pas polluer le sujet.

Soyez bienveillants envers les uns les autres ;)
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?

Répondre