119 lines
33 KiB
Text
119 lines
33 KiB
Text
|
{
|
||
|
"cells": [
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 26,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"import json\n",
|
||
|
"\n",
|
||
|
"with open(\"latest_history.json\", \"r\") as fp:\n",
|
||
|
" data = json.load(fp)"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 27,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"data = data[int(-60 * 60 * 14.5):int(-60 * 60 * 13)]"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": null,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"name": "stdout",
|
||
|
"output_type": "stream",
|
||
|
"text": [
|
||
|
"Total bed weight: 78.98908\n"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"# Get rough value for empty bed weight per leg\n",
|
||
|
"rough_bed_weight = 80\n",
|
||
|
"bed_only_weight = {}\n",
|
||
|
"for d in data:\n",
|
||
|
" if d[\"total\"] < rough_bed_weight:\n",
|
||
|
" bed_only_weight = {\n",
|
||
|
" \"tl\": d[\"tl\"],\n",
|
||
|
" \"tr\": d[\"tr\"],\n",
|
||
|
" \"bl\": d[\"bl\"],\n",
|
||
|
" \"br\": d[\"br\"],\n",
|
||
|
" }\n",
|
||
|
" total_bed_only_weight = sum(bed_only_weight.values())\n",
|
||
|
" break\n",
|
||
|
"\n",
|
||
|
"print(f\"Total bed weight: {total_bed_only_weight}\")"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 28,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"y = [d[\"total\"] - total_bed_only_weight for d in data]\n",
|
||
|
"y = [(i if i > 10 else None) for i in y]\n",
|
||
|
"\n",
|
||
|
"x = [i for i in range(len(y))]"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 29,
|
||
|
"metadata": {},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAGwCAYAAABPSaTdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABbB0lEQVR4nO3dd3wUdf4/8Nemh/RCGgQINSAtFDGAGCCKgCh2/HIccooNUQQbKuihAnJWFEE9D/B+ClYsKAhHLyH0EkpooQgpQEgnfX5/hEx2k9m+szM7+3r64GEyO7v7zuzMZ977qTpBEAQQERERaZSH0gEQERERyYnJDhEREWkakx0iIiLSNCY7REREpGlMdoiIiEjTmOwQERGRpjHZISIiIk3zUjoANaitrcXFixcRFBQEnU6ndDhERERkAUEQUFxcjLi4OHh4GK+/YbID4OLFi4iPj1c6DCIiIrLB+fPn0bJlS6OPM9kBEBQUBKDuYAUHByscDREREVmiqKgI8fHx4n3cGCY7gNh0FRwczGSHiIjIxZjrgsIOykRERKRpTHaIiIhI05jsEBERkaYx2SEiIiJNUzTZ2bx5M0aNGoW4uDjodDr8/PPPBo8LgoCZM2ciNjYW/v7+SE1NxYkTJwz2yc/Px9ixYxEcHIzQ0FA88sgjKCkpceJfQURERGqmaLJTWlqKHj16YMGCBZKPz5s3D/Pnz8eiRYuQnp6OgIAADBs2DOXl5eI+Y8eOxeHDh7F27VqsXLkSmzdvxmOPPeasP4GIiIhUTicIgqB0EEDdsLEVK1Zg9OjRAOpqdeLi4jBt2jQ8//zzAIDCwkJER0djyZIlGDNmDI4ePYouXbpg165d6NOnDwBg9erVGDFiBP766y/ExcVJvldFRQUqKirE3+vH6RcWFnLoORERkYsoKipCSEiI2fu3avvsZGVlIScnB6mpqeK2kJAQ9OvXD2lpaQCAtLQ0hIaGiokOAKSmpsLDwwPp6elGX3vOnDkICQkR/3H2ZCIiIu1SbbKTk5MDAIiOjjbYHh0dLT6Wk5ODqKgog8e9vLwQHh4u7iNl+vTpKCwsFP+dP3/ewdETERGRWrjlDMq+vr7w9fVVOgwiIiJyAtXW7MTExAAAcnNzDbbn5uaKj8XExCAvL8/g8erqauTn54v7EBERkXtTbbKTkJCAmJgYrFu3TtxWVFSE9PR0JCcnAwCSk5NRUFCAPXv2iPusX78etbW16Nevn9NjJiIiIvVRtBmrpKQEJ0+eFH/PysrC/v37ER4ejlatWmHKlCl466230KFDByQkJGDGjBmIi4sTR2x17twZt99+OyZOnIhFixahqqoKTz/9NMaMGWN0JBaRmpVX1cDP21PpMIiINEXRmp3du3cjKSkJSUlJAICpU6ciKSkJM2fOBAC8+OKLmDx5Mh577DH07dsXJSUlWL16Nfz8/MTX+Prrr5GYmIihQ4dixIgRGDhwID7//HNF/h4ie3y76xwSZ6zGd7vYYZ6IyJFUM8+Okiwdp08kpzYv/y7+fGbuSAUjISJyDS4/zw4RERGRIzDZISIiIk1jskNERESaxmSHiIiINI3JDpEZ7MNPROTamOwQmbBw4yn0enMtTl0qUToUIiKyEZMdIhPeWX0MV8uq8ObKI0qHQkRENmKyQ2QBtmQREbkuJjtEFqhltkNE5LKY7BAREZGmMdkhsgBrdoiIXBeTHSILMNchInJdTHaILMCaHSIi18Vkh8gCzHWIiFwXkx0iC+QUlSsdAhER2YjJDpEFzl4ps/o5FdU1eGTJLny5NUuGiIiIyFJMdohk8sv+i1h3LI+zLxMRKYzJDpGe99dk4r9pZxzyWhXVtQ55HSIiso+X0gEQqcXJvGLMX38SADAuuY3dr+fjqbP7NYiIyH6s2SG6rri82qGv5+XBy4uISA1YGhNd5+jR5TpW7BARqQKTHSIiItI0JjtEMmHNDhGROrCDMpGE/2zNYrJCRKQRTHaIJMxaeQReHvZlOzowWyIiUgM2YxFd5+j1r1gzRESkDkx2iIiISNOY7BAZ4ciaGYHLphMRKYbJDpETMNchIlIOkx0iI+ztYKzTqxqqZbZDRKQYJjtEIvkSklrmOkREimGyQyQT/XohQcZEioiITGOyQ2SMnR2U9Ts4sxWLiEg5THaInIDJDhGRcpjsEMlEv4MzOygTESmHyQ7RdY3zEUdOgMxUh4hIOUx2iGSy5+xV8WfW7BARKYfJDpEMyqtq8J9tWeLvzHWIiJTDZIfICHuWi6ioqjX43dblIiqra83vREREJjHZIZKBR6Mry9ykggs3nmqy7V9/HkPH11bh0F+FDoyMiMj9MNkhMsKe5SIa5zbmanbeWX2sybYFG+oSoDmrjtocBxERMdkhkkXj3Mae5SIcufo6EZE7YrJDJAeh8a+2Zzv2LkhKROTumOwQXdc4HbGnRqVxcsPRWEREymGyQySDxsmNPckOm7GIiOzDZIdIBo1zG04qSESkHCY75HZyi8ox67cjOH2pxOR+9lSoNB59xWSHiEg5XkoHQORsT329F3vOXsVP+/7C/pm3OfS1BUHAD3v+QlSwX6PtwMSvdmPtkVyM6RuPpFahCPH3QaeYICREBph8TR3bsYiI7MJkh9zO/vMFAICCsiqD7U0WAm2UZLz7ZyYmDW4Pfx9Po6+9++xVvPDDwSbbb563Qfx5+a7zWL7rvMXxMtUhIrIPm7HI7diaPHyy4SQ+/N9xk/tcKam08dWJiEgurNkhssJBM0s3mKr1+eofNyKpVSj2nL2KI9lF2HriMrafumL2PdmKRURkHyY7REZI5RjVtaYX5qySWLjz+FvD4e2pE5vFUjpFIaVTFJ5KaQ8AuFpaiaQ311oVBxERWY7NWOR27KkpqaoxPaqqqqZpsuPj5WGyk7EHq26IXJ659e9IWUx2yO0YW37BksLqapnpPjmVEsmO2XjMXIUcjUWkbv87koues9Zi/bFcpUMhI5jskPuxNHfQAT3jQw02XSqukNz11KUS5BWVm635keJpJplhqkOkbo9+tRuF16rwjyW7lQ5FVWpqBYz5PA0vSYxQdTb22SG3Y03y4O9t2OG4rLIGbV7+HV1ig/Hp2F5oEeaPrMuluO2DzTbHw2YsItKiveeuYsfpfOw4nY937uuuaCxMdsjtWJpb6O/WNjIApy+Xir8fyS5CyrsbnRIPcyEickU1terpx8RmLCILPHJzglX7J7eNsHhf8zU7zHaIiOzBmh0XNGfVUVwpqcTTg9ujjZmlBqgpox2UTTwn2M8bZ+aOFH8/llOEOz/Zhkq9oeb/m3oL2kcFAgCWbj+DtNPm59ABAA/W7BARyYrJjgtanZGDs1fK8NCNrZjsyMjUKKjEmGAcf2s4AGB1RjYul1SKiY61zNXsMNchIlciCAL+unpN6TAMMNkht2NNTYlgsr6nzu1dY+2IBvDw0EGna7o2FxGRK3r796P499YsDE2MUjoUEfvskGYVlFVi//kCHM8tNthuS02JtU1J1k4wdmObcIe9NxGRkv69NQsAsO5YnsKRNGCy49JYFWDKlhOXMXrBNsz8JcOm59uTZFj7yZh6L2N9jIiIyDJMdlwQb32W8fasO1KNhz8a64ujZDMSExoiIvmwzw5pQtblUlwpqUCLMH/EhvgDADw96nL5xrMaqzGtMFmzo8aAiYhcCGt2SBM+WX8S9y1Kwy/7L4rbvDyka3aMZTuNOyPbk2NYW0tkKqHp3jLUjkiIyN2VVVbji82ncfZKqfmdNYrJjgvj6B3TvK43Y1U3bsYy9gSVNWPFhvgBAAa2j3R2OESkIfNWZ+LtP44i9f1NSoeiGFUnOzU1NZgxYwYSEhLg7++Pdu3a4c033zQY6SIIAmbOnInY2Fj4+/sjNTUVJ06cUDBqUoLUEPFrlTUAgOpGK5Eb7bPT6HdnrjYu9Va1189zNmORq5r63X489tVu5BSWKx2KW9txfYJTWxYq1gpVJzvvvPMOFi5ciE8++QRHjx7FO++8g3nz5uHjjz8W95k3bx7mz5+PRYsWIT09HQEBARg2bBjKy7V7cTnzJuxq9I/MY//dAwA4kVdi0XP
|
||
|
"text/plain": [
|
||
|
"<Figure size 640x480 with 1 Axes>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"import matplotlib.pyplot as plt\n",
|
||
|
"\n",
|
||
|
"fig, ax = plt.subplots()\n",
|
||
|
"\n",
|
||
|
"ax.set_xlabel(\"Time (s)\")\n",
|
||
|
"ax.set_ylabel(\"Weight (kg)\")\n",
|
||
|
"\n",
|
||
|
"ax.plot(x, y, color=\"tab:blue\")\n",
|
||
|
"\n",
|
||
|
"plt.show()"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"metadata": {
|
||
|
"kernelspec": {
|
||
|
"display_name": "Python 3",
|
||
|
"language": "python",
|
||
|
"name": "python3"
|
||
|
},
|
||
|
"language_info": {
|
||
|
"codemirror_mode": {
|
||
|
"name": "ipython",
|
||
|
"version": 3
|
||
|
},
|
||
|
"file_extension": ".py",
|
||
|
"mimetype": "text/x-python",
|
||
|
"name": "python",
|
||
|
"nbconvert_exporter": "python",
|
||
|
"pygments_lexer": "ipython3",
|
||
|
"version": "3.10.12"
|
||
|
}
|
||
|
},
|
||
|
"nbformat": 4,
|
||
|
"nbformat_minor": 2
|
||
|
}
|