Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin: Logikprozessor.pl

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

    Der Logikprozessor erwartet, dass alle GAs mit DPTSubId in /etc/wiregate/eibga.conf eingepflegt sind. Das habe ich so gemacht, damit die Logikformulierung einfacher werden kann. Außerdem ist das bei mir sowieso der Fall (ALLE GAs sind korrekt gepflegt, nicht nur die, die ich zufälligerweise tatsächlich im WG brauche). Ich habe irgendwo auch mal gepostet, wie ich das mache -> Suchfunktion, ansonsten nochmal fragen.
    VG, sorry so knapp,
    Fry

    Kommentar


      Hallo Fry,

      habe heute meinen zweiten Wiregate Tag hinter mir und bin über einige Empfehlungen aus anderen Threads auf dein Tool gestossen...
      Ich kann dir gar nicht sagen, wie super ich das finde!!!
      Ganz grosse klasse - fantastische Arbeit.

      Nur der Thread hier wird schon ein wenig lang zum Einlesen.
      Aber nach ca. zwei Stunden (und den ersten 30 Posts) lief die erste Funktion.
      Mein Feedback: Ich habe lange versucht das eingangs gepostete PlugIn zum Laufen zu bringen, und das wollte einfach nicht.
      Erst als ich dann die aktuelle Version vom SVN geladen hatte hat es geklappt.

      Sehr herzlichen Dank!
      Christian
      Chris (https://proknx.com)
      wir haben ARAGON entwickelt, einen offline Sprachassistenten für KNX.

      Google, Amazon und Apple hätten das auch gekonnt. Aber sie verdienen eben besser an unseren persönlichen Daten...

      Kommentar


        Hi Christian,
        danke für dein Feedback, freut mich sehr. So soll es sein in einer Community: jeder profitiert von der Arbeit anderer.

        Aktuell profitiere ich beispielsweise (natürlich neben Makkis Arbeit am wiregated.pl und ChrisMs Arbeit an der CometVisu) sehr von Jumis und yuhus Arbeit an der Ebus-Anbindung. Da freut es mich, wenn ich auch etwas an die Community zurückgeben kann.

        Sieh dir gerne auch meine anderen Plugins an: Szenencontroller.pl, Ansagen.pl und Anwesenheitssimulation.pl.

        In Vorbereitung - noch nicht ausreichend getestet - ist dann noch der selbstoptimierende Multi-PID-Heizungsregler (das "D" steht für den vorausschauenden, differenzierenden Teil und ist wichtig bei trägen Fussbodenheizungen). Der kommt wegen meiner Bauverzögerung vielleicht nicht mehr rechtzeitig für diesen Winter.

        Have fun!
        Fry

        Kommentar


          Hallo Fry,

          ich bin endlich auch dazu gekommen Deinen Logiprozessor auszuprobieren, herzlichen Dank erst einmal für die tolle Arbeit!

          Leider habe ich aber noch ein paar Probleme, hier daher erst einmal die Codeschnipsel (die .pl und .conf sind beide ganz frisch aus dem SVN gezogen und per TextWrangler per SFPT editiert).

          Die .conf:
          Code:
          %logic=(
          
              TV_per_Licht => { receive=>'1/1/33', transmit=>['1/1/54','1/1/48'], translate => 1, debug=>1 },
              Fenster_Sued => { receive=>'1/1/34', transmit=>'1/1/48', translate => 1, debug=>1 },
              
              );
          Die Plugin-Log sagt folgendes:
          Code:
          2013-01-25 21:04:00.700,Logikprozessor,2 initialisiert, ,0s,
          2013-01-25 21:04:29.423,Logikprozessor,1.1.26 1/1/34: -> $logic{Fenster_Sued}{receive}(Logik) -> 1/1/48:1 gesendet ,0.3s,
          2013-01-25 21:04:32.361,Logikprozessor,1.1.26 1/1/34: -> $logic{Fenster_Sued}{receive}(Logik) -> 1/1/48:1 gesendet ,0.3s,
          2013-01-25 21:04:34.676,Googleweather,1,1.8s,
          2013-01-25 21:16:04.796,Logikprozessor,2 initialisiert, ,0.3s,
          2013-01-25 21:17:02.950,Logikprozessor,2 initialisiert, 1.1.26 1/1/34: -> $logic{Fenster_Sued}{receive}(Logik) -> 1/1/48:1 gesendet ,0.3s,
          2013-01-25 21:17:06.183,Logikprozessor,1.1.26 1/1/34: -> $logic{Fenster_Sued}{receive}(Logik) -> 1/1/48:1 gesendet ,0.3s,
          2013-01-25 21:18:21.363,Logikprozessor,1.1.26 1/1/34: -> $logic{Fenster_Sued}{receive}(Logik) -> 1/1/48:1 gesendet ,0.3s,
          2013-01-25 21:18:23.391,Logikprozessor,1.1.26 1/1/34: -> $logic{Fenster_Sued}{receive}(Logik) -> 1/1/48:1 gesendet ,0.3s,
          Und nun das KNX-Log
          Code:
          2013-01-25 17:11:07.671,A_GroupValue_Write,1.1.254,1/1/48,01,,,,0,low,7,T_DATA_XXX_REQ,0
          2013-01-25 20:45:20.135,A_GroupValue_Write,1.1.254,1/1/48,00,,,,0,low,7,T_DATA_XXX_REQ,0
          2013-01-25 21:17:47.231,A_GroupValue_Write,1.1.254,1/1/48,01,,,,0,low,7,T_DATA_XXX_REQ,0
          2013-01-25 21:17:50.800,A_GroupValue_Write,1.1.254,1/1/48,00,,,,0,low,7,T_DATA_XXX_REQ,0
          Ich habe das Gefühl, dass die transmit nicht sauber ausgeführt wird. Zum Vergeich habe ich per CV die gleiche Aktion auf der 1/1/48 ausgelöst, das funktioniert und wird auch entsprechend im KNX mitgeloggt. Insofern kann ich eine falsche GA ausschliessen

          Ne Idee was ich falsch mache? Die eibga.conf ist ok, alle diese Adressen sind dort eingetragen...

          Und wo ich schon dabei bin, kann ich in dem Plugin auch auch Werte einer Szene horchen und bspw. bei der 1/0/0 nur bei Wert 11 reagieren?

          Danke & Gruß,
          Hannatz

          Kommentar


            Hannatz -

            die beiden Logs scheinen nicht zusammen zu gehören, sieh mal auf die Uhrzeiten.

            eibga.conf muss eine DPTSubId für die benutzten GAs enthalten (nur die liest der Logikprozessor aus).

            Werte einer Szene: ja, das geht mit einem einfachen if() im translate. Beachte dass eine Szenen-GA die DPTSubId 5.010 hat und die übertragene Nummer die Nummer der Szene minus 1 ist (also für Szene 11 wird eine 10 ankommen).

            VG, Fry

            Kommentar


              Neues Plugin: Logikprozessor.pl

              Zitat von Fry Beitrag anzeigen
              Hannatz -

              die beiden Logs scheinen nicht zusammen zu gehören, sieh mal auf die Uhrzeiten.
              Doch, alles von heute Abend. Nur das die Events vom Plugin nicht auf dem KNX-Bus geschrieben werden!

              Die Sache mit der Eibga.conf hab ich noch nicht verstanden?! Bislang habe ich lediglich alle benötigten GAs dort manuell eingetragen...

              Kommentar


                Zitat von Hannatz Beitrag anzeigen
                Doch, alles von heute Abend. Nur das die Events vom Plugin nicht auf dem KNX-Bus geschrieben werden!

                Die Sache mit der Eibga.conf hab ich noch nicht verstanden?! Bislang habe ich lediglich alle benötigten GAs dort manuell eingetragen...
                Für das De- und Encodieren der Bustelegramme muss das Gerät den Datentyp des Telegramms kennen. Der Datentyp steht nicht im Telegramm selbst, sondern wird normalerweise von der ETS verwaltet und ist für jede GA eindeutig - eine mE sehr eigenartige Organisation. Da das Wiregate nicht über die ETS programmiert wird, muss man die Datentypen entweder bei jedem Lese/Schreibzugriff mit übergeben, oder man schreibt sie in die /etc/wiregate/eibga.conf rein (da gibt es auch eine Importfunktion von der ETS, oder such mal hier im Forum, man kann es auch so machen wie ich und baut eine Tabelle aller GAs mit Datentypen in Excel, die dann sowohl in die ETS als auch ins Wiregate importiert wird).

                Die /etc/wiregate/eibga.conf sieht dann so aus (Ausschnitt):

                Code:
                [1/5/191]
                DPTId = 5
                DPTSubId = 5.001
                name = LD_SZ_Wand2 Dimmwert setzen (LD) (Pear3 Kanal 7) DG Schlafzimmer
                [1/5/192]
                DPTId = 5
                DPTSubId = 5.001
                name = LD_SZ_Wand3 Dimmwert setzen (LD) (Pear3 Kanal 15) DG Schlafzimmer
                Auch der Logikprozessor verlässt sich darauf, dass die GAs hier gepflegt sind.

                VG, Fry

                Kommentar


                  Neues Plugin: Logikprozessor.pl

                  Hallo Fry,

                  ok, hab ich so gemacht (poste nachher am Rechner die Daten), klang irgendwie komplizierter...

                  Trotzdem, von den beiden Einträgen funktioniert nur der TV-Part obwohl identisch angelegt und GAs überprüft?!?

                  Kommentar


                    Wird denn was gesendet? Wenn ja, liegt es vielleicht am Empfänger?
                    Wenn die DPTId falsch ist (nicht die SubId, der ist das egal), dann ignoriert der Empfänger das Telegramm i.a.
                    Fry

                    Kommentar


                      Hey Fry,

                      hier die benutzten GAs aus der eibga.conf:

                      Code:
                      [1/1/33]
                      DPTId = 1
                      DPTSubId = 1.001
                      name = Wohnzimmer 1 Deckenbel.
                      
                      [1/1/34]
                      DPTId = 1
                      DPTSubId = 1.001
                      name = Esszimmer 1 Deckenbel.
                      
                      [1/1/48]
                      DPTId = 1
                      DPTSubId = 1.001
                      name = EG Steck. Fenster Sued
                      
                      [1/1/54]
                      DPTId = 1
                      DPTSubId = 1.001
                      name = Steck Wohnen jede 2te linke kombination
                      Spreche ich per CV die 1/1/48 an so wird sauber geschaltet, habe das extra mal als Vergleich eingebaut.
                      screen-capture.jpg
                      Wie gesagt, das Plugin schreibt ins Log das die Aktion sauber ausgeführt worden ist, der KNX-Log sagt nein!?
                      Habe schon mal die Reihenfolge der beiden Einträge vertauscht, aber daran liegt es nicht...

                      Kommentar


                        Wenn der eib.log keinen Eintrag zeigt, heißt das, das nichts auf den Bus geschrieben wurde. Poste doch mal die Logikdefinition und einen relevanten Ausschnitt aus der eib.log, dann sehe ich mir das an.
                        VG; Fry

                        Kommentar


                          Zitat von Hannatz Beitrag anzeigen

                          Wie gesagt, das Plugin schreibt ins Log das die Aktion sauber ausgeführt worden ist, der KNX-Log sagt nein!?
                          Ich habe öfters das selbe Problem. Ein Neustart des WG hat es bis jetzt immer gerichtet.

                          Kommentar


                            Hallo Fry,

                            ich habe die Tage noch ein wenig rumprobiert, alles ohne Erfolg. Der finale Reboot hat´s dann aber gerichtet, seitdem scheinen die Sachen alle zu funktionieren.
                            War etwas komisch,die als erste erstellte Logik funktionierte, der Rest dann nicht mehr. Denke es macht Sinn wenn Du als Empfehlung in die .conf den Hinweis auf den Reboot mit reinnimmst...
                            Achja, und der Name der jeweiligen Logikzeile darf nicht aus mehreren Wörtern bestehen, aber das schmeisst das Log sauber raus.

                            Danke noch einmal für Deine tolle Arbeit!!

                            Gruß Hannatz

                            Kommentar


                              Oh, jetzt hab ich's. Wenn man nur die .conf-Datei ändert, wird der Logikprozessor NICHT automatisch neu ausgeführt (das ist ein Bug/Feature vom WG: wenn Plugins geändert werden, werden sie automatisch neu ausgeführt, nicht aber wenn ihre conf-Dateien geändert werden).

                              Lösung: immer nach dem Ändern der conf-Datei kurz das Plugin selbst editieren und neu abspeichern.

                              Sorry, hätte ich mal sagen sollen.

                              (@Makki: kann man das vielleicht anpassen?)

                              VG, Fry

                              Kommentar


                                Neues Plugin: Logikprozessor.pl

                                Hey Fry,

                                das ist zwar richtig, war aber nicht das Problem! Hatte nach ein paar Fehlversuchen immer beide Dateien offen und jeweils geändert neu hochgeladen, erst die .conf und dann das Plugin selber. Dort lustig immer eine Leerzeile raus und beim nächsten Mal wieder rein...

                                Kommentar

                                Lädt...
                                X