Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin: Anwesenheitssimulation

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

    #16
    Korrektur: die Empfehlung, eib.log nur wöchentlich zu rotieren, führte trotz Begrenzung auf 15M zu Dateien, die >45M groß waren. Das brachte (vermutlich) das ganzes Wiregate in Schwierigkeiten bei der Logrotation.

    DAHER NEHME ICH DIESE EMPFEHLUNG ZURÜCK!

    Bitte eib.log täglich rotieren.

    Neue, dazu Version der Anwesenheitssimulation im SVN.

    VG,
    Fry

    Kommentar


      #17
      Guten Abend,

      wollte mal fragen ob nun jemand dieses Plugin in Betrieb hat.
      Denn bei mir glaube ich noch einen Fehler drin zu haben.
      Es funktioniert ein "AnwSimSkript.pl" automatisch zu erstellen und auch die Simulation zu starten.
      Doch ich bekomme es nicht hin das die Werte gesendet werden.
      In der AnwSimSkript.pl stehen Uhrzeiten und GA und Wert drin.
      Code:
      [37358,'2013-06-30 18:04:17', '1/2/162',1,1.001, ],
      [37359,'2013-06-30 18:04:18', '1/2/162',0,1.001, ],
      Auch in dem Pluginlog wird das ausführen des Plugins dokumentiert.
      Code:
      2013-07-04 19:12:13.317,AnwSimSkript.pl,(->89s bis 2013-07-04 18:13:42),0s, 2013-07-04 19:13:43.367,AnwSimSkript.pl,Wiederhole 2013-07-04 18:13:42: knx_write(1/1/201,1,1.001); (->380s bis 2013-07-04 18:20:03),0s, 2013-07-04 19:20:04.553,AnwSimSkript.pl,Wiederhole 2013-07-04 18:20:03: knx_write(1/1/201,0,1.001); (->25s bis 2013-07-04 18:20:30),0s, 2013-07-04 19:20:29.828,AnwSimSkript.pl,Wiederhole 2013-07-04 18:20:30: knx_write(1/1/201,1,1.001); (->54s bis 2013-07-04 18:21:24),0s, 2013-07-04 19:21:24.453,AnwSimSkript.pl,Wiederhole 2013-07-04 18:21:24: knx_write(1/1/201,0,1.001); (->1s bis 2013-06-30 07:41:39),0.3s,
      Doch im EIB.log tauchen die knxwrite nicht auf und auch bei den Lichtern tut sich nichts.

      Muss ich das Senden noch irgendwo freigeben?

      Schöne Grüße

      Stefan

      Kommentar


        #18
        In der Tat ist in der SVN-Version aus Vorsichtsgründen das eigentliche Senden der Werte noch deaktiviert.
        Bitte schau ins Skript und ändere Zeile 179:

        ALT:
        Code:
            print SIM "\t\t".'# knx_write($ga, $val, $dpt);'."\n";
        NEU:
        Code:
            print SIM "\t\t".'knx_write($ga, $val, $dpt);'."\n";
        Dann sollte es funktionieren.
        VG, Fry

        Kommentar


          #19
          Vielen Dank Fry,

          jetzt mit deinem Hinweis ist es klar. Doch vorher habe ich diese Zeile nicht gefunden und wo anders nach einem Fehler gesucht.
          Werde es haute gleich mal testweise laufen lassen.

          Schönes Wochenende

          Stefan

          Kommentar


            #20
            Hallo,

            ich versuche gerade das Plugin zum Laufen zu bringen (neuste Version aus dem SVN). Dabei habe ich die folgende Fehlermeldung im plugin-Log.

            Code:
            2013-07-22 21:23:44.667,Anwesenheitssimulation,,0s,syntax error at (eval 111299) line 26, next token ???
            Global symbol "@gafilter" requires explicit package name at (eval 111299) line 26.
            Global symbol "@gafilter" requires explicit package name at (eval 111299) line 96.
            Global symbol "@gafilter" requires explicit package name at (eval 111299) line 96.
            Global symbol "@gafilter" requires explicit package name at (eval 111299) line 97.
            Ich bin in Sachen perl ein blutiger Anfänger. Was mache ich falsch?

            Gruß,
            Peter

            Kommentar


              #21
              Zeig doch mal den Code rund um Zeile 26. Kann es sein, dass du beim Editieren das "my" entfernt hast?
              Vg; Fry

              Kommentar


                #22
                Das ist der Code um Zeile 26:

                Code:
                # gafilter ist die Liste der validen GAs (koennen auch Kurz- oder Langnamen sein)
                # Beispiel: alle GAs der Haupt- und Mittelgruppe 6/2 und 6/3:
                # my @gafilter=grep m!^(6/2/|6/3/)!, keys %eibgaconf;
                
                # 0/1 Licht/Schalten
                # 2/0 Jalousie und Rolladen/Fahren
                my @gafilter=grep m!^(0/1/|2/0/)!, keys %eibgaconf;
                
                # Ich verwende GA-Kurznamen (das erste Wort der GA-Bezeichnung ist ein eindeutiger Bezeichner der GA) und 
                # kann daher etwas komfortabler schreiben:
                #my @gafilter=grep /^(LI|LD|JA|JS|JP)\S*$/, keys %eibgaconf;
                # das bedeutet: alle Lichtschalt- und -dimmaktionen, alle Jalousiebefehle.
                Gruß,
                Peter

                Kommentar


                  #23
                  Sorry, da kann ich nichts erkennen. Die eine Zeile ist jedenfalls syntaktisch korrekt. Die Kommentare drumherum sind ja syntaktisch einfach nur whitespace, daher bitte nochmal ein paar Codezeilen davor und danach.
                  Da fehlt vielleicht ein ";" oder Anführungsstriche, oder sowas.
                  VG, Fry

                  Kommentar


                    #24
                    Hallo Fry,

                    Volltreffer, das Semikolon der Anweisung davor fehlte.

                    Vielen Dank für Deinen Support,
                    Peter

                    Kommentar


                      #25
                      Kurzer Erfahrungsbericht: während einer einwöchigen Reise lief bei mir daheim die Anwesenheitssimulation, generiert aus der Woche davor:
                      * Lichter an und aus
                      * Jalousien hoch und runter

                      Ergebnis:
                      * Simulation lief störungsfrei (kann man vom Mietwagen im Urlaub nicht behaupten)
                      * Stromverbrauch in Abwesenheit kaum geringer als in Anwesenheit (echtes Zeichen für Luxus)
                      * es wurde nicht eingebrochen (in Analogie zur NSA ist das bereits der Beweis dafür, dass die Technik nützlich ist...)

                      Have fun,
                      Fry

                      PS. Ich habe noch ein paar Verbesserungen ins Plugin eingearbeitet, vor allem um in der Visu die nächste Aktion anzeigen zu können (nette Sache). Poste ich auf Anfrage und sobald ElabNet die wiregated.pl-Änderungen übernommen hat (if->while, %plugin_cache, Vorkompilieren) - apropos, gibts das SVN eigentlich noch?

                      Kommentar


                        #26
                        Frohe Weihnachten, hallo Fry,

                        hast du deine neue Version schon ins SVN gestellt?
                        Oder kannst du es bitte mal mit deinen Änderungen posten und wie ich die nächste Aktion in der CV anzeigen lassen kann.

                        Oder ist dies ohne die Änderung der wiregated.pl nicht möglich?

                        Schöne Grüße

                        Stefan

                        Kommentar


                          #27
                          Anbei, Datei bitte in Anwesenheitssimulation.pl umbenennen, Konfiguration ist in den ersten Zeilen zu finden.

                          Meines Wissens erfordert dieses Plugin keine Patches im wiregated.pl, ich teste aber nicht mit dem Original-wiregated.pl (und supporte ihn auch nicht)!

                          Daher empfehle ich die von mir angeregten Patches (den if/while-Patch, den "Vorkompilieren"-Patch und den %plugin_cache-Patch) zu machen.

                          VG, Fry
                          Angehängte Dateien

                          Kommentar


                            #28
                            Hallo Fry,

                            bin gerade dabei, dein Skript zu testen. Leider bekomme ich das nicht zum Laufen. Hast du einen Tipp?

                            Ist meine erste Plugin-Handlung am wiregate. Wiregate ist aktuell, aktuellstes offizielles Update installiert.

                            Dein Plugin (letzte Version aus Thread) habe ich im Web-Plugin-Editor des Wiregate mit Copy&Paste abgelegt.

                            In der ETS habe ich ein paar Gruppenadressen angelegt, u.a. für erzeugen und starten. Diese habe ich auf einen Taster bei mir gelegt.

                            Das Plugin läuft grundsätzlich -- es wird offenbar nach dem Speichern des Plugin-Code im Editor einmal ausgeführt. Danach aber nicht mehr.

                            Die Gruppenadresse für $erzeugen taucht im eibd.log auf, ebenso $starten. Wenn ich $starten mache (Taster = Umschalter), kommen die Werte 1 und 0 auf den Bus, das Skript gibt in diesen beiden Fällen "Anwesenheitssimulation gestoppt" aus (sieht man im plugin-log). Ein Skript /etc/wiregate/plugin/AnwSimSkript.pl wird nicht erzeugt. Bei $erzeugen kommt im plugin-log nix an.

                            Kurz: Offenbar wird dein Skript nicht ausgeführt bei den Gruppenadressen. Ich habe $erzeugen (mit Wert 1) und $starten (mit Werten 1 und 0) gesendet.

                            Konfiguriert habe ich nur im oberen Teil des Skript, die Gruppenadressen habe ich direkt eingetragen -- denke also eigentlich, dass ich da nix verbockt hab. use_shorts habe ich auf 0 gesetzt, gafilter auch mit der direkten Syntax (wie im Kommentar).

                            Gruß
                            Stefan

                            Kommentar


                              #29
                              Hallo Stefan,

                              sind denn die Gruppenadressen im Wiregate angelegt?
                              Meines Wissen wird dies für das Plugin vorrausgesetzt.

                              Entweder über CSV Import von der ETS oder händisch im Menü
                              Wiregate > EIB/KNX Buszugriff > Gruppenadressen bearbeiten

                              Schöne Grüße

                              Stefan

                              Kommentar


                                #30
                                Hallo Stefan,
                                gerade das Plugin Anwesenheitssimulation ist relativ trickreich. Es erzeugt seinerseits ein Plugin und startet dieses. Vielleicht experimentierst du zuerst mit einfacheren Plugins, bevor du dich an dieses machst.

                                Konkret: alle benutzten Gruppenadressen müssen in /etc/wiregate/eibga.conf inklusive ihrer DPTSubIds eingepflegt sein.

                                Zweitens: Wie hast du das Plugin konfiguriert? Kannst du den Codeausschnitt mal hier posten?

                                Drittens: was zeigt sich im /var/log/wiregate_plugin.log?

                                Aktuell steht noch ein Update des wiregate-Daemons aus, in dem (hoffentlich) einige von mir vorgeschlagene Patches drin sein werden (%plugin_cache, Vorkompilieren, if/while). Für die Anwesenheitssimulation sind die (vielleicht) nicht so wichtig, ich weise aber grundsätzlich darauf hin, dass ich alle Plugins bei mir zu Hause mittlerweile weiterentwickelt habe und die alten Versionen auf dem alten Daemon nicht mehr testen/supporten kann. Wie gesagt, das wir hier aber nicht so das Problem sein...

                                Am einfachsten ist es vielleicht, du wartest einfach 1-2 Monate. Bis dann sollten die Daemon-Patches da sein, und ich werde dann die neuesten Versionen aller meiner Plugins ins SVN tun. Dann sollte auch alles klappen.

                                Have fun,
                                Fry

                                Kommentar

                                Lädt...
                                X