Je vais décrire l'une des façons de surveiller la «ferme» et de redémarrer à distance si elle se fige, la carte vidéo ou le programme d'exploration de données est «tombé», Internet a disparu et le routeur est tombé en panne.
Avantages d'une prise GSM:
- Redémarrage automatique de la "ferme", même si elle est gelée "en dur".
- Vous serez informé d'un redémarrage de la batterie de serveurs. Même si vous ne disposez pas d'Internet sur votre mobile en ce moment. Vous recevrez un SMS ordinaire.
- Google Drive - fonctionne toujours dans le "cloud", sans votre participation, vérifié depuis plus de 5 ans.
- Le prix d'émission est de ~ 800 UAH. + 1 UAH par an. (pour tout tarif de Kyivstar)
Inconvénients des autres systèmes de surveillance:
- Logiciel WATCHDOG - peu importe quoi, mais ... se bloque!
- USB WATCHDOG - n'envoie pas d'alerte, il ne redémarre parfois pas si pour une raison quelconque le «mineur» a fermé.
- Les prises intelligentes Wi-Fi ne redémarrent pas automatiquement le système. Il est nécessaire d'y accéder et de l'éteindre et de le rallumer manuellement. Pourvu qu'Internet ne "tombe" pas et que le routeur ne se bloque pas.
L'idée de la surveillance fonctionne si vous exploitez une piscine et que la piscine donne des statistiques sur le fonctionnement de votre "ferme".
- Inscrivez-vous sur Google.com ou utilisez un compte gmail .com prêt à l'emploi. Gratuitement!
- Inscrivez-vous sur clickatell.com - c'est d'envoyer des SMS à votre point de vente. Gratuitement!
- Nous achetons une prise GSM. Prise GSM SOKOL éprouvée. La 1ère version de SOKOL-GS1 suffit. Ou une autre prise GSM disponible qui fonctionne via des commandes SMS.
Le sens du travail de suivi:
Le script s'exécute 24 heures sur 24 dans Google Drive et interroge votre piscine chaque minute. Dès que le script reçoit votre vitesse égale à zéro H / sec, il enverra immédiatement des SMS à la prise pour redémarrer la "ferme". Tout fonctionne sans votre participation.
Tous les SMS sont gratuits!
Configuration du script pour le disque Google
Sur l'exemple de la crypto-monnaie KARBO (carbovanets), avec l'algorithme CryptoNight et le pool krb.sberex.com
Nous allons sur
drive.google.com et créons un nouveau script Google Apps:
Nous écrivons ce code:

