Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin: Logikprozessor.pl

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

    Übrigens kann man genau das auch eleganter machen über die GA-Kürzel, die ich nutze: das erste Wort des GA-Namens ist ein eindeutiges Kürzel. Dank einer länger zurückliegenden wiregated.pl-Modifikation, die ich mit Makki gemacht habe, indiziert wiregated.pl den Hash %eibgaconf auch nach diesen Kürzeln. Durch geeignete Vergabe von Kürzeln kann man dann Dinge machen wie

    Code:
    my @leuchten=grep /^LI_\S*$/, keys %eibgaconf;
    $logic{'alle_lichter_aus'}={receive=>'alle_aus', transmit=>\@leuchten, translate=>0 };
    Nur mal so als Beispiel. Man hat dann die blöden numerischen GAs komplett draußen.

    Ich glaube, im aktuellen wiregated.pl geht es auch schon, die Kürzel statt der numerischen GAs in knx_write und knx_read zu verwenden.
    Also

    Code:
    knx_write('LI_Eingang',0);
    Ist das nicht viiiel besser als numerische GAs?
    Ich verwende das SEHR intensiv und bin damit sehr zufrieden.

    VG, Fry

    Kommentar


      Zitat von Fry Beitrag anzeigen
      Ist das nicht viiiel besser als numerische GAs?
      Ich verwende das SEHR intensiv und bin damit sehr zufrieden.
      Ja, dein GA-System hatte ich mir damals auch angeschaut. Allerdings muss man dafür wirklich das Schema sehr genau einhalten. Das habe ich leider nicht geschafft. Und: "damals" funktionierte das noch nicht ootb mit dem wiregated.pl ...

      VG
      Micha

      Kommentar


        Zitat von Fry Beitrag anzeigen
        Du kannst also um Mitternacht mit einer Logik den Zählerstand in $plugin_info{$plugname.'_Zaehlerstand_um_Mitternac ht'} speichern und Stunden später genau da wieder abrufen.
        Hallo Fry,

        ich habe mal wieder eine kleine Frage bzgl. einer Logik. Wie würdest du folgende Anforderung (ähnlich der oben) umsetzen:
        - ich möchte per GA die Zeitschaltuhren (auch Teil des Logikprozessors) für das Hochfahren der Raffstores ein/ausschalten können (das ist der einfache Teil)
        - der Wert soll in $plugin_info persistiert werden und nach einem evtl. Neustart (wiregated, eibd, ...) wieder ausgelesen und auf den Bus geschrieben werden (evtl. getriggert durch einen read-Request)

        Ich habe schon verschiedenes ausprobiert und mit den Beispielen herumgespielt (memory, transmit_on_startup, Read-Requests an die transmit-Adresse, ...) aber noch nichts zufriedenstellendes herausgefunden.

        Ich würde mich freuen wenn du mir das mal grob skizzieren könntest. Evtl gibt es aber auch einen ganz anderen Lösungsansatz?

        Danke,
        Micha

        Kommentar


          Die Option "transmit_on_startup" führt eine Logik bei der Initialisierung des Logikprozessors einmalig aus (also Neustart des Wiregates, des Daemons, oder Änderung der Config).

          - wobei ich aber an der Option noch rumgebastelt habe. Ich habe aktuell nicht mehr ganz den Überblick über die Unterschiede der Logikprozessor-Versionen:

          * die (mittlerweile ältere) SVN-Version,
          * die im Thread "Vorkompilieren" gepostete Version und
          * die Version, die ich selbst heute nutze.

          Ordnung im Chaos wird dann kommen, wenn der offizielle wiregated.pl die Features Vorkompilieren, %plugin_cache und den if/while-Patch enthält. Dann werde ich den neuesten Logikprozessor posten und ins SVN einstellen.
          Vg, Fry

          Kommentar


            Zitat von Fry Beitrag anzeigen
            Ordnung im Chaos wird dann kommen...
            OK, kein Problem. Dann warten wir noch ab (hoffentlich nicht zu lang ;-)

            Danke
            Micha

            Kommentar


              Hallo Fry,
              der Logikprozessor läuft bei mir seit mehreren Tagen ganz gut. Ich habe eben in der Config die Namen von 3 Logiken geändert und dann Config und danach den Prozessor gespeichert. Nun bekomme ich folgende Fehlermeldung:

              config error: Unrecognized character \xFC in column 1108 at (eval 4769) line 27.

              Darf ich die Namen nicht mehr ändern?

              Kannst du mir nen Tip geben?

              Danke und Gruß Bernd

              Kommentar


                Zitat von Izeman Beitrag anzeigen
                config error: Unrecognized character \xFC in column 1108 at (eval 4769) line 27.
                Die Namen darf man natürlich ändern. Ich vermute eher ein Problem mit Sonderzeichen oä. Poste doch mal deine Config...

                VG
                Micha

                Kommentar


                  Hallo Micha,
                  du hast absolut Recht gehabt, ich hatte die Logit "Schlüsselbrett" genannt. Hab sie jetzt auf "Schluesselbrett umbenannt" und nun ist der Fehler weg.

                  Jetzt habe ich aber noch nen zusätzlichen Fehler seitdem ich "day_of_week (So-Do)" benutze. Mach ich da in der Syntax was falsch?
                  Mit Weekday und Weekend hat alles geklappt.

                  Heizung_Schlaf_wochentags_Nacht => { transmit=>'3/3/16', timer=>{ time=>['22:00'], day_of_week (So-Do) }, translate => 3 },

                  Gruß Bernd

                  Kommentar


                    Zitat von Izeman Beitrag anzeigen
                    day_of_week (So-Do)
                    Versuch mal "$day_of_week (So...Do)". Ich selbst benutze diese Syntax nicht. Aber lt. der Beispielconfig sollte das so gehen: Open Automation / Code / [r2054] /wiregate/plugin/generic/conf.d/Logikprozessor.conf

                    Wobei: sollen die Namen der Tage deutsch oder englisch sein?

                    VG
                    Micha

                    Kommentar


                      Feiertage

                      Hallo Fry,

                      ich habe nun auch mal wieder eine Frage: gibt es eine Möglichkeit die definierten Feiertage ($holiday) in der Config zu überschreiben/erweitern ohne den Code des Logikprozessors selbst anzufassen? In Sachsen haben wir etwas andere Feiertage und ich würde evtl auch unsere geplanten Urlaubstage inkludieren...

                      Danke,
                      Micha

                      Kommentar


                        Zitat von Izeman Beitrag anzeigen
                        Hallo Micha,
                        du hast absolut Recht gehabt, ich hatte die Logit "Schlüsselbrett" genannt. Hab sie jetzt auf "Schluesselbrett umbenannt" und nun ist der Fehler weg.

                        Jetzt habe ich aber noch nen zusätzlichen Fehler seitdem ich "day_of_week (So-Do)" benutze. Mach ich da in der Syntax was falsch?
                        Mit Weekday und Weekend hat alles geklappt.

                        Heizung_Schlaf_wochentags_Nacht => { transmit=>'3/3/16', timer=>{ time=>['22:00'], day_of_week (So-Do) }, translate => 3 },

                        Gruß Bernd
                        Versuche

                        day_of_week=>['So','Mo','Di','Mi','Do'],

                        VG, Fry

                        Kommentar


                          Hmm,
                          leider nicht. Die Configzeile:

                          Code:
                          Heizung_Schlaf_wochenends_Nacht => { transmit=>'3/3/16', timer=>{ time=>['23:00'], $day_of_week (Sa...So) }, translate => 3 },
                          erzeugt folgenden Fehler:

                          Code:
                          config error: syntax error at (eval 5215) line 41, near "$day_of_week (" Can't use global @_ in "my" at (eval 5215) line 63, near "=@_" syntax error at (eval 5215) line 63, near ")}"
                          Die Config von Fry hatte ich auch gelesen, aber gedacht weil bei day_of_month auch ein Bereich steht könnte man das so machen.
                          Ich hab jetzt aber glaube gefunden wie es geht, gibt zumindest keine Fehler und es wird auch wieder richtig ausgegeben wie viele Logiken initialisiert wurden ;-)

                          Code:
                          Heizung_Schlaf_wochenends_Nacht => { transmit=>'3/3/16', timer=>{ time=>['23:00'], day_of_week => 'Sa-So' }, translate => 3 },
                          Ich hoffe das wars, vielen Dank Micha
                          Gruß Bernd

                          Kommentar


                            Zitat von mivola Beitrag anzeigen
                            Hallo Fry,

                            ich habe nun auch mal wieder eine Frage: gibt es eine Möglichkeit die definierten Feiertage ($holiday) in der Config zu überschreiben/erweitern ohne den Code des Logikprozessors selbst anzufassen? In Sachsen haben wir etwas andere Feiertage und ich würde evtl auch unsere geplanten Urlaubstage inkludieren...

                            Danke,
                            Micha
                            Die Möglichkeit gibt es, aber nur im Logikprozessor selbst. Suche die Zeile

                            Code:
                                my @holidays=(1,121+$leapyear,276+$leapyear,359+$leapyear,360+$leapyear,$J-2,$J,$J+39,$J+49,$J+50,$J+60);
                            und ändere sie ab. Die Zahlen bedeuten die Tageszahl innerhalb des Jahres, $leapyear ist 1 im Schaltjahr, 0 sonst, und $J ist der Ostersonntag.
                            Dabei fällt mir auf, Ostermontag ist ja auch ein Feiertag, also muss $J+1 auch noch in die Liste.

                            VG, Fry

                            Kommentar


                              Hallo Fry,
                              danke für deine Antwort. Kann ich das jetzt so lassen wie ich es geschreiben habe, oder soll ich es besser so umschreiben wie du geschrieben hast?

                              Gruß Bernd

                              Kommentar


                                Getestet wurden Bereiche wie 'So-Do' nicht, und ich finde das auch nicht elegant, weil die Wochentage keine geordnete Menge sind. M.a.W., auch wenn 'So-Do' möglicherweise funktioniert (zB weil es in >0 <=4 umgewandelt wird), so würde wahrscheinlich 'Do-So' (>4 <=0) nicht funktionieren.

                                Jedenfalls habe ich beim Coden des Logikprozessors nicht an solche Wünsche gedacht und dementsprechend funktioniert es vermutlich auch nicht so, wie du denkst.

                                Aber wie immer in Perl: erlaubt ist, was "es tut".

                                VG, Fry

                                Kommentar

                                Lädt...
                                X