Acties:
  • 0 Henk 'm!

  • Amersfoort
  • Registratie: April 2009
  • Laatst online: 07:55
bjp schreef op dinsdag 25 mei 2021 @ 23:05:
extra referenties hier:
have fun: https://github.com/bp-ouhaha/ICS2000-Python

code:
code:
1
2
3
4
5
6
7
while(True):
  current = hub.get_device_check(p1_module)
  if len(current) > 5:
    print("Consumption ", int(current[4])," W - Production ", int(current[5]), " W")
  else:
    print("reply too short")
  time.sleep(10)
Interessant!
Doordat ik geen developer ben, maar wel graag de P1 module met de ICS2000 wil uitlezen, probeer ik de api via een URL uit te lezen en met json te ontrafelen.
De URL lukt al met https://trustsmartcloud2....assword_hash=jewachtwoord.
Wat kan ik met het json resultaat doen met versleutelde data? Ik ken/heb Python niet, maar ken PowerApps wel.

Acties:
  • 0 Henk 'm!

  • Amersfoort
  • Registratie: April 2009
  • Laatst online: 07:55
[{"home_id":"11111","id":"17087827","version_status":"0","version_data":"29","status":null,"data":"0\/Yrf3IjgfSi4k7Qlg1tI8Tve5ULiYrjpnAkCTqWYLi4YMToB9eEJWqAf9bM0x3QnGCWDlgpDC44mY1QiGYYxW9Er8XMJTmHssOElvxHOBVlNHvl11ytFujsWt5Hmgt8cgdAAWDAphV8JkZWTneO9bCcc9Jd2zfuGx6mviTAx50nWLmpjCnqi\/fhjCILxCMAOjUbjLMeSOiHe66D5ePiav5YI4\/+qTI7wpm6eydmWt8PG9VzY0UJ\/+dCsnT\/uet7QH9GaVkoS6T4QoqAnnOC5KMUA86jSz6VV1yokvtnm+0=","time_added":"2021-04-30 08:06:47"},{"home_id":"11111","id":"19672034","version_status":"28827","version_data":"13","status":"GXFIEiWEIeXhgXROpDk5IsdkvsyWq011+w2u8rIMRktoIjdjz1tlNec1GDiwwKVmCNF2t2iceiKe0S0g8DVPkw==","data":"0u0YHJ8O3XSaq\/vYP8KlxGiHm8oZc2aK\/FyhMO2xyzWYryHlbMfS0F+K7cNqvW2O0mu2nAgRxb1JJpQzuCkMJ02lZZFzvx8982985\/V6B8Fo59Drkj11P7T3jjZNuHqKZRFStMyWONsnGwrCvKApyh1QNQ8LeRRYbQdjgGKa5dfabjpkUvnlbTUqpw5AIacHWp9lEjL4uM1nyKaW22qv7gQwqhUUWNCTWNaHujqRrrVOoiToS+w1m8URxC3atvHt2adtYxhe\/YoRUE7ZedCz53TAHg\/qkBMxkZpBZu10YUY=","time_added":"2020-06-16 17:26:03"},{"home_id":"11111","id":"21744776","version_status":"28828","version_data":"16","status":"qmZ+upSBsuwACwSGny4HSU3aDArbs1tNAOCsFSegi3M\/\/IFyv2av5Uva14GDh9p90+7VE56kqAS3Rj6RSCqZrQ==","data":"bhByWoEwFGZObuiA7mFxywADA8JTN1Lbwku\/CV5uAQD7BCfeD0kxspgJaaTFZaRawAxKCnsAncdvsId9+FB+uQDdyMolF0ldIBgQaPSvm8R6dmnDjcdyKbQyjMywipwwcrNm7teCXk41rn+0ltFxw9pTvohOB8uTKkFyl+exThBv9FHvKghyC4aOAEQhaYur+NhQY8XXCRhe4Ox2Yzc5lSVpSCjU+QTnpClInAPK5yY7oUaIqtxPLt5\/SQs8Tllm+kISsLWix35Cz1x8Iw7NPCWb35veJ\/iWQV75r62z3wk=","time_added":"2020-06-16 17:26:51"},{"home_id":"11111","id":"30990135","version_status":"0","version_data":"29","status":null,"data":"6xw9x2wNBkJWIY6ZWhESbVTFYIrTsPGwazncaFdHf3lz+pzz0EX3Z0\/s1byxa9Ii3FWYr\/FarWQf8sbIeBmLn9lFqhc3Gkdin9b\/WROivQ96PfbiXshY31S+koRPx3wHcsrg4CAoAosgrONnnriizM4VP1xZasaB1TQfYWVQP\/HbVJLS5EzXcc4TDkpWl++ti6tKP7QEdEijYjO\/dJ+LV6f95+4F4F3ajUpMhr53iG4Nrh8EsTY0JwU632kxYTLrQ2Fvc9YqGLEpgrbBegrbO0AIhxhE\/bCqKQ5VPOrocR5O+FRzdySm+uzDfkY9qwBE","time_added":"2020-07-04 21:17:05"},{"home_id":"11111","id":"100663297","version_status":"34260","version_data":"0","status":"nVC0gzGdentCkPCicnSEPugizLQmgqTbQXVq5sldEzAuzqng9GrQIPg+T1O9T3KXGBH7UdKmq+GN9fDrj2yiu9HxEnbrVAMs7GIOysuLA5CQWpFlHtXhR9aOR5DqorfbyCIHM1eZcVkGliYFNYfAuIA7t3AIqlH8OkRrjKnMWRA=","data":"KboJHiggRc0oU9LDi2u5MHY5Bu6lMuy0aQexOCdn1\/7Sq\/bYBlr9iI3FERXY7Ive0vFkIQ7axv0OdT0Crze7K10D3P1CkyluwXmHCemTx94=","time_added":"2020-06-16 17:10:30"},{"home_id":"11111","id":"100663299","version_status":"34279","version_data":"0","status":"eOsdAy9fvJqEocTfdQzfvRUimw8PGNAAvXK13rCbHfQJIW5atkJ0o+yi4GvEmiR4vtpT\/uZmiG2nZdxoElRdb9s1PiT1kr6ReyMrMwW0xw+GICSkRcfImwQAVBb9xyvn","data":"3iZwrvLyxWeIL9nvMrPw2\/EoD4uJDlDkLy2697uipT8qk7WnrIa95GCmawKtKWnyCQd7DJhWmHW4KsVPlrXXY\/iHa2HormSG0i6rA1YdKyk=","time_added":"2020-06-16 17:10:30"},{"home_id":"11111","id":"100663300","version_status":"0","version_data":"0","status":null,"data":"HkwXQSNbOAUzGL5k7muRKrsFbGSZRGjVaDNtsJ4N8T9Sgp6Is5lEul00iDqqjfKtoqKyEdJ53McTI8JV8Up49WNbU8jO\/pTjRsoMj9O+jd4=","time_added":"2020-06-16 17:10:30"},{"home_id":"11111","id":"100663301","version_status":"0","version_data":"0","status":null,"data":"EdVd5fU2dUdDgYDa+FEBCWq3fq7HUgw6fRIhEVqcZllVZ7RCh3RzquQ9s7t5QoPOkHTCdbBmeAhaNKGh1DIywpQCeKk7kOvYN6MUlGaRL4IyDCQwO3LT843FuFuqPUbM","time_added":"2020-06-16 17:10:30"},{"home_id":"11111","id":"100663302","version_status":"34279","version_data":"0","status":"v255ugn6duQiJ6UYbxO69uyH10Bbvj0E1uSdFj3fjVZ8Lk8AWkt9xXd6rdE2nCgJci+fQUhf5DlmDBh3SZHjgLhBro6xOIPm57KqzYssVfo1hqKCb+8kV4Hz+w5ArueZZ1kWQllKiSJFHP3heekcXg==","data":"BbJ3+pMq41IHhxkBVAFB7nNRz1AsEGGTghGGseVAXKZ1AsCJQnoLxnMOSlubcz+YKhiCj4YIfOlsdqXgn7C4wdjzK8aOlRHzDHBFwfejNTk=","time_added":"2020-06-16 17:10:30"},{"home_id":"11111","id":"37921771","version_data":"30","version_status":"3319","data":"652u+8OR\/eWpEi7CvP9X396VZ12vie2lp8l03\/Gmf1poquv60rove0InYYKF\/1MzY37nrBNCWVF3rGnewWxGIxWuwvbN5h6LM8Kg2qhDleFKngV1CtTWUwzm99x2qrLmcJSopQqtLyOMunPRhBFSo9zs4wJ\/kMNHRfCgzQ3z91M5eue4DSrD34Q8xIO4oFIkgNXfTznhyPrWg6hvxBnH4DEJxrzq4BrxKxuhccMpgWh8ypgpjBu020fuLLiFwzCOIAGOvaCaVFQgKtReTB8poBRCPwc9+nuvC9kd3d9tMd396Bj\/DqHd1fAdxCEO4oDxdxHJDk8JnSU+7FnNmqIy2AvBBguBKSv36TLO9gRyylw=","status":"Ffl4tFA8xyCRi7r0\/N7jIXxONSIEaqBRd1\/+ztnVXdfgvsA6ZCO0Zgc6gTeOTqDaN7Z4ubflfvLxtiCg0Pa68Lyhk\/xdCmqgjxsz5JLf\/\/c="},{"home_id":"11111","id":"42188130","version_data":"30","version_status":"11472","data":"Xt5viRNpTXv9fZ3TD4rxlNtCElGMobHXwUBf2KnWk1o9k4s4er9s+217APdayzokqME6wSS1xdP+HvLkGCSyaOagBznveGZvo3vz41A60LZtccX20yUPWtiIUQESpLLDRSmWLDcjH4ZPCBZ5f56krhX1207P3MlPNa3dPSJ7ywzZBpP0a9P6AOatDBvAT+hwj9LPPxN0CajTEQSETQcbvjhohFbL4wK5H3hZMF\/qj6bbmg6hLA0zowLW3lWRqEDJnQsLMkuMkR9ii+AsVho0fKLzC49OR7cOVgbpR5koRHArBxhBYHdOG6sdmC3s+zr8o46f4f15RS5mpYPoMOnPIuAAGE5i3UwAVAuq2\/4uEjw=","status":"z4KJjzlRDwTIBIAxNIKX\/YMMIbQzbOcBvTTlBtNWJK8Ttog0nkFXAigMtZlceVf6rIY+jdUfpaRqWM\/barj3tyADoSDOaTxx3OMlX9WGcZM="},{"home_id":"11111","id":"44755901","version_data":"27","version_status":"11471","data":"kJ3LMzLS7R1PsTwzQBJTaOrl2A1YWcIsmzK2gB+oa+o1CNRQc1F33FT23HFWJyksjaj7T57mvpYyeFZ\/NevS4vpqUtjUL8LV3uH9uDCpNanRzm172JsESsU5EvD2jHg934GjQc1C6eDMuH\/sMpD1vJQ7wa2HgPFbrlaJ0XhUVj5sSH3UmzxS2GxVEsLq+HfR596FfI74rBaMxraUAl9Cg98AhwL+k\/e6fYAZ0+zof5dzQEKR1iynFJjABd0lq+Ud+ta\/60VGXL3iXJTnnnoIAHqHVcFoZlVYNZaa5uTQ+hivqWdvFuu9vyg4g30F71IJ4PGhKpWxKJ9NBXuih09BMw==","status":"Av\/DA3qAVAmpYTCMFBAPJ3fPjq6NYiJe0\/490SKCVl2Qxelf8KrTkXUXcrfSjCjM5LQ3dkHec+c5V1LIEPKHCh9ZbVhkoiCJ3N8Nsrj1UHU="},{"home_id":"11111","id":"72882030","version_data":"49","data":"TqgPvsUKmxbSXwgfgn4v8WfYk1icTm3WTLsI33\/cLqOGhfk8zq37FqxcB+ZmUXfd3rE4c1O3jbUuodGLuESmcQdg6pP4z+\/uyeCo0bzWRN0Phkju6VlFw22NmQtMEPqiH1DP+HRtmzO+RVdlgqYNDSVO6wdoPrj5Ar06j3+zX6sSYmPQXUypIr65m+ujmfKUZAoGkLsQjsynJBds2pe8q+HLXLxBp5\/pA02efEgU7a3RTNBcqvyRC7b6za8yNgX2","created":"2020-06-16 17:25:43"},{"home_id":"11111","id":"79822951","version_data":"42","data":"78gNtVUILJ8lOtdISY+ctpdrOyUonWzN2Wg2TvJITjtCzt55xD99H0IsGQFZvOAf9FMkPQ1LTG54aCM+pMG\/bRNtA9f+k4gvL1pCtj231iCLnKtPvHMEbQr4T484tsGzw1Tr2xWcHwzWZNbjoKu0k\/RXuw8NW9b9fEYM4u6qUiiZNK7nhiWixZ\/LGkenUEtkp\/yJwOox6\/ZZJxR\/o5MrPt3PEKIgdCdurJ7s3VB47cc=","created":"2020-06-16 17:10:42"}]","id":"17087827","version_status":"0","version_data":"29","status":null,"data":"0\/Yrf3IjgfSi4k7Qlg1tI8Tve5ULiYrjpnAkCTqWYLi4YMToB9eEJWqAf9bM0x3QnGCWDlgpDC44mY1QiGYYxW9Er8XMJTmHssOElvxHOBVlNHvl11ytFujsWt5Hmgt8cgdAAWDAphV8JkZWTneO9bCcc9Jd2zfuGx6mviTAx50nWLmpjCnqi\/fhjCILxCMAOjUbjLMeSOiHe66D5ePiav5YI4\/+qTI7wpm6eydmWt8PG9VzY0UJ\/+dCsnT\/uet7QH9GaVkoS6T4QoqAnnOC5KMUA86jSz6VV1yokvtnm+0=","time_added":"2021-04-30 08:06:47"},{"home_id":"11111","id":"19672034","version_status":"28827","version_data":"13","status":"GXFIEiWEIeXhgXROpDk5IsdkvsyWq011+w2u8rIMRktoIjdjz1tlNec1GDiwwKVmCNF2t2iceiKe0S0g8DVPkw==","data":"0u0YHJ8O3XSaq\/vYP8KlxGiHm8oZc2aK\/FyhMO2xyzWYryHlbMfS0F+K7cNqvW2O0mu2nAgRxb1JJpQzuCkMJ02lZZFzvx8982985\/V6B8Fo59Drkj11P7T3jjZNuHqKZRFStMyWONsnGwrCvKApyh1QNQ8LeRRYbQdjgGKa5dfabjpkUvnlbTUqpw5AIacHWp9lEjL4uM1nyKaW22qv7gQwqhUUWNCTWNaHujqRrrVOoiToS+w1m8URxC3atvHt2adtYxhe\/YoRUE7ZedCz53TAHg\/qkBMxkZpBZu10YUY=","time_added":"2020-06-16 17:26:03"},{"home_id":"11111","id":"21744776","version_status":"28828","version_data":"16","status":"qmZ+upSBsuwACwSGny4HSU3aDArbs1tNAOCsFSegi3M\/\/IFyv2av5Uva14GDh9p90+7VE56kqAS3Rj6RSCqZrQ==","data":"bhByWoEwFGZObuiA7mFxywADA8JTN1Lbwku\/CV5uAQD7BCfeD0kxspgJaaTFZaRawAxKCnsAncdvsId9+FB+uQDdyMolF0ldIBgQaPSvm8R6dmnDjcdyKbQyjMywipwwcrNm7teCXk41rn+0ltFxw9pTvohOB8uTKkFyl+exThBv9FHvKghyC4aOAEQhaYur+NhQY8XXCRhe4Ox2Yzc5lSVpSCjU+QTnpClInAPK5yY7oUaIqtxPLt5\/SQs8Tllm+kISsLWix35Cz1x8Iw7NPCWb35veJ\/iWQV75r62z3wk=","time_added":"2020-06-16 17:26:51"},{"home_id":"11111","id":"30990135","version_status":"0","version_data":"29","status":null,"data":"6xw9x2wNBkJWIY6ZWhESbVTFYIrTsPGwazncaFdHf3lz+pzz0EX3Z0\/s1byxa9Ii3FWYr\/FarWQf8sbIeBmLn9lFqhc3Gkdin9b\/WROivQ96PfbiXshY31S+koRPx3wHcsrg4CAoAosgrONnnriizM4VP1xZasaB1TQfYWVQP\/HbVJLS5EzXcc4TDkpWl++ti6tKP7QEdEijYjO\/dJ+LV6f95+4F4F3ajUpMhr53iG4Nrh8EsTY0JwU632kxYTLrQ2Fvc9YqGLEpgrbBegrbO0AIhxhE\/bCqKQ5VPOrocR5O+FRzdySm+uzDfkY9qwBE","time_added":"2020-07-04 21:17:05"},{"home_id":"11111","id":"100663297","version_status":"34260","version_data":"0","status":"nVC0gzGdentCkPCicnSEPugizLQmgqTbQXVq5sldEzAuzqng9GrQIPg+T1O9T3KXGBH7UdKmq+GN9fDrj2yiu9HxEnbrVAMs7GIOysuLA5CQWpFlHtXhR9aOR5DqorfbyCIHM1eZcVkGliYFNYfAuIA7t3AIqlH8OkRrjKnMWRA=","data":"KboJHiggRc0oU9LDi2u5MHY5Bu6lMuy0aQexOCdn1\/7Sq\/bYBlr9iI3FERXY7Ive0vFkIQ7axv0OdT0Crze7K10D3P1CkyluwXmHCemTx94=","time_added":"2020-06-16 17:10:30"},{"home_id":"11111","id":"100663299","version_status":"34279","version_data":"0","status":"eOsdAy9fvJqEocTfdQzfvRUimw8PGNAAvXK13rCbHfQJIW5atkJ0o+yi4GvEmiR4vtpT\/uZmiG2nZdxoElRdb9s1PiT1kr6ReyMrMwW0xw+GICSkRcfImwQAVBb9xyvn","data":"3iZwrvLyxWeIL9nvMrPw2\/EoD4uJDlDkLy2697uipT8qk7WnrIa95GCmawKtKWnyCQd7DJhWmHW4KsVPlrXXY\/iHa2HormSG0i6rA1YdKyk=","time_added":"2020-06-16 17:10:30"},{"home_id":"11111","id":"100663300","version_status":"0","version_data":"0","status":null,"data":"HkwXQSNbOAUzGL5k7muRKrsFbGSZRGjVaDNtsJ4N8T9Sgp6Is5lEul00iDqqjfKtoqKyEdJ53McTI8JV8Up49WNbU8jO\/pTjRsoMj9O+jd4=","time_added":"2020-06-16 17:10:30"},{"home_id":"11111","id":"100663301","version_status":"0","version_data":"0","status":null,"data":"EdVd5fU2dUdDgYDa+FEBCWq3fq7HUgw6fRIhEVqcZllVZ7RCh3RzquQ9s7t5QoPOkHTCdbBmeAhaNKGh1DIywpQCeKk7kOvYN6MUlGaRL4IyDCQwO3LT843FuFuqPUbM","time_added":"2020-06-16 17:10:30"},{"home_id":"11111","id":"100663302","version_status":"34279","version_data":"0","status":"v255ugn6duQiJ6UYbxO69uyH10Bbvj0E1uSdFj3fjVZ8Lk8AWkt9xXd6rdE2nCgJci+fQUhf5DlmDBh3SZHjgLhBro6xOIPm57KqzYssVfo1hqKCb+8kV4Hz+w5ArueZZ1kWQllKiSJFHP3heekcXg==","data":"BbJ3+pMq41IHhxkBVAFB7nNRz1AsEGGTghGGseVAXKZ1AsCJQnoLxnMOSlubcz+YKhiCj4YIfOlsdqXgn7C4wdjzK8aOlRHzDHBFwfejNTk=","time_added":"2020-06-16 17:10:30"},{"home_id":"11111","id":"37921771","version_data":"30","version_status":"3319","data":"652u+8OR\/eWpEi7CvP9X396VZ12vie2lp8l03\/Gmf1poquv60rove0InYYKF\/1MzY37nrBNCWVF3rGnewWxGIxWuwvbN5h6LM8Kg2qhDleFKngV1CtTWUwzm99x2qrLmcJSopQqtLyOMunPRhBFSo9zs4wJ\/kMNHRfCgzQ3z91M5eue4DSrD34Q8xIO4oFIkgNXfTznhyPrWg6hvxBnH4DEJxrzq4BrxKxuhccMpgWh8ypgpjBu020fuLLiFwzCOIAGOvaCaVFQgKtReTB8poBRCPwc9+nuvC9kd3d9tMd396Bj\/DqHd1fAdxCEO4oDxdxHJDk8JnSU+7FnNmqIy2AvBBguBKSv36TLO9gRyylw=","status":"Ffl4tFA8xyCRi7r0\/N7jIXxONSIEaqBRd1\/+ztnVXdfgvsA6ZCO0Zgc6gTeOTqDaN7Z4ubflfvLxtiCg0Pa68Lyhk\/xdCmqgjxsz5JLf\/\/c="},{"home_id":"11111","id":"42188130","version_data":"30","version_status":"11472","data":"Xt5viRNpTXv9fZ3TD4rxlNtCElGMobHXwUBf2KnWk1o9k4s4er9s+217APdayzokqME6wSS1xdP+HvLkGCSyaOagBznveGZvo3vz41A60LZtccX20yUPWtiIUQESpLLDRSmWLDcjH4ZPCBZ5f56krhX1207P3MlPNa3dPSJ7ywzZBpP0a9P6AOatDBvAT+hwj9LPPxN0CajTEQSETQcbvjhohFbL4wK5H3hZMF\/qj6bbmg6hLA0zowLW3lWRqEDJnQsLMkuMkR9ii+AsVho0fKLzC49OR7cOVgbpR5koRHArBxhBYHdOG6sdmC3s+zr8o46f4f15RS5mpYPoMOnPIuAAGE5i3UwAVAuq2\/4uEjw=","status":"z4KJjzlRDwTIBIAxNIKX\/YMMIbQzbOcBvTTlBtNWJK8Ttog0nkFXAigMtZlceVf6rIY+jdUfpaRqWM\/barj3tyADoSDOaTxx3OMlX9WGcZM="},{"home_id":"11111","id":"44755901","version_data":"27","version_status":"11471","data":"kJ3LMzLS7R1PsTwzQBJTaOrl2A1YWcIsmzK2gB+oa+o1CNRQc1F33FT23HFWJyksjaj7T57mvpYyeFZ\/NevS4vpqUtjUL8LV3uH9uDCpNanRzm172JsESsU5EvD2jHg934GjQc1C6eDMuH\/sMpD1vJQ7wa2HgPFbrlaJ0XhUVj5sSH3UmzxS2GxVEsLq+HfR596FfI74rBaMxraUAl9Cg98AhwL+k\/e6fYAZ0+zof5dzQEKR1iynFJjABd0lq+Ud+ta\/60VGXL3iXJTnnnoIAHqHVcFoZlVYNZaa5uTQ+hivqWdvFuu9vyg4g30F71IJ4PGhKpWxKJ9NBXuih09BMw==","status":"Av\/DA3qAVAmpYTCMFBAPJ3fPjq6NYiJe0\/490SKCVl2Qxelf8KrTkXUXcrfSjCjM5LQ3dkHec+c5V1LIEPKHCh9ZbVhkoiCJ3N8Nsrj1UHU="},{"home_id":"11111","id":"72882030","version_data":"49","data":"TqgPvsUKmxbSXwgfgn4v8WfYk1icTm3WTLsI33\/cLqOGhfk8zq37FqxcB+ZmUXfd3rE4c1O3jbUuodGLuESmcQdg6pP4z+\/uyeCo0bzWRN0Phkju6VlFw22NmQtMEPqiH1DP+HRtmzO+RVdlgqYNDSVO6wdoPrj5Ar06j3+zX6sSYmPQXUypIr65m+ujmfKUZAoGkLsQjsynJBds2pe8q+HLXLxBp5\/pA02efEgU7a3RTNBcqvyRC7b6za8yNgX2","created":"2020-06-16 17:25:43"},{"home_id":"11111","id":"79822951","version_data":"42","data":"78gNtVUILJ8lOtdISY+ctpdrOyUonWzN2Wg2TvJITjtCzt55xD99H0IsGQFZvOAf9FMkPQ1LTG54aCM+pMG\/bRNtA9f+k4gvL1pCtj231iCLnKtPvHMEbQr4T484tsGzw1Tr2xWcHwzWZNbjoKu0k\/RXuw8NW9b9fEYM4u6qUiiZNK7nhiWixZ\/LGkenUEtkp\/yJwOox6\/ZZJxR\/o5MrPt3PEKIgdCdurJ7s3VB47cc=","created":"2020-06-16 17:10:42"}]
Resultaat van de api call via een url.

