[Gelöst]BenaricHtung wenn man aus dem Haus geht das noch eine Tür oder Fenster

Begonnen von Sebastian84, 14 September 2020, 12:17:47

Vorheriges Thema - Nächstes Thema

Sebastian84

Guten Tag

Ich möchte Infomiert werden wenn ich aus den wlan raus bin von Zuhause, dass noch eine Tür oder Fenster auf ist.
Das sind die Listen von Erkennung und ein Fenster
  Internals:
   ADDRESS    192.168.0.107
   DEF        lan-ping 192.168.0.107 15
   FUUID      5ecab806-f33f-b383-7dc6-8d81b875ebaea5e5
   INTERVAL_NORMAL 15
   INTERVAL_PRESENT 15
   MODE       lan-ping
   NAME       handy_sebastian
   NOTIFYDEV  global
   NR         96
   NTFY_ORDER 50-handy_sebastian
   STATE      Zuhause
   TYPE       PRESENCE
   READINGS:
     2020-09-12 21:15:20   model           lan-ping
     2020-09-14 12:12:30   presence        present
     2020-09-14 12:12:30   state           present
   helper:
     CURRENT_STATE present
     RUNNING_PID:
       abortFn    PRESENCE_ProcessAbortedScan
       arg        handy_sebastian|192.168.0.107|0|4
       bc_pid     30113
       finishFn   PRESENCE_ProcessLocalScan
       fn         PRESENCE_DoLocalPingScan
       pid        29644
       telnet     telnetForBlockingFn_1599876025_127.0.0.1_46424
       timeout    60
       abortArg:
Attributes:
   eventMap   absent:Abwesend present:Zuhause
   group      Anwesenheit
   room       8_Zuhause
   userattr   presence presence_map structexclude   



   Internals:
   DEF        sensor 3  IODev=deconz
   FUUID      5f11ad98-f33f-50a5-8f18-e88de1899765ba0d
   FVERSION   31_HUEDevice.pm:0.218370/2020-05-02
   ID         S3
   INTERVAL   
   IODev      deconz
   NAME       Fenster_Bad_EG
   NR         109
   STATE      open
   TYPE       HUEDevice
   lastupdated 2020-09-14 09:56:20
   lastupdated_local 2020-09-14 11:56:20
   manufacturername LUMI
   modelid    lumi.sensor_magnet.aq2
   name       Fensterkontakt Bad EG
   on         1
   reachable  1
   swversion  20161128
   type       ZHAOpenClose
   uniqueid   00:15:8d:00:04:9f:db:3b-01-0006
   READINGS:
     2020-09-14 11:56:20   battery         100
     2020-09-14 11:56:20   batteryPercent  100
     2020-09-14 11:56:20   reachable       1
     2020-09-14 11:56:20   state           open
     2020-09-14 11:56:20   temperature     29
   helper:
     devtype    S
     reachable  0
     update_timeout 1
     configList:
     json:
       ep         1
       etag       9dfa7831569440e289ef21296e7e0e27
       lastseen   2020-09-14T09:56:20.964
       manufacturername LUMI
       modelid    lumi.sensor_magnet.aq2
       name       Fensterkontakt Bad EG
       swversion  20161128
       type       ZHAOpenClose
       uniqueid   00:15:8d:00:04:9f:db:3b-01-0006
       config:
         battery    100
         temperature 2900
       state:
         lastupdated 2020-09-14T09:56:20.463
     setList:
Attributes:
   IODev      deconz
   devStateIcon open:fts_window_1w_open@#e56524 closed:fts_window_1w
   event-on-change-reading .*
   group      Tür_Fensterkontakte
   model      lumi.sensor_magnet.aq2
   room       2_EG->Bad   


Und hier mein Notify:  Fenster_Bad_EG:open.* set pushmsg msg 'Fenster Bad EG' 'Fenster offen''sebastian' 0 'bike'   

Danke schonmal

Beta-User

Dein notify sieht so aus, als würde das "open" ständig getriggert (=entsprechender Event wird geworfen). Das wäre aber nur der Fall, wenn jemand das Fenster öffnet, alles andere wird unterbunden (eocr .*)...

