Ankündigung

Einklappen
Keine Ankündigung bisher.

Regel zieht nur teilweise

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

    Regel zieht nur teilweise

    Hallo mal wieder,

    ich bin weiterhin dabei, mir die verbleibenden Haare zu raufen dank OH2 :-)

    Es gibt eine Regel, die beim Öffnen oder Schliessen von Fenstern eine Mail absetzt. Mail als solches klappt, allerdings wird nicht bei allen Fenstern eine Mail abgesetzt - und ich komme nicht hinter das Problem

    Code:
    rule "Window opened"
        when
            Item Fenster_WoZi_Balkon changed from CLOSED to OPEN or
            Item Fenster_Kueche_Ost changed from CLOSED to OPEN or
            Item Fenster_WoZi_Ost changed from CLOSED to OPEN or
            Item Fenster_Treppenhaus changed from CLOSED to OPEN
        then
            sendMail("hierstehtmeineemail", "Fenster geöffnet", "Ein Fenster wurde am "+ Date.state.format("%tD") +" um " + Date.state.format("%tr")+" geöffnet")
    end
    
    rule "Window closed"
        when
            Item Fenster_WoZi_Balkon changed from OPEN to CLOSED or
            Item Fenster_Kueche_Ost changed from OPEN to CLOSED or
            Item Fenster_WoZi_Ost changed from OPEN to CLOSED or
            Item Fenster_Treppenhaus changed from OPEN to CLOSED
        then
            sendMail("hierstehtmeineemail", "Fenster geschlossen", "Ein Fenster wurde am "+ Date.state.format("%tD") +" um " + Date.state.format("%tr")+" geschlossen")
    end
    Kueche_Ost und Treppenhaus triggern eine Mail, die anderen Items nicht. Die Items werden korrekt in der Konsole angezeigt und auch die Stati Fenster offen / geschlossen funktionieren.
    Die Events für Balkon und WoZi_Ost können aber seltsamerweise auch keine andere Aktionen auslösen (testweise habe ich damit mal ein Licht-Item verbunden, das geht lustigerweise auch nur mit Treppenhaus und Küche).

    [EDIT]
    Muss ich etwas revidieren, BALKON schaltet sehr wohl eine anderes Licht_Item (war schon verknüpft) - ich kann nur kein weiteres Item schalten lassen...völlig strange
    [/EDIT]

    Alle Items sind identisch nach folgendem Schema konfiguriert
    Code:
    Contact Fenster_Kueche_Ost         "Küche Ost"                <window>            (gWindows,gWindows_EG)    { knx = "1.019:9/0/1" }
    Contact Fenster_Wozi_Ost        "Wohnen Ost"            <window>            (gWindows,gWindows_EG)    { knx = "1.019:9/0/2" }
    DPTs sind identisch, vier von sechs Kontakten hängen an einem MDT BE, zwei jeweils separat an Jung UP JA Aktoren. Die drei "unwilligen" Items nutzen den MDT. Wie gesagt, Stati der Fenster (als CONTACT Items) wird fehlerfrei angezeigt (OPEN/CLOSED). Ich steht auf dem Schlauch...

    Any ideas?
    Danke
    Gruss
    Frank
    Zuletzt geändert von zaphood; 05.03.2017, 12:26.

    #2
    Sicher, dass die Items zuverlässig direkt vom einen in den anderen Zustand wechseln? Es könnte sein, dass die Items zwischendrin undefined oder null enthalten.

    Kommentar


      #3
      Danke für die Idee, ich hab's gerade mal getestet:

      Code:
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:42.682 [ItemStateChangedEvent ] - Fenster_Wozi_Balkon changed from CLOSED to OPEN
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:42.690 [GroupItemStateChangedEvent] - gWindows changed from CLOSED to OPEN through Fenster_Wozi_Balkon
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:42.690 [GroupItemStateChangedEvent] - gWindows_EG changed from CLOSED to UNDEF through Fenster_Wozi_Balkon
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:42.727 [ItemCommandEvent ] - Item 'Licht_Balkon' received command ON
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:42.820 [GroupItemStateChangedEvent] - gAussen changed from OFF to UNDEF through Licht_Balkon
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:42.824 [ItemStateChangedEvent ] - Licht_Balkon changed from OFF to ON
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:44.229 [GroupItemStateChangedEvent] - gWindows changed from OPEN to CLOSED through Fenster_Wozi_Balkon
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:44.234 [ItemStateChangedEvent ] - Fenster_Wozi_Balkon changed from OPEN to CLOSED
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:44.235 [GroupItemStateChangedEvent] - gWindows_EG changed from UNDEF to CLOSED through Fenster_Wozi_Balkon
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:44.260 [ItemCommandEvent ] - Item 'Licht_Balkon' received command OFF
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:44.342 [GroupItemStateChangedEvent] - gAussen changed from UNDEF to OFF through Licht_Balkon
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:44.346 [ItemStateChangedEvent ] - Licht_Balkon changed from ON to OFF
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:48.478 [ItemStateChangedEvent ] - Fenster_Wozi_Sued changed from CLOSED to OPEN
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:48.482 [GroupItemStateChangedEvent] - gWindows changed from CLOSED to OPEN through Fenster_Wozi_Sued
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:48.484 [GroupItemStateChangedEvent] - gWindows_EG changed from CLOSED to UNDEF through Fenster_Wozi_Sued
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:48.548 [ItemStateChangedEvent ] - Esse changed from OFF to ON
      [09:34:36] pi@openhab:~$ 2017-03-05 09:33:49.887 [GroupItemStateChangedEvent] - gWindows changed from OPEN to CLOSED through Fenster_Wozi_Sued
      [09:34:37] pi@openhab:~$ 2017-03-05 09:33:49.887 [ItemStateChangedEvent ] - Fenster_Wozi_Sued changed from OPEN to CLOSED
      [09:34:37] pi@openhab:~$ 2017-03-05 09:33:49.893 [GroupItemStateChangedEvent] - gWindows_EG changed from UNDEF to CLOSED through Fenster_Wozi_Sued
      [09:34:37] pi@openhab:~$ 2017-03-05 09:33:49.932 [ItemStateChangedEvent ] - Esse changed from ON to OFF
      [09:34:37] pi@openhab:~$ 2017-03-05 09:33:59.642 [ItemStateChangedEvent ] - Fenster_Kueche_Ost changed from CLOSED to OPEN
      [09:34:37] pi@openhab:~$ 2017-03-05 09:33:59.646 [GroupItemStateChangedEvent] - gWindows_EG changed from CLOSED to UNDEF through Fenster_Kueche_Ost
      [09:34:37] pi@openhab:~$ 2017-03-05 09:33:59.648 [GroupItemStateChangedEvent] - gWindows changed from CLOSED to OPEN through Fenster_Kueche_Ost
      [09:34:37] pi@openhab:~$ 2017-03-05 09:33:59.690 [ItemStateChangedEvent ] - Esse changed from OFF to ON
      [09:34:37] pi@openhab:~$ 2017-03-05 09:34:01.821 [GroupItemStateChangedEvent] - gWindows changed from OPEN to CLOSED through Fenster_Kueche_Ost
      [09:34:37] pi@openhab:~$ 2017-03-05 09:34:01.828 [ItemStateChangedEvent ] - Fenster_Kueche_Ost changed from OPEN to CLOSED
      Erkenntnis für mich:
      - Kein UNDEF bei den Items (nur bei den Gruppen, aber die schalten nix)
      - ABER: Das Aussenlicht schaltet via Balkontür, die wiederum bei der Mailregel und einem anderen Test mit einem Licht nicht funktioniert.

      Vlt. hab ich ja nen Knick in der Optik und doch nen Typo?

      windows.items
      Code:
      /* Windows EG */
      Contact Fenster_Kueche_Ost "Küche Ost" <window> (gWindows,gWindows_EG) { knx = "1.019:9/0/1" }
      Contact Fenster_Wozi_Ost "Wohnen Ost" <window> (gWindows,gWindows_EG) { knx = "1.019:9/0/2" }
      Contact Fenster_Wozi_Sued "Wohnen Süd" <window> (gWindows,gWindows_EG) { knx = "1.019:9/0/3" }
      Contact Fenster_Wozi_Balkon "Balkontür" <door> (gWindows,gWindows_EG) { knx = "1.019:9/0/4" }
      
      /* Windows DG */
      Contact Fenster_Treppenhaus "Treppenhaus" <window> (gWindows,gWindows_OG) { knx = "1.019:9/1/0" }
      Contact Fenster_Gaeste_West "Gaestezimmer West" <window> (gWindows,gWindows_OG) { knx = "1.019:9/1/1" }
      windows.rules
      Code:
      rule "Window opened"
      when
      Item Fenster_WoZi_Balkon changed from CLOSED to OPEN or
      Item Fenster_Kueche_Ost changed from CLOSED to OPEN or
      Item Fenster_WoZi_Ost changed from CLOSED to OPEN or
      Item Fenster_WoZi_Sued changed from CLOSED to OPEN or
      Item Fenster_Gaeste_West changed from CLOSED to OPEN or
      Item Fenster_Treppenhaus changed from CLOSED to OPEN
      then
      sendMail("mailgoeshere", "Fenster geöffnet", "Ein Fenster wurde am "+ Date.state.format("%tD") +" um " + Date.state.format("%tr")+" geöffnet")
      end
      
      rule "Window closed"
      when
      Item Fenster_WoZi_Balkon changed from OPEN to CLOSED or
      Item Fenster_Kueche_Ost changed from OPEN to CLOSED or
      Item Fenster_WoZi_Ost changed from OPEN to CLOSED or
      Item Fenster_WoZi_Sued changed from OPEN to CLOSED or
      Item Fenster_Gaeste_West changed from OPEN to CLOSED or
      Item Fenster_Treppenhaus changed from OPEN to CLOSED or
      then
      sendMail("mailgoeshere", "Fenster geschlossen", "Ein Fenster wurde am "+ Date.state.format("%tD") +" um " + Date.state.format("%tr")+" geschlossen")
      end

      Kommentar


        #4
        Ich hatte bei OH2 mal das problem, dass Regeln aus unerfindlichen Gründen nicht richtig gezogen habe. In meinem Fall waren es syntax fehler irgendwo in meinem Rules file.
        Mir ist das erst aufgefallen, nachdem ich auf OH2.1 gewechelt bin (nightly) und dort ein Regelparser direkt die Fehler anmeckert. Vielleicht ein Weg für dicht.

        Anderer Ansatz, versche mal die Anzahl der OR Bedinungen zu reduzieren und zwei oder drei Regeln daraus zu machen...

        Kommentar


          #5
          Danke für den Tip, ich baue gerade einen zweiten RPi mit den Nightly Builds auf. Scheint, dass es zwischen der 2.0.0-1 und den aktuellen Builds schon erhebliche Unterschiede gibt.

          Ich habe das auch schon so gelöst, dass ich für jedes Fenster eine eigene Rule angelegt habe, das hat zu den selben Ergebnissen geführt. Darum bin ich ja so ratlos, der Fehler ergibt irgendwie kein logisches Muster. Bezgl. Typo, siehst du im Post einen der mir entgangen ist? Manchmal sieht man den Wald ja vor Bäumen nicht... ;-)

          Kommentar


            #6
            Nicht in deinem Snippet, aber vielleicht irgendwo anders in deinem rules file was du nicht gepostet hast. Bei mir hatte das sehr seltsame Seiteneffekte die nicht mit logik zu erklähren waren.

            Kommentar


              #7
              Ich weiss was du meinst...sobald irgendwo ein kleiner Fehler besteht gibt es teiweise sehr merkwürdige Effekte.
              Leider ist das was ich oben gepostet habe tatsächlich das komplette rules-File :-) (um Probleme beim Testen zu vermeiden, lagere ich neue Dinge immer erst mal in separate Files aus)
              Zuletzt geändert von zaphood; 05.03.2017, 14:46.

              Kommentar


                #8
                Bezüglich Fehlern in Rulefiles: es wäre natürlich noch möglich, dass an irgendeiner Stelle ein (unsichtbares) Steuerzeichen steht. Innerhalb des Raspberry kannst Du sowas finden, wenn Du die Datei mal mit vi öffnest. Alternative auf dem Windows-PC wäre z.B. Notepad++, da kann man sämtliche unsichtbaren Zeichen sichtbar machen lassen.

                Kommentar


                  #9
                  Notepad++ ist eh mein Editor der Wahl, der hat (leider) nix gesehen was da nicht reingeört ;-)

                  Gibts bei der Interpretation von files in OH2 eigentlich ein Problem mit Tabs bzw. Leerzeichen in Files oder so? Ich nutze bevorzugt Tabs...

                  Kommentar


                    #10
                    Ich hab nochmal weiter getestet, wird aber immer schräger statt klarer: Wenn ich eines der Fenster im EG öffne, wird (seitens KNX) der Status der GA auch von einem Aktor beachtet, der Strom auf den Dunstabzug gibt (Esse). Das ist so, da ich in einer offenen Küche / Wohnbereich einen Schwendenofen habe. Die Esse darf daher nur anspringen, wenn mindestens eins der Fenster offen ist.

                    Die Esse wird von allen Fenstern korrekt getriggert, was man im Log auch sieht. Wenn ich nun den Trigger an das Item "Esse" binde, wird auch die Mail geschickt (bzw. Licht testhalber angeworfen). Es erfolgt also generell die korrekte Signalisierung auf dem KNX BUS bei ALLEN Fenster im EG.

                    Um das mal zu entkoppeln, habe ich die den Trigger mal verzögert (nicht dass sich da Pakete in die Quere kommen...man weiss ja nie):
                    Code:
                    rule "Test window open"
                        when
                            Item Fenster_WoZi_Ost changed from OFF to ON //Alternativ auch mal "Esse" anstatt "Fenster_WoZi_Ost" eingesetzt, das klappt....
                        then
                            createTimer(now.plusSeconds(2)) [Licht_Flur.sendCommand(ON)]
                    End
                    Zur Info: Anstatt der Mail nutze ich einfach ein anderes Licht zum Test...aber das schaltet auch nur, wenn ich als Trigger die Esse einsetze. Beim Fenster geht nix. Alles neu getippt, nix kopiert, alles mit Notepad++ erstellt.

                    Hier irritiert mich immer noch am meisten, dass EINS der Fenster aus dem EG (Fenster_Kueche_Ost) funktioniert ! Es hängt auf dem selben BE und sendet auch die GA an die Esse. Die drei unwilligen BE Eingänge / Items (Balkon, WoZi Ost und WoZi Süd) sind ABSOLUT identisch konfiguriert wie Kueche_Ost und hängen auf den Eingängen 1-4 des selben BE. Identische Einstellung, gleiche DPT, und nach wie vor funktionieren alle einwandfrei bezüglich ihres Status als CONTACT Item (Anzeige Fenster Auf/Zu in der BasicUI).

                    Bin mit meinem Latein und meiner Logik echt am Ende...


                    Zuletzt geändert von zaphood; 05.03.2017, 23:33.

                    Kommentar


                      #11
                      Kann es sein, dass Du die GA mehrfach in verschiedenen Items eingetragen hast?

                      Kommentar


                        #12
                        Ich hatte mal ähnliche Probleme mit den Regeln und habe dann bevor ich das weiter analysiert habe einen workaround verwendet:

                        Anstelle im "when" Bereich alles abzufragen habe ich nur auf changed oder received update getriggert und alles weitere per if(...) abgefragt. Auf diese Weise kann man mit debug Ausgaben ins Logfile auch viel besser debuggen.

                        Kommentar


                          #13
                          Zitat von udo1toni Beitrag anzeigen
                          Kann es sein, dass Du die GA mehrfach in verschiedenen Items eingetragen hast?
                          Checked...leider nein. Aber danke für die Idee!

                          Kommentar


                            #14
                            Zitat von Pendragon Beitrag anzeigen
                            Ich hatte mal ähnliche Probleme mit den Regeln und habe dann bevor ich das weiter analysiert habe einen workaround verwendet:

                            Anstelle im "when" Bereich alles abzufragen habe ich nur auf changed oder received update getriggert und alles weitere per if(...) abgefragt. Auf diese Weise kann man mit debug Ausgaben ins Logfile auch viel besser debuggen.
                            Ok, werde ich mal am WE versuchen.

                            Kommentar


                              #15
                              Als letzte Möglichkeit könntest Du openHAB neu installieren (natürlich vorher Deine Konfiguration sichern), falls Pendragons Lösung auch nicht hilft. Manchmal ist schlicht irgendwo in der Installation der Wurm drin, sei es von vorherigen Tests oder weil openHAB sich schlicht verschluckt hat.

                              Kommentar

                              Lädt...
                              X