Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Netzwerküberwachung mit fb-checkpresence

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    21
    1
    911

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.4k

Netzwerküberwachung mit fb-checkpresence

Scheduled Pinned Locked Moved JavaScript
1 Posts 1 Posters 236 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    Fritzk
    wrote on last edited by
    #1

    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);
    
    
    1 Reply Last reply
    0
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    Support us

    ioBroker
    Community Adapters
    Donate

    804

    Online

    32.5k

    Users

    81.6k

    Topics

    1.3m

    Posts
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
    ioBroker Community 2014-2025
    logo
    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Home
    • Recent
    • Tags
    • Unread 0
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe