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. sebcbien

    Support Gea

    Oui il y a un paramètre au début du script, ....=30 mais sakkhho me fait douter de pouvoir descendre en dessous de 30. Plus on peut ), ça c'est sur. Sent from my SM-N910F using Tapatalk
  2. sebcbien

    Hc2 Usb Recovery Tweaks

    Et le VPN, c'est pour les chiens ? ;-) Blague à part, pour moi et ma femme, l'accès via home.fibaro est dispo à 99,5% ... franchement je ne me plais pas trop. Si vraiment y'a un stuut, je lance mon vpn Quand on voit le log d'un raspberry avec son ssh ouvert sur internet (port 22, ok avec le 12354 y'a moins) ça fait peur... Alors une box non mise à jour, 24h/24, il faut aime rle risque ;-) p.s. va dormir, demain c'est école ! ;-)
  3. Tu veux parler du iPencil ou de la tablette pro ? ;-)
  4. sebcbien

    Hc2 Usb Recovery Tweaks

    Bonjour, Je ne sais pas trop ou poster cette question, mais ici ça me semble un endroit ou j'aurai des réponses :-) Question: Quelle est la version de la debian et est-ce que vous pensez que fibaro met le système à jour... (du pont de vue sécurité linux) Je rechigne toujours à ouvrir ma box sur internet, même pour une demande de support Fibaro Merci !
  5. Je viens d'aller voir mes graphes pour analyser deux trois trucs et je me rends compte aussi que c'est bien le boxon effectivement, mélanger des petites consos à des grosses, fait que les petites sont invisibles... Donc pouvoir faire quelques tableaux séparés serait d'une grande aide. Moi une config simple (via fichier de config) ce serait déjà bien utile, on ne fait pas souvent ce genre de travail. p.s. pourquoi as-tu besoin de créer de nouvelles tables pour cela ? ce n'est pas au niveau de la page php d'aller chercher les séries qu'il a besoin pour le graphique et ignorer les autres ?
  6. Un fgd 211 ou 212 ? Sent from my SM-N910F using Tapatalk
  7. Rhooooo c abuser Jojo ;-) Sent from my SM-N910F using Tapatalk
  8. sebcbien

    Support Gea

    Tu peux changer le paramètre mais ce n'est pas trop recommandé. Et puis tu ne risques pas d'économiser beaucoup ;-) Sent from my SM-N910F using Tapatalk
  9. Moi ça me plaît. Le problème c'est qu'il y a déjàeu ce genre de choses (je l'avais fait sur le forum officiel) mais après quelques temps ce n'est plus mis àjour et on revient sur le forum... Sur le principe ok, mais sur la durée de vie, je suis sceptique. Sent from my SM-N910F using Tapatalk
  10. Il y a smarthings, je n'en ai entendu que du bien et élue meilleure solution... Aux states... Sent from my SM-N910F using Tapatalk
  11. désolé du retard, mis de côté puis oublié de répondre :-/ Voici le résumé des modifications: J'ai un vrai synology, ceci explique peut être la différence ? (surveillance station V7.x) et dernière version du dsm en cours 1) Ajout de la table api camera error code avec entrée 117 (ligne 46 du code ci-dessous) J'ai mis aussi la table ptz, inutile je pense, mais comme dirait ma femme, .. on ne sais jamais ;-) bref, on peut l'enlever mais maintenant c'est la même série pour tous les boutons. 2) Versions de l'api qui donne l'erreur suivante: [DEBUG] 18:14:56: Error : Synology API version is too old : DSM 4.0-2251 and Surveillance Station 6.3 are required code avec la table camera (mais manque l'entrée de l'erreur 117) http://www.domotique-fibaro.fr/index.php/topic/709-piloter-lenregistrement-des-cam%C3%A9ras-avec-synology-surveillance-station/page-13#entry85858 et code complet avec modification de la ligne 170 pour la version de l'api: (177 du code ci-dessous) maxVersion >= 3 au lieu de maxVersion >= 2 3) Modification pour le start/stop: (&version= 1 au lieu de &version=2) (ligne 127 du code ci-dessous) http://www.domotique-fibaro.fr/index.php/topic/709-piloter-lenregistrement-des-cam%C3%A9ras-avec-synology-surveillance-station/page-13#entry85859 Voici le code complet (pour le bouton start stop): -------------------------------------------------- -- Module : Synology Surveillance Station v4 -- Button : Start/Stop recording -- Author : Lazer -------------------------------------------------- -- User configurable variables local login = "XXXXXXXX" local password = "XXXXXXXXX" local cameras = {1,2,4,5,6} local action = "start" -- start/stop/Enable/Disable -- System variables local debug_trace = false error = false local selfID = fibaro:getSelfId() local ip = fibaro:get(selfID, 'IPAddress') local port = fibaro:get(selfID, 'TCPPort') local Synology = Net.FHttp(ip, tonumber(port)) local API_COMMON_ERROR_CODE = { [100] = "Unknown error", [101] = "Invalid parameters", [102] = "API does not exist", [103] = "Method does not exist", [104] = "This API version is not supported", [105] = "Insufficient user privilege", [106] = "Connection time out", [107] = "Multiple login detected" } local API_AUTH_ERROR_CODE = { [100] = "Unknown error.", [101] = "The account parameter is not specified.", [400] = "Invalid password.", [401] = "Guest or disabled account.", [402] = "Permission denied.", [403] = "One time password not specified.", [404] = "One time password authenticate failed." } local API_RECORD_ERROR_CODE = { [400] = "Execution failed.", [401] = "Parameter invalid.", [402] = "Camera disabled." } local API_CAMERA_ERROR_CODE = { [117] = "Not Enough Permission or access denied.", [400] = "Execution failed.", [401] = "Parameter invalid.", [402] = "Camera disabled." } local API_PTZ_ERROR_CODE = { [400] = "Execution failed.", [401] = "Parameter invalid.", [402] = "Camera disabled." } -- Message function function Message(log_msg, label_msg, trace, debug_msg) if log_msg then fibaro:log(log_msg) end if debug_msg and (debug_trace or trace) then fibaro:debug(debug_msg) end if label_msg then fibaro:call(selfID, "setProperty", "ui.LabelStatus.value", label_msg) fibaro:setGlobal('SurvStation_Status', label_msg) end end -- Get Cameras list local camera = false if cameras then for k, v in ipairs(cameras) do if v > 0 then Message(nil, nil, false, "cameras{} exists") camera = true break end end end if not camera then local label = fibaro:get(selfID, "ui.LabelCameras.value") if label ~= nil and label ~= "" then Message(nil, nil, false, "Create cameras{}") cameras = json.decode(label) end end Message(nil, nil, false, "cameras{} : " .. json.encode(cameras)) -- génération d'un nouvel SID function GetSID() -- Create new login session fibaro:debug("Request new SID") payload = "/webapi/"..pathAuth.."?api=SYNO.API.Auth&method=Login&version=2&account="..login.."&passwd="..password.."&session=SurveillanceStation&format=sid" Message(nil, nil, false, payload) response, status, errorCode = Synology:GET(payload) if tonumber(errorCode) == 0 and tonumber(status) == 200 then if response ~= nil and response ~= "" then jsonTable = json.decode(response) if jsonTable.success == true then fibaro:setGlobal('SurvStation_SID', jsonTable.data.sid) Message(nil, nil, true, "Synology API Auth OK") else fibaro:debug('<span style="color:red;">Error : API Authentication failure, '..(API_AUTH_ERROR_CODE[tonumber(jsonTable.error.code)] or API_COMMON_ERROR_CODE[tonumber(jsonTable.error.code)] or "???")..'</span>') end else fibaro:debug('<span style="color:red;">Error : API Authentication failure, empty response</span>') end else fibaro:debug('<span style="color:red;">Error : API Authentication failure, errorCode='..errorCode..', status='..status..'</span>') end end -- Destroy current login session function Destroy() -- fibaro:debug("Destroy current SID") payload = "/webapi/"..pathAuth.."?api=SYNO.API.Auth&method=Logout&version=2&session=SurveillanceStation&_sid="..SID response, status, errorCode = Synology:GET(payload) end -- Start or stop external recording of a camera function Action() for i = 1, #cameras do if action == "start" or action == "stop" then payload = "/webapi/"..pathRecord.."?api=SYNO.SurveillanceStation.ExternalRecording&method=Record&version=1&cameraId="..cameras[i].."&action="..action.."&_sid="..SID else payload = "/webapi/"..pathCamera.."?api=SYNO.SurveillanceStation.Camera&method="..action.."&version=3&cameraIds="..cameras[i].."&_sid="..SID end Message(nil, nil, false, payload) response, status, errorCode = Synology:GET(payload) if tonumber(errorCode) == 0 and tonumber(status) == 200 then if response ~= nil and response ~= "" then jsonTable = json.decode(response); if jsonTable.success == true then if action == "start" or action == "stop" then Message("OK", action.." OK", true, '<span style="color:green;">Synology Surveillance Station '..action..' recording for camera "'..tostring(cameras[i])..'" OK</span>') else Message("OK", action.." OK", true, '<span style="color:green;">Synology Surveillance Station '..action..' camera "'..tostring(cameras[i])..'" OK</span>') end else if action == "start" or action == "stop" then Message("Erreur", action.." failed", true, '<span style="color:red;">Synology Surveillance Station '..action..' recording for camera "'..tostring(cameras[i])..'" FAILED : '..(API_RECORD_ERROR_CODE[tonumber(jsonTable.error.code)] or API_COMMON_ERROR_CODE[tonumber(jsonTable.error.code)] or "???")..', '..response..'</span>') else Message("Erreur", action.." failed", true, '<span style="color:red;">Synology Surveillance Station '..action..' camera "'..tostring(cameras[i])..'" FAILED : '..(API_CAMERA_ERROR_CODE[tonumber(jsonTable.error.code)] or API_COMMON_ERROR_CODE[tonumber(jsonTable.error.code)] or "???")..', '..response..'</span>') end if tonumber(jsonTable.error.code) == 105 then error = true end end else if action == "start" or action == "stop" then Message("Erreur", action.." failed", true, '<span style="color:red;">Synology Surveillance Station '..action..' recording for camera failed, empty response</span>') else Message("Erreur", action.." failed", true, '<span style="color:red;">Synology Surveillance Station '..action..' camera failed, empty response</span>') end end else if action == "start" or action == "stop" then Message("Erreur", action.." failed", true, '<span style="color:red;">Synology Surveillance Station '..action..' recording for camera failed, errorCode='..errorCode..', status='..status..', response='..(response or "")..'</span>') else Message("Erreur", action.." failed", true, '<span style="color:red;">Synology Surveillance Station '..action..' camera failed, errorCode='..errorCode..', status='..status..', response='..(response or "")..'</span>') end end end end -- Discover available APIs and corresponding information if action == "start" or action == "stop" or action == "Enable" or action == "Disable" then -- only if a valid action fibaro:call(selfID, "setProperty", "ui.LabelStatus.value", action.."...") payload = "/webapi/query.cgi?api=SYNO.API.Info&method=Query&version=1&query=SYNO.API.Auth,SYNO.SurveillanceStation.ExternalRecording,SYNO.SurveillanceStation.Camera" Message(nil, nil, false, payload) response, status, errorCode = Synology:GET(payload) if tonumber(errorCode) == 0 and tonumber(status) == 200 then if response ~= nil and response ~= "" then jsonTable = json.decode(response); if jsonTable.data["SYNO.API.Auth"].maxVersion >= 3 and jsonTable.data["SYNO.SurveillanceStation.Camera"].maxVersion >= 2 then Message(nil, nil, true, "Synology API version OK") pathAuth = jsonTable.data["SYNO.API.Auth"].path pathRecord = jsonTable.data["SYNO.SurveillanceStation.ExternalRecording"].path pathCamera = jsonTable.data["SYNO.SurveillanceStation.Camera"].path Message(nil, nil, false, "Synology API Auth path = "..pathAuth) Message(nil, nil, false, "Synology API Surveillance Station Record path = "..pathRecord) Message(nil, nil, false, "Synology API Surveillance Station Camera path = "..pathCamera) SID = fibaro:getGlobal('SurvStation_SID') if SID == nil or SID == "" then Destroy() GetSID() SID = fibaro:getGlobal('SurvStation_SID') end Message(nil, nil, false, "Synology API Auth SID = "..SID) Action() if error == true then Destroy() GetSID() SID = fibaro:getGlobal('SurvStation_SID') Action() end else Message("Erreur", action.." failed", true, '<span style="color:red;">Error : Synology API version is too old : <b>DSM 4.0-2251</b> and <b>Surveillance Station 6.3</b> are required</span>') end else Message("Erreur", action.." failed", true, '<span style="color:red;">Error : Can not connect to Synology server, empty response</span>') end else Message("Erreur", action.." failed", true, '<span style="color:red;">Error : Can not connect to Synology server, errorCode='..errorCode..', status='..status..', ip='..ip..', port='..port..', payload='..payload..', response='..(response or "")..'</span>') end else Message("Erreur", action.." failed", true, '<span style="color:red;">Error : Not a valid action.</span>') end
  12. le script plante a cause de la gestion d'erreur ;-) Quand il ne trouve pas ce tableau: Il faut donc l'ajouter dans le code de tous les boutons local API_CAMERA_ERROR_CODE = { [117] = "Not Enough Permission or access denied.", [400] = "Execution failed.", [401] = "Parameter invalid.", [402] = "Camera disabled." }
  13. oki doki, super, ce sera facile à adapter. Petite remarque concernant j'ai choisi des ID 2000, 3000, 4000 etc pour ce genre de devices) Avec leurs conneries de migration et mon alarme satel, je suis déjà dans les ID ... 1900 ... :-/ ça semble loin, mais dans certains cas on y est donc vite
  14. La possibilité de pousser des données à partir d'autres devices en json me plait beaucoup. Pour info, voici comment je pousse les données vers http://emoncms.org/site/home site spécialisé en récupération et affichage de données graphiques (gratuit... pour le moment:) Le code est opensource et ils ont apparement une méthode très efficace pour stocker des donnée sérialisées. C'est du json et c'est formaté comme ceci: VARIABLE:valeur&apikey=XXXXXX on peut laisser tomber l'apikey évidemment (exemple pour remonter mes consomations etc...: local emoncms = Net.FHttp("emoncms.org",80) local emoncms_api_key = "XXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXXX" function EmonCMS:Push(payloademon) payloademon = "/input/post.json?json={" .. payloademon .. "}&apikey=" .. emoncms_api_key response, status, errorCode = emoncms:GET(payloademon); fibaro:debug("response: " .. response .. " Status: " .. status .. " errorcode: " .. errorCode); end payloademon = "CONSO_EAU_VILLE:" .. tonumber(INDEX_EAU/1000) -- /1000 = convert to m3 EmonCMS:Push(payloademon); payloademon = "CONSO_GAZ:" .. tonumber(INDEX_GAZ/1000) -- /1000 = convert to m3 EmonCMS:Push(payloademon); payloademon = "CONSO_ELEC:" .. tonumber(Conso_Elec_Index) EmonCMS:Push(payloademon); payloademon = "CONSO_ELEC_INSTANT:" .. tonumber(Conso_Elec_Instant) EmonCMS:Push(payloademon); payloademon = "TEMP_SALON:" .. tonumber(temperature_salon_flood) EmonCMS:Push(payloademon); payloademon = "TEMP_HALL:" .. tonumber(temperature_hall_aeon) EmonCMS:Push(payloademon); payloademon = "HUMI_HALL:" .. tonumber(humidite_hall_aeon) EmonCMS:Push(payloademon); etc...
  15. tout est àtester au cas par cas, il est peut être un peu tôt pour tirer définitivemet une conclusion. En tout cas, en gardant mes courants induits relativement élevés, ils ont réussi àle faire fonctionner (pour le moment en tout cas). J'imagine donc qu'il y a des mécanismes qui prennent ça en compte, peut être pas parfaitement.. Franchement je ne croyais pas qu'ils arriveraient àle résoudre..
  16. C'est un setup à risque pour le 212, le 211 a une autre technologie moins sensible. Si les fils de commande ne courrent pas à côté de fils conducteur, il n'y a pas ou beaucoup moins de courant induit/tension fantôme Bien réfléchi (ça fait mal à la tête ) c'est 5m en ligne droite, avec la descente et la montée, je suis peut être à 8m
  17. C'est un nouveau produit, apparemment il y a assez peu de problèmes. Ils ont donc pris le temps d'analyser le "bug" et vont le corriger dans un prochain firmware probablement. Je croise les doigts pour les autres bugs. Ici ce bug/comportement est du au fait que j'ai une forte tension fantôme et de longs(5m) fils de commande. Ce bug n'arrivera pas àtout le monde donc. Sent from my SM-N910F using Tapatalk
  18. Ils se sont re-connecté à ma box cet après midi et ont fait énormément de tests. Ils ont trouvé que en mettant le paramètre 6 à 0.03s, le problème était résolu. A confirmer dans la durée, mais j'ai répliqué ça à un autre dimmer et ça à résolu le bug également.
  19. Ah c cool, merci, j'arrive :-) Sent from my SM-N910F using Tapatalk
  20. Ils se sont connecté aujourd'hui àma box pour le problème d'ordre zwave et continuerons demain. Bien sur je vous tiens au courant si ils trouvent des solutions... Sent from my SM-N910F using Tapatalk
  21. Bon, j'ai testé, et si je peux vous donner un conseil, pour le moment, attendez... il y a déjà 4-5 problèmes rencontrés... oui oui 1) association, impossible avec une 4.056 d'associer un fgd 212 http://forum.fibaro.com/index.php?/topic/19405-dimmer-2-and-association/ 2) disco light une a deux fois par soirée, le dimmer décide de détendre l'ambiance pendant quelques secondes (pouvant aller même jusqu'a 15 secondes.... mes lampes commencent à clignoter comme des folles, à une fréquence de 1 à 3 cligottement par seconde... http://forum.fibaro.com/index.php?/topic/19472-dimmer-2-and-the-light-started-flashing-like-in-a-disco/ 3) si vous connectez deux interrupteurs à un fgd 212, le deuxième éloigné de quelques mètres va induire un bug étrange: si vous voulez allumer le dimmer via le réseau (et non via un poussoir), le premier ordre ne sera pas pris en compte.... probablement à cause de la tention induite qui est présente sur les longs fils qui voyagent à côté d'autres. une tension "fantome" de quelques dzaines de volts apparaît souvent et perturbe le fgd 212 http://forum.fibaro.com/index.php?/topic/19382-fibaro-dimmer-2-and-light-goes-off-after-less-than-1-asecond/ 4) ne peut pas fonctionner sans charge. en effet, à sa mise sous tention, le dimmer teste la charge connectée; sans charge, il se "désactive". Comme j'utilise des dimmers derrière des poussoirs juste pour démarer des scènes ou commander d'autres devices, ceci n'est plus possible) http://forum.fibaro.com/index.php?/topic/19495-fgd-212-not-working-without-load/ 5) mineur: le slider de l'interface fait du yoyo quand on allume un dimer je voulais tester, bah là j'ai une idée... :-/
  22. L'erreur était due àun utilisateur qui n'avais pas assez de droits. J'avais généré ce sid avec un compte admin, mais une fois le sid généré, j'avais mis un autre user. Or, si on change user/password dans le script lua après avoir généré un sid, ça n'a pas d'impact car le système utilisé toujours le sid précédent. Je pensais donc que ça marchait. Mais après quelques jours, lorsque le sid àexpiré, le nouveau généré (avec un user qui n'avait pas assez de droits) donnait une erreur 117. L'erreur 117 n'existait pas et le script plantais. Il faut donc ajouter l'erreur 117 àAPI_CAMERA_ERROR_CODE ... Et cette variable doit être présente dans le script derrière chaque bouton (elle n'y est pas dans ta dernière version) car sinon le script plante au lieu de retourner une erreur. Sent from my SM-N910F using Tapatalk
  23. note to self: erreur 117 = pas assez de permissions... ce qui est fou c'est que ça marche depuis un mois, que je n'ai pas changé de version, ni de droits et que ça marchait... ?!? bref, on peut ajouter ceci: local API_CAMERA_ERROR_CODE = { [117] = "Not Enough Permission or access denied.", [400] = "Execution failed.", [401] = "Parameter invalid.", [402] = "Camera disabled." } edit: ok j'ai compris... j'avais utilisé admin pour enable et disable, donc le sid a été généré avec. ensuite une fois le sid bon, on peut mettre n'importe quel user/passwor, ça fonctionnera jusqu'a ce que le sid soit révoqué
  24. DSM: dernier en date: 5.2-5592 Update 4 date: 2015/09/04 Surveillance station: V7.0-3706
  25. il suffit d'utiliser sa logique pour afficher les devices dans ta liste. Je n'ai modifié que la partie "scan" de ton script Le script que j'ai posté, je le met derrière le bouton éteindre de ton VD
×
×
  • Créer...