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
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
Oder du ziehst es gleich größer auf und nimmst Residents dafür.
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
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
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.
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
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)
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
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
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
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
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
Popcorn?
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.
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
Hat jetzt alles super geklappt
Mit structure Anwesenheit
Danke der so guten Hilfe
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
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' "}}
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
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' "}}
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