FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: sparkiie am 20 August 2018, 08:59:06

Titel: Verständnisproblem bei notify mit if Bedingung
Beitrag von: sparkiie am 20 August 2018, 08:59:06
Ich arbeite mich so langsam in die Materie ein und habe auch schon erste Devices und notify eingerichtet.
Probleme habe ich noch mit meiner Rolladensteuerung. Die Rollos werden  teilweise mit Fernbedienung gesteuert und ich möchte dies in der Rolladensteuerung erfassen, um den Stand der Rollos im FHEM zu sehen.

Das up und down habe ich bereits erfasst, was auch funktioniert:
IT_0FFF00000F:off set Rollo1 extern closed

Aus dem Wiki habe ich mir folgendes notify zusammengebastelt, um auch das Stop Signal (entspricht dem vorangegangenem Signal) zu erkennen. Leider funktioniert dies noch nicht?!
IT_0FFF00000F:on
IF ([Rollo1] ne "drive-up")
(set Rollo1 extern open)ELSE
(set Rollo1 extern stop)
Titel: Antw:Verständnisproblem bei notify mit if Bedingung
Beitrag von: 87insane am 20 August 2018, 09:37:37
Hi,

du bist ja nach hier umgezogen. Hatten ja im Modul Bereich schon einiges hin und her geschrieben.
Zuerst, bitte mal das notify an sich verstehen:
https://wiki.fhem.de/wiki/Notify (https://wiki.fhem.de/wiki/Notify)

Ich dachte dein IT kann kein off? Bin etwas verwundert, da du ja für Start/Stop jeweils ON sendest.

define az_rollo_manuell_ab notify HierDasWirklicheRollo:HierDasAuslösendeReading:.* {\
if (Value("HierDerNameDesRolloModulsFürDiesesRollo") ne "drive-down") {\
  fhem("set HierDerNameDesRolloModulsFürDiesesRollo extern closed");;;;\
}\
elsif (Value("HierDerNameDesRolloModulsFürDiesesRollo") eq "drive-down") {\
  fhem("set HierDerNameDesRolloModulsFürDiesesRollo extern stop");;;;\
}\
}


HierDasWirklicheRollo: Also dein IT
HierDerNameDesRolloModulsFürDiesesRollo: Hier spreche ich von dem Modul. Du hast immer für jedes Rollo das Tatsächliche Gerät zum steuern und einmal ein Gerät für das Rollo Modul.

Bei mir ist das z.B. so:
ESPEasy_az_rollo: Wirkliche Steuereinheit / ESPeasy Schalter an der Wand der mit WLan eingebunden ist.
az_rollo: Rollo Modul Geräte Name.

Dies wäre dann nur eine Bedingung, da du das ja erstmal testen wolltest. Ich würde wie es im Ursprung vorgesehen ist aber eine zweite Abfrage einbauen. Wie im anderen Thread schon gesagt, würde ich bei deiner Konstellation das ReadingsAge nehmen.
Titel: Antw:Verständnisproblem bei notify mit if Bedingung
Beitrag von: CoolTux am 20 August 2018, 09:44:05
Vielleicht solltet Ihr beiden erstmal klären ob Ihr das FHEM IF Modul nehmen wollt oder mit Perl if arbeiten möchtet. Ist ein riesen unterschied.
Titel: Antw:Verständnisproblem bei notify mit if Bedingung
Beitrag von: 87insane am 20 August 2018, 10:22:51
Naja - Das oben angehangene Script läuft ja bei mir. Wie er das am Ende machen will, ist mir bisher unschlüssig.
Da wir im RolloModul Thread schon schrieben, denke ich, ist es ihm egal - Solange es läuft.
Titel: Antw:Verständnisproblem bei notify mit if Bedingung
Beitrag von: CoolTux am 20 August 2018, 10:29:26
Zitat von: 87insane am 20 August 2018, 10:22:51
Naja - Das oben angehangene Script läuft ja bei mir. Wie er das am Ende machen will, ist mir bisher unschlüssig.
Da wir im RolloModul Thread schon schrieben, denke ich, ist es ihm egal - Solange es läuft.

Da gebe ich Dir Recht. Dennoch sollte der Threadersteller wissen was er da macht und wie. Er muß verstehen was die Unterschiede von den beiden Varianten sind und das das eine mit dem anderen so gar nichts zu tun hat.
Sonst steht er bald wieder auf der Matte mit selbigen Zusammenhang  ;)
Titel: Antw:Verständnisproblem bei notify mit if Bedingung
Beitrag von: Otto123 am 20 August 2018, 10:43:29
Hallo sparkiie,

generell ist es keine gute Idee solche Fragmente zu posten, am Besten ist immer ein list nameDesNotify, oder wie dem Fall hier wenigsten die Raw Def
Es ist auch keine gute Idee, nach dem regExp sofort einen Zeilenumbruch zu machen. Es scheint zwar bei Dir noch ein Leerzeichen zu stehen, aber das vergisst man dann mal schnell. Und ich weiß nicht wie tolerant das IF Modul gegen fehlenden Leerzeichen ist, in der Doku (https://commandref.fhem.de/#IF) steht es so
IT_0FFF00000F:on IF ([Rollo1] ne "drive-up") (set Rollo1 extern open) ELSE (set Rollo1 extern stop)


Gruß Otto
Titel: Antw:Verständnisproblem bei notify mit if Bedingung
Beitrag von: sparkiie am 20 August 2018, 17:34:53
ZitatIch dachte dein IT kann kein off? Bin etwas verwundert, da du ja für Start/Stop jeweils ON sendest.
Das Rollo kann on und auch off. Zum stoppen muss aber der selbe Befehl nochmal gesendet werden. Beim Hochfahren muss ich also nochmal on und beim Herunterfahren nochmal off senden.

ZitatDa wir im RolloModul Thread schon schrieben, denke ich, ist es ihm egal - Solange es läuft.
Grundsätzlich ist mir der Weg schon egal, Hauptsache es funktioniert.
Beim if mit Perl ist mir die Gefahr von fehlenden Zeichen ([{}]) zu hoch, deshalb wollte ich es lieber mit IF probieren. Das IF scheint mir auch näher am VBA zu sein, damit kenne ich mich etwas aus.

ZitatUnd ich weiß nicht wie tolerant das IF Modul gegen fehlenden Leerzeichen ist, in der Doku steht es so
Mir scheint es ist nicht so tolerant. Der einzige Unterschied zwischen deiner (FUNKTIORIENDEN) Variante und meiner sind die fehlenden Leerzeichen.

Vielen Dank nochmal an alle Beteiligten!