FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Rocky am 12 Februar 2013, 13:00:22

Titel: Mit nur einem Abruf bei allen FHTs den Actuator abfragen?
Beitrag von: Rocky am 12 Februar 2013, 13:00:22
Hallo,

ich habe einige FHT80Bs und möchte mir eine eMail über meine FB 7390 zuschicken lassen wenn ein Actuator => 30% ist.
Das u.a. Programm macht das einwandfrei - aber leider nur für einen FHT80B (Jennifer.Heizung).
Wie schaffe ich es denn programmiertechnisch , dass ich bei dem Check der alle 20 Min. ausgeführt wird, alle FHTs abfrage?


define ActuatorChk at +*00:20 {\
  my $FHT_Actuator=ReadingsVal("Jennifer.Heizung","actuator","101%");;\
  $FHT_Actuator=substr($FHT_Actuator,0,length($FHT_Actuator)-1);;\
  if ($FHT_Actuator >= 30){\
    {FB_mail('tester@test.de','FHEM Actuatorwarnung',"Actuatorwarnung: Jennifer.Heizung $FHT_Actuator %")};;\
    Log 3, "Actuatorwarnung: Jennifer.Heizung $FHT_Actuator %";;\
  }\
}



Herzliche Grüße
Markus
Titel: Aw: Mit nur einem Abruf bei allen FHTs den Actuator abfragen?
Beitrag von: Puschel74 am 12 Februar 2013, 17:44:25
Hallo,

guckst du im Wiki unter

http://www.fhemwiki.de/wiki/Heizungskontrolle_Einfach (//www.fhemwiki.de/wiki/Heizungskontrolle_Einfach)

findest du u.a das:


my @@fhts=devspec2array("TYPE=FHT");;\
foreach(@@fhts) {\
    my $ventil=ReadingsVal($_, "actuator", "101%");;\
    $ventil=(substr($ventil, 0, (length($ventil)-1)));;\
    if ($ventil > 50) {\
      $brauche_waerme=1\
    }\
    if ($ventil < 20) {\
      $ventile_im_leerlauf++\
    }\
  }\


Achtung!! Aus dem Wiki Auszugsweise kopiert. Wird so nicht funktionieren da der Code drum rum fehlt, prüft aber alles was
vom TYPE=FHT ist auf die Actuator-Stellung.

Grüße
Titel: Aw: Mit nur einem Abruf bei allen FHTs den Actuator abfragen?
Beitrag von: Rocky am 12 Februar 2013, 19:50:41
Danke Puschel74. Es hat geklappt.
Ich musste aber das doppelte @@ bei @@fhts durch ein @fhts ersetzen damit es funktioniert.

So funktioniert der Code in der fhem.cfg einwandfrei.


define ActuatorChk at +*00:30 {\
  my @fhts=devspec2array("TYPE=FHT");;\
  foreach(@fhts) {\
    my $FHT_Actuator=ReadingsVal("$_","actuator","101%");;\
    $FHT_Actuator=substr($FHT_Actuator,0,length($FHT_Actuator)-1);;\
    if ($FHT_Actuator >= 30){\
      {FB_mail('tester@test.de','FHEM Actuatorwarnung',"$_ Actuatorwarnung $FHT_Actuator %")};;\
      Log 3, "$_ Actuatorwarnung $FHT_Actuator %";;\
    }\
  }\
}


Ich werde jetzt noch versuchen eine einzige Mail zu erzeugen wenn mehrere Actuator => 30% sind.
Z.Zt erhalte ich für jeden Actuator eine Mail.


Gruß
Markus