Von daher würde ich die Logik umdrehen, und die Regex auf das Ausbuchen aus dem Netzwerk hören lassen. Dann mußt du allerdings im Ausführungsteil eine Abfrage machen, ob denn das/die Fenster noch offen sind. Einfache Beispiele (mit at, aber das ist in der Hinsicht egal) findest du z.B. in https://wiki.fhem.de/wiki/If-condition.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

MadMax-FHEM

Da kann ich Beta-User nur zustimmen...
...und dir im übrigen auch ;)

Zitat
Ich möchte Infomiert werden wenn ich aus den wlan raus bin von Zuhause, dass noch eine Tür oder Fenster auf ist.

Du schreibst ja selbst, dass wenn du "weg bist" du wissen willst, wenn/ob noch ein Fenster offen ist...
...und nicht wie dein notify: ob jemand das Fenster aufmacht wenn/während du weg bist ;)

Du kannst dann entweder über alle Fenster "loopen" (Stichwort: devSpec / gute Namenswahl hilft) oder ein "Sammel-Device" für gesammelte Fensterzustände anlegen und das abfragen.

Geht mit structure oder DOIF oder oder...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Peteruser

Hallo,
das Problem steckt wie immer in der Logik. Wie soll das System erkennen, ob man nur den Müll rausträgt oder zum Einkaufen? Bei mir ist das dann eine Ampel an der Tür geworden. Grün, alle Fenster sind zu und Rot das Gegenteil.

Wenn ich das anders wissen will, dann kann ich den Status der Fenster per Telegram abfragen.

Grüße Peter
Ubuntu+Debian FHEM + ESPEasy + Homematic + ConBee + DUROFERN

CoolTux

Eventuell kann dieser Code aus meiner myUtils behilflich sein


sub statusFensterOffen {

    my $contactSensorDevice     = shift;
    $contactSensorDevice        = 'FensterKontakt.*_(Dachfenster|F[1-4])' if( not defined($contactSensorDevice) );
   
    my @monitored=devspec2array("($contactSensorDevice):FILTER=STATE!=closed");
my $i = 0;
my $msgtext = "";
foreach(@monitored) {
    $msgtext .= AttrVal($_,"alias",$_);
       
        if( $i < scalar(@monitored) - 2) {
    $msgtext .= ", ";
        } elsif( $i == scalar(@monitored) - 2) {
    $msgtext .= " und ";
    }

    $i++;
    }

return $msgtext if (scalar(@monitored) > 0);
}


Man kann damit alle Fenster abfragen welche näher durch $contactSensorDevice definiert sind oder der Funktion einen Devicenamen übergeben um dessen Status zu erfahren.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

laberlaib

Ich triggere bei uns auf die das Öffnen der Haustür (=beim TE eben das verlassen des WLANs)
Dann habe ich eine Structure mit allen Fenstern, welche bei einem offenen Fenster als "open" gilt (= if-condition)
Und dann wird eine CoolTuxs-ähnliche Sub durchlaufen um Sprachausgabe und Jabber-Msg zu erstellen und per "msg"-Befehl loszuschicken.
Aber alles aus Gewohnheit mit DOIF.
--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)

Damian

Wenn eine konsequente Namensgebung bei den Fenstern existiert, dann lässt sich so etwas auch ohne Structure erledigen:

