Allumage à temporisations multiples


A - Exposition du problème


On a un éclairage extérieur, normalement utilisé brièvement, mais qu’on oublie souvent d’éteindre. On veut automatiser l’extinction au bout d’un temps donné si on ne la fait pas manuellement. Toutefois, si ce temps est normalement très court, on veut se garder la possibilité d’un allumage nettement plus long.
La difficulté réside dans le fait qu’on ne dispose pour passer les ordres que du bouton d’allumage qui sera le bouton marche/arrêt du dispositif.

 

We have an outdoor lighting, normally used briefly, but which we often forget to turn off. We want to automate the extinction after a given time if we do not do it manually. However, if this time is normally very short, we want to keep the possibility of a much longer lighting time.
The difficulty lies in the fact that only the on/off button of the device, is available for issuing commands.


B - Le principe


Les ordres sont donnés par des commutations marche/arrêt. L’alimentation étant interrompu entre deux ordres, il faut que le système garde temporairement la mémoire de ce qui a été fait précédemment sans consommation de courant. Une mémoire flash ne convient pas car la valeur enregistrée doit retomber à 0 d’elle même au bout d’un certain temps. Ceci est obtenu par la charge d’un condensateur. La tension aux bornes du condensateur, au redémarrage, donne une indication de ce qui a été fait précédemment.
Dans le cas général, le circuit n’a pas été utilisé depuis suffisament  longtemps pour que le condensateur soit entièrement déchargé. Le microcontrôleur mesure, dès la mise en marche, la tension Vc aux bornes du condensateur. Celle-ci étant inférieure à un seuil (1,4V) le microcontrôleur « décide » d’allumer la lampe pendant 5mn.
Toutefois, le condensateur est chargé à Vc = 2V immédiatement , puis au bout de 5s sa tension monte brusquement à 3V et 5s plus tard à 4V.
Si on coupe le circuit immédiatement après l’allumage, la tension Vc sera donc de 2V. Au ré-allumage, le microcontrôleur constatant cette tension décidera d’allumer pendant 30mn.
Si on attend entre 5s et 10s avant de couper puis rallumer la tension Vc sera de 3V et l’éclairage fonctionnera pendant 1h.
Si on attend au-delà de 10s, avant de couper puis rallumer la tension Vc sera de 4V. L’allumage pourra se prolonger pendant 2h.


C - Le circuit

schema du circuit électronique

 

photoCircuit

 

 

 

On utilise une carte Arduino Uno couplée à un petit circuit réalisé avec une plaque à trous.
Trois sorties digitales sont utilisées pour la charge du condensateur aux trois tensions prévues (2V, 3V et 4V). R1 et R3 constituent un pont diviseur. Compte tenu des chutes de tension dans D1 et D4 il reste environ 2V pour charger le condensateur lorsque la sortie S2 est au niveau haut. Avec D2, R2, R3 et D4 la sortie S3 délivre un peu plus de 3V tandis qu’avec D3 et D4, S4 fourni 4V. Les diodes D1, D2, D3 empêchent les sorties de débiter les unes dans les autres.
La charge du condensateur se fait à travers La diode D4 et la résistance R5. La diode D4 empêche le condensateur de se décharger rapidement quand on coupe l’alimentation.
Une entrée analogique reçoit la tension du condensateur pour mesure. Lorsque la carte Arduino n’est plus alimentée, l’entrée analogique présente une impédance quasi nulle qui déchargerait rapidement le condensateur. La constante de temps de décharge est maintenue à 22s grâce à la résistance R4 (220kOhm) interposée entre le condensateur et l’entrée analogique.
Une quatrième sortie digitale fourni le signal commandant l’allumage. Sa tension est appliquée sur la base d’un transistor à travers une résistance de 1KOhm. Le transistor commande un relais électromagnétique classique qui permet d’appliquer le 230V aux lampes quand il est excité.

 

D - Le programme


D.I - Organigramme