Acties:
  • 0 Henk 'm!

  • bjp
  • Registratie: Januari 2010
  • Laatst online: 11-09 23:12

bjp

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def get_device_check(self, entity) -> []:
        url = base_url + "/entity.php"
        params = {"action": "check", "email": self._email, "mac": self.mac.replace(":", ""),
                  "password_hash": self._password, "entity_id": str(entity)}
        resp = requests.get(url, params=params)
        arr = json.loads(resp.text)
        if len(arr) == 4:
            # 0: data-version
            # 1: data
            # 2: status-version
            # 3: status
            try:
              dcrpt = json.loads(decrypt(arr[3], self.aes))
              if "module" in dcrpt and "functions" in dcrpt["module"]:
                  return dcrpt["module"]["functions"]
            except TypeError:
              pass
            except json.decoder.JSONDecodeError:
              pass
        return []


uit de resp.text wordt een JSON load gedaan. Hierin in het 4de element nemen, decrypten, terug JSON load... en daarin heb je dan de nodige data ;)

code:
1
2
3
4
5
6
def decrypt(string: str, aes: str) -> str:
    base = base64.b64decode(string)
    iv = base[:16]
    inp = base[16:]
    cipher = AES.new(bytes.fromhex(aes), AES.MODE_CBC, iv)
    return unpad(cipher.decrypt(inp), 16).decode(encoding)

[ Voor 11% gewijzigd door bjp op 04-06-2021 14:57 ]

8.3kW Oost-West PV en 7.7kWh thuisbatterij | WP EcoForest 1-6 PRO en dWTW | Stromer ST1 & ST3


Acties:
  • 0 Henk 'm!

  • Amersfoort
  • Registratie: April 2009
  • Laatst online: 07:55
bjp schreef op vrijdag 4 juni 2021 @ 14:56:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def get_device_check(self, entity) -> []:
        url = base_url + "/entity.php"
        params = {"action": "check", "email": self._email, "mac": self.mac.replace(":", ""),
                  "password_hash": self._password, "entity_id": str(entity)}
        resp = requests.get(url, params=params)
        arr = json.loads(resp.text)
        if len(arr) == 4:
            # 0: data-version
            # 1: data
            # 2: status-version
            # 3: status
            try:
              dcrpt = json.loads(decrypt(arr[3], self.aes))
              if "module" in dcrpt and "functions" in dcrpt["module"]:
                  return dcrpt["module"]["functions"]
            except TypeError:
              pass
            except json.decoder.JSONDecodeError:
              pass
        return []


uit de resp.text wordt een JSON load gedaan. Hierin in het 4de element nemen, decrypten, terug JSON load... en daarin heb je dan de nodige data ;)

