Aller au contenu

jjacques68

Membres confirmés
  • Compteur de contenus

    4 349
  • Inscription

  • Dernière visite

  • Jours gagnés

    39

Tout ce qui a été posté par jjacques68

  1. comment on fait pour accéder à une variable du parent dans le Child ? j'ai trouvé : self.parent:getVariable()
  2. ah mais quel c... je suis !!!! je faisais child.setVariable() au lieu de child:setVariable() c'est pas la première fois que je me fais avoir... foutu classe on y accède pas depuis l'interface, mais on peut depuis le code ? faut que j'essaye...
  3. Visiblement oui Envoyé de mon iPhone en utilisant Tapatalk Pro
  4. où places-tu cette ligne ? dans la méthode createChild() ? ça me retourne une erreur...
  5. chose faite... en effet ça aide à comprendre. Pour la création des Chlid, c'est OK. par contre concernant l'IPX, je suppose que l'idée de base est d'avoir autant de Child que de Output ! je vois bien les 3 fonctions propres au Child, et je pense comprendre leur rôle. function MyBinarySwitch:__init(device) QuickAppChild.__init(self, device) self:debug(self.id , "MyBinarySwitch init") end function MyBinarySwitch:turnOn() self:debug("child", self.id, "turned on") self:updateProperty("value", true) end function MyBinarySwitch:turnOff() self:debug("child", self.id, "turned off") self:updateProperty("value", false) end Le code de pilotage des sortie se mettra dans les fonctions turnOn/Off... Mais comment associer le numéro de sortie de l'IPX à un Child ?
  6. jjacques68

    instance de scènes

    je relance le sujet, je viens de me rendre compte que dans l'API de scènes, il y a une propriété "maxRunningInstances" qui visiblement par défaut est à 2. J'ai réussi à la mettre à plus, ici 10, mais je ne constate aucun changement de comportement... bien dommage ça ! { "id": 6545, "name": "__essai", "type": "lua", "mode": "automatic", "maxRunningInstances": 10, "icon": "scene_lua", "hidden": false, "protectedByPin": false, "stopOnAlarm": false, "restart": false, "enabled": true, "content": "{\"conditions\":\"{}\",\"actions\":\"fibaro.warning(\\\"essai\\\",\\\"start\\\")\\nfibaro.setTimeout(10*1000, function() fibaro.warning(\\\"essai\\\",\\\"end\\\") end)\"}", "created": 1589226657, "updated": 1589610840, "categories": [ 1 ] }
  7. @Lazer tu pourras poster ton projet de child device avec l'ipx ? ça m'intéresserait d'avoir un exemple concret... pour comprendre le principe...
  8. ok donc on peut paramétrer chaque port comme on veut !
  9. en relisant, je viens de m'en rendre compte oui. punais avec du recul, y a moyen de vachement simplifier ça !!! et sans passer par les Child Device... j'ai fait compliqué sur ce coup-là, va falloir que je corrige ça... allé... comme dis c'était la prise en main pour les Child Device, j'avoue ne pas trop comprendre encore leur exemple sur leur site...
  10. tu as quoi comme idée ? dans mon cas j'ai un QA unique de gestion de l'IPX, avec plusieurs fonctions : demander le status d'une In/Output modifier une output réceptionne le retour d'état d'une sortie (qui d'ailleurs affecte la valeur des QA créés pour chaque fonction : éclairage, arrosage, ...) et qui me permet depuis ce même QA de modifier les OUT (en fait ça c'est inutile, mais c'était la première chose que j'avais faite à la réception de la HC3 )
  11. c'est propre aux switch Unifi ? et ça concerne tous leurs modèles ? parce que je me suis jamais posé la,question, j'ai un vieux switch POE netgear (encore en 100Mo) qui,alimente les caméras et AP, mais j'ai aussi un PC branché dessus ! jamais eu de soucis... je m'étais dis que j'allais mettre un gros switch unifi POE pour tous mes besoins, mais à te lire... la question se pose...
  12. ce serait le rêve, imagines un QA avec toutes les petites fonctions dedans, que tu peux appeler quand tu veux, et récupérer le retour directement. ben en gros tout le contenu du "snippet" sur le forum que tu as créé
  13. c'est dans les tuyaux d'après @Krikroff. du moins il a fait remonté l'info...
  14. oui c'est chiant ça ! c'est comme les scènes qui sont triggée, alors l'instance précédente n'est pas terminée, suivant l'option que tu as choisi dans les propriétés de la scène ("Allow to restart a runing scene"), tu vas avoir des erreurs avec ... rien comme libellé !
  15. pour l'icône pas encore. pour l'appel de fonction dans les scènes : fibaro.call(ID_QA,"Ma_Fonction") pour la récupération de valeur de retour, on en a déjà discuté, pas encore... du moins pas sans usine à gaz... en attendant passer par une VG de retour, peut aider pour l'usine à gaz : (suis pas fan, jamais essayé) https://forum.fibaro.com/topic/49113-hc3-quickapps-coding-tips-and-tricks/?tab=comments#comment-201165 pour la variable, j'ai aussi remarqué que ça pouvait marché sans le "self." Après comme le QA est une "mini" classe, c'est presque de la POO... si j'ose dire... donc c'est plus "propre"... n'hésitez pas à me corriger !!
  16. jjacques68

    HC3 - Commande Shutdown

    Ah j'avais oublié ça ! Bien vu ! Envoyé de mon iPhone en utilisant Tapatalk Pro
  17. jjacques68

    Petits bug de la HC3

    bon la vous avez citez le top du top dans le domaine
  18. jjacques68

    Petits bug de la HC3

    RAS sous chrome...
  19. jjacques68

    Surveillance de ma TV

    tu as quoi dans le debug quand elle est triggée ? pourquoi les fibaro.sleep() ? moi je les enlèverais... et je pense qu'il faut que tu enlève la VG TV des trigger ! car ta scène est triggée quand il y a un changement de consommation, et va être immédiatement triggée à nouveau à cause du changement d'état de la variable !
  20. jjacques68

    Petits bug de la HC3

    j'ai pris l'habitude de les poster ici, certaines personnes savent les faire remonter. Faut juste être précis et si possible expliquer comment reproduire le bug...
  21. jjacques68

    Avis et questions

    non attention, l'interface de la HC3 est très bien, mais je trouve que c'est plus une interface de "configuration" que d' "d'utilisation". Après il est tout à fait possible de sans servir au quotidien ! La HC3 ne permet pas de créer sa propre interface, du moins pas encore. Ce que j'ai fais, c'est qu'à chaque changement de status d'un module, des informations sont envoyée vers une application complètement externe qui tourne sur un PC avec écran tactile. Ces informations reçues permettent d'afficher un IHM perso et d'interagir avec la HC3. Je l'ai développé sous Windev. Personnalisé à 100 %. Il m'est impossible de créer un tuto sur ce sujet, beaucoup trop long... Et trop personnalisé... Après je peux aidé mais faudra s'y connaître en windev...
  22. je confirme, c'est ce que je faisais... et j'ai bien fini par tué mon radiateur
  23. nan mais franchement ! faut avouer que... ok...
  24. hé ben... et moi qui attend qu'une seule chose... pouvoir me séparer de jeedom...
  25. Hello tout le monde ! Voici un QA permettant d'avoir l'azimut du soleil. Un grand merci à l'auteur original du code cité dans le header du script du QA. Je l'ai adapté pour mes besoins à savoir. Connaitre l'azimut du soleil, c'est tout. Je me suis permis d'enlever les autres valeurs qui ne m'interraissaient pas vraiment. Il s'agit d'un QA de type "Multilevel sensor". Donc la valeur qu'il retourne est celle de l'azimut. Il utilise la localisation de la HC3, donc bien penser à la paramétrer dans les réglages. Il faut saisir l'altitude : (ligne 41) local Altitude = 310 J'ai créé un offset (self.offset) dans le code d'initialisation du QA afin d'avoir plus de précisions sur l'angle (étrangement constaté chez moi). (ligne 15) self.offset = -10 Dans mon cas, il est donc fixé à -10°... à vous de voir chez vous --------------------------------- -- Script de collecte de quelques indicateurs solaire -- Auteur : Sébastien Joly -- Date : 29 août 2015 -- Eléments de calculs : -- http://www.plevenon-meteo.info/technique/theorie/enso/ensoleillement.html -- http://herve.silve.pagesperso-orange.fr/solaire.htm -- adpaté par Jean-Jacques NEFF pour la HC3 le 24/03/2020 --------------------------------- function QuickApp:onInit() __TAG = "QA_"..plugin.mainDeviceId.."_Indicateur Solaire" self:debug("onInit") self.offset = -10 self:Main() end --------------------------------- -- Fonction déterminant si année bissextile --------------------------------- function QuickApp:AnneeBissextile(annee) return annee%4==0 and (annee%100~=0 or annee%400==0) end --------------------------------- -- Fonction Arrondir --------------------------------- function QuickApp:arrondir(num, dec) if num == 0 then return 0 else local mult = 10^(dec or 0) return math.floor(num * mult + 0.5) / mult end end local location = api.get("/settings/location") local Ville = location.city local Latitude = location.latitude local Longitude = location.longitude local Altitude = 310 --------------------------------- -- MAIN --------------------------------- function QuickApp:Main() -- Début debug self:trace("=====================================") self:trace(os.date("%Y-%m-%d %H:%M:%S", os.time())) self:trace(Ville .. ", " .. Latitude .. ", " .. Longitude) self:trace("Altitude = " .. tostring(Altitude) .. " m") local NiemeJourDeLAnnee = os.date("%j") --------------------------------- -- Vitesse angulaire = Combien de degrés par jour --------------------------------- VitesseAngulaire = 360/365.25 ----JourDansLAnnee -- ou approximativement 365.25 self:trace("Vitesse angulaire = " .. VitesseAngulaire .. " par jour") --------------------------------- -- Formule Declinaison = ArcSin(0,3978 x Sin(Va x (j - (81 - 2 x Sin(Va� x (j - 2)))))) --------------------------------- local Declinaison = math.deg(math.asin(0.3978 * math.sin(math.rad(VitesseAngulaire) *(NiemeJourDeLAnnee - (81 - 2 * math.sin((math.rad(VitesseAngulaire) * (NiemeJourDeLAnnee - 2)))))))) self:trace("La déclinaison = " .. Declinaison .. "°") --------------------------------- -- Temps universel décimal (UTC) --------------------------------- TempsDecimal = (os.date("!%H") + os.date("!%M") / 60) self:trace("Temps universel decimal (UTC)".. TempsDecimal .." H.dd") --------------------------------- -- Temps solaire --------------------------------- HeureSolaire = TempsDecimal + (4 * Longitude / 60 ) self:trace("Temps solaire ".. HeureSolaire .." H.dd") --------------------------------- -- Angle horaire du soleil --------------------------------- AngleHoraire = 15 * ( 12 - HeureSolaire ) self:trace("Angle Horaire = ".. AngleHoraire .. "°") --------------------------------- -- La hauteur du soleil (Elévation ou altitude) --------------------------------- HauteurSoleil = math.deg(math.asin(math.sin(math.rad(Latitude))* math.sin(math.rad(Declinaison)) + math.cos(math.rad(Latitude)) * math.cos(math.rad(Declinaison)) * math.cos(math.rad(AngleHoraire)))) self:trace("Hauteur du soleil = " .. HauteurSoleil .. "°") self:updateView("LBL_Hauteur", "text", "Hauteur = "..tostring(self:arrondir(HauteurSoleil,0)) .. "°") local Azimut = math.acos((math.sin(math.rad(Declinaison)) - math.sin(math.rad(Latitude)) * math.sin(math.rad(HauteurSoleil))) / (math.cos(math.rad(Latitude)) * math.cos(math.rad(HauteurSoleil) ))) * 180 / math.pi local SinAzimut = (math.cos(math.rad(Declinaison)) * math.sin(math.rad(AngleHoraire))) / math.cos(math.rad(HauteurSoleil)) if (SinAzimut<0) then Azimut=360-Azimut end self:trace("Azimut du soleil = " .. Azimut .. "°") --affichage sans offset self:updateView("LBL_Azimut", "text", "Azimut = "..tostring(self:arrondir(Azimut,0)+self.offset).."°") self:updateProperty("value", self:arrondir(Azimut,0)+self.offset) self:updateProperty("unit", " °") self:updateView("LBL_Update", "text", os.date("%d/%m/%Y %H:%M:%S",os.time())) self:trace("=====================================") --bouclage toutes les minutes fibaro.setTimeout(60*1000, function() self:Main() end) end Pour accéder à la valeur azimut, il suffit de le faire dans une scène ou un QA avec une simple commande : MonAzimut = fibaro.getValue(ID_du_QA, "value") Voici le fichier téléchargeable : Indicateur_Solaire.fqa et son icone : EDIT : j'ai supprimé l'accès "openweathermap" qui n'était plus utile...
×
×
  • Créer...