Aller au contenu

[VD + Scène] Réveil paramétrable avancé v3.6 : Réveil compatible Dimmers, RGBW, Shutters, VD Philips Hue, VD Sonos, VD Yamaha Multicast...


Messages recommandés

Posté(e)

 Avec le slide à 5mn, j'ai l'impression que la scène ne démarre pas et donc, pas de debug.

 

Posté(e)

Merci de ton retour. J’ai ciblé le problème, il semblerait que je n’ai pas enregistré certaines modifications... Car ça je l’avais bien changé :D

Je re-refais une version dans les prochaines minutes :)

Posté(e) (modifié)

Bon, j'espère que ça sera bon pour cette fois-ci...

Ça commence à être frustrant ces erreurs à la chaîne :2:

Et ça doit être embêtant pour toi de cumuler ces tests cher @Did... Merci encore pour ces tests et cette patience!

--
-- Scène Réveil Paramétrable v2.3 BETA
--
-- Date : 21 Mars 2020
-- Auteur : J3R3M
--

 

Modifié par J3R3M
Posté(e)

 Bon, c'est lancé.

T'inquiètes, c'est calme en ce moment.

Le debug

[DEBUG] 00:05:00: Démarrage de la scène... 1 entrées Lights et 2 entrées Speakers à traiter
[DEBUG] 00:05:00: Il fait nuit! Seules les entrées en mode 'both' et 'down' seront traitées
[DEBUG] 00:05:00: [LightsBtn] -> Début de la fonction
[DEBUG] 00:05:00: [LightsBtn] [VD 18] Le bouton 4 a été appuyé
[DEBUG] 00:05:01: [LightsBtn] -> Fin de la fonction
[DEBUG] 00:05:01: [LightsFade] -> Début de la fonction
[DEBUG] 00:05:01: [LightsFade] Temps d'aube nul : allumage direct des éléments de LightsList
[DEBUG] 00:05:01: 2020-03-22 00:05:01.420175 [ fatal] Unknown exception: /opt/fibaro/scenes/5.lua:129: attempt to index field '?' (a nil value)
[DEBUG] 00:05:03: Démarrage de la scène... 1 entrées Lights et 2 entrées Speakers à traiter
[DEBUG] 00:05:03: Il fait nuit! Seules les entrées en mode 'both' et 'down' seront traitées
[DEBUG] 00:05:03: [LightsBtn] -> Début de la fonction
[DEBUG] 00:05:03: [LightsBtn] [VD 18] Le bouton 4 a été appuyé
[DEBUG] 00:05:04: [LightsBtn] -> Fin de la fonction
[DEBUG] 00:05:04: [LightsFade] -> Début de la fonction
[DEBUG] 00:05:04: [LightsFade] Temps d'aube nul : allumage direct des éléments de LightsList
[DEBUG] 00:05:04: 2020-03-22 00:05:04.451857 [ fatal] Unknown exception: /opt/fibaro/scenes/5.lua:129: attempt to index field '?' (a nil value)

Comme tu dois le voir, les leds se sont bien allumés mais planté.

La ligne 129:

      if LightsList[j].typ ~= "Shutter" and ( LightsList[j].mode == "both" or LightsList[j].mode == nil or ( LightsList[j].mode == "up" and SunIsUp ) or ( LightsList[j].mode == "down" and not SunIsUp ) ) then

Durée de l'aube à zéro, tu veux que j'essaie à 5 mn?

  • Like 1
Posté(e) (modifié)

Alors là... :huh:

C’est exactement ce que j’ai modifié juste avant, sauf que c’est corrigé cette fois...

Également, le premier message de DEBUG « Démarrage en cours... » ne correspond pas à celui de la dernière version de la scène.

Je suppose que oui, mais à tout hasard, as-tu fait un simple copier/coller de toute la scène ou en as-tu copié qu’une partie?

 

Dans le doute, tu peux tenter d’effacer complètement cette scène et l’enregistrer vide ensuite, avant de retenter d’y coller à nouveau le code entier.

Si le résultat est similaire, je pense qu’il faudrait retenter carrément la nouvelle scène...

 

Merci encore beaucoup !

Modifié par J3R3M
Posté(e)

  J'avais fait un copier/coller mais je vais le refaire en sauvegardant à vide entre les deux.

 

Posté(e)

Deuxième essais:

