Ankündigung

Einklappen
Keine Ankündigung bisher.

Rule Fehlermeldung Rolladenaktor

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

    Rule Fehlermeldung Rolladenaktor

    Hallo,

    ich Versuche meine erste Rule zum automatischen Schalten eines Rolladenaktors von Homematic zu schreiben. Im System ist er eingebunden und funktioniert nur der Openhab Designer 1.7 zeigt mir eine Meldung am linken Rand an wenn ich mit der Maus darauf fahre...

    Couldn't resolve reference to JvmIdentifiableElement 'Wohnzimmer_Rolladen_rechts'. habe versucht nach dem Fehler zu suchen und zu Googlen ohne Erfolg.

    rule "Rolladen Wohnzimmer hoch"
    when
    Time cron "0 0 6 ? *MON-FRI"
    then
    sendCommand(Wohnzimmer_Rolladen_rechts, up) oder muss ich bei dem Homematic Aktor 100 eingeben ?
    end

    Ich benötige einen kleinen Denkanstoß um weiterzukommen.

    Edit: So habe einen Lichtschalter automatisch an und ausgschaltet und herrausgefunden das up großgeschrieben werden muss. Der Rolladenaktor geht immer noch nicht.

    Gruss Michael
    Zuletzt geändert von Riffhai; 17.06.2015, 21:42.

    #2
    Vorausgesetzt, Du hast die Rule kopiert (und nicht abgeschrieben) ist der Time cron Ausdruck falsch, weil zwischen * und MON kein Leerzeichen sitzt. Die Fehlermeldung bedeutet, dass der Designer Wohnzimmer_Rolladen_rechts nicht kennt. Das passiert entweder, weil er mit dem cron Ausdruck durcheinander kommt, oder, weil das Item nicht richtig bzw. anders definiert ist. Auch bei den Items ist GrOß-kLeinSchReiBunG wichtig. 100 entspricht der unteren Endlage, 0 entspricht der oberen Endlage des Ladens. Ob Du 0 oder UP beziehungsweise 100 oder DOWN schreibst, sollte erstmal keine Rolle spielen.

    Kommentar


      #3
      Hallo udo1toni

      Der Fehler ist nachdem ich dieses Leerzeichen gemacht habe weg es funktioniert aber noch nicht. Ich habe mit UP, DOWN 0 und 100 sowie OFF ON getestet aber die Rolläden bewegen sich nicht. Ich möchte auch noch den Drehgriffsensor in die Tür rechts einfügen da weiss ich noch nicht wie anfangen. Aber jetzt sollen sie erst mal so funktionieren das ganze über Astro zu steuern ist auch noch ein Versuch für später. Ich habe meine Konfiguration rauskopiert.

      Sitemap:

      Frame label="Rolladen" {
      Switch item=Wohnzimmer_Rolladen_rechts label="Wohnzimmer rechts [%d]"
      Switch item=Wohnzimmer_Rolladen_links label="Wohnzimmer links [%d]"
      }

      Item:

      /*Rolladen Wohnzimmer */

      Rollershutter Wohnzimmer_Rolladen_rechts "Rolladen rechts [%d %%]" <rollershutter> (EG_Wohnzimmer){homematic="address=LEQ0766301, channel=1, parameter=LEVEL"}
      Rollershutter Wohnzimmer_Rolladen_links "Rolladen links [%d %%]" <rollershutter> (EG_Wohnzimmer){homematic="address=LEQ0766002, channel=1, parameter=LEVEL"}

      Rule:

      import org.openhab.core.library.types.*
      import org.openhab.model.script.actions.*

      rule "Rolladen Wohnzimmer hoch"
      when
      Time cron "0 30 6 ? * MON-FRI"
      then
      sendCommand(Wohnzimmer_Rolladen_rechts,UP)
      sendCommand(Wohnzimmer_Rolladen_links,UP)
      end


      rule "Rolladen Wohnzimmer links runter"
      when
      Time cron "0 30 22 ? * MON-FRI"
      then
      sendCommand(Wohnzimmer_Rolladen_links,DOWN)
      end

      rule "Rolladen Wohnzimmer rechts runter"
      when
      Time cron "0 47 22 ? * MON-FRI"
      then
      sendCommand(Wohnzimmer_Rolladen_rechts,DOWN)
      end

      ich verliere da noch komplett den Überblick. Danke für die Hilfe.

      Gruss Michael

      Kommentar


        #4
        Funktioniert denn die Steuerung über die UI?

        Tipp am Rande: In der Sitemap musst Du nur dann ein Label definieren, wenn es anders lauten soll, als das in der items-Datei definierte. Das ist meist dann der Fall, wenn man items an verschiedenen Stellen in der Sitemap einbinden möchte (z.B. gibt's bei mir verschiedene Räume mit Deckenlicht, in der Gesamtübersicht für Licht muss da natürlich der Raumname mit auftauchen, in der Raumseite benötige ich den nicht.)

        Kommentar


          #5
          Der Rolladen funktioniert über die UI. Denn rest über die Sitemap und der Label habe ich nicht verstanden um was es da genau geht.

          Kommentar


            #6
            Naja, Du schreibst:

            Sitemap:
            Code:
            Frame label="Rolladen" {
            Switch item=Wohnzimmer_Rolladen_rechts label="Wohnzimmer rechts [%d]"
            Switch item=Wohnzimmer_Rolladen_links label="Wohnzimmer links [%d]"
            }
            Also Label der beiden Rollläden in der UI: "Wohnzimmer links/rechts [%d]"
            Item:
            Code:
            /*Rolladen Wohnzimmer */
            
            Rollershutter Wohnzimmer_Rolladen_rechts "Rolladen rechts [%d %%]" <rollershutter> (EG_Wohnzimmer){homematic="address=LEQ0766301, channel=1, parameter=LEVEL"}
            Rollershutter Wohnzimmer_Rolladen_links "Rolladen links [%d %%]" <rollershutter> (EG_Wohnzimmer){homematic="address=LEQ0766002, channel=1, parameter=LEVEL"}
            Also Label der beiden Rollläden in der Item-Definition "Rolladen links/rechts [%d %%]"

            Du definierst an beiden Stellen ein Label, und das ist vermutlich unnötig. Du kannst in der Sitemap einfach
            Code:
            Frame label="Rolladen" {
            Switch item=Wohnzimmer_Rolladen_rechts
            Switch item=Wohnzimmer_Rolladen_links
            }
            schreiben, dann steht in der UI halt das Label aus der Item-Definition (mit %-Zeichen).
            Aber natürlich kann es (wie erwähnt) sein, dass Du in der Sitemap tatsächlich unterschiedliche Beschriftungen brauchst, weil ein Item an verschiedenen Stellen der Sitemap auftaucht und dort unterschiedliche Label haben muss.

            Aber das ist ja nur am Rande interessant. Taucht denn die Fehlermeldung im Designer noch auf?

            Eventuell fehlt auch noch ein Import:
            import org.openhab.core.types.Command
            Ich bin mir bei den Imports nicht so sicher, was ma nunbedingt benötigt, und was nur bei bestimmten Gelegenheiten benötigt wird. Diesen habe ich jedenfalls bei mir auch noch mit im .rules-file drin, und da es sich bei sendCommand ziemlich sicher um ein Command handelt...

            Kommentar


              #7
              Die Fehlermeldung ist weg, das mit den Label habe ich verstanden und geändert. Der Rolladen bewegt sich aber immer noch nicht egal ob hoch oder runter. Ich habe mit UP DOWN ON OFF und mit 0 und 100 probiert. Ein Licht kann ich Zeitgesteuert an und ausschalten das habe ich schon gelernt. Gibt es überhaupt eine Funktion mit der ich ein Programm vorrübergehend deaktivieren kann mit einem Schalter, und eine Funktion mit der ich ein Aktor mit einem Schalter einschalten kann, der nach einer eingestellten Zeit wieder aus geht. Das mit den Programmen ist noch nicht so einfach, ich benutze Openhab ja erst richtig seit 3 Wochen. Danke für deine Unterstützung und Hilfe

              Gruss Michael

              Edit: ich habe die Steuerung hinbekommen. Jetzt Versuche ich bei einer Tür den Drehgriffsensor mit dem Runterfahren zu Verknüpfen. Mal gespannt wie das geht. Und später dann mit der Astrofunktion.
              Zuletzt geändert von Riffhai; 21.06.2015, 16:47.

              Kommentar


                #8
                Super, dass es jetzt klappt. Ganz grob: Mit dem Drehgriff willst Du vermutlich verhindern, dass der Laden runter fährt? Wenn Du ein Item Drehgriff hast, musst Du am einfachsten in ./logs/events.log nachschauen, was der Griff für einen Status sendet, wenn er "geschlossen" bzw. "offen" ist. So Drehgriffe haben ja gerne mal mehr als 2 Zustände...
                Dann muss Deine Rule entsprechend erweitert werden:
                Code:
                rule "Rolladen Wohnzimmer rechts runter"
                when
                Time cron "0 47 22 ? * MON-FRI"
                then
                   [COLOR=#FF0000] if(Drehgriff.state.toString == "OPEN")[/COLOR] // oder halt entsprechend. Falls Drehgriff ein Number-Item ist, muss es (Drehgriff.state as DecimalType == 1) oder so heißen...
                         sendCommand(Wohnzimmer_Rolladen_rechts,DOWN)
                end

                Kommentar


                  #9
                  Hallo udo1toni,

                  Danke für deine Hilfe. Ich habe versucht den Drehgriffsensor einzubauen, es geht aber noch nicht. Ich habe den Sensor als Contact item angelegt.

                  Contact Wohnzimmer_rechts "Wohnzimmer rechts [MAP(de.map):%s]" <contact> (fS) {homematic="address=LEQ0629813,channel=1, parameter=STATE" }
                  Contact Wohnzimmer_links "Wohnzimmer links [MAP(de.map):%s]" <contact> (fS) {homematic="address=LEQ0629245,channel=1, parameter=STATE" }

                  rule "Rolladen Wohnzimmer rechts runter"
                  when
                  Time cron "0 30 22 * * ?"
                  then
                  if(Wohnzimmer_rechts.state.toString == "CLOSE")
                  sendCommand(Wohnzimmer_Rolladen_rechts,DOWN)
                  end

                  Ich bin noch am probieren vielleicht bekomme ich es noch hin.

                  Kommentar


                    #10
                    wenn ich mich recht erinnere ist der Contact-Status entweder OPEN oder CLOSED, kannst Du aber bequem im events.log nachschauen, wenn Du den Griff mal drehst.

                    Kommentar


                      #11
                      das heist natürlich CLOSED das habe ich gar nicht gemerkt diesden Schreibfehler. Das funktioniert soweit der Rolladen geht nicht runter wenn ich die Tür zumache geht der Rolladen nicht automatisch zu sondern erst wenn ich den Schalter drücke das geht bestimmt auch noch automatisch wenn man den Griff zumacht. Wie kann ich den das alles selber Lernen ich bin nur im Forum und Internet am Suchen was ich kopieren kann nach ddem Moto Versuch und Irtum. Wie ich das mit der Astro Steuerung da hinein bekomme wird auch noch spannent.

                      Gruss Michael

                      Kommentar


                        #12
                        Also bei mir läuft das alles mit learning by doing, weshalb ich auch große Wissenslücken habe

                        Wenn Du möchtest, dass der Rolladen automatisch schließt, musst Du halt eine weitere Rule erstellen, die auf das Schließen der Tür reagiert. Dann aber nicht vergessen, in dieser Rule abzufragen, ob die Schließzeit schon erreicht wurde:
                        Code:
                        import org.joda.time.DateTime [COLOR=#FF0000]//korrigiert[/COLOR]
                        
                        rule "Tuer zu"
                        when
                            Item Wohnzimmer_rechts changed to CLOSED
                        then
                            if (now.plusMinutes(3*60+30).getMinuteOfDay < 10*60-30) // zwischen 20:30 und 6:00 Uhr
                                sendCommand(Wohnzimmer_Rolladen_rechts,DOWN)
                        end
                        Erläuterung zur Ermittlung der Uhrzeit:
                        Man kann natürlich auch eine Abfrage (now.getMinuteOfDay > 20*60+30 || now.getMinuteOfDay < 6*60) schreiben. Aber warum einfach, wenn's auch kompliziert geht...

                        Das Ganze ist ungetestet bzw. rein aus dem Kopf und momentan ohne die Möglichkeit, es zu überprüfen :-) insbesondere der Jodatime-import ist bestimmt falsch...

                        EDIT:

                        Der Import lautet import org.joda.time.DateTime , dann sollte das funktionieren.
                        Zuletzt geändert von udo1toni; 24.06.2015, 13:34.

                        Kommentar


                          #13
                          Ach ja... Astro-Binding: Ich empfehle KISS (keep it simple and stupid).

                          Definiere ein Item Sunset und ein Item Sunrise, denen gibst Du gleich noch einen Offset mit, falls es zum richtigen Zeitpunkt noch zu hell/zu dunkel ist.
                          Dann musst Du in der Rule nur auf das jeweilige Item triggern lassen, ferddisch (wie wir Hessen sagen ).

                          Kommentar

                          Lädt...
                          X