Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Rules File entfernen

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

    - √ - Rules File entfernen

    Hi,

    bei mir werden die Rules nicht gelöscht, wenn ich eine .rules Datei
    entferne. Die Regeln bleiben weiter aktiv, und verschwinden
    natürlich erst, wenn ich openhab neu starte. Ein Meldung, dass die
    Datei gelöscht wurde kommt im Logfile.

    Ich schätze das ist kein erwünschtes Verhalten.

    Ich habe auch schon angefangen mich in die Sourcen einzulesen, aber
    das ist schon ganz schön kompliziert. Ich habe gefunden, dass die Listener
    wohl benachrichtigt werden (Modelrespository/removeModel).

    Ich schätze man muss hier noch einen Listener registrieren, der mitbekommt, wenn die Datei gelöscht wird und dann alle Regeln,
    die ihren Ursprung in dieser Datei haben löschen.

    für Hinweise dankbar.
    -Steffen

    #2
    Ich habe weiter geforscht und es scheint ein Listener registriert, der dann
    auch den Modelchange, also das "removed" Event bekommt, aber beim Debuggen habe ich gesehen, dass dann das modelRepository.getModel(modelName) ein Null zurück gibt.

    Hier der Ausschnitt aus RuleEngine.java:

    Code:
    public void modelChanged(String modelName, org.openhab.model.core.EventType type) {
       if (triggerManager != null) {
           if(isEnabled() && modelName.endsWith("rules")) {
               RuleModel model = (RuleModel) modelRepository.getModel(modelName);
        
               // remove the rules from the trigger sets
               if(type == org.openhab.model.core.EventType.REMOVED ||
                       type == org.openhab.model.core.EventType.MODIFIED) {
                   triggerManager.removeRuleModel(model);
               }

    Kommentar


      #3
      Na dann unterhalte ich mich ein wenig mit mir selbst ;-)

      Ich glaube ich habe das Problem gefunden. Der FolderObserver stellt
      fest, dass eine Datei gelöscht wurde und entfernt das Model. Wenn danach
      der Listener getrigggert wird, der das Model aus dem triggerManager
      entferrnen möchte , ist das Model natürlich nicht mehr da. Die Abfrage nach dem Model liefert Null und färtisch.

      Mache nen Bug auf.

      Gruss
      Steffen

      Kommentar


        #4
        Hi Steffen,

        Zitat von mod42 Beitrag anzeigen
        Mache nen Bug auf.
        Jo, klingt tatsächlich nach einem Bug. Vielen Dank für die Analyse!

        Gruß,

        Thomas E.-E.
        Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

        Kommentar


          #5
          Issue https://github.com/openhab/openhab/issues/610

          Gesendet von meinem Nexus 10 mit Tapatalk

          Kommentar


            #6
            Habe eine Idee für eine Lösung gepostet.

            Gesendet von meinem Nexus 10 mit Tapatalk

            Kommentar

            Lädt...
            X