code:
1
2
3
4
5
6
def decrypt(string: str, aes: str) -> str:
    base = base64.b64decode(string)
    iv = base[:16]
    inp = base[16:]
    cipher = AES.new(bytes.fromhex(aes), AES.MODE_CBC, iv)
    return unpad(cipher.decrypt(inp), 16).decode(encoding)
Als ik het goed begrijp (ik ben geen developer) neem ik uit de json file de waarde van het element "status", en die moet ik gaan decrypten. Doordat ik geen kennis heb van Python, blijf ik hier hangen.
Ik denk dat de eerste stap is deze "status" waarde met base64 te decoderen (hetgeen mij nog onleesbare data geeft). Kun je functioneel aangeven wat er daarna moet gebeuren?
Bij het element "data" zie ik ook gecodeerde waarden. Kan ik hier nog iets mee doen?

Sorry voor de wellicht basic vraag, maar ik moet het naar PowerApps vertalen en die heeft andere functies.

Acties:
  • +2 Henk 'm!

  • rutgerdegraaf
  • Registratie: Januari 2018
  • Laatst online: 10-09 19:23
Voor de liefhebber een Home Assistant integratie: https://github.com/rdegraafwhizzkit/ics2000-hass
Alleen getest met KAKU dimbare lampen en schakelaars.