Code de scriptfunction response(n) { // var wallet = 'KcdYnF6rxxKEw7pvFWqNCh3yhpFD6sfvtCuTakxpWZSQCs3sTrvBLfK4TLMxZnRd'; try { // var html = UrlFetchApp.fetch('http://home.sberex.com:7006/stats_address?address=' + wallet, {muteHttpExceptions:true}); } catch (e) { if (n < 2) response(++n); else send_sms('sberex.com++3+'); return false; } try { return JSON.parse(html.getContentText()); } catch (e) { // Logger.log(response); send_sms('error+sberex.com:+'+html.getResponseCode()); return false; } } function sberex() { var JSONresponse = response(0); if (!JSONresponse) return; var dateLastShare = Utilities.formatDate(new Date(JSONresponse.stats.lastShare*1000), Session.getScriptTimeZone(), "HH:mm"); var hashrate = JSONresponse.stats.hashrate; var cacheHashrate = CacheService.getScriptCache().get('hesh'); if (hashrate && cacheHashrate == 'undefined') { send_sms('YES_KRB+' + dateLastShare); CacheService.getScriptCache().put('time', 0); } if (!hashrate && cacheHashrate != 'undefined') { send_sms_mining_off(); send_sms('NOT_KRB+' + dateLastShare); // send_sms_mining('Vkl'); } if (!hashrate && cacheHashrate == 'undefined') { var cacheTime = CacheService.getScriptCache().get('time'); if (cacheTime) ++cacheTime; else cacheTime = 0; if (cacheTime != 0 && cacheTime % 10 == 0) send_sms('NOT_KRB+%3E' + cacheTime + 'min+' + dateLastShare); CacheService.getScriptCache().put('time', cacheTime); } CacheService.getScriptCache().put('hesh', hashrate); } function sberex_day() { var JSONresponse = response(0); if (!JSONresponse) return; var payments = JSONresponse.charts.payments; var hashrate = JSONresponse.charts.hashrate; var day = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "dd") - 1; var pay = 0, hash = 0; for (var i = 0; i < payments.length; i++) { if (Utilities.formatDate(new Date(payments[i][0]*1000), Session.getScriptTimeZone(), "dd") == day) pay += payments[i][1] / 1000000000000; } for (var i = 0; i < hashrate.length; i++) { hash += hashrate[i][1]; } hash = (hash / hashrate.length).toFixed(0); send_sms(pay + '+KRB+++' + day + '+(~+' + hash + '+H/sec)'); } function send_sms(m) { // ( .) UrlFetchApp.fetch('https://platform.clickatell.com/messages/http/send?apiKey=iY3rdSUbRj6b4E356g==&to=380981075040&content=' + m); } function send_sms_mining_off() { // . try { var html = UrlFetchApp.fetch('https://platform.clickatell.com/messages/http/send?apiKey=iY3rdSUbRj6b4E36g==&to=380661075040&content=%231111LOAD0'); var mesID = JSON.parse(html.getContentText()).messages[0].apiMessageId; if (mesID) CacheService.getScriptCache().put('mesID', mesID, 21600); else send_sms('+++++'); } catch (e) { send_sms_mining_off(); } } function doGet(e) { // , . var status = e.parameter.status; var mesID = CacheService.getScriptCache().get('mesID'); if (e.parameter.status == 'RECEIVED_BY_RECIPIENT' && mesID == e.parameter.messageId) UrlFetchApp.fetch('https://platform.clickatell.com/messages/http/send?apiKey=iY3rdSUbRj6b4E36g==&to=380661075040&content=%231111LOAD1'); }
Dans le code, modifiez vos données en conséquence, il s'agit de l'adresse du portefeuille, du téléphone et de la piscine.
Attention! L'adresse du pool n'est pas celle que vous voyez dans le navigateur, mais vous devez la trouver. Pour ce faire, appuyez sur
ctrl + shift + i sur la page des statistiques et sélectionnez
Réseau dans la fenêtre qui apparaît.
Nous trouvons cette partie de la demande qui demande des statistiques sur le serveur. Chaque pool a le sien, mais les réponses viennent toujours au format JSON standard. Pour Karbovanets, c'est la même chose pour n'importe quelle piscine. C'est la réponse qui «analyse» le script sur le disque Google, chaque minute.
Après avoir modifié les données du code en vos valeurs, vous devez l'activer et le déployer en tant qu'application Web. Pour ce faire, sélectionnez une fonction dans le script et exécutez-la:
Cliquez sur "Accorder l'autorisation" et sélectionnez un compte:
Cliquez sur "Autoriser":
Développez maintenant en "Application Web", cliquez sur le menu "Publier":
Définissez comme indiqué dans la capture d'écran ci-dessous:
Copiez l'URL actuelle de l'application Web, elle vous sera utile à l'avenir.
Ajoutez maintenant un déclencheur qui se déclenchera toutes les minutes et une fois par jour avec un rapport (facultatif). Nous sélectionnons ces fonctions et configurons en fonction de la capture d'écran:
Ceci termine la configuration du script, passez à SMS.
Configuration de la passerelle SMS
Inscrivez-vous sur clickatell.com. Nous allons dans votre compte personnel et ajoutons deux téléphones. Pour signaler, votre téléphone et celui de la prise. La ressource Clickatell vous permet d'envoyer des SMS entièrement gratuits à vos trois numéros que vous enregistrez avec eux, en quantités illimitées. Maintenant, configurez l'API pour l'envoi de SMS, allez
ici et configurez l'API, vous recevrez une clé d'API.
Ceci termine le suivi du suivi "ferme". insérez la carte SIM dans la prise GSM, allumez la ferme. Vous pouvez tester le fonctionnement de la prise en exécutant la fonction dans le
script send_sms_mining_off () . La prise devrait s'éteindre et s'allumer après quelques secondes, tandis qu'une alerte est envoyée à votre téléphone.
PS Pour le troisième mois maintenant, il n'y a pas eu un seul cas où vous avez dû redémarrer manuellement ou exécuter la ferme!