J'utilise un Pi 3 avec google IOT pour faire fonctionner certains relais qui contrôlent les vannes d'un système d'irrigation. Le système utilise Internet pour obtenir des prévisions météorologiques afin de déterminer la quantité d'eau à utiliser et utilise NanoHTTPD pour fournir une interface utilisateur.
Cela fonctionne bien, mais parfois je reçois une erreur qui arrête le tout. À partir des fichiers journaux:
05-04 05:26:14.677 737-1077/com.google.Android.gms.persistent W/Conscrypt: Could not set socket write timeout:
05-04 05:26:14.678 737-1077/com.google.Android.gms.persistent W/Conscrypt: Java.lang.reflect.Method.invoke(Native Method)
com.google.Android.gms.org.conscrypt.Platform.setSocketWriteTimeout(:com.google.Android.gms@11973330:13)
05-04 05:26:14.798 737-1077/com.google.Android.gms.persistent W/Conscrypt: Could not set socket write timeout:
05-04 05:26:14.799 737-1077/com.google.Android.gms.persistent W/Conscrypt: Java.lang.reflect.Method.invoke(Native Method)
com.google.Android.gms.org.conscrypt.Platform.setSocketWriteTimeout(:com.google.Android.gms@11973330:13)
05-04 05:26:14.914 737-1077/com.google.Android.gms.persistent W/GLSUser: [AppCertManager] IOException while requesting key:
Java.io.IOException: Invalid device key response.
at fmk.a(:com.google.Android.gms@11973330:12)
at fmk.a(:com.google.Android.gms@11973330:64)
at fmi.a(:com.google.Android.gms@11973330:8)
at fme.a(:com.google.Android.gms@11973330:1)
at fmd.a(:com.google.Android.gms@11973330:10)
at com.google.Android.gms.auth.account.be.legacy.AuthCronChimeraService.b(:com.google.Android.gms@11973330:7)
at ers.call(:com.google.Android.gms@11973330:3)
at Java.util.concurrent.FutureTask.run(FutureTask.Java:266)
at kfr.run(:com.google.Android.gms@11973330:26)
at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1162)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:636)
at kku.run(Unknown Source:7)
at Java.lang.Thread.run(Thread.Java:764)
J'apprécierais quelques conseils sur la façon d'empêcher cela de se produire.
Merci.
Facile. Cela signifie que la clé de la console Google associée au service IOT ne correspond pas à celle stockée localement sur votre Mac/Pi 3.
Exécutez simplement: keytool -list -v -keystore <your keystore> -storepass <your store password>
et copiez la clé sous SHA1
ou SHA256
à la console Google.
Vous pouvez créer un keystore
si aucun n'est présent par keytool -genkeypair
.
Pour d'autres commandes utiles, exécutez keytool -h
.