[DEBUG] 00:45:00: Démarrage de la scène... 1 entrée(s) Lights et 2 entrée(s) Speakers à traiter
[DEBUG] 00:45:00: Il fait nuit! Seules les entrées en mode 'both' et 'down' seront traitées
[DEBUG] 00:45:00: [LightsBtn] -> Début de la fonction
[DEBUG] 00:45:00: [LightsBtn] [VD 18] Le bouton 4 a été appuyé
[DEBUG] 00:45:01: [LightsBtn] -> Fin de la fonction
[DEBUG] 00:45:01: [LightsFade] -> Début de la fonction
[DEBUG] 00:45:01: [LightsFade] Temps d'aube nul : allumage direct des éléments de LightsList
[DEBUG] 00:45:01: [LightsFade] -> Fin de la fonction
[DEBUG] 00:45:01: [SpeakersAction] -> Début de la fonction
[DEBUG] 00:45:01: 2020-03-22 00:45:01.914963 [ fatal] Unknown exception: /opt/fibaro/scenes/5.lua:156: attempt to compare string with number
[DEBUG] 00:45:03: Démarrage de la scène... 1 entrée(s) Lights et 2 entrée(s) Speakers à traiter
[DEBUG] 00:45:03: Il fait nuit! Seules les entrées en mode 'both' et 'down' seront traitées
[DEBUG] 00:45:03: [LightsBtn] -> Début de la fonction
[DEBUG] 00:45:03: [LightsBtn] [VD 18] Le bouton 4 a été appuyé
[DEBUG] 00:45:04: [LightsBtn] -> Fin de la fonction
[DEBUG] 00:45:04: [LightsFade] -> Début de la fonction
[DEBUG] 00:45:04: [LightsFade] Temps d'aube nul : allumage direct des éléments de LightsList
[DEBUG] 00:45:04: [LightsFade] -> Fin de la fonction
[DEBUG] 00:45:04: [SpeakersAction] -> Début de la fonction
[DEBUG] 00:45:04: 2020-03-22 00:45:04.931886 [ fatal] Unknown exception: /opt/fibaro/scenes/5.lua:156: attempt to compare string with number

 

Posté(e) (modifié)

Décidément... Des comparaisons simples qui se fonctionnent plus...

Mais bon, on arrive quasiment au bout de la scène maintenant...

 

La scène suivante devrait remédier à ces nouveaux bug :lol:

Dans le doute, je t'incite à nouveau à repasser par l'enregistrement d'une scène vide avant de copier celle-ci afin qu'elle soit bien prise en compte :rolleyes:

--
-- Scène Réveil Paramétrable v2.4 BETA
--
-- Date : 22 Mars 2020
-- Auteur : J3R3M
--

 

Modifié par J3R3M
Posté(e)

 Pas de led:

[DEBUG] 12:40:03: 2020-03-22 12:40:03.077384 [ fatal] Unknown exception: /opt/fibaro/scenes/5.lua:111: 'end' expected (to close 'for' at line 91) near 'elseif'

 

Posté(e) (modifié)
Il y a 2 heures, Did a dit :

 Pas de led:


[DEBUG] 12:40:03: 2020-03-22 12:40:03.077384 [ fatal] Unknown exception: /opt/fibaro/scenes/5.lua:111: 'end' expected (to close 'for' at line 91) near 'elseif'

 

AAAAAarrrrgh, le logiciel que j'ai téléchargé fait des suggestions de code LUA par anticipation et j'ai dû valider par inadvertance à un moment. Sincèrement désolé...

Cette fois, j'ai pris le temps de tester la scène complète (hors fonctions Fibaro), je n'ai aucune erreur en retour, la scène se déroule entièrement.

Sachant qu'on a pas mal avancé ensemble dans les bugs rencontrés avec les fonctions Fibaro, j'ai bon espoir qu'on arrive au terme de tous ces tests! :77:

Merci encore @Did!

--
-- Scène Réveil Paramétrable v2.5 BETA
--
-- Date : 22 Mars 2020
-- Auteur : J3R3M
--

-- Code de la Chambre correspondant à la Variable Globale créée
local PIECE = "CHAMBRE";

-- Volume à partir duquel démmarrera le Fade-in sur les enceintes
local StartVolume = 15;

-- Tableaux qui seront exploités
LightsList, SpeakerAction = {},{};

-- Liste des devices à traiter pour la simulation d'aube
--table.insert(LightsList, {typ="Shutter", mode="both", id=279, pas=6});
--table.insert(LightsList, {typ="Device", mode="both", id=27});
--table.insert(LightsList, {typ="VD", mode="both", id=44, slider=10, btn=16});
table.insert(LightsList, {typ="VD", mode="both", id=18, btn=4});
--table.insert(LightsList, {typ="RGBW", mode="down", id=20, r=0, g=100, b=0, w=255});
--table.insert(LightsList, {typ="Program", mode="up", id=20, program=3});


-- Liste des actions à effectuer sur les enceintes
table.insert(SpeakerAction, {id=15, slider=15});
table.insert(SpeakerAction, {id=15, btn=7});

-- DEBUG
local debug = 1;
local tempo = 1; -- seconde
local DayLightDelay = 60; -- minutes
local VolDiffMin = 5; -- %

-- Cette scène doit uniquement être lancée depuis le VD et une seule fois
if fibaro:getSourceTrigger() == 'autostart' or fibaro:countScenes() > 1 then fibaro:abort(); end

local function Debug(color,message,tour)
  tour = tour or 25;
  if debug == 1 and message ~= nil and ( tour == 25 or tour == 50 or tour == 75 or tour == 100 ) then
    fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span"));
  end
end

local function SunState()
  if ( os.date("%H:%M", os.time()-DayLightDelay*60) >= fibaro:getValue(1, "sunriseHour") ) and ( os.date("%H:%M", os.time()-DayLightDelay*60) < fibaro:getValue(1, "sunsetHour") ) then
    return true; else return false;
  end
end

-- Transfert des différentes valeurs dans des variables
local TotalLights, TotalSpeakers, SunIsUp = #LightsList, #SpeakerAction, SunState();

-- Debug début de script avec informations
Debug("white", "Démarrage de la scène... "..TotalLights.." entrée(s) Lights et "..TotalSpeakers.." entrée(s) Speakers à traiter");
if SunIsUp then
  Debug("yellow", "Il fait jour! Seules les entrées en mode 'both' et 'up' seront traitées");
else
  Debug("blue", "Il fait nuit! Seules les entrées en mode 'both' et 'down' seront traitées");
end

-- Lights / Shutters Management
local function LightsBtn(Puissance)
  Debug("green", "[LightsBtn] -> Début de la fonction");
  for i=1,TotalLights do
    if LightsList[i].mode == "both" or LightsList[i].mode == nil or ( LightsList[i].mode == "up" and SunIsUp ) or ( LightsList[i].mode == "down" and not SunIsUp ) then
      if LightsList[i].typ == "VD" and LightsList[i].btn ~= nil then
        fibaro:call(LightsList[i].id, "pressButton", tostring(LightsList[i].btn));
        Debug("grey", "[LightsBtn] [VD "..LightsList[i].id.."] Le bouton "..LightsList[i].btn.." a été appuyé");
      elseif LightsList[i].typ == "Program" and LightsList[i].program ~= nil then
        fibaro:call(LightsList[i].id, "startProgram", tostring(LightsList[i].program));
        fibaro:call(LightsList[i].id, "setValue", "1");
        Debug("grey", "[LightsBtn] [Device "..LightsList[i].id.."] Le programme "..LightsList[i].program.." a été démarré à 1%");
      else
        Debug("grey", "[LightsBtn] ["..LightsList[i].typ.." "..LightsList[i].id.."] Pas d'action à effectuer pour cette entrée");
      end -- Condition traitement
    else
      Debug("grey", "[LightsBtn] ["..LightsList[i].typ.." "..LightsList[i].id.."] Aucune action car le mode est "..LightsList[i].mode.."");
    end
    fibaro:sleep(tempo*1000);
  end -- Boucle entrée par entrée
  Debug("purple", "[LightsBtn] -> Fin de la fonction");
end

