Sélecteur non "cliquable"
Sélecteur non "cliquable"
Bonjour,
J'espère que vous vous portez bien...
J'ai profité du confinement pour me replonger dans ma domotique.
Et je rencontre un soucis pour rendre "cliquable" mes sélecteurs sur Monitor.
J'ai suivi à la lettre les différentes discussions trouvées pour commencer à débuguer.
https://easydomoticz.com/forum/viewtopi ... eur#p45785 et https://easydomoticz.com/forum/viewtopi ... tob#p56078
J'en suis donc au stade où j'ai bien un icône présent sur mon interface. Icone qui évolue en fonction de mes actions sur Domoticz. Mais si je clique l'icone sur monitor, rien ne se passe. Il ne semble pas être cliquable.
Pourriez-vous prendre 2 minutes pour m'aiguiller?
Par avance merci.
Prenez soin de vous et de vos proches.
Eddy
J'espère que vous vous portez bien...
J'ai profité du confinement pour me replonger dans ma domotique.
Et je rencontre un soucis pour rendre "cliquable" mes sélecteurs sur Monitor.
J'ai suivi à la lettre les différentes discussions trouvées pour commencer à débuguer.
https://easydomoticz.com/forum/viewtopi ... eur#p45785 et https://easydomoticz.com/forum/viewtopi ... tob#p56078
J'en suis donc au stade où j'ai bien un icône présent sur mon interface. Icone qui évolue en fonction de mes actions sur Domoticz. Mais si je clique l'icone sur monitor, rien ne se passe. Il ne semble pas être cliquable.
Pourriez-vous prendre 2 minutes pour m'aiguiller?
Par avance merci.
Prenez soin de vous et de vos proches.
Eddy
Re: Sélecteur non "cliquable"
Bonjour à tous,
Je me permets ce petit UP, car mon problème n'est pas résolu.
J'ai relu les différents sujets listés ci-dessus.
J'ai modifié le frontpage.js avec le "atob".
J'ai modifié l'index.html pour préciser frontpage.js en lieu et place de frontpage.mini.js, mais rien n'y fait.
J'ai toujours du base64 pour le LevelNames et le LevelActions de mon selecteur.
Je ne sais donc comment résoudre mon problème... Si vous avez une idée, je suis bien évidemment preneur.
Bonne soirée,
Eddy
Je me permets ce petit UP, car mon problème n'est pas résolu.
J'ai relu les différents sujets listés ci-dessus.
J'ai modifié le frontpage.js avec le "atob".
J'ai modifié l'index.html pour préciser frontpage.js en lieu et place de frontpage.mini.js, mais rien n'y fait.
J'ai toujours du base64 pour le LevelNames et le LevelActions de mon selecteur.
Je ne sais donc comment résoudre mon problème... Si vous avez une idée, je suis bien évidemment preneur.
Bonne soirée,
Eddy
Re: Sélecteur non "cliquable"
Bonjour,
Avez-vous résolu le problème depuis 2 ans bientôt ?
je découvre Monitor ces jours ci avec beaucoup de plaisir mais je me heurte au même problème même après avoir fait les modifications et changé de navigateur.
Quand je fais la commande RID , je retrouve bien cette chaine incohérente apparemment au niveau de LevelNames.
Est-ce la fonction "atob" qui ne fait pas ce qu'il faut ?
Si jamais, vous avez une réponse je suis preneur, merci d'avance
Paul
Avez-vous résolu le problème depuis 2 ans bientôt ?
je découvre Monitor ces jours ci avec beaucoup de plaisir mais je me heurte au même problème même après avoir fait les modifications et changé de navigateur.
Quand je fais la commande RID , je retrouve bien cette chaine incohérente apparemment au niveau de LevelNames.
Est-ce la fonction "atob" qui ne fait pas ce qu'il faut ?
Si jamais, vous avez une réponse je suis preneur, merci d'avance
Paul
Serveur domoticz : V: 2023.1 sur TVBOX Ubuntu 20.04.5
Python Version: 3.8.10
Plugins : Linky, Z4D plugin stable6-6.3.011, Xiaomi GW
Clé USB Zigbee Sonoff-E ; 40 Objets reconnus dont 5 thermostatics Haozee
10 Espeasy Wifi
Gw Xiaomi
Station Netatmo
Python Version: 3.8.10
Plugins : Linky, Z4D plugin stable6-6.3.011, Xiaomi GW
Clé USB Zigbee Sonoff-E ; 40 Objets reconnus dont 5 thermostatics Haozee
10 Espeasy Wifi
Gw Xiaomi
Station Netatmo
Re: Sélecteur non "cliquable"
J'ai trouvé ma réponse : il faut laisser 'Level ' et ne pas mettre LevelNames dans le second champ ...............
A plus
A plus
Serveur domoticz : V: 2023.1 sur TVBOX Ubuntu 20.04.5
Python Version: 3.8.10
Plugins : Linky, Z4D plugin stable6-6.3.011, Xiaomi GW
Clé USB Zigbee Sonoff-E ; 40 Objets reconnus dont 5 thermostatics Haozee
10 Espeasy Wifi
Gw Xiaomi
Station Netatmo
Python Version: 3.8.10
Plugins : Linky, Z4D plugin stable6-6.3.011, Xiaomi GW
Clé USB Zigbee Sonoff-E ; 40 Objets reconnus dont 5 thermostatics Haozee
10 Espeasy Wifi
Gw Xiaomi
Station Netatmo
Re: Sélecteur non "cliquable"
Bonjour,
J'ai le même soucis que vous je pense.
J'ai l'ancien version de domoticz ( 4.10717 ) couplé avec la vieille version de monitor que j'avais préparé a l'époque.
Jusqu'a présent il fonctionne très bien le sélecteur ( J'avais de mémoire changé la ligne de "atob" ).
Je suis en train de migrer sur une nouvelle version ( dernier version debian, dernier version domoticz et monitor ).
Je coince sur le sélecteur qui n'est pas cliquable .
J'ai aussi modifié la ligne atob car il affichais du base64 et cela est OK.
Voici les info du selecteur :
J'ai également tester avec un dimmer et On/OFF qui fonctionne pour enlever le doute.
Sur la console du navigateur :
Quelqu'un peux m'aider ?
J'ai le même soucis que vous je pense.
J'ai l'ancien version de domoticz ( 4.10717 ) couplé avec la vieille version de monitor que j'avais préparé a l'époque.
Jusqu'a présent il fonctionne très bien le sélecteur ( J'avais de mémoire changé la ligne de "atob" ).
Je suis en train de migrer sur une nouvelle version ( dernier version debian, dernier version domoticz et monitor ).
Je coince sur le sélecteur qui n'est pas cliquable .
Code : Tout sélectionner
['LED_Cuisine','Status', 'cell2_6', 'Cuisine','','','',''],
['RGB-Salon-1','Level', 'cell2_7', 'Lamp Salon 1','','','font-family:digital;font-size:60%',''],
Voici les info du selecteur :
Code : Tout sélectionner
{
"ActTime" : 1714469842,
"AstrTwilightEnd" : "21:31",
"AstrTwilightStart" : "03:40",
"CivTwilightEnd" : "20:10",
"CivTwilightStart" : "05:01",
"DayLength" : "14:07",
"NautTwilightEnd" : "20:48",
"NautTwilightStart" : "04:22",
"ServerTime" : "2024-04-30 10:37:22",
"SunAtSouth" : "12:35",
"Sunrise" : "05:32",
"Sunset" : "19:39",
"app_version" : "2024.4",
"result" :
[
{
"AddjMulti" : 1.0,
"AddjMulti2" : 1.0,
"AddjValue" : 0.0,
"AddjValue2" : 0.0,
"BatteryLevel" : 255,
"CustomImage" : 0,
"Data" : "Set Level: 10 %",
"Description" : "",
"DimmerType" : "none",
"Favorite" : 0,
"HardwareDisabled" : false,
"HardwareID" : 5,
"HardwareName" : "Interrupteur virtuel",
"HardwareType" : "Dummy (Does nothing, use for virtual switches only)",
"HardwareTypeVal" : 15,
"HaveDimmer" : true,
"HaveGroupCmd" : true,
"HaveTimeout" : false,
"ID" : "00014063",
"Image" : "Light",
"IsSubDevice" : false,
"LastUpdate" : "2024-04-30 10:10:10",
"Level" : 10,
"LevelActions" : "fHx8fA==",
"LevelInt" : 10,
"LevelNames" : "T2ZmfE9uIFdhcm0gMjUlfE9uIFdhcm0gNzUlfE9uIFdhcm0gMTAwJXxPbiBDb29sIDc1JQ==",
"LevelOffHidden" : false,
"MaxDimLevel" : 100,
"Name" : "RGB-Salon-1",
"Notifications" : "false",
"PlanID" : "0",
"PlanIDs" :
[
0
],
"Protected" : false,
"SelectorStyle" : 1,
"ShowNotifications" : true,
"SignalLevel" : "-",
"Status" : "Set Level: 10 %",
"StrParam1" : "",
"StrParam2" : "",
"SubType" : "Selector Switch",
"SwitchType" : "Selector",
"SwitchTypeVal" : 18,
"Timers" : "false",
"Type" : "Light/Switch",
"TypeImg" : "Light",
"Unit" : 1,
"Used" : 1,
"UsedByCamera" : false,
"XOffset" : "0",
"YOffset" : "0",
"idx" : "19"
}
],
"status" : "OK",
"title" : "Devices"
}
Sur la console du navigateur :
Code : Tout sélectionner
Uncaught ReferenceError: i is not defined
at ShowSelector (frontpage.js:1952:9)
at HTMLSpanElement.onclick (index.html:1:1)
ShowSelector @ frontpage.js:1952
onclick @ index.html:1
Quelqu'un peux m'aider ?
Re: Sélecteur non "cliquable"
Je me répond a moi et a vous partager :
Je ne sais pas si j'ai bien fait mais cela fonctionne :
================================
Le problème dans votre code est que la variable i dans la boucle for n'est pas déclarée explicitement, ce qui peut causer l'erreur Uncaught ReferenceError: i is not defined dans des environnements stricts ou quand vous exécutez votre code en mode strict ('use strict';). En JavaScript, si vous n'utilisez pas le mot-clé var, let, ou const pour déclarer une variable, cette variable est considérée comme globale, ce qui peut conduire à des comportements imprévus ou des erreurs si le mode strict est activé.
Pour corriger cette erreur, vous devriez déclarer i avec var, let, ou const dans la boucle for. Voici comment vous pourriez modifier le code pour résoudre l'erreur :
javascript
Explications supplémentaires :
Utilisation de var vs let vs const :
var a une portée de fonction, ce qui signifie que la variable sera accessible dans toute la fonction.
let et const ont une portée de bloc ({}), ce qui est généralement plus préférable car cela réduit la possibilité de conflits de noms et d'autres bugs liés à la portée. Dans votre cas, let serait probablement le meilleur choix pour la déclaration de i dans la boucle for car cela limite sa portée à la boucle elle-même.
Si vous remplacez var par let dans la déclaration de la boucle for, le code sera :
javascript
Copy code
Source : ChatGPT pour ne pas mentir
Je ne sais pas si j'ai bien fait mais cela fonctionne :
================================
Le problème dans votre code est que la variable i dans la boucle for n'est pas déclarée explicitement, ce qui peut causer l'erreur Uncaught ReferenceError: i is not defined dans des environnements stricts ou quand vous exécutez votre code en mode strict ('use strict';). En JavaScript, si vous n'utilisez pas le mot-clé var, let, ou const pour déclarer une variable, cette variable est considérée comme globale, ce qui peut conduire à des comportements imprévus ou des erreurs si le mode strict est activé.
Pour corriger cette erreur, vous devriez déclarer i avec var, let, ou const dans la boucle for. Voici comment vous pourriez modifier le code pour résoudre l'erreur :
javascript
Code : Tout sélectionner
Copy code
function ShowSelector(idx, mots, LevelOffHidden, Protected) {
var levels = mots.split("|");
$("#popup_selector").html("");
for (var i = 0; i < levels.length; i++) { // Utilisation de var pour déclarer i
if ((LevelOffHidden && levels[i] != 'Off') || !LevelOffHidden) {
$("#popup_selector").append(['<span onclick="SwitchSelector(', idx, ',', 10 * i, ',', Protected, ')">', levels[i], '</span><br>'].join(''));
}
}
lightbox_open('selector', 25000);
}
Explications supplémentaires :
Utilisation de var vs let vs const :
var a une portée de fonction, ce qui signifie que la variable sera accessible dans toute la fonction.
let et const ont une portée de bloc ({}), ce qui est généralement plus préférable car cela réduit la possibilité de conflits de noms et d'autres bugs liés à la portée. Dans votre cas, let serait probablement le meilleur choix pour la déclaration de i dans la boucle for car cela limite sa portée à la boucle elle-même.
Si vous remplacez var par let dans la déclaration de la boucle for, le code sera :
javascript
Copy code
Code : Tout sélectionner
for (let i = 0; i < levels.length; i++) {
if ((LevelOffHidden && levels[i] != 'Off') || !LevelOffHidden) {
$("#popup_selector").append(['<span onclick="SwitchSelector(', idx, ',', 10 * i, ',', Protected, ')">', levels[i], '</span><br>'].join(''));
}
}
Source : ChatGPT pour ne pas mentir
Re: Sélecteur non "cliquable"
Bonjour foudepc83,
Merci de cette réponse, je suis aussi dans le même cas pour les "Switch selector" depuis le passage sur les dernières versions de domoticz (2024.4). J'avais déjà intégré toutes les modifications json dans monitor mais le selector ne fonctionnait plus.
A priori le remplacement par l'ajout du "let" fonctionne pour moi.
Merci de ton aide.
Alain
Merci de cette réponse, je suis aussi dans le même cas pour les "Switch selector" depuis le passage sur les dernières versions de domoticz (2024.4). J'avais déjà intégré toutes les modifications json dans monitor mais le selector ne fonctionnait plus.
A priori le remplacement par l'ajout du "let" fonctionne pour moi.
Merci de ton aide.
Alain