define di_Fenster DOIF ([tuer] eq "auf" and [?#"^Window:state:"open"] > 0) (push "Folgende Fenster: [@"^Window:state:"open"] sind noch geöffnet")
attr di_Fenster do always


Bedeutet, wenn Tuer geöffnet wird (oder sonst ein Ereignis, das man abfragen kann) und Anzahl der geöffneten Fenster (Devices beginnend mit "Window") größer 0, dann per push-Nachricht die geöffneten Fenster senden.

siehe: https://fhem.de/commandref_DE.html#DOIF_aggregation
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

juergen012

Hallo,
folgenden Code sende ich, wenn die Alarmanlage eingeschaltet wird:

([du_FensterOffen] eq "on" and [#"FK:open"])(set ECHO_xxxxxxxxxxxxxx speak folgende Fenster sind geöffnet: [di_Fenster_offen]) (set du_FensterOffen off)
DOELSEIF ([#"FK:closed"]) (set [$SELF] initialize)
Fhem unter Proxmox

Sebastian84

Guten Abend.

Ich möchte mit der Eingangstuer offen oder mit Wlan aus das alle Tür und Fensterkontakte die auf sind per push pushover aufs handy landen

Habe das Problemm das ich unterschiedliche Namen habe

in den einen Türen gibt es open für offen und in andern gibt es on für Status

Hier mal die Namen
Balkontuer
Dachfenster_GaestezL.
Dachfenster_GaestezR.
Eingangstuer
Fenster_Bad_1OG
Fenster_Bad_EG
Fenster_Keller
Fenster_Kinderzimmer
Fenster_Keller
Fenster_Kueche
Grosse_Garage
Kellertuer
Kleine_Garage
die möchte ich irgendwie zusammenfügen zur überprüfung wenn ich draußen bin ob was davon noch offen ist.
Kann mir da jemand ein Beispiel geben????
Sammel-Device? wie geht das?
oder devSpec?

laberlaib

Gude,

Du kannst alle in eine STRUCTURE packen und dann die states bei den Mitgliedern mappen, Stichwort:
<struct_type>_map

Und dann per "clientstate_priority" in der Structure selbst einstellen, dass ein "open" reicht um die structure auf open zu stellen.

https://fhem.de/commandref_DE.html#structure

Hab ich so, klappt gut.
--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)

Sebastian84

zusammengefügt habe ich jetzt alle

  Internals:
   ATTR       room
   CFGFN     
   CHANGEDCNT 0
   DEF        room Balkontuer Dachfenster_GaestezL Dachfenster_GaestezR Dachfenster_HeidiZ Eingangstuer Fenster_Bad_1OG Fenster_Bad_EG Fenster_Keller Fenster_Kinderzimmer Fenster_Kueche Kellertuer Grosse_Garage Kleine_Garage
   FUUID      5f627473-f33f-cdd4-47b9-e84aa5b0e9ff8b67
   NAME       Haus
   NOTIFYDEV  Kellertuer,Fenster_Bad_1OG,Fenster_Keller,Dachfenster_HeidiZ,Eingangstuer,Kleine_Garage,Balkontuer,Dachfenster_GaestezR,Fenster_Bad_EG,Grosse_Garage,Fenster_Kinderzimmer,Dachfenster_GaestezL,global,Fenster_Kueche
   NR         28421
   NTFY_ORDER 50-Haus
   STATE      ???
   TYPE       structure
Attributes:   



jetzt muss ich doch ein Nenner mit on und open hinbekommen???

und dann?

Müßte ich jetzt nicht nur ein Notify schreiben der bei State: on oder open wenn wlan aus oder Eingangstür auf eine push Naricht schickt

Thyraz

Genau, mit dem map Attribut wie von laberlaib beschrieben.
Beispiel ist in dem Link den er gepostet hat.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

Sebastian84

steh ein bischen auf den Schlauch

unter Atrr. steht nur event map

Kann mir da einer ein genaueres Beispiel geben zu meinen Räumen

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Sebastian84

Hab das jetzt in jeden Fensterkontskt und Türkontskt eingegeben

Internals:
   ATTR       room
   CFGFN     
   CHANGEDCNT 14
   DEF        room Balkontuer Dachfenster_GaestezL Dachfenster_GaestezR Dachfenster_HeidiZ Eingangstuer Fenster_Bad_1OG Fenster_Bad_EG Fenster_Keller Fenster_Kinderzimmer Fenster_Kueche Kellertuer Grosse_Garage Kleine_Garage
   FUUID      5f627473-f33f-cdd4-47b9-e84aa5b0e9ff8b67
   NAME       Haus
   NOTIFYDEV  Kellertuer,Fenster_Bad_1OG,Fenster_Keller,Dachfenster_HeidiZ,Eingangstuer,Kleine_Garage,Balkontuer,Dachfenster_GaestezR,Fenster_Bad_EG,Grosse_Garage,Fenster_Kinderzimmer,Dachfenster_GaestezL,global,Fenster_Kueche
   NR         28421
   NTFY_ORDER 50-Haus
   STATE      undefined
   TYPE       structure
   READINGS:
     2020-09-17 06:08:20   LastDevice      Fenster_Kinderzimmer
     2020-09-17 06:08:20   LastDevice_Abs  Fenster_Kinderzimmer
     2020-09-17 06:08:20   state           undefined
Attributes:
   clientstate_priority on 


Was muss ich jetzt noch machen?