NEWS
Netzwerküberwachung mit fb-checkpresence
-
Ich bin mit JavaScript noch ziemlich am anfang. Habe mir mit Hilfe von ChatGPT ein Script, welches die Datenpunkte vom fb-checkpresence ' jsonActive' und ' jsonInactive' überwacht. Das mir dann eine Meldung über Pushover senden soll wenn sich ein Gerät im Netzwerk An- und Abmeldet, mit der entsprechenden IP.
Aber so ganz passt es noch nicht. Ich krieg immer ca 25 Meldungen auf einmal und immer mit deem gleichen inhalt.
Außerdem krieg ich eine Fehlermeldung von Pushover mit 'Error from Pushover: SyntaxError: Unexpected token '<', "<html> <h"... is not valid JSON'// JavaScript für ioBroker let lastDeviceStates = {}; function checkDeviceChanges() { let currentDevices = JSON.parse(getState('fb-checkpresence.0.fb-devices.jsonActive').val || '[]').concat(JSON.parse(getState('fb-checkpresence.0.fb-devices.jsonInactive').val || '[]')); let currentDeviceStates = {}; // Aktuellen Zustand der Geräte aufbauen currentDevices.forEach(device => { currentDeviceStates[device['MAC-Address']] = device['Active']; }); // Änderungen überprüfen Object.keys(currentDeviceStates).forEach(mac => { let isActive = currentDeviceStates[mac]; let wasActive = lastDeviceStates[mac]; // Wenn der Zustand des Geräts sich geändert hat if (isActive !== wasActive) { let device = currentDevices.find(d => d['MAC-Address'] === mac); let message = isActive ? `Neues Gerät verbunden: ${device['HostnameTest']}, IP: ${device['IP-Address']}` : `Gerät getrennt: ${device['HostnameTest']}, IP: ${device['IP-Address']}`; sendTo("pushover.0", "send", { message: message, title: isActive ? "Gerät verbunden" : "Gerät getrennt", priority: 0 }); } }); // Letzten Zustand aktualisieren lastDeviceStates = {...currentDeviceStates}; } // Überprüfen Sie die Geräteliste alle 5 Sekunden setInterval(checkDeviceChanges, 5000);