Files
mission-control-v2/frontend/dist/assets/Monitoring-Db1beuDm.js
T
HitonabiandClaude Opus 5.5 2972cdfeca Später · 22 Ausreißer ohne feste Schwellen: Normalwert je Wochenstunde
- kern/ausreisser.py: 168 Fächer je Reihe (CPU, GPU, Speicher, Temperaturen, Netz), erst genau, ab acht Werten
  gleitend; auffällig ab 4 Streuungen und Mindestabstand, erst mit drei Wochen Erfahrung; Ausreißer gekappt gelernt
- services/ausreisser.py: Wächter beider Rollen, gelber Hinweis nach zwei auffälligen Stunden mit Normalwert und
  Wochenstunde im Satz; erster Lauf lernt aus den aufbewahrten acht Tagen
- Monitoring: Zeile mit Lernwoche bzw. was gerade auffällt; GET /api/ausreisser, /api/homelab/ausreisser

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 10:04:30 +02:00

1 line
22 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{a as e,c as t,i as n,r,t as i}from"./dist-aE7UmubC.js";import{A as a,C as o,Et as s,W as c,d as l,u}from"./abfragen-DNMpmgyt.js";import{t as d}from"./useRouterState-DJr4hrdj.js";import{C as f,F as p,I as m,L as h,M as g,N as _,P as v,R as y,S as b,U as x,V as S,m as C,x as w}from"./index-Cdq4iteU.js";import{t as T}from"./breite-k-QN6GPl.js";var E=t(e(),1),D=r(),O=n(),k={ruhig:{wert:`text-foreground`,marke:null},gelb:{wert:`text-bernstein`,marke:`hoch`},rot:{wert:`text-rot-text`,marke:`kritisch`}};function A(e){let t=(0,D.c)(29),{label:n,wert:r,einheit:a,punkte:o,max:s,zustand:c,farbe:l,zeitraumText:u}=e,d=k[c===void 0?`ruhig`:c],f;t[0]===n?f=t[1]:(f=(0,O.jsx)(`span`,{className:`etikett text-[11px] text-text-3`,children:n}),t[0]=n,t[1]=f);let m;t[2]===d.wert?m=t[3]:(m=i(`font-anzeige text-[28px] leading-none font-semibold tabular-nums`,d.wert),t[2]=d.wert,t[3]=m);let h;t[4]!==a||t[5]!==r?(h=p(r,a),t[4]=a,t[5]=r,t[6]=h):h=t[6];let g;t[7]!==m||t[8]!==h?(g=(0,O.jsx)(`span`,{className:m,children:h}),t[7]=m,t[8]=h,t[9]=g):g=t[9];let _;t[10]!==d.marke||t[11]!==d.wert?(_=d.marke&&(0,O.jsx)(`span`,{className:i(`etikett text-[10.5px]`,d.wert),children:d.marke}),t[10]=d.marke,t[11]=d.wert,t[12]=_):_=t[12];let v;t[13]!==g||t[14]!==_?(v=(0,O.jsxs)(`span`,{className:`flex items-baseline gap-2`,children:[g,_]}),t[13]=g,t[14]=_,t[15]=v):v=t[15];let y;t[16]!==l||t[17]!==n||t[18]!==s||t[19]!==o||t[20]!==u?(y=o&&o.length>1&&(0,O.jsx)(w,{punkte:o,max:s,farbe:l,beschriftung:`${n}, ${u}`}),t[16]=l,t[17]=n,t[18]=s,t[19]=o,t[20]=u,t[21]=y):y=t[21];let b;t[22]===o?b=t[23]:(b=o&&o.length<=1&&(0,O.jsx)(`span`,{className:`h-9`,"aria-hidden":!0}),t[22]=o,t[23]=b);let x;return t[24]!==f||t[25]!==v||t[26]!==y||t[27]!==b?(x=(0,O.jsxs)(`div`,{className:`flaeche-innen flex min-w-0 flex-col gap-1.5 rounded-xl px-3.5 pt-3 pb-2`,children:[f,v,y,b]}),t[24]=f,t[25]=v,t[26]=y,t[27]=b,t[28]=x):x=t[28],x}var j={rechts:12,oben:10,unten:24};function M(e){let t=(0,D.c)(72),{reihen:n,einheit:r,langerZeitraum:i,hoehe:a,titel:o}=e,s=a===void 0?180:a,[c,l]=T(),[u,d]=(0,E.useState)(null),h,g,_,y,x,S,C,w;if(t[0]!==l||t[1]!==r||t[2]!==s||t[3]!==u||t[4]!==i||t[5]!==c||t[6]!==n||t[7]!==o){let e=n[0]?.punkte??[],a=e.length,T=v(n.map(re),r),E=r===`prozent`?[0,25,50,75,100]:[0,T/2,T],D=Math.max(40,Math.max(...E.map(e=>p(e,r).length))*7+12),k;t[16]===D?k=t[17]:(k={...j,links:D},t[16]=D,t[17]=k);let A=k,M=l-A.links-j.rechts,N=s-j.oben-j.unten,P=e[0]?.[0]??0,ie=e[a-1]?.[0]??1,F=e=>A.links+(ie>P?(e-P)/(ie-P)*M:0),I;t[18]!==N||t[19]!==T?(I=e=>j.oben+N-Math.min(e,T)/(T||1)*N,t[18]=N,t[19]=T,t[20]=I):I=t[20];let L=I,R=j.oben+N,z=a>1?[0,.25,.5,.75,1].map(t=>e[Math.round(t*(a-1))][0]):[],B;t[21]===n?B=t[22]:(B=n.some(ne),t[21]=n,t[22]=B);let V=B,H;t[23]===a?H=t[24]:(H=function(e){if(a===0)return;let t=e.currentTarget.getBoundingClientRect(),n=Math.min(1,Math.max(0,(e.clientX-t.left)/t.width));d(Math.round(n*(a-1)))},t[23]=a,t[24]=H);let U=H,W;t[25]===a?W=t[26]:(W=function(e){if(a!==0){if(e.key===`ArrowLeft`)d(e=>Math.max(0,(e??a-1)-1));else if(e.key===`ArrowRight`)d(e=>Math.min(a-1,(e??a-1)+1));else return;e.preventDefault()}},t[25]=a,t[26]=W);let G=W,K=u!==null&&e[u]?e[u][0]:null,q=K===null?0:F(K),ae=e.slice(-12);S=`flex flex-col gap-2`,t[27]===n?C=t[28]:(C=n.length>1&&(0,O.jsx)(`ul`,{className:`m-0 flex list-none flex-wrap gap-x-4 gap-y-1 p-0 text-sm text-text-2`,"aria-label":`Legende`,children:n.map(te)}),t[27]=n,t[28]=C);let J;t[29]===a?J=t[30]:(J=()=>d(e=>e??(a?a-1:null)),t[29]=a,t[30]=J);let oe;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(oe=()=>d(null),t[31]=oe):oe=t[31];let Y;t[32]!==A.links||t[33]!==R||t[34]!==V||t[35]!==M||t[36]!==N||t[37]!==n||t[38]!==F||t[39]!==L?(Y=V?n.map(e=>(0,O.jsxs)(`g`,{children:[n.length===1&&(0,O.jsx)(`path`,{d:b(e.punkte,F,L,R),fill:e.farbe,opacity:.1}),(0,O.jsx)(`path`,{d:f(e.punkte,F,L),fill:`none`,stroke:e.farbe,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`})]},e.name)):(0,O.jsx)(`text`,{x:A.links+M/2,y:j.oben+N/2,textAnchor:`middle`,className:`fill-text-3 text-sm`,children:`Noch keine Messwerte in diesem Zeitraum`}),t[32]=A.links,t[33]=R,t[34]=V,t[35]=M,t[36]=N,t[37]=n,t[38]=F,t[39]=L,t[40]=Y):Y=t[40];let X;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(X=()=>d(null),t[41]=X):X=t[41];let Z;t[42]!==A.links||t[43]!==M||t[44]!==N||t[45]!==U?(Z=(0,O.jsx)(`rect`,{x:A.links,y:j.oben,width:M,height:N,fill:`transparent`,onPointerMove:U,onPointerLeave:X}),t[42]=A.links,t[43]=M,t[44]=N,t[45]=U,t[46]=Z):Z=t[46];let se=(0,O.jsxs)(`svg`,{width:l,height:s,role:`img`,"aria-label":o,tabIndex:0,onKeyDown:G,onFocus:J,onBlur:oe,className:`block max-w-full outline-none focus-visible:rounded-md focus-visible:ring-2 focus-visible:ring-cyan/60`,children:[E.map(e=>(0,O.jsxs)(`g`,{children:[(0,O.jsx)(`line`,{x1:A.links,x2:l-j.rechts,y1:L(e),y2:L(e),stroke:`var(--linie)`,strokeWidth:1}),(0,O.jsx)(`text`,{x:A.links-8,y:L(e)+4,textAnchor:`end`,className:`fill-text-3 font-mono text-[11px]`,children:p(e,r)})]},e)),z.map((e,t)=>(0,O.jsx)(`text`,{x:F(e),y:s-6,className:`fill-text-3 font-mono text-[11px]`,textAnchor:t===0?`start`:t===z.length-1?`end`:`middle`,children:m(e,i)},e)),Y,K!==null&&(0,O.jsxs)(`g`,{"aria-hidden":!0,children:[(0,O.jsx)(`line`,{x1:F(K),x2:F(K),y1:j.oben,y2:R,stroke:`var(--text-3)`,strokeWidth:1}),n.map(e=>{let t=e.punkte[u]?.[1];return t==null?null:(0,O.jsx)(`circle`,{cx:F(K),cy:L(t),r:4,fill:e.farbe,stroke:`var(--panel)`,strokeWidth:2},e.name)})]}),Z]}),Q=K!==null&&(0,O.jsxs)(`div`,{role:`status`,className:`pointer-events-none absolute top-1 z-10 flex min-w-36 flex-col gap-1 rounded-xl border border-white/12 bg-white/[0.04] px-3 py-2 shadow-lg`,style:q>l/2?{right:l-q+10}:{left:q+10},children:[(0,O.jsx)(`span`,{className:`ziffern text-xs text-text-3`,children:m(K,!0)}),n.map(e=>(0,O.jsxs)(`span`,{className:`flex items-center gap-2 text-sm`,children:[(0,O.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-3 rounded-full`,style:{background:e.farbe}}),(0,O.jsx)(`span`,{className:`font-semibold text-foreground`,children:p(e.punkte[u]?.[1],r)}),n.length>1&&(0,O.jsx)(`span`,{className:`text-text-3`,children:e.name})]},e.name))]});t[47]!==c||t[48]!==se||t[49]!==Q?(w=(0,O.jsxs)(`div`,{ref:c,className:`relative w-full`,children:[se,Q]}),t[47]=c,t[48]=se,t[49]=Q,t[50]=w):w=t[50],y=`group text-sm`,t[51]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,O.jsx)(`summary`,{className:`inline-flex cursor-pointer items-center text-text-3 hover:text-text-2`,children:`Werte als Tabelle`}),t[51]=x):x=t[51],g=`ziffern mt-2 w-full max-w-md border-collapse text-xs`;let ce;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(ce=(0,O.jsx)(`th`,{className:`py-1 pr-4 font-normal`,children:`Zeit`}),t[52]=ce):ce=t[52];let $;t[53]===n?$=t[54]:($=n.map(ee),t[53]=n,t[54]=$),t[55]===$?_=t[56]:(_=(0,O.jsx)(`thead`,{children:(0,O.jsxs)(`tr`,{className:`text-left text-text-3`,children:[ce,$]})}),t[55]=$,t[56]=_),h=ae.map((e,t)=>{let[o]=e;return(0,O.jsxs)(`tr`,{className:`border-t border-white/[0.06]`,children:[(0,O.jsx)(`td`,{className:`py-1 pr-4 text-text-3`,children:m(o,i)}),n.map(e=>(0,O.jsx)(`td`,{className:`py-1 pr-4 text-text-2`,children:p(e.punkte[a-ae.length+t]?.[1],r)},e.name))]},o)}),t[0]=l,t[1]=r,t[2]=s,t[3]=u,t[4]=i,t[5]=c,t[6]=n,t[7]=o,t[8]=h,t[9]=g,t[10]=_,t[11]=y,t[12]=x,t[13]=S,t[14]=C,t[15]=w}else h=t[8],g=t[9],_=t[10],y=t[11],x=t[12],S=t[13],C=t[14],w=t[15];let k;t[57]===h?k=t[58]:(k=(0,O.jsx)(`tbody`,{children:h}),t[57]=h,t[58]=k);let A;t[59]!==k||t[60]!==g||t[61]!==_?(A=(0,O.jsxs)(`table`,{className:g,children:[_,k]}),t[59]=k,t[60]=g,t[61]=_,t[62]=A):A=t[62];let M;t[63]!==A||t[64]!==y||t[65]!==x?(M=(0,O.jsxs)(`details`,{className:y,children:[x,A]}),t[63]=A,t[64]=y,t[65]=x,t[66]=M):M=t[66];let N;return t[67]!==M||t[68]!==S||t[69]!==C||t[70]!==w?(N=(0,O.jsxs)(`div`,{className:S,children:[C,w,M]}),t[67]=M,t[68]=S,t[69]=C,t[70]=w,t[71]=N):N=t[71],N}function ee(e){return(0,O.jsx)(`th`,{className:`py-1 pr-4 font-normal`,children:e.name},e.name)}function te(e){return(0,O.jsxs)(`li`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(`span`,{"aria-hidden":!0,className:`h-0.5 w-4 rounded-full`,style:{background:e.farbe}}),e.name]},e.name)}function ne(e){return e.punkte.some(N)}function N(e){let[,t]=e;return t!==null}function re(e){return e.punkte}var P=[{id:`1h`,name:`1 Stunde`,text:`letzte Stunde`},{id:`24h`,name:`24 Stunden`,text:`letzte 24 Stunden`},{id:`7d`,name:`7 Tage`,text:`letzte 7 Tage`}];function ie(e){let t=(0,D.c)(6),{wert:n,onWahl:r,farbe:a}=e,o=a===`box`?`border-box-rand bg-box-grund text-box-text`:`border-lab-rand bg-lab-grund text-lab-text`,s;t[0]!==o||t[1]!==r||t[2]!==n?(s=P.map(e=>(0,O.jsx)(`button`,{type:`button`,onClick:()=>r(e.id),"aria-pressed":n===e.id,className:i(`h-9 rounded-full border px-4 text-sm`,n===e.id?o:`border-white/10 text-text-2 hover:border-white/20 hover:text-foreground`),children:e.name},e.id)),t[0]=o,t[1]=r,t[2]=n,t[3]=s):s=t[3];let c;return t[4]===s?c=t[5]:(c=(0,O.jsx)(`div`,{role:`group`,"aria-label":`Zeitraum`,className:`flex flex-wrap gap-2`,children:s}),t[4]=s,t[5]=c),c}function F(e){let t=(0,D.c)(9),{titel:n,rechts:r,children:i}=e,a;t[0]===n?a=t[1]:(a=(0,O.jsx)(`h3`,{className:`etikett text-[11.5px] tracking-[0.16em] text-text-2`,children:n}),t[0]=n,t[1]=a);let o;t[2]!==r||t[3]!==a?(o=(0,O.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[a,r]}),t[2]=r,t[3]=a,t[4]=o):o=t[4];let s;return t[5]!==i||t[6]!==o||t[7]!==n?(s=(0,O.jsxs)(`section`,{"aria-label":n,className:`flex min-w-0 flex-col gap-3 flaeche rounded-2xl p-4 sm:p-5`,children:[o,i]}),t[5]=i,t[6]=o,t[7]=n,t[8]=s):s=t[8],s}var I=e=>P.find(t=>t.id===e)?.text??``;function L(e){let t=(0,D.c)(10),{bereich:n,aktiv:r}=e,a=u(n,r===void 0||r).data;if(!a||a.reihen===0)return null;let o;t[0]!==a.auffaellig||t[1]!==a.lernt||t[2]!==a.min_wochen||t[3]!==a.wochen?(o=a.lernt?`Ungewöhnliches meldet der Orchestrator, sobald er je Wochenstunde ${a.min_wochen} Wochen Erfahrung hat — er lernt gerade (Woche ${a.wochen} von ${a.min_wochen}).`:a.auffaellig.length?`Gerade ungewöhnlich: ${a.auffaellig.map(R).join(`; `)}.`:`Nichts Ungewöhnliches — verglichen mit den üblichen Werten dieser Wochenstunde.`,t[0]=a.auffaellig,t[1]=a.lernt,t[2]=a.min_wochen,t[3]=a.wochen,t[4]=o):o=t[4];let s=o,c=!a.lernt&&a.auffaellig.length?`text-bernstein`:`text-text-3`,l;t[5]===c?l=t[6]:(l=i(`m-0 text-sm`,c),t[5]=c,t[6]=l);let d;return t[7]!==l||t[8]!==s?(d=(0,O.jsx)(`p`,{className:l,children:s}),t[7]=l,t[8]=s,t[9]=d):d=t[9],d}function R(e){return e.titel}function z(){let e=(0,D.c)(98),[t,n]=(0,E.useState)(`1h`),r=l(t),a=s(),o;e[0]===r.data?.reihen?o=e[1]:(o=r.data?.reihen??{},e[0]=r.data?.reihen,e[1]=o);let c=o,u;e[2]===r.data?.aktuell?u=e[3]:(u=r.data?.aktuell??{},e[2]=r.data?.aktuell,e[3]=u);let d=u,f=t===`7d`,p;e[4]!==d||e[5]!==c?(p=(e,t)=>e??d[t]??_(c[t]),e[4]=d,e[5]=c,e[6]=p):p=e[6];let m=p,g;e[7]===t?g=e[8]:(g=(0,O.jsx)(ie,{wert:t,onWahl:n,farbe:`box`}),e[7]=t,e[8]=g);let v;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,O.jsx)(`span`,{className:`text-sm text-text-3`,children:`Zahlen live, Verläufe im Minutentakt`}),e[9]=v):v=e[9];let y;e[10]===g?y=e[11]:(y=(0,O.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[g,v]}),e[10]=g,e[11]=y);let b;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,O.jsx)(L,{bereich:`box`}),e[12]=b):b=e[12];let S=a?.cpu,C;e[13]!==S||e[14]!==m?(C=m(S,`cpu`),e[13]=S,e[14]=m,e[15]=C):C=e[15];let w=a?.cpu,T;e[16]!==w||e[17]!==m?(T=h(m(w,`cpu`),85,95),e[16]=w,e[17]=m,e[18]=T):T=e[18];let k;e[19]===t?k=e[20]:(k=I(t),e[19]=t,e[20]=k);let j;e[21]!==T||e[22]!==k||e[23]!==C?(j=(0,O.jsx)(A,{label:`CPU`,wert:C,einheit:`prozent`,max:100,zustand:T,zeitraumText:k}),e[21]=T,e[22]=k,e[23]=C,e[24]=j):j=e[24];let ee=a?.ram,te;e[25]!==ee||e[26]!==m?(te=m(ee,`ram`),e[25]=ee,e[26]=m,e[27]=te):te=e[27];let ne=a?.ram,N;e[28]!==ne||e[29]!==m?(N=h(m(ne,`ram`),85,95),e[28]=ne,e[29]=m,e[30]=N):N=e[30];let re;e[31]===t?re=e[32]:(re=I(t),e[31]=t,e[32]=re);let P;e[33]!==te||e[34]!==N||e[35]!==re?(P=(0,O.jsx)(A,{label:`Speicher`,wert:te,einheit:`prozent`,max:100,zustand:N,zeitraumText:re}),e[33]=te,e[34]=N,e[35]=re,e[36]=P):P=e[36];let R=a?.gpu,z;e[37]!==R||e[38]!==m?(z=m(R,`gpu`),e[37]=R,e[38]=m,e[39]=z):z=e[39];let B;e[40]===t?B=e[41]:(B=I(t),e[40]=t,e[41]=B);let V;e[42]!==z||e[43]!==B?(V=(0,O.jsx)(A,{label:`GPU`,wert:z,einheit:`prozent`,max:100,zeitraumText:B}),e[42]=z,e[43]=B,e[44]=V):V=e[44];let H=a?.temp_cpu,U;e[45]!==H||e[46]!==m?(U=m(H,`temp_cpu`),e[45]=H,e[46]=m,e[47]=U):U=e[47];let W=a?.temp_cpu,G;e[48]!==W||e[49]!==m?(G=h(m(W,`temp_cpu`),80,90),e[48]=W,e[49]=m,e[50]=G):G=e[50];let K;e[51]===t?K=e[52]:(K=I(t),e[51]=t,e[52]=K);let q;e[53]!==U||e[54]!==G||e[55]!==K?(q=(0,O.jsx)(A,{label:`CPU-Temp.`,wert:U,einheit:`grad`,max:100,zustand:G,zeitraumText:K}),e[53]=U,e[54]=G,e[55]=K,e[56]=q):q=e[56];let ae=a?.temp_gpu,J;e[57]!==ae||e[58]!==m?(J=m(ae,`temp_gpu`),e[57]=ae,e[58]=m,e[59]=J):J=e[59];let oe=a?.temp_gpu,Y;e[60]!==oe||e[61]!==m?(Y=h(m(oe,`temp_gpu`),80,90),e[60]=oe,e[61]=m,e[62]=Y):Y=e[62];let X;e[63]===t?X=e[64]:(X=I(t),e[63]=t,e[64]=X);let Z;e[65]!==J||e[66]!==Y||e[67]!==X?(Z=(0,O.jsx)(A,{label:`GPU-Temp.`,wert:J,einheit:`grad`,max:100,zustand:Y,zeitraumText:X}),e[65]=J,e[66]=Y,e[67]=X,e[68]=Z):Z=e[68];let se=a?.disk,Q;e[69]!==se||e[70]!==m?(Q=m(se,`platte`),e[69]=se,e[70]=m,e[71]=Q):Q=e[71];let ce=a?.disk,$;e[72]!==ce||e[73]!==m?($=h(m(ce,`platte`),80,90),e[72]=ce,e[73]=m,e[74]=$):$=e[74];let le;e[75]===t?le=e[76]:(le=I(t),e[75]=t,e[76]=le);let ue;e[77]!==Q||e[78]!==$||e[79]!==le?(ue=(0,O.jsx)(A,{label:`Platte`,wert:Q,einheit:`prozent`,max:100,zustand:$,zeitraumText:le}),e[77]=Q,e[78]=$,e[79]=le,e[80]=ue):ue=e[80];let de;e[81]!==j||e[82]!==P||e[83]!==V||e[84]!==q||e[85]!==Z||e[86]!==ue?(de=(0,O.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-3 xl:grid-cols-6`,children:[j,P,V,q,Z,ue]}),e[81]=j,e[82]=P,e[83]=V,e[84]=q,e[85]=Z,e[86]=ue,e[87]=de):de=e[87];let fe;e[88]!==f||e[89]!==r.data||e[90]!==r.isError||e[91]!==r.isPlaceholderData||e[92]!==c?(fe=r.isError&&!r.data?(0,O.jsx)(x,{text:`Der Verlauf ist noch nicht da: Die KI-Box sammelt Messwerte, sobald der neue Stand läuft. Die Zahlen oben sind live.`}):(0,O.jsxs)(`div`,{className:i(`grid gap-5 md:gap-6 xl:grid-cols-2`,r.isPlaceholderData&&`opacity-70`),children:[(0,O.jsx)(F,{titel:`CPU`,children:(0,O.jsx)(M,{titel:`CPU-Auslastung in Prozent`,einheit:`prozent`,langerZeitraum:f,reihen:[{name:`CPU`,punkte:c.cpu??[],farbe:`var(--reihe-1)`}]})}),(0,O.jsx)(F,{titel:`Speicher`,children:(0,O.jsx)(M,{titel:`Belegter Speicher in Prozent`,einheit:`prozent`,langerZeitraum:f,reihen:[{name:`Speicher`,punkte:c.ram??[],farbe:`var(--reihe-1)`}]})}),(0,O.jsx)(F,{titel:`GPU`,children:(0,O.jsx)(M,{titel:`GPU-Last in Prozent`,einheit:`prozent`,langerZeitraum:f,reihen:[{name:`GPU`,punkte:c.gpu??[],farbe:`var(--reihe-1)`}]})}),(0,O.jsx)(F,{titel:`Temperatur`,children:(0,O.jsx)(M,{titel:`Temperatur von CPU und GPU in Grad`,einheit:`grad`,langerZeitraum:f,reihen:[{name:`CPU`,punkte:c.temp_cpu??[],farbe:`var(--reihe-1)`},{name:`GPU`,punkte:c.temp_gpu??[],farbe:`var(--reihe-2)`}]})}),(0,O.jsx)(F,{titel:`Netz`,children:(0,O.jsx)(M,{titel:`Netzverkehr in Bytes pro Sekunde`,einheit:`bytes_s`,langerZeitraum:f,reihen:[{name:`empfangen`,punkte:c.netz_rx??[],farbe:`var(--reihe-1)`},{name:`gesendet`,punkte:c.netz_tx??[],farbe:`var(--reihe-2)`}]})}),(0,O.jsx)(F,{titel:`Tokens pro Minute`,children:(0,O.jsx)(M,{titel:`Erzeugte und gelesene Tokens pro Minute`,einheit:`anzahl`,langerZeitraum:f,reihen:[{name:`Tokens`,punkte:c.tokens??[],farbe:`var(--reihe-1)`}]})})]}),e[88]=f,e[89]=r.data,e[90]=r.isError,e[91]=r.isPlaceholderData,e[92]=c,e[93]=fe):fe=e[93];let pe;return e[94]!==de||e[95]!==fe||e[96]!==y?(pe=(0,O.jsxs)(O.Fragment,{children:[y,b,de,fe]}),e[94]=de,e[95]=fe,e[96]=y,e[97]=pe):pe=e[97],pe}function B(e){let t=(0,D.c)(43),{g:n,zeitraum:r}=e,i=n.aktuell,a=n.id,o=n.name,s;t[0]!==n.art||t[1]!==n.name?(s=S({art:n.art,name:n.name}),t[0]=n.art,t[1]=n.name,t[2]=s):s=t[2];let c;t[3]===s?c=t[4]:(c=(0,O.jsx)(y,{bild:s,groesse:`sm`}),t[3]=s,t[4]=c);let l;t[5]===n.name?l=t[6]:(l=(0,O.jsx)(`h3`,{className:`text-[15px] font-semibold`,children:n.name}),t[5]=n.name,t[6]=l);let u;t[7]!==c||t[8]!==l?(u=(0,O.jsxs)(`span`,{className:`flex min-w-0 items-center gap-3`,children:[c,l]}),t[7]=c,t[8]=l,t[9]=u):u=t[9];let d;t[10]===i.cpu?d=t[11]:(d=i.cpu==null?`–`:`${Math.round(i.cpu)} %`,t[10]=i.cpu,t[11]=d);let f;t[12]===i.ram?f=t[13]:(f=i.ram==null?`–`:`${Math.round(i.ram)} %`,t[12]=i.ram,t[13]=f);let p;t[14]===i.uptime_s?p=t[15]:(p=g(i.uptime_s),t[14]=i.uptime_s,t[15]=p);let m;t[16]!==d||t[17]!==f||t[18]!==p?(m=(0,O.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[`CPU `,d,` · RAM `,f,` · läuft `,p]}),t[16]=d,t[17]=f,t[18]=p,t[19]=m):m=t[19];let h;t[20]!==m||t[21]!==u?(h=(0,O.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[u,m]}),t[20]=m,t[21]=u,t[22]=h):h=t[22];let _=`${n.name}: CPU und Speicher in Prozent`,v=r===`7d`,b;t[23]===n.reihen.cpu?b=t[24]:(b=n.reihen.cpu??[],t[23]=n.reihen.cpu,t[24]=b);let x;t[25]===b?x=t[26]:(x={name:`CPU`,punkte:b,farbe:`var(--reihe-1)`},t[25]=b,t[26]=x);let C;t[27]===n.reihen.ram?C=t[28]:(C=n.reihen.ram??[],t[27]=n.reihen.ram,t[28]=C);let w;t[29]===C?w=t[30]:(w={name:`Speicher`,punkte:C,farbe:`var(--reihe-2)`},t[29]=C,t[30]=w);let T;t[31]!==x||t[32]!==w?(T=[x,w],t[31]=x,t[32]=w,t[33]=T):T=t[33];let E;t[34]!==_||t[35]!==v||t[36]!==T?(E=(0,O.jsx)(M,{titel:_,einheit:`prozent`,langerZeitraum:v,hoehe:140,reihen:T}),t[34]=_,t[35]=v,t[36]=T,t[37]=E):E=t[37];let k;return t[38]!==n.id||t[39]!==n.name||t[40]!==h||t[41]!==E?(k=(0,O.jsxs)(`section`,{id:a,"aria-label":o,className:`flex min-w-0 scroll-mt-6 flex-col gap-3 flaeche rounded-2xl p-4 sm:p-5`,children:[h,E]}),t[38]=n.id,t[39]=n.name,t[40]=h,t[41]=E,t[42]=k):k=t[42],k}function V(){let e=(0,D.c)(36),[t,n]=(0,E.useState)(`1h`),r=a(),s=c(),l=r.data?.rolle===`homelab`||!!(s.data?.eingerichtet&&s.data.erreichbar),u=o(t,l),f;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(f={select:G},e[0]=f):f=e[0];let p=d(f),m,_;if(e[1]!==p||e[2]!==u.data?(m=()=>{p&&u.data&&document.getElementById(p)?.scrollIntoView({block:`start`})},_=[p,u.data],e[1]=p,e[2]=u.data,e[3]=m,e[4]=_):(m=e[3],_=e[4]),(0,E.useEffect)(m,_),!l){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(x,{fehler:!0,text:`Der Homelab-Teil antwortet gerade nicht.`}),e[5]=t):t=e[5],t}if(u.isPending){let t;return e[6]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(x,{text:`Die Messwerte kommen gleich …`}),e[6]=t):t=e[6],t}if(!u.data){let t;return e[7]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(x,{text:`Noch keine Messwerte: Der Ausführer schickt sie jede Minute, sobald sein neuer Stand eingespielt ist.`}),e[7]=t):t=e[7],t}let v,y,b,S,w;if(e[8]!==l||e[9]!==u.data.geraete||e[10]!==u.isPlaceholderData||e[11]!==t){let r=u.data.geraete.find(W),a=u.data.geraete.filter(U),o=t===`7d`,s=r?.aktuell??{},c;e[17]===t?c=e[18]:(c=(0,O.jsx)(ie,{wert:t,onWahl:n,farbe:`homelab`}),e[17]=t,e[18]=c);let d;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,O.jsx)(`span`,{className:`text-sm text-text-3`,children:`Werte im Minutentakt vom Proxmox-Host`}),e[19]=d):d=e[19],e[20]===c?b=e[21]:(b=(0,O.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[c,d]}),e[20]=c,e[21]=b),e[22]===l?S=e[23]:(S=(0,O.jsx)(L,{bereich:`homelab`,aktiv:l}),e[22]=l,e[23]=S),w=r&&(0,O.jsxs)(C,{titel:`Proxmox-Host`,rechts:(0,O.jsxs)(`span`,{className:`ziffern text-sm text-text-3`,children:[`läuft `,g(s.uptime_s),s.load1==null?``:` · Last ${s.load1.toFixed(2).replace(`.`,`,`)}`]}),children:[(0,O.jsxs)(`div`,{className:`grid grid-cols-2 gap-2.5 sm:grid-cols-4`,children:[(0,O.jsx)(A,{label:`CPU`,wert:s.cpu,einheit:`prozent`,max:100,punkte:r.reihen.cpu,zustand:h(s.cpu??null,85,95),zeitraumText:I(t)}),(0,O.jsx)(A,{label:`Speicher`,wert:s.ram,einheit:`prozent`,max:100,punkte:r.reihen.ram,zustand:h(s.ram??null,90,95),zeitraumText:I(t)}),(0,O.jsx)(A,{label:`Temperatur`,wert:s.temp_cpu,einheit:`grad`,max:100,punkte:r.reihen.temp_cpu,zustand:h(s.temp_cpu??null,80,90),zeitraumText:I(t)}),(0,O.jsx)(A,{label:`Systemplatte`,wert:s.platte,einheit:`prozent`,max:100,punkte:r.reihen.platte,zustand:h(s.platte??null,80,90),zeitraumText:I(t)})]}),(0,O.jsxs)(`div`,{className:i(`grid gap-5 xl:grid-cols-2`,u.isPlaceholderData&&`opacity-70`),children:[(0,O.jsx)(F,{titel:`CPU und Speicher`,children:(0,O.jsx)(M,{titel:`Proxmox-Host: CPU und Speicher in Prozent`,einheit:`prozent`,langerZeitraum:o,reihen:[{name:`CPU`,punkte:r.reihen.cpu??[],farbe:`var(--reihe-1)`},{name:`Speicher`,punkte:r.reihen.ram??[],farbe:`var(--reihe-2)`}]})}),(0,O.jsx)(F,{titel:`Netz`,children:(0,O.jsx)(M,{titel:`Proxmox-Host: Netzverkehr in Bytes pro Sekunde`,einheit:`bytes_s`,langerZeitraum:o,reihen:[{name:`empfangen`,punkte:r.reihen.netz_rx??[],farbe:`var(--reihe-1)`},{name:`gesendet`,punkte:r.reihen.netz_tx??[],farbe:`var(--reihe-2)`}]})}),(r.reihen.temp_cpu?.some(H)??!1)&&(0,O.jsx)(F,{titel:`Temperatur`,children:(0,O.jsx)(M,{titel:`Proxmox-Host: CPU-Temperatur in Grad`,einheit:`grad`,langerZeitraum:o,reihen:[{name:`CPU`,punkte:r.reihen.temp_cpu??[],farbe:`var(--reihe-1)`}]})})]})]});let f=u.isPlaceholderData&&`opacity-70`;e[24]===f?v=e[25]:(v=i(`grid gap-5 md:gap-6 xl:grid-cols-2`,f),e[24]=f,e[25]=v);let p;e[26]===t?p=e[27]:(p=e=>(0,O.jsx)(B,{g:e,zeitraum:t},e.id),e[26]=t,e[27]=p),y=a.map(p),e[8]=l,e[9]=u.data.geraete,e[10]=u.isPlaceholderData,e[11]=t,e[12]=v,e[13]=y,e[14]=b,e[15]=S,e[16]=w}else v=e[12],y=e[13],b=e[14],S=e[15],w=e[16];let T;e[28]!==v||e[29]!==y?(T=(0,O.jsx)(`div`,{className:v,children:y}),e[28]=v,e[29]=y,e[30]=T):T=e[30];let k;return e[31]!==b||e[32]!==S||e[33]!==w||e[34]!==T?(k=(0,O.jsxs)(O.Fragment,{children:[b,S,w,T]}),e[31]=b,e[32]=S,e[33]=w,e[34]=T,e[35]=k):k=e[35],k}function H(e){let[,t]=e;return t!==null}function U(e){return e.art!==`proxmox-host`}function W(e){return e.art===`proxmox-host`}function G(e){return e.location.hash}export{L as AusreisserZeile,z as BoxMonitoringSeite,V as HomelabMonitoringSeite};