Aller au contenu

mprinfo

Membres confirmés
  • Compteur de contenus

    14 328
  • Inscription

  • Dernière visite

  • Jours gagnés

    239

Tout ce qui a été posté par mprinfo

  1. Par contre si tu t'y connais en childs tu pourrais ajouter un child avec la consommation du port sa serait top Ça fait trop longtemps que j'ai pas touché au lua est je ne me sens pas capable de faire un code assez propre pour les childs Envoyé de mon BLA-L29 en utilisant Tapatalk
  2. Aucun soucis pour les switchs poe il faut juste mettre l'adresse mac du switch le QA fait le reste J'ai juste un doute sur l'ordre des ports dans la table. Donc si c'est pas le bon port qui s'active j'ai déjà la solution [emoji16] Envoyé de mon BLA-L29 en utilisant Tapatalk
  3. Je pense que c'est uniquement sur un QA Envoyé de mon BLA-L29 en utilisant Tapatalk
  4. @toniyC voila pour le QA UDM_Pro_-_POE_On_OFF_v0.3.fqa Attention c'est une version stable mais qui n'a aucune vérification en cas d'erreur, a voir aussi pour la mise a jour de l'affichage la fonction On/off ce fait via la fonction inversement donc si auto -> off et si off -> auto j'ai pas fais un filtre sur le numéro de port sur l'udm ils sont dans l'ordre donc a voir si cela fonctionne sur un switch poe enfin si c'est le bon port qui est actionné pour pouvoir modifier un port il faut passé par un profils "port_overrides" donc on récupère une table sur le switch"port_overrides" On modifie la valeur "poe_mode" sur auto ou off La je n'ai fais que pour un port mais pour un même switch on pourrait faire une table avec plusieurs ports Il faut aussi récupère Id_profils du switch car on en aura besoin pour l'url du PUT Pour les caméras je préfère rester chez hikvision même si les prix on augmenté chez aliexpress et surveillance station de plus le QA de @lazer et pas trop mal J'ai vu je sais plus ou que l'udm qu'avec un nombre important de caméra avait tendance à ramer. Il faudrait voir avec @krikroff qui a il me semble des caméras unifi. Moi j'attends un bon prix sur un switch USW-48-Pro Poe ou alors je prendrais un 48 ports non poe et un petit switch unifi poe a voir au niveau de la consommation électrique le plus avantageux des 2
  5. mprinfo

    black friday 2021

    Les 14to sont à 220 euros Envoyé de mon BLA-L29 en utilisant Tapatalk
  6. C'est vrai que l'un ou l'autre procure de la chaleur [emoji23] Envoyé de mon BLA-L29 en utilisant Tapatalk
  7. @lazer bien sur que tu peux te permettre et surtout n'hésite pas [emoji3] J'y ai pensé, je voulais mettre des childs pour switcher les ports POE et aussi des childs pour la consommation de chaque POE active Le probléme c'est que j'ai beaucoup de mal avec les childs, avec les class j'y comprends rien Ensuite ce QA est au niveau de l'OS unifi je n’interroge pas le controleur. Donc si une personne qui n'a pas d'udm ça rend la chose plus compliqué l'autre soucis si tu as plusieurs switch POE il faut gérer tout cela c'est pas insurmontable mais çà commence a être chaud Pour modifier un port POE il faut récupérer le profil de tout les ports du switch puis ensuite faire un PUT et la les childs pour un même switch serait intéressant En plus on doit via l'adresse mac du switch récupérer le ID_profil afin d'avoir l'url pour le PUT voila le code pour faire cela - By MPRInfo -- Version 0.20-- UDM Pro SE et UDM Pro gestion des ports POE-- Date 24/01/2022-------------------------------------------------------------------------------------------------------------------------- connection au controleueur et recupération du cookie ------------------------------------------------------------------------------------------------------------------------function QuickApp:loginUnifi()if self.cookie == nil then self.http:request("https://"..self.controller..":443/api/auth/login", { options = { checkCertificate = false, method = 'POST', headers = {["content-type"] = "application/json",}, data = json.encode({['username'] = self.login,['password'] = self.password})}, success = function(response)--print("status = ", response.status)--print("response",json.encode(response.data))--print("['Set-Cookie'] = ", response.headers['Set-Cookie'])--print("['X-CSRF-Token'] = ", response.headers['X-CSRF-Token'])if response.status == 200 then self.cookie = response.headers['Set-Cookie'] self.CSRF = response.headers['X-CSRF-Token'] self:trace("X-CSRF-Token = ", self.CSRF)--self:debug("loginUnifi() Connecté")--self:debug("Cookie = ", self.cookie)endend, error = function(error) self:error("loginUnifi() Erreur: ", json.encode(error))end})endend-------------------------------------------------------------------------------------------------------------------------- Mise a jour du profil des ports------------------------------------------------------------------------------------------------------------------------function QuickApp:SaveProfilPorts()--print("----------------------------------------------------------- SaveProfilPorts()")local dataProfil = {["port_overrides"] = self.POE_Profiles}if self.cookie ~= nil then self.http:request(self.URL.."rest/device/"..self.id, { options = { checkCertificate = false,--method = 'POST', method = 'PUT', headers = {["content-type"] = "application/json",["Accept"] = "application/json",['Cookie'] = self.cookie,['X-CSRF-Token']=self.CSRF}, data = json.encode(dataProfil)}, success = function(response)--print("sucess", json.encode(response))--print("response.status", response.status)end, error = function(error) self.cookie = nil self:error("SaveProfilPorts() échoué: ", json.encode(error))end})end end-------------------------------------------------------------------------------------------------------------------------- Recupération du profil des ports POE------------------------------------------------------------------------------------------------------------------------function QuickApp:LoadProfilPorts()--print("----------------------------------------------------------- LoadProfilPorts()")if self.cookie ~= nil then self.http:request(self.URL.."stat/device", { options = { checkCertificate = false, method = 'GET', headers = {["content-type"] = "application/json",["Accept"] = "application/json",['Cookie'] = self.cookie}}, success = function(response) --print("response.status", response.status)--print(json.encode(response.data))if response.status == 200 thenlocal POE_Port = tonumber(self:getVariable("Port_POE"))local POE_Profil = json.decode(response.data)if POE_Profil['meta']['rc'] == "ok" then -- Si reponse OK--self:trace("Nombres devices UNIFI : "..#POE_Profil["data"])for i=1,#POE_Profil["data"] do -- Scan des devices UNIFI-- Recherche du profil du Switch avec la MAC if POE_Profil["data"][i]["mac"] == self:getVariable("MAC_Switch") then -- Recherche du profil du Switch avec la MAC--self:trace(i.." - "..POE_Profil["data"][i]["mac"].." - "..POE_Profil["data"][i]["ip"]) self.id = POE_Profil["data"][i]["device_id"] -- ID du profile du switch self:trace("Nombres ports Switch : "..#POE_Profil["data"][i]["port_overrides"])-- si auto alors off sinon auto alors auto if POE_Profil["data"][i]["port_overrides"][POE_Port]["poe_mode"] == "auto" then POE_Profil["data"][i]["port_overrides"][POE_Port]["poe_mode"] = "off" self:trace(POE_Profil["data"][i]["ip"].." - Port POE : "..POE_Port.." - Off") self:updateProperty("value", false)else POE_Profil["data"][i]["port_overrides"][POE_Port]["poe_mode"] = "auto" self:trace(POE_Profil["data"][i]["ip"].." - Port POE : "..POE_Port.." - Auto") self:updateProperty("value", true)end--print(POE_Profil["data"][i]["port_overrides"][POE_Port]["port_idx"]) self.POE_Profiles = POE_Profil["data"][i]["port_overrides"] -- Recupération du profil (tout les ports) endend self:SaveProfilPorts()endendend, error = function(error) self.cookie = nil self:error("LoadProfilPorts() échoué: ", json.encode(error))end})end end-------------------------------------------------------------------------------------------------------------------------- boucle principale ------------------------------------------------------------------------------------------------------------------------function QuickApp:mainLoop()--- frequency self.frequency = self:getVariable("frequency") assert(self.frequency ~= "", "la fréquence n'est pas définie") self.frequency = tonumber(self.frequency) assert(self.frequency ~= nil, "la fréquence n'est pas un nombre")--- login self.login = self:getVariable("login")--- password self.password = self:getVariable("password")--- IP URL self.controller = self:getVariable("IP_UDM_Pro") self.URL = "https://"..self.controller..":443".."/proxy/network/api/s/default/" self.http = net.HTTPClient({ timeout = 3000 }) self:loginUnifi() fibaro.setTimeout(4*1000, function() self:LoadProfilPorts()end) fibaro.setTimeout(self.frequency * 1000/30, function()--self:mainLoop()end)end----------------------------------------------------------------------------------------------------------------------- Initialisation du QA---------------------------------------------------------------------------------------------------------------------function QuickApp:onInit()-- __TAG = "QA_UDM_Pro_POE_" .. plugin.mainDeviceId self:updateProperty("log", "Port: "..self:getVariable("Port_POE"))end----------------------------------------------------------------------------------------------------------------------- Gestion des bouton turnOn et turnOff---------------------------------------------------------------------------------------------------------------------function QuickApp:turnOn()--self:debug("binary switch turned on") self:updateProperty("value", true) self:mainLoop()endfunction QuickApp:turnOff()--self:debug("binary switch turned off") self:updateProperty("value", false) self:mainLoop() end
  8. @tonyC parfait j'ai un QA pour faire un On/Off sur un port POE si tu veux
  9. je voulais juste montré que le template et bien présent avec le nouveau moteur Z-wave voila ce que cela donne en déroulant
  10. Si cela intéresse quelqu'un une version pour UDM Pro est disponible
  11. Nouvelle version 1.10 Ajout d'un bouton pour le reboot de l'udm correction du crash qu QA toutes les 60 mm Ajout du X-CSRF-Token indispensable pour les POST et les PUT Corrections de bugs mineurs Fichier QA : UDM_Pro_V1.10.fqa
  12. Oui vivement une stable car je sais pas ce que j'ai fais lors de mes recovery. Mais j'ai plus de système B. Donc condamné à utiliser une bêta [emoji24] Envoyé de mon BLA-L29 en utilisant Tapatalk
  13. @Lazer je suis cela un peu de loin pour le moment c'est encore au stade de projet Perso je vais rester en dsm 6 encore un moment cela me suffit amplement Envoyé de mon BLA-L29 en utilisant Tapatalk
  14. Quelques news pour dsm 7 https://xpenology.com/forum/topic/55087-tuto-dsm-7-pour-proxmox-en-8-minutes/&share_tid=55087&share_fid=107315&share_type=t&link_source=app Envoyé de mon BLA-L29 en utilisant Tapatalk
  15. J'ai une petite question con Si tu produits trop tu es obligé de l'envoyer sur le réseau edf ? Envoyé de mon BLA-L29 en utilisant Tapatalk
  16. <?php /** * Exemple d'utilisation de l'API PHP pour activer le PoE des ports de commutation sélectionnés sur "off" ou "auto" * * contribué par : @Kaltt * description : un cas d'utilisation de ce script consiste à désactiver le PoE du port auquel une caméra est connectée afin d'éteindre la caméra * * utilisation : si le fichier est appelé via une URL Web, il doit être appelé comme suit : update_switch_poe-mode.php?poe_mode=off * Si le fichier est appelé via la ligne de commande, il doit être appelé comme suit : php update_switch_poe-mode.php off * Les valeurs peuvent être "off" ou "auto" */ /** * en utilisant le chargeur automatique de compositeur */ require_once 'vendor/autoload.php' ; /** * inclure le fichier de configuration (placez-y vos identifiants, etc. s'ils ne sont pas déjà présents) * voir le fichier config.template.php pour un exemple */ require_once 'config.php' ; /** * le site à utiliser pour se connecter au contrôleur */ $ site_id = '<nom court d'un site auquel les informations d'identification utilisées ont accès>' ; /** * l'adresse MAC de l'appareil AC-IW à reconfigurer */ $ device_mac = '<entrez l'adresse MAC>' ; /** * $lanports est un tableau qui définit quels ports doivent être modifiés */ $ ports_lan = [ 6 ]; /** * Il s'agit de la fonction qui lit la configuration actuelle du port et modifie la valeur de poe_mode pour les ports définis dans $lanports */ fonction update_ports ( $ running_config , $ ports , $ poe_mode ) { /** * Mettre à jour les ports déjà non par défaut */ $ running_config_count = count ( $ running_config ); for( $ je = 0 ; $ je < $ running_config_count ; $ je ++){ if ( in_array ( $ running_config [ $ i ]-> port_idx , $ ports )){ $ running_config [ $ i ]-> poe_mode = $ poe_mode ; unset( $ ports [ array_search ( $ running_config [ $ i ]-> port_idx , $ ports )]); } } $ add_conf = [] ; foreach ( $ ports as $ port ){ $ add_conf [] = [ 'port_idx' => $ port , 'poe_mode' => $ poe_mode ] ; } return array_merge ( $ running_config , $ add_conf ); } $ unifi_connection = new UniFi_API \ Client ( $ controlleruser , $ controllerpassword , $ controllerurl , $ site_id , $ controllerversion , false ); $ set_debug_mode = $ unifi_connection -> set_debug ( faux ); $ loginresults = $ unifi_connection -> connexion (); $ data = $ unifi_connection -> list_devices ( $ device_mac ); $ device_id = $ data [ 0 ]-> device_id ; $ current_conf = $ data [ 0 ]-> port_overrides ; /** * Cela lit les valeurs fournies via l'URL ou dans la ligne de commande, si rien n'est défini, poe_mode sera défini sur "auto" */ si ( isset ( $ _GET [ 'poe_mode' ])) { $ poe_mode = $ _GET [ 'poe_mode' ]; } elseif ( isset ( $ argv [ 1 ])) { $ poe_mode = $ argv [ 1 ]; } sinon { $ poe_mode = 'auto' ; } $ new_ports_config = [ 'port_overrides' => update_ports ( $ current_conf , $ lanports , $ poe_mode ) ] ; $ update_device = $ unifi_connection -> set_device_settings_base ( $ device_id , $ new_ports_config ); si (! $ update_device ) { $ erreur = $ unifi_connection -> get_last_results_raw (); echo json_encode ( $ erreur , JSON_PRETTY_PRINT ); } echo json_encode ( $ update_device , JSON_PRETTY_PRINT );
  17. Voila la façon pour récupérer le token avec curl curl --insecure --cookie ${cookie} --cookie-jar ${cookie} --header "Content-Type: application/json" \ --request POST \ --data '{"username":"Username","password":"Password"}' \ https://192.168.1.1/api/auth/login
  18. @TonyC il n'y a pas de doc officielle pour l'api. Par contre tu peux regarder ici : Documentation API UDM Pro : ICI NOTE: All calls are relative to the base controller URL Calls return both a web status as well as JSON formatted output. 200 codes indicate a successful call and other indicate errors. I am using the placeholder `{site}` for the site name which for many installations will be `default`. # Login required { "data" : [ ] , "meta" : { "msg" : "api.err.LoginRequired" , "rc" : "error"}} # Call was a success but returned no values { "data" : [ ] , "meta" : { "rc" : "ok"}} # NOTE: If meta contains a count it's because the data values have been truncated 'meta': {'count': 4818, 'rc': 'ok'} # from the api/s/{site}/stat/event endpoint UDM Pro API NOTE: There are two critical differences between Unifi controllers and the UDM Pro's API: The login endpoint is /api/auth/login All API endpoints need to be prefixed with /proxy/network (e.g. https://192.168.0.1/proxy/network/api/s/default/self) Examples curl curl -k -X POST --data '{"username": "usr", "password": "$pw"}' -b cookie.txt https://udmp:443/proxy/network/api/auth/login # responds with 'Not Found' curl -k -X GET -b cookie.txt https://udmp/proxy/network/api/s/default/self # responds with proper json python Controller Endpoints These are REST calls that can be made without a site context. I do not believe any updates ( PUT ) can be called on these endpoints. Path Method Notes status GET Returns some very basic server information - This appears to be the only endpoint that can be reached without an authentication { "data" : [ ] , "meta" : { "rc" : "ok" , "server_version" : "5.7.23" , "up" : true , "uuid" : "0e727580-ffff-ffff-ffff-403dcd5a7bd4"}} api/login POST requires dict of username, password, and optionally remember=true for long-running sessions. Returns 200 for success and a cookie that is your session. NOTE: On UDM Pros this is api/auth/login. api/logout POST destroys the sever side session id which will make future attempts with that cookie fail api/self GET Logged in user NOTE: On UDM Pros this is api/users/self. api/self/sites GET Get basic information for all sites on this controller api/stat/sites GET Same as above with an additional information on health and new alerts for each site api/stat/admin GET List administrators and permissions for all sites api/system/poweroff POST Turns off the UDM NOTE: X-CSRF-Token header required (from e.g. the login response) + Super Admin access rights api/system/reboot POST Reboot the UDM NOTE: X-CSRF-Token header required (from e.g. the login response) + Super Admin access rights Site Endpoints All commands are presumed to be prefixed with api/s/{site} Path Method Notes stat/health GET Health status of the site self GET Logged in user stat/ccode GET List of country codes stat/current-channel GET List of all RF channels based on the site country code stat/sysinfo GET Some high-level information about the controller stat/event GET List site events by most recent first, 3000 result limit rest/event GET List site events by oldest, no limit? stat/alarm GET List alarms by most recent, 3000 result limit? rest/alarm GET List alarms by oldest, no limit? stat/sta GET List of all _active_ clients on the site rest/user GET/POST/PUT List of all configured/known clients on the site stat/device-basic GET List of site devices with only 'adopted', 'disabled', 'mac', 'state', 'type' keys, useful for filtering on type stat/device GET/POST Detailed list of all devices on site. (Controller only) Can be filtered by POSTing {"macs": ["mac1", ... ]} stat/device/{mac} GET (UDM only) Detailed list of device filtered by mac address rest/device/{_id} PUT Updates to devices get PUT here, why? rest/setting GET/PUT Detailed site settings, updating requires adding key and _id to path for PUT ../setting/{key}/{_id} stat/routing GET All active routes on the device rest/routing GET/PUT User defined routes rest/firewallrule GET/PUT User defined firewall rules. This does not show auto-generated rules rest/firewallgroup GET/PUT User defined firewall groups. rest/wlanconf GET/PUT List WLANs, edit current WLANs and create new WLANs rest/wlanconf/{_id} PUT Update configuration of current WLAN designated by '_id' rest/tag GET/PUT? Tagged macs stat/rogueap GET/POST Neighboring APs optional json post 'within' = seen in the last x hours stat/sitedpi GET/POST DPI stats requires type="by_app" or "by_cat" stat/stadpi GET/POST DPI stats requires type="by_app" or "by_cat" optionally filtered macs=[…, ] stat/dynamicdns GET DynamicDNS information and status like current ip, last changed, and status rest/dynamicdns GET/PUT DynamicDNS configuration rest/portconf GET Switch port profiles stat/spectrumscan GET Get RF scan results, can be for a specific mac by appending to endpoint rest/radiusprofile GET/POST/PUT Radius profiles rest/account GET/POST/PUT Radius accounts rest/portforward GET List all port forwards configured on the site stat/report/{interval}.{type} POST Intervals are '5minutes', 'hourly', and 'daily'. Report types are 'site', 'user', and 'ap'. Must specify attributes to be returned 'bytes', 'wan-tx_bytes', 'wan-rx_bytes', 'wlan_bytes', 'num_sta', 'lan-num_sta', 'wlan-num_sta', 'time', 'rx_bytes', 'tx_bytes'. Can be filtered with 'macs': […] Callable commands Posting to the endpoint api/s/{site}/cmd/<manager> with the json {"cmd": "command"} you can invoke commands on the controller. Manager Call Notes evtmgt archive-all-alarms sitemgr add-site desc = Descriptive name ( required ), name = shortname ( in the URL ) sitemgr delete-site name = short name ( required ) sitemgr update-site desc = Descriptive name ( required ) sitemgr get-admins List all administrators and permission for this site sitemgr move-device mac = device mac ( required ), site_id = 24 digit id ( required ) sitemgr delete-device mac = device mac ( required ) stamgr block-sta mac = client mac ( required ) stamgr unblock-sta mac = client mac ( required ) stamgr kick-sta Disconnect: mac = client mac (required ) stamgr forget-sta Forget a client ( controller 5.9.x only ) stamgr unauthorize-guest Unauthorize a client device, mac = client mac (required) devmgr adopt mac = device mac ( required ) devmgr restart mac = device mac ( required ) devmgr force-provision mac = device mac ( required ) devmgr power-cycle mac = switch mac ( required ), port_idx = PoE port to cycle ( required ) devmgr speedtest Start a speed test devmgr speedtest-status get the current state of the speed test devmgr set-locate mac = device mac ( required ) blink unit to locate devmgr unset-locate mac = device mac ( required ) led to normal state devmgr upgrade mac = device mac ( required ) upgrade firmware devmgr upgrade-external mac = device mac ( required ), url = firmware URL ( required ) devmgr migrate mac = device mac ( required ), inform_url = New Inform URL to push to device (required) devmgr cancel-migrate mac = device mac ( required ) devmgr spectrum-scan mac = device mac ( ap only, required ) trigger RF scan backup list-backups list of autobackup files backup delete-backup filename ( required ) system backup create a backup. This appears to backup to a fixed location in the filesystem stat clear-dpi resets the site wide DPI counters
  19. voici le correctif pour l'affichage ligne 142 --memoire self:updateView("memoire", "text", "Memoire : " ..(math.floor((data["memory"]["total"]/10000))/100)-(math.floor((data["memory"]["available"]/10000))/100).."GB / " ..(math.floor((data["memory"]["total"]/10000))/100).."GB - Utilisée : " ..(math.floor((data["memory"]["total"]-data["memory"]["available"])/data["memory"]["total"]*1000)/10).." %" ) --Internal Storage self:updateView("storage", "text", "Stockage Interne : " ..(math.floor(data["storage"][1]["used"]/10000)/100).." Mo / " ..(math.floor(data["storage"][1]["size"]/10000)/100).." Mo - : " ..(math.floor(data["storage"][1]["used"]/data["storage"][1]["size"]*1000)/10).." %" )
  20. @tonyC le titre est bien explicite "UDM Pro ou UDM Pro SE" après je pourrai l'adapter pour qu'il soit compatible avec un UDM si il y a de la demande Moi j'ai commencé avec un udm pro et après j'ai vu qu'il existait l'udm pro SE, j'ai donc gardé mon udm pro, 4 jours avant de le retourner J'ai voulu être raisonnable j'ai donc acheté un USG PRO 4 pour 130 euros, j'avais une VM UNIFI sur mon GEN8 tout était parfait Puis 5 jours plus tard j'ai trouvé un UDM Pro SE pour 400 euros avec facture il avait 1 mois J'ai donc revendu mon USG PRO Personnellement je t'aurais conseillé l'udm pro SE qui a plusieurs avantage, les 8 port sont 2.5GB et POE et le WAN RJ45 et 2.5GB, après il y a un ssd 128GO mais utilisable qu'avec protect donc inutile pour moi L'avantage d'avoir du 2.5GB c'est que je ne suis plus dans l'optique d'acheter un switch 2.5GB comme par exemple USW enterprise. Pour une utilisation perso je pense que 8 ports en 2.5GB c'est largement suffisant perso je vais en utilisé 2, 1 pour mon nas et 1 pour mon PC. les différences importantes entre USW-PRO et USW-Enterprise USW-PRO = 1GB et POE++ USW-Enterprise = 2.5GB et POE+ dommage que la version enterprise ne soit pas POE++ Je ne passe pas mon NAS en 10GB car les cartes ont tendances à chauffer et la consommation électrique explose Je me suis pris 2 SFP+ Fibre car a priori en cuivre la consommation d'un SFP+ est de 5 à 7w en fibre 0.5w Si tu n'as pas beaucoup de devices POE l'udm suffit donc la aussi ca baissera la consommation électrique Exemple de consommation a vide USW-16- POE = 6w UDM pro SE = 26w USW-24-Pro = 10w US-24-250w POE = 28w j'ai donc virer mon US-24-250w et j'ai garder USW-24-Pro cela ma fait gagner environ 30w Sachant que je consomme 200w 24/24 cela me coute environ 300 euros Pour les modifs du QA je vais faire cela de suite Par contre j'arrive a remonter la consommation des ports POE, il faudrait que l'on puisse affiché cela dans des childs mais la je sais pas trop comment faire j'ai joué avec les childs il y a longtemps J'arrive aussi a remonter l'état des devices UNIFI pareil on pourrait faire des childs Par contre je maitrise l'api UNIFI avec les GET mais pour les PUT ou POST la je sèche, je voudrais pouvoir allumé ou éteindre un port poe je sais ou modifier mais je sais pas comment faire
  21. mprinfo

    Extinction après initialisation

    Une hc2 c'est plutôt 100 euros sur le boncoin Envoyé de mon BLA-L29 en utilisant Tapatalk
  22. @Lazer ce que je trouve scandaleux c'est que tu piques mon job [emoji7] Envoyé de mon BLA-L29 en utilisant Tapatalk
  23. mprinfo

    Salutation

    Bienvenue sur le forum [emoji16] Envoyé de mon BLA-L29 en utilisant Tapatalk
  24. Non car l udm a son propre os et l api est différente Envoyé de mon BLA-L29 en utilisant Tapatalk
×
×
  • Créer...