local function LightsFade(Puissance, TpsFade)
  Debug("green", "[LightsFade] -> Début de la fonction");
  if tonumber(TpsFade) > 0 then
    Debug("yellow","[LightsFade] Durée d'allumage prévue : "..TpsFade.."mn");
    for i=1,100 do
      for j=1,TotalLights do
        if LightsList[j].typ ~= "Shutter" and ( LightsList[j].mode == "both" or LightsList[j].mode == nil or ( LightsList[j].mode == "up" and SunIsUp ) or ( LightsList[j].mode == "down" and not SunIsUp ) ) then
          if LightsList[j].typ == "VD" and LightsList[j].slider ~= nil then
            fibaro:call(LightsList[j].id, "setSlider", tostring(LightsList[j].slider), math.ceil(i*Puissance/100));
            Debug("grey","[LightsFade] [VD "..LightsList[j].id.."] [Puissance réglée: "..Puissance.."] Allumage en cours... "..i.."%", i);
          elseif LightsList[j].typ == "Device" then
            fibaro:call(LightsList[j].id, "setValue", math.ceil(i*Puissance/100));
            Debug("grey","[LightsFade] [Device "..LightsList[j].id.."] [Puissance réglée: "..Puissance.."] Allumage en cours... "..i.."%", i);
          elseif LightsList[j].typ == "Program" then
            fibaro:call(LightsList[j].id, "setValue", math.ceil(i*Puissance/100));
            Debug("grey","[LightsFade] [Device "..LightsList[j].id.."] [Puissance réglée: "..Puissance.."] Allumage du programme en cours... "..i.."%", i);
          elseif LightsList[j].typ == "RGBW" then
            local facteur = i*Puissance/10000;
            local red,green,blue,white = math.floor(LightsList[j].r*facteur),math.floor(LightsList[j].g*facteur),math.floor(LightsList[j].b*facteur),math.floor(LightsList[j].w*facteur);
            fibaro:call(LightsList[j].id, "setColor", red, green, blue, white);
            Debug("grey","[LightsFade] [RGBW "..LightsList[j].id.."] [Puissance réglée: "..Puissance.."] ["..i.."%] Facteur:"..facteur.." R:"..red.." G:"..green.." B:"..blue.." W:"..white, i);
          elseif i == 1 then
            Debug("orange","[LightsFade] Rien à effectuer sur l'entrée "..j.." de LightsList");
          end
        elseif LightsList[j].typ == "Shutter" and ( LightsList[j].mode == "both" or LightsList[j].mode == nil or ( LightsList[j].mode == "up" and SunIsUp ) or ( LightsList[j].mode == "down" and not SunIsUp ) ) then
          local Pas, CountPas = LightsList[j].pas, 1; if Pas < 2 then Pas = 2; elseif Pas > 20 then Pas = 20; end
          local CalculPas = math.ceil(100/Pas);
          if i < 100 then
            for k=CalculPas,100,CalculPas do
              if k == i then
                fibaro:call(LightsList[j].id, "setValue", i);
                Debug("grey","[LightsFade] [Shutter "..LightsList[j].id.."] [Pas "..CountPas.." / "..Pas.."] Volet roulant ouvert à "..i.."%");
              end -- Condition vérification valeur k==i
              CountPas=CountPas+1;
            end -- Boucle Valeurs de Pas
          else
            fibaro:call(LightsList[j].id, "setValue", 100);
            Debug("grey","[LightsFade] [Shutter "..LightsList[j].id.."] [Pas "..Pas.." / "..Pas.."] Volet roulant ouvert à 100%");
          end -- i < 100
        end -- Condition modes
      end -- Boucle device par device
      fibaro:sleep(TpsFade/100*60*1000);
    end -- Boucle 1->100
  else -- Début - Si aucun fade
    Debug("yellow","[LightsFade] Temps d'aube nul : allumage direct des éléments de LightsList");
    for j=1,TotalLights do
      if LightsList[j].typ ~= "Shutter" and ( LightsList[j].mode == "both" or LightsList[j].mode == nil or ( LightsList[j].mode == "up" and SunIsUp ) or ( LightsList[j].mode == "down" and not SunIsUp ) ) then
        if LightsList[j].typ == "VD" and LightsList[j].slider ~= nil then
          fibaro:call(LightsList[j].id, "setSlider", tostring(LightsList[j].slider), Puissance);
          Debug("grey","[LightsFade] [VD "..LightsList[j].id.."] [Puissance réglée: "..Puissance.."] VD allumé directement !");
        elseif LightsList[j].typ == "Device" then
          fibaro:call(LightsList[j].id, "setValue", Puissance);
          Debug("grey","[LightsFade] [Device "..LightsList[j].id.."] [Puissance réglée: "..Puissance.."] Device allumé directement !");
        elseif LightsList[j].typ == "Program" then
          fibaro:call(LightsList[j].id, "setValue", Puissance);
          Debug("grey","[LightsFade] [Device "..LightsList[j].id.."] [Puissance réglée: "..Puissance.."] Programme lancé directement !");
        elseif LightsList[j].typ == "RGBW" then
          local red,green,blue,white = LightsList[j].r,LightsList[j].g,LightsList[j].b,LightsList[j].w;
          fibaro:call(LightsList[j].id, "setColor", red, green, blue, white);
          Debug("grey","[LightsFade] [RGBW "..LightsList[j].id.."] [Puissance réglée: "..Puissance.."] Device RGBW allumé directement ! R:"..red.." G:"..green.." B:"..blue.." W:"..white, i);
        else
          Debug("orange", "[LightsFade] Rien à effectuer sur l'entrée "..j.." de LightsList");
        end
      elseif LightsList[j].typ == "Shutter" and ( LightsList[j].mode == "both" or LightsList[j].mode == nil or ( LightsList[j].mode == "up" and SunIsUp ) or ( LightsList[j].mode == "down" and not SunIsUp ) ) then
          fibaro:call(LightsList[j].id, "setValue", 100);
          Debug("grey","[LightsFade] [Shutter "..LightsList[j].id.."] Ouvert directement à 100% !");
      end -- Condition modes
    end -- Boucle device par device
  end -- Condition TpsFade > 0
  Debug("purple", "[LightsFade] -> Fin de la fonction");
end

-- Speakers Management
local function SpeakersAction(VolMax)
  Debug("green", "[SpeakersAction] -> Début de la fonction");
  if tonumber(VolMax) <= tonumber(StartVolume) then Debug("orange", "[SpeakersAction] Incohérence !! StartVolume = "..StartVolume.." & VolMax = "..VolMax..""); VolMax = StartVolume + VolDiffMin; end
  if TotalSpeakers > 0 then
    for i=1,TotalSpeakers do
      if tonumber(SpeakerAction[i].slider) ~= nil then
        fibaro:call(SpeakerAction[i].id, "setSlider", tostring(SpeakerAction[i].slider), tostring(StartVolume));
        Debug("grey", "[SpeakersAction] [VD "..SpeakerAction[i].id.."] Le slider "..SpeakerAction[i].slider.." est à "..StartVolume.." %.");
        fibaro:sleep(tempo*1000);
      elseif tonumber(SpeakerAction[i].btn) ~= nil then
        fibaro:call(SpeakerAction[i].id, "pressButton", tostring(SpeakerAction[i].btn));
        Debug("grey", "[SpeakersAction] [VD "..SpeakerAction[i].id.."] Le bouton "..SpeakerAction[i].btn.." a été appuyé");
        fibaro:sleep(tempo*1000);
      else
        Debug("orange", "[SpeakersAction] [VD "..SpeakerAction[i].id.."] Erreur : Ni bouton, ni slider configuré pour ce VD");
        fibaro:sleep(tempo*1000);
      end
    end
  else
    Debug("yellow","Aucune enceinte à traiter dans cette fonction");
  end
  Debug("purple", "[SpeakersAction] -> Fin de la fonction");
end

