-
Compteur de contenus
1 063 -
Inscription
-
Dernière visite
-
Jours gagnés
13
Tout ce qui a été posté par Cardane
-
Quick App - GCE Electronics IPX800 v4 et EcoDevice RT2
Cardane a répondu à un(e) sujet de Lazer dans Quick App Developpeur
@mprinfo, super, ca marche, merci beaucoup -
Quick App - GCE Electronics IPX800 v4 et EcoDevice RT2
Cardane a répondu à un(e) sujet de Lazer dans Quick App Developpeur
salut @mprinfo euhhh, tu parles de quoi avec le 20 et le 1 , pas compris :-) -
Quick App - GCE Electronics IPX800 v4 et EcoDevice RT2
Cardane a répondu à un(e) sujet de Lazer dans Quick App Developpeur
Hello, j'ai ce QA depuis le début, ca marche nickel, mais ce matin je veux juste rajouter un ligne dans la config pour activer le premier relai qui active ma ventilation cave et là, petit problème j'ai essayé avec les deux lignes ci-dessous mais j'ai toujours le problème lors de la création des childs {device = {name = "Ventilation", type = "BinarySwitch"}, value = {command = "Get", argument = "R", pin = "R1"}} {device = {name = "Ventilation", type = "BinarySwitch"}, value = {command = "Get", argument = "R", pin = "R1"},power = {command = "Get", argument = "R", pin = "R1", type = "X400-CT-20A"}} Dans la console, je reçois les messages suivants : [18.11.2022] [13:14:41] [ERROR] [QA_GCE_376]: tools:getVariable() Invalid self device : userdata custom [luabind::detail::null_type] object: (nil) [18.11.2022] [13:14:41] [ERROR] [QA_GCE_376]: tools:getVariable() Invalid self device : userdata custom [luabind::detail::null_type] object: (nil) [18.11.2022] [13:14:41] [ERROR] [QA_GCE_376]: tools:getVariable() Invalid self device : userdata custom [luabind::detail::null_type] object: (nil) [18.11.2022] [13:14:41] [ERROR] [QA_GCE_376]: ./include/main.lua:697: attempt to concatenate a nil value (field 'name') je ne vois pas trop ce qui ne marche pas puisque les autres paramètres sont en option ... une petite idée ? -
hello @jojo et @Franco268, dans un QA il suffit d'appeler la fonction hub.emitCustomEvent(""), avec le nom de l'event que vous désirez entre les "". ca génère un event qui peut être capté dans les conditions d'une scène par exemple, ou pas GEA vous pouvez regarder dans mon QA Dans and Dusk, j'utilise ca pour générer un event à chaque phase de la journée. IL faut aussi définir ces event dans l'onglet Évènement (encore que, il semble que ce ne soit plus nécessaire mais c'est plus propre) ensuite dans GEA vous pouvez capter l'event comme ca : GEA.add({"CustomEvent", "onCivilDusk"}, -1, "ferme tenture droite à Civil Dusk", {"Close", 199, 100})
- 16 réponses
-
- 1
-
-
- déclencheur
- event
-
(et 1 en plus)
Étiqueté avec :
-
tu peux générer un event dans ton QA lors de la détection de l'ouverture de la boite. Tu peux ensuite utiliser cet event dans GEA par exemple ou comme n'importe quelle autre condition
- 16 réponses
-
- déclencheur
- event
-
(et 1 en plus)
Étiqueté avec :
-
Module pour rideaux
Cardane a répondu à un(e) sujet de Domodial dans Périphériques et matériels autres
moi j'utilise soit les moteurs comfy filaire avec un module figaro roller shutter devant, ou pour deux petite fenêtre un rail électrifié (je sais plus lequel mais chinois) pas trop joli et très bruyant... -
Attention, mon QA ne garde pas l'état, il se contente d'envoyer un évènement, que tu peux utiliser dans GEA entre autres choses... tu vas donc recevoir un événement à chaque phase. Mais il n'est envoyé qu'une seule fois. Pour gérer mes VR suivant la position du soleil je fais ca dans GEA en utilisant le QA Indicateur solaire, je me base sur la direction et la hauteur, la température intérieure de la pièce concernée, la temp&rature extérieure, et j'ai mis une condition sur base des dates.
-
ou pourquoi ne pas modifier ta scène et ne pas allumer les lampes en question... pas trop compris le but là ?
-
pas bien compris ce que tu veux par "hiver/été"... c'est des dates fixes donc tu peux toujours comparer par rapport à la date de la box... ou je n'ai pas compris ce que tu cherches à faire
-
ah ah , désolé pour le titre en anglais, ca me paraissait plus simple que "Aube/Crépuscule".. ce QA a tout de même ses limites mais pas pour nos régions, donc il devrait être ok pour tes cas d'utilisation.
-
[HC3 QA] Piloter ses VELUX avec un KLF200 et HomeAssistant
Cardane a répondu à un(e) sujet de Dragoniacs dans Quick App Developpeur
hello @Dragoniacs ca marche bien, mais ca n'empêche pas le blocage par instant. Je fais un robot chaque nuit, et ton robot du KLF une fois par semaine, et pour l'instant tout est nickel l -
id.cloud.fibaro.com accessible ? de chez moi ca marche avec ma connection distante à la fois avec Voo et Proximus, donc ca doit être un problème local
-
@TEN, je vais essayer de retrouver ce morceau de code python, mais comme je ne l'utilise plus je ne sais plus trop sur quel RPI il se trouve... je cherche...
-
mettre simplement ton pc sur le même subnet...et lui donner une adresse type 192.168.81.2 par exemple
-
hello @Sakkhho, je ne sais pas quelle utilisation tu veux faire de ces données, mais moi j'utilise civil dawn et civil dusk pour ca... ca correspond à quelques minutes près au jour et à la nuit tel qu'on l'entend en général les deux sont utilisables dans GEA
-
tu peux interroger HA via requête HTTP, un peu comme on le fait dans le QA pour les velux... assez facile à faire, il faut juste lire la doc HA pour savoir quel service appeler...
-
[HC3 QA] Piloter ses VELUX avec un KLF200 et HomeAssistant
Cardane a répondu à un(e) sujet de Dragoniacs dans Quick App Developpeur
-- REBOOT GATEWAY function QuickApp:onReboot() self.httpClient:request(self.HTTP_HassIO_reboot, { options = { method = "POST", headers = { ["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/64.0", ["Authorization"] = "Bearer "..HassIO_Key, ["Content-Type"] = "application/json", }, data = "" }, success = function(response) print(response.data) tools:Message("debug","Demande envoyée au KLF pour Reboot Gateway") if (response.status==200) then tools:Message("trace","Réponse du KLF : Reboot Gateway en cours") else tools:Message("error","Reboot Gateway a échoué : "..response.status) end end, error = function(err) tools:Message("error", "Reboot Gateway est en erreur : "..response.status) end, }) end Voilà, problème résolu, c'est la syntaxe de l'appel http qui était mauvaise... je n'ai pas automatisé l'appel de cette fonction, pour l'instant j'attend de voir si c'est nécessaire ...si je vois que la synchro se perd je cliquerai sur le bouton... @Dragoniacs, si tu es intéressée voilà le bout de code que j'ai rajouté dans ton QA il faut aussi éclater l'URL : self.HTTP_HassIO_reboot = "http://".. self.IP_HassIO .. "/api/services/velux/reboot_gateway" l -
[HC3 QA] Piloter ses VELUX avec un KLF200 et HomeAssistant
Cardane a répondu à un(e) sujet de Dragoniacs dans Quick App Developpeur
Salut @Dragoniacs, en lisant une fois de plus la doc, je suis tombé sur l'utilisation du service velux.reboot_gateway dans Hassio. Ils disent de faire appel à ce service lorsque qu'il y a une désynchronisation entre le klf et HA. Est-ce que tu as essayé cette option. J'ai modifié ton QA pour essayer de faire appel à ce service via un bouton en plus, mais je reçois une erreur 404 de la part de HA... -
Gérer le KLF200 (Velux IO Homecontrol) avec OpenHab & HC2
Cardane a répondu à un(e) sujet de Dragoniacs dans Tutoriels
quel mot de passe utilises-tu ? celui du wifi ou l'autre ? (celui que tu configures dans le KLF) -
@jojo ca peut être perturbant, mais c'est très puissant... bon, après, c'est de la pure gestion asynchrone... ca va te permettre par exemple lorsque tu fais appel à une fonction qui demande un certain temps de réponse (appel extérieur vers un device externe par exemple) de continuer une partie de ton code qui n'est pas dépendante de ton code... ce qui dépend de la réponse reçue lors de ton appel sera traité lorsque la réponse arrivera... très logique en fait, etttt le reste peut être exécuté directement... il y a plein de cas ou c'es très utile, et aujourd'hui dans "l'informatique" moderne on traite bienj souvent de cette manière plutôt qu'en simple séquentiel... le top c'est le bus événementiel où ton code fait des choses, et parfois reçoit un évènement que tu traites ... (bon, ok, je simplifie très fort )... mais comme cela a été dit, il faut juste oublier de penser comme avant et puis ca roule...
-
Mon installation photovoltaïque en autoconsommation
Cardane a répondu à un(e) sujet de Lazer dans Mon installation domotique
@Nico alors là, 100% d'accord .... Lichtenchtein, Suisse, Luxembourg, mais j'ai pas compris pourquoi l'Alsace je rigoooole hein, déjà rien que pour le p'tit vin blanc et la choucroute- 986 réponses
-
- 1
-
-
@Lazer je crois qu'il parle de l'interphone
-
Contrôler volet piscine 24 / 29 VDC ?
Cardane a répondu à un(e) sujet de Neyms15 dans Actionneurs & Ouvrants (Portail, volets, piscines, ...)
hello... je n'ai pas bien compris ta question... tu parles de RTS ou de Wifi, mais je suppose que si tu es sur ce forum dédié à Fibaro c'est que tu disposes d'une box (HC2 ou HC3) et donc il faut t'orienter vers un des modules ZWave supporté par la box que tu as. A la base je pensais à un module type volet roulant (FGR) mais quand je vois tes schémas de montage, je ne pense pas que ce soit le bon choix. Je ne connais pas ce type de moteur, avec uniquement 2 fils, je suppose que l'avancée ou le retour du volet se fait alors par inversion de polarité ? C'est peut-être quelqu'un comme @Did qui pourrait t'aider... -
cool, mais si on pouvait aussi avoir le TLS sur tcp pour la HC3 ce serait génial...
-
local hidden = false --- true pour exporter les devices cachés local dead = false -- true pour exporter les devices morts local excludeType = {"com.fibaro.zwaveDevice", "weather", "HC_user", "iOS_device", "com.fibaro.voipUser"} local excludeID = {} local devicesJSon = api.get("/devices") local devices = {} local names = {} local rooms = {} function addName(name, roomname) if (type(names[name]) == "nil") then names[name] = true return name else return addName(name.."_"..roomname, roomname) end end function getRooms() local roomsJSon = api.get("/rooms") rooms[0] = "inconnu" for k, v in ipairs(roomsJSon) do rooms[v.id] = v.name end end function rename(name, roomname) local name = name:upper():gsub("[éêèë]", "E"):gsub("EE", "E"):gsub("[ûüù]", "U"):gsub("UU", "U"):gsub("[àâä]", "A"):gsub("AA", "A"):gsub("[öô]", "O"):gsub("OO", "O"):gsub("[îï]", "I"):gsub("II", "I"):gsub("%W", "_") local roomname = roomname:upper():gsub("[éêèë]", "E"):gsub("EE", "E"):gsub("[ûüù]", "U"):gsub("UU", "U"):gsub("[àâä]", "A"):gsub("AA", "A"):gsub("[öô]", "O"):gsub("OO", "O"):gsub("[îï]", "I"):gsub("II", "I"):gsub("%W", "_") return addName(name, roomname) end getRooms() for k, v in pairs(devicesJSon) do local doit = (hidden or v.visible) and (dead or not v.dead) if (doit) then for h, w in pairs(excludeType) do if (v.type == w) then doit = false end end if (doit) then for h, w in pairs(excludeID) do if (v.id == w) then doit = false end end end end if (doit) then table.insert(devices, v) end end table.sort(devices, function(a,b) return a.roomID<b.roomID end) local result = "<BR><BR>-- IDs générés le : " .. os.date("%d/%m/%y à %X") local room = -1 local lastinfo = ""; result = result .. "<BR><BR>local id = {" for k, v in ipairs(devices) do if (room ~= v.roomID) then room = v.roomID result = result .. "<BR>--"..rooms[v.roomID].."<BR>" end lastinfo = rename(v.name, rooms[v.roomID]) result = result .. lastinfo .. " = " .. v.id .. ", " end result = result .. "<BR>}" result = result .. "<BR>" result = result .. "<BR>-- usage :" result = result .. "<BR>-- fibaro:getValue(id[\""..lastinfo .."\"], \"value\")" result = result .. "<BR>-- GEA.add(id[\""..lastinfo .."\"], 30, \"\")" print(result) salut @jojo, c'est ca que tu cherches ?