Wo ist der Unterschied? Aktuelle Uhrzeit vergleichen mit Twilight ReadingsVal

Begonnen von eldrik, 24 Juli 2014, 15:02:39

Vorheriges Thema - Nächstes Thema

eldrik

Hallo zusammen,

ich beschatte nunmehr aktiv meinen Innenräume bei zu aufdringlicher Sonne, dennoch möchte ich bei geringer Sonne, dass die Rollladen wieder hochfahren, dies jedoch nur in der Zeit zwischen Sonnenauf- und Sonnenuntergang.

Benutze ich via ReadingsVal meine Twilight Berechnungen, wie ich sie auch in anderen at für das Auslösen zu Sonnenauf- und Sonnenuntergang:

myTwilight.azimuth.* {
my $elevation = ReadingsVal("myTwilight","elevation","0");
my $azimuth = ReadingsVal("myTwilight","azimuth","0");
my $brightness = ReadingsVal("F2Hum_Light_OG_rechts1","Helligkeit","0");
my $sunenergie = ReadingsVal("F2Hum_Light_OG_rechts1","Sonne","0");
my $rollladenautomatik = ReadingsVal("dummy_rollladen_auto_gaestezimmer","state","aus");
my $time = sprintf("%%02d:%%02d", $hour, $min);
if ($rollladenautomatik eq "aus") {} else {
if ($azimuth > 120 && $sunenergie < 1.4 && $time lt ReadingsVal("myTwilight","ss_weather",sunset_abs()) && $time gt ReadingsVal("myTwilight","ss_weather",sunrise_abs())) { fhem ("set myStructure_shutter_gaestezimmer [FILTER=STATE!=on] on"); }


bleiben die Rollladen unten ersetze ich das ReadingsVal direkt durch die Uhrzeiten, fahren die Rollladen auch wie gewünscht hoch :/

myTwilight.azimuth.* {
my $elevation = ReadingsVal("myTwilight","elevation","0");
my $azimuth = ReadingsVal("myTwilight","azimuth","0");
my $brightness = ReadingsVal("F2Hum_Light_OG_rechts1","Helligkeit","0");
my $sunenergie = ReadingsVal("F2Hum_Light_OG_rechts1","Sonne","0");
my $rollladenautomatik = ReadingsVal("dummy_rollladen_auto_gaestezimmer","state","aus");
my $time = sprintf("%%02d:%%02d", $hour, $min);
if ($rollladenautomatik eq "aus") {} else {
if ($azimuth > 120 && $sunenergie < 1.4 && $time lt "21:18:35" && $time gt "05:47:22") { fhem ("set myStructure_shutter_gaestezimmer [FILTER=STATE!=on] on"); }


Was übersehe ich? Muss das ReadingsVal wird ja kaum in Anführungszeichen gesetzt werden können...

Greetz
Eldrik

Elektrolurch

Hallo,

Du kannst die Aufrufe mal einzeln durchtesten, in dem Du sie in die fhem-commmandozeile eingibst:
{ReadingsVal("myTwilight","ss_weather",sunrise_abs();;}

Dann siehst Du, was zurück kommt.

Und, setze mal den um den Vergleich  jeweils ein Klammerpaar ().
Ich glaube, so was hatte ich nämlich auch schon mal...
perl und Funktionsaufruf....
Gruß

Elektrolurch
configDB und Windows befreite Zone!

eldrik

Hi,

Was zurück kommt ist die Zeit, im korrekten Format, ein Klammer setzen um jeweils $time < ReadingsVal und $time > ReadingsVal brachte leider auch nichts  :'(

Noch irgendwelche Tipps?

Greetz
Eldrik

Brockmann

Ich weiß nicht, ob es daran liegt, aber warum verwendest Du anstellen Deines $time-Konstrukts nicht einfach $hms?

Dietmar63

Am Ende der Routine fehlten schon mal }}

mit den Logs bekommst du die Info, die du benötigst um den Fehler zu finden. Du musst nur noch ddie ReadingVal in extra Variablen speichern und loggen.

lies diesen Artikel bitte durch:
http://forum.fhem.de/index.php/topic,14010.msg176719.html#msg176719

versuch es mal so:

fhem.cfg:
define irgendwas notify myTwilight.azimuth.*  {myTwilightazimuth()}

my99_utils.pm

sub myTwilightazimuth() {

my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);

my $elevation = ReadingsVal("myTwilight","elevation","0");
Log 3, "elevation------------>$elevation";
my $azimuth = ReadingsVal("myTwilight","azimuth","0");
Log 3, "azimuth------------>$azimuth";
my $brightness = ReadingsVal("F2Hum_Light_OG_rechts1","Helligkeit","0");
Log 3, "brightness------------>$brightness";
my $sunenergie = ReadingsVal("F2Hum_Light_OG_rechts1","Sonne","0");
Log 3, "sunenergie------------>$sunenergie";
my $rollladenautomatik = ReadingsVal("dummy_rollladen_auto_gaestezimmer","state","aus");
Log 3, "rollladenautomatik------------>$rollladenautomatik";
my $time = sprintf("%%02d:%%02d", $hour, $min);
Log 3, "time------------>$time";

     if ($rollladenautomatik eq "aus")  {
     } else {
      if ($azimuth > 120 && $sunenergie < 1.4 && $time lt ReadingsVal("myTwilight","ss_weather",sunset_abs()) && $time gt ReadingsVal("myTwilight","ss_weather",sunrise_abs())) {
         fhem ("set myStructure_shutter_gaestezimmer [FILTER=STATE!=on] on");
      }
     }

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

eldrik

Hi,

Bei dem Code handelte es sich nur um einen Auszug, quasi den Kopf, daher fehlten auch die Klammern, bis auf den Uhrzeitvergleich, für das Hochfahren der Rollladen bei mangelnder Sonnenintensität funktionierte ja auch alles ;)

Eine Lösung habe ich zwischenzeitlich auch gefunden, mit dem weglassen von sunrise_abs() und sunset_abs() im ReadingsVal Konstrukt funktioniert es jetzt.

Danke und Gruß
Eldrik

Puschel74

Hallo,

ZitatBei dem Code handelte es sich nur um einen Auszug, quasi den Kopf, daher fehlten auch die Klammern,
Das geht aber aus deinem ersten Beitrag nicht hervor.

Es soll hier doch tatsächlich Helfer geben die die Codes der Hilfesuchenden in ihr Testsystem integrieren und dann die Fehler suchen anfangen - ich bin z.B. auch so einer.
Wenn natürlich der Code schon nur "Auszugsweise" gepostet wird und nicht (oder erst viel später) darauf hingewiesen wird darf sich KEIN Hilfesuchender mehr wundern wenn sich KEIN Helfender mehr die Zeit nimmt und die Codes in sein Testsystem einträgt.
Es könnte ja jeder nur Auszugsweise seine Codes in der Frage posten (und nicht darauf hinweisen).

Ergo wird es irgendwann mal keine Hilfe mehr geben oder die Hilfe wird sich auf - schau mal dort und lies mal das - beschränken.

Grüsse
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.

eldrik

Hi,

war mir nicht bewusst, dass es nicht eindeutig aus meiner Beschreibung hervorging, dass ich bereits aktiv beschatte und lediglich der eine Abschnitt mit dem
Zeitenvergleich Probleme bereitet.

Ich werde bei meinen nächsten Hilfegesuchen deutlicher darauf hinweisen, ob es sich um den vollständigen oder nur um einen Auszug des Quelltextes handelt.

Danke und Gruß
Eldrik