Ankündigung

Einklappen
Keine Ankündigung bisher.

Dimmer immer bei 0 oder 100%

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

    [Codebeispiel] Dimmer immer bei 0 oder 100%

    Hallo,

    ich versuche mit dem Dimmer aus der Demo eine Steuerung ans laufen zu bringen. Aber leider habe ich beim Dimmer entweder 100% oder 0%, in den Rules ist ja eine Schrittweite von 5% angegeben, aber irgendwie interessiert es OpenHab nicht. Das Problem tritt schon in der Demo auf. Woran liegt das?

    #2
    Hi,

    kannst Du bitte mal die relevante Ausschnitte aus *.items und *.sitemaps posten?

    Danke und Gruß,

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

    Kommentar


      #3
      Könnte es sein, dass Du den falschen Browser verwendest? Der Browser muss mit webkit arbeiten (z.B. Chrome oder Safari, aber leider nicht Firefox)

      Kommentar


        #4
        Geht mit Chrome auch nicht.

        Hallo,

        ich habe es mit Chrome probiert, aber es ist das gleiche. Mit FF klappt es aber auch, lediglich bei GreenT scheint es nicht zu gehen.

        Codebeispiel ist aus der Demo:

        Item:
        Dimmer DimmedLight "Dimmer [%d %%]" <slider>

        Sitemap:
        Slider item=DimmedLight switchSupport

        Rule:
        rule "Dimmed Light"
        when
        Item DimmedLight received command
        then
        var Number percent = 0
        if(DimmedLight.state instanceof DecimalType) percent = DimmedLight.state as DecimalType

        if(receivedCommand==INCREASE) percent = percent + 5
        if(receivedCommand==DECREASE) percent = percent - 5

        if(percent<0) percent = 0
        if(percent>100) percent = 100
        postUpdate(DimmedLight, percent);
        end

        Ich wollte das zum stellen eines Thermostats verwenden:

        Dimmer VentilStellen "Ventil stellen [%d %%]" <slider> (GF_Serverraum1) { knx = "0/0/0,0/0/0,5.001:0/1/1+<5.001:0/1/3"}

        Aber natürlich geht der auch da immer von 0 auf 100 und zurück und nicht in 5% Stufen. Die GA 0/0/0 sind Dummys, da das Thermostat weder ON/OFF noch IN/DECREASE hat und lediglich eine Stellgröße in Prozent braucht.

        Kommentar


          #5
          Öhm, hat jetzt keiner einen Tipp? Wie macht ihr das mit den Dimmern und den Prozentwerten?

          Kommentar


            #6
            Also ich habe jetzt hin und her probiert. Da muss ein Bug vorliegen.

            Ich habe die Rules für den Dimmer inzwischen etwas verfeinert

            Code:
            import org.openhab.core.library.types.*
            import org.openhab.core.persistence.*
            import org.openhab.model.script.actions.*
            
            rule "Dimmed Light"
                when
                    Item DimmedLight received command
                then
                
                    println(DimmedLight.state)
                    
                    var Number percent = 0
                    if(DimmedLight.state instanceof DecimalType) percent = DimmedLight.state as DecimalType 
                    
            
                    println(percent)
            
                    if(receivedCommand==ON) percent = percent + 5            
                    if(receivedCommand==INCREASE) percent = percent + 5
                    if(receivedCommand==OFF) percent = percent - 5
                    if(receivedCommand==DECREASE) percent = percent - 5
            
                    println(percent)
                    
                    if(percent<0)   percent = 0
                    if(percent>100) percent = 100
                    
                    postUpdate(DimmedLight, percent);
            end
            Wenn ich auf runter klicke kommt im Debug das:

            13:16:43.635 ERROR o.o.c.s.ScriptExecutionThread[:70] - Error during the executi
            on of rule 'Dimmed Light': Cannot cast java.lang.Integer to org.openhab.core.lib
            rary.types.DecimalType
            13:17:19.289 INFO o.o.m.c.i.ModelRepositoryImpl[:117] - Refreshing model 'firma
            .rules'
            13:18:30.911 INFO runtime.busevents[:42] - DimmedLight received command OFF
            13:18:30.913 DEBUG o.o.m.r.i.engine.RuleEngine[:305] - Executing rule 'Dimmed Li
            ght'
            0
            0
            -5
            Das Teil geht bei .state sofort auf 0

            Bei Klick auf rauf geht es sofort auf 100. Der State wird also nicht gespeichert, obwohl ich persistence eingebunden habe. Ich vermute da einen Bug im Persistence-Modul (db4o vermutlich?).

            Auf der offiziellen Demo unter

            http://demo.openhab.org:8080/openhab.app?sitemap=demo

            geht es übrigens auch nicht. Ich frage mich, wie ich da die States der Items speichern soll. Wie macht ihr das?

            Kommentar


              #7
              Also grundsätzlich sollte sich ja ein 'echter' Dimmer hinter dem Item verstecken.
              Ich habe Dimmer, die 'anders' angesteuert werden, weshalb ich mit der Classic UI ohnehin nicht arbeiten kann (issue#635). Grundsätzlich funktioniert die Geschichte mit den Dimmern aber (in greenT gibt's Slider), und zwar komplett ohne Rule oder percent-Speicher, das macht ja das Item selbst.

              Hast Du berücksichtigt, dass die normale Bedienung zwischen kurzem und langem Klick unterscheidet? (Kurzer Klick= An/Aus, bzw. 100%/0%, langer Klick= Dimmen in die entsprechende Richtung, solange die Schaltfläche gedrückt bleibt.)
              Die Demo-sitemap kann das Dimmen nicht, weil das Verhalten des Dimmers nicht in den Rules nachgebildet wurde (also die aktive Rückmeldung der aktuellen Helligkeit nach jedem Dimmvorgang).

              Kommentar


                #8
                Hallo Udo,

                das wars. Leider steht das mit der unterschiedlichen Klickdauer nicht in der Doku (oder ich habe es übersehen). Das mit GreenT zu machen klingt gut, habe ich mir mal angesehen. Auch wenn ich etwas erschreckt bin, ich dachte die UI gibt den gleichen Items nur unterschiedliches Aussehen, das dort auch noch andere/weitere Items mit bei sind, war mir nicht klar.

                Dann klappt es aber auch in der Demo, wie ich jetzt merke.

                Kommentar

                Lädt...
                X