[gelöst] notify UND-Verknüpfungen, Syntax & Semantik

Begonnen von fetzz, 23 Juni 2014, 08:54:05

Vorheriges Thema - Nächstes Thema

fetzz

Hallo.

Bei meiner ersten blutigen Anfängerfrage wurde mir hier schnell geholfen. Vielen Dank.
Ich habe noch einer weitere Frage.

Gerne würde ich meine Rollläden automatisch fahren und zwar wie in dem Beispiel im Wiki :
http://www.fhemwiki.de/wiki/Funktionsbeschreibung_zu_notify

Wenn ich das Gerät im Web-Editor definiere und dann über DEF die Werte/Bedingungen eintrage, erhalte ich folgenden Codeauszug in der fhem.cg :


#PV
###
define sv SolarView 192.168.178.1 15000 wr1 60
attr sv event-on-change-reading currentPower,totalEnergyDay
attr sv room Photovoltaik
define log_sv FileLog /var/log/fhem-sv-%Y-%m-%d.log sv:(currentPower|totalEnergyDay).*
attr log_sv room Logfile
define plot_sv SVG log_sv:solarview:CURRENT
attr plot_sv room Photovoltaik

#Verschattung
#########

define Fenster_PV notify (sv:currentPower.*) { \
my $hm == sprintf("%%02d:%%02d", $hour, $min);;\
if ( $hm gt "07:30" && $hm lt "17:00") { \
if (%EVTPART1 > 1000 ) {\
  fhem('set Fenster_Halbmast Runter');;\
  } \
  }\
}


Im DEF des Gerätes sieht der Code wie folgt aus:


(sv:currentPower.*) {
my $hm == sprintf("%%02d:%%02d", $hour, $min);
if ( $hm gt "07:30" && $hm lt "17:00") {
if (%EVTPART1 > 1000 ) {
  fhem('set Fenster_Halbmast Runter');
  }
  }
}


Nun wird der Befehl Fenster_Halbmast Runter aber nicht wie geplant ausgeführt, obwohl currentPower größer 1000 und die Uhrzeit später als 07:30 und früher als 17:00.

Den Hinweis von Puschel74 in meinem ersten Beitrag %EVENTPART1 gegen $EVENT zu ersetzten hat bei mir nicht geklappt.

Ich habe die Syntaxhervorhebung aktiviert und der zeigt mir auch alle Klammern richtig gesetzt an.
Als Programmieranfänger tue ich mich schwer die Syntax und Semantik auf Fehler zu überprüfen.


Wo liegt im Codebeispiel mein Fehler?

Danke für Eure Hilfe

Puschel74

Hallo,

ich weiß nicht obs an der Klammer liegt (vermutlich nicht da es bei mehreren Bedingungen mit Klammer geht) aber versuch mal folgendes:

sv:currentPower.* {
my $hm = sprintf("%%02d:%%02d", $hour, $min);
Log(3,"%EVTPART1");
Log(3,"$hm");
if ( $hm gt "07:30" && $hm lt "17:00") {
if (%EVTPART1 > 1000 ) {
  fhem('set Fenster_Halbmast Runter');
  }
  }
}

So siehst du im Logfile welche Werte du hast.

Ich hab grad gesehen das du $hm == geschrieben hast.
Du willst den Wert ja nicht vergleichen sondern zuweisen - also =

Fehlermeldungen finden sich idR auch immer im FHEM-Logfile und können recht hilfreich sein  ;)

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.

fetzz

Jetzt gehts.

Nun wollen wir mal den nächsten Tag bwarten,ob es wirklich so rennt,wie geplant.