Aller au contenu

mprinfo

Membres confirmés
  • Compteur de contenus

    14 399
  • Inscription

  • Dernière visite

  • Jours gagnés

    251

Tout ce qui a été posté par mprinfo

  1. besoin aide connection routeur 4g Huawei Je viens enfin de réussir a me connecté a l'api de mon routeur E5186 je récupère la SessionID et le Token :http://192.168.8.1/api/webserver/SesTokInfo <?xml version="1.0" encoding="UTF-8"?> <response> <SesInfo>SessionID=JeKxkiXRYojMr/K+dxK0fRL0s+weG1v2wAm79swD1JFv/Ne+1hW3EQCGaJAJf8RGnmqbo7Ij6doAmKzzEzaSS3PqY2suMcucysr2ZpWQanvGcojzA/GEhZEskYdgQL+g</SesInfo> <TokInfo>y3o/pi/wOJrPC75N59B44OiUwRf+QJL9</TokInfo> </response> voici le code pour la home center 3 function QuickApp:SessionID() if self.cookie == nil then print("/api/webserver/SesTokInfo") self.http:request(self.controller .. "api/webserver/SesTokInfo", { options = { checkCertificate = false, method = 'GET', }, success = function(response) --print(json.encode(response.data)) if response.status == 200 then self.cookie = response.data local len = string.len(self.cookie) print(len) --277 self.Token = string.sub(self.cookie, 221, 252)--SesInfo self.cookie = string.sub(self.cookie, 62, 199)--TokInfo --self.cookie = string.sub(self.cookie, 72, 199) print("Cookie : ",self.cookie) print("Token : ",self.Token) --self:loginUnifi(self.cookie) --self:test(self.cookie) end end, error = function(error) self.cookie = nil self:error("checkTitreUnifi() échoué: ", json.encode(error)) self:updateView("Titre", "text", "Controleur UNIFi - checkVersionUnifi() échoué: "..json.encode(error)) end }) end end j'ai 2 variables : self.cookie (SessionID) self.Token (TOKEN) Avec ces 2 variables j'arrive a faire des GET pour récupérer les infos qui n'ont pas besoin d'authentification function QuickApp:API(adresse) if self.cookie ~= nil then print("/device/basic_information", self.cookie ) self.http:request(self.controller..adresse, { options = { checkCertificate = false, method = 'GET', headers = { ['Cookie'] = self.cookie , ["content-type"] = "text/xml", ['__RequestVerificationToken'] = self.Token } }, success = function(response) print(json.encode(response.data)) if response.status == 200 then print(response.data) end end, error = function(error) self.cookie = nil self:error("checkTitreUnifi() échoué: ", json.encode(error)) self:updateView("Titre", "text", "Controleur UNIFi - checkVersionUnifi() échoué: "..json.encode(error)) end }) end end j'appele ces fonctions comme ceci self:SessionID() fibaro.setTimeout(2 * 1000, function() print("-----------------------------------cradle") self:API("api/cradle/status-info") -- adresse mac "1 901 5 0 BC:25:E0:FA:C6:E5" print("-----------------------------------device") self:API("api/device/autorun-version") -- "22.001.07.00.03" self:API("api/device/basic_information") -- version IU web + logiciel "LTE cpe 0 16.100.02.00.03 21.316.01.00.00" self:API("api/device/device-feature-switch") -- 0 1 self:API("api/device/information") ---100003 -- il faut une authentification print("-----------------------------------dialup") self:API("api/dialup/connection")- -- 0600015001 self:API("api/dialup/mobile-dataswitch") -- 1 print("-----------------------------------global") self:API("api/global/module-switch") -- 0 1 1 0 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 0 0 print("-----------------------------------language") self:API("api/language/current-language") -- fr print("-----------------------------------monitoring") self:API("api/monitoring/check-notifications") -- UnreadMessage = 0 SmsStorageFull = 0 OnlineUpdateStatus = 14 self:API("api/monitoring/converged-status") -- SimState = 257 SimLockEnable = 0 CurrentLanguage = fr-fr self:API("api/monitoring/status") -- 901 2 101 3 0 0 '10.229.66.187' '172.20.2.39' '172.20.2.10' 0 64 64 2 1 1 101 5 0 1 cpe 0 1 self:API("api/monitoring/traffic-statistics") -- 8743 1637862 79800 0 0 1637862 79800 8743 1 print("-----------------------------------net") self:API("api/net/current-plmn") -- 0 F SFR SFR 20810 7 self:API("api/online-update/upgrade-messagebox") -- 1 self:API("api/pin/status") -- 257 258 3 10 self:API("api/redirection/homepage") -- 0 self:API("api/security/upnp") ---100003 il faut une authentification self:API("api/sms/sms-list") ---100005 self:API("api/user/login") ---100006 self:API("api/user/remind") -- 1 self:API("api/user/session") -- ok self:API("api/user/state-login") -- State = -1 Username = "admin" password_type = 4 self:API("api/wlan/basic-settings") -- Routeur2G 0 0 ALL b/g/n 0 100 32 1 2346 2347 1 100 1 0 0 1 1 600 0 0 0 self:API("api/wlan/multi-switch-settings") self:API("api/wlan/wifi-feature-switch") self:API("api/net/net-mode") self:API("config/lan/config.xml") -- config lan self:API("config/global/config.xml") self:API("config/global/net-type.xml") self:API("config/pcassistant/config.xml") self:API("config/deviceinformation/config.xml") end) On voit que j'arrive a récuperer une grande partie des infos sauf celle qui on besoin d'une authentification Le mot de passe et de type 4 donc il faut base64 et SHA256 j'ai trouver cela mais ca fonctionne pas ROUTER_IP=$1 ROUTER_USERNAME=$2 ROUTER_PASSWORD=$3 # Login CREDENTIALS=`printf $ROUTER_PASSWORD | sha256sum | head -c64 | base64 -w0` echo $CREDENTIALS #CREDENTIALS=`printf "%s%s%s" $ROUTER_USERNAME $CREDENTIALS $TOKEN | sha256sum | head -c64 | base64 -w0` echo $CREDENTIALS DATA=`printf "<request><Username>%s</Username><Password>%s</Password><password_type>4</password_type></request>" $ROUTER_USERNAME $CREDENTIALS` echo $DATA PostRouterData "/api/user/login" "$DATA" voici le script complet #!/bin/sh # Written by oga83 # Check command line parameters if [ "$#" -ne 5 ]; then printf "Syntax: %s <IP> <Username> <Password> <PhoneNumber> <Message>\n" $0 exit 0 fi ROUTER_IP=$1 ROUTER_USERNAME=$2 ROUTER_PASSWORD=$3 SMS_NUMBER=$4 SMS_TEXT=$5 TMP_HEADER_FILE=/tmp/headers.tmp CURL_OPT=--silent ProcessRouterResponseHeader() { # Get token from header NEWTOKEN=`cat $TMP_HEADER_FILE | grep "__RequestVerificationTokenone: " | awk -F' ' '{print $2}'` if [ ! -z "$NEWTOKEN" ]; then TOKEN=$NEWTOKEN; fi NEWTOKEN=`cat $TMP_HEADER_FILE | grep "__RequestVerificationToken: " | awk -F' ' '{print $2}'` if [ ! -z "$NEWTOKEN" ]; then TOKEN=$NEWTOKEN; fi NEWSESSIONID=`cat $TMP_HEADER_FILE | grep "Set-Cookie: SessionID=" | awk -F' ' '{print $2}' | cut -b 1-138` if [ ! -z "$NEWSESSIONID" ]; then SESSIONID=$NEWSESSIONID; fi echo $NEWTOKEN } GetRouterData() # Param1: Relative URL { #echo "GET on http://$ROUTER_IP$1" RESPONSE=`curl $CURL_OPT --request GET http://$ROUTER_IP$1 \ --dump-header $TMP_HEADER_FILE \ -H "Cookie: $SESSIONID" -H "__RequestVerificationToken: $TOKEN" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \ ` ProcessRouterResponseHeader } GetSessionToken() # No parameters { # Get SessionID and RequestVerificationToken GetRouterData '/api/webserver/SesTokInfo' SESSIONID="SessionID="`echo "$RESPONSE"| grep -oPm1 "(?<=<SesInfo>)[^<]+"` TOKEN=`echo "$RESPONSE"| grep -oPm1 "(?<=<TokInfo>)[^<]+"` } PostRouterData() # Param1: RelativeUrl, Param2: Data, Param3:bAskNewToken { # Get new token if necessary if [ ! -z $3 ]; then GetSessionToken fi #echo "POST on http://$ROUTER_IP$1 :" $2 RESPONSE=`curl $CURL_OPT --request POST http://$ROUTER_IP$1 \ --dump-header $TMP_HEADER_FILE \ -H "Cookie: $SESSIONID" -H "__RequestVerificationToken: $TOKEN" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \ --data "$2"` ProcessRouterResponseHeader } # Get initial SessionID and RequestVerificationToken GetSessionToken # Login CREDENTIALS=`printf $ROUTER_PASSWORD | sha256sum | head -c64 | base64 -w0` CREDENTIALS=`printf "%s%s%s" $ROUTER_USERNAME $CREDENTIALS $TOKEN | sha256sum | head -c64 | base64 -w0` DATA=`printf "<request><Username>%s</Username><Password>%s</Password><password_type>4</password_type></request>" $ROUTER_USERNAME $CREDENTIALS` PostRouterData "/api/user/login" "$DATA" # Send SMS DATA="<?xml version='1.0' encoding='UTF-8'?><request><Index>-1</Index><Phones><Phone>$SMS_NUMBER</Phone></Phones><Sca></Sca><Content>$SMS_TEXT</Content><Length>${#SMS_TEXT}</Length><Reserved>1</Reserved><Date>`date +'%F %T'`</Date></request>" PostRouterData "/api/sms/send-sms" "$DATA" 1 # Logout PostRouterData "/api/user/logout" "<request><Logout>1</Logout></request>" Merci d'avance pour votre aide
  2. Scene HC3 - sourceTrigger Comment connaitre la source du déclenchement d'une scène Le déclenchement d'une scène est stocker sous forme de table dans sourceTrigger Pour connaitre la source tu déclenchement -- ACTIONS local trigger = sourceTrigger print(json.encode(trigger)) Sauvegarder et lancer l'action resultat : {"property":"execute","id":2,"type":"user"} On voit : property = "execute" -- string id = 2 (2 = compte admin) -- numerique type = "user" --string Comment Utiliser cette table ? Exemple : je veux savoir si la scène est lancer par l'utilisateur local trigger = sourceTrigger if (trigger.property == "execute") then -- declechement manuel print("Scene lancer manuellement par l'utilisateur)") end Exemple : Je veux soir quel utilisateur a lancer la scéne local trigger = sourceTrigger if (trigger.property == "execute") then -- declechement manuel print("Scene lancer manuellement par l'utilisateur) ", trigger.id) end Maintenant que nous savons comment fonction sourceTrigger nous allons voir comment cela fonctionne avec des déclarations Exemple : j'ai un cron qui déclenche la scène toutes les 10 mn je veux connaitre le jour date heure minute de chaque déclenchement --DÉCLARATIONS (Conditions/Déclencheurs) { type = "date", property = "cron", operator = "match", value = {"10,20,20,30,40,50,0", "*", "*", "*", "*","*"} } -- ACTIONS local trigger = sourceTrigger if (trigger.property == "cron") then if (trigger.type=="date") then local Minutes = trigger.value[1] local Heure = trigger.value[2] local Jour = trigger.value[3] local Mois = trigger.value[4] local NomJourNumerique = tonumber(trigger.value[5]) local JourString = {"Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"} local NonJourString = JourString[NomJourNumerique] local Annee = trigger.value[6] print (string.format("%s %s/%s/%s à %s h %s mn", NonJourString,Jour,Mois,Annee,Minutes,Heure)) end end resultat : Vendredi 5/6/2020 à 20 h 10 mn
  3. J'espère qu'elle fonctionne [emoji16]@lazer un peu de travail pour toi un nouveau serial à saisir Envoyé de mon BLA-L29 en utilisant Tapatalk
  4. mprinfo

    Ma HC2 ne démarre plus

    Il suffit de créer un fibaro id avec l'adresse mail est d'y attaché ta box Si elle appartient à un fibaro id il faut demander le transfert Envoyé de mon BLA-L29 en utilisant Tapatalk
  5. mprinfo

    QuickApp - Plex

    Nvidia pas classe [emoji1787] Envoyé de mon BLA-L29 en utilisant Tapatalk
  6. mprinfo

    Ma HC2 ne démarre plus

    La hc2 que tu as acheté d'occasion était aussi hs ? Envoyé de mon BLA-L29 en utilisant Tapatalk
  7. mprinfo

    QuickApp - Plex

    Tu as vraiment mauvais goût [emoji23] Apple tv ça ce vend encore [emoji16] La shield est mieux en plus on peut mettre kodi ou plex Envoyé de mon BLA-L29 en utilisant Tapatalk
  8. mprinfo

    Petits bug de la HC3

    c'est parentId == 1 est non parentIid == 1 local TousLesModules = api.get("/devices/") local IdEnd = TousLesModules[#TousLesModules].id print ("Nombres de modules : " ..#TousLesModules) print ("Dernier ID : "..IdEnd) print ("-----------------------------------------------------------") print ("------- Listes de modules version 3,3,52") print ("-----------------------------------------------------------") local cpte = 0 for i,v in ipairs(TousLesModules) do --local id = TousLesModules[i].id local Nom = TousLesModules[i].name local parentId = TousLesModules[i].parentId local modifier = TousLesModules[i].modified local Valeur = TousLesModules[i].properties.value local zwaveInfo = TousLesModules[i].properties.zwaveInfo local theType = TousLesModules[i].type if parentId == 1 and zwaveInfo ~= nil then if zwaveInfo == "3,3,52" then cpte = cpte + 1 local id = TousLesModules[i].id print (cpte.." - "..zwaveInfo.." - Type = "..theType.." Id = "..id.." - Nom = "..Nom) end end end 22 chez moi
  9. mprinfo

    Petits bug de la HC3

    @lazer moi c'est pas mieux donc HC3 = console de QA (Jeux)
  10. mprinfo

    QuickApp - Plex

    dommage moi j'utilise KODI super travail
  11. mprinfo

    Petits bug de la HC3

    voila une scène pour voir la version des modules en 3,3,52 fonctionne sur HC2 local TousLesModules = api.get("/devices/") local IdEnd = TousLesModules[#TousLesModules].id print ("Nombres de modules : " ..#TousLesModules) print ("Dernier ID : "..IdEnd) print ("-----------------------------------------------------------") print ("------- Listes de modules version 3,3,52") print ("-----------------------------------------------------------") for i,v in ipairs(TousLesModules) do --local id = TousLesModules[i].id local Nom = TousLesModules[i].name local visible = TousLesModules[i].visible local modifier = TousLesModules[i].modified local Valeur = TousLesModules[i].properties.value local zwaveInfo = TousLesModules[i].properties.zwaveInfo local theType = TousLesModules[i].type if visible == true and zwaveInfo ~= nil then if zwaveInfo == "3,3,52" then local id = TousLesModules[i].id print (zwaveInfo.." - Type = "..theType.." Id = "..id.." - Nom = "..Nom) end end end
  12. mprinfo

    Petits bug de la HC3

    Moi j'utilise toujours des valeurs pour les volets de 0 à 99 Pour le moment j'ai pas de modules fgr sur ma hc3 tout est resté sur ma hc2 Envoyé de mon BLA-L29 en utilisant Tapatalk
  13. Ça c'est une erreur du vendeur Il faut acheter français [emoji1787] J'ai eu le même soucis avec un colis aliexpress Livré à une autre adresse J'ai été remboursé par le vendeur C'est chiant j'ai des pile rcr123 et pas de chargeur [emoji22] Envoyé de mon BLA-L29 en utilisant Tapatalk
  14. @benjynet c'est spécialement pour toi
  15. Quick App - Vacances scolaires Ce quick app est une adaptation du VD Vacances scolaires de @steven Il faut juste renseigné le département Je ne sais pas combien de temps cela va fonctionner le fichier de données est a jour jusqu'en septembre 2021 lien du Quick App : Vac_scolaires_V2.00.fqa
  16. @krikroff heureusement qu'il n'est pas comme mon pouce ton petit doigt [emoji106] Envoyé de mon BLA-L29 en utilisant Tapatalk
  17. mprinfo

    Passer d'une HCL à HC3.

    Alors là je ne peux répondre La seule chose que l'on peut migré c'est les devices zwave Envoyé de mon BLA-L29 en utilisant Tapatalk
  18. QA unifi presence a TESTER c'est une modification du QA unifi presence du forum fibaro il faut modifier les variables IP, Login, password Pour ajouter un device on doit mettre un nom (Nom device par exemple° et l'adresse mac exemple : "Tel Toto","00:00:0:00:00:10" On sauvegarde est c'est terminer Fichier : UniFi_Presense_V0.30(1).fqa
  19. @lazer dernier version vérification MAC : Ok mise a jour de la valeur OK Amélioration du traçage Affichage des erreurs dans les étiquettes connections Mac adresse
  20. Liste les devices au démarrage Ajoute la dernière adresse IP connu (Le setvariable ne ce fait que si l'adresse IP est différente) Affiche la version du contrôleur est si connecté si la mac est affichée le device n'est pas présent si l'ip est afficher le device est présent il me reste améliorer le contrôle de l'adresse mac Pour le moment je fais une concaténation afin d'avoir la même chaine que le QA original
  21. Moi j'ai un QA unfi à te faire tester pour avoir ton retour. C'est un QA fait à partir du code du forum officiel Envoyé de mon BLA-L29 en utilisant Tapatalk
  22. Le -20% chez Domadoo ne fonctionne pas pour la hc3 Envoyé de mon BLA-L29 en utilisant Tapatalk
  23. Moi aucun soucis dsm sous esxi xpenology Tu as essayé avec un time out dans http Envoyé de mon BLA-L29 en utilisant Tapatalk
  24. Moi je prendrais au moins un réd 4to vu le prix des HD On commence avec les enregistrements des caméras, documents puis films est on est vite à court d'espace Perso j'ai un 8to ça commence à être juste Envoyé de mon BLA-L29 en utilisant Tapatalk
  25. Je plaisante [emoji12] Envoyé de mon BLA-L29 en utilisant Tapatalk
×
×
  • Créer...