Pour plus de simplicité, l’organigramme ci-dessous n’inclut pas les clignotements de la led 13 ajoutés pour faciliter le contrôle.

allum ext organi

D.II - Le programme


1 // allumage de lampes à durées programmées (4 durées possibles)
2 const int s2V = 2;
3 const int s3V = 3;
4 const int s4V = 4;
5 const int cmdTransistor = 5;
6 const int led13 = 13;
7 int eAna = A5;
8 int vCondo = 0;
9 const int LED13 = 13;
10 void setup() {
11 // put your setup code here, to run once:
12 pinMode(s2V, OUTPUT);
13 pinMode(s3V, OUTPUT);
14 pinMode(s4V, OUTPUT);
15 pinMode(LED13, OUTPUT);
16 pinMode(cmdTransistor, OUTPUT);
17 // tout à 0
18 digitalWrite(s2V, 0);
19 digitalWrite(s3V, 0);
20 digitalWrite(s4V, 0);
21 digitalWrite(LED13, 0);
22 }
23
24 void loop() { // début loop """""""""""""""""""""""""""""""""""""""""""""
25 //allumer la lampe
26 digitalWrite(cmdTransistor, 1);
27 //Mesurer V condo
28 vCondo = analogRead(eAna);
29 //si vCondo < 1,4V (5V => 1024 ;1V => 205) ON PART POUR 5MN
30 if (vCondo < 287)
31 {
32 digitalWrite(s2V, 1); // Condo à 2V pendant les 5 premières secondes
33 digitalWrite(LED13, 1);
34 delay(1000);
35 digitalWrite(LED13, 0); // clignotement led 13 1s
36 delay(4000);
37 digitalWrite(s2V, 0);
38 digitalWrite(s3V, 1); // Condo à 3V de la 5e à la 10e seconde
39 digitalWrite(LED13, 1);
40 delay(1000);
41 digitalWrite(LED13, 0); // clignotement led 13 1s
42 delay(4000);
43 digitalWrite(s3V, 0);
44 digitalWrite(s4V, 1); // Condo à 4V après le 10e seconde
45 digitalWrite(LED13, 1);
46 delay(5000); // allumage led 5s
47 digitalWrite(LED13, 0);
48 // debut du temps imparti #########
49 for (int i=1; i< 30 ; i++) // le temps sera 5mn
50 {
51 digitalWrite(LED13, 1);
52 delay(200);
53 digitalWrite(LED13, 0);//simples clignot. brefs toutes les 10s ==
54 delay(9800);
55 }
56 }
57
58 else if (vCondo < 470) //sinon si vCondo < 2,3V ON PART POUR 30mn
59 {
60 delay(5000);
61 digitalWrite(s3V, 1); // Condo à 3V
62 digitalWrite(LED13, 1);
63 delay(1000);
64 digitalWrite(LED13, 0); // clignotement led 13 1seconde
65 delay(4000);
66 digitalWrite(s4V, 1); // Condo à 4V
67 digitalWrite(LED13, 1);
68 delay(5000);
69 digitalWrite(LED13, 0); // clignotement led 13 5secondes
70
71 // compter 30mn début du temps imparti ####################
72 for (int i=1; i< 181 ; i++) // le temps sera 30mn (180 tours de 10 secondes)
73 {
74 for (int j=1; j<3 ; j++)
75 {
76 digitalWrite(LED13, 1);
77 delay(100);
78 digitalWrite(LED13, 0); // doubles clignotements brefs led 13===
79 delay(500);
80 }
81
82 delay(8800); // 10 000 - 2(500 + 100)
83 }
84 }
85 else if (vCondo < 635) // sinon si vCondo < 3.1 V ON PART POUR 1h
86 {
87 delay(10000);
88 digitalWrite(s4V, 1); // Condo à 4V
89 digitalWrite(LED13, 1);
90 delay(5000);
91 digitalWrite(LED13, 0); // clignotement led 13 5secondes
92 // compter 1h début du délais imparti ##########################
93 for (int i=1; i< 361 ; i++) // le temps sera 1h (360 tours de 10secondes)
94 {
95 for (int j=1; j<4 ; j++)
96 {
97 digitalWrite(LED13, 1);
98 delay(100);
99 digitalWrite(LED13, 0); // triples clignotements brefs led 13 =====
100 delay(500);
101 }
102 delay(8200); // 10 000 - 3(500 + 100)
103 }
104 }
105 else
106 {
107 // compter 2h début du délais imparti #####################
108 for (int i=1; i< 721 ; i++) // le temps sera 2h (720 tours de 10secondes)
109 {
110 for (int j=1; j<5 ; j++)
111 {
112 digitalWrite(LED13, 1);
113 delay(100);
114 digitalWrite(LED13, 0);// quadruples clignot. chaque 10 secondes =====
115 delay(500);
116 }
117 delay(7600); // 10 000 - 4(500 + 100)
118 }
119 } // fin des "if / else" --------------------------------------------
120 //éteindre la lampe
121 digitalWrite(cmdTransistor, 0);
122 int i = 0;
123 while ( i == 0) // boucle infinie la led clignote 5 fois chaque 10 secondes
124 {
125 delay(7600);
126 for (int j=1; j<6 ; j++)
127 {
128 digitalWrite(LED13, 1);
129 delay(100);
130 digitalWrite(LED13, 0);// quintuples clignot. toutes les 10s =====
131 delay(500);
132 }
133 }
134 } // fin de loop """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
135

