Aller au contenu

mprinfo

Membres confirmés
  • Compteur de contenus

    14 385
  • Inscription

  • Dernière visite

  • Jours gagnés

    249

Tout ce qui a été posté par mprinfo

  1. @Pépite tu as des soucis avec GEA pour fayoter avec Steven @Steven désolé pour ce tuto. J'ai pas demander car c'est pas du code. je pensé que quelqu'un allait le faire, j'ai attendu quelques jours pour voir et rien. A priori on préfère lire les tutos plutôt que de les faire
  2. @steven je préfére avoir Parkinson qu' Alzeihmer. Il vaut mieux renverser un peu le contenu de son verre plutôt que d'oublier de le boire Personnellement je n'ai que 64ko de mémoire comme mon très chers commodore 64 et ça me suffit largement Si je ne me trompe pas l'informatique fonctionne toujours avec des 0 ou des 1 On ne fait que rajouter des couches et des couches depuis des années 1 cÅ“ur, 2 cÅ“ur, 4 cÅ“ur etc.. moi j'en ai qu'un et il est malade Pour exemple le Lua a bien été écrit en C si je ne me trompe pas et le C en Hexa Quand je vois la taille d'un script pour écrire un texte sur l'écran ça me fait doucement rire et oui il faudrait connaitre l'adressage de l’écran savoir ou mettre le texte etc.. pas simple pour Monsieur tous le monde Je pense même que pour la V5 il va falloir ajouter de la RAM et overclocker ou changer le CPU
  3. Meme pas un proliant ? Dommage j'aurais pu t'aider àle configurer mdr Envoyé avec mon SmartPhone
  4. Ben moi je m'éclaire a la bougie et avec un bon verre de mirabelle il fait toujours nuit euh va falloir que j'installe un smoke sensor lol Envoyé avec mon SmartPhone
  5. Euh j'ai même pas fais attention a cela Envoyé avec mon SmartPhone
  6. Normal je suis en congé lol Envoyé avec mon SmartPhone
  7. Une solution a ton problème 1 vélo avec une génératrice Vu que tu as 3 monstres ça les calmerai lol Par contre evite le verre de rouge pour augmenter la production électrique mdr Envoyé avec mon SmartPhone
  8. Il y a 3 types d'optimisation. la mémoire, le temps processeur le temps du développeur. Une bonne application prend en compte ces 3 critères en essayant de faire un bon compromis entre les 3. Voici donc une petite analyse sur votre code ... attention, je suis volontairement très très critique juste pour essayer d'aider. Perso, la plus part de mon code n'est pas optimiser ainsi, voir pas du tout . . Optimisation mémoire Chaque variable déclarée pend une infime place en mémoire (son adresse) donc si on a pas besoin de la réutiliser ou de la maintenir ... on en fait pas Une variable utilisée qu'une seule fois ne sert donc à rien : exemple local message = string.format("La box a démarré le %s a %s", os.date("%d/%m/%Y"), os.date("%R")) EnvoiPush(message) On fait directement : EnvoiPush(string.format("La box a démarré le %s a %s", os.date("%d/%m/%Y"), os.date("%R"))) . . Optimisation temps processeur La démarche a déjà été faite .. bravo. En effet, certaine opération prenne du temps a être exécutée, il faut donc éviter de demander 2 fois le même calcul pour rien. Exemple : if ( os.date("%H:%M", os.time())== lever ) or ( os.date("%H:%M", os.time()) == coucher ) then On voit bien qu'on demande au processeur de calculer 2 fois l'heure actuelle alors que ce qui a été fait local osHeure = os.date("%H:%M", os.time()) if ( osHeure == lever ) or ( osHeure == coucher ) then est bien moins coà»teux puisque nous divisons simplement pas 2 le temps processeur. Bon ok, on passe de 0.00002 sec à 0.00001 sec Mais c'est un exemple. Optimisation développeur Moins il y a de code a maintenir mieux c'est. Donc vu que ceci : if (heure >= lever) and (heure < coucher) then valeur = "Jour" end revient au même que ceci (dans ce contexte) if ( OsHeure == Lever ) then Valeur = "Jour" else Valeur = "Nuit" end On extrait tout cela et on en fait une méthode (function) : function traitement(lever, coucher, heure) local valeur = "Nuit" -- test si on est le jour ou la nuit if (heure >= lever) and (heure < coucher) then valeur = "Jour" end ... end . . Optimisation bonus ... optimisation pour l'utilisateur On remonte tout en début du code, les variables, traitements que l'utilisateurs doit modifier afin que ce dernier n'aie pas a chercher dans le code la ligne X ou Y. Donc on met ce ci tout en haut : local NomVG = "Jour_Nuit" local IdTel = 181 On obtient donc ceci : --[[ %% autostart --]] local NomVG = "Jour_Nuit" local IdTel = 181 ---------------------------------------------------------------------- -- Envoi d'un Push pour avertir que le box à démarrer ou redémarrer -- ---------------------------------------------------------------------- function EnvoiPush(Message) fibaro:debug(Message) fibaro:call(IdTel, "sendPush", Message) end --------------------------------------------------- -- Mise a jour d'une variable global -- --------------------------------------------------- function UpdateVG(Valeur) if (fibaro:getGlobalValue(NomVG) == nil) then fibaro:debug("il faut cree la variable "..NomVG) EnvoiPush(string.format("La variable Globale %s n'existe pas ou a ete supprimer", NomVG)) fibaro:abort() -- fin du programme else fibaro:debug("VariableGlobale = "..NomVG.." - Valeur = "..Valeur) fibaro:setGlobal(NomVG, Valeur); end end --------------------------------------------------- -- Vérification de l'heure et mise à jour -- -- de la variable si necessaire -- --------------------------------------------------- function traitement(lever, coucher, heure) local valeur = "Nuit" -- test si on est le jour ou la nuit if (heure >= lever) and (heure < coucher) then valeur = "Jour" end UpdateVG(nuit) -- mise a jour de la VG Jour_Nuit end -- ======================================= -- Début du code -- ======================================= ---------------------------------------------------------------------- -- Controle si 1 Scéne et déjà en cours -- ---------------------------------------------------------------------- local NbreScene = fibaro:countScenes() fibaro:debug("Nombre de scéne : "..NbreScene) if (NbreScene ~= 1) then; fibaro:abort(); end ---------------------------------------------------------------------- -- Mise a jour de la variable VG Jour_Nuit au Démarrage de la Box -- -- Ou lors de la sauvegarde de la scéne -- ---------------------------------------------------------------------- EnvoiPush(string.format("La box a démarré le %s a %s", os.date("%d/%m/%Y"), os.date("%R"))) traitement(fibaro:getValue(1, "sunriseHour"), fibaro:getValue(1, "sunsetHour"), os.date("%H:%M")) ---------------------------------------------------------------------- -- Test toute les minutes pour savoir si c'est jour ou nuit -- ---------------------------------------------------------------------- while true do local osHeure = os.date("%H:%M", os.time()) local lever = fibaro:getValue(1, "sunriseHour") local coucher = fibaro:getValue(1, "sunsetHour") if ( osHeure == lever ) or ( osHeure == coucher ) then traitement(lever, coucher, osHeure) end fibaro:debug(string.format("Lever Soleil : %s - Coucher Soleil : %s", lever, coucher)) fibaro:sleep(60*1000); end Maintenant, vous pouvez oublier tout ces bons préceptes car quand on regarde le code des professionnels, on voit bien que la théorie fait bien souvent place à la fatigue cérébrale et que 90% du code ne respecte pas le moindre petit de ces préceptes. Garbage collector Un gabagge collector n'est-il pas le truc inventé pour palier au mauvais développement ? ... Je plaisante . Il y en a un, mais comme toujours, moins la mémoire est sollicitée, moins le garbage collector fonctionne, meilleures sont les performances. Il ne faut pas oublier que lorsque le garbage collector fait son nettoyage, il prend énormément de ressources. Je travaille sur Java, et c'est horrible de voir que plus on améliore le garbage collector, plus les développeurs ne font pas attention. C'est le serpent qui se mord la queue. "Un garbage collector est coà»teux en performance, bien que dans la plus part des cas, son utilisation permet d'augmenter les performances globales d'une application" ... et si, un jour, on se mettait autour d'une table et qu'on se disait : - Il y a 25 ans, on faisait attention au nombre de ligne de code - Il y a 20 ans, on faisait attention à l'utilisation de la mémoire - Il y a 10 ans, on faisait attention à la place disque - Aujourd'hui, on se fout de tout alors on a inventé la "défragmentation" Pour les curieux : Ramasse-miettes (Garbage Collector) . . . Librairies Oui LUA permet les librairies, mais pas sur la Fibaro ou cette possibilité est désactivée. Le mot clé, de mémoire est : require . Merci Steven pour ces explications. Lien utiles pour la programmation lua : lua.org (Site Officiel Lua Anglais) WX LUA.fr Developer fibaro/ (Anglais) Programmation LUA Structures de Base LUA pour les débutants Introduction à la Programmation LUA Les bases de la programmation avec lua
  9. Vous laissez allumé la box la nuit ? Ca doit consommé grave lol Envoyé avec mon SmartPhone
  10. Ca fait 500euros c'est correct comme prix je pense Envoyé avec mon SmartPhone
  11. Pour ceux qui cherche une Home center 2 a moins de 500€ http://www.domotique-fibaro.fr/index.php/topic/4560-fibaro-home-center-2-%C3%A0-49390/ Au moins on est sur qu'elle est en V4 et aucun regret par rapport a la light
  12. Fibaro Home Center 2 Sur Amazon.de http://www.amazon.de/gp/offer-listing/B00AUFV7N4/ref=dp_olp_new?ie=UTF8&condition=new Maintenant que la V4 et presque stable je pense que c'est une bonne affaire je ne connais pas les frais de Port
  13. Je connais très bon site sav super j'ai acheté chez eux des danfoss lc13 àmoins de 50 euros Sur le forum il y a un coin pour les bonnes affaires faut pas hésité a posté lorsque l'on voit une bonne affaire. Envoyé avec mon SmartPhone
  14. Lol ok je le pardonne pas de soucis Envoyé avec mon SmartPhone
  15. Une promo et on ne fait pas profité les copains grŕrr Envoyé avec mon SmartPhone
  16. Non tu ne reve pas lol il faut trouver les codes pour ta tv et crée une télécommande avec un vd peut être un plugin sera disponible un jour j'ai 2 Philips et je n'ai pas encore pris le temp pour faire cela car j'en ai pas trop l'utilité Envoyé avec mon SmartPhone
  17. FIBARO Android ver 1.51 Disponible : ICI Description Application native conçue pour le système FIBARO®. Cette application est le logiciel le plus moderne et le plus facile convivial utilisé pour contrôler (y compris à distance) de votre maison appareils électriques reliés au système de FIBARO®. Il est une application complète BMS. Application conçue pour FIBARO Home Center 2. Caractéristiques: - Repérage par GPS - (Commande vocale - en anglais et en polonais - prochaines langues seront bientôt disponibles) LiLi - Geste de contrôler toute la maison de l'écran principal de l'application - Notification Push - Système de contrôle / sécurité Lighting température / humidité / - Multi-langue - Possibilité de changer les icônes pour les appareils et les salles - Possibilité d'afficher la consommation d'énergie actuelle - Puissance et mode de connexion (wifi / 2g / 3g etc) Et bien plus encore ... Système FIBARO convertit n'importe quelle maison ou un appartement dans une puce un, augmentant à la fois le confort et la sécurité. Il a été conçu à partir de zéro par les ingénieurs de Fibar Groupe pour permettre une gestion intelligente du bâtiment. Le système est basé sur la norme sans fil Z-Wave et est en mesure de contrôler la majorité des appareils électriques et appareils à la maison. Merci à FIBARO une maison intelligente peut être contrôlé à partir de n'importe où dans le monde via des interfaces conviviales pour les périphériques tels que des ordinateurs portables, smartphones et tablettes. Le système fonctionne de manière autonome, en fonction des informations reçues des capteurs et par GPS. Le système FIBARO est installé sur le système électrique existant sans qu'il soit nécessaire de modifier la structure du bâtiment. Requiert la version HC 3.559+ Nouveautés 1.5.1 - Date format change to system format - Fixed display of Satel devices - Added option to allow the device to go to sleep when the app is active - Improvements for camera support and shortened waiting time for the image - Improved RGBW brightness change visibility - Improved image refresh from Helios cameras - UBS support in Device Adding Wizard - Other minor improvements
  18. Peut être des problèmes d internet. Le tam tam n'est toujours pas reconnu comme un protocole lol mais j entends la voix du sage shad lol J'ai vecu plusieurs année en Afrique ils sont pas pressés pour dépanner.... Envoyé avec mon SmartPhone
  19. Je sais pas ce qu il a Steven en ce moment ? On dirai que le ralentissement de la hc2 le contamine lol Envoyé avec mon SmartPhone
  20. Le lua est sencible a la case Icones est icones sont 2 variables Envoyé avec mon SmartPhone
  21. @lazer attend un peu on a pas encore besoin de la climatisation aucune alerte canicule pour le moment donc tu peux resté en 3.60 😀 Envoyé avec mon SmartPhone
  22. Ce tuto est très simple il va vous permettre de lire ou d'écrire dans une étiquette Pour vous donnez un cas concret on va crée un VD qui va nous donner l'Heure de Lever et Coucher du soleil On crée 2 étiquettes + un bouton Étiquette 1 Etiquette : Lever Soleil (Ce texte apparait a Gauche dans l'étiquette) ID : LabLever Étiquette 2 Etiquette : Lever Coucher (Ce texte apparait a Gauche dans l'étiquette) ID : LabCoucher On copie ce code dans le bouton local Jour = fibaro:getValue(1, "sunriseHour"); --Heure de lever du soleil local Nuit = fibaro:getValue(1, "sunsetHour"); -- Heure de coucher du soleil fibaro:call(fibaro:getSelfId(), "setProperty", "ui.LabLever.value", Jour); -- Ecriture de l'heure de lever dans le label fibaro:call(fibaro:getSelfId(), "setProperty", "ui.LabCoucher.value", Nuit); -- Ecriture de l'heure du coucher dans le label fibaro:log("Mise a jour en cours...") On s' aperçoit donc que : fibaro:getSelfId() ou local IdModule = fibaro:getSelfId() Ce code récupère l'id du module fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label1.value", "Bonjour"); ou local Text = "Bonjour" fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label1.value", Text); Ce code va écrire a droite dans le VD. ui.Label1.value -> Label1 et L'ID de l'étiquette ou l'on veut écrire Il n'est pas possible de mettre en page ce texte ni de changer la couleur. Certains on réussi a le faire en utilisant des balises HTML qui trompe le navigateur et juste le navigateur. Ici Le nombre de ligne qui peuvent être afficher est très réduit local toto = fibaro:getValue(fibaro:getSelfId(), "ui.Label1.value") fibaro:debug(toto) --Affichache de la valeur de l'étiquette Ce code permet de lire dans une étiquette ui.Label1.value -> Label1 et L'ID de l'étiquette ou l'on veut écrire Cela peut servir pour stocker des valeurs sans à avoir à passer par une variable globale http://<adresse ip>/api/callAction?deviceID=<id module>&name=setProperty&arg1=<NOMLABEL>&arg2=<texte> <id module> = identifiant du module virtuel <NOMLABEL> = c'est l'ID du label préfixé de "ui." et suffixé de ".value" ... exemple : ui.Label1.value <texte> = le texte à afficher dans le label
  23. J+1 après une mise a jour c'est très calme ici cela voudrait dire que la v4.042 est stable ? Envoyé avec mon SmartPhone
  24. C'est cool comme quoi ça peu servir les réseaux sociaux même si c'est pas mon truc Envoyé avec mon SmartPhone
  25. On peut faire une recherche des vd via l api et attribué un icone en fonction du nom du vd Envoyé avec mon SmartPhone
×
×
  • Créer...