Acties:
  • +1 Henk 'm!

  • bjp
  • Registratie: Januari 2010
  • Laatst online: 11-09 23:12

bjp

ohla ziet er niet slecht uit (van code).

zal eens kijken of ik er iets aan heb :)

8.3kW Oost-West PV en 7.7kWh thuisbatterij | WP EcoForest 1-6 PRO en dWTW | Stromer ST1 & ST3


Acties:
  • 0 Henk 'm!

  • sp_mike
  • Registratie: November 2016
  • Laatst online: 26-06 21:21
Weet iemand of het mogelijk is om met Python de historische data van mijn energieverbruik uit te lezen? De app gaat maar een maand terug. Zou graag meer data zien ;-)

Acties:
  • 0 Henk 'm!

  • Vailen
  • Registratie: Augustus 2010
  • Laatst online: 07-09 15:40

Vailen

Shit happens

rutgerdegraaf schreef op maandag 24 oktober 2022 @ 21:50:
Voor de liefhebber een Home Assistant integratie: https://github.com/rdegraafwhizzkit/ics2000-hass
Alleen getest met KAKU dimbare lampen en schakelaars.
Ik krijg het niet werkende helaas.
Krijg deze melding
Platform error light.ics2000 - No module named 'ics2000'.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Platform error: light
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config.py", line 865, in async_process_component_config
    platform = p_integration.get_platform(domain)
  File "/usr/src/homeassistant/homeassistant/loader.py", line 728, in get_platform
    cache[full_name] = self._import_platform(platform_name)
  File "/usr/src/homeassistant/homeassistant/loader.py", line 745, in _import_platform
    return importlib.import_module(f"{self.pkg_path}.{platform_name}")
  File "/usr/local/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/config/custom_components/ics2000/light.py", line 11, in <module>
    from ics2000.Core import Hub