local function SpeakersFade(VolMax,TpsFade)
  Debug("green", "[SpeakersFade] -> Début de la fonction");
  if tonumber(VolMax) <= tonumber(StartVolume) then Debug("orange", "[SpeakersFade] Incohérence !! StartVolume = "..StartVolume.." & VolMax = "..VolMax..""); VolMax = StartVolume + VolDiffMin; end
  if TotalSpeakers > 0 then
    for i=StartVolume,VolMax do
      for j=1,TotalSpeakers do
        if tonumber(SpeakerAction[j].slider) ~= nil then
          fibaro:call(SpeakerAction[j].id, "setSlider", tostring(SpeakerAction[j].slider), i);
          local Pourcentage = math.floor(i*100/VolMax);
          Debug("grey", "[SpeakersFade] [VD "..SpeakerAction[j].id.."] [Slider "..SpeakerAction[j].slider.."] Fade-In en cours... "..Pourcentage.."%  ("..i.." / "..VolMax..")", Pourcentage);
        end -- Condition y'a-t'il un slider ?
      end -- Boucle entrée par entrée
      fibaro:sleep(math.floor(TpsFade/VolMax*1000));
    end -- Boucle envoi volume
  else
    Debug("yellow","Aucune enceinte à traiter dans cette fonction");
  end -- Check nb enceintes
  Debug("purple", "[SpeakersFade] -> Fin de la fonction");
end

-- Fonction Principale
local TableReveil = json.decode(fibaro:getGlobalValue("REVEIL_"..PIECE));
local function reveil(LightsPower,LightsTps,SpeakersPower,SpeakersTps)
  LightsBtn(LightsPower);
  LightsFade(LightsPower,LightsTps);
  SpeakersAction(SpeakersPower);
  SpeakersFade(SpeakersPower,SpeakersTps);
  -- Changement Mode
  if TableReveil.Mode == 1 then TableReveil.Mode = 3; fibaro:setGlobal("REVEIL_"..PIECE, json.encode(TableReveil)); end
end

-- Si pas de réveil programmé
if tonumber(fibaro:getGlobalValue("REVEIL_"..PIECE)) ~= nil or fibaro:getGlobalValue("REVEIL_"..PIECE) == nil or ( type(TableReveil) == "table" and  TableReveil.Mode == 3 ) then
  Debug("red", "Aucun réveil n'a été programmé via le VD associé.");
  fibaro:abort();
end

-- On exécute
reveil(TableReveil.Lights,TableReveil.FLights,TableReveil.Son,TableReveil.FSon);
Debug("lightblue", "Fin de la scène. Debout maintenant!");

 

Modifié par J3R3M
Posté(e)

 Pas de soucis, c'est surtout toi que l'on remercie. :13::13::13:

Je ne fais que passer les plats.

Scène sauvegardée à vide puis copier/coller et re-sauvegarde.

Ça me semble parfait.

[DEBUG] 15:10:02: Démarrage de la scène... 1 entrée(s) Lights et 2 entrée(s) Speakers à traiter
[DEBUG] 15:10:02: Il fait jour! Seules les entrées en mode 'both' et 'up' seront traitées
[DEBUG] 15:10:02: [LightsBtn] -> Début de la fonction
[DEBUG] 15:10:02: [LightsBtn] [VD 18] Le bouton 4 a été appuyé
[DEBUG] 15:10:03: [LightsBtn] -> Fin de la fonction
[DEBUG] 15:10:03: [LightsFade] -> Début de la fonction
[DEBUG] 15:10:03: [LightsFade] Temps d'aube nul : allumage direct des éléments de LightsList
[DEBUG] 15:10:03: [LightsFade] Rien à effectuer sur l'entrée 1 de LightsList
[DEBUG] 15:10:03: [LightsFade] -> Fin de la fonction
[DEBUG] 15:10:03: [SpeakersAction] -> Début de la fonction
[DEBUG] 15:10:03: [SpeakersAction] [VD 15] Le slider 15 est à 15 %.
[DEBUG] 15:10:04: [SpeakersAction] [VD 15] Le bouton 7 a été appuyé
[DEBUG] 15:10:05: [SpeakersAction] -> Fin de la fonction
[DEBUG] 15:10:05: [SpeakersFade] -> Début de la fonction
[DEBUG] 15:10:12: [SpeakersFade] [VD 15] [Slider 15] Fade-In en cours... 50% (20 / 40)
[DEBUG] 15:10:28: [SpeakersFade] [VD 15] [Slider 15] Fade-In en cours... 75% (30 / 40)
[DEBUG] 15:10:43: [SpeakersFade] [VD 15] [Slider 15] Fade-In en cours... 100% (40 / 40)
[DEBUG] 15:10:45: [SpeakersFade] -> Fin de la fonction
[DEBUG] 15:10:45: Fin de la scène. Debout maintenant!

Je relance un nouveau réveil avec un fondu sur le FGRGB à la place du VD.

 

 

  • Like 1
Posté(e)

 Je n'ai pas eu de lumière mais j'ai l'impression que c'est parce qu'il ne fait pas nuit (mode down), c'est ça?

Le fondu sur le son est impec.

Le debug:

[DEBUG] 15:25:02: Démarrage de la scène... 1 entrée(s) Lights et 2 entrée(s) Speakers à traiter
[DEBUG] 15:25:02: Il fait jour! Seules les entrées en mode 'both' et 'up' seront traitées
[DEBUG] 15:25:02: [LightsBtn] -> Début de la fonction
[DEBUG] 15:25:02: [LightsBtn] [RGBW 20] Aucune action car le mode est down
[DEBUG] 15:25:03: [LightsBtn] -> Fin de la fonction
[DEBUG] 15:25:03: [LightsFade] -> Début de la fonction
[DEBUG] 15:25:03: [LightsFade] Durée d'allumage prévue : 10mn
[DEBUG] 15:35:03: [LightsFade] -> Fin de la fonction
[DEBUG] 15:35:03: [SpeakersAction] -> Début de la fonction
[DEBUG] 15:35:03: [SpeakersAction] [VD 15] Le slider 15 est à 20 %.
[DEBUG] 15:35:04: [SpeakersAction] [VD 15] Le bouton 7 a été appuyé
[DEBUG] 15:35:05: [SpeakersAction] -> Fin de la fonction
[DEBUG] 15:35:05: [SpeakersFade] -> Début de la fonction
[DEBUG] 15:35:13: [SpeakersFade] [VD 15] [Slider 15] Fade-In en cours... 50% (25 / 50)
[DEBUG] 15:35:48: [SpeakersFade] [VD 15] [Slider 15] Fade-In en cours... 100% (50 / 50)
[DEBUG] 15:35:50: [SpeakersFade] -> Fin de la fonction
[DEBUG] 15:35:50: Fin de la scène. Debout maintenant!

Si la scène s'est comportée comme tu le souhaitais, je peux essayer avec la ligne:

table.insert(LightsList, {typ="Program", mode="up", id=20, program=3});

 

Posté(e)

 Debug pour la scène démarrée par le type program:

[DEBUG] 16:00:02: Démarrage de la scène... 1 entrée(s) Lights et 2 entrée(s) Speakers à traiter
[DEBUG] 16:00:02: Il fait jour! Seules les entrées en mode 'both' et 'up' seront traitées
[DEBUG] 16:00:02: [LightsBtn] -> Début de la fonction
[DEBUG] 16:00:02: [LightsBtn] [Device 20] Le programme 3 a été démarré à 1%
[DEBUG] 16:00:03: [LightsBtn] -> Fin de la fonction
[DEBUG] 16:00:03: [LightsFade] -> Début de la fonction
[DEBUG] 16:00:03: [LightsFade] Temps d'aube nul : allumage direct des éléments de LightsList
[DEBUG] 16:00:03: [LightsFade] [Device 20] [Puissance réglée: 100] Programme lancé directement !
[DEBUG] 16:00:03: [LightsFade] -> Fin de la fonction
[DEBUG] 16:00:03: [SpeakersAction] -> Début de la fonction
[DEBUG] 16:00:03: [SpeakersAction] [VD 15] Le slider 15 est à 20 %.
[DEBUG] 16:00:04: [SpeakersAction] [VD 15] Le bouton 7 a été appuyé
[DEBUG] 16:00:05: [SpeakersAction] -> Fin de la fonction
[DEBUG] 16:00:05: [SpeakersFade] -> Début de la fonction
[DEBUG] 16:00:05: [SpeakersFade] [VD 15] [Slider 15] Fade-In en cours... 50% (20 / 40)
[DEBUG] 16:00:23: [SpeakersFade] [VD 15] [Slider 15] Fade-In en cours... 75% (30 / 40)
[DEBUG] 16:00:40: [SpeakersFade] [VD 15] [Slider 15] Fade-In en cours... 100% (40 / 40)
[DEBUG] 16:00:42: [SpeakersFade] -> Fin de la fonction
[DEBUG] 16:00:42: Fin de la scène. Debout maintenant!

Le module s'est bien allumé mais pas sur le programme 3, il s'est mis par défaut en blanc.

Perso le VD avec le numéro de bouton me convient.

 

Posté(e)
Il y a 1 heure, Did a dit :

Pas de soucis, c'est surtout toi que l'on remercie. :13::13::13:

Je ne fais que passer les plats.

Scène sauvegardée à vide puis copier/coller et re-sauvegarde.

Ça me semble parfait.

Ouiiiiiii :yes:

il y a une heure, Did a dit :

 Je n'ai pas eu de lumière mais j'ai l'impression que c'est parce qu'il ne fait pas nuit (mode down), c'est ça?

Oui, c'est exactement pour cela! Si tu souhaites que ça se déclenche à chaque fois, ne saisis pas de mode ou spécifie-le sur "both" :)

il y a une heure, Did a dit :

Le fondu sur le son est impec.

Il y a juste un problème minime dans l'affichage du debug de SpeakersFade :

Le pourcentage ne prend pas en compte le delta que l'on a rajouté pour que le son démarre, non pas à zéro mais à une valeur définie... Je verrai cela demain je pense, car ça ne change en rien le fonctionnement du script, c'est simplement un calcul à ajuster :)

il y a une heure, Did a dit :

Le module s'est bien allumé mais pas sur le programme 3, il s'est mis par défaut en blanc.

Il semblerait qu'un programme ne soit pas censé être dimmable... Et donc la moindre commande de modulation relancerait les paramètres RGBW précédents.

