Железный Егорин — форк Орбиты: тёплый стиль (amber), логин с odyssey WebGL-молнией справа, энергомониторинг+панель

Ребренд Мониторинг Орбита -> Железный Егорин; accent green->amber #F59E0B; LoginScreen правая половина = Lightning (WebGL, hue 35 тёплый) под стеклянной формой; левая панель — тёплый градиент.
Доступ агентам: репо публичный, push german-токеном.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
German
2026-07-07 23:57:16 +03:00
co-authored by Claude Opus 4.8
commit b1c52ab748
114 changed files with 14340 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
#!/usr/bin/env python3
# Мини raw-MQTT subscriber: коннект к брокеру, SUBSCRIBE guard/#, ждём 1 PUBLISH.
import socket, struct, sys, time
HOST, PORT = "10.50.0.48", 1883
TOPIC = "guard/#"
def rl(n):
o=bytearray()
while True:
b=n%128; n//=128
if n>0: b|=0x80
o.append(b)
if n==0: break
return bytes(o)
def s(x):
b=x.encode(); return struct.pack("!H",len(b))+b
sock=socket.create_connection((HOST,PORT),timeout=8)
# CONNECT
body=s("MQTT")+bytes([0x04,0x02])+struct.pack("!H",60)+s("pcn-subtest")
sock.sendall(bytes([0x10])+rl(len(body))+body)
ca=sock.recv(4)
assert ca[0]==0x20 and ca[3]==0x00, ("CONNACK",ca)
# SUBSCRIBE (packet id 1, qos0)
sb=struct.pack("!H",1)+s(TOPIC)+bytes([0x00])
sock.sendall(bytes([0x82])+rl(len(sb))+sb)
# SUBACK
sock.recv(5)
print("SUBSCRIBED", flush=True)
# ждём PUBLISH до 12с
sock.settimeout(12)
buf=b""
try:
data=sock.recv(4096)
print("GOT_FROM_BROKER:", repr(data[:300]))
except socket.timeout:
print("TIMEOUT_NO_MESSAGE")
sock.close()