Hauptmenü

myUtils Code Problem

Begonnen von arokh12, 03 April 2015, 14:59:48

Vorheriges Thema - Nächstes Thema

arokh12

Hallo,

ich habe mir folgenden Code in den myUtils geschrieben, damit ich eine Pushnachricht bekomme, wenn der CUL vom System getrennt ist. Der Funktioniert auch soweit ganz gut, bis an dem Punkt wo der CUL433 wieder eingesteckt wird und dann anschließend das notify "auf_CUL433_warten" den Status des CULs nicht richtig auswertet und den Befehl nicht ausführt.

sub CUL433_entfernt(){
my $CUL433 = ReadingsVal("CUL433","state",999);

if (Value("CUL433") ne "Initialized")
{fhem ("define CUL433_abwesend_at at +00:00:30 {if (Value(\"CUL433\") ne \"Initialized\"){fhem (\"set Push msg \'Entferntes Gerät\' \'Der CUL433 wurde vom System entfernt.\' ;; define auf_CUL433_warten notify CUL433:* {fhem (\'set Push msg \'Angeschlossenes Gerät\' \'Der CUL433 wurde am System angeschlossen.\' ;;;; delete auf_CUL433_warten\')}\")}}")}

}


Wo liegt das Problem?

arokh12

KernSani

Spontan ein paar Punkte:
1. Warum definierst du das notify innerhalb der sub und versuchst es dann wieder zu löschen? Definiere es doch ganz normal.
2. du reagierst im notify auf jedes Event des CUL
3. ohne das jetzt genau geprüft zu han, sieht es mir so aus, als würden die Klammern nicht richtig sitzen.

Eigentlich brauchst du doch nur zwei notifies (oder ein DOIF):
Pseudocode:

DOIF ([CUL] ne "Initialized") (send msg "CUL weg")
DOELSEIF ([CUL] eq "Initialized") (send msg "CUL wieder da)

Grüße,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...