Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin: Logikprozessor.pl

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Hallo
    Ich habe mich nun eine Woche durch diesen Thread gearbeitet und den hoffentlich aktuellen Logikprozessor aus Thread #460 installiert.

    Beim Umstellen meiner bisherigen Plugins auf den LP habe ich für die Steuerung meiner Zirkulationspumpe die Zeilen von Fry aus #471 kopiert.
    Die Kurznamen wurden durch meine GAs ersetzt.

    Folgende Fehlermeldung wird generiert:
    config error: syntax error at (eval 438) line 47, at EOF syntax error at (eval 438) line 96, next char )

    Leider finde ich als Perl Newbie den Fehler nicht. "EOF" ist ein Klammerfehler?

    Wäre sehr nett, wenn mal jemand über meine config schauen würde!

    LG
    Andre
    Angehängte Dateien
    Zuletzt geändert von katerina; 28.09.2017, 12:43.

    Kommentar


      Zitat von katerina Beitrag anzeigen
      ... hoffentlich aktuellen Logikprozessor aus Thread #460 installiert.
      aktuell ist immer auf github: https://github.com/OpenAutomationPro...ikprozessor.pl

      Zitat von katerina Beitrag anzeigen
      "EOF" ist ein Klammerfehler?
      EOF = End Of File

      Einen Fehler in der config konnte ich auf die Schnelle nicht sehen. Versuch bitte mal jede Logik einzeln in der config zu speichern - dann siehst du schnell welche der Übeltäter ist ...

      VG
      Micha

      Kommentar


        Hallo Micha

        Der Fehler erscheint, seit ich den Abschnitt für die Umwälzpumpe hinzugenommen habe.

        Folgendes habe ich nun unternommen:
        Aktuellen Logikprozessor aus deinem Link geholt und auf dem WG gespeichert.

        - Zeile 47 (die mit der ersten Fehlermeldung "$logic{Zirkulation_D2}={ trigger=>'1/1/56==1', transmit=>'2/1/2', translate=>1, };") auskommentiert.
        - Config gespeichert, LP neu gespeichert

        Nun wird eine Fehlermeldung in Zeile 52 angezeigt also am Ende des nächsten Abschnittes "Zirkulationspumpe 3min nach dem Lauf sperren"

        Ich habe auch mal die Zeile mit dem Elternschlafzimmer auskommentiert. Dort ist eine geschweifte Klammer rot.
        Status_ElternSchlafen=> { receive=>['0/4/55','0/4/56'], transmit=>'0/4/57', translate => sub { $input->[0] && $input->[1]; }, },

        Ergänzend:
        Die Logik für die Umwälzpumpe hat keine Wirkung auf das KNX.
        Im Busmonitor sehe ich das Auslösen über den Taster und dann nichts mehr. Eigentlich sollte ja dann der Schreibbefehl auf die 2/1/2 vom TP-UART folgend

        Ergänzung2:
        Nachdem ich die Semikolon in dem Abschnitt durch Komma ersetzt habe, ist die Fehlermeldung weg.

        Die Abschnitte "Status schlafen", dieTreppenlichtfunktion im Gartenhaus und zwei zwischenzeitlich hinzugefügte Rrd Aufzeichnungen funktionieren.

        in dem Abschnitt für die Umwälzpumpe hakt es trotzdem noch. Es werden keine Daten an das KNX übergeben. In der ETS sehe ich keine Reaktion auf den Trigger. Ich komme da momentan nicht wirklich weiter.
        Zuletzt geändert von katerina; 28.09.2017, 20:45.

        Kommentar


          @ katerina: wieso nimmst du für den Abschnitt mit der Pumpe eine andere Syntax für die Einträge?

          Code:
          [COLOR=#FF0000]$logic{Zirkulation_D2}=[/COLOR]{ trigger=>'1/1/56==1', transmit=>'2/1/2', translate=>1, }[COLOR=#FF0000];[/COLOR]
          versuche es doch mal mit der "normalen" Konfiguration (wie du ja auch die anderen Einträge gemacht hast (incl. Komma statt Semikolon am Ende):

          Code:
          [COLOR=#FF0000]Zirkulation_D2=>[/COLOR]{ trigger=>'1/1/56==1', transmit=>'2/1/2', translate=>1, }[COLOR=#FF0000],[/COLOR]
          .... ebenso natürlich für die anderen Einträge ...
          Zuletzt geändert von jensgulow; 29.09.2017, 07:43.
          Viele Grüße Jens

          Kommentar


            Hallo Jens.
            vermutlich weil ich das Beispiel für die Pumpe hier einfach aus dem Forum kopiert hatte. Das war ein Codebeispiel von Fry aus Thread #471.
            Ich probier das mal mit anderen Namen.

            Ergebnis:
            Nachdem ich erst diese Klammer ">" vergessen hatte, mit dem Ergebnis der unten angegebenen Fehlermeldung...

            Es Funktioniert Jens! Und nun habe ich auch entsprechende Einträge im Busmonitor!

            Vielen Dank für deinen Hinweis!


            config error: Can't modify constant item in scalar assignment at (eval 11879) line 48, near "}," Bareword "ZirkulationD2" not allowed while "strict subs" in use at (eval 11879) line 93. Bareword "ZirkulationGelaufenSperren" not allowed while "strict subs" in use at (eval 11879) line 93. Bareword "ZirkulationWiederFrei" not allowed while "strict subs" in use at (eval 11879) line 93. Bareword "ZirkulationWarmAus" not allowed while "strict subs" in use at (eval 11879) line 93.
            Zuletzt geändert von katerina; 29.09.2017, 13:12.

            Kommentar


              Hallo zusammen,

              hier wieder eine kleine Frage zu einem Codeschnipsel:

              Code:
              EG_PM_Treppe => { receive=>['1/1/11'], transmit=>'1/1/10', translate => sub { return 1 if ($input->[0] == 1); return undef;}, debug=>1 },
              
              OG_PM_Treppe => { receive=>['1/1/13'], transmit=>'1/1/10', translate => sub { return 1 if ($input->[0] == 1); return undef;}, debug=>1 },
              
              EBS_Treppe_ausschalten => { receive=>'1/1/10', transmit=>'1/1/10', timer=>{ time=>['00:01-05:29']}, delay=>300, translate => sub { return 0 if ($input == 1); return undef;}, cool=>299, debug=>1 },
              Zwei PMs befeuern je die GAs für Licht (11 & 13, Treppenhausbeleuchtung), sobald da ne 1 drauf kommt soll die 1/1/10 (Beleuchtung Treppenstufen) ebenfalls angehen. Klappt soweit ganz gut, Ziel war es ja das Hauptlicht nur 1 Min an zu haben (Triggered by PM), die Treppenstufenbeleuchtung aber länger (triggered by Wiregate/Logikprozessor).
              Parallel ist die Treppenstufenbeleuchtung aber nun auch zeitgesteuert an (i.d.R. von Dämmerung bis 22 Uhr), sobald aber jemand da abends durch ist wird das Ausschalten gefeuert. Ich hab versucht das entsprechend einzugrenzen so dass "EBS_Treppe_ausschalten" nur von Mitternacht bis morgens 5:29 Uhr (ab 5:30 per Zeitschaltuhr bis Sonnenaufgang eh an) aktiv werden kann, irgendwas mach ich aber falsch. Aktuell scheint der Timer überhaupt nicht zu greifen...

              Jemand ne Idee wie ich das fixen kann?

              Danke & Gruß,
              Hannatz

              Kommentar


                Hey Leute,

                das Ding ist ja riesig (60 Seiten) :-D

                Gibts iwo konzentriert ein kurzes How-To zum Installieren des Plugins und/oder zum Betrieb?

                Dh wie / wo kann ich "meine Logik" dann benutzen und (wo) gibt es eine Doku mit dem Syntax etc?


                ps: Hab den Wiregate nich vor mir, daher sind die ersten Fragen womöglich selbsterklärend, sobald ich die Plugin-Seite vom Wiregate offen habe. Eine Doku oÄ hab ich aber noch nirgens finden können :-/

                Kommentar


                  Les mal Beitrag #887 (z.B.). Ein Beispiel ist dort auch abgelegt.

                  Kommentar


                    mir gehts ähnlich, als kompletter DAU wäre eine step by step-Kurzanleitung sicher hilfreich um z.B. eine einfache Zeitschaltuhr zum laufen zu bringen und einen Einstieg zu haben

                    Kommentar


                      Also ich habe den Beitrag 887 gesehen und auch mal im GIT geschaut was los ist. Mir hilft das aber erstmal nich so sehr weiter.
                      Ok ein Problem ist, dass ich noch nicht am Wiregate sein kann um zu schauen, wie die Plugin-Seiten aussehn.

                      Was den Einstieg erleichtern würde, wären Infos zu
                      - Wie genau wird das Plugin installiert
                      - Was genau kann man nach Installation wo genau machen?
                      - wo genau werden dann Scripte geschrieben? Kommen diese in eine große Datei oder legt man für jedes Script eine Datei an?! Muss man diese Hochladen oder gibts einen Editor im Wiregate
                      - Welche Befehle gibt es und was richtigen diese aus?
                      - Sind es alles Perl-Befehle oder spezielle Plugin-Befehle?
                      - Wo genau muss ich welche Bezeichnung in der ETS vergeben, damit ich in den Scripten GA-Namen statt Nummern verwenden kann?


                      Natürlich sind da sicher extreme Noob-Fragen dabei und vielleicht ist es garnicht das Ziel, den Einstieg zu sehr zu erleichtern.. Aber wenn man sich mit etwas (sehr) gut auskennt, sind ja fast alle Fragen totale Noob-Fragen für einen

                      Ich ging jedenfalls davon aus, dass es hier schon entspr. Doku gibt und man hier niemand zu einer Erklärung für Noobs nötigen muss :-)
                      Vielleicht erbarmt sich aber jemand, der die Vorgehensweise Schritt für Schritt mal erklären kann.

                      Kommentar


                        Zitat von jockele Beitrag anzeigen
                        mir gehts ähnlich, als kompletter DAU wäre eine step by step-Kurzanleitung sicher hilfreich um z.B. eine einfache Zeitschaltuhr zum laufen zu bringen und einen Einstieg zu haben
                        Genau das ist im Logikprozessor.conf_sample beschrieben und noch einiges mehr.

                        Kommentar


                          Zitat von Saargebeat Beitrag anzeigen
                          Also ich habe den Beitrag 887 gesehen und auch mal im GIT geschaut was los ist. Mir hilft das aber erstmal nich so sehr weiter.
                          Ok ein Problem ist, dass ich noch nicht am Wiregate sein kann um zu schauen, wie die Plugin-Seiten aussehn.
                          Dann mach das erstmal, sonst würde dir die Schritt-für-Schritt-Anleitung auch nichts helfen. Also erstmal die Plugin-Seite in echt und auch den Rest des Wiregates (sprich KNX-Verwaltung inkl. GA-Adressen) anschauen, da ergibt sich das meiste von selbst.
                          Weitere Doku findet sich im Wiregate-Subforum, dort mal nach Plugins suchen. Recht viel mehr Doku gibts nicht. Ich hab auch erst vor 1 1/2 Jahren gestartet und mir hat das gereicht.

                          Kommentar


                            Wenn das alles zuviel ist, dann eher auf den Timberwolf warten, da wird es auch Doku und Support dazu geben.

                            Kommentar


                              Ich warte in der Tat auf den Timberwolf und vielleicht brauch ich davor auch gar keine Scripte... und ich bin auch überzeugt, dass die vorliegenden Infos reichen. Sie machen den Einstieg aber nicht gerade besonders leicht - zumindest nicht, wenn man nur wenig Zeit für die Einarbeitung zur Verfügung hat.

                              Ich gehe die Sache dann demnächst mal an und schaue, wo ich lande :-)
                              Danke

                              Kommentar


                                Aaaaalso

                                ich hab das Teil jetzt installiert und alles auskommentiert ausser den Wecker.

                                Ziel: Ich will meinen LED-Fluter Nachts einschalten. Der Schaltkanal vom Dimmer liegt auf 0/0/1

                                EDIT: hab jetzt ewig rumprobiert... der Fehler scheint im Wecker zu liegen. Denn die andere Funktion geht... siehe unten

                                Code:
                                #!/usr/bin/perl
                                #
                                # Logikprozessor.pl - Konfiguration
                                #
                                
                                $eibd_backend_address='0.0.0'; # eigene Adresse zur Vermeidung von Zirkellogiken, ist oft auch '1.1.254'
                                
                                # Zentrale Einstellungen, insb. f�r die Prowl Mechanik, s. u..
                                %settings=(
                                    prowl => {
                                 apikey => "*** hier eigenen API-Key eintragen***",
                                 application => 'WireGate KNX',
                                 priority => 0,
                                 event => '[unbenanntes Ereignis]',
                                 description => '',
                                 url => ''
                                    },
                                    samurai => "https://user:pass\@samurai.sipgate.net/RPC2",
                                );
                                
                                %logic=(  
                                
                                 wecker1 => { transmit=>'0/0/1', timer=>{ time=>['17:00+1m-07:00']}, translate => 1 },
                                 wecker2 => { transmit=>'0/0/1', timer=>{ time=>['07:00+1m-17:00']}, translate => 0 },
                                
                                LED_Fluter => {
                                receive => '0/0/4',
                                transmit => '0/0/1',
                                transmit_changes_only => 0,
                                translate => sub {
                                return ($input lt 70) ? 1 : 0;
                                }
                                },
                                );
                                Zuletzt geändert von Saargebeat; 10.11.2017, 18:57.

                                Kommentar

                                Lädt...
                                X