FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: eldrik am 24 Juli 2014, 15:02:39

Titel: Wo ist der Unterschied? Aktuelle Uhrzeit vergleichen mit Twilight ReadingsVal
Beitrag von: eldrik am 24 Juli 2014, 15:02:39
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
Titel: Antw:Wo ist der Unterschied? Aktuelle Uhrzeit vergleichen mit Twilight ReadingsVal
Beitrag von: Elektrolurch am 24 Juli 2014, 17:14:52
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
Titel: Antw:Wo ist der Unterschied? Aktuelle Uhrzeit vergleichen mit Twilight ReadingsVal
Beitrag von: eldrik am 24 Juli 2014, 18:10:51
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
Titel: Antw:Wo ist der Unterschied? Aktuelle Uhrzeit vergleichen mit Twilight ReadingsVal
Beitrag von: Brockmann am 24 Juli 2014, 19:10:58
Ich weiß nicht, ob es daran liegt, aber warum verwendest Du anstellen Deines $time-Konstrukts nicht einfach $hms?
Titel: Antw:Wo ist der Unterschied? Aktuelle Uhrzeit vergleichen mit Twilight ReadingsVal
Beitrag von: Dietmar63 am 24 Juli 2014, 20:05:57
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 (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");
      }
     }

Titel: Antw:Wo ist der Unterschied? Aktuelle Uhrzeit vergleichen mit Twilight ReadingsVal
Beitrag von: eldrik am 24 Juli 2014, 21:28:22
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
Titel: Antw:Wo ist der Unterschied? Aktuelle Uhrzeit vergleichen mit Twilight ReadingsVal
Beitrag von: Puschel74 am 25 Juli 2014, 07:00:38
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
Titel: Antw:Wo ist der Unterschied? Aktuelle Uhrzeit vergleichen mit Twilight ReadingsVal
Beitrag von: eldrik am 25 Juli 2014, 10:51:19
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