FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Sebastian84 am 10 September 2021, 13:22:05

Titel: [GELÖST]Structure erstellen
Beitrag von: Sebastian84 am 10 September 2021, 13:22:05
Guten Tag
Ich möchte gerne ne Structure erstellen für Anwesenheit.
Damit ich ein Notify schreiben kann wenn Keiner da und Haus zu eine Nachricht kommt Haus ist zu
{if(ReadingsVal("handy_sebastian","state","n.a.") eq "absent" && ReadingsVal("handy_patricia","state","n.a.") eq "absent" && ReadingsVal("handy_oma","state","n.a.") eq "absent
Danke schon mal
Titel: Antw:Structure erstellen
Beitrag von: betateilchen am 10 September 2021, 13:30:34
Zitat von: Sebastian84 am 10 September 2021, 13:22:05
Ich möchte gerne ne Structure erstellen für Anwesenheit.
Damit ich ein Notify schreiben kann

und was hindert Dich jetzt konkret an Deinem Vorhaben?

https://commandref.fhem.de/#structure
https://commandref.fhem.de/#notify
Titel: Antw:Structure erstellen
Beitrag von: Christoph Morrison am 10 September 2021, 18:37:37
Oder du ziehst es gleich größer auf und nimmst Residents dafür.
Titel: Antw:Structure erstellen
Beitrag von: Sebastian84 am 10 September 2021, 23:47:34
   define Haus_abgeschlossen Notify structure_test:absent {if(ReadingsVal("Haus","state","n.a.") eq "closed"){fhem(\ " set pushmsg msg 'Haus' 'Alle Fenster,Türen und Garagen geschlossen' 'sebastian' 2 'siren'\)}

habe jetzt mal ne Structure erstellt. Leider kommt immer ne Fehlermeldung wenn ich das eingebe
Titel: Antw:Structure erstellen
Beitrag von: MadMax-FHEM am 10 September 2021, 23:51:01
Logisch, weil dein define ja auch falsch ist:

Zitat von: commandref
define <name> structure <struct_type> <dev1> <dev2> ...
EDIT: dachte (zuerst) du hast ein Problem mit dem Definieren der structure... ;)

Was du hier hast ist eher ein notify aber notify != Notify!
EDIT: vermutlich steht im fhem Log sowas wie "unknown Module Notify" ;)

EDIT: hmm ist wohl egal ob Notify oder notify...

Zitat von: Sebastian84 am 10 September 2021, 23:47:34
Leider kommt immer ne Fehlermeldung wenn ich das eingebe
EDIT: wäre ja viel zu einfach, wenn du die Fehlermeldung gepostet hättest... ;)

UND: hast du jetzt eine structure? Wo ist diese?

Also list structure_test (das soll ja wohl die structure sein?)
EDIT: wenn die structure tut, dann ist nat. kein list nötig ;)

EDIT:
und das hier stimmt ja wohl auch nicht
Zitat
{fhem(\ " set pushmsg msg 'Haus' 'Alle Fenster,Türen und Garagen geschlossen' 'sebastian' 2 'siren'\)}
eher so:

{fhem("set pushmsg msg 'Haus' 'Alle Fenster,Türen und Garagen geschlossen' 'sebastian' 2 'siren' ")}

Wobei ich jetzt nicht weiß wozu die einfach-Hochkomma sind und ob die an den Stellen notwendig sind.
ABER: einfach den Befehl, der in der FHEMWeb-Zeile funktioniert in fhem("HIER DEN BEFEHL") packen...
EDIT: und du musst nat. auch 2x geschweift "zu machen", wenn du 2x geschweift "auf machst"!

EDIT: so gibt es zumindest (bei mir) keinen Fehler:

define Haus_abgeschlossen notify structure_test:absent {if(ReadingsVal("Haus","state","n.a.") eq "closed"){fhem("set pushmsg msg 'Haus' 'Alle Fenster,Türen und Garagen geschlossen' 'sebastian' 2 'siren' ")}}

aber wie geschrieben habe ich keine Ahnung bzgl. der "einzel-Hochkomma"...

Gruß, Joachim
Titel: Antw:Structure erstellen
Beitrag von: betateilchen am 11 September 2021, 12:19:52
Zitat von: MadMax-FHEM am 10 September 2021, 23:51:01
EDIT: wäre ja viel zu einfach, wenn du die Fehlermeldung gepostet hättest... ;)

Can't find string terminator '"' anywhere before EOF at (eval 2391) line 1.
Titel: Antw:Structure erstellen
Beitrag von: MadMax-FHEM am 11 September 2021, 12:35:28
Zitat von: betateilchen am 11 September 2021, 12:19:52
Can't find string terminator '"' anywhere before EOF at (eval 2391) line 1.

Ja aber wäre es nicht "netter" (hilfreicher) gewesen, wenn Sebastian84 selber die (komplette) Fehlermeldung gepostet hätte...
...statt es (wie vielfach "hier im Forum") "einen" oder "nen" Fehler zu nennen  ;D

Gruß, Joachim
Titel: Antw:Structure erstellen
Beitrag von: betateilchen am 11 September 2021, 13:20:35
Zitat von: MadMax-FHEM am 11 September 2021, 12:35:28
Ja aber wäre es nicht "netter" (hilfreicher) gewesen, wenn ...

über sowas denkst Du noch nach? Zeitverschwendung  8)
Titel: Antw:Structure erstellen
Beitrag von: Sebastian84 am 11 September 2021, 23:23:25
     
Internals:
   DEF        handy_sebastian:Abwesend {if(ReadingsVal("Haus","state","n.a.") eq "closed"){fhem("set pushmsg msg 'Haus' 'Alle Fenster,Türen und Garagen geschlossen' 'sebastian' 2 'siren' ")}}
   FUUID      613bd7bd-f33f-cdd4-3097-955a24dc58758f7d
   NAME       Haus_abgeschlossen
   NOTIFYDEV  handy_sebastian
   NR         345
   NTFY_ORDER 50-Haus_abgeschlossen
   REGEXP     handy_sebastian:Abwesend
   STATE      2021-09-11 23:15:09
   TRIGGERTIME 1631394909.79566
   TYPE       notify
   READINGS:
     2021-09-11 23:12:14   state           active
Attributes:/code]
Ich habe jetzt mal nur mein Handy ausprobiert das ich
Eine push Nachricht zu bekommen.
Bei mir steht Abwesend und Haus closed
Und pushover connected
Aber trotzdem bekomm ich keine Nachricht
Titel: Antw:Structure erstellen
Beitrag von: MadMax-FHEM am 12 September 2021, 00:12:17
Wo sind die lists von Haus und handy_sebastian?

