tiko_heating_api icon indicating copy to clipboard operation
tiko_heating_api copied to clipboard

Api retourne "null"

Open Tombost opened this issue 2 years ago • 2 comments

Bonjour, Depuis le 21 février vers 11h30 mon tiko.php?hash=9c4d49d0456793ecxxxxxxxxx21e02391b756df0d5983f48c33f3ec6b07f56&consumption=true Renvoi juste : "null" Une idée ?

Tombost avatar Feb 22 '24 16:02 Tombost

Bon bah c'est fini ils ont du bloquer : image

Tombost avatar Feb 22 '24 16:02 Tombost

j’ai trouvé la solution, dans le header il faut rajouter des infos Cookie : « csrftoken » et « USER_SESSION_member_space » On reçoit ces informations de l’API lors du login via la query « mutation LogIn ». Par contre aucune information sur la validité, donc je le fais à chaque requête (toutes les 15min)

J’ai maintenant retrouvé toutes mes données !

Edit : Dans mon cas j’utilise pas HA, mais Node-RED et j’envoi les données vers mon serveur Domoticz. Si des personnes utilises Node-RED voici le flux pour récupérer toutes vos données (il suffit de changer les variables au début) :

[{"id":"7223b7395a1053d5","type":"inject","z":"65642376a06f9a2f","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"900","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":600,"wires":[["df2ace3ac015cd77"]]},{"id":"8461c017e386edcc","type":"function","z":"65642376a06f9a2f","name":"User login","func":"msg.payload = {\n    \"variables\": {\n        \"email\": msg.email,\n        \"password\": msg.password,\n        \"langCode\": \"fr\",\n        \"retainSession\": true\n    },\n    \"query\": \"mutation LogIn($email: String!, $password: String!, $langCode: String, $retainSession: Boolean) {\\n logIn(\\n input: { email: $email, password: $password, langCode: $langCode, retainSession: $retainSession }\\n) {\\n settings { \\n client { \\n name\\n __typename\\n } \\n support { \\n serviceActive\\n phone\\n email\\n __typename\\n } \\n __typename\\n } \\n user { \\n id\\n clientCustomerId\\n agreements\\n properties { \\n id\\n allInstalled\\n __typename\\n } \\n inbox(modes: [\\\"app\\\"]) {\\n actions {\\n label\\n type\\n value\\n __typename\\n }\\n id\\n lockUser\\n maxNumberOfSkip\\n messageBody\\n messageHeader\\n __typename\\n }\\n __typename\\n }\\n token\\n firstLogin\\n __typename\\n }\\n}\\n\"\n};\n\n\nmsg.headers = {};\nmsg.headers['Content-Type'] = 'application/json';\n//msg.headers['User-agent:Mozilla/5.0 (Linux; Android 13; Pixel 4a Build/T1B3.221003.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/106.0.5249.126 Mobile Safari/537.36'];\n\n\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":460,"y":600,"wires":[["fc311739afef5520"]]},{"id":"fc311739afef5520","type":"http request","z":"65642376a06f9a2f","name":"","method":"POST","ret":"txt","paytoqs":"ignore","url":"https://particuliers-tiko.fr/api/v3/graphql/","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":630,"y":600,"wires":[["3375606657b9f88b"]]},{"id":"3375606657b9f88b","type":"json","z":"65642376a06f9a2f","name":"","property":"payload","action":"","pretty":false,"x":790,"y":600,"wires":[["235872c0e98caebe"]]},{"id":"235872c0e98caebe","type":"function","z":"65642376a06f9a2f","name":"get token & cookie","func":"msg.payload = msg.payload.data.logIn.token;\nmsg.cookie = \"csrftoken=\" + msg.responseCookies.csrftoken.value + \";\" + \"USER_SESSION_member_space=\" + msg.responseCookies.USER_SESSION_member_space.value;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":330,"y":680,"wires":[["017628d9cf2bfa89"]]},{"id":"017628d9cf2bfa89","type":"function","z":"65642376a06f9a2f","name":"query all data","func":"\n\n\nmsg.headers = {};\nmsg.headers['Content-Type'] = 'application/json';\nmsg.headers['Authorization'] = 'Token '+msg.payload;\nmsg.headers['Cookie'] = msg.cookie;\n\n\nmsg.payload = {\n    \"operationName\": \"GET_PROPERTY_OVERVIEW_DECENTRALISED\",\n    \"variables\": {\n        \"id\": msg.dashboard_id\n    },\n    \"query\": \"query GET_PROPERTY_OVERVIEW_DECENTRALISED($id: Int!, $excludeRooms: [Int]) {\\n settings {\\n benchmark {\\n isEnabled\\n __typename\\n }\\n __typename\\n }\\n property(id: $id) {\\n id\\n mode\\n mboxDisconnected\\n isSinapsiEnabled\\n isSinapsiAuthorised\\n allInstalled\\n ownerPermission\\n constructionYear\\n surfaceArea\\n floors\\n valueProposition\\n address {\\n id\\n street\\n number\\n city\\n zipCode\\n __typename\\n }\\n tips {\\n id\\n tip\\n __typename\\n }\\n ...CentralisedDevicesCompact\\n rooms(excludeRooms: $excludeRooms) {\\n id\\n name\\n type\\n color\\n heaters\\n hasTemperatureSchedule\\n currentTemperatureDegrees\\n targetTemperatureDegrees\\n humidity\\n sensors\\n devices {\\n id\\n code\\n type\\n name\\n mac\\n __typename\\n }\\n mode {\\n boost\\n absence\\n frost\\n disableHeating\\n __typename\\n }\\n ...ExtendedStatus\\n __typename\\n }\\n __typename\\n }\\n}\\n\\nfragment CentralisedDevicesCompact on PropertyType {\\n devices(excludeDecentralised: true) {\\n id\\n code\\n type\\n name\\n mac\\n __typename\\n }\\n externalDevices {\\n id\\n name\\n __typename\\n }\\n __typename\\n}\\n\\nfragment ExtendedStatus on RoomType {\\n status {\\n disconnected\\n heaterDisconnected\\n heatingOperating\\n sensorBatteryLow\\n sensorDisconnected\\n temporaryAdjustment\\n heatersRegulated\\n heaterCalibrationState\\n __typename\\n }\\n __typename\\n}\"\n};\n//msg.headers['User-agent:Mozilla/5.0 (Linux; Android 13; Pixel 4a Build/T1B3.221003.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/106.0.5249.126 Mobile Safari/537.36'];\n\n\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":520,"y":680,"wires":[["95b19d2be8a67e69"]]},{"id":"95b19d2be8a67e69","type":"http request","z":"65642376a06f9a2f","name":"","method":"POST","ret":"txt","paytoqs":"ignore","url":"https://particuliers-tiko.fr/api/v3/graphql/","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":710,"y":680,"wires":[["0102593b6dcdb307"]]},{"id":"0102593b6dcdb307","type":"json","z":"65642376a06f9a2f","name":"","property":"payload","action":"","pretty":false,"x":310,"y":740,"wires":[["25b3ddeaa0b3217c"]]},{"id":"df2ace3ac015cd77","type":"function","z":"65642376a06f9a2f","name":"Variables","func":"msg.email = \"[email protected]\";\nmsg.password = \"password\"\n//Pour récupérer l'ID : \n//Se connecter ici : https://particuliers-tiko.fr/\n//Une fois connecté prendre les chiffres à la fin du lien : \n//https://particuliers-tiko.fr/dashboard/220045853\nmsg.dashboard_id = 220045853; \n\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":280,"y":600,"wires":[["8461c017e386edcc"]]},{"id":"25b3ddeaa0b3217c","type":"debug","z":"65642376a06f9a2f","name":"debug 16","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":460,"y":740,"wires":[]}]

Tombost avatar Feb 23 '24 07:02 Tombost

Hello, bug corrigé avec la dernière release ;)

Merci @Tombost de m'avoir aiguillé !

noiwid avatar May 28 '24 11:05 noiwid