Hallo,
ich habe meine Gartenbeleuchtung im Vorgarten an und möchte, dass bei Bewegung auch zusätzlich die Beleuchtung an der Haustür angeht.
Dafür gibt es einen Bewegungssensor am Carport, der am Grundstückseingang steht und einen, der oberhalb der Haustür angebracht ist.
Nun möchte ich, dass sich die Haustürbeleuchtung einschaltet, wenn Bewegungsmelder 1 oder 2 Bewegungen registriert und gleichzeitig das Haustürlicht ausgeschaltet ist.
Gedacht habe ich mir das im DEF-Fenster so:
([Bewegungssensor_1:motion.*"] or ([Bewegungssensor_2:motion.*] and [Haustuerbeleuchtung:off])) (,,set Haustuerbeleuchtung on-for-timer 600")
In der fhem.cfg sieht das so aus:
define Bewegung_Vorgarten_Haustuer DOIF ([Bewegungssensor_1:motion.*"] or ([Bewegungssensor_2:motion.*] and [Haustuerbeleuchtung:off])) (,,set Haustuerbeleuchtung on-for-timer 600")
setuuid Bewegung_Vorgarten_Haustuer 5f874a2d-f33f-ef18-4cc8-eb98d8b86f3c1c79
Klingt für mich logisch. Ich sehe, dass die Bewegung registriert wird, die Beleuchtung aber leider auf ,,off" stehen bleibt.
Kann mir jemand helfen?
Danke und viele Grüße
Mandel
defmod Bewegung_Vorgarten_Haustuer notify Bewegungssensor_(1|2):motion.* {CommandSet(undef,'Haustuerbeleuchtung on-for-timer 600') if(ReadingsVal('Haustuerbeleuchtung','state','') eq 'off')}
Danke, betateilchen.
Ich habe meinen Eintrag gelöscht und gegen Deinen ersetzt.
Ich habe trage das über das Def Raw-Fenster ein und erhalte die folgende Fehlermeldung:
syntax error at (eval 34850) line 1, near "))"
Missing right curly or square bracket at (eval 34850) line 1, at end of line
syntax error at (eval 34850) line 1, at EOF
Was habe ich falsch gemacht?
Grüße
Mandel
Doppelte runde Klammer kommt in meinem Code nicht vor.
Kopiere die ganze Zeile und übertrage sie in die FHEM Befehlszeile.
Funktioniert bei mir problemlos und fehlerfrei.
Danke. Ich hatte es nicht zu Ende kopiert und die Klammer händisch eingefügt.
Und dann haben die Augen versagt ::)
Sorry :-\
Klappt :)
Nun ist mir aufgefallen, dass durch den Befehl das Licht der Haustür zu jeder Helligkeit angeht.
Also habe ich versucht das zu ändern:
defmod Bewegung_Vorgarten_Haustuer notify Bewegungssensor_(1|2):motion.* {CommandSet(undef,'Haustuerbeleuchtung on-for-timer 600') if(ReadingsVal('Haustuerbeleuchtung','state','') eq 'off') && (Lichtsensor_(1|2)<80)}
Klappt aber leider nicht und die Suche hat auch nicht geholfen.
Das sollte bedeuten, dass die Beleuchtung der Haustür angeht, wenn Bewegung signalisiert wird und der Helligkeitswert der Lichtsensoren 1 oder 2 unter 80 ist.
Danke noch mal,
Mandel
Zitat von: MandelHL am 16 Oktober 2020, 13:05:12
(Lichtsensor_(1|2)<80)
Klappt aber leider nicht und die Suche hat auch nicht geholfen.
Fehlende perl Grundlagen... die haben nix mit FHEM zu tun. Du solltest auch den Helligkeitswert des/der Lichtsensoren mit ReadingsVal() verarbeiten und in die logische Bedingung einbauen.
Noch simpler kannst Du es aber lösen, wenn Du das Schalten einfach auf den Zeitraum zwischen Sonnenuntergang und Sonnenaufgang begrenzt:
defmod Bewegung_Vorgarten_Haustuer notify Bewegungssensor_(1|2):motion.* {CommandSet(undef,'Haustuerbeleuchtung on-for-timer 600') if(ReadingsVal('Haustuerbeleuchtung','state','') eq 'off' && !isday())}
Das mit dem Sonnenuntergang wollte ich aber gerade nicht machen, weil es später im Winter durchaus auch mal um 14 Uhr stockdunkel ist. Dann ist die Sonne noch nicht untergegangen. Oder morgens um 9 Uhr noch dunkel ist und die Sonne längst aufgegangen ist.
Deshalb wollte ich ganz gerne mit den Helligkeitswerten arbeiten und habe deshalb auch die beiden Bewegungs-/Lichtsensoren.
Wie würde das mit dem Schwellenwert unter 80 aussehen?
Zitat von: MandelHL am 16 Oktober 2020, 14:15:16
Wie würde das mit dem Schwellenwert unter 80 aussehen?
hatte ich doch schon geschrieben...
Zitat von: betateilchen am 16 Oktober 2020, 13:21:55
Du solltest auch den Helligkeitswert des/der Lichtsensoren mit ReadingsVal() verarbeiten und in die logische Bedingung einbauen.
Du solltest auch den Helligkeitswert des/der Lichtsensoren mit ReadingsVal() verarbeiten und in die logische Bedingung einbauen.
Das habe ich mit meiner einfachen Denkweise und der damit verbundenen Programmierung versucht:
defmod Bewegung_Vorgarten_Haustuer notify Bewegungssensor_(1|2):motion.* {CommandSet(undef,'Haustuerbeleuchtung on-for-timer 600') if(ReadingsVal('Haustuerbeleuchtung','state','') eq 'off') && (Lichtsensor_(1|2)<80)}
Aber das klappt ja leider nicht.
&& !isday())}
Dieser Teil scheint sich ja in der Tat auf das Tageslicht gemäß Sonnenuntergang zu beziehen.
Danke,
Mandel
Zitat
Das habe ich mit meiner einfachen Denkweise und der damit verbundenen Programmierung versucht:
(Lichtsensor_(1|2)<80)
Aber das klappt ja leider nicht.
Wo ist hier (wie von betateilchen angemerkt) das ReadingsVal!?
Bzw. da numerischer Wert bzw. numerischer Vergleich eher sogar ReadingsNum...
&& ReadingsNum("Lichtsensor_1","LichtwertReading",100) < 80 && ReadingsNum("Lichtsensor_2","LichtwertReading",100) < 80
Gruß, Joachim
&& ReadingsNum("Lichtsensor_1","LichtwertReading",100) < 80 && ReadingsNum("Lichtsensor_2","LichtwertReading",100) < 80
Das Licht geht leider bei der Haustür nicht an, sondern bleibt aus.
Grüße,
Mandel
Zitat von: MandelHL am 17 Oktober 2020, 00:08:14
&& ReadingsNum("Lichtsensor_1","LichtwertReading",100) < 80 && ReadingsNum("Lichtsensor_2","LichtwertReading",100) < 80
Das Licht geht leider bei der Haustür nicht an, sondern bleibt aus.
Grüße,
Micha
LichtwertReading, so heissen die Readings von deinen Lichtsensoren? Wirklich??
Zitat von: amenomade am 17 Oktober 2020, 00:19:09
LichtwertReading, so heissen die Readings von deinen Lichtsensoren? Wirklich??
Nein, vermutlich nicht!
Aber da ich ja nicht weiß wie es heißt, habe ich es halt so benannt...
@Micha/MandelHL: also etwas mitdenken ist schon erlaubt! Oder: du lieferst ALLE Infos die wir brauchen!
Gruß, Joachim
Zitat von: MandelHL am 17 Oktober 2020, 00:08:14
&& ReadingsNum("Lichtsensor_1","LichtwertReading",100) < 80 && ReadingsNum("Lichtsensor_2","LichtwertReading",100) < 80
Das Licht geht leider bei der Haustür nicht an, sondern bleibt aus.
Grüße,
Micha
Und jetzt sollen wir hellsehen oder wie!? ;)
Also etwas mehr Infos wären schon hilfreich!
Steht etwas im Log!?
Sind die Werte überhaupt BEIDE (weil &&) unter 80!?
Usw.
lists der beteiligten Devices würden helfen!
Dann müsste ich auch nicht Reading-Namen "raten"... ;)
Gruß, Joachim
Sorry, ich dachte, ,,LichtwertReading" wäre auch ein Befehl ::)
Ich habe das jetzt umbenannt in ,,Helligkeitswert_Bewegungssensor_1" und ,,Helligkeitswert_Bewegungssensor_2".
Sind die Werte überhaupt BEIDE (weil &&) unter 80!?
Das soll so nicht sein. Ich hatte das daher erst mit ,,|" programmiert.
Sagen möchte ich damit ,,Wenn Helligkeitssensor_1 oder Helligkeitssensor_2 kleiner als 80 ist und die Haustürbeleuchtung aus ist, dann schalte die Haustürbeleuchtung ein."
Danke und noch mal,
Mandel
Wo sind die lists!!?
Also von mind. einem Bewegungsmelder (besser beide), weil ich nicht glaube, dass die READINGS unterschiedlich heißen!
Bitte mal nachschlagen wie ReadungsVal und ReadingsNum funktionieren!!!
ReadingsNum("DeviceName","ReadingName", Ersatzwert)
Und auch noch mal ein list (bzw. immer nach Änderungen) auch vom notify etz.!
Weil wir spielen hier kein "Blindschach", wo wir gedanklich "nachspielen" wollen was du schreibst, dass du geändert hast...
Oder dann halt so:
&& (ReadingsNum("Lichtsensor_1","LichtwertReading",100) < 80 || ReadingsNum("Lichtsensor_2","LichtwertReading",100) < 80)
EDIT: und Perl lernen wäre auch geschickt! Und auch den Unterschied zu Regex! Dein "gedachtes Oder" war ein "Oder" bzgl. Regex, was an der Stelle überhaupt keinen Sinn macht (und nat. auch nicht funktioniert)!
ESIT: d.h. dein "Oder" war bzgl. der beiden Werte bzgl. Helligkeit, also der oder der ABER dein Perl war mit && also ja, nimm den Werr von dem und dem anderen und beide müssen größer 80 sein... Daher hab ich nur umgesetzt, was du "falscher Nutzung" (Regex statt richtige Perl Befehle) geschrieben hattest... ;)
Gruß, Joachim
Danke für Deine Antworten. Ich taste mich ran und komme mit der Benutzerfläche immer besser zurecht.
Ich hatte das sonst immer direkt per Editor in die fhem.cfg geschrieben, ohne Ahnung davon zu haben.
Dabei habe ich mehr Wirres als mir lieb war geschrieben.
Es ist also wohl tatsächlich gut, dass die Root-Rechte nicht mehr so leicht zu bekommen sind.
Das erspart Euch wohl noch mehr Arbeit mit uns Anfängern, die Ihr eh schon habt :-\
defmod Helligkeitswert_Bewegungssensor_1 dummy
attr Helligkeitswert_Bewegungssensor_1 alias - Sensor 1 Haustür
attr Helligkeitswert_Bewegungssensor_1 group Bewegungssensor Helligkeitswert
attr Helligkeitswert_Bewegungssensor_1 room Außenbeleuchtung,Helligkeitswerte
setstate Helligkeitswert_Bewegungssensor_1 169
setstate Helligkeitswert_Bewegungssensor_1 2020-10-17 10:18:24 state 169
defmod Helligkeitswert_Bewegungssensor_2 dummy
attr Helligkeitswert_Bewegungssensor_2 alias - Sensor 2 Carport
attr Helligkeitswert_Bewegungssensor_2 group Bewegungssensor Helligkeitswert
attr Helligkeitswert_Bewegungssensor_2 room Außenbeleuchtung,Helligkeitswerte
setstate Helligkeitswert_Bewegungssensor_2 164
setstate Helligkeitswert_Bewegungssensor_2 2020-10-17 10:28:49 state 164
Ich hoffe, dass es das ist, was Du meintest.
Und auch noch mal ein list (bzw. immer nach Änderungen) auch vom notify etz.!
Was meinst Du damit? Soll ich das für mich zur Kontrolle machen oder hier posten?
Wie sieht der Befehl dann genau aus? ,,list .* notify"?
Zitat von: MandelHL am 17 Oktober 2020, 10:43:44
Danke für Deine Antworten. Ich taste mich ran und komme mit der Benutzerfläche immer besser zurecht.
Ich hatte das sonst immer direkt per Editor in die fhem.cfg geschrieben, ohne Ahnung davon zu haben.
Dabei habe ich mehr Wirres als mir lieb war geschrieben.
Es ist also wohl tatsächlich gut, dass die Root-Rechte nicht mehr so leicht zu bekommen sind.
Das erspart Euch wohl noch mehr Arbeit mit uns Anfängern, die Ihr eh schon habt :-\
Mach dir mal keinen Kopf!
Ist ja schon gut, wenn "Anfänger" etwas "übernehmen" ;)
Zitat von: MandelHL am 17 Oktober 2020, 10:43:44
Ich hoffe, dass es das ist, was Du meintest.
NEIN! ;)
Sondern: list DeviceName
Weil beim list sieht man auch die Readings, aktuellen Werte etc.
Bei deinem "define-Ausschnitt" sieht man nix (all das [wichtige] nicht ;) )...
EDIT: weil bei deinen "define-Ausschnitten" sieht man zwar den DeviceNamen Helligkeitswert_Bewegungssensor_2 bzw. Helligkeitswert_Bewegungssensor_1 den braucht man auch für das ReadingsVal/ReadingsNum ABER eben auch den ReadingNamen, wo eben die Helligkeit, die du ja vergleichen willst (kleiner 80) drin steht und das braucht man eben AUCH für ReadingsVal/ReadingsNum!
Zitat von: MandelHL am 17 Oktober 2020, 10:43:44
Und auch noch mal ein list (bzw. immer nach Änderungen) auch vom notify etz.!
Was meinst Du damit? Soll ich das für mich zur Kontrolle machen oder hier posten?
Wie sieht der Befehl dann genau aus? ,,list .* notify"?
Gleiches wie oben, list ist immer:
list Devicename
Hier halt dann list notifyName ;)
(beim notify ginge "zur Not" auch der "define-Ausschnitt" ;) )
Gruß, Joachim
Ist es das?
Internals:
DEF 2A00FD
FUUID 5f842189-f33f-ef18-3ca9-e0faef00bafb6919
HMLANGW_MSGCNT 34
HMLANGW_RAWMSG 05010045ED84102A00FD25788A0601B100
HMLANGW_RSSI -69
HMLANGW_TIME 2020-10-17 11:17:52
IODev HMLANGW
LASTInputDev HMLANGW
MSGCNT 34
NAME Bewegungssensor_1
NOTIFYDEV global
NR 22
STATE noMotion
TYPE CUL_HM
chanNo 01
lastMsg No:ED - t:10 s:2A00FD d:25788A 0601B100
protLastRcv 2020-10-17 11:17:52
protRcv 34 last_at:2020-10-17 11:17:52
protSnd 2 last_at:2020-10-17 10:28:06
protState CMDs_done
rssi_at_HMLANGW cnt:34 min:-69 max:-69 avg:-69 lst:-69
READINGS:
2020-10-14 10:25:13 D-serialNr LEQ0240195
2020-10-12 18:30:29 PairedTo 0x25788A
2020-10-12 18:30:30 R-brightFilter 7
2020-10-12 18:30:30 R-captInInterval off
2020-10-12 18:30:30 R-evtFltrNum 1
2020-10-12 18:30:30 R-evtFltrPeriod 1 s
2020-10-12 18:30:30 R-minInterval 240
2020-10-12 18:30:29 R-pairCentral 0x25788A
2020-10-12 18:30:30 R-sign off
2020-10-12 18:30:29 RegL_00. 00:00 02:01 0A:25 0B:78 0C:8A
2020-10-12 18:30:30 RegL_01. 00:00 01:12 02:74 08:00 22:00
2020-10-17 11:17:52 battery ok
2020-10-17 11:17:52 brightness 177
2020-10-12 18:24:15 cfgState updating
2020-10-17 10:28:06 commState CMDs_done
2020-10-17 11:17:52 cover closed
2020-10-17 10:32:08 motion off
2020-10-17 10:28:06 motionCount 77_next:240s
2020-10-17 10:32:08 motionDuration 242
2020-10-12 18:13:23 powerOn 2020-10-12 18:13:23
2020-10-17 11:17:52 recentStateType info
2020-10-17 10:32:08 state noMotion
2020-10-17 10:28:06 trigDst_25788A noConfig
2020-10-17 10:28:06 trigger_cnt 77
helper:
HM_CMDNR 237
mId 005D
peerFriend peerAct,peerVirt
peerOpt 4:motionDetector
regLst 0,1,4p
rxType 28
supp_Pair_Rep 0
cmds:
TmplKey :no:1602915154.18322
TmplTs 1602915154.18322
cmdKey 1:1:0::Bewegungssensor_1:005D:01:
cmdLst:
assignHmKey noArg
clear [(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
deviceRename -newName-
fwUpdate -filename- [-bootTime-]
getConfig noArg
getDevInfo noArg
getRegRaw (List0|List1|List2|List3|List4|List5|List6) [-peerChn-]
peerBulk -peer1,peer2,...- [({set}|unset)]
peerChan -btnNumber- -actChn- [({single})] [({set}|unset)] [actor|remote|both]
raw -data- [...]
regBulk -list-.-peerChn- -addr1:data1- -addr2:data2-...
regSet [(prep|{exec})] -regName- -value- [-peerChn-]
reset noArg
sign [(on|{off})]
tplDel -tplDel-
trgEventL -peer- -condition-
trgEventS -peer- -condition-
trgPressL [(-peer-|{all})]
trgPressS [(-peer-|{all})]
unpair noArg
lst:
condition slider,0,1,255
peer
peerOpt
tplDel
rtrvLst:
cmdList [({short}|long)]
deviceInfo [({short}|long)]
param -param-
reg -addr- -list- [-peerChn-]
regList noArg
regTable noArg
regVal -addr- -list- [-peerChn-]
saveConfig [-filename-]
tplInfo noArg
expert:
def 1
det 0
raw 1
tpl 0
io:
newChn +2A00FD,00,00,00
nextSend 1602926272.33612
prefIO
rxt 2
vccu
p:
2A00FD
00
00
00
mRssi:
mNo ED
io:
HMLANGW:
-65
-65
prt:
bErr 0
sProc 0
sleeping 1
rspWait:
q:
qReqConf
qReqStat
role:
chn 1
dev 1
rssi:
at_HMLANGW:
avg -69
cnt 34
lst -69
max -69
min -69
tmpl:
Attributes:
IODev HMLANGW
alias Bewegungssensor 1 Carport
autoReadReg 4_reqStatus
expert defReg,rawReg
group Bewegungssensor
model HM-Sen-MDIR-O
modelForce HM-Sen-MDIR-O
peerIDs 00000000,
room y
serialNr LEQ0240195
subType motionDetector
Internals:
DEF 2A00DD
FUUID 5f8421ac-f33f-ef18-789f-e0a87eabde6e0679
HMLANGW_MSGCNT 36
HMLANGW_RAWMSG 0501003FF484102A00DD25788A0601B000
HMLANGW_RSSI -63
HMLANGW_TIME 2020-10-17 11:26:55
IODev HMLANGW
LASTInputDev HMLANGW
MSGCNT 36
NAME Bewegungssensor_2
NOTIFYDEV global
NR 23
STATE noMotion
TYPE CUL_HM
chanNo 01
lastMsg No:F4 - t:10 s:2A00DD d:25788A 0601B000
protLastRcv 2020-10-17 11:26:55
protRcv 36 last_at:2020-10-17 11:26:55
protSnd 2 last_at:2020-10-17 10:27:51
protState CMDs_done
rssi_at_HMLANGW cnt:36 min:-64 max:-60 avg:-62.8 lst:-63
READINGS:
2020-10-14 10:20:17 D-serialNr LEQ0240227
2020-10-12 19:52:47 PairedTo 0x25788A
2020-10-12 19:52:47 R-brightFilter 7
2020-10-12 19:52:47 R-captInInterval off
2020-10-12 19:52:47 R-evtFltrNum 1
2020-10-12 19:52:47 R-evtFltrPeriod 1 s
2020-10-12 19:52:47 R-minInterval 240
2020-10-12 19:52:47 R-pairCentral 0x25788A
2020-10-12 19:52:47 R-sign off
2020-10-12 19:52:47 RegL_00. 00:00 02:01 0A:25 0B:78 0C:8A
2020-10-12 19:52:47 RegL_01. 00:00 01:12 02:74 08:00 22:00
2020-10-17 11:26:55 battery ok
2020-10-17 11:26:55 brightness 176
2020-10-12 19:38:17 cfgState updating
2020-10-17 10:27:51 commState CMDs_done
2020-10-17 11:26:55 cover closed
2020-10-17 10:31:53 motion off
2020-10-17 10:27:51 motionCount 72_next:240s
2020-10-17 10:31:53 motionDuration 242
2020-10-12 18:04:25 powerOn 2020-10-12 18:04:25
2020-10-17 11:26:55 recentStateType info
2020-10-17 10:31:53 state noMotion
2020-10-17 10:27:51 trigDst_25788A noConfig
2020-10-17 10:27:51 trigger_cnt 72
helper:
HM_CMDNR 244
mId 005D
peerFriend peerAct,peerVirt
peerOpt 4:motionDetector
regLst 0,1,4p
rxType 28
supp_Pair_Rep 0
cmds:
TmplKey :no:1602915154.21697
TmplTs 1602915154.21697
cmdKey 1:1:0::Bewegungssensor_2:005D:01:
cmdLst:
assignHmKey noArg
clear [(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
deviceRename -newName-
fwUpdate -filename- [-bootTime-]
getConfig noArg
getDevInfo noArg
getRegRaw (List0|List1|List2|List3|List4|List5|List6) [-peerChn-]
peerBulk -peer1,peer2,...- [({set}|unset)]
peerChan -btnNumber- -actChn- [({single})] [({set}|unset)] [actor|remote|both]
raw -data- [...]
regBulk -list-.-peerChn- -addr1:data1- -addr2:data2-...
regSet [(prep|{exec})] -regName- -value- [-peerChn-]
reset noArg
sign [(on|{off})]
tplDel -tplDel-
trgEventL -peer- -condition-
trgEventS -peer- -condition-
trgPressL [(-peer-|{all})]
trgPressS [(-peer-|{all})]
unpair noArg
lst:
condition slider,0,1,255
peer
peerOpt
tplDel
rtrvLst:
cmdList [({short}|long)]
deviceInfo [({short}|long)]
param -param-
reg -addr- -list- [-peerChn-]
regList noArg
regTable noArg
regVal -addr- -list- [-peerChn-]
saveConfig [-filename-]
tplInfo noArg
expert:
def 1
det 0
raw 1
tpl 0
io:
newChn +2A00DD,00,00,00
nextSend 1602926815.72546
prefIO
rxt 2
vccu
p:
2A00DD
00
00
00
mRssi:
mNo F4
io:
HMLANGW:
-59
-59
prt:
bErr 0
sProc 0
sleeping 1
rspWait:
q:
qReqConf
qReqStat
role:
chn 1
dev 1
rssi:
at_HMLANGW:
avg -62.8055555555556
cnt 36
lst -63
max -60
min -64
tmpl:
Attributes:
IODev HMLANGW
alias Bewegungssensor 2 Haustür
autoReadReg 4_reqStatus
expert defReg,rawReg
group Bewegungssensor
model HM-Sen-MDIR-O
modelForce HM-Sen-MDIR-O
peerIDs 00000000,
room y
serialNr LEQ0240227
subType motionDetector
Ja, naja zum Teil ;)
Es wäre halt noch gut ein list des aktuellen notify zu haben...
Ansonsten kann ich halt nur "meinen Teil" anpassen:
&& (ReadingsNum("Bewegungssensor_1","brightness",100) < 80 || ReadingsNum("Bewegungssensor_2","brightness",100) < 80)
EDIT: bedeutet (jetzt), dass einer der beiden unter 80 sein muss (bzw. einer unter 80 "reicht")...
Wobei aktuell (also zur Zeit des lists) BEIDE Werte ÜBER 80 sind ;)
Gruß, Joachim
Es wäre halt noch gut ein list des aktuellen notify zu haben...
Ich weiß nicht, welches Device ich hinter ,,notify" eingeben muss :(
Zitat von: MandelHL am 17 Oktober 2020, 12:15:08
Es wäre halt noch gut ein list des aktuellen notify zu haben...
Ich weiß nicht, welches Device ich hinter ,,notify" eingeben muss :(
Du musst doch wissen WIE du dein notify beim define genannt hast! ;)
Wenn du dem Vorschlag von betateilchen gefolgt bist, dann könnte es Bewegung_Vorgarten_Haustuer heißen.
Also:
list Bewegung_Vorgarten_Haustuer
Ansonsten hilft u.U. auch:
list TYPE=notify
Gruß, Joachim
Zitat von: MandelHL am 17 Oktober 2020, 12:15:08
Ich weiß nicht, welches Device ich hinter ,,notify" eingeben muss :(
Da hat wohl jemand das Grundprinzip eines notify überhaupt noch nicht verstanden.
Vielleicht wirfst Du einfach nochmal einen Blick in die commandref zum Thema notify.
Ohne ein bisschen Grundlagenwissen machst Du es allen Leuten extrem schwer, die Dir helfen wollen.
Jetzt bin ich verwirrt ;)
Ich hatte gedacht, dass er nicht weiß wie sein notify heißt, weil er sollte doch ein list liefern ;)
Wir werden sehen...
Gruß, Joachim
Zitat von: MadMax-FHEM am 17 Oktober 2020, 13:11:00
Jetzt bin ich verwirrt
Ich hatte gedacht, dass er nicht weiß wie sein notify heißt, weil er sollte doch ein list liefern
ok, ich präzisiere... da hat wohl jemand das Grundprinzip von notify oder/und FHEM noch nicht verstanden...
Zitat von: betateilchen am 17 Oktober 2020, 13:14:52
ok, ich präzisiere... da hat wohl jemand das Grundprinzip von notify oder/und FHEM noch nicht verstanden...
Ging (in erster Linie) nicht "gegen" dich ;)
War mir nur auf deine Anmerkung hin nicht mehr sicher wo nun das Problem mit dem notify oder dem list dazu liegt ;)
Gruß, Joachim
Ohne ein bisschen Grundlagenwissen machst Du es allen Leuten extrem schwer, die Dir helfen wollen.
... und mir auch ...
Internals:
DEF defmod Bewegung_Vorgarten_Haustuer notify Bewegungssensor_(1|2):motion.* {CommandSet(undef,'Haustuerbeleuchtung on-for-timer 600') if(ReadingsVal('Haustuerbeleuchtung','state','') eq 'off') && ReadingsNum("Lichtsensor_1","Helligkeitswert_Bewegungssensor_1",100) < 80 || ReadingsNum("Lichtsensor_2","Helligkeitswert_Bewegungssensor_2",100) < 80
FUUID 5f8765a3-f33f-ef18-d921-17d2ef80686ed22c
NAME Bewegung_Vorgarten_Haustuer
NR 95
NTFY_ORDER 50-Bewegung_Vorgarten_Haustuer
REGEXP defmod
STATE active
TYPE notify
READINGS:
2020-10-17 08:12:29 state active
Attributes:
Ich dachte, das ist das gleiche wie das, das ich schon gepostet hatte - nur ohne den ,,List"-Befehl.
Deshalb hatte ich das nicht noch mal gepostet.
Es sei denn, Ihr sagt, dass das auch wieder falsch ist ::)
Grüße,
Mandel
Bitte nicht blind kopieren / schreiben, sondern auch versuchen, es zu verstehen.
ReadingsNum("Lichtsensor_1","Helligkeitswert_Bewegungssensor_1",100)
ReadingsNum("<DEVICE>","<READING DES DEVICES>",100)
Bedeutet numerischen Wert vom Reading "Helligkeitswert_Bewegungssensor_1" des Devices namens "Lichtsensor_1"
Hast Du ein Device, das "Lichtsensor_1" heisst? Ich dachte es wäre "Bewegungssensor_1" laut Post hier:
https://forum.fhem.de/index.php/topic,115020.msg1093207.html#msg1093207
Hat dieses Device Bewegungssensor_1 ein Reading "Helligkeitswert_Bewegungssensor_1"? Ich dachte es hätte eher ein Reading "brightness".
ZitatInternals:
DEF 2A00FD
FUUID 5f842189-f33f-ef18-3ca9-e0faef00bafb6919
HMLANGW_MSGCNT 34
HMLANGW_RAWMSG 05010045ED84102A00FD25788A0601B100
HMLANGW_RSSI -69
HMLANGW_TIME 2020-10-17 11:17:52
IODev HMLANGW
LASTInputDev HMLANGW
MSGCNT 34
NAME Bewegungssensor_1
NOTIFYDEV global
NR 22
STATE noMotion
TYPE CUL_HM
...
rssi_at_HMLANGW cnt:34 min:-69 max:-69 avg:-69 lst:-69
READINGS:
...
2020-10-12 18:30:30 RegL_01. 00:00 01:12 02:74 08:00 22:00
2020-10-17 11:17:52 battery ok
2020-10-17 11:17:52 brightness 177
2020-10-12 18:24:15 cfgState updating
2020-10-17 10:28:06 commState CMDs_done
2020-10-17 11:17:52 cover closed
Siehe Post von Joachim hier: https://forum.fhem.de/index.php/topic,115020.msg1093212.html#msg1093212
Zitat&& (ReadingsNum("Bewegungssensor_1","brightness",100) < 80 || ReadingsNum("Bewegungssensor_2","brightness",100) < 80)
Ist das komplett kopiert?
Da fehlen am Ende Klammern.
Und: du musst die beiden ODER-Bedingungen klammern!
(so wie ich es gepostet hatte)
Und/and/&& vor Oder/or/||
Wie bei Mathe: Punkt vor Strich!
Und: deine verwendeten ReadingsVal stimmen doch auch nicht!
Und warum ReadingsVal, wenn ich schon mindestens 2x ReadingsNum gepostet hatte UND auch erläutert habe warum (in diesem Fall) ReadingsNum "besser" ist...
Also bitte: in Ruhe noch mal unsere Posts lesen!
Nachdenken und einlesen!
Und dann in Ruhe richtig zusammenbauen...
Das Ergebnis ausprobieren.
Wenn es tut, dann posten für die "Nachwelt" und wenn nicht, dann damit wir weiterhelfen können...
Gruß, Joachim
(OFFTOPIC) Ich bewundere eure Geduld!!!!!
Gruß
Jürgen K.
Zitat(OFFTOPIC) Ich bewundere eure Geduld!!!!!
Ja, tatsächlich offtopic. Ich bewundere Eure Geduld auch. Danke dafür.
ZitatHast Du ein Device, das "Lichtsensor_1" heisst? Ich dachte es wäre "Bewegungssensor_1" laut Post hier:
Ja, habe ich:
Internals:
DEF ((Bewegungssensor_1:motion.*)|(Bewegungssensor_2:motion.*)) {
if (((Value("Lichtsensor_1") eq "dunkel") || (Value("Lichtsensor_2") eq "dunkel")) && (ReadingsVal("Garten_links","state","off") eq "off")) {
fhem "set SchalterBeleuchtungVorgarten on-for-timer 600";
fhem "set Haustuerbeleuchtung on-for-timer 600";
fhem "set Schuppen_Garten on-for-timer 600";
fhem "set Hochbeet_rechts on-for-timer 600";
fhem "set Hochbeet_links on-for-timer 600";
fhem "set Garten_links on-for-timer 600";
fhem "set Garten_rechts on-for-timer 600";
DebianMail('hinrichsen@lubeca.eu','Gartenbeleuchtung wurde aufgrund von Bewegung eingeschaltet','Die Beleuchtung im Garten wurde fuer 10 Minuten eingeschaltet.');
}
}
FUUID 5f842846-f33f-ef18-46c7-ba35198668bf9428
NAME Bewegung_Vorgarten
NR 64
NTFY_ORDER 50-Bewegung_Vorgarten
REGEXP ((Bewegungssensor_1:motion.*)|(Bewegungssensor_2:motion.*))
STATE 2020-10-17 23:02:52
TRIGGERTIME 1602968572.643
TYPE notify
READINGS:
2020-10-17 22:41:47 state active
Attributes:
group y_notify_Aussenlicht_Bewegung_Vorgarten
room y
Ich habe zwar keine Fehlermeldung, aber mir fällt gerade auf, dass in der ersten Zeile wohl ein ,,|" fehlt.
ZitatUnd warum ReadingsVal, wenn ich schon mindestens 2x ReadingsNum gepostet hatte UND auch erläutert habe warum (in diesem Fall) ReadingsNum "besser" ist...
Habe ich doch so eingesetzt, wie Du es geschrieben hast. Mir war nicht klar, dass das auch für meinen Teil gelten soll, weil da ja kein numerischer Wert abgefragt wird.
if(ReadingsVal('Haustuerbeleuchtung','state','') eq 'off') &&
Hier ist doch ,,ReadingsVal" richtig, oder?
Ich werde mich weiter einlesen und wollte erst einmal die offenen Punkte aufklären.
Ich hoffe, ich habe nichts vergessen.
Viele Grüße
Mandel
Warum jetzt plötzlich Value()!!?
Woher kommt das denn!!?
Value frägt STATE ab!
Also das INTERNAL!
Hat das überhaupt den Zustand "dunkel"!?
Und nein in der ersten Zeile fehlt KEIN | weil dort ist es RegEx und kein Perl ODER...
Und ich dachte "dunkel" bedeutet, dass "brightnes" unter 80 sein soll!!?
Das war mein Vorschlag und auch von amenomade...
Wenn du einfach immer irgendwas neues (von wo auch immer) hier lieferst, wird das nie was...
...weil langsam verliere ICH den Überblick was du willst, welche Devices und Readings beteiligt sind etc.
EDIT: ich würde auch für den "Ersatzwert" NICHT den Wert nehmen, mit dem ich danach vergleiche: (ReadingsVal("Garten_links","state","off") eq "off") weil wenn es das Reading nicht gibt oder beim Auslesen ein Fehler auftritt, dann ist die Bedingung trotzdem wahr und das kannst du doch nicht wollen. Drum habe ich bei meinem Vorschlag bewusst die 100 bei Prüfung auf kleiner 80 gewählt...
EDIT: und die Regex von deinem notify war doch auch schon mal "schlanker": Bewegungssensor_(1|2):motion.* siehe https://forum.fhem.de/index.php/topic,115020.msg1093296.html#msg1093296 warum jetzt wieder so "anders"!!!?
EDIT: warum baust du eigentlich von Post zu Post immer komplett um, neue Sachen rein usw.!? So ist helfen eigentlich unmöglich... Da hilft auch kein Popcorn... ;) Obwohl schon lecker! :)
Sorry, Joachim
Naja... bisher war es immer von irgendwas <80 die Rede. Jetzt hast Du die Anforderungen geändert, dann natürlich ändert sich auch die Lösung.
ich geh mal Popcorn holen...
ZitatWenn du einfach immer irgendwas neues (von wo auch immer) hier lieferst, wird das nie was...
...weil langsam verliere ICH den Überblick was du willst, welche Devices und Readings beteiligt sind etc
Mein USB-Stick ist vor paar Monaten kaputt gegangen. Bis dahin lief das System. Aber die Programmierung ist lange her. Ich habe also die einzelnen Dateien wieder eingespielt und dabei teilweise auf alte Backups zurückgreifen müssen. Leider hatte ich nämlich danach keine Sicherungen gehabt.
Bisher hatte ich alles über WINSCP gemacht und in der fhem.cfg mit ,,include"-Befehlen gearbeitet.
Dabei kamen dann einige Configs raus:
Aktoren_Schalter.cfg, Aktoren_Sensoren.cfg, Beleuchtung_Aussenbereich.cfg
Das sind die Dateien, die die Beleuchtung betreffen.
Jetzt habe ich alles über die fhem-Oberfläche eingespielt. Das hat auch nach der Anleitung von Otto ganz gut geklappt.
Ich habe also nichts Neues eingebracht, allenfalls erst jetzt gepostet. Die Configs sind aber schon ewig so da.
Kurzum und zum Thema ,,Popcorn": Ich gebe auf.
Es funktioniert ja, wenn ich die weitere Bedingung mit der Dunkelheit weglasse. Dann geht das Licht eben auch während des Tages bei Bewegung für 10 Minuten an:
defmod Bewegung_Vorgarten_Haustuer notify Bewegungssensor_(1|2):motion.* {CommandSet(undef,'Haustuerbeleuchtung on-for-timer 600') if(ReadingsVal('Haustuerbeleuchtung','state','') eq 'off')}
Danke für Eure Geduld,
Mandel
Deine Kopier-Orgie habe ich schon auch verfolgt... ;)
Aber jetzt mal ehrlich!
Lies dir doch deine Posts mal durch bzw. vergleiche mal deine geposteten Schnipsel...
Da ist zwischen den einzelnen Posts HIER im Thread (da rede ich ja gar nicht von dem anderen Thread) ja wohl wenig Übereinstimmung...
Das meinte ich mit "immer neuen Dingen"...
Und das mit dem Einschalten bei Dunkelheit wäre ganz einfach zu ergänzen, wenn:
du posten würdest was schon geht (gut da nehme ich mal an das was zuletzt gepostet wurde) und dann WIE du erkennst/erkennen könntest bzw. willst, dass es dunkel ist...
EDIT: weil bzgl. "Dunkel-Erkennung" hab ich echt den Überblick verloren... ;)
Aber wenn es dir so reicht: auch gut...
Gruß, Joachim
Zitat von: MandelHL am 18 Oktober 2020, 00:13:56
Kurzum und zum Thema ,,Popcorn": Ich gebe auf.
Es funktioniert ja, wenn ich die weitere Bedingung mit der Dunkelheit weglasse. Dann geht das Licht eben auch während des Tages bei Bewegung für 10 Minuten an:
Naja, zumindest eine funktionierende einfache Lösung, die das Einschalten auf die Zeit zwischen Sonnenuntergang und Sonnenaufgang begrenzt, gibt es ja immerhin hier im Thread.
Und tagsüber wird es selten so dunkel, dass man im Garten unbedingt Licht braucht.