Wo sind die zugehörigen Ausschnitte aus dem Eventmonitor?

Tatsächlich Abwesend? Nicht absent?
Hast du ein eventMap?
Oder anderes?
(würde man mit einem list sehen)

Weil: es ist nicht interessant WAS im READING steht, sondern OB und wenn WAS für ein EVENT kommt!

EDIT: notify "selbst gebastelt" oder über Eventmonitor erstellt/erstellen lassen?

Wenn du das hier in FhemWeb-cmd eingibst:

{fhem("set pushmsg msg 'Haus' 'Alle Fenster,Türen und Garagen geschlossen' 'sebastian' 2 'siren' ")}

bekommst du eine Nachricht?

EDIT: weil wie bereits geschrieben "irritieren" mich die "einfach-Hochkommas" aber ich weiß ja nicht wie eine Nachricht zu verschicken geht. Das musst schon du wissen.

Gruß, Joachim
Titel: Antw:Structure erstellen
Beitrag von: Sebastian84 am 12 September 2021, 07:37:27
   Internals:
   ATTR       room
   CHANGEDCNT 260
   DEF        room Balkontuer Dachfenster_GaestezL Dachfenster_GaestezR Dachfenster_HeidiZ Eingangstuer Fenster_Bad_1OG Fenster_Kinderzimmer Fenster_Bad_EG Fenster_Keller  Fenster_Kueche  Kleine_Garage Grosse_Garage Fenster_Schlafzimmer Kellertuer  Fensterkontakt_Bad_2.OG
   FUUID      5f627473-f33f-cdd4-47b9-e84aa5b0e9ff8b67
   NAME       Haus
   NOTIFYDEV  Dachfenster_GaestezL,Kleine_Garage,Fenster_Schlafzimmer,Dachfenster_GaestezR,Fenster_Bad_EG,Balkontuer,Fenster_Kinderzimmer,Kellertuer,Fensterkontakt_Bad_2.OG,Fenster_Bad_1OG,Fenster_Kueche,Eingangstuer,global,Fenster_Keller,Grosse_Garage,Dachfenster_HeidiZ
   NR         160
   NTFY_ORDER 50-Haus
   STATE      closed
   TYPE       structure
   READINGS:
     2021-09-12 07:29:29   LastDevice      Fenster_Bad_1OG
     2021-09-12 07:29:29   LastDevice_Abs  Fenster_Bad_1OG
     2021-09-12 07:29:29   state           closed
Attributes:
   clientstate_behavior relative
   clientstate_priority open|on closed|off
   devStateIcon open:ampel_rot closed:ampel_gruen
   event-on-change-reading .*
   group      Anwesenheit
   room       8_Zuhause 


 
Internals:
   ADDRESS    192.168.0.107
   DEF        lan-ping 192.168.0.107 5
   FUUID      5ecab806-f33f-b383-7dc6-8d81b875ebaea5e5
   INTERVAL_NORMAL 5
   INTERVAL_PRESENT 5
   MODE       lan-ping
   NAME       handy_sebastian
   NOTIFYDEV  global
   NR         94
   NTFY_ORDER 50-handy_sebastian
   STATE      Zuhause
   TYPE       PRESENCE
   READINGS:
     2021-09-11 04:00:21   model           lan-ping
     2021-09-12 07:32:02   presence        present
     2021-09-12 07:32:02   state           present
   helper:
     CURRENT_STATE present
Attributes:
   eventMap   absent:Abwesend present:Zuhause
   group      Anwesenheit
   room       8_Zuhause
   userattr   presence presence_map structexclude structure structure_map 
   
Notify ist selbst gebastelt
Leider kommt auchbkeine Naricht unter Web cmd
 
Events (Filter: .*)   FHEM log   ResetCreate/Modify Device


2021-09-12 08:47:32 PRESENCE handy_sebastian Abwesend
2021-09-12 08:47:32 PRESENCE handy_sebastian presence: Abwesend 



Titel: Antw:Structure erstellen
Beitrag von: MadMax-FHEM am 12 September 2021, 09:43:23
Naja, wenn auch bei Eingabe von dem "verschicke Nachricht" Code keine Nachricht kommt, dann stimmt da eben was nicht!

Ich nutze aber msg pushmsg nicht.
EDIT: was ist pushmsg überhaupt für ein Device? list pushmsg wäre interessant oder wenigstens der TYPE...
EDIT: das hier? https://wiki.fhem.de/wiki/Pushover
Daher weiß ich nicht wie man damit Nachrichten sendet.

D.h. dank eventMap sollte das notify tun (besser nicht selbst bauen, sondern mittels Eventmonitor bauen lassen)...

EDIT: sicher gehen kann man, wenn man (zu Beginn einfach erst mal) eine Logausgabe einbaut: Log3(undef, 3, "NOTIFYNAME hat ausgelöst und Inhalt war: $EVENT")

Du musst also noch rauskriegen wie das Senden richtig lauten muss.
Hast du schon mal mittels FhemWeb-cmd eine Nachricht versendet?

EDIT: wenn ja, wie lautet(e) die Syntax?

EDIT: etwas fischen im Trüben aber es gab ja schon immer mal wieder "Probleme" mit Umlauten etc. also evtl. mal Türen -> Tueren... Das device sebastian gibt es? Weil an sich sollte die Syntax eigentlich passen. Vors. es handelt sich um oben verlinktes Modul zum Senden...
Wobei mich das hier ein wenig "verwirrt":
Zitat von: wiki
define notify_fhem_reload notify global:INITIALIZED set pushmsg msg 'fhem' 'Ich wurde neu geladen! - $EVENT' '' 0 ''
vs.
Zitat von: wiki
fhem("set pushmsg msg 'fhem' 'Das Fenster wurde geschlossen!' 0 ");
Also muss man nun Dinge wie "device" oder/und "sound" durch '' "ersetzen" oder nicht. Auch das ist fraglich und könnte Schuld sein, warum keine Nachricht kommt.
EDIT: ist bei dir wohl nicht relevant, da du ja alle Parameter hast (soweit ich das beurteilen kann)...
Übrigens hast du hier doch ein Aufrufbeispiel mittels fhem("set ...") ;)
Wie geschrieben: ich verwende das nicht, daher kann ich nur raten...

Gruß, Joachim
Titel: Antw:Structure erstellen
Beitrag von: MadMax-FHEM am 12 September 2021, 11:59:49
Andere Frage (hatte ich doch richtig im Kopf ;)  ):

versuchst du immer noch/wieder dasselbe Thema (immer wieder mal von vorne, erneut [unstrukturiert]) anzugehen?
https://forum.fhem.de/index.php/topic,114240.msg1085036.html#msg1085036

Funktioniert das doch nicht?
Wobei kann ja nicht sein ;) https://forum.fhem.de/index.php/topic,114240.msg1094100.html#msg1094100

Oder wo ist da jetzt genau der Unterschied?
Die "Aufgabe" liest sich ähnlich...
Und wenn ähnlich/gleich, dann ist das https://forum.fhem.de/index.php/topic,114240.msg1094103.html#msg1094103 wohl leider nicht passiert :-\
(hattest ja eigentlich alle Hilfsmittel schon mal erläutert bekommen, oder? Siehe z.B.: https://forum.fhem.de/index.php/topic,114240.msg1087120.html#msg1087120 )

Dort hast du doch eine Nachricht wie sie (eventuell?) ja funktioniert drin:
Zitat von: https://forum.fhem.de/index.php/topic,114240.msg1085036.html#msg1085036"
fhem("set pushmsg msg 'Alarmanlage' 'Kleine Garage unbefugt offen' 'sebastian' 2 'siren' 30 3600 ")
EDIT: geht/ging das nun oder (doch) nicht? Wenn du einfach diese Nachricht schicken lässt, also nur zum Test. Vorher halt mal mittels FhemWeb-cmd testen:

{fhem("set pushmsg msg 'Alarmanlage' 'Kleine Garage unbefugt offen' 'sebastian' 2 'siren' 30 3600 ")}

Wenn die Aussage am Ende des Threads (dass es funktioniert) stimmt, dann sollte ja eine Nachricht kommen. Wenn (doch/auch damit) nicht, dann mal prüfen warum nicht (mehr). Und wie (auch schon mal) geschrieben eine Logausgabe einbauen, um zu sehen, ob das "selbstgebaute" notify tatsächlich getriggert wird...

Gruß, Joachim
Titel: Antw:Structure erstellen
Beitrag von: betateilchen am 12 September 2021, 12:08:26
Popcorn?
Titel: Antw:Structure erstellen
Beitrag von: Sebastian84 am 12 September 2021, 23:22:53
    Internals:
   CFGFN     
   DEF        handy_sebastian:absent {if(ReadingsVal("Haus","state","n.a.") eq "closed"){fhem "set pushmsg msg 'Haus' 'Alle Fenster und Türen zu' 'sebastian' 0 'bugle' "}}
   FUUID      613e5fde-f33f-cdd4-a8d0-e52e17004c8d7f41
   NAME       Haus_abgeschlossen1
   NOTIFYDEV  handy_sebastian
   NR         21169
   NTFY_ORDER 50-Haus_abgeschlossen1
   REGEXP     handy_sebastian:absent
   STATE      active
   TRIGGERTIME 1631481529.55392
   TYPE       notify
   READINGS:
     2021-09-12 23:18:51   state           active
Attributes:
   room       8_Zuhause



Damit habe ich es jetzt hinbekommen.
Aber leider werde ich jetzt mit Narichen geflutet. Ich würde gerne nur eine Naricht bekommen.
Ich wollte auch gerne handy_oma dazu nehem. Nur wenn ich die einzeln eingebe geht der Notify.
Titel: Antw:Structure erstellen
Beitrag von: MadMax-FHEM am 12 September 2021, 23:53:07
event-on-change-reading bei handy_sebastian setzen.

Ich dachte du willst die structure für An-/Abwesenheit nutzen?
Nun doch nicht (mehr)?

Zitat
Nur wenn ich die einzeln eingebe geht der Notify.
Was soll das bedeuten/was meinst du damit?
Wie wäre es denn mit entsprechenden lists, damit man sieht was du meinst...
Soll handy_sebastian und handy_oma jeweils eine Nachricht auslösen? Immer dieselbe? Nur wenn beide abwesend sind? Sehr präzise formuliert von dir... ;)

EDIT: eventuell "sortierst" du dich mal und formulierst mal was GENAU du möchtest inkl. ALLER NEBENBEDINGUNGEN usw.
Und noch mal: ist das hier was Neues? Oder das "alte Problem" erneut? Also das weiter oben verlinkte...

Gruß, Joachim
Titel: Antw:Structure erstellen
Beitrag von: Sebastian84 am 13 September 2021, 00:25:56
Hat jetzt alles super geklappt
Mit structure Anwesenheit
Danke der so guten Hilfe
Titel: Antw:Structure erstellen
Beitrag von: MadMax-FHEM am 13 September 2021, 07:41:48
Zitat von: Sebastian84 am 13 September 2021, 00:25:56
Hat jetzt alles super geklappt
Mit structure Anwesenheit
Danke der so guten Hilfe

Gerne.

Würdest du für andere, die ähnliches vorhaben, deine Lösung posten, danke.

Gruß, Joachim
Titel: Antw:[GELÖST]Structure erstellen
Beitrag von: Sebastian84 am 20 September 2021, 11:54:57
Guten Tag
Ich hab noch eine Frage.
Ich bekomme jetzt auch eine Naricht das das Haus zu ist wenn die Handys abwesend sind mit Ton. Leider kommt im gleichen Moment auch eine andere Naricht (Garage zu)mit ein andern Ton. Das ich immer nachschauen muß ob im Pushover die Naricht Haus zu steht. Kann man die Naricht nicht auch verzögert um ein paar Sekunden schicken? Das ich dann den Ton für die Naricht bekomme? Das ist der Notify der um ein paar Sekunden verzögert werden müßte.    
Anwesenheit1:absent.* {if(ReadingsVal("Haus","state","n.a.") eq "closed"){ fhem "set pushmsg msg 'Haus' 'Alle Fenster,Türen und Garagen geschlossen' 'sebastian' 1 'bugle' "}}   
Titel: Antw:[GELÖST]Structure erstellen
Beitrag von: MadMax-FHEM am 20 September 2021, 12:01:47
Zitat von: MadMax-FHEM am 13 September 2021, 07:41:48
Gerne.

Würdest du für andere, die ähnliches vorhaben, deine Lösung posten, danke.

Gruß, Joachim

Wäre nett (gewesen)...
...und würde auch für weitere Hilfe helfen.


Zitat von: Sebastian84 am 20 September 2021, 11:54:57
Guten Tag
Ich hab noch eine Frage.
Ich bekomme jetzt auch eine Nsricht das das Haus zu ist wenn die Handys abwesend sind mit Ton. Leider kommt im gleichen Moment auch eine andere Naricht (Garage zu)mit ein andern Ton. Das das ich immer nachschauen mus ob im Pushover die Narichg Haus zu steht. Kann man die anarchistischen nicht auch verzögert um ein paar Sekunden schicken? Das ich dann den Ton für die Naricht bekomme? Das ist der Notify der um ein paar Sekunden verzögert werden müßte.    
Anwesenheit1:absent.* {if(ReadingsVal("Haus","state","n.a.") eq "closed"){ fhem "set pushmsg msg 'Haus' 'Alle Fenster,Türen und Garagen geschlossen' 'sebastian' 1 'bugle' "}}   


Trotzdem (obwohl es in einem der vielen Threads bestimmt schon mal geschrieben wurde / bzw. im anderen Thread sowas mittels at-Verzögerung "diskutiert" wurde) hier mal die einfachtse Variante (bzw. wenn man ein komplettes list hätte und es sich doch um ein DOIF handeln würde, dann ginge auch wait):


{ fhem "sleep ein_paar_Sekunden;; set pushmsg msg 'Haus' 'Alle Fenster,Türen und Garagen geschlossen' 'sebastian' 1 'bugle' "}


Bzgl. Strichpunkte kommt es halt drauf an WO/WIE du das eingibst...

myUtils-Sub: ein Strichpunkt
DEF: 2 Strichpunkte (denke ich / so wie gepostet)
RAWDef: 4 Strichpunkte?

Gruß, Joachim
Titel: Antw:[GELÖST]Structure erstellen
Beitrag von: Sebastian84 am 20 September 2021, 14:19:33
Ich hab es so gelöst


  Anwesenheit1:absent.* defmod at_Check_Fenster at +00:00:05 {if(ReadingsVal("Haus","state","n.a.") eq "closed"){ fhem "set pushmsg msg 'Haus' 'Alle Fenster,Türen und Garagen geschlossen' 'sebastian' 1 'bugle' "}}
 
Titel: Antw:[GELÖST]Structure erstellen
Beitrag von: MadMax-FHEM am 20 September 2021, 17:10:04
Ist zwar kein list oder RawDef aber besser als nichts (für die Nachwelt)...

Allerdings verzögerst du nicht die Nachricht, sondern die Prüfung, ob "Haus" "closed" ist ;)

(mein Beispiel verzögert, wie gewünscht, nur das Senden der Nachricht 8)  )

Gruß, Joachim