Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. Mikrotik Anwesenheitskontrollskript

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    961

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Mikrotik Anwesenheitskontrollskript

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
1 Beiträge 1 Kommentatoren 564 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Stratos GkrekidisS Offline
    Stratos GkrekidisS Offline
    Stratos Gkrekidis
    schrieb am zuletzt editiert von Stratos Gkrekidis
    #1

    Mikrotik-Router-Skript zur zuverlässigen Erkennung des WLAN-Clients und zum Senden von HTTP-Anfragen, wenn Geräte im Netzwerk registriert oder abgemeldet werden. Dieser Ansatz funktioniert sehr zuverlässig mit Apple iPhone, iPad und anderen Geräten, die nicht mit TCP oder UDP erreichbar sind, aber dennoch im Netzwerk angemeldet sind.

    Wie das funktioniert

    Der Mikrotik-Scheduler ruft das Anwesenheitskontrollskript mit einem angegebenen Intervall auf, um zu überprüfen, ob die gewünschten Geräte im WiFi-Netzwerk registriert sind. Wenn das Skript eine Änderung des Gerätestatus im Netzwerk erkennt, sendet es eine HTTP-Anfrage an einen gewünschten Server, um zu melden, dass das Gerät registriert ist, auch wenn das Gerät nicht mehr im WiFi-Netzwerk vorhanden ist. Um die Zuverlässigkeit bei der Einrichtung mehrerer Zugangspunkte zu verbessern, sendet das Skript beim Registrieren des Geräts bis ankommenSendTimes-Anforderungen an den Server, da es vorkommen kann, dass der Zugangspunkt, an dem das Gerät nicht registriert war, ein Leave-Ereignis an den Server sendet, nachdem das Gerät an einem anderen Zugangspunkt registriert wurde , was dazu führt, dass das Gerät vom Server als nicht vorhanden behandelt wird.

    Installation und Konfiguration

    Variables

    arriveSendTimes - wie oft Anfragen an einen Server gesendet werden, wenn das Gerät im WLAN-Netzwerk registriert ist
    subjects - Array von Geräten, um das Vorhandensein zu überprüfen, jeder Eintrag enthält Name, Mac und Status
    name - Name der Person, die ein bestimmtes Gerät besitzt, ist optional und wird nur beim Senden von HTTP-Anfragen verwendet
    mac - MAC-Adresse des überwachten Geräts, sollte in Großbuchstaben sein
    state - interne Zustandsvariable zur Erkennung von Zustandsänderungen, sollte auf 0 gesetzt werden

    Ändern Sie die folgenden Zeilen basierend auf Ihren Anforderungen, im aktuellen Beispiel wurde es verwendet, um den Status über Simple RESTful API zu melden:

    /tool fetch url="http://192.168.0.113:8087/set/MyVariable.0.Anwesenheit.$name\?value=false" mode=http
    ...
    /tool fetch url="http://192.168.0.113:8087/set/MyVariable.0.Anwesenheit.$name\?value=true" mode=http
    

    Installation

    Von Mikrotik Winbox:

    1. Neues Skript erstellen System -> Skripte -> Registerkarte Skripte -> Neu hinzufügen

    2. Setzen Sie den Namen auf Presence_control

    3. Fügen Sie den Inhalt von script in Source . ein

    4. Innerhalb des Skripts: Geräte-Array ändern und Werte der URL anpassen

    5. Lassen Sie andere Optionen unverändert

    6. Klicken Sie auf Übernehmen

    7. Neuen schedule erstellen System -> Schedulers -> Neu hinzufügen

    8. Aktivieren Sie das Häkchen

    9. Setzen Sie den Namen auf Presence_control

    10. Intervall eingestellt auf 00:00:05

    11. Bei Ereignis "Presence_control" einfügen

    12. Klicken Sie auf Übernehmen

    script.png

    schedule.png

    Mikrotik Script

    :local arriveSendTimes 5
    :global subjects {{name="StratosAtHome";mac="08:C5:E1:05:EE:06";state=0};{name="AspaAtHome";mac="A4:4B:D5:26:B1:40";state=0}}
    
    :put "Subjects:"
    :foreach entry in=$subjects do={
      :put ($entry)
    }
    
    :local clients [:toarray ""] 
    :put "Registered WiFi clients:"
    :foreach i in=[  / caps-man registration-table  find] do={
      :local mac [  / caps-man registration-table get $i value-name=mac-address]
      :set $clients ($clients, "$mac")
      :put $mac
    }
    
    :put "Checking subject presence..."
    
    :foreach entry in=$subjects do={
      :local state ($entry->"state")
      :local name ($entry->"name")
      :foreach mac in=$clients do={
        :if ($mac = $entry->"mac") do={
           :set $state ($state + 1)
           :put "$name present"
        }
      } 
      if ((($entry->"state") = $state) and ($state != 0)) do={
        :put "$name left"
        :set ($entry->"state") 0
       /tool fetch url="http://192.168.0.113:8087/set/MyVariable.0.Anwesenheit.$name\?value=false" mode=http
     /log warning "[Checking subject presence...] $name"
      } else={
        if ((($entry->"state") != $state) and ($state <= $arriveSendTimes)) do={
          :put "$name arrived"
          :set ($entry->"state") $state
        /tool fetch url="http://192.168.0.113:8087/set/MyVariable.0.Anwesenheit.$name\?value=true" mode=http
    /log warning "[Checking subject presence...] $name"
        }
      }
    }
    
    1 Antwort Letzte Antwort
    0
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen


    Support us

    ioBroker
    Community Adapters
    Donate

    387

    Online

    32.6k

    Benutzer

    82.2k

    Themen

    1.3m

    Beiträge
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
    ioBroker Community 2014-2025
    logo
    • Anmelden

    • Du hast noch kein Konto? Registrieren

    • Anmelden oder registrieren, um zu suchen
    • Erster Beitrag
      Letzter Beitrag
    0
    • Home
    • Aktuell
    • Tags
    • Ungelesen 0
    • Kategorien
    • Unreplied
    • Beliebt
    • GitHub
    • Docu
    • Hilfe