docs: update changelog and header for version v1.4.1
- Die MQTT-Puffergröße auf 16.384 Byte (16 KB) erhöht. Dies sollte ausreichen, um Ihre 15.403 Byte große JSON-Nutzlast mit etwas mehr Spielraum zu verarbeiten. Diese Änderung ermöglicht es dem MQTT-Client, größere JSON-Nachrichten ohne Kürzung zu empfangen und zu verarbeiten. Einige wichtige Hinweise zu dieser Änderung: Die neue Puffergröße von 16 KB verbraucht mehr RAM, der ESP32 sollte jedoch ausreichend Speicher dafür haben. Die Größe ist auf 16 KB festgelegt, um über die benötigten 15.403 Byte hinaus zusätzlichen Puffer-Overhead bereitzustellen. Diese Änderung betrifft nur den MQTT-Empfangspuffer -- - Die Task-Stack-Größe von 8192 auf 16384 Wörter erhöht, um mehr Speicher für die JSON-Verarbeitung bereitzustellen --- - Erhöhung des Keepalive-Intervalls auf 60 Sekunden - Verbesserte Fehlerbehandlung und Debugging-Ausgaben - Detaillierte Statusmeldungen für die MQTT-Verbindung - Periodische Verbindungsüberprüfung alle 30 Sekunden - Bessere Handhabung von Verbindungsverlusten --- - Verwendung einer eindeutigen Client-ID mit Zufallssuffix - Erhöhung der QoS (Quality of Service) auf 1 für zuverlässigere Übertragung - Einstellung eines Socket-Timeouts von 60 Sekunden - Aktivierung von Clean Session und Will Message - Verbessertes Verbindungs-Logging
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"GFU99": "TPU",
|
||||
"GFN99": "PA",
|
||||
"GFN98": "PA-CF",
|
||||
"GFL99": "PLA",
|
||||
"GFL96": "PLA Silk",
|
||||
"GFL98": "PLA-CF",
|
||||
"GFL95": "PLA High Speed",
|
||||
"GFG99": "PETG",
|
||||
"GFG98": "PETG-CF",
|
||||
"GFG97": "PCTG",
|
||||
"GFB99": "ABS",
|
||||
"GFC99": "PC",
|
||||
"GFB98": "ASA",
|
||||
"GFS99": "PVA",
|
||||
"GFS98": "HIPS",
|
||||
"GFT98": "PPS-CF",
|
||||
"GFT97": "PPS",
|
||||
"GFN97": "PPA-CF",
|
||||
"GFN96": "PPA-GF",
|
||||
"GFP99": "PE",
|
||||
"GFP98": "PE-CF",
|
||||
"GFP97": "PP",
|
||||
"GFP96": "PP-CF",
|
||||
"GFP95": "PP-GF",
|
||||
"GFR99": "EVA",
|
||||
"GFR98": "PHA",
|
||||
"GFS97": "BVOH",
|
||||
"GFA01": "Bambu PLA Matte",
|
||||
"GFA00": "Bambu PLA Basic",
|
||||
"GFA09": "Bambu PLA Tough",
|
||||
"GFA07": "Bambu PLA Marble",
|
||||
"GFA08": "Bambu PLA Sparkle",
|
||||
"GFA02": "Bambu PLA Metal",
|
||||
"GFA05": "Bambu PLA Silk",
|
||||
"GFS00": "Bambu Support W",
|
||||
"GFL03": "eSUN PLA+",
|
||||
"GFL01": "PolyTerra PLA",
|
||||
"GFL00": "PolyLite PLA",
|
||||
"GFA50": "Bambu PLA-CF",
|
||||
"GFS02": "Bambu Support For PLA",
|
||||
"GFA11": "Bambu PLA Aero",
|
||||
"GFL04": "Overture PLA",
|
||||
"GFL05": "Overture Matte PLA",
|
||||
"GFA12": "Bambu PLA Glow",
|
||||
"GFA13": "Bambu PLA Dynamic",
|
||||
"GFA15": "Bambu PLA Galaxy",
|
||||
"GFS05": "Bambu Support For PLA/PETG",
|
||||
"GFU01": "Bambu TPU 95A",
|
||||
"GFU00": "Bambu TPU 95A HF",
|
||||
"GFG00": "Bambu PETG Basic",
|
||||
"GFT01": "Bambu PET-CF",
|
||||
"GFG50": "Bambu PETG-CF",
|
||||
"GFG60": "PolyLite PETG",
|
||||
"GFG01": "Bambu PETG Translucent",
|
||||
"GFB00": "Bambu ABS",
|
||||
"GFB60": "PolyLite ABS",
|
||||
"GFB50": "Bambu ABS-GF",
|
||||
"GFC00": "Bambu PC",
|
||||
"GFB01": "Bambu ASA",
|
||||
"GFB61": "PolyLite ASA",
|
||||
"GFB02": "Bambu ASA-Aero",
|
||||
"GFS04": "Bambu PVA",
|
||||
"GFS01": "Bambu Support G",
|
||||
"GFN03": "Bambu PA-CF",
|
||||
"GFN04": "Bambu PAHT-CF",
|
||||
"GFS03": "Bambu Support For PA/PET",
|
||||
"GFN05": "Bambu PA6-CF",
|
||||
"GFN08": "Bambu PA6-GF"
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"TPU": "GFU99",
|
||||
"PA": "GFN99",
|
||||
"PA-CF": "GFN98",
|
||||
"PLA": "GFL99",
|
||||
"PLA Silk": "GFL96",
|
||||
"PLA-CF": "GFL98",
|
||||
"PLA High Speed": "GFL95",
|
||||
"PETG": "GFG99",
|
||||
"PETG-CF": "GFG98",
|
||||
"PCTG": "GFG97",
|
||||
"ABS": "GFB99",
|
||||
"ABS+HS": "GFB99",
|
||||
"PC": "GFC99",
|
||||
"PC/ABS": "GFC99",
|
||||
"ASA": "GFB98",
|
||||
"PVA": "GFS99",
|
||||
"HIPS": "GFS98",
|
||||
"PPS-CF": "GFT98",
|
||||
"PPS": "GFT97",
|
||||
"PPA-CF": "GFN97",
|
||||
"PPA-GF": "GFN96",
|
||||
"PE": "GFP99",
|
||||
"PE-CF": "GFP98",
|
||||
"PP": "GFP97",
|
||||
"PP-CF": "GFP96",
|
||||
"PP-GF": "GFP95",
|
||||
"EVA": "GFR99",
|
||||
"PHA": "GFR98",
|
||||
"BVOH": "GFS97"
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,171 @@
|
||||
<!-- head --><!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>FilaMan - Filament Management Tool</title>
|
||||
<link rel="icon" type="image/png" href="/favicon.ico">
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<script>
|
||||
fetch('/api/version')
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
const versionSpan = document.querySelector('.version');
|
||||
if (versionSpan) {
|
||||
versionSpan.textContent = 'v' + data.version;
|
||||
}
|
||||
})
|
||||
.catch(error => console.error('Error fetching version:', error));
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar">
|
||||
<div style="display: flex; align-items: center; gap: 2rem;">
|
||||
<img src="/logo.png" alt="FilaMan Logo" class="logo">
|
||||
<div class="logo-text">
|
||||
<h1>FilaMan<span class="version"></span></h1>
|
||||
<h4>Filament Management Tool</h4>
|
||||
</div>
|
||||
</div>
|
||||
<nav style="display: flex; gap: 1rem;">
|
||||
<a href="/">Start</a>
|
||||
<a href="/waage">Scale</a>
|
||||
<a href="/spoolman">Spoolman/Bambu</a>
|
||||
<a href="/about">About</a>
|
||||
<a href="/upgrade">Upgrade</a>
|
||||
</nav>
|
||||
<div class="status-container">
|
||||
<div class="status-item">
|
||||
<span class="status-dot" id="bambuDot"></span>B
|
||||
</div>
|
||||
<div class="status-item">
|
||||
<span class="status-dot" id="spoolmanDot"></span>S
|
||||
</div>
|
||||
<div class="ram-status" id="ramStatus"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- head -->
|
||||
|
||||
<script>
|
||||
window.onload = function() {
|
||||
if (spoolmanUrl && spoolmanUrl.trim() !== "") {
|
||||
document.getElementById('spoolmanUrl').value = spoolmanUrl;
|
||||
}
|
||||
|
||||
// Initialize OctoPrint fields visibility
|
||||
toggleOctoFields();
|
||||
};
|
||||
|
||||
function checkSpoolmanInstance() {
|
||||
const url = document.getElementById('spoolmanUrl').value;
|
||||
const spoolmanOctoEnabled = document.getElementById('spoolmanOctoEnabled').checked;
|
||||
const spoolmanOctoUrl = document.getElementById('spoolmanOctoUrl').value;
|
||||
const spoolmanOctoToken = document.getElementById('spoolmanOctoToken').value;
|
||||
|
||||
fetch(`/api/checkSpoolman?url=${encodeURIComponent(url)}&octoEnabled=${spoolmanOctoEnabled}&octoUrl=${spoolmanOctoUrl}&octoToken=${spoolmanOctoToken}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.healthy) {
|
||||
document.getElementById('statusMessage').innerText = 'Spoolman-Instance is availabe and healthy!';
|
||||
} else {
|
||||
document.getElementById('statusMessage').innerText = 'Spoolman-Instance not available.';
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
document.getElementById('statusMessage').innerText = 'Error while connecting to Spoolman-Instance: ' + error.message;
|
||||
});
|
||||
}
|
||||
|
||||
function saveBambuCredentials() {
|
||||
const ip = document.getElementById('bambuIp').value;
|
||||
const serial = document.getElementById('bambuSerial').value;
|
||||
const code = document.getElementById('bambuCode').value;
|
||||
const autoSend = document.getElementById('autoSend').checked;
|
||||
const autoSendTime = document.getElementById('autoSendTime').value;
|
||||
|
||||
fetch(`/api/bambu?bambu_ip=${encodeURIComponent(ip)}&bambu_serialnr=${encodeURIComponent(serial)}&bambu_accesscode=${encodeURIComponent(code)}&autoSend=${autoSend}&autoSendTime=${autoSendTime}`)
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.healthy) {
|
||||
document.getElementById('bambuStatusMessage').innerText = 'Bambu Credentials saved!';
|
||||
} else {
|
||||
document.getElementById('bambuStatusMessage').innerText = 'Error while saving Bambu Credentials.';
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
document.getElementById('bambuStatusMessage').innerText = 'Error while saving: ' + error.message;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Controls visibility of OctoPrint configuration fields based on checkbox state
|
||||
* Called on page load and when checkbox changes
|
||||
*/
|
||||
function toggleOctoFields() {
|
||||
const octoEnabled = document.getElementById('spoolmanOctoEnabled').checked;
|
||||
document.getElementById('octoFields').style.display = octoEnabled ? 'block' : 'none';
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
var spoolmanUrl = "{{spoolmanUrl}}";
|
||||
</script>
|
||||
|
||||
<div class="content">
|
||||
<h1>Spoolman API URL / Bambu Credentials</h1>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Set URL/IP to your Spoolman-Instanz</h5>
|
||||
<input type="text" id="spoolmanUrl" placeholder="http://ip-or-url-of-your-spoolman-instanz:port">
|
||||
<h5 class="card-title">If you want to enable sending Spool to Spoolman Octoprint Plugin:</h5>
|
||||
<p>
|
||||
<input type="checkbox" id="spoolmanOctoEnabled" {{spoolmanOctoEnabled}} onchange="toggleOctoFields()"> Send to Octo-Plugin
|
||||
</p>
|
||||
<div id="octoFields" style="display: none;">
|
||||
<p>
|
||||
<input type="text" id="spoolmanOctoUrl" placeholder="http://ip-or-url-of-your-octoprint-instanz:port" value="{{spoolmanOctoUrl}}">
|
||||
<input type="text" id="spoolmanOctoToken" placeholder="Your Octoprint Token" value="{{spoolmanOctoToken}}">
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<button onclick="checkSpoolmanInstance()">Save Spoolman URL</button>
|
||||
<p id="statusMessage"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Bambu Lab Printer Credentials</h5>
|
||||
<div class="bambu-settings">
|
||||
<div class="input-group">
|
||||
<label for="bambuIp">Bambu Drucker IP-Adresse:</label>
|
||||
<input type="text" id="bambuIp" placeholder="192.168.1.xxx" value="{{bambuIp}}">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label for="bambuSerial">Drucker Seriennummer:</label>
|
||||
<input type="text" id="bambuSerial" placeholder="BBLXXXXXXXX" value="{{bambuSerial}}">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label for="bambuCode">Access Code:</label>
|
||||
<input type="text" id="bambuCode" placeholder="Access Code vom Drucker" value="{{bambuCode}}">
|
||||
</div>
|
||||
<hr>
|
||||
<p>If activated, FilaMan will automatically update the next filled tray with the last scanned and weighed spool.</p>
|
||||
<div class="input-group" style="display: flex; margin-bottom: 0;">
|
||||
<label for="autoSend" style="width: 250px; margin-right: 5px;">Auto Send to Bambu:</label>
|
||||
<label for="autoSendTime" style="width: 250px; margin-right: 5px;">Wait for Spool in Sec:</label>
|
||||
</div>
|
||||
<div class="input-group" style="display: flex;">
|
||||
<input type="checkbox" id="autoSend" {{autoSendToBambu}} style="width: 190px; margin-right: 10px;">
|
||||
<input type="number" min="60" id="autoSendTime" placeholder="Time to wait" value="{{autoSendTime}}" style="width: 100px;">
|
||||
</div>
|
||||
|
||||
<button style="margin: 0;" onclick="saveBambuCredentials()">Save Bambu Credentials</button>
|
||||
<p id="bambuStatusMessage"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user