Aller au contenu

jojo

Membres confirmés
  • Compteur de contenus

    14 561
  • Inscription

  • Dernière visite

  • Jours gagnés

    186

Tout ce qui a été posté par jojo

  1. avant de te chopper une remarque des admin, ne cite pas le message juste au dessus. pour appeler un device en lua : fibaro:call(<ID Device>, "pressButton", "<# bouton>") tu retrouves l'ID du device dans l'url lorque tu es en mode edit du device. Pour retrouver le n° du bouton, suis l'explication de Did dans la section "HC pour les nuls"
  2. tu as bien mis ce code dans un bouton d'un VD ?
  3. jojo

    Disparition Des Modules

    regarde dans ma signature
  4. "(cet automne pas avant)" Tu ne veux pas mettre la pression, mais l'automne c'est dans 5 jours ...
  5. Lazer, si j'ai bien lu, le net.HTTPClient() et le pendant du net.HTTP pour les VD mais pour les Scènes. Il ne permet pas de faire du https
  6. jojo

    Disparition Des Modules

    cherche sur le forum, il y a des solutions proposées qui se basent sur une connexion Wifi pour savoir si tu es chez toi ou pas
  7. Voici une petite modif du player (je j'ai déjà partagée, je ne sais plus où) et qui joue donc un MP3. La modif permet de ne pas interrompre après environ 30s. tu verras la variable locale (FilePath) avec le chemin d'accès vers le fichier mp3 à jouer en début de script. rien ne t’empêche de mettre cette info dans une variable globale, et de la rappeler. ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- -- SONOS Play stream... -- Copyright © 2014 Jean-Christophe Vermandé ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ---------------------------------- -- User Settings ---------------------------------- ip = "192.168.xxx.xxx" port = 1400 FilePath = "//HPDS3615xs/music/iTunes/Sons/PoliceInformee.mp3" FileVol = 100 -- le fichier mp3 doit être dans la bibliothèque Sonos -- pour générer des MP3 : http://text2speech.us/# PlayUnlimited = "Yes" -- si <> Yes, arrêt après 30s environ ---------------------------------- -- DO not change bellow this line ---------------------------------- selfId = fibaro:getSelfId(); --ip = fibaro:get(selfId, 'IPAddress'); --port = fibaro:get(selfId, 'TCPPort') or 1400; currentTransportState = ""; lastTransportState = ""; currentVolume = 0; lastVolume = 0; ttsVolumeIsDifferent = false; urlencode = function(str) if (str) then str = string.gsub (str, "\n", "\r\n"); str = string.gsub (str, "([^%w ])", function (c) return string.format ("%%%02X", string.byte(c)) end); str = string.gsub (str, " ", "+"); end return str; end createRequestBody = function(action, schema, data) return string.format("<u:%s xmlns:u=\"%s\">%s</u:%s>", action, schema, data, action); end reponseCallback = function(fnc, args) if (fnc == nil) then return nil; end return fnc(args); end createSocket = function() -- Check IP and PORT before if (ip == nil or port == nil) then fibaro:debug("You must configure IPAddress and TCPPort first"); return; end local socket; local status, err = pcall(function() socket = Net.FTcpSocket(ip, port); socket:setReadTimeout(1000); end); if (status ~= nil and status ~= true) then fibaro:debug("socket status: " .. tostring(status or '')); end if (err ~= nil) then fibaro:debug("socket err: " .. tostring(err or '')); return; end return socket; end disposeSocket = function(socket) if (socket ~= nil) then socket:disconnect(); socket = nil; return true; end return false; end sendSoapMessage = function(url, service, action, args, callback, retry) local socket = createSocket(); if (socket == nil) then return; end retry = retry or 0 -- prepare data local url = "POST " .. url .. " HTTP/1.1"; local soapaction = "SOAPACTION: \"" .. service .. "#" .. action.name .. "\""; local body = createRequestBody(action.name, action.service, tostring(args or "")); local envelope = "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\" s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"><s:Body>" .. body .. "</s:Body></s:Envelope>"; local ctl = "Content-Length: " .. string.len(envelope); local payload = url .. "\r\n" .. ctl .. "\r\n" .. soapaction .. "\r\n" .. "\r\n" .. envelope; -- write data local bytes, errorcode = socket:write(payload); if (errorcode == 0) then local state, errorcode = socket:read(); if (errorcode == 0) then if (string.len(state or "") > 0) then -- callback if (callback ~= nil) then reponseCallback(callback, state); end -- dispose ... disposeSocket(socket); return true; else fibaro:debug("Error: Invalid response. response length: " .. string.len(state or "")); end else if (retry < 5) then fibaro:debug("retry #"..retry.." action: " .. action.name); return sendSoapMessage(url, service, action, args, callback, (retry + 1)); else fibaro:debug("Error: Code returned "..tostring(errorcode or "")); end end elseif (errorcode == 2) then fibaro:debug("Error: You must check your IP and PORT settings."); else if (retry < 5) then fibaro:debug("retry #"..retry.." action: " .. action.name); return sendSoapMessage(url, service, action, args, callback, (retry + 1)); else fibaro:debug("Error: Code returned "..tostring(errorcode or "")); end end -- dispose ... disposeSocket(socket); -- default response return false; end stop = function() return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "Stop", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID><Speed>1</Speed>", -- callback (options) function(response) fibaro:debug("stop sent"); end); end unMute = function() return sendSoapMessage( -- control url "/MediaRenderer/RenderingControl/Control", -- service type "urn:schemas-upnp-org:service:RenderingControl:1", -- action { name = "SetMute", service = "urn:schemas-upnp-org:service:RenderingControl:1" }, -- soap body data (options) "<InstanceID>0</InstanceID><Channel>Master</Channel><DesiredMute>0</DesiredMute>", -- callback (options) function(response) fibaro:debug("unMute sent"); end); end play = function(duration) return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "Play", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID><Speed>1</Speed>", -- callback (options) function(response) if (duration ~= nil) then fibaro:debug("play sent for " .. duration .. " seconds"); fibaro:sleep(duration); stop(); else fibaro:debug("play sent"); local n = 0; currentTransportState = "TRANSITIONING"; while (currentTransportState == "TRANSITIONING") do if (n > 10) then break end; getTransportState(); fibaro:debug(currentTransportState); fibaro:sleep(5000); n = n + 1; end local i = 0; currentTransportState = "PLAYING"; while (currentTransportState == "PLAYING") do if (i > 10 and PlayUnlimited ~= "Yes") then break end; getTransportState(); fibaro:debug(currentTransportState); fibaro:sleep(2000); i = i + 1; end fibaro:sleep(1000); stop(); end -- update volume with value before tts if different if (ttsVolumeIsDifferent == true) then setVolume(lastVolume); ttsVolumeIsDifferent = false; end end); end setVolume = function(value) return sendSoapMessage( -- control url "/MediaRenderer/RenderingControl/Control", -- service type "urn:schemas-upnp-org:service:RenderingControl:1", -- action { name = "SetVolume", service = "urn:schemas-upnp-org:service:RenderingControl:1" }, -- soap body data (options) "<InstanceID>0</InstanceID><Channel>Master</Channel><DesiredVolume>" .. tostring(value) .. "</DesiredVolume>", -- callback (options) function(response) fibaro:debug("Volume set: " .. value); end); end getVolume = function() fibaro:log("Get volume, please wait..."); return sendSoapMessage( -- control url "/MediaRenderer/RenderingControl/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "GetVolume", service = "urn:schemas-upnp-org:service:RenderingControl:1" }, -- soap body data (options) "<InstanceID>0</InstanceID><Channel>Master</Channel>", -- callback (options) function(response) currentVolume = tonumber(response:match("<CurrentVolume>(.+)</CurrentVolume>") or 0); end); end getTransportState = function() return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "GetTransportInfo", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID>", -- callback (options) function(response) currentTransportState = response:match("<CurrentTransportState>(.+)</CurrentTransportState>") or ""; end); end playFile= function(file, volume) return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "SetAVTransportURI", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID>,<CurrentURI>x-file-cifs:" .. file .. "</CurrentURI>,<CurrentURIMetaData></CurrentURIMetaData>", -- callback (options) function(response) -- retrieve current transport state getTransportState(); lastTransportState = currentTransportState; -- unmute before unMute(); -- retrieve volume getVolume(); lastVolume = currentVolume; -- set tts volume if <> with current if (volume ~= nil and volume ~= currentVolume) then setVolume(volume); ttsVolumeIsDifferent = true; end play(); end); end -- en paramètres: le fichier, puis le volume... playFile(FilePath, FileVol);
  8. jojo

    Je Vais Pas Tarder A Tout Jeter

    Dans ma signature, tu verras 2 outils de backup (et restore) des variables et panneaux de chauffage
  9. jojo

    Connexion De Mon Hc2 À Distance

    sebcbien, m'a expliqué qu'il y avait des gens qui s'amusaient àscanner les caméras accessibles depuis l'extérieur, et profitaient des failles des constructeurs pour regarder. Ils analysent tes habitudes, et il est facile alors de savoir quand tu es absent pour t'offrir un déménagement gratuit ...
  10. jojo

    Connexion De Mon Hc2 À Distance

    oui, la solution de mettre une adresse extérieur pour les cam fonctionne, MAIS sebcbien, m'a fait peur en me disant que c'était hyper dangereux d'ouvrir les ports pour des caméras. Donc je ne sais plus les voir qu'en VPN. et sur la fibaro, je les vois également si je suis en VPN ou via home.fibaro.com. Perso, je ne regarde pas mes cam via ma Fibaro, donc ce n'est pas trop grave si l'image n'est pas visible
  11. jojo

    Je Vais Pas Tarder A Tout Jeter

    si tu veux revenir en 3.6, c'est facile : recovery upgrade jusque 3.6 restore du backup pris avant la v4.x tu auras perdu : tes icônes ce que tu as fais depuis ton passage en v4.x
  12. demande au support fibaro si la v2.2 de tes FGS ne nécessite pas le firmware v4.x
  13. Lazer, Il me semble qu'en v4 on n'est plus limité comme en v3 http://www.domotique-fibaro.fr/index.php/topic/5669-se-passer-des-id-dans-vos-scenes-et-vd/?p=85435
  14. Bienvenue, Tu trouveras ton bonheure ici http://www.domotique-fibaro.fr/index.php/topic/1588-banque-icones-hc2-et-hcl/ et dans la galerie du forum
  15. merci de prendre le relais Lazer, car en effet je ne comprenais pas non plus, d'autant plus que je n'ai jamais été autant dans le détail du code
  16. jojo

    Disparition Des Modules

    donc, fait régulièrement des backups
  17. jojo

    Disparition Des Modules

    c'est normal, tout ce que tu as fait entre le dernier backup que tu as restauré et avant le crash est perdu
  18. as-tu regardé dans ma signature, il y a un auto pour configurer les caméras
  19. voici comment installer un plugin http://www.domotique-fibaro.fr/index.php/topic/4832-installer-un-plugin-utilisateur-en-40x/ mais !, il faut le désinstaller avant chaque update du firmware
  20. jojo

    Disparition Des Modules

    1) zen. 2) recovery (mais alors c'est normal que tout soit vide après un recovery) 3) restore d'un backup. Si ça ne vas pas, retour à2) ou à1) en fonction de ton état ...
  21. jojo

    Disparition Des Modules

    au minimum l'auto-backup avant l'upgrade de 4.049 à4.056
  22. jojo

    Disparition Des Modules

    et tes backup après le recovery ne sont pas disponibles ?
  23. ok rajouter l'erreur 117, mais la table API_CAMERA_ERROR_CODE n'est définie que dans le bouton List. Ne serait-ce pas mieux de le rajouter dans la table API_AUTH_ERROR_CODE, qui existe dans tous les boutons ?
  24. @sebcbien, je te promets, je n'ai rien bu. Mais je ne comprends plus rien, sauf que peut-être que l'utilisateur que tu as renseigné ne serait pas admin de tes caméras (cfr le 1° post de Lazer) Je veux bien regarder, mais comme tu sembles être le seul àavoir des problèmes, ce sera plus difficile : il faudrait que je puisse reproduire l'erreur (mais laquelle ?) chez moi
  25. Le cloud pour Nest, oui. Mais aussi pour NetAtmo ? Je sais que cette option existe (et est probablement proposée par defaut) mais est-elle obligatoire ? Sebcbien qui est également très àcheval sur la sécurité en a un, Il pourrait peut-être en dire plus
×
×
  • Créer...