Je vais voir pour creuser un peu, demander confirmation aux professionnels Fibaro et ajusterai cette version très prochainement alors!

il y a une heure, Did a dit :

Perso le VD avec le numéro de bouton me convient.

Je vais très prochainement pouvoir proposer une version définitive et stable :)

  • Upvote 1
Posté(e)

Merci pour tous ces tests messieurs. J'ai pas tout suivi .... Je peux pas trop Aider madame est personnel soignant ..je suisdc mode nounou a temps complet.

Au cas où, quelle est la dernière scène ?
Merci encore a vous.

Un petit debrief pour me remettre dans le bain :-) svp

Envoyé de mon BND-L21 en utilisant Tapatalk

  • Upvote 1
Posté(e)
Il y a 4 heures, J3R3M a dit :

Il y a juste un problème minime dans l'affichage du debug de SpeakersFade :

Je n'ai rien vu mais je te crois sur parole.

Il y a 4 heures, J3R3M a dit :

Il semblerait qu'un programme ne soit pas censé être dimmable...

Ah non, c'est toi qui gère la couleur et l'intensité (on joue sur les % de chaque slide) sur une durée que tu choisis aussi et dans la limite de 74 blocs maxi qui s'enchaineront une fois sauvegardé.

Merci pour tout @J3R3M. :13:

Ah au fait, j'ai quand testé la simulation d'aube ce soir et c'est nickel, voici le debug:

[DEBUG] 21:45:01: Démarrage de la scène... 1 entrée(s) Lights et 2 entrée(s) Speakers à traiter
[DEBUG] 21:45:01: Il fait nuit! Seules les entrées en mode 'both' et 'down' seront traitées
[DEBUG] 21:45:01: [LightsBtn] -> Début de la fonction
[DEBUG] 21:45:01: [LightsBtn] [RGBW 20] Pas d'action à effectuer pour cette entrée
[DEBUG] 21:45:02: [LightsBtn] -> Fin de la fonction
[DEBUG] 21:45:02: [LightsFade] -> Début de la fonction
[DEBUG] 21:45:02: [LightsFade] Durée d'allumage prévue : 10mn
[DEBUG] 21:47:26: [LightsFade] [RGBW 20] [Puissance réglée: 100] [25%] Facteur:0.25 R:0 G:0 B:0 W:63
[DEBUG] 21:49:57: [LightsFade] [RGBW 20] [Puissance réglée: 100] [50%] Facteur:0.5 R:0 G:0 B:0 W:127
[DEBUG] 21:52:27: [LightsFade] [RGBW 20] [Puissance réglée: 100] [75%] Facteur:0.75 R:0 G:0 B:0 W:191
[DEBUG] 21:54:57: [LightsFade] [RGBW 20] [Puissance réglée: 100] [100%] Facteur:1 R:0 G:0 B:0 W:255
[DEBUG] 21:55:03: [LightsFade] -> Fin de la fonction
[DEBUG] 21:55:03: [SpeakersAction] -> Début de la fonction
[DEBUG] 21:55:03: [SpeakersAction] [VD 15] Le slider 15 est à 20 %.
[DEBUG] 21:55:04: [SpeakersAction] [VD 15] Le bouton 7 a été appuyé
[DEBUG] 21:55:05: [SpeakersAction] -> Fin de la fonction
[DEBUG] 21:55:05: [SpeakersFade] -> Début de la fonction
[DEBUG] 21:55:05: [SpeakersFade] [VD 15] [Slider 15] Fade-In en cours... 50% (20 / 40)
[DEBUG] 21:55:23: [SpeakersFade] [VD 15] [Slider 15] Fade-In en cours... 75% (30 / 40)
[DEBUG] 21:55:41: [SpeakersFade] [VD 15] [Slider 15] Fade-In en cours... 100% (40 / 40)
[DEBUG] 21:55:43: [SpeakersFade] -> Fin de la fonction
[DEBUG] 21:55:43: Fin de la scène. Debout maintenant!

Ça change à l'heure du coucher/lever du soleil?

 

Posté(e)
Il y a 2 heures, pepite a dit :

Merci pour tous ces tests messieurs. J'ai pas tout suivi .... Je peux pas trop Aider madame est personnel soignant ..je suisdc mode nounou a temps complet.

Au cas où, quelle est la dernière scène ?
Merci encore a vous.

Un petit debrief pour me remettre dans le bain :-) svp

Envoyé de mon BND-L21 en utilisant Tapatalk

Demain, je ferai encore quelques petites modifications pour s’adapter aux résultats des tests de @Did concernant les programmes. Et on devrait arriver très rapidement à une nouvelle version sur le premier avec un nouveau descriptif complet.

Cette nouvelle version sera totalement compatible avec le VD déjà installé, il faudra simplement copier/coller les lignes de réglage du début du script.

il y aura aussi un peu d’adaptation sur les modes puisque les valeurs de ceux-ci ont changé de AND/OR à BOTH/UP/DOWN.

il y a 51 minutes, Did a dit :

Je n'ai rien vu mais je te crois sur parole.

Ah non, c'est toi qui gère la couleur et l'intensité (on joue sur les % de chaque slide) sur une durée que tu choisis aussi et dans la limite de 74 blocs maxi qui s'enchaineront une fois sauvegardé.