****© M Guignard ******

Si cet article vous a plu je vous invite à faire un petit geste pour me soutenir

{marcobuymeabeer}

 

Comments (0)

    Attach images by dragging & dropping or by selecting them.
    The maximum file size for uploads is 10MB. Only gif,jpg,png files are allowed.
     
    The maximum number of 3 allowed files to upload has been reached. If you want to upload more files you have to delete one of the existing uploaded files first.
    The maximum number of 3 allowed files to upload has been reached. If you want to upload more files you have to delete one of the existing uploaded files first.
    Posting as

    Comments powered by CComment

    Settings7.916MBMemory Usage897msRequest Duration
    Theme
    Open Button Position
    Hide Empty Tabs
    Autoshow
    Reset to defaults
    Joomla! Version5.3.0
    PHP Version8.3.21
    Identityguest
    Response200
    Templatecassiopeia
    Database
    Server
    mysql
    Version
    10.11.11-MariaDB-0+deb12u1
    Collation
    utf8mb3_general_ci
    Conn Collation
    utf8mb4_general_ci
    $_GET
    array:3 [ "catid" => "9" "id" => "37:multi-delay-lighting" "view" => "article" ]
    $_POST
    []
    $_SESSION
    array:1 [ "joomla" => "***redacted***" ]
    $_COOKIE
    []
    $_SERVER
    array:51 [ "PATH" => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" "PP_CUSTOM_P...
    session
    array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1747565036 "last" => 1747565036...
    registry
    array:3 [ "data" => [] "initialized" => false "separator" => "." ]
    user
    array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
    plg_system_webauthn
    array:1 [ "returnUrl" => "https://www.doubsastuces.fr/index.php/bricolage" ]
    • afterLoad (353.68KB) (109ms)
    • afterInitialise (2.17MB) (192ms)
    • afterRoute (91.71KB) (3.55ms)
    • beforeRenderComponent com_content (180.21KB) (12.87ms)
    • Before Access::preloadComponents (all components) (180.25KB) (31.02ms)
    • After Access::preloadComponents (all components) (120.7KB) (4.33ms)
    • Before Access::preloadPermissions (com_content) (1.66KB) (31μs)
    • After Access::preloadPermissions (com_content) (85.53KB) (1.5ms)
    • Before Access::getAssetRules (id:111 name:com_content.article.37) (6.65KB) (24μs)
    • After Access::getAssetRules (id:111 name:com_content.article.37) (71.56KB) (1.21ms)
    • Before Access::getAssetRules (id:305 name:com_comment) (1.6MB) (230ms)
    • After Access::getAssetRules (id:305 name:com_comment) (7.12KB) (61μs)
    • afterRenderComponent com_content (408B) (27.52ms)
    • afterDispatch (2.27KB) (637μs)
    • beforeRenderRawModule mod_login (Connexion) (28.55KB) (4.72ms)
    • afterRenderRawModule mod_login (Connexion) (114.54KB) (16.19ms)
    • beforeRenderRawModule mod_tags_popular (Tags populaires) (848B) (77μs)
    • afterRenderRawModule mod_tags_popular (Tags populaires) (87.5KB) (15.56ms)
    • beforeRenderRawModule mod_breadcrumbs (Fil de navigation) (44.3KB) (2.18ms)
    • afterRenderRawModule mod_breadcrumbs (Fil de navigation) (12.92KB) (4.79ms)
    • beforeRenderRawModule mod_search (Recherche) (3.93KB) (3.14ms)
    • afterRenderRawModule mod_search (Recherche) (16.07KB) (3.64ms)
    • beforeRenderRawModule mod_menu (Menu principal) (1.66KB) (3.41ms)
    • afterRenderRawModule mod_menu (Menu principal) (72.09KB) (16.59ms)
    • beforeRenderModule mod_breadcrumbs (Fil de navigation) (1.21MB) (13.44ms)
    • afterRenderModule mod_breadcrumbs (Fil de navigation) (4.53KB) (3.1ms)
    • beforeRenderModule mod_search (Recherche) (112B) (4.25ms)
    • afterRenderModule mod_search (Recherche) (3.31KB) (464μs)
    • beforeRenderModule mod_login (Connexion) (223.77KB) (67.57ms)
    • afterRenderModule mod_login (Connexion) (10.42KB) (385μs)
    • beforeRenderModule mod_tags_popular (Tags populaires) (752B) (27μs)
    • afterRenderModule mod_tags_popular (Tags populaires) (1.76KB) (244μs)
    • beforeRenderModule mod_articles_latest (Derniers articles) (20.25KB) (2.64ms)
    • afterRenderModule mod_articles_latest (Derniers articles) (7.7KB) (632μs)
    • beforeRenderModule mod_menu (Menu principal) (65.66KB) (20.3ms)
    • afterRenderModule mod_menu (Menu principal) (6.09KB) (767μs)
    • beforeRenderRawModule mod_menu (Menu utilisateur) (59.95KB) (19.83ms)
    • afterRenderRawModule mod_menu (Menu utilisateur) (1008B) (2.28ms)
    • beforeRenderModule mod_menu (Menu utilisateur) (720B) (10μs)
    • afterRenderModule mod_menu (Menu utilisateur) (1.66KB) (522μs)
    • afterRender (1.2MB) (73.46ms)
    • 1 x Before Access::getAssetRules (id:305 name:com_comment) (1.6MB) (25.68%)
      230ms
      1 x afterInitialise (2.17MB) (21.35%)
      192ms
      1 x afterLoad (353.68KB) (12.1%)
      109ms
      1 x afterRender (1.2MB) (8.19%)
      73.46ms
      1 x beforeRenderModule mod_login (Connexion) (223.77KB) (7.53%)
      67.57ms
      1 x Before Access::preloadComponents (all components) (180.25KB) (3.46%)
      31.02ms
      1 x afterRenderComponent com_content (408B) (3.07%)
      27.52ms
      1 x beforeRenderModule mod_menu (Menu principal) (65.66KB) (2.26%)
      20.30ms
      1 x beforeRenderRawModule mod_menu (Menu utilisateur) (59.95KB) (2.21%)
      19.83ms
      1 x afterRenderRawModule mod_menu (Menu principal) (72.09KB) (1.85%)
      16.59ms
      1 x afterRenderRawModule mod_login (Connexion) (114.54KB) (1.8%)
      16.19ms
      1 x afterRenderRawModule mod_tags_popular (Tags populaires) (87.5KB) (1.73%)
      15.56ms
      1 x beforeRenderModule mod_breadcrumbs (Fil de navigation) (1.21MB) (1.5%)
      13.44ms
      1 x beforeRenderComponent com_content (180.21KB) (1.43%)
      12.87ms
      1 x afterRenderRawModule mod_breadcrumbs (Fil de navigation) (12.92KB) (0.53%)
      4.79ms
      1 x beforeRenderRawModule mod_login (Connexion) (28.55KB) (0.53%)
      4.72ms
      1 x After Access::preloadComponents (all components) (120.7KB) (0.48%)
      4.33ms
      1 x beforeRenderModule mod_search (Recherche) (112B) (0.47%)
      4.25ms
      1 x afterRenderRawModule mod_search (Recherche) (16.07KB) (0.41%)
      3.64ms
      1 x afterRoute (91.71KB) (0.4%)
      3.55ms
      1 x beforeRenderRawModule mod_menu (Menu principal) (1.66KB) (0.38%)
      3.41ms
      1 x beforeRenderRawModule mod_search (Recherche) (3.93KB) (0.35%)
      3.14ms
      1 x afterRenderModule mod_breadcrumbs (Fil de navigation) (4.53KB) (0.35%)
      3.10ms
      1 x beforeRenderModule mod_articles_latest (Derniers articles) (20.25KB) (0.29%)
      2.64ms
      1 x afterRenderRawModule mod_menu (Menu utilisateur) (1008B) (0.25%)
      2.28ms
      1 x beforeRenderRawModule mod_breadcrumbs (Fil de navigation) (44.3KB) (0.24%)
      2.18ms
      1 x After Access::preloadPermissions (com_content) (85.53KB) (0.17%)
      1.50ms
      1 x After Access::getAssetRules (id:111 name:com_content.article.37) (71.56KB) (0.13%)
      1.21ms
      1 x afterRenderModule mod_menu (Menu principal) (6.09KB) (0.09%)
      767μs
      1 x afterDispatch (2.27KB) (0.07%)
      637μs
      1 x afterRenderModule mod_articles_latest (Derniers articles) (7.7KB) (0.07%)
      632μs
      1 x afterRenderModule mod_menu (Menu utilisateur) (1.66KB) (0.06%)
      522μs
      1 x afterRenderModule mod_search (Recherche) (3.31KB) (0.05%)
      464μs
      1 x afterRenderModule mod_login (Connexion) (10.42KB) (0.04%)
      385μs
      1 x afterRenderModule mod_tags_popular (Tags populaires) (1.76KB) (0.03%)
      244μs
      1 x beforeRenderRawModule mod_tags_popular (Tags populaires) (848B) (0.01%)
      77μs
      1 x After Access::getAssetRules (id:305 name:com_comment) (7.12KB) (0.01%)
      61μs
      1 x Before Access::preloadPermissions (com_content) (1.66KB) (0%)
      31μs
      1 x beforeRenderModule mod_tags_popular (Tags populaires) (752B) (0%)
      27μs
      1 x Before Access::getAssetRules (id:111 name:com_content.article.37) (6.65KB) (0%)
      24μs
      1 x beforeRenderModule mod_menu (Menu utilisateur) (720B) (0%)
      10μs
    31 statements were executed, 6 of which were duplicates, 25 unique60.39ms127.75KB
    • SELECT @@SESSION.sql_mode;169μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:259Copy
    • SELECT `data` FROM `sn27j_session` WHERE `session_id` = ?849μs1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:250Copy
    • SELECT `session_id` FROM `sn27j_session` WHERE `session_id` = :session_id LIMIT 1166μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
    • INSERT INTO `sn27j_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)2.05ms944BParams/libraries/src/Session/MetadataManager.php:260Copy
    • SELECT `id`,`rules` FROM `sn27j_viewlevels`262μs976B/libraries/src/Access/Access.php:955Copy
    • SELECT `b`.`id` FROM `sn27j_usergroups` AS `a` LEFT JOIN `sn27j_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest294μs1.33KBParams/libraries/src/Access/Access.php:868Copy
    • SELECT `id`,`name`,`rules`,`parent_id` FROM `sn27j_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40,:preparedArray41,:preparedArray42)3.38ms7.56KBParams/libraries/src/Access/Access.php:357Copy
    • SELECT `id`,`name`,`rules`,`parent_id` FROM `sn27j_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 01.01ms4.48KBParams/libraries/src/Access/Access.php:301Copy
    • SHOW FULL COLUMNS FROM `sn27j_content`6.66ms2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:539Copy
    • UPDATE `sn27j_content` SET `hits` = (`hits` + 1) WHERE `id` = '37'2.66ms48B/libraries/src/Table/Table.php:1348Copy
    • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `sn27j_content` AS `a` INNER JOIN `sn27j_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `sn27j_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `sn27j_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `sn27j_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `sn27j_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)2.79ms22.13KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
    • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `sn27j_categories` AS `s` INNER JOIN `sn27j_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`2.34ms3.94KBParams/libraries/src/Categories/Categories.php:375Copy
    • SELECT `m`.`tag_id`,`t`.* FROM `sn27j_contentitem_tag_map` AS `m` INNER JOIN `sn27j_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)974μs3.97KBParams/libraries/src/Helper/TagsHelper.php:388Copy
    • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `sn27j_categories` AS `s` INNER JOIN `sn27j_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`698μs3.94KBParams/libraries/src/Categories/Categories.php:375Copy
    • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM sn27j_fields AS a LEFT JOIN `sn27j_languages` AS l ON l.lang_code = a.language LEFT JOIN sn27j_users AS uc ON uc.id=a.checked_out LEFT JOIN sn27j_viewlevels AS ag ON ag.id = a.access LEFT JOIN sn27j_users AS ua ON ua.id = a.created_user_id LEFT JOIN sn27j_fields_groups AS g ON g.id = a.group_id LEFT JOIN `sn27j_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2)) AND `a`.`access` IN (:preparedArray3,:preparedArray4)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray5,:preparedArray6)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC4.93ms4.75KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
    • SELECT `a`.`id`,`a`.`title`,`a`.`catid`,`a`.`language`, CASE WHEN CHAR_LENGTH(`a`.`alias`) != 0 THEN CONCAT_WS(':', `a`.`id`, `a`.`alias`) ELSE a.id END AS `slug`, CASE WHEN CHAR_LENGTH(`cc`.`alias`) != 0 THEN CONCAT_WS(':', `cc`.`id`, `cc`.`alias`) ELSE cc.id END AS `catslug` FROM `sn27j_content` AS `a` LEFT JOIN `sn27j_categories` AS `cc` ON `cc`.`id` = `a`.`catid` WHERE `a`.`catid` = :catid AND `a`.`state` = :state AND `a`.`access` IN (:preparedArray1,:preparedArray2) AND (`publish_up` IS NULL OR `publish_up` <= :nowDate1) AND (`publish_down` IS NULL OR `publish_down` >= :nowDate2) ORDER BY CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END DESC2.94ms1.75KBParams/plugins/content/pagenavigation/src/Extension/PageNavigation.php:205Copy
    • SELECT * FROM `sn27j_comment_setting` WHERE `component`='com_content'1.1ms1.94KB/administrator/components/com_comment/library/config.php:85Copy
    • SELECT * FROM sn27j_comment_queue WHERE status = 0 ORDER BY created ASC LIMIT 51.81ms1.27KB/components/com_comment/helpers/queue.php:40Copy
    • SELECT COUNT(*) FROM sn27j_comment WHERE contentid='37' AND component='com_content' AND published=1970μs536B/components/com_comment/models/comment.php:152Copy
    • SELECT f.*, c.catid as catid FROM sn27j_compojoom_customfields as f LEFT JOIN sn27j_compojoom_customfields_cats AS c ON f.id = c.compojoom_customfields_id WHERE `f`.`show`='all' AND `f`.`enabled` = '1' AND `f`.`component` = 'com_comment'977μs2.39KB/libraries/compojoom/model/customfieldsconfig.php:51Copy
    • SELECT f.* FROM sn27j_compojoom_customfields AS f INNER JOIN sn27j_compojoom_customfields_cats AS c ON f.id = c.compojoom_customfields_id WHERE `f`.`show`='category' AND `c`.`catid` IN ('1') AND `f`.`enabled` = '1' AND `f`.`component` = 'com_comment'285μs2.36KB/libraries/compojoom/model/customfieldsconfig.php:70Copy
    • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `sn27j_modules` AS `m` LEFT JOIN `sn27j_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `sn27j_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`4.47ms1.94KBParams/libraries/src/Cache/Controller/CallbackController.php:120Copy
    • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `sn27j_categories` AS `s` INNER JOIN `sn27j_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`812μs3.94KBParams/libraries/src/Categories/Categories.php:375Copy
    • SELECT MAX(`tag_id`) AS `tag_id`,COUNT(*) AS `count`,MAX(`t`.`title`) AS `title`,MAX(`t`.`access`) AS `access`,MAX(`t`.`alias`) AS `alias`,MAX(`t`.`params`) AS `params`,MAX(`t`.`language`) AS `language` FROM `sn27j_contentitem_tag_map` AS `m` INNER JOIN `sn27j_ucm_content` AS `ucm` ON `m`.`content_item_id` = `ucm`.`core_content_item_id` AND `m`.`type_id` = `ucm`.`core_type_id` INNER JOIN `sn27j_categories` AS `cat` ON `ucm`.`core_catid` = `cat`.`id` INNER JOIN `sn27j_tags` AS `t` ON `tag_id` = `t`.`id` INNER JOIN `sn27j_ucm_content` AS `c` ON `m`.`core_content_id` = `c`.`core_content_id` WHERE `t`.`access` IN (:preparedArray1,:preparedArray2) AND `t`.`published` = 1 AND `cat`.`published` > 0 AND `m`.`type_alias` = `c`.`core_type_alias` AND `c`.`core_state` = 1 AND (`c`.`core_access` IN (:preparedArray3,:preparedArray4) OR `c`.`core_access` = 0) AND (`c`.`core_publish_up` IS NULL OR `c`.`core_publish_up` = :nullDate2 OR `c`.`core_publish_up` <= :nowDate2) AND (`c`.`core_publish_down` IS NULL OR `c`.`core_publish_down` = :nullDate3 OR `c`.`core_publish_down` >= :nowDate3) GROUP BY `tag_id`,`t`.`title`,`t`.`access`,`t`.`alias` ORDER BY `count` DESC LIMIT 107.4ms1.81KBParams/modules/mod_tags_popular/src/Helper/TagsPopularHelper.php:188Copy
    • SELECT `alias`,`catid` FROM sn27j_content WHERE `id` = :key351μs1.37KBParams/libraries/src/Component/Router/Rules/PreprocessRules.php:123Copy
    • SELECT * FROM `sn27j_schemaorg` WHERE `itemId` = :itemId AND `context` = :context1.12ms1.55KBParams/plugins/system/schemaorg/src/Extension/Schemaorg.php:406Copy
    • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `sn27j_content` AS `a` INNER JOIN `sn27j_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `sn27j_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `sn27j_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `sn27j_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `sn27j_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)840μs22.17KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
    • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `sn27j_content` AS `a` INNER JOIN `sn27j_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `sn27j_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `sn27j_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `sn27j_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `sn27j_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)682μs22.17KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
    • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `sn27j_scheduler_tasks` AS `a` WHERE `a`.`state` = 1426μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:517Copy
    • SELECT `session_id` FROM `sn27j_session` WHERE `session_id` = ?362μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:277Copy
    • UPDATE `sn27j_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?6.62ms592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:301Copy