Files
mission-control-v2/frontend/dist/assets/Start-X1vycEEP.js
T
HitonabiandClaude Opus 5.5 904598031a Später · 18 Plattengesundheit: Proxmox-Host, NAS über SNMP, NVMe der KI-Box
- kern/platten.py: SMART aus pvesh, smartctl und SNMP in einer Form; rot bei SMART FAILED, kritischer Warnung,
  aufgebrauchter Reserve, ≥ 90 % verbraucht; gelb bei ≥ 80 %, Hitze, gewachsenen Fehlerzählern (Ausgangslage je
  Platte, „Zur Kenntnis genommen“ setzt sie neu)
- Ausführer: stündlich disks/list + disks/smart im Bericht (nur lesend)
- services/homelab/nas_snmp.py: kleiner SNMPv2c-GetBulk-Leser ohne neue Abhängigkeit, QNAP hdTable/diskTable,
  Zugang 0600, Einstellungen „Verbindung testen und speichern“
- services/platten.py: NVMe der KI-Box über sudo smartctl (smartmontools am 26.09. nachinstalliert)
- Wächter beider Rollen, Plattenfeld in beiden Cockpits, Doku

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

1 line
13 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{i as e,r as t,t as n}from"./dist-aE7UmubC.js";import{G as r,Mt as i,Pt as a,Tt as o,at as s,bt as c,d as l,jt as u,vt as d,xt as f,yt as p,zt as m}from"./abfragen-CDCgpAto.js";import{t as h}from"./button-BHVKhtQ6.js";import{D as g,H as _,O as v,U as y,m as b,yt as x,z as S}from"./index-CuG_RlEw.js";import{i as C,n as w,r as T,t as E}from"./Plattenliste-g8leg5Tm.js";var D=t(),O=e(),k={erledigt:{text:`Erledigt`,farbe:`text-gruen-text`,punkt:`bg-gruen`},fehler:{text:`Fehler`,farbe:`text-rot-text`,punkt:`bg-rot`},geplant:{text:`Geplant`,farbe:`text-text-3`,punkt:`bg-white/25`}};function A(e){let t=(0,D.c)(23),{e:r}=e,i=k[r.status]??k.geplant,a=r.status===`geplant`&&/update/i.test(r.titel)?`text-cyan-text`:i.farbe,o;t[0]===r.zeit?o=t[1]:(o=d(r.zeit),t[0]=r.zeit,t[1]=o);let s;t[2]===o?s=t[3]:(s=(0,O.jsx)(`span`,{className:`ziffern col-start-1 row-start-1 text-sm text-text-3`,children:o}),t[2]=o,t[3]=s);let c;t[4]===r.text?c=t[5]:(c=r.text&&(0,O.jsxs)(`span`,{className:`text-text-3`,children:[`, `,r.text]}),t[4]=r.text,t[5]=c);let l;t[6]!==r.titel||t[7]!==c?(l=(0,O.jsxs)(`span`,{className:`col-span-2 row-start-2 min-w-0 text-base break-words @sm:col-span-1 @sm:col-start-2 @sm:row-start-1`,children:[r.titel,c]}),t[6]=r.titel,t[7]=c,t[8]=l):l=t[8];let u;t[9]===a?u=t[10]:(u=n(`etikett col-start-2 row-start-1 flex items-center gap-1.5 justify-self-end text-[10.5px] tracking-[0.12em] @sm:col-start-3`,a),t[9]=a,t[10]=u);let f;t[11]===i.punkt?f=t[12]:(f=n(`size-1.5 rounded-full`,i.punkt),t[11]=i.punkt,t[12]=f);let p;t[13]===f?p=t[14]:(p=(0,O.jsx)(`span`,{"aria-hidden":!0,className:f}),t[13]=f,t[14]=p);let m;t[15]!==i.text||t[16]!==u||t[17]!==p?(m=(0,O.jsxs)(`span`,{className:u,children:[p,i.text]}),t[15]=i.text,t[16]=u,t[17]=p,t[18]=m):m=t[18];let h;return t[19]!==s||t[20]!==l||t[21]!==m?(h=(0,O.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 border-t border-white/[0.06] py-2.5 first:border-t-0 @sm:grid-cols-[112px_minmax(0,1fr)_auto]`,children:[s,l,m]}),t[19]=s,t[20]=l,t[21]=m,t[22]=h):h=t[22],h}function j(e){let t=(0,D.c)(6),{gelaufen:n,geplant:r}=e,i;t[0]!==n||t[1]!==r?(i=[...n,...r.slice(0,5)],t[0]=n,t[1]=r,t[2]=i):i=t[2];let a=i;if(a.length===0){let e;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,O.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Heute ist noch nichts gelaufen, und nichts ist geplant.`}),t[3]=e):e=t[3],e}let o;return t[4]===a?o=t[5]:(o=(0,O.jsx)(`ol`,{className:`@container m-0 flex list-none flex-col p-0`,children:a.map(M)}),t[4]=a,t[5]=o),o}function M(e){return(0,O.jsx)(A,{e},`${e.titel}-${e.zeit}`)}function N(e){let t=(0,D.c)(28),{anteil:n,farbe:r,zonen:a,mitte:o,unter:s,beschriftung:c,ariaText:l,hinweis:u}=e,d=r===void 0?`var(--box)`:r,f;t[0]===a?f=t[1]:(f=a===void 0?[]:a,t[0]=a,t[1]=f);let p=f,m=n!=null&&n>.004,h;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,O.jsx)(`path`,{d:i(0,1,75),fill:`none`,stroke:`rgb(255 255 255 / 0.07)`,strokeWidth:12,strokeLinecap:`round`}),t[2]=h):h=t[2];let g;t[3]===p?g=t[4]:(g=p.map(P),t[3]=p,t[4]=g);let _;t[5]!==n||t[6]!==d||t[7]!==m?(_=m&&(0,O.jsx)(`path`,{d:i(0,n,75),fill:`none`,stroke:d,strokeWidth:12,strokeLinecap:`round`,style:{filter:`drop-shadow(0 0 7px color-mix(in srgb, ${d} 60%, transparent))`}}),t[5]=n,t[6]=d,t[7]=m,t[8]=_):_=t[8];let v;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(v={fontFamily:`var(--font-anzeige)`,fontSize:40,fontWeight:600,fill:`var(--foreground)`},t[9]=v):v=t[9];let y;t[10]===o?y=t[11]:(y=(0,O.jsx)(`text`,{x:`100`,y:`102`,textAnchor:`middle`,style:v,children:o}),t[10]=o,t[11]=y);let b;t[12]===s?b=t[13]:(b=s&&(0,O.jsx)(`text`,{x:`100`,y:`124`,textAnchor:`middle`,style:{fontFamily:`var(--font-sans)`,fontSize:13,fontWeight:500,fill:`var(--text-3)`},children:s}),t[12]=s,t[13]=b);let x;t[14]!==l||t[15]!==g||t[16]!==_||t[17]!==y||t[18]!==b?(x=(0,O.jsxs)(`svg`,{viewBox:`0 0 200 150`,className:`h-auto w-full max-w-[200px]`,role:`img`,"aria-label":l,children:[h,g,_,y,b]}),t[14]=l,t[15]=g,t[16]=_,t[17]=y,t[18]=b,t[19]=x):x=t[19];let S;t[20]===c?S=t[21]:(S=(0,O.jsx)(`figcaption`,{className:`etikett text-[11.5px] tracking-[0.14em] text-text-3`,children:c}),t[20]=c,t[21]=S);let C;t[22]===u?C=t[23]:(C=u&&(0,O.jsx)(`span`,{className:`text-center text-xs ${u.className}`,children:u.text}),t[22]=u,t[23]=C);let w;return t[24]!==x||t[25]!==S||t[26]!==C?(w=(0,O.jsxs)(`figure`,{className:`m-0 flex min-w-0 flex-col items-center gap-1`,children:[x,S,C]}),t[24]=x,t[25]=S,t[26]=C,t[27]=w):w=t[27],w}function P(e){return(0,O.jsx)(`path`,{d:i(e.von,e.bis,86),fill:`none`,stroke:e.farbe,strokeWidth:4,strokeLinecap:`round`},`${e.von}-${e.bis}`)}function F(e){let t=(0,D.c)(12),{zustand:n,lampen:r,onAnsehen:i}=e,o;t[0]===n?o=t[1]:(o=a(n),t[0]=n,t[1]=o);let s=o,c=s.art,l=s.oben,u=s.mitte,d=s.unten,f=s.art===`gelb`||s.art===`rot`,p;t[2]===r?p=t[3]:(p=r.map(I),t[2]=r,t[3]=p);let m;return t[4]!==s.art||t[5]!==s.mitte||t[6]!==s.oben||t[7]!==s.unten||t[8]!==i||t[9]!==f||t[10]!==p?(m=(0,O.jsx)(T,{art:c,oben:l,mitte:u,unten:d,aktiv:f,onAnsehen:i,label:`Warnpanel`,children:p}),t[4]=s.art,t[5]=s.mitte,t[6]=s.oben,t[7]=s.unten,t[8]=i,t[9]=f,t[10]=p,t[11]=m):m=t[11],m}function I(e){return(0,O.jsx)(w,{bild:S(e.id),name:e.label,wert:e.wert,zustand:e.zustand},e.id)}function L(e){let t=(0,D.c)(2),{z:n}=e,r;return t[0]===n?r=t[1]:(r=(0,O.jsx)(`span`,{className:`ziffern inline-flex h-[1.75em] w-[1.1875em] shrink-0 items-center justify-center rounded-lg border border-white/10 bg-gradient-to-b from-white/[0.07] to-white/[0.02] font-medium shadow-[inset_0_1px_0_rgb(255_255_255/0.06)]`,children:n}),t[0]=n,t[1]=r),r}function R(e){let t=(0,D.c)(25),{sekunden:n}=e,r;t[0]===n?r=t[1]:(r=f(n),t[0]=n,t[1]=r);let i=r,a=String(Math.min(i?.[0]??0,99)),o;t[2]===a?o=t[3]:(o=a.padStart(2,`0`),t[2]=a,t[3]=o);let s=o,c=String(i?.[1]??0),l;t[4]===c?l=t[5]:(l=c.padStart(2,`0`),t[4]=c,t[5]=l);let u=l,d=i?`Laufzeit ohne Neustart: ${i[0]} Tage, ${i[1]} Stunden`:`Laufzeit unbekannt`,p=i?s[0]:`–`,m;t[6]===p?m=t[7]:(m=(0,O.jsx)(L,{z:p}),t[6]=p,t[7]=m);let h=i?s[1]:`–`,g;t[8]===h?g=t[9]:(g=(0,O.jsx)(L,{z:h}),t[8]=h,t[9]=g);let _;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,O.jsx)(`span`,{className:`etikett mr-[0.444em] ml-[0.111em] text-[0.5625em] text-text-3`,children:`T`}),t[10]=_):_=t[10];let v=i?u[0]:`–`,y;t[11]===v?y=t[12]:(y=(0,O.jsx)(L,{z:v}),t[11]=v,t[12]=y);let b=i?u[1]:`–`,x;t[13]===b?x=t[14]:(x=(0,O.jsx)(L,{z:b}),t[13]=b,t[14]=x);let S;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,O.jsx)(`span`,{className:`etikett ml-[0.111em] text-[0.5625em] text-text-3`,children:`H`}),t[15]=S):S=t[15];let C;t[16]!==y||t[17]!==x||t[18]!==m||t[19]!==g||t[20]!==d?(C=(0,O.jsxs)(`div`,{"aria-label":d,role:`img`,className:`flex h-[min(75cqw,150px)] items-center gap-[0.1875em] pb-[min(10cqw,20px)] text-[length:clamp(14px,14.5cqw,32px)]`,children:[m,g,_,y,x,S]}),t[16]=y,t[17]=x,t[18]=m,t[19]=g,t[20]=d,t[21]=C):C=t[21];let w;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,O.jsx)(`figcaption`,{className:`etikett text-[11.5px] tracking-[0.14em] text-text-3`,children:`Ohne Neustart`}),t[22]=w):w=t[22];let T;return t[23]===C?T=t[24]:(T=(0,O.jsxs)(`figure`,{className:`@container m-0 flex min-w-0 flex-col items-center justify-end gap-1`,children:[C,w]}),t[23]=C,t[24]=T),T}function z(e){let t=(0,D.c)(53),{box:n}=e,r=o(),i=r?.ram_used??n.ram_used,a=r?.ram_total??n.ram_total,s=r?.temp_cpu??n.temp_cpu,l=r?.temp_gpu??n.temp_gpu,u=n.platte,d=u?.vorhersage,f;t[0]===d?f=t[1]:(f=v(d),t[0]=d,t[1]=f);let h=f,_=r?.uptime_s??n.uptime_s,y=i!=null&&a?i/a:null,b;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(b={"--i":1},t[2]=b):b=t[2];let x;t[3]===i?x=t[4]:(x=i==null?`–`:String(Math.round(p(i)??0)),t[3]=i,t[4]=x);let S;t[5]===a?S=t[6]:(S=a?`von ${Math.round(p(a)??0)} GB`:void 0,t[5]=a,t[6]=S);let C;t[7]!==y||t[8]!==i||t[9]!==a?(C=y==null?`Speicher unbekannt`:`Speicher: ${c(i)} von ${c(a)} belegt`,t[7]=y,t[8]=i,t[9]=a,t[10]=C):C=t[10];let w;t[11]!==y||t[12]!==x||t[13]!==S||t[14]!==C?(w=(0,O.jsx)(N,{beschriftung:`Speicher`,anteil:y,mitte:x,unter:S,ariaText:C}),t[11]=y,t[12]=x,t[13]=S,t[14]=C,t[15]=w):w=t[15];let T=s==null?null:s/100,E;t[16]===s?E=t[17]:(E=m(s),t[16]=s,t[17]=E);let k;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(k=[{von:.7,bis:.85,farbe:`var(--bernstein)`},{von:.85,bis:1,farbe:`var(--rot)`}],t[18]=k):k=t[18];let A;t[19]===s?A=t[20]:(A=s==null?`–`:`${Math.round(s)}°`,t[19]=s,t[20]=A);let j;t[21]===l?j=t[22]:(j=l==null?void 0:`GPU ${Math.round(l)}°`,t[21]=l,t[22]=j);let M;t[23]===s?M=t[24]:(M=s==null?`Temperatur unbekannt`:`Temperatur ${Math.round(s)} Grad`,t[23]=s,t[24]=M);let P;t[25]!==A||t[26]!==j||t[27]!==M||t[28]!==T||t[29]!==E?(P=(0,O.jsx)(N,{beschriftung:`Temperatur`,anteil:T,farbe:E,zonen:k,mitte:A,unter:j,ariaText:M}),t[25]=A,t[26]=j,t[27]=M,t[28]=T,t[29]=E,t[30]=P):P=t[30];let F=u?u.percent/100:null,I=u&&u.percent>=90?`var(--rot)`:u&&u.percent>=80?`var(--bernstein)`:`var(--box)`,L;t[31]===u?L=t[32]:(L=u?`${Math.round(u.percent)}%`:`–`,t[31]=u,t[32]=L);let z;t[33]===u?z=t[34]:(z=u?`${c(u.used)} / ${c(u.total)}`:void 0,t[33]=u,t[34]=z);let B;t[35]===u?B=t[36]:(B=u?`Platte zu ${Math.round(u.percent)} Prozent belegt`:`Platte unbekannt`,t[35]=u,t[36]=B);let V;t[37]===h?V=t[38]:(V=h?{text:h.text,className:g[h.stufe]}:null,t[37]=h,t[38]=V);let H;t[39]!==F||t[40]!==I||t[41]!==L||t[42]!==z||t[43]!==B||t[44]!==V?(H=(0,O.jsx)(N,{beschriftung:`Platte`,anteil:F,farbe:I,mitte:L,unter:z,ariaText:B,hinweis:V}),t[39]=F,t[40]=I,t[41]=L,t[42]=z,t[43]=B,t[44]=V,t[45]=H):H=t[45];let U;t[46]===_?U=t[47]:(U=(0,O.jsx)(R,{sekunden:_}),t[46]=_,t[47]=U);let W;return t[48]!==P||t[49]!==H||t[50]!==U||t[51]!==w?(W=(0,O.jsxs)(`section`,{"aria-label":`Instrumente`,className:`auftauchen flaeche grid grid-cols-2 gap-x-4 gap-y-6 rounded-3xl px-4 py-5 lg:grid-cols-4 lg:px-6`,style:b,children:[w,P,H,U]}),t[48]=P,t[49]=H,t[50]=U,t[51]=w,t[52]=W):W=t[52],W}var B={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`};function V(e){let t=(0,D.c)(14),{radar:n}=e;if(!n?.kandidaten)return null;let r,i;t[0]===n.kandidaten?(r=t[1],i=t[2]):(r=n.kandidaten.filter(U),i=r.find(H)??r[0],t[0]=n.kandidaten,t[1]=r,t[2]=i);let a=i,o=r.length===1?``:`en`,s;t[3]!==r.length||t[4]!==o?(s=(0,O.jsxs)(`span`,{className:`etikett text-[11px] tracking-[0.14em] text-cyan-text`,children:[`Radar · `,r.length,` Kandidat`,o]}),t[3]=r.length,t[4]=o,t[5]=s):s=t[5];let c;t[6]===a?c=t[7]:(c=a?(0,O.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2 text-[15px]`,children:[(0,O.jsx)(`span`,{className:`ziffern`,children:a.name}),(0,O.jsxs)(`span`,{className:`text-text-2`,children:[`fürs `,a.rolle===`hirn`?`Hirn`:`Coden`]}),(0,O.jsx)(_,{art:B[a.status]??`grau`,children:u[a.status]??a.status})]}):(0,O.jsx)(`span`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}),t[6]=a,t[7]=c);let l;t[8]!==s||t[9]!==c?(l=(0,O.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[s,c]}),t[8]=s,t[9]=c,t[10]=l):l=t[10];let d;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,O.jsx)(h,{variant:`info`,size:`sm`,asChild:!0,children:(0,O.jsx)(x,{to:`/box/modelle`,hash:`radar`,children:`Ansehen`})}),t[11]=d):d=t[11];let f;return t[12]===l?f=t[13]:(f=(0,O.jsxs)(`div`,{className:`mt-auto flex flex-wrap items-center justify-between gap-3 rounded-2xl bg-cyan/[0.06] px-4 py-3.5 ring-1 ring-cyan/30 ring-inset`,children:[l,d]}),t[12]=l,t[13]=f),f}function H(e){return e.status===`bestanden`}function U(e){return[`bestanden`,`wartet`,`neu`].includes(e.status)}function W(){let e=(0,D.c)(35),{data:t,error:n,isPending:i}=s(),a=r(),o=l();if(i){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,O.jsx)(y,{text:`Die Box meldet sich gleich …`}),e[0]=t):t=e[0],t}if(!t){let t=`MC2 antwortet nicht: ${n?.message??`keine Daten`}`,r;return e[1]===t?r=e[2]:(r=(0,O.jsx)(y,{fehler:!0,text:t}),e[1]=t,e[2]=r),r}let c=t.hinweise.length,u;e[3]!==t.lampen||e[4]!==t.zustand?(u=(0,O.jsx)(F,{zustand:t.zustand,lampen:t.lampen,onAnsehen:G}),e[3]=t.lampen,e[4]=t.zustand,e[5]=u):u=e[5];let d;e[6]===t.box?d=e[7]:(d=(0,O.jsx)(z,{box:t.box}),e[6]=t.box,e[7]=d);let f=c?`bernstein`:`gruen`,p=c?`${c} offen`:`alles erledigt`,m;e[8]!==f||e[9]!==p?(m=(0,O.jsx)(_,{art:f,children:p}),e[8]=f,e[9]=p,e[10]=m):m=e[10];let h;e[11]!==t.hinweise||e[12]!==t.verlauf?(h=(0,O.jsx)(C,{hinweise:t.hinweise,verlauf:t.verlauf}),e[11]=t.hinweise,e[12]=t.verlauf,e[13]=h):h=e[13];let g;e[14]!==m||e[15]!==h?(g=(0,O.jsx)(b,{titel:`Checkliste`,id:`checkliste`,rechts:m,children:h}),e[14]=m,e[15]=h,e[16]=g):g=e[16];let v;e[17]!==t.flugplan.gelaufen||e[18]!==t.flugplan.geplant?(v=(0,O.jsx)(j,{gelaufen:t.flugplan.gelaufen,geplant:t.flugplan.geplant}),e[17]=t.flugplan.gelaufen,e[18]=t.flugplan.geplant,e[19]=v):v=e[19];let x;e[20]===a.data?x=e[21]:(x=(0,O.jsx)(V,{radar:a.data}),e[20]=a.data,e[21]=x);let S;e[22]!==v||e[23]!==x?(S=(0,O.jsxs)(b,{titel:`Flugplan`,children:[v,x]}),e[22]=v,e[23]=x,e[24]=S):S=e[24];let w;e[25]!==g||e[26]!==S?(w=(0,O.jsxs)(`div`,{className:`grid gap-5 lg:grid-cols-[minmax(0,1.35fr)_minmax(0,1fr)] md:gap-6`,children:[g,S]}),e[25]=g,e[26]=S,e[27]=w):w=e[27];let T;e[28]===o.data?T=e[29]:(T=o.data&&o.data.platten.length>0&&(0,O.jsx)(b,{titel:`Plattengesundheit`,id:`platten`,children:(0,O.jsx)(E,{platten:o.data.platten})}),e[28]=o.data,e[29]=T);let k;return e[30]!==u||e[31]!==d||e[32]!==w||e[33]!==T?(k=(0,O.jsxs)(O.Fragment,{children:[u,d,w,T]}),e[30]=u,e[31]=d,e[32]=w,e[33]=T,e[34]=k):k=e[34],k}function G(){return document.getElementById(`checkliste`)?.scrollIntoView({behavior:`smooth`,block:`start`})}export{W as StartSeite};