at Befehl mit einem dummy ein- und ausschalten

Begonnen von oniT, 23 Juni 2013, 18:16:52

Vorheriges Thema - Nächstes Thema

oniT

Hallo Leute,

ich verzweifle eben an etwas, wo ich dachte es ist ganz einfach da es ja eine vielzahl von Beispielen gibt. Allerdings habe ich keines mit der Ausführung des

Folgende Abfrage:


define timer_test at +*00:02:00 {Test_Daten()};;\
 {Test_Filter ("Wert");;\
}


(wobei Test ein Code in der 99_myUtils.pm)

wollte ich so erweitern:


define timer_test at +*00:02:00 {\
 if(Value("Test_Dummy" eq "Aktiv"));;\
 {Test_Daten()};;\
 {Test_Filter ("Wert");;\
 }\
}


dass die Ausführung mit einem Schalter aktiv oder inaktiv gesetzt werden kann. Allerdings geht es nicht. Es wird nichts ausgeführt. Würde bitte mal jemand drüber schauen wo das Problem ist?

Danke

Gruß,
TinoB
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

fhainz

Hallo!

Versuchs mal so

define timer_test at +*00:02:00 {\
 if(Value("Test_Dummy" eq "Aktiv")) {\
   Test_Daten();;\
   Test_Filter ("Wert");;\
 }\
}


Grüße


oniT

Hallo,

geht leider auch nicht. Ich habe zur Vorsicht auch den Value auf ne "Inaktiv" gesetzt, nicht das der Wert vom Dummy falsch gesetzt ist. Hilft auch nichts.

Gruß,
TinoB
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

Puschel74

Hallo,

dann versuch doch mal das:

+*00:02:00 {
  my $wert = Value("Test_Dummy");
  Log 3,("Dummy hat ".$wert);
  if(Value($wert eq "Aktiv")) {
   Log 3,("If wurde geprüft");
   Test_Daten();
   Test_Filter ("Wert");
 }
}


Es genügt wenn du das in das DEF des at kopierst - ich bearbeite nur das DEF und kümmer mich nicht um Zeilenabschlüsse.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

fhainz

Zitat von: Puschel74 schrieb am So, 23 Juni 2013 20:31Es genügt wenn du das in das DEF des at kopierst - ich bearbeite nur das DEF und kümmer mich nicht um Zeilenabschlüsse
Guter Tipp Danke!

oniT

Hi Puschel,

ja es wird

3: Dummy hat Aktiv

zurück gegeben. Allerdings nicht der 2.Log mit der Prüfung. Jetzt versteh ich nichts mehr. Zumindest der 2.Log muss doch noch zurück gegeben werden. Das ist doch ein ganz einfache Abfrage.

Gruß,
TinoB
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

Puschel74

Hallo,

mach mal ein update und dann ein shutdown restart.
Manchmal bewirkt das Wunder ;-)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

oniT

Hallo Puschel,

ich habe eben bemerkt, dass das nicht gehen kann. Ich habe den Code so gändert:


+*00:02:00 {
  my $wert = Value("Test_Dummy");
  Log 3,("Dummy hat ".$wert);
  if($wert eq "Aktiv") {
   Log 3,("If wurde geprüft");
   Test_Daten();
   Test_Filter ("Wert");
 }
}


und jetzt kommen auch die Logeinträge als auch der Wert wird übergeben. Getestet mit "Aktiv" und "Inaktiv".

Allerdings was ich nicht verstehe, es ist doch bis auf die Abfrage des Value

if(Value("Test_Dummy" eq "Aktiv"))

nichts anders. Oder aber muss es so heißen?

if(Value("Test_Dummy") eq "Aktiv")))

Das wäre die Erklärung.

Edit: Ja korrekt, so ist es richtig:
if(Value("Test_Dummy") eq "Aktiv")

Danke

Gruß,
TinoB
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

Puschel74

Hallo,

Fehler von mir - sorry.

Mit
Zitatmy $wert = Value("Test_Dummy");
wird der Wert ja schon in $wert geschrieben
Damit

 if(Value($wert eq "Aktiv")) {
kann die Abfrage natürlich nicht klappen sondern

 if ($wert eq "Aktiv") { ist natürlich richtig.

Sorry nochmal.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

oniT

kein Problem, ich hätte doch nur am Anfang die if Abfrage:


define timer_test at +*00:02:00 {\
 if(Value("Test_Dummy" eq "Aktiv"));;\
 {Test_Daten()};;\
 {Test_Filter ("Wert");;\
 }\
}


richtig setzen müssen ;-) Aber manchmal sieht man man einfach nicht.

Danke

Gruß,
TinoB
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP