Ankündigung

Einklappen
Keine Ankündigung bisher.

emx_uhr.pl: Sonnenauf/untergangs-abhängige Schltungen

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

    #16
    Ist nicht ganz richtig.

    bei 'sonnUntHH' handelt es sich um eine Funktion, deshalb muss das als Funktionsreferenz eingetragen werden, also so:

    Std=>&sonnUntHH(-1.0)

    und ebenso bei allen äquivalenten Aufrufen. Das Ampersand ist wichtig, damit der Wert als Referenz erkannt wird. Und die Klammern mit Parameter sollen auch immer angegeben werden, auch wenn der Parameter den Wert 0 (Null) hat. Die entsprechenden Funktionen muss man natürlich auch in die .conf Datei schreiben, sie sind ja nicht Teil des Plugins.

    > PS: Kann ich auch den Namen 'Licht_Flur' mit ins log ausgeben?

    Das geschieht automatisch, wenn Log=>'1' gesetzt ist, wie Du es ja auch gemacht hast.

    Lass dann mal hören, ob Du es hinbekommen hast.


    PS: Alle Werte die 'undef' sind, kann man auch komplett weglassen.
    Kein Support per PN: Fragen bzw. Fehlermeldungen bitte im Forum posten.

    Kommentar


      #17
      Danke für die Hilfe und die Erklärung dazu. Ich habe jetzt folgendes eingetragen, ist das richtig? Scheint laut log leider noch nicht zu funktionieren.
      Code:
      { Name=>'Licht_Flur', Aktiv=>'1', Std=>'&sonnUntHH(0)',   Min=> '&sonnUntMM(0)',  MTag=>undef, Mon=>undef, WTag=>undef, Wert=>'1', DPT=>'1', GA=>'5/0/2', Log=>'1' },
      { Name=>'Licht_Flur', Aktiv=>'1', Std=>'&sonnUntHH(0.5)',   Min=> '&sonnUntMM(0)',  MTag=>undef, Mon=>undef, WTag=>undef, Wert=>'0', DPT=>'1', GA=>'5/0/2', Log=>'1' },

      Kommentar


        #18
        Ich sehe keinen Fehler.

        Was steht den in der eib.log? Syntaktische Fehler müssten dort zu erkennen sein.
        Kein Support per PN: Fragen bzw. Fehlermeldungen bitte im Forum posten.

        Kommentar


          #19
          Ähm, vielleicht ist da doch ein Fehler, ich habe gerade keinen Zugriff auf eine Perl-Umgebung: Die Funktionsreferenz muss m.E. ohne Apostrophe angegeben werden.
          Kein Support per PN: Fragen bzw. Fehlermeldungen bitte im Forum posten.

          Kommentar


            #20
            So, hab gestern mal getestet. Wenn ich ohne Hochkommas arbeite kommen folgende Meldungen im log:

            Code:
            { Name=>'Licht_Flur', Aktiv=>'1', Std=>&[FONT=Courier New]sonnUntHH[/FONT](0), Min=>&[FONT=Courier New]sonnUntHH[/FONT](0), Wert=>'1', DPT=>'1', GA=>'2/0/5', Log=>'1' },
            Code:
            2013-02-26 15:09:00.374,emx_uhr,reading conf file [/etc/wiregate/plugin/generic/conf.d/emx_uhr.conf].
            2013-02-26 15:09:00.396,emx_uhr,ERR: conf file [/etc/wiregate/plugin/generic/conf.d/emx_uhr.conf] returned:
            2013-02-26 15:09:00.398,emx_uhr,--> Undefined subroutine &main::sonnUntHH called at (eval 7962) line 120, <CONF> line 602022.

            Kommentar


              #21
              Lesen hilft:

              Zitat von emax Beitrag anzeigen
              Die entsprechenden Funktionen muss man natürlich auch in die .conf Datei schreiben, sie sind ja nicht Teil des Plugins.
              Kein Support per PN: Fragen bzw. Fehlermeldungen bitte im Forum posten.

              Kommentar


                #22
                In Ermangelung einer Rückmeldung: Wie siehts denn aus, hat das geklappt?
                Kein Support per PN: Fragen bzw. Fehlermeldungen bitte im Forum posten.

                Kommentar


                  #23
                  Hallo emax,

                  vielen Dank für dieses tolle und "simple" plugin! Sehr gut dokumentiert und einfach einzurichten. Und, es funktioniert!

                  Ich habe es so verstanden, daß ich das emx_sonne.pl in emx_uhr integrieren muß. Dazu habe ich die eine config kopiert und in die andere eingefügt.
                  Und die Rollläden funktionieren perfekt. Aber die Schaltuhr nicht. Als Laie hab ich natürlich keine Ahnung an welche Stelle in der config ich einfügen muß, vor oder hinter welchen "Hieroglyphen"...

                  Viele Grüße
                  Andreas

                  Kommentar


                    #24
                    Das emx_sonne.pl Plugin muss nirgendwo integriert werden. Es muss nur laufen, sonst nichts.

                    Wenn es das tut, schreibt es jeden Tag ein mal alle relevanten Werte für den Sonnen Auf- bzw. Untergang in den %plugin_info hash.

                    Darum musst Du Dich aber gar nicht kümmern, einfach nur laufen lassen, fertig.

                    Um diese Werte nun nutzen zu können, musst die die entsprechenden Funktionen wie zuvor dokumentiert in deine emx_uhr.conf einfügen. Das findest Du gleich im ersten Beitrag dieses Threads im ersten 'Code' Absatz. Es sind die vier 'sub' Funktionen vor den @Zeiten Einträgen.

                    Hast Du das so gemacht?

                    Im Zweifel kopierst Du Dir das komplette Beispiel aus Beitrag #1 und änderst bzw. ergänzt/löschst die @Zeiten Einträge so wie es für die passt.
                    Kein Support per PN: Fragen bzw. Fehlermeldungen bitte im Forum posten.

                    Kommentar


                      #25
                      Hallo emax,

                      ja, hatte ich eigentlich alles richtig gemacht, so wie du beschrieben hast. Ich meinte natürlich nicht das emx_sonne.pl, sondern das Zusammenführen/Kopieren der beiden config; bißchen wirr beschrieben, sorry.

                      Habe grade rausgefunden, daß ich bei meinem Problem in der Schaltuhr den Wert=>'1' gesetzt hatte. Richtig ist '0'... das war's dann.

                      Nun läuft alles perfekt, Zeitschaltuhr, sowie Sonnenstand abhängiges Rollladenfahren. Die Freude ist groß und mein Dank an Dich auch!

                      Komfortabel sind die einstellbaren Verzögerungen, somit kann ich rund um's Haus zu unterschiedlichen Zeiten die Rollläden runterfahren lassen, zur Straße hin früher, zum Garten später.

                      Die Zeitschaltuhr ist auch einfach zu bestücken; dein Vorschlag, vorübergehend einen Eintrag "abzuschalten", statt zu löschen, ist übersichtlich.

                      Aber der Hit ist die Kombination von beiden!!

                      Die Möglichkeit, jeden Tag im Jahr zur Dämmerung (wahlweise +/-) die Rollläden runter zu fahren, macht ja auch Sinn. Aber so etwa ab heute, also während der Sommerzeit, per Zeitschaltuhr morgens zu einer festen Zeit hochzufahren und nicht schon um 4 Uhr durch grelles Sonnenlicht geweckt zu werden: das findet meine Frau sehr smart! Ich auch.

                      Also pro Rollladen einen Eintrag etwa so
                      Std=>&sonnUntHH(0.25), Min=>&sonnUntMM(0.25)
                      für den täglichen Sonnenuntergang, einen zweiten
                      Std=>&sonnAufHH(1.0), Min=>&sonnAufMM(1.0), Mon=>10-2

                      und einen dritten als Zeitschaltpunkt
                      Mon=>'3-9', Std=>'7', Min=>'00'


                      Vielleicht könnte man das ja auch posten in dem thread "Wetterstation unter 500 EUR"... und als Gimmik ein wiregate dazu.

                      Was braucht der Mensch mehr?

                      Andreas

                      Kommentar


                        #26
                        Freut mich sehr zu hören. Und tatsächlich sind die genannten Funktionen im Zusammenspiel mit diesem wunderbaren, kleinen Linux-Rechner jeder Zeitschaltuhr haushoch überlegen - sofern man ein paar Zeilen Perl zu schreiben nicht scheut.

                        Meine Läden gehen im Abstand von 1-2 Minuten einer nach dem anderen hoch (wenn sie alle gleichzeitig loslaufen, ist die Automatik von aussen ja unübersehbar). Und da das jeden Tag zu einer anderen Uhrzeit passiert, ist nicht auf Anhieb erkennbar, ob jemand zuhause ist oder nicht.

                        Man könnte nach dem Runterfahren noch für zwei Minuten das Licht drinnen anmachen, dann ist die Illusion sogar noch besser. Ebenso vor dem Hochfahren: Vorher ein drinnen paar Minuten Licht machen, dann ausschalten und hoch mit den Läden ...

                        Ich hab hier übrigens auch die Weihnachts-Außenbeleuchtung mit dranhängen.

                        Und dann hab ich noch eine Idee:

                        Code:
                        [FONT="Courier New"]Name=>'Rollladen', Aktiv=>'1', Std=>'&sonnUntHH(0)',   
                          Min=> '&sonnUntMM(0)', Wert=>'1', DPT=>'1', 
                          [COLOR="Red"][B]Dauer=>'7'[/B][/COLOR], GA=>'5/0/2', Log=>'1'[/FONT]
                        Dauer ist das Schlüsselwort. Im o.g. Beispiel liefe der Rollladen für sieben Sekunden (also z.B. ca. halb herunter). So könnte man den Laden kurz vor Sonnenuntergang halb runter fahren, und später ganz. Oder morgens erst mal anlupfen, und später (mit einem zweiten Eintrag) dann ganz hoch. Allerdings ist klar, dass die Steuerung nur 'ungefähr' auf eine Sekunde genau wäre, was aber für viele Sachen ausreichen müsste.

                        Mal sehen ob ich mal die Zeit dazu finde.
                        Kein Support per PN: Fragen bzw. Fehlermeldungen bitte im Forum posten.

                        Kommentar


                          #27
                          @emax: ich muss das nochmal wiederholen: ich bin echt von den Socken, was man mit Plugins (die für sowas nicht wirklich designed wurden) machen kann

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

                          Kommentar


                            #28
                            Das darfst Du Dir gerne auch selber ans Revers heften: Das Wiregate ist das Genialste, was ich seit Langem gesehen habe, ehrlich.

                            Zwar ist die Hardware nicht aussergewöhnlich. Auch Linux ist nicht aussergewöhnlich. Aber die Kombination zusammen mit dem EIB-Interface, und dann die Möglichkeit des Scriptings: DAS ist genial! Und das bei einem Stromverbrauch der denjenigen so manchen Netzteils im Standby-Betrieb nicht überschreitet.

                            Hinzu kommen die Synergieeffekte einer Open-Source Plattform. Viele kleine Teile ergeben zusammen eben mehr als nur die Summe aller Teile.

                            Ich hatte es zwar schon mal geschrieben, aber ich wiederhole es gerne noch mal: Da habt Ihr was Tolles auf die Beine gestellt, zu einem in der gesamten EIB-Welt unschlagbaren Preis/Leistungverhältnis.
                            Kein Support per PN: Fragen bzw. Fehlermeldungen bitte im Forum posten.

                            Kommentar


                              #29
                              Danke, das tut echt auch mal gut!
                              Auch wenns jetzt OT wird, man bekommt ja meistens im Support-Forum nur Probleme ins Gesicht, kaum einer der hunderten sagt was toll funktioniert (ist ja auch normal, mache ich nicht anders, ich nöhle auch nur wenns nicht geht..)
                              Oder dann die Pissnelken (tschuldingung schonmal) die es auf ihrem Rpi nicht ans laufen bekommen obwohl es alles OSS ist und sie es selbst ändern könnten und daraus dann Vorwürfe konstruieren, weil meine OSS nicht zu ihrem Image passt.. Und sie es nicht hinbekommen, das Problem selber zu lösen--
                              Musste ich mal sagen, nochmal sorry

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

                              Kommentar


                                #30
                                Perl ist doch anders...

                                Hallo Emax,
                                leider läuft das emx_sonne.pl bei mir spontan nicht -glaube ich zumindest. Vielleicht verstehe ich Perl aber auch nur noch nicht. Was machen eigentlich folgende Zeilen:
                                ($plugin_info{"$plugname.tag"} != $yday ||
                                $plugin_info{"$plugname.laenge"} != $Laenge ||
                                $plugin_info{"$plugname.breite"} != $Breite) and
                                &calculateSun($yday, $timezone);
                                Vermute ich richtig, dass die Auf- und Untergangszeiten nur berechnet werden, wenn sich der Tag, der Längen- oder der Breitengrad geändert hat?
                                Wenn ja, wäre das gleichbedeutend mit einer if-Abfrage, die dann
                                if {$plugin_info{"$plugname.tag"} != $yday ||
                                $plugin_info{"$plugname.laenge"} != $Laenge ||
                                $plugin_info{"$plugname.breite"} != $Breite}
                                &calculateSun($yday, $timezone);
                                heißen würde?
                                Wenn ich jedenfalls die ersten 3 Zeilen auskommentiere, werden die Auf- und Untergangszeiten berechnet. Zumindest einmal nach dem Speichern. Mal sehen, ob sie sich ich morgen ändern.

                                Dann kommt Problem 2:
                                was genau muss ich in emx_uhr eintragen, um die Zeiten auch benutzen zu können?

                                Std=>&emx_sonne.pl.sonnUntMM(0) gibt folgende Fehlermeldung:
                                --> Bareword "pl" not allowed while "strict subs" in use
                                Std=>&sonnUntMM(0)ergibt diese:
                                --> Undefined subroutine &main::sonnUntHH

                                was fehlt mir?
                                bestimmt irgendwas Grundsätzliches zur Kommunikation zwischen
                                den Plugins...

                                Danke schon mal für die Hilfe!
                                Swantje

                                Kommentar

                                Lädt...
                                X