Komisches Problem mit notify ..

Begonnen von ChrisW, 28 Januar 2013, 09:12:57

Vorheriges Thema - Nächstes Thema

ChrisW



Ich bekomme es nicht hin das er den Status Anwesenheit_Einer nicht auf ON setzt wenn der Status vorher schon ON ist ..
Hintergrund:
Chris ist on
Dadurch ist dann "Einer on"
Tanja geht zusätzlich on
Und Einer wird wieder on geschaltet ... obwohl er schon on war.

Das wiederrum stört alle meine folge Überwachungen auf Anwesenheit_Einer.
Jemand eine Erklärung wieso das nicht klappt ??

# Anwesenheit Einer
define Anwesenheit_Einer dummy
attr Anwesenheit_Einer loglevel 6
attr Anwesenheit_Einer room Anwesenheit
attr Anwesenheit_Einer setList on off

define Anwesenheit_Einer_FileLog FileLog ./log/Anwesenheit_Einer.log Anwesenheit_Einer
attr Anwesenheit_Einer_FileLog logtype text
attr Anwesenheit_Einer_FileLog room Logfiles

define Anwesenheit_Einer_setzen notify Anwesenheit_.*:.* { \
if ((Value("Anwesenheit_Chris") eq "on") || (Value("Anwesenheit_Tanja") eq "on")) { \
fhem ("set Anwesenheit_Einer on") if ("Anwesenheit_Einer" ne "on");; \
} \
if ((Value("Anwesenheit_Chris") eq "off") && (Value("Anwesenheit_Tanja") eq "off")) { \
fhem ("set Anwesenheit_Einer off")if ("Anwesenheit_Einer" ne "off");;\
}\
}


#MAIL BEI ANWESEND ÄNDERUNG
define Mail_abwesend notify Anwesenheit.*:.* { sendNotify ("Das Gerät @ ist % gegangen","@ %","@ %","Handy @ ist Zuhause %",0)}
Raspberry PI3 mit allem möglichen.

Reinerlein

Hi Chris,

in deinem Vergleich vergleichst du, ob der String "Anwesenheit_Einer" ungleich dem String "on" ist. Das ist natürlich immer der Fall. Du musst den Wert mit "on" vergleichen.

Also sowas wieValue("Anwesenheit_Einer") ne "on"

Natürlich nur an die richtige Stelle geschrieben...

Grüße Reinerlein

ChrisW

ahhhh okay Danke nach was herum probieren hab ich es nun geschafft :D
Anwesenheit_.*:.* {
if ((Value("Anwesenheit_Chris") eq "on") || (Value("Anwesenheit_Tanja") ne "on")) {
fhem ("set Anwesenheit_Einer on") if ("Anwesenheit_Einer" eq "on");
}
if ((Value("Anwesenheit_Chris") eq "off") && (Value("Anwesenheit_Tanja") eq "off")) {
fhem ("set Anwesenheit_Einer off")if ("Anwesenheit_Einer" ne "off");
}
}
Raspberry PI3 mit allem möglichen.

ChrisW

wollte das ganze jetzt nochmal versuchen aber nu klappt EQ und NE nicht
.*._Lueften:.*JA  {
fhem (sendNotify ("@ bitte! Zu hohle Luftfeuchte","@ bitte !","1Zeile JA","@ bitte !",2))if (".*._Lueften:.*JA" eq "JA");
}


mit eq passiert Nichts
mit ne passiert was aber IMMER egal ob ja schon gesetzt ist.

Der Status von _Lueften kann JA NEN EGAL sein.

Klappt es vielleicht nicht weil es Dynamisch ist ? Muss ich dafür mit @ arbeiten um das gleich gerät zu Prüfen ?
Ja bei allen 5 _Lueften alle 5 Minuten der Status verändert wird. Wenn dann ALLE JA gehen ?? Gibt das kein Problem?
Raspberry PI3 mit allem möglichen.

ChrisW

Okay wohl doch falsch auch der code oben klappt nicht bei Anwesenheit_Einer :(
Raspberry PI3 mit allem möglichen.

Zrrronggg!

Den Post von Reinerlein hast du gesehen? Da steht drin, was das Problem ist.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

ChrisW

ja klar darafhin habe ich den code ja geändert. Aber irgendwie verstehe ich das wohl noch nicht o_O
Da der jetzige Code nicht mehr Einer auf ON setzt egal was. Egal ob eq oder ne .. wenn ich ne fhem ("set Anwesenheit_Einer on") if ("Anwesenheit_Einer" eq "on");  wieder in ("Anwesenheit_Einer" ne "on") mache dann klappt es aber ON wird dann immer wieder gesetzt,
Was nutzt man den sonst ?? kann man nicht einfach ein = nehmen :P

Anwesenheit_.*:.* {
if ((Value("Anwesenheit_Chris") eq "on") || (Value("Anwesenheit_Tanja") eq "on")) {
fhem ("set Anwesenheit_Einer on") if ("Anwesenheit_Einer" eq "on");
}
if ((Value("Anwesenheit_Chris") eq "off") && (Value("Anwesenheit_Tanja") eq "off")) {
fhem ("set Anwesenheit_Einer off")if ("Anwesenheit_Einer" ne "off");
}
}
Raspberry PI3 mit allem möglichen.

Zrrronggg!

Der Code ist nicht verändert, da stehet immer noch

("Anwesenheit_Einer" ne "off")
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Zrrronggg!

Also ich meine: Du musst auch

if ("Anwesenheit_Einer" eq "on");


anpassen!
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

ChrisW

oha jetzt bin ich ganz verwirrt :(
Also hab beide Zeilen schon herumgetauscht ne eq on / off aber egal wie habe ich immer entweder geht Einer gar nicht mehr ON oder dauerhaft.
Also auch bei dem was du geschrieben hast.
Raspberry PI3 mit allem möglichen.

Reinerlein

Hi Chris,

jaa, ich hatte nur ein Beispiel beschrieben, und geschrieben , dass du das an die entsprechenden Stellen setzen solltest. Natürlich auch an alle :-)
Bzw. du kannst dir auch ein paar IFs sparen...

Also:
Anwesenheit_.*:.* {
if ((Value("Anwesenheit_Chris") eq "on") || (Value("Anwesenheit_Tanja") eq "on")) {
   fhem ("set Anwesenheit_Einer on");
} else {
   fhem ("set Anwesenheit_Einer off");
}


Damit wird, sobald irgendeiner der beiden zuhause ist, der Status auf "on" gesetzt, sonst (also wenn keiner zuhause ist) auf "off".

Grüße Reinerlein

Reinerlein

Hi Chris,

sorry was übersehen.

Hier also nochmal:
Anwesenheit_.*:.* {
if ((Value("Anwesenheit_Chris") eq "on") || (Value("Anwesenheit_Tanja") eq "on")) {
   fhem ("set Anwesenheit_Einer on") if (Value("Anwesenheit_Einer") ne "on");
} else {
   fhem ("set Anwesenheit_Einer off") if (Value("Anwesenheit_Einer") ne "off");
}

Jetzt wird auch nur noch beim Wechsel des Wertes geschaltet.

Grüße Reinerlein

ChrisW

hmm so einfach habe ich anfangs auch gedacht aber mit deinem Code wird Einer gar nicht mehr geschaltet o_O
Raspberry PI3 mit allem möglichen.

ChrisW

Sorry 2. Post noch nicht gesehen :)
Also auch beim 2. wird EINER nicht geschaltet
Raspberry PI3 mit allem möglichen.

ChrisW

Ohaa jetzt spinnt FHEM :D FHEM NEUSTART
und den letzer Code scheint zu klappen ..
Danke ;)
Trotzdem komisch vielleicht klappte daher auch meine ne / eq versuche nicht mehr ? Das wäre eine Erklärung.
Raspberry PI3 mit allem möglichen.