Rolladensteuerung und Funk-Fenster-Drehgriffkontakt

Begonnen von puckthefly, 19 Juli 2014, 11:40:12

Vorheriges Thema - Nächstes Thema

Puschel74

Dann hast du wohl Fehler drinnen.

P.S.: Und frag jetzt nicht welche, wenn du das wissen willst wäre es nett wenn du den Code posten würdest  :P
Edith: Wobei - welche Fehler es sind steht ja in der Meldung  ::)
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.

Badflex

Zitat von: Puschel74 am 18 November 2014, 19:36:37
Dann hast du wohl Fehler drinnen.

P.S.: Und frag jetzt nicht welche, wenn du das wissen willst wäre es nett wenn du den Code posten würdest  :P
Edith: Wobei - welche Fehler es sind steht ja in der Meldung  ::)

Also nochmal


define Rollo_Flur_Auf at *{sunrise(-900,"07:55","09:00")} {rollos_hoch;}

define Rollo_Flur_Zu at *{sunset(-900,"17:00","21:30")} {rollos_runter;}


Und die myUtils:



package main;
use strict;
use warnings;
use POSIX;
sub
myUtils_Initialize($$)
{
my ($hash) = @_;
}


sub rollos_runter()
{
my @rollos=devspec2array("TYPE=CUL_HM");


   foreach(@rollos) {
      if (/.*Rollo.*/) {
     
        # Pruefen ob Rollos schon unten sind
        if ( Value($_) eq "off" ) {
          Log 3,"[rollos_runter] - Name: ".$_." ist schon unten - wird ignoriert!";
        }
        elsif ( Value($_) eq "20" ) {
          Log 3,"[rollos_runter] - Name: ".$_." ist zu 20% offen - wird ignoriert!";
        }
        elsif (Value("Terrassentuer") eq "open" && $_ eq "Rollo_Flur") {
          Log 3, "[rollos_runter] - Name: ".$_." wird nicht heruntergefahren, da die Tuer auf ist!";
        }
        elsif ( Value($_) eq "on") {     

          if (Value("Terrassentuer") eq "tilted" && $_ eq "Rollo_Flur") {
             Log 3, "[rollos_runter] - Name: ".$_." wird auf 20% heruntergefahren, da die Tuer gekippt ist!";
            fhem("set ".$_." 20");
          }
          else {
            Log 3,"[rollos_runter] - Name: ".$_." wird heruntergefahren!";
            fhem("set ".$_." off");
          }
       }
      }
   }

}
######################################
#
#####################################
sub rollos_hoch()
{
   my @rollos=devspec2array("TYPE=CUL_HM");


   foreach(@rollos) {
      if (/.*Rollo.*/) {
     
        # Pruefen ob Rollos schon oben sind
        if ( Value($_) eq "on" ) {
          Log 3,"[rollos_hoch] - Name: ".$_." ist schon oben - wird ignoriert!";
        }
        else {
          Log 3,"[rollos_hoch] - Name: ".$_." wird hochgefahren!";
          fhem("set ".$_." on");
        }
       
      }
   }
}
1;



Danke für die Fehlersuche.:-)
Raspberry Pi, CUL868(SlowRF), FB 7490, SmartVisu, fast nur HomeMatic wenig FS20, Netatmo

Puschel74

Hallo,

http://www.fhemwiki.de/wiki/99_myUtils_anlegen
Hier findest du auch wie eine sub in der 99_myUtils.pm aufgerufen werden sollte.

define Rollo_Flur_Auf at *{sunrise(-900,"07:55","09:00")} {rollos_hoch}
define Rollo_Flur_Zu at *{sunset(-900,"17:00","21:30")} {rollos_runter}

Ich geh mal davon aus das das ; am Ende gestört hat.

In der myUtils (du weisst aber das die 99_myUtils heissen sollte  ??? ) würde ich, wenn der Fehler immer noch vorhanden ist erstmal alle unnötigen Leerzeilen rauswerfen.
Ich hab deinen Code - den Beitrag bitte übrigens nochmal bearbeiten und Code-Tags verwenden, danke - in Notepad++ eingefügt und es waren mehr Leerzeilen drinnen als einem lieb sein könnte.
Ich weiß nicht ob das der Fehler sein kann da ich meine sub`s grundsätzlich OHNE Leerzeilen schreiben (wozu sollen die gut 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.

Badflex

Fehler gefunden. Hatte mit eventmap on und off auf hoch und runter geändert.

Wüste nicht das er bei der anfrage nur die Internals liest.
Habe die zwei Zeilen jetzt geändert und es funktioniert.

  # Pruefen ob Rollos schon unten sind
        if ( Value($_) eq "runter" ) {
          Log 3,"[rollos_runter] - Name: ".$_." ist schon unten - wird ignoriert!";
        }
        elsif ( Value($_) eq "20" ) {
          Log 3,"[rollos_runter] - Name: ".$_." ist zu 20% offen - wird ignoriert!";
        }
        elsif (Value("Terrassentuer") eq "open" && $_ eq "Rollo_Flur") {
          Log 3, "[rollos_runter] - Name: ".$_." wird nicht heruntergefahren, da die Tuer auf ist!";
        }
        elsif ( Value($_) eq "hoch") {         
if (Value("Terrassentuer") eq "tilted" && $_ eq "Rollo_Flur") {
             Log 3, "[rollos_runter] - Name: ".$_." wird auf 20% heruntergefahren, da die Tuer gekippt ist!";
            fhem("set ".$_." 20");
          }
         
Raspberry Pi, CUL868(SlowRF), FB 7490, SmartVisu, fast nur HomeMatic wenig FS20, Netatmo