Merci encore de ces précisions! C’est donc pour cela que l’on a pas la main sur l’intensité, puisqu’elle a déjà été enregistrée lors de la création du programme.

Je vais adapter la scène pour que le programme RGBW puisse être lance directement juste avant l’allumage des enceintes ;)

il y a 51 minutes, Did a dit :

Merci pour tout @J3R3M. :13:

Ah au fait, j'ai quand testé la simulation d'aube ce soir et c'est nickel, voici le debug.

Avec grand plaisir! Encore une fois merci à toi de tous ces essais en cette période loin d’une HC2 pour moi...

Et merci d’avoir également testé ce fondu. Cela faisait longtemps qu’on n’avait pas vu de scène aller jusqu’au bout, tiens :D

il y a 51 minutes, Did a dit :

Ça change à l'heure du coucher/lever du soleil?

Effectivement, les entrées en mode « up » et « down » sont lancées - ou non - en fonction de la lumière du jour ( calculé automatiquement en fonction du lever / coucher du soleil). Très exactement, le temps de « jour » est calculé à h+1h, en mode « jour aéronautique ».

Le but étant de ne pas considérer qu’il fait jour alors que le soleil vient à peine de pointer le bout de son nez et qu’il va faire nuit encore quasiment 1h, pour le lever du soleil. À l’inverse, quand le soleil est couché, il fait jour encore pendant environ une heure :)

 

Posté(e)
il y a 3 minutes, J3R3M a dit :

Cela faisait longtemps qu’on n’avait pas vu de scène aller jusqu’au bout, tiens

Oh, ce n'est pas si vieux.

il y a 3 minutes, J3R3M a dit :

Effectivement, les entrées en mode « up » et « down » sont lancées - ou non - en fonction de la lumière du jour

Pas top, cet été (et même bientôt avec le changement d'heure) quand notre réveil va sonner à 7h et que le soleil sera déjà debout, on n'aura plus droit à la lumière progressive alors que l'on sera dans le noir (volet fermés)?

 

Posté(e) (modifié)
il y a 12 minutes, Did a dit :

Pas top, cet été (et même bientôt avec le changement d'heure) quand notre réveil va sonner à 7h et que le soleil sera déjà debout, on n'aura plus droit à la lumière progressive alors que l'on sera dans le noir (volet fermés)?

 

Ah si, tout-à-fait. La scène se contente uniquement de détecter quand il fait jour afin d’agir sur les bons éléments (VD, Modules RGBW, Dimmer...)

Mais le réglage de ces éléments, notamment quand ils doivent s’allumer (seulement en cas de jour, seulement en cas de nuit, ou dans tous les cas) est paramétré par chaque utilisateur dans les réglages de début de scène :)

La scène ne prend aucune décision par elle-même, elle applique seulement les réglages paramétrés, en ayant « l’intelligence » de savoir s’il fait jour ou non, afin de satisfaire uniquement la volonté des utilisateurs :60:

Modifié par J3R3M
Posté(e)

 Donc ça veut dire qu'il faut paramétrer un FGRGB et un FGR, ensuite selon l'heure, il va lancer la lumière ou l'ouverture du volet progressive?

Si c'est le cas, j'ai encore les volets à tester, enfin un.

 

Posté(e)

@Did, admettons que tu aies deux entrées dans LightsList : un Roller Shutter et un F-RGBW.


Si tu souhaites que le F-RGBW ne s’allume que s’il fait encore nuit, mais que ça soit le Roller Shutter qui s’ouvre s’il fait jour :

- F-RGBW en mode « down »

- Roller Shutter en mode « up »
 

Si tu souhaites que le F-RGBW s’allume dans tous les cas, mais que le Roller Shutter ne s’ouvre que s’il fait jour :

- F-RGBW en mode « both »

- Roller Shutter en mode « up »

 

Si tu souhaites que le F-RGBW ne s’allume que s’il fait jour, mais que ça soit le Roller Shutter qui s’ouvre s’il fait nuit (intérêt très limité, mais c’est possible!) :

- F-RGBW en mode « up »

- Roller Shutter en mode « down »

 

Si tu souhaites que les F-RGBW et Roller Shutter s’ouvrent dans tous les cas, jours et nuits :

- F-RGBW en mode « both »

- Roller Shutter en mode « both »


C’est vraiment à la carte :12:

  • Upvote 1
Posté(e)

 Ah cool. donc on est pas mal là, et demain ça ne rigole plus, on lâche les beta c'est ça? :)

 

Posté(e)
il y a 5 minutes, Did a dit :

 Ah cool. donc on est pas mal là, et demain ça ne rigole plus, on lâche les beta c'est ça? :)

 

Effectivement, j’y compte bien!

il risque d’y avoir une prochaine version beta car je vais refaire des modifs... mais si cette beta fonctionne, elle risque de se transformer très rapidement en version 2 stable! :2:

  • Upvote 1
Posté(e)

Bon courage... J’en avais mis un en place pour du EnOcean... Je n’ai jamais réussi à en faire ce que je voulais :ph34r:

×
×
  • Créer...