Ankündigung

Einklappen
Keine Ankündigung bisher.

Astro Binding 2 - Channels and Offsets

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

    Astro Binding 2 - Channels and Offsets

    Hallo,

    möchte gerne drei verschiedene Regeln- abhängig vom Sonnenstand - anwenden:

    - Aktion 1 => bei Sonnenuntergang
    - Aktion 2 => 60 Minuten VOR Sonnenuntergang
    - Aktion 3 => 60 Minuten VOR Sonnenuntergang, aber nicht nach 18 Uhr

    laut Doku (http://docs.openhab.org/addons/bindi...ro/readme.html) soll das ja auch funktionieren.

    ich habe meine grundlegenden Things konfiguriert:

    Code:
    astro:sun:home  [ geolocation="78.534684130939446, 18.170885801315308", altitude=47, interval=60 ]
    astro:moon:home [ geolocation="78.534684130939446, 18.170885801315308", altitude=47, interval=60 ]
    Aktion 1 funktioniert auch

    Code:
    rule "switch light on"
            when
                    Channel 'astro:sun:home:set#event' triggered START
            then
                    sendCommand(LED, ON)
                    logInfo("FILE", "switch light ON...")
                    sendMail("x.x@y.,de", "Beleuchtung AN", "Beleuchtung AN")
    end
    ... und jetzt habe ich ein Verständnisproblem: wie definiere ich die Things korrekt, dass ich die entsprechenden Events zu den Aktionen in den Rules abfragen kann?

    Code:
    astro:sun:home  [ geolocation="78.534684130939446, 18.170885801315308", altitude=47, interval=60 ]
    
    astro:sun:home  [ geolocation="78.534684130939446, 18.170885801315308", altitude=47, interval=60 ]
       Channels: Type rangeEvent : set#event [
                offset=-60
            ]
    
    astro:sun:home  [ geolocation="78.534684130939446, 18.170885801315308", altitude=47, interval=60 ]
       Channels: Type rangeEvent : set#event [
                offset=-60
                latest="18:00"
            ]
    
    astro:moon:home [ geolocation="78.534684130939446, 18.170885801315308", altitude=47, interval=60 ]
    so funktioniert das bei mir nicht, bzw. es funktioniert immer nur eines: entweder genau zum Sonnenuntergang - oder eben 60 Min vorher :-(
    ich denke, dass es ja für jedes Event auch einen eindeutigen Namen geben muss - nur wie oder wo definiere ich den?
    oder muss ich in den Rules unterschiedlich abfragen ?

    Für sachdienliche Hinweise (vielleicht mit kurzem Beispiel? ) wäre ich dankbar !!

    Viele Grüße
    Andreas


    #2
    Das Problem ist, dass Du ein und denselben Channel für unterschiedliche Zwecke nutzen möchtest. darüber bin ich auch schon gestolpert, das geht so nicht. Du kannst aber einfach drei unterschiedliche Things anlegen (astro:sun:home1 astro:sun:home2 astro:sun:home3) und dort die channels unterschiedlich definieren. Alternativ suchst Du Dir andere Trigger heraus (immerhin gibt es ja noch civilDusk, NauticDusk, AstroDusk usw. - nur der Offset muss dann natürlich ein anderer sein).
    • sunRise und sunSet ist bei 0° Elevation,
    • civilDawn und civilDusk ist bei -6° Elevation,
    • nauticDawn und nauticDusk ist bei -12° Elevation und
    • astroDawn und astroDusk ist bei -18° Elevation

    Kommentar


      #3
      abachiman Schau mal hier => Klick <= so habe ich dies dann gelöst, da ich ein ähnliches "Problem" hatte ;-)

      Kommentar


        #4
        danke - ich habe das mal so umgebaut

        Code:
        astro:sun:home  [ geolocation="xx, yy", altitude=47, interval=60 ]
        
        astro:sun:home02  [ geolocation="xx, yy", altitude=47, interval=60 ] {
         Channels: Type rangeEvent : set#event [
          latest="18:00"
          ]
         }
        
        astro:sun:home03  [ geolocation="xx, yy", altitude=47, interval=60 ] {
         Channels: Type rangeEvent : set#event [
          offset=-60,
          latest="18:00"
          ]
         }
        und die Regeln entsprechend angepasst
        ... jetzt heisst es abwarten :-)

        ich hatte gehofft, dass ist die zu erwartenden Eventzeiten als Item in der Sitemap darstellen könnte - aber da steht nach wie vor die "astro:sun:home"-Zeit :-(

        Code:
        DateTime SunsetTime "Sonnenuntergang [%1$tH:%1$tM]"  { channel="astro:sun:home:set#start" }
        DateTime Lampen_an  "Lampen AN [%1$tH:%1$tM]"  { channel="astro:sun:home02:set#start" }
        DateTime Sunset_60_1800  "Sunset_60_1800 [%1$tH:%1$tM]"  { channel="astro:sun:home03:set#start" }

        Kommentar


          #5
          Die Konfiguration für die "range events" wirken sich auf die Channeltrigger aus, die Konfiguration für "start" und "end" auf das "DateTime" Objekt in den Items und damit auf die Anzeige in der Sitemap. Ein Beispiel findest du in der Doku unter "or a datetime offset" ...

          Habe ich am Anfang der Nutzung des Astro2 auch nicht gleich verstanden.

          Kommentar


            #6
            so ganz funktioniert das noch nicht:

            der Channel "astro:sun:home03" wird zwar (zumindest so weit ich das erkennen kann) gezogen, aber es scheint nur der Offset berücksichtigt zu werden :-(

            Sonnenuntergang = 21:03
            die Lampen gingen gestern um 20:03 an - obwohl ich bei latest=18:00 erwartet hätte, dass sie um 18:00 angehen hätten sollen ..

            hat jemand eine Idee, wie ich das noch weiter debuggen kann - oder mache ich (immer noch) irgendeinen Logik-Fehler ?

            Kommentar


              #7
              Ich persönlich habe die gleiche Feststellung gemacht, wenn ich per Textfile konfiguriert habe.
              Dann habe ich die Nerven verloren und per PaperUI eingestellt und alles wurde korrekt abgearbeitet.
              Ich kann aber nicht ausschließen, einen Fehler gemacht zu haben, obwohl ich jede nur erdenkliche Kombination ausprobiert habe.
              Vielleicht hat udo1toni noch eine Idee dazu ...

              Kommentar


                #8
                Zitat von abachiman Beitrag anzeigen
                so ganz funktioniert das noch nicht:

                der Channel "astro:sun:home03" wird zwar (zumindest so weit ich das erkennen kann) gezogen, aber es scheint nur der Offset berücksichtigt zu werden :-(

                Sonnenuntergang = 21:03
                die Lampen gingen gestern um 20:03 an - obwohl ich bei latest=18:00 erwartet hätte, dass sie um 18:00 angehen hätten sollen ..

                hat jemand eine Idee, wie ich das noch weiter debuggen kann - oder mache ich (immer noch) irgendeinen Logik-Fehler ?
                Hi,
                welchen Offset hast Du denn verwendet??

                Ein Event tritt ja nun einmal zu einem bestimmten Zeitpunkt ein.
                Hier der Sonnenuntergang um 21:03 (Die Stunde Unterschied schiebe ich mal auf ein Problem mit der Zeitzone?)
                Somit kann dies Even nicht mit latest um 18:00 stattfinden, da 18:00 deutlich VOR 21:03 Uhr liegt.

                Es sei denn, Du verwendest Offset um den Zeitpunkt "anzupassen".

                In diesem Beispiel musst Du den Zeitpunkt des Events VOR 18:00 Uhr ziehen => knapp mit offset=-184
                Das macht sicher wenig Sinn, da der Sonnenuntergang sich ja ständig verschiebt. Daher musst Du einen Wert wählen, der länger passt.
                z.B. offset=-210 ???

                Kommentar


                  #9
                  die Things/Channel-Konfig sieht so aus:
                  Code:
                  astro:sun:home  [ geolocation="xx, yy", altitude=47, interval=60 ]
                  
                  astro:sun:home02  [ geolocation="xx, yy", altitude=47, interval=60 ] {
                   Channels: Type rangeEvent : set#event [
                    latest="18:00"
                    ]
                   }
                  
                  astro:sun:home03  [ geolocation="xx, yy", altitude=47, interval=60 ] {
                   Channels: Type rangeEvent : set#event [
                    offset=-60,
                    latest="18:00"
                    ]
                   }
                  die "betroffene" Regel:
                  Code:
                  rule "lights on"
                       when
                            Channel 'astro:sun:home03:set#event' triggered START
                       then
                           sendCommand(Lampen, ON)
                           logInfo("FILE", "switch light ON...")
                           sendMail("x@y.com", "Lampen AN", "Lampen AN")
                  end
                  die Idee ist, dass das Licht eine Stunde vor Sonnenuntergang - spätestens aber um 18 Uhr - angehen soll.
                  Im Dezember ist Sonnenuntergang ja schon um 16:30 - da würde ich eben erwarten, dass das Licht um 15:30 angeht.

                  laut der Astro2-Doku (http://docs.openhab.org/addons/bindi...ro/readme.html) sollte das ja auch so funktionieren: (mal abgesehen davon, dass hier sun#set gemeint sein dürft - zumindest bei der Uhrzeit ;-)
                  Code:
                  e.g sun#rise earliest=18:00, latest=20:00
                  sunrise is 17:40, but earliest is set to 18:00 so the event/datetime value is moved to 18:00.
                  OR
                  [B]sunrise is 22:10 but latest is set to 20:00 so the event/datetime value is moved 20:00[/B].

                  Kommentar


                    #10
                    Stimmt, offensichtlich mein Fehler

                    Du bist aber auf der Snapshot Version 2.1.0, oder?

                    Kommentar


                      #11
                      äh - nö ...

                      Openhab: 2.0.0 (Release Version)
                      Astro-Binding: 2.0.0

                      Kommentar


                        #12
                        Ahhh, dann funktioniert das mit earliest/latest noch nicht

                        Dies kam leider erst kurz nachdem die 2.0.0 als stable Release freigegeben war im Snapshot 2.1.0
                        Da wirst Du umsteigen müssen, um dies zu nutzen.

                        Habe ich auch gerade vor 2 Tagen gelernt und praktiziert.

                        Snapshot Versionen sind in der Regel auch sehr stabil, habe ich mit OH1 bereits häufig eingesetzt.

                        Kommentar


                          #13
                          ok, das erklärt nicht alles ... aber einiges
                          in der Doku gibt es aber keinen Hinweis darauf, dass es sich auf die Snapshots und nicht die Stable bezieht, oder ?!?
                          ich mache mal ein Backup, stelle auf Snapshot um ... und beobachte

                          schon mal vielen Dank bis hierher!!!

                          Kommentar

                          Lädt...
                          X