Anwesenheit's Script für Domoticz

  • Hallo Gemeinde,

    ich habe schon einige Sachen im Netz gelesen, aber noch nichts passendes für mich gefunden.

    Ich würde gern einen virtuelle Switch für jedes bekannte Smartphone in meinem Haushalt machen, welche bei Anwesenheit "an" und Abwesenheit "aus" ist und mit denen ich in Abhängigkeit des Status weitere Aktionen mittels Blocky, oder anderen Skripten erledigen kann.

    meine verfügbare Hardware:

    -eine FritzBox 7590

    -3 FritzRepeater

    -einen Raspberry mit Domoticz

    -ein iPhone

    -ein Android Smartphone

    Grüße und Dank im Voraus,

    mac_switch

  • Ich habe keine Ahnung von Domoticz, aber im ioBroker frage ich das WLan der Fritzbox ab um zu sehen welches Smartphone eingeloggt ist. Darüber erfolgt dann meine Anwesenheitssteuerung.

    Bei mehreren Repeatern könnte das nicht so einfach werden. In dem Fall musst du den Netzwerkstatus der Geräte in der Fritzbox abrufen. Dabei wirst du aber merken das die Fritzbox teilweise bis zu 30 Minuten braucht bis sie ein Gerät abmeldet.

    Das nächste Problem dürfte dein iPhone sein. Soweit mir bekannt ist loggt sich das iPhone nach einer gewissen ZTeit aus den WLan aus und ist somit nicht mehr als "Anwesend" sichtbar.

    Beim ioBroker arbeiten die User da mit dem "Geofency" oder "find my i Phone" Adapter. Aber die Abläufe dazu kann ich dir dann leider noch weniger erklären.

    Ich hoffe trotzdem dir ein wenig weitergeholfen zu haben.

  • Hallo Chaot,

    danke für deine Mühe. Für mich stellt sich erst mal die Frage, wie ich Domoticz dazu bringe die FritzBox abzufragen.

    Es gibt eine Lösung in dem ich die Smartphones regelmäßig an pinge... aber zum einen blockt das iPhone diese Anfrage und zum anderen finde ich die FritzBox Abfrage nach der registrierten MAC eleganter.

  • Na dann wirds Zeit Domoticz zu testen ;)

    das fängt schon bei einem Pi Zero an, auf dem Domoticz stabil läuft.


    mac_switch:

    https://www.domoticz.com/wiki/Presence_detection_(SNMP)

    sonst gäbe es noch Möglichkeit über BLE, hab ich nicht probiert.

  • Habe mich bislang zurückgehalten, weil es kein dünnes Brett ist, was zu bohren ist und ich als Amateur-"Programmierer" im Moment nur Fragen aufwerfen kann, die vielleicht zur Lösung beitragen:

    a) die Handys müssen MQTT-Clients (publisher/subscriber) sein, um wahrgenommen zu werden

    b) sie müssen eine Nachricht generieren (LWT= last will and testament) die Auskunft über den Status gibt (offline/online)

    c) Status muss über ein script (in Domoticz) oder über eine Rule (in den Geräten) verarbeitet werden,

    b) ist, denke ich, der zentrale Punkt: Wenn etwas generiert wird, kann man es verarbeiten werden

    welche bei Anwesenheit "an" und Abwesenheit "aus"

    Was genau soll das bedeuten? Dass das Handy aus oder an ist? Dass ein bestimmter (oder alle?) Schalter an oder aus sind? Beschreibe bitte genauer, worum es geht.

  • Hallo JoergZ und NoitaercX,

    ich möchte auf keinen der smartphones zusätzliche Software aufspielen und ich möchte auch nicht den Lösungsweg gehen die bekannten statischen IPs der Smartphones anzueignen, da dies 2 wesentliche Nachteile mit sich bringt. Zum einen unterdrückt ein iPhone einen Ping und zum anderen schonte es nicht den Akku der Smartphones, wenn diese ständig auf einen ping reagieren müssen.

    Da finde ich den Weg die angemeldeten MAC Adressen an einem Router abzufragen die eleganteste.

    Ich möchte in Abhängigkeit der Anwesenheit von Smartphone A oder B oder A+B bestimmte Geräte ein / ausschalten oder Routinen aktivieren / deaktivieren.

    Folgenden Link habe ich auf meiner bisherigen Suche neben SNMP gefunden und finde beide Wege sehr interessant für mich. Jedoch funktioniert das bisher wohl nur mit Unify Routern.

  • Ich habe damit auch einige Zeit getestet, und ein kleines Raspi Script angepasst welche dies macht.

    ABER.....

    Das ganze funktioniert über die Abfrage im Heim-WLan Netz- (MAC oder IP Adr). Leider geht das IPhone nach einiger Zeit in den Ruhemodus und schaltet WLan ab, um Strom zu sparen- Deswegen meint das Script das Gerät ist nicht im Haus.

    Als Alternative habe ich ein APP (GEO) installiert die diese Aufgabe übernimmt. aber das willst du ja nicht.

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

  • Hat mit der FB nichts zu tun da das Script im Heimnetz schaut. Es soll eine via Bluetooth gehen, da war mich aber die Reichweite zu gering.

    #!/bin/sh

    HandyIP="192.168.xxx.xxx"

    EVERY=5

    AlarmOnfile="/tmp/.alarm_on"

    pingHandy(){

    if [ "$(ping -q -W5 -c1 192.168.178.xx| grep '1 received')" != "" ]; then

    echo "ONLINE"

    else

    echo "OFFLINE"

    fi

    }

    startAlarm(){

    ./akt.sh

    }

    stopAlarm(){

    ./deakt.sh

    }

    while :; do

    PingCheck=$(pingHandy)

    if ["$PingCheck" = "ONLINE" ]; then

    if [ ! -f "$AlarmOnfile" ]; then

    echo "[$(date +"%d.%m.%Y %H:%M:%S")] Alarmanlage ausgeschaltet"

    stopAlarm

    echo 1 > $AlarmOnfile

    fi

    elif [ "$PingCheck"= "OFFLINE" ]; then

    if [ -f "§AlarmOnfile" ]; then

    rm -f $AlarmOnfile

    fi

    echo "[$(date +"%d.%m.%Y %H:%M:%S")] Alarmanlage eingeschaltet"

    startAlarm

    fi

    sleep $EVERY

    done

    exit 0

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker

    2 Mal editiert, zuletzt von mafrei (3. Dezember 2018 um 21:12)

  • Ah... nee das ist nicht das was ich suche... Anwesenheit mittel Ping checken hat 2 wesentliche Nachteile!

    1. der Akku des Smartphones ist schneller runter

    2. z.B. das iPhone blockt oder reagiert nicht auf pings (so das Verhalten von meinem iPhone)

  • wie gesagt, es geht eh nicht da WLan abgeschaltet wird.

    ich nutze deshalb das APP "SmartFranz" gegen einmalige Kosten. Wie der Name vernuten läßt, für die FritzBox.

    grüsse aus Heidelberg

    ca. 100 Tasmota Geräte teilweise mit SML Script.

    Alexa, Sonos, Pilot APP zur Steuerung, Domoticz und TasmoAdmin auf Raspberry mit Docker