ModuleNotFoundError: No module named 'ics2000'


Dit is de error

Help!

Twitch | Youtube | GameRig: Lenovo Legion 5i | i7-14650HX | RTX 4070 | 16Gb | 1Tb


Acties:
  • 0 Henk 'm!

  • Vailen
  • Registratie: Augustus 2010
  • Laatst online: 07-09 15:40

Vailen

Shit happens

Oplossing gevonden!

Wil je de ICS2000 toevoegen aan je Home Assistant OS moet je de volgende commando's gebruiken:

code:
1
sudo docker exec -it homeassistant /bin/bash

en dan:
code:
1
pip install --upgrade git+https://github.com/rdegraafwhizzkit/ics2000-python@master#egg=ics2000


en dan werkt het wel!

Twitch | Youtube | GameRig: Lenovo Legion 5i | i7-14650HX | RTX 4070 | 16Gb | 1Tb


Acties:
  • +1 Henk 'm!

  • Vailen
  • Registratie: Augustus 2010
  • Laatst online: 07-09 15:40

Vailen

Shit happens

@rutgerdegraaf

Is er ook een mogelijkheid om de zigbee apparaten en bewegingssensors toe te voegen?

Er is parallel ook iemand bezig voor homebridge met dezelfde basis.
https://github.com/youridijk/homebridge-kaku-ics2000

