{ "cells": [ { "cell_type": "code", "execution_count": null, "id": "initial_id", "metadata": { "collapsed": true }, "outputs": [], "source": [ "import paramiko\n", "import pandas as pd\n", "from datetime import datetime\n", "import time\n", "\n", "\n", "def get_data(hostname, port, username, password, script_path):\n", " try:\n", " client = paramiko.SSHClient()\n", " client.set_missing_host_key_policy(paramiko.AutoAddPolicy())\n", " client.connect(hostname, port, username, password)\n", "\n", " stdin, stdout, stderr = client.exec_command(f'python3 {script_path}')\n", " output = stdout.read().decode('utf-8').strip()\n", "\n", " client.close()\n", "\n", " output_pairs = output.split(',')\n", "\n", " variable_values = [float(pair.split('=')[1]) for pair in output_pairs]\n", "\n", " variable1, variable2, variable3 = variable_values\n", "\n", " return variable1, variable2, variable3\n", "\n", " except Exception as e:\n", " print(f\"An error occurred: {e}\")\n", " return None, None, None\n", "\n", "\n", "df = pd.read_csv('Data.csv')\n", "while True:\n", " try:\n", " temp, pressure, humidity = get_data('hostname', port, 'username', 'password', 'script_path')\n", " time_1 = datetime.now().time().replace(microsecond=0)\n", " date_1 = datetime.today().date().strftime('%d-%m-%Y')\n", " df_temp = pd.DataFrame(\n", " {'Date': [date_1], 'Time': [time_1], 'Temperature': [temp], 'Barometric Pressure': [pressure],\n", " 'Humidity': [humidity]})\n", " df = pd.concat([df, df_temp])\n", " df.to_csv('Data.csv', index=False)\n", " time.sleep(59)\n", "\n", " except KeyboardInterrupt:\n", " break\n", "\n", "df.to_csv('Data.csv', index=False)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 5 }