ich versuche eine Post Abfrage via Blockly durchzuführen. Kann mir Jemand bitte helfen oder einen Tipp geben, wie ich das in das Post-Modul in Blockly verpacken kann?
Oder wenn es nicht anders geht auch in eine Script.
Ich will damit in meinem Mikrotik WLAN-Router die Anzahl der aktuellen Registrierungen abfragen. Im Mikrotik Forum habe ich dieses Script von einem netten Menschen bekommen, der sich leider nicht mit iobroker auskennt.
Danke Euch für einen Tipp
Gruß
Lothar
Habe es mit Hilfe von jayjojayson und ChatGPT hinbekommen:
const exec = require('child_process').exec;
const USERNAME = 'deinBenutzername';
const PASSWORD = 'deinPasswort';
const URL = 'http://192.168.1.1/rest/interface/wireless/registration-table/print';
const DATA_POINT = 'javascript.0.WirelessClientCount'; // Ziel-Datenpunkt in ioBroker
function updateWirelessClientCount() {
const command = `curl -s -k -u ${USERNAME}:${PASSWORD} -X POST ${URL} -H "content-type: application/json" | python3 -c "import sys,json; print(len(json.load(sys.stdin)))"`;
exec(command, (error, stdout, stderr) => {
if (error) {
console.error(`Fehler beim Abrufen der Daten: ${stderr}`);
return;
}
const clientCount = parseInt(stdout.trim(), 10);
if (!isNaN(clientCount)) {
setState(DATA_POINT, clientCount, true);
console.log(`Anzahl der verbundenen Clients: ${clientCount}`);
} else {
console.error('Fehler: Konnte die Anzahl der Clients nicht bestimmen.');
}
});
}
// Skript alle 5 Minuten ausführen
schedule("*/5 * * * *", updateWirelessClientCount);
// Direkt beim Start ausführen
updateWirelessClientCount();
Das Skript führt die curl -Abfrage aus, zählt die Clients und speichert das Ergebnis in einem ioBroker-Datenpunkt (javascript.0.WirelessClientCount ). Es wird alle 5 Minuten automatisch ausgeführt und direkt beim Start einmalig gestartet.