Twitch | Youtube | GameRig: Lenovo Legion 5i | i7-14650HX | RTX 4070 | 16Gb | 1Tb


Acties:
  • +1 Henk 'm!

  • Basdon1985
  • Registratie: Maart 2014
  • Laatst online: 18-08 10:23
Vailen schreef op maandag 21 november 2022 @ 08:02:
Oplossing gevonden!

Wil je de ICS2000 toevoegen aan je Home Assistant OS moet je de volgende commando's gebruiken:

code:
1
sudo docker exec -it homeassistant /bin/bash

en dan:
code:
1
pip install --upgrade git+https://github.com/rdegraafwhizzkit/ics2000-python@master#egg=ics2000


en dan werkt het wel!
Misschien een beginnersvraag maar ik heb een standaard home assistent image op mijn raspberry pi gezet. Ik kan vanaf de command prompt deze commando’s niet geven. Hoe installeer ik toch de vereiste dingen?

Acties:
  • +1 Henk 'm!

  • Downloader4Life
  • Registratie: Juli 2005
  • Laatst online: 19-06 08:29
Hoi allemaal,

Even een soort van hetzelfde zoals de vorige post. Is er misshien een stappenplan om de ICS-2000 in HA te krijgen. Ik zie geweldige opmerkingen in dit topic voorbij komen met dat het werkt alleen mij is niet duidelijk welke stappen allemaal genomen moeten worden om het voor elkaar te krijgen.

Ik draai Home Assistant OS en die is wat beperkter in mogelijkheden om SSH commando's etc te doen en mijn Linux kennis is niet goed genoeg om supervisor te draaien.

Ben benieuwd wie me op weg kan helpen!

Do it right or don't do it at all.


Acties:
  • 0 Henk 'm!

  • Basdon1985
  • Registratie: Maart 2014
  • Laatst online: 18-08 10:23
Downloader4Life schreef op vrijdag 27 januari 2023 @ 19:43:
Hoi allemaal,

Even een soort van hetzelfde zoals de vorige post. Is er misshien een stappenplan om de ICS-2000 in HA te krijgen. Ik zie geweldige opmerkingen in dit topic voorbij komen met dat het werkt alleen mij is niet duidelijk welke stappen allemaal genomen moeten worden om het voor elkaar te krijgen.

Ik draai Home Assistant OS en die is wat beperkter in mogelijkheden om SSH commando's etc te doen en mijn Linux kennis is niet goed genoeg om supervisor te draaien.

Ben benieuwd wie me op weg kan helpen!
Het is me uiteindelijk gelukt!

Zie “https://hacs.xyz/docs/setup/download/“

De ssh add on moet je voorzien van een wachtwoord. Die vind je bij de settings van de add on.

Met een aparte ssh client zoals via de prompt van een Mac kun je als “root” en dan je ingegeven wachtwoord het “wget” commando geven zoals in de link beschreven staat

Acties:
  • 0 Henk 'm!

  • Downloader4Life
  • Registratie: Juli 2005
  • Laatst online: 19-06 08:29
Basdon1985 schreef op maandag 6 februari 2023 @ 21:14:
[...]


Het is me uiteindelijk gelukt!

Zie “https://hacs.xyz/docs/setup/download/“

De ssh add on moet je voorzien van een wachtwoord. Die vind je bij de settings van de add on.

Met een aparte ssh client zoals via de prompt van een Mac kun je als “root” en dan je ingegeven wachtwoord het “wget” commando geven zoals in de link beschreven staat
Hi Basdon, hiermee bedoel je volgens mij het installeren van HACS, dat is mij al gelukt. Het gaat bij mij vooral om de ICS-2000 integratie.

Do it right or don't do it at all.


Acties:
  • 0 Henk 'm!

  • f.h
  • Registratie: Januari 2006
  • Laatst online: 12-09 19:57

f.h

Vailen schreef op maandag 21 november 2022 @ 22:43:
Er is parallel ook iemand bezig voor homebridge met dezelfde basis.
https://github.com/youridijk/homebridge-kaku-ics2000
Deze heb ik zojuist ook bij toeval gevonden (en ik kwam in dit topic om dat te posten :+ ) en hij lijkt voorlopig prima te werken in Homebridge. Erg fijn, kan ik sneller de boel bedienen ipv de Kaku app openen.

Acties:
  • 0 Henk 'm!

  • bjp
  • Registratie: Januari 2010
  • Laatst online: 11-09 23:12

bjp

ik denk dat er voor de Home Assistant gebruikers onder ons, interesse is om de ICS2000 te benaderen via UDP/Local LAN (enkel de cloud voor login/AES).

via de decompile van de App moet dat lukken.

Huidige python code gebruikt zover ik weet de TCP/cloud link.

Ik ben ook geen die-hard Home Assistant developer, stel ik kan de lijst devices uitlezen, hoe voegt ik deze 'automatisch' toe aan Home Assistant, soort discovery?

Uit de decompile, heb ik ook een lijst ID -> naam.

Zijn er gemotiveerde devs hier om het werk te delen?

Hoofdoelen:
- alarm kunnen aansturen/uitlezen
- P1 poort uitlezen
- lampen, temperatuur sensoren... hoewel hier het simpeler is om direct ZHA/zigbee2mqtt te gebruiken

[ Voor 13% gewijzigd door bjp op 14-11-2023 12:00 ]

8.3kW Oost-West PV en 7.7kWh thuisbatterij | WP EcoForest 1-6 PRO en dWTW | Stromer ST1 & ST3


Acties:
  • 0 Henk 'm!

  • ThunderTNT
  • Registratie: November 2015
  • Laatst online: 04-05 23:52
bjp schreef op dinsdag 14 november 2023 @ 11:59:
ik denk dat er voor de Home Assistant gebruikers onder ons, interesse is om de ICS2000 te benaderen via UDP/Local LAN (enkel de cloud voor login/AES).

via de decompile van de App moet dat lukken.

Huidige python code gebruikt zover ik weet de TCP/cloud link.

Ik ben ook geen die-hard Home Assistant developer, stel ik kan de lijst devices uitlezen, hoe voegt ik deze 'automatisch' toe aan Home Assistant, soort discovery?

Uit de decompile, heb ik ook een lijst ID -> naam.

Zijn er gemotiveerde devs hier om het werk te delen?
Ik heb er zelf geen tijd meer voor, ik weet wel dat
https://github.com/youridijk/homebridge-kaku-ics2000
de lokale link gebruikt.

Acties:
  • 0 Henk 'm!

  • bjp
  • Registratie: Januari 2010
  • Laatst online: 11-09 23:12

bjp

dezelfde developer heeft ook deze: https://github.com/youridijk/ICS-2000-NodeJS

8.3kW Oost-West PV en 7.7kWh thuisbatterij | WP EcoForest 1-6 PRO en dWTW | Stromer ST1 & ST3


Acties:
  • +1 Henk 'm!

  • Youri Dijk
  • Registratie: Februari 2018
  • Laatst online: 13-06 18:40
@bjp

Het is mij gelukt de P1 data uit te lezen, apparaten bedienen en huidige status van apparaten uit te lezen. Dit met behulp van de python library van Stijnjacobs en m’n eigen research. Mocht je een integratie met home assistant willen maken, ik heb een deel van de API gedocumenteerd. Zie https://github.com/youridijk/ICS-2000-NodeJS/tree/main/docs

Maar mocht dit lastig zijn (begrijpelijk, de API is niet zo makkelijk), dan is het ook mogelijk om de door mij geschreven REST server te gebruiken. Deze is ook geschreven in Node.JS maar er zit een Dockerfile bij om het in docker te draaien. De REST kun je vinden in https://github.com/youridijk/ICS-2000-NodeJS

Ik heb zelf geen tijd om functionaliteiten toevoegen aan de python library vanwege full time stage. Maar stel gerust vragen hierop of open een issue op GitHub!
Pagina: 1 2 Laatste