Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - knxwrite und e-Mail Plugin

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] - √ - knxwrite und e-Mail Plugin

    Hallo
    Ich habe in meinen SMA-RPC Plugin eine Störungsabfrage die sendet mit
    " knx_write("5/0/24",1,1); # PV Stoerung " auf den KNX-Bus.
    Die ETS zeigt die Störung unter Gruppentelegramme auch an.
    Nun möchte ich eine E_Mail mit dem E-Mai-Plugin versenden.
    "push @actionGA, { name => "test", email_adress => 'xxxxx@googlemail.com', email_subject => "PV Störung", email_text => "PV Anlage gestoert", trigger_ga => "5/0/24", value => 1 };"
    was aber wohl so nicht geht.
    Wie kann ich das am besten durchführen?
    Gruß NetFritz
    KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
    WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
    PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

    #2
    Schon probiert ob es nicht geht?

    Theoretisch müsste es gehen solange die "5/0/24" nur im email-Plugin subscribed wurde.

    Störung tritt auf -> SMC-Plugin -> sendet auf GA -> SMC-Plugin Ende -> alle subscriptions werden gecheckt -> Treffer bei 5/0/24 -> email-Plugin -> Ende

    Ich sehe da erstmal keinen Zirkelbezug womit sich was im Kreis drehen könnte. Der wiregated bearbeitet die Plugins ja

    - alphabetisch (cycle)
    - der Reihe nach

    Heisst wenn ein Plugin (SMC) den wiregated belegt kann er das nächste getriggerte (email) nicht abarbeiten. Dies müsste er aber nachholen sobald das erste beendet ist. Denn dann (und auch erst dann) checkt er wieder die eingegangen Telegramme. Hab das aber auch noch nicht getestet.
    Umgezogen? Ja! ... Fertig? Nein!
    Baustelle 2.0 !

    Kommentar


      #3
      Hallo
      Habe eine Lösung gefunden.
      Ich hatte noch auf einem KNX-Verknüpfungsgerät ein Gatter frei.
      Die GA 5/0/24 auf einem Eingang gelegt, jetzt geht es.
      Die E-Mail kommt jede Minute wenn das SMA-Plugin aufgerufen wird.
      Da muss ich noch eine Abfrage einbauen.
      Gruß NetFritz
      KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
      WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
      PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

      Kommentar


        #4
        Hallo
        Ich habe das Plugin "email_triggered_by_ga.pl" von makki mit einer kleinen Erweiterung versehen.
        Die E-Mails werden nur noch gesendet wenn GA von 0 auf 1 geht.
        email.pl
        Code:
        #  email_triggered_by_ga.pl
        # email triggert bei GA=1 wenn vorher GA=0
        #Plugin zum versenden von Emails beim Empfang eines definierten Werts auf einer definierten GA
        #Mehrere Mails an einer GA sind derzeit nicht möglich!
        # - benoetigt Paket libnet-smtp-ssl-perl
        # Aufbau moeglichst so, dass man unterhalb der Definitionen nichts aendern muss!
        
        my ($sec,$min,$hour,$day,$month,$yr19,@rest) = localtime(time);
        my $hostname = `hostname`;
        
        ##################
        ### DEFINITION ###
        ##################
        
        my $Absender = 'WireGate <xxxx@gmail.com>'; # unbedingt anpassen, die Absenderadresse sollte gültig sein um Probleme zu vermeiden
        my $username = 'xxxx@gmail.com'; #Anpassen! Username fuer SMTP-Server
        my $password = 'xxxx'; #Anpassen! Passwort fuer SMTP-Server
        my $mailserver='smtp.gmail.com:465'; # SMTP-Relay mit SSL: das muss natuerlich angepasst werden!
        # my $mailserver='smtp.gmail.com:465'; # SMTP-Relay mit SSL: das muss natuerlich angepasst werden!
        
        my $Msg = $plugin_info{'email.pl.Stoerung'}; # wird von einen anderen Plugin befuellt
        #
        $plugin_info{$plugname.'_cycle'} = 3600;
        
        my @actionGA;
        push @actionGA, { name => "Alarm", email_adress => 'xx1xx@googlemail.com', email_subject => "Test 1", email_text => "Alarm um $hour:$min ausgelöst.", trigger_ga => "2/1/1", value => 1 };
        push @actionGA, { name => "test", email_adress => 'xx1xx@googlemail.com', email_subject => "WP Stoerung", email_text => "WP EHeizung EIN", trigger_ga => "1/3/73", value => 0 };
        push @actionGA, { name => "test", email_adress => 'xx1xx@googlemail.com', email_subject => "WP Stoerung", email_text => "WP EHeizung AUS", trigger_ga => "1/3/73", value => 1 };
        push @actionGA, { name => "test", email_adress => 'xx1xx@googlemail.com', email_subject => "PV Stoerung1", email_text => "PV Anlage gestoert: $Msg", trigger_ga => "5/0/24", value => 01 };
        #######################
        ### ENDE DEFINITION ###
        #######################
        
        use Net::SMTP::SSL;
        use MIME::Base64;
        
        foreach my $element (@actionGA) {
            my $email_adress = $element->{email_adress};
            my $email_subject = $element->{email_subject};
            my $email_text = $element->{email_text};
            my $trigger_ga = $element->{trigger_ga};
            my $value = $element->{value};
        
            $plugin_subscribe{$trigger_ga}{$plugname} = 1;
        
            if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $trigger_ga && defined $msg{'value'} && $msg{'value'} == "$value" && $plugin_info{$plugname."_".$trigger_ga} == 0) {        
               my $smtp = Net::SMTP::SSL->new($mailserver, Timeout => 10) or return "Fehler beim verbinden zu $mailserver $!; $@";
               $smtp->auth($username,$password) or return "SASL Auth failed $!;$@"; # try SASL
               $smtp->status() < 5 or return "Auth failed: $!; $@ ". $smtp->status();
               $smtp->mail($Absender) or return "Absender $Absender abgelehnt $!";
               $smtp->to(split(',',$email_adress)) or return "Empfaenger $email_adress abgelehnt $!"; 
               $smtp->data() or return "Data failed $!";
               $smtp->datasend("To: $email_adress\n") or return "Empfanger $email_adress (Header-To) abgelehnt $!";
               $smtp->datasend("Subject: $email_subject\n") or return "Subject $email_subject abgelehnt $!";
               $smtp->datasend("\n") or return "Data failed $!";
               $smtp->datasend("$email_text\n") or return "Data failed $!";
               $smtp->dataend() or return "Data failed $!";
               $smtp->quit or return "Quit failed $!";
               #
               $plugin_info{$plugname."_".$trigger_ga} = 1; # E-Mail wurde versandt,GA=1
               # return;    # keine Logausgabe
               return "eMail von $Absender an $email_adress\ Betreff $email_subject gesendet: $email_text";    
            }elsif($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $trigger_ga && defined $msg{'value'} && $msg{'value'} == 0){
               $plugin_info{$plugname."_".$trigger_ga} = 0; # GA=0
            }    
        }
        Kann ins SVN geschoben werden
        Gruß NetFritz
        KNX & Wago 750-849 ,Wiregate u. Cometvisu, iPad 3G 64GB.
        WP Alpha-Innotec WWC130HX (RS232-Moxa-LAN),Solaranlage für Brauchwasser und Heizung.
        PV-Anlage = SMA Webbox2.0 , SunnyBoy 4000TL, Sharp 4kWP

        Kommentar


          #5
          Sieht nicht falsch aus, ich habs ungeprüft als "email_triggered_by_ga_once.pl" ins SVN geschoben.

          Lieber ist mir immer: der Author machts selber, SF-Account an Chris M. oder mich, ich kann mich zeitlich nicht dauerhaft um alle kümmern.

          Makki
          EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
          -> Bitte KEINE PNs!

          Kommentar

          Lädt...
          X