Aller au contenu

sebcbien

Membres confirmés
  • Compteur de contenus

    4 189
  • Inscription

  • Dernière visite

  • Jours gagnés

    85

Tout ce qui a été posté par sebcbien

  1. Que je saches, il suffit d'appeler une URL, tout est dedans, input et data. Je m'etais aidé de la section help. Courte mais très utile Sent from my Note4
  2. Salut Jojo .... Je suis loin de mon PC ce week-end :-/ Je sais que la gestion réseau, http etc est différente entre les scènes et les vd. Je te conseille de jeter un coup d'oeil àdes scènes déjàexistantes (le watchdog ? Sinon @lazer en a déjàfait quelques unes)... Pour emoncms, oui, c'est vachement souple. Pour le moment, il y a un petit souci d'affichage de certaines de mes courbes, mais c'est un bug connu, identifié et en cours de résolution. Good luck ! Sent from my Note4
  3. Vraiment impressionné par ce travail, chapeau !!! Personnellement j'ai déjà un thermostat PID... -> les thermostats netatmo sont PID après un certain temps d'analyse du comportement de votre habitation. et voici ma gestion très complète de mes deux thermostats Netatmo: http://www.domotique-fibaro.fr/index.php/topic/3929-yagda-yet-another-graphic-data-analyser-netatmo-vmc-emoncms-json-viewer/page-2#entry83875
  4. sebcbien

    Support Gea

    Regarde la simulation de présence dans ma signature ;-) (YAPS) Sent from my Note4
  5. en fait le flux mjpeg que j'envoie à la HC2 est volontairement de basse qualité car mon upload est pas terrible et ça me permet d'avoir l'image très rapidement lorsque je suis en 3G. Le flux mp4 est en "HD" est c'est celui là que SStation reçoit Et quand je suis en roaming, ca permet de ne pas trop vider le forfait Pour le moment je suis occupé à réfléchir pour faire un VD ou une scène qui permettra de sélectionner une camera, un nombre d'images et une intervalle pour l'envoi de snapshots. Il/elle devra gérer les demandes concurrentes Eexemples: Quand on sonne a la porte, je reçois X photos espacées de X secondes... mais il y a des sagouins qui sonnent 3X et alors je suis bombardé de photos et ma bp se sature...) Quand il y a détection de mouvement, idem. s''il y a plusieures détections en même temps, même problème.
  6. salut les gars, quand on sonne a ma porte, la HC2 m'envoie des snapshots par email. Le problème c'est que c'est une version de mauvaise qualité. En cherchant un peu, j'ai trouvé qu'il y avait moyen de demander à SS d'envoyer un snapshot: en cherchant un peu dans la doc de l'api, page 221: https://global.download.synology.com/download/Document/DeveloperGuide/Surveillance_Station_Web_API_v2.0.pdf J'ai trouvé ça: Est-ce que quelqu'un ici a déjà essayé ? est-ce que la qualité est bonne ? Ca permettrait aussi de soulager notre pauvre HC2 asthmatique payload = "/webapi/entry.cgi?attachSnapshot=true&primaryEmail="xxxxx@gmail.com"&enableInterval=false &mail_recipient="xxxxx@gmail.com"&api="SYNO.SurveillanceStation.Notification.PushService" &msgInterval=1&synoMailEnable=true&secondaryEmail=""&version="1"&mobileEnable=false&method="SendTestMessage"
  7. Bien vu, j'ai changé le code plus haut. Effectivement, j'utilise deux tables d'id...
  8. Tu ne reçois même pas le push ? Tu es sur que tu as créé la vg ramfree ? Sent from my Note4
  9. sebcbien

    Support Gea

    @elacombe , Autre solution pour qu'il ne puisse pas rallumer: mettre un FGD directement DANS la PS4... ou dans la TV Mais là 'fo l'ouvrir, (perdre la garantie ?) et bricoler un peu plus...
  10. en utilisant mon script ou tu l'a modifié pour ajouter d'autres données ?
  11. sebcbien

    Support Gea

    Je sais bien que ça ne réponds pas à ta question, mais si ton fils est pas trop bête il aura vite compris qu'il faut brancher la PS4 dans une autre prise ou qu'il suffit de ré-appuyer sur le bouton au dessus si tu ne le désactive pas Sinon dans le showroom il y a déjà une partie de ta réponse. Je monitore la conso de ma télé pour envoyer un message après 3h, il suffit de rajouter une commande d'extinction. Suivant le même principe mais en disant que si conso = 0 pendant 12h alors envoyer une commande d'allumage
  12. J'ai eu le coup pendant 3 mois avec une remontée de datas, ensuite ça s'est remis àfonctionner. C'était clairement un problème emoncms, les données apparaissaient dans le feed input mais pas sur les graphiques
  13. sebcbien

    Monitoring Hc2 Et Reboot

    m'enfin ... chuis en 4.80 ... Moi au reboot, il me met déjàle message "cliquez une 2e fois pour..." et si je clique une seule fois, il execute et reboote ... Si je commente la ligne reboot, tout redeviens normal, mais la box àpas rebootée évidemment
  14. sebcbien

    Monitoring Hc2 Et Reboot

    @jojo vos désirs sont des ordres monsieur _ Tout se trouve ici: http://www.domotique-fibaro.fr/index.php/topic/3719-module-virtuel-hc2-diagnostics/page-4#entry122558 @jojo, si tu veux te pencher sur le problème que le message appuyez une 2e fois reste "bloqué" ...be my guest ! En fait ça fonctionne jusqu'au premier reboot, après le reboot le message reste... a mon avis le reboot bloque le message et il reste ensuite. le problème c'est que ensuite, un seul click suffit... c pas la mort mais bon...
  15. Voici la "V2" avec variable globale ramfree pour utilisation avec GEA entre autres. En plus des instruction de la V1: - http://www.domotique-fibaro.fr/index.php/topic/3719-module-virtuel-hc2-diagnostics/page-3#entry98130 - http://www.domotique-fibaro.fr/index.php/topic/3719-module-virtuel-hc2-diagnostics/page-3#entry98131 Créez une Variable Globale RamFree et importez le VD V2 attaché à ce post. HC2_Diagnostics V2.vfib Code GEA pour reboot automatique: -------------SURVEILLANCE MEMOIRE-------------- GEA.add({{"Global-", "RamFree", 35}}, 30, "RAM inférieure à #value# - Reboot prévu cette nuit à 2h45", {{"Time", "21:00", "21:01"}}) -- Push si Ram faible GEA.add({{"Global-", "RamFree", 35}}, 30, "Reboot HC2 car RAM inférieure à 35% (#value#)", {{"Time", "02:45", "02:46"},{"VirtualDevice", id["HC2_DIAGNOSTICS"], 15},{"Function", function() fibaro:sleep(1000) end},{"VirtualDevice", id["HC2_DIAGNOSTICS"], 15}}) -- Reboot HC2 si RAM faible code du bouton raffraichir: local thismodule = fibaro:getSelfId(); local HC2 = Net.FHttp("127.0.0.1",11111); EmonCMS = {}; EmonCMS.EmonCMS_Prefix = "HC2_DIAG_"; EmonCMS.PushToEmonCMS = true; -- true = push to emoncms - false = do not push EmonCMS.get = Net.FHttp("emoncms.org",80); EmonCMS.emoncms_api_key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; -- your EMONCMS WRITE api Key EmonCMS.emoncms_ok = true HcDiag = {}; -- notifications HcDiag.notifications = true; -- send notifications --HcDiag.notificationTypes = {"push", "email"};--notification types {"push", "email", "sms"} HcDiag.notificationTypes = {"email"};--notification types {"push", "email", "sms"} HcDiag.smartphoneID = {1347}; -- Smartphone Id to send push to. {id1, id2, id3} HcDiag.userID = {2}; -- User Id to send email to. {id1, id2, id3} HcDiag.sms = { ["VD_ID"] = 0, -- Virtual Device ID ["VD_Button"] = "1", -- Virtual Device Button ["VG_Name"] = "SMS"}; -- Global Variable Name HcDiag.debug_messages = false; -- Global Variable Name local debug_messages = false; -- Diplay debug for notifications local ram_treshold = 15 -- limit of freeram to send notification Debug = function (color, message) if color and color ~= "" then fibaro:debug('<span style="color:'..color..';">'..message..'</span>'); else fibaro:debug(message); end end round = function(num) local a = math.floor(num*100 + 0.5)/ 100; return a,string.format("%.2f",a); end EmonCMS.Push = function(payloademon) fibaro:debug("Payload: " .. payloademon) ; if EmonCMS.emoncms_ok then payloademon = "/input/post.json?json={" .. EmonCMS.EmonCMS_Prefix .. payloademon .. "}&apikey=" .. EmonCMS.emoncms_api_key; response, status, errorCode = EmonCMS.get:GET(payloademon); if status ~= "200" then EmonCMS.emoncms_ok = false fibaro:debug("error response, aborting all push. - ".."response: " .. response .. " Status: " .. status .. " errorcode: " .. errorCode) ; end fibaro:sleep(500); end end HcDiag.notification = function(message, subject, param) local message = message or "<vide>"; if HcDiag.debug_messages then Debug("yellow", "Notification : "..message); end if param then for _, notif in ipairs(param) do if HcDiag.debug_messages then Debug("grey", notif); end -- Envoi Push if notif == "push" and HcDiag.smartphoneID then for _, id in ipairs(HcDiag.smartphoneID) do if HcDiag.debug_messages then Debug("grey", "Send Push smartphone ID : "..id); end fibaro:call(id, "sendPush", message); end -- Envoi Email elseif notif == "email" and HcDiag.userID then for _, id in ipairs(HcDiag.userID) do if HcDiag.debug_messages then Debug("grey", "Send Email user ID : "..id); end fibaro:call(id, "sendEmail", subject, message); end -- Envoi SMS elseif notif == "sms" and HcDiag.sms then if HcDiag.debug_messages then Debug("grey", "Send SMS : VD_ID="..(HcDiag.sms["VD_ID"] or 0).." VD_Button="..(HcDiag.sms["VD_Button"] or "0").." VG_Name="..(HcDiag.sms["VG_Name"] or "")); end fibaro:setGlobal(HcDiag.sms["VG_Name"], message); if HcDiag.sms["VD_ID"] and tonumber(HcDiag.sms["VD_ID"])>0 and HcDiag.sms["VD_Button"] and tonumber(HcDiag.sms["VD_Button"])>0 then fibaro:call(HcDiag.sms["VD_ID"], "pressButton", HcDiag.sms["VD_Button"]); end end end else Debug("orange", "Warning : no notification options given"); end end timestampToDate = function(nTimestamp) -- Convertit un Timestamp en date lisible return os.date("%d/%m/%y à %X", nTimestamp) end SecondsToClock = function(sSeconds) -- Convertit un Timestamp en durée (code krikoff) local nSeconds = tonumber(sSeconds) if nSeconds == 0 then return "00:00:00"; else nHours = string.format("%02.f", math.floor(nSeconds/3600)); nMins = string.format("%02.f", math.floor(nSeconds/60 - (nHours*60))); nSecs = string.format("%02.f", math.floor(nSeconds - nHours*3600 - nMins *60)); return nHours.."H "..nMins.."Min "..nSecs.. "s" end end Minutes = function(sSeconds) -- Convertit un Timestamp en durée (code krikoff) local nSeconds = tonumber(sSeconds) if nSeconds == 0 then return "00"; else nMinutes = string.format("%02.f", math.floor(nSeconds/60)); return nMinutes end end local response, status, errorCode = HC2:GET("/api/settings/info"); if tonumber(status) == 200 then local result = json.decode(response); --fibaro:debug("Timestamp de boot: " .. result.serverStatus) --fibaro:debug("Date de boot: " .. timestampToDate(result.serverStatus)) --fibaro:debug("HC2 allumée depuis " ..SecondsToClock(os.time()-result.serverStatus)) fibaro:debug("HC2 allumée depuis " .. Minutes(os.time()-result.serverStatus).." minutes. Soit "..SecondsToClock(os.time()-result.serverStatus)) fibaro:call(thismodule,"setProperty","ui.time.value", "Up: ".. SecondsToClock(os.time()-result.serverStatus).." (at " .. os.date("%H:%M", os.time())..")"); end --fibaro:call(thismodule,"setProperty","currentIcon","1267"); local response, status, errorCode = HC2:GET("/api/diagnostics"); if tonumber(status) == 200 then local result = json.decode(response); --Utilisation de la RAM --local ramused = tonumber(result.memory) local ramused = tonumber(result.memory.used); local ramfree = 100 - ramused; ramused_pct = ramused .. "%"; ramfree_pct = ramfree .. "%"; fibaro:call(thismodule,"setProperty","ui.vlRAM0.value", "Utilisé : " .. ramused_pct); fibaro:call(thismodule,"setProperty","ui.vlRAM1.value", "Disponible : " .. ramfree_pct); if ramfree <= ram_treshold then HcDiag.notification("Ram used: ".. ramused_pct.. "Ram free: ".. ramfree_pct, "HC2 Ram Usage High !", HcDiag.notificationTypes); -- Send Alert end --Partition système local sused = tonumber(result.storage.internal[1].used); local sfree = 100 - sused; sused = sused .. "%"; sfree = sfree .. "%"; fibaro:call(thismodule,"setProperty","ui.vlSystem0.value", "Utilisé : " .. sused); fibaro:call(thismodule,"setProperty","ui.vlSystem1.value", "Disponible : " .. sfree); --Partition recovery local rused = tonumber(result.storage.internal[2].used); local rfree = 100 - rused; rused = rused .. "%"; rfree = rfree .. "%"; fibaro:call(thismodule,"setProperty","ui.vlRecovery0.value", "Utilisé : " .. rused); fibaro:call(thismodule,"setProperty","ui.vlRecovery1.value", "Disponible : " .. rfree); --Charge CPU local cpu0_puser = tonumber(result.cpuLoad[1].cpu0.user); local cpu1_puser = tonumber(result.cpuLoad[2].cpu1.user); local cpu0_pnice = tonumber(result.cpuLoad[1].cpu0.nice); local cpu1_pnice = tonumber(result.cpuLoad[2].cpu1.nice); local cpu0_psystem = tonumber(result.cpuLoad[1].cpu0.system); local cpu1_psystem = tonumber(result.cpuLoad[2].cpu1.system); local cpu0_pidle = tonumber(result.cpuLoad[1].cpu0.idle); local cpu1_pidle = tonumber(result.cpuLoad[2].cpu1.idle); local cpu0_PREVTOTAL = (cpu0_puser + cpu0_pnice + cpu0_psystem + cpu0_pidle); local cpu1_PREVTOTAL = (cpu1_puser + cpu1_pnice + cpu1_psystem + cpu1_pidle); --fibaro:debug("PREV TOTAL cpu_0: " .. cpu0_PREVTOTAL); --fibaro:debug("PREV TOTAL cpu_1: " .. cpu1_PREVTOTAL); fibaro:sleep(1000); local response1, status1, errorCode1 = HC2:GET("/api/diagnostics"); if tonumber(status1) == 200 then local result1 = json.decode(response1); local cpu0_user = tonumber(result1.cpuLoad[1].cpu0.user); local cpu1_user = tonumber(result1.cpuLoad[2].cpu1.user); local cpu0_nice = tonumber(result1.cpuLoad[1].cpu0.nice); local cpu1_nice = tonumber(result1.cpuLoad[2].cpu1.nice); local cpu0_system = tonumber(result1.cpuLoad[1].cpu0.system); local cpu1_system = tonumber(result1.cpuLoad[2].cpu1.system); local cpu0_idle = tonumber(result1.cpuLoad[1].cpu0.idle); local cpu1_idle = tonumber(result1.cpuLoad[2].cpu1.idle); local cpu0_TOTAL = (cpu0_user + cpu0_nice + cpu0_system + cpu0_idle); local cpu1_TOTAL = (cpu1_user + cpu1_nice + cpu1_system + cpu1_idle); --fibaro:debug("TOTAL cpu_0 : " .. cpu0_TOTAL); --fibaro:debug("TOTAL cpu_1 : " .. cpu1_TOTAL); local cpu0_Percentage = ( ( (cpu0_TOTAL - cpu0_PREVTOTAL) - (cpu0_idle - cpu0_pidle) ) / (cpu0_TOTAL - cpu0_PREVTOTAL) ) * 100; local cpu1_Percentage = ( ( (cpu1_TOTAL - cpu1_PREVTOTAL) - (cpu1_idle - cpu1_pidle) ) / (cpu1_TOTAL - cpu1_PREVTOTAL) ) * 100; cpu0_Percentage = round(cpu0_Percentage); cpu1_Percentage = round(cpu1_Percentage); cpu0_Percentage_pct = cpu0_Percentage .. "%"; cpu1_Percentage_pct = cpu1_Percentage .. "%"; fibaro:call(thismodule,"setProperty","ui.vlCPU0.value", "Coeur 1 : " .. cpu0_Percentage_pct); fibaro:call(thismodule,"setProperty","ui.vlCPU1.value", "Coeur 2 : " .. cpu1_Percentage_pct); --fibaro:debug(cpu0_Percentage_pct); --fibaro:debug(cpu1_Percentage_pct); if EmonCMS.PushToEmonCMS then payloademon = "CPU_0:" .. cpu0_Percentage; -- /1000 = convert to m3 EmonCMS.Push(payloademon); payloademon = "CPU_1:" .. cpu1_Percentage; -- /1000 = convert to m3 EmonCMS.Push(payloademon); payloademon = "RAM_USED:" .. ramused; EmonCMS.Push(payloademon); payloademon = "RAM_FREE:" .. ramfree; EmonCMS.Push(payloademon); payloademon = "MINUTES_UP:" .. nMinutes; EmonCMS.Push(payloademon); end fibaro:setGlobal("RamFree", ramfree); end else fibaro:debug("Try again "..deviceID.. " "..status) end
  16. sebcbien

    Support Gea

    @pepite, oui c'est possible pour des valeurs de vg, .... , mais pas pour deux détecteurs ou deux status de lampes ou des sceneActivation... Enfin je pense... Sent from my Note4
  17. sebcbien

    Monitoring Hc2 Et Reboot

    Ah c'est possible que j'aie rajouté l'ecriture de la vg par la suite... Je vais vérifier et éventuellement publier ma version. Sent from my Note4
  18. sebcbien

    Detection De Présence

    non, moi perso, les 503... je connais pas, sauf en cas de mise à jour du firmware... je touche du bois... souvent... mon bureau est en bois, ça doit aider
  19. sebcbien

    Monitoring Hc2 Et Reboot

    Voici ma "solution": 1) VD pour monitorer la ram: http://www.domotique-fibaro.fr/index.php/topic/3719-module-virtuel-hc2-diagnostics/page-3#entry98130 2) Lignes gea pour reboot de la hc2 si ram libre < à 35% Ces deux lignes préviennent la journée que un reboot aura lieu la nuit et à 2h45, si la ram libre est toujours < 25 % on reboote -------------SURVEILLANCE MEMOIRE-------------- GEA.add({{"Global-", "RamFree", 35}}, 30, "RAM inférieure à #value# - Reboot prévu cette nuit à 2h45", {{"Time", "21:00", "21:01"}}) -- Push si Ram faible GEA.add({{"Global-", "RamFree", 35}}, 30, "Reboot HC2 car RAM inférieure à 35% (#value#)", {{"Time", "02:45", "02:46"},{"VirtualDevice", id2["HC2_DIAGNOSTICS"], 15},{"Function", function() fibaro:sleep(1000) end},{"VirtualDevice", id2["HC2_DIAGNOSTICS"], 15}}) -- Reboot HC2 si RAM faible
  20. sebcbien

    Detection De Présence

    very strange... this means that the script found your phone but just after "lost" it ?!? [DEBUG] 03:10:57: Device e8:50:8b:de:92:e8 Has been found after 0 s [DEBUG] 03:10:57: Device e8:50:8b:de:92:e8 Has been NOT been found IMHO, you messed up the script somewhere.... Try to replace the code of the button with the latest one in this thread (post #235).
  21. sebcbien

    Detection De Présence

    tu as bien mis le code dans la main loop ? ce code est censé appuyer sur le bouton toutes les 2 minutes
  22. sebcbien

    Detection De Présence

    Regarde le debug du bouton et de la main loop, normalement ça tourne toutes les 2 minutesSent from my Note4
  23. sebcbien

    Detection De Présence

    Si tu as bien créé les variables globales, il te suffit de détecter leur changements par un script et générer des actions.J'ai mis dans le premier post des exemples pour GEA. Voir aussi le showroom gea (dans ma signature) pour d'autres exemples. Je te conseille de combiner avec d'autres états. Exemple: si Seb présent et détection mouvement salon, alors allumer la tv Sent from my Note4
  24. sebcbien

    Detection De Présence

    the debug you posted is the debug of the "scheduler" (main loop), there is nothing in the debug of the button ?
  25. dans ce vd, je joue beaucoup avec les slider, tu trouveras plein d'exemples de code: http://www.domotique-fibaro.fr/index.php/topic/6408-mise-%C3%A0-jour-rapide-des-virtual-devices-mais-faible-charge-sur-la-hc2/
×
×
  • Créer...