Bei Anwesenheit DECT200 schalten

Begonnen von YellowBall, 14 September 2015, 14:46:14

Vorheriges Thema - Nächstes Thema

YellowBall

Moin zusammen,

ich versuche nun seit zwei Tagen verschiedene Settings in der Config um abhängig von der Erreichbarkeit von Handys diverse DECT200-Aktore zu schalten, aber ich kriege es einfach nicht hin. Daher möchte ich die Erfahrenen unter Euch um ein paar Codeschnipsel bitten.

Die Definition meines iPhones sieht so aus:

define iPhone_Holger PRESENCE lan-ping 192.168.178.69 15
attr iPhone_Holger alias iPhone 6 Holger
attr iPhone_Holger devStateIcon present:general_an@green absent:general_aus@red
attr iPhone_Holger event-on-change-reading state
attr iPhone_Holger icon it_smartphone
attr iPhone_Holger room Mobile Geraete

Der Anwesenheitsstatus wird auch richtig dargestellt , aber wie schaffe ich es beim
Status "present" meinen Aktor FBDECT_17 auf on zu schalten und bei "absent" auf off?

Raspi 0,1,2,3,4 | HMUART | Broadlink | Harmony | Xiaomi | Milight | Homematic | Somfy | Sonos | Meross  | Sonoff  | Shelly | Comet DECT  | ioBroker

Brice

#1
Einen Codeschnipsel könnte ich dir geben, aber versuche es mal selbst nach dieser Anleitung aus dem Wiki. Hilft ungemein bei weiteren Notifys.

Also:

define <Name des notify> notify a b

dann suchst du dir per Regexp-wizard die passende Regex, müsste in deinem Fall im ersten Auswahlfeld "iPhone_Holger" sein, nach Auswahl geht das zweite Auswahlfenster auf, dort "present.*" auswählen und "set" betätigen.

Dann gehst du auf Internals und DEF und kannst die DEF editieren. Dort ersetzt du hinter "iPhone_Holger.present.*" das "b" durch die Aktion, die ausgelöst werden soll, in deinem Fall dann

set FBDECT_17 on

Für das Ausschalten dann einen weiteren Code.

Das Ganze kann du natürlich noch vereinfachen, aber auch da hilft das Studium des Wiki bzw. Forum.
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

YellowBall

Moin Brice,

vielen Dank für den Notify-Hinweis. Ich werde mich durchwurschteln und berichten.

Holger
Raspi 0,1,2,3,4 | HMUART | Broadlink | Harmony | Xiaomi | Milight | Homematic | Somfy | Sonos | Meross  | Sonoff  | Shelly | Comet DECT  | ioBroker

Jens__K

Ich hänge mich hier mal dran, weil mich das Thema auch sehr interessiert.

@TE: Wie hast Du es denn geschafft, dass das iPhone sich nicht aus dem WLAN abmeldet, wenn es im Ruhezustand ist?

Bei mir funktioniert ein Ping nur, wenn ich aktiv etwas mit dem iPhone mache. Sobald der Bildschirm aus ist, werden die Pings nach einigen Sekunden nicht mehr beantwortet und der Status des PRESENCE Devices geht auf "absent".

Das sieht dann folgendermaßen aus:

PING 192.168.178.65 (192.168.178.65) 56(84) bytes of data.
64 bytes from 192.168.178.65: icmp_req=9 ttl=64 time=62.9 ms
64 bytes from 192.168.178.65: icmp_req=10 ttl=64 time=124 ms
64 bytes from 192.168.178.65: icmp_req=11 ttl=64 time=2.18 ms
64 bytes from 192.168.178.65: icmp_req=12 ttl=64 time=129 ms
64 bytes from 192.168.178.65: icmp_req=13 ttl=64 time=3.18 ms
64 bytes from 192.168.178.65: icmp_req=14 ttl=64 time=69.6 ms
64 bytes from 192.168.178.65: icmp_req=15 ttl=64 time=69.7 ms
64 bytes from 192.168.178.65: icmp_req=16 ttl=64 time=103 ms
64 bytes from 192.168.178.65: icmp_req=17 ttl=64 time=37.5 ms
64 bytes from 192.168.178.65: icmp_req=18 ttl=64 time=2.46 ms
64 bytes from 192.168.178.65: icmp_req=19 ttl=64 time=3.00 ms
64 bytes from 192.168.178.65: icmp_req=20 ttl=64 time=105 ms
64 bytes from 192.168.178.65: icmp_req=21 ttl=64 time=127 ms
64 bytes from 192.168.178.65: icmp_req=22 ttl=64 time=46.9 ms
64 bytes from 192.168.178.65: icmp_req=23 ttl=64 time=46.3 ms
64 bytes from 192.168.178.65: icmp_req=24 ttl=64 time=93.4 ms
64 bytes from 192.168.178.65: icmp_req=25 ttl=64 time=2.25 ms
64 bytes from 192.168.178.65: icmp_req=26 ttl=64 time=37.3 ms
[iPhone wieder aktiviert]
64 bytes from 192.168.178.65: icmp_req=47 ttl=64 time=125 ms
64 bytes from 192.168.178.65: icmp_req=48 ttl=64 time=2.69 ms
64 bytes from 192.168.178.65: icmp_req=49 ttl=64 time=3.41 ms
64 bytes from 192.168.178.65: icmp_req=50 ttl=64 time=2.41 ms
64 bytes from 192.168.178.65: icmp_req=51 ttl=64 time=112 ms
64 bytes from 192.168.178.65: icmp_req=52 ttl=64 time=134 ms
64 bytes from 192.168.178.65: icmp_req=53 ttl=64 time=2.45 ms
64 bytes from 192.168.178.65: icmp_req=54 ttl=64 time=53.1 ms
64 bytes from 192.168.178.65: icmp_req=55 ttl=64 time=100 ms
64 bytes from 192.168.178.65: icmp_req=56 ttl=64 time=121 ms
64 bytes from 192.168.178.65: icmp_req=57 ttl=64 time=43.3 ms
64 bytes from 192.168.178.65: icmp_req=58 ttl=64 time=65.7 ms
64 bytes from 192.168.178.65: icmp_req=59 ttl=64 time=87.9 ms
64 bytes from 192.168.178.65: icmp_req=60 ttl=64 time=110 ms
64 bytes from 192.168.178.65: icmp_req=61 ttl=64 time=133 ms
64 bytes from 192.168.178.65: icmp_req=62 ttl=64 time=2.39 ms
64 bytes from 192.168.178.65: icmp_req=63 ttl=64 time=75.9 ms
64 bytes from 192.168.178.65: icmp_req=64 ttl=64 time=97.4 ms
64 bytes from 192.168.178.65: icmp_req=65 ttl=64 time=120 ms
[iPhone wieder aktiviert]
64 bytes from 192.168.178.65: icmp_req=247 ttl=64 time=144 ms
64 bytes from 192.168.178.65: icmp_req=248 ttl=64 time=18.7 ms
64 bytes from 192.168.178.65: icmp_req=249 ttl=64 time=25.2 ms
64 bytes from 192.168.178.65: icmp_req=250 ttl=64 time=3.11 ms
64 bytes from 192.168.178.65: icmp_req=251 ttl=64 time=74.6 ms
64 bytes from 192.168.178.65: icmp_req=252 ttl=64 time=96.6 ms
64 bytes from 192.168.178.65: icmp_req=253 ttl=64 time=3.09 ms
64 bytes from 192.168.178.65: icmp_req=254 ttl=64 time=14.8 ms
64 bytes from 192.168.178.65: icmp_req=255 ttl=64 time=61.1 ms
64 bytes from 192.168.178.65: icmp_req=256 ttl=64 time=83.7 ms
64 bytes from 192.168.178.65: icmp_req=257 ttl=64 time=107 ms
64 bytes from 192.168.178.65: icmp_req=258 ttl=64 time=128 ms
64 bytes from 192.168.178.65: icmp_req=259 ttl=64 time=50.5 ms
64 bytes from 192.168.178.65: icmp_req=260 ttl=64 time=71.9 ms
64 bytes from 192.168.178.65: icmp_req=261 ttl=64 time=70.9 ms
64 bytes from 192.168.178.65: icmp_req=262 ttl=64 time=2.05 ms
64 bytes from 192.168.178.65: icmp_req=263 ttl=64 time=18.2 ms
64 bytes from 192.168.178.65: icmp_req=264 ttl=64 time=60.5 ms
64 bytes from 192.168.178.65: icmp_req=265 ttl=64 time=1.88 ms
64 bytes from 192.168.178.65: icmp_req=266 ttl=64 time=106 ms
64 bytes from 192.168.178.65: icmp_req=267 ttl=64 time=127 ms
64 bytes from 192.168.178.65: icmp_req=268 ttl=64 time=2.30 ms
64 bytes from 192.168.178.65: icmp_req=269 ttl=64 time=71.7 ms
64 bytes from 192.168.178.65: icmp_req=270 ttl=64 time=96.6 ms
[iPhone wieder aktiviert]
64 bytes from 192.168.178.65: icmp_req=299 ttl=64 time=53.3 ms
64 bytes from 192.168.178.65: icmp_req=300 ttl=64 time=2.15 ms
64 bytes from 192.168.178.65: icmp_req=301 ttl=64 time=111 ms
64 bytes from 192.168.178.65: icmp_req=302 ttl=64 time=124 ms
64 bytes from 192.168.178.65: icmp_req=303 ttl=64 time=52.7 ms
64 bytes from 192.168.178.65: icmp_req=304 ttl=64 time=50.9 ms
64 bytes from 192.168.178.65: icmp_req=305 ttl=64 time=98.1 ms
64 bytes from 192.168.178.65: icmp_req=306 ttl=64 time=120 ms
64 bytes from 192.168.178.65: icmp_req=307 ttl=64 time=40.5 ms
64 bytes from 192.168.178.65: icmp_req=308 ttl=64 time=62.2 ms
64 bytes from 192.168.178.65: icmp_req=309 ttl=64 time=85.4 ms
64 bytes from 192.168.178.65: icmp_req=310 ttl=64 time=107 ms
64 bytes from 192.168.178.65: icmp_req=311 ttl=64 time=105 ms
64 bytes from 192.168.178.65: icmp_req=312 ttl=64 time=24.9 ms
64 bytes from 192.168.178.65: icmp_req=313 ttl=64 time=72.5 ms
64 bytes from 192.168.178.65: icmp_req=314 ttl=64 time=94.9 ms
64 bytes from 192.168.178.65: icmp_req=315 ttl=64 time=117 ms
64 bytes from 192.168.178.65: icmp_req=316 ttl=64 time=37.4 ms
64 bytes from 192.168.178.65: icmp_req=317 ttl=64 time=59.7 ms
64 bytes from 192.168.178.65: icmp_req=318 ttl=64 time=83.1 ms
64 bytes from 192.168.178.65: icmp_req=319 ttl=64 time=80.6 ms
64 bytes from 192.168.178.65: icmp_req=320 ttl=64 time=127 ms
64 bytes from 192.168.178.65: icmp_req=321 ttl=64 time=49.1 ms
64 bytes from 192.168.178.65: icmp_req=322 ttl=64 time=71.2 ms
--- 192.168.178.65 ping statistics ---
337 packets transmitted, 85 received, 74% packet loss, time 336145ms
rtt min/avg/max/mdev = 1.880/67.531/144.954/43.628 ms


Die Lücken sind zur Hervorhebung der Request-Nummern.
Es geht immer erst dann positiv weiter, wenn ich den Home-Button des iPhones gedrückt habe und das Telefon damit wieder aktiv benutze.
Nach einigen Minuten aktiviert das im Ruhezustand befindliche iPhone das WLAN aber wieder automatisch, um nach Mails zu schauen. Gleich danach geht es aber wieder aus.

Interessant dazu:
http://www.forum-raspberrypi.de/Thread-pruefen-ob-zuhause-ueber-ping-iphone?page=1

Wenn ich davon ausgehe, dass pro Sekunde ein "icmp_req" abgeschossen wird, dann liegen 6-7 Minuten (361 / 422 Sekunden) zwischen den automatischen WLAN Einbuchungen:

64 bytes from 192.168.178.65: icmp_req=482 ttl=64 time=40.8 ms
64 bytes from 192.168.178.65: icmp_req=483 ttl=64 time=64.8 ms
[Request 484 - 904 = Schweigen im Walde]
64 bytes from 192.168.178.65: icmp_req=905 ttl=64 time=23.8 ms
64 bytes from 192.168.178.65: icmp_req=906 ttl=64 time=2.15 ms
[...]
64 bytes from 192.168.178.65: icmp_req=958 ttl=64 time=135 ms
64 bytes from 192.168.178.65: icmp_req=959 ttl=64 time=2.00 ms
[Request 960 - 1319 = Schweigen im Walde]
64 bytes from 192.168.178.65: icmp_req=1320 ttl=64 time=1.97 ms
64 bytes from 192.168.178.65: icmp_req=1321 ttl=64 time=2.89 ms

Brice

Interessant wäre

- auf welcher HW läuft dein FHEM
- welches iPhone
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

Jens__K

iPhone 5 mit IOS 8.4.1
iPhone 6 mit IOS 8.4.1
FHEM auf Raspberry Pi 2 mit Raspbian Wheezy

Puschel74

Dazu gibt es aber doch schon Beiträge - die mit der Frage des TE nichts zu tun haben.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Jens__K

Mit der Frage des TE nicht, aber bei ihm scheint es ja anders zu funktionieren als bei mir.
Deshalb habe ich mich hier drangehängt. Ich erwarte nicht, dass mein "Problem" hier gelöst wird, da es ja nichts mit FHEM zu tun hat, sondern mit der angesprochenen Hardware (von Apple).

Sico93

Auch wenn der Beitrag hier schon etwas älter ist, und es mir eher um Hue Lampen als um DECT200 Steckdosen geht, habe ich trotzdem mal eine Frage (Wenn ich die lieber irgendwo einzeln stellen soll, gebt mir einfach ein Zeichen ;) )

Also los:
Ich möchte gern wenn mein iPhone Anwesend ist (Das funktioniert soweit ganz gut, das iPhone wechselt also ziemlich zuverlässig zwischen absent und present):
define EG.fz.NE.nanoPhone.PRESENT.dum PRESENCE function {checkFritzMACpresent("EG.bu.NE.fritzbox","A4:F1:E8:01:AA:3B")} 60 60
attr EG.fz.NE.nanoPhone.PRESENT.dum alias nanoPhone
attr EG.fz.NE.nanoPhone.PRESENT.dum event-on-change-reading state

eine LightScene (fabiHome aus "EG.fz.HU.FabiHue.grp") einschalten.


define EG.fz.HU.FabiHue.grp LightScene EG.fz.HU.Schrank EG.fz.HU.Bett
attr EG.fz.HU.FabiHue.grp alias Philips Hue Scenen Fabi
attr EG.fz.HU.FabiHue.grp room 9.8.8_Gruppen,1.0.0_Haus,1.1.0_Erdgeschoss,1.1.2_Fabi,2.2_HueDevices,2.4_Lampen


selbiges soll natürlich passieren, wenn ich das Haus verlasse, dann halt mit der passenden LightScene fabiAway wenn EG.fz.NE.nanoPhone.PRESENT.dum auf Absent wechselt.

Wenn diese Aktionen, speziell beim verlassen, nicht super Zeitnah passieren kann ich damit leben. Soweit komme ich aber leider nicht....  :(

Zum debugging habe ich meine LightScene erstmal gestrichen und durch eine Funksteckdose ersetzt. Das sieht dann so aus:

define fabiPresence.not notify EG.fz.NE.nanoPhone.PRESENT.dum:presence:.absent set EG.fz.SD.TestdoseS2U2 off\
EG.fz.NE.nanoPhone.PRESENT.dum:presence:.present set EG.fz.SD.TestdoseS2U2 on


Damit bewegt sich aber erstmal nichts. Das iPhone wechselt zwar Dank abgeschaltetem WLAN auf absent, die Steckdose bewegt sich jedoch kein bisschen und ich weiß nicht was ich falsch mache.

Ich habe zwar die Stelle, an der der PRESENCE Status im Notify erfasst werden soll im Verdacht (:presence:.absent ), weiß aber nicht, was ich falsch mache  :'(


Später möchte ich das ganze dann noch weiter mit Twilight anpassen, aber vorher muss das Grundgerüst stehen.


Ich würde mich echt super freuen, wenn mir von euch jemand einen heißen Tipp geben könnte :)

Danke schonmal im voraus!

nano

Ellert

Du Könntest ein DOIF verwenden, das lässt sich leicht mit Twilight erweitern, s. http://fhem.de/commandref_DE.html#DOIF

define deinDOIF ([EG.fz.NE.nanoPhone.PRESENT.dum:presence] eq "absent")
   (set EG.fz.SD.TestdoseS2U2 off)
DOELSEIF ([EG.fz.NE.nanoPhone.PRESENT.dum:presence] eq "present" and [[deinTwilight:ss_weather]-23:00])
   (set EG.fz.SD.TestdoseS2U2 on)

Die Zeile mit "define ..." in die Eingabezeile eingeben, den Rest im DEF-Editor vervollständigen, siehe: https://forum.fhem.de/index.php/topic,45373.msg371668.html#msg371668

Sico93

Danke @Ellert  8)
Ich bin leider nicht schneller zum Testen gekommen es funktioniert aber, bis auf das Ausschalten um 23 Uhr, echt genial :D
Ich habe heute mal meine Hue-Scene eingefügt und das Twilight Wetter auf ss_indoor gewechselt, ss_weather war mir doch zu spät.

Mal sehen ob das heute Abend so funktioniert :)

Gibt es eine Möglichkeit eine UND-ODER Verknüpfung bei der Anwesenheitskontrolle zu bewerkstelligen?
Ich würde gern eine Funksteckdose bei Dunkelheit schalten, sobald eines von 2 iPhones sich im Netzwerk befindet (oder halt beide).

Vielen Dank für eure Hilfe nochmal :D

Ellert

Ja, verkürzt etwa so A and (B or C), am Besten Du schaust Dir die Beispiele aus der Commandref an und orientierst Dich an dem, was Du schon hast.