Ankündigung

Einklappen
Keine Ankündigung bisher.

visibility=

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

    visibility=

    Wie kann ich über visibility= einstellen das zwei zustände sich gegenseitig ausblenden?
    möchte einstellen das entweder Sonnenuntergang zeit oder Sonnenaufgang zeit angezeigt wird

    #2
    du machst an das visibility eine variable die du dann in einer rule änderst

    visibility=[variablenamen==0] (item wird gezeit wenn variable 0 ist)
    visibility=[variablenamen==1] (item wird gezeit wenn variable 0 ist)

    Kommentar


      #3
      wie mache ich das in rules?

      Kommentar


        #4
        Du brauchst ein Switch Item, welches entscheidet, was angezeigt wird. Dann schreibst Du in beide widgets die entsprechende Regel:
        Code:
        Text item=Aufgang visibility=[MySwitch==ON]
        Text item=Untergang visibility=[MySwitch!=ON]
        Du könntest z.B. eine Rule dazu schreiben, die prüft, ob der Sonnenaufgang schon rum ist und dann auf Sonnenuntergang umschaltet. Um Mitternacht kannst Du dann wieder zurückschalten (die Zeiten beziehen sich ja jeweils auf das aktuelle Datum)

        Eine Variable kannst Du dafür nicht verwenden, Variablen sind nur innerhalb der Rule-Datei gültig, in der sie definiert wurden.

        Kommentar


          #5
          meins du so
          Code:
          Switch Sonneunter "Sonneunter"
          Switch Sonnehoch "Sonnehoch"
          
          
          Text item=Sunrise_Time visibility=[Sonneunter==ON]
          Text item=Sunset_Time visibility=[Sonnehoch==ON]
          
          
          
           rule "Sonnenaufgang"
          when
              Item Sunrise_Event changed from OFF to ON
          then
          
          
          
          
              sendCommand(Sonneunter, ON)
              sendCommand(Sonnehoch,OFF)
             
          end
             
             
           rule "Sonnenuntergang"
          when
              Item Sunset_Event changed from OFF to ON
          then
          
          
          
          
              sendCommand(Sonnehoch, ON)
              sendCommand(Sonneunter,OFF)
             
          end
          irgentwie kann ich das nur mit zwei schalter machen wie geht das mit einem ?

          Kommentar


            #6
            ist ist eine seite wo ähnliches gemacht wird

            https://community.openhab.org/t/site...-with-and/2728

            als erstes machst du dir ein ITEM welches die visibility umschalten soll (also die variable)

            z.b.

            Code:
            Number Anzeige
            dann erstellst du eine rule wo das dann auch gemacht wird.
            (ich kenne ja deine bedingungen nicht)
            hier mal mit rules per uhrzeit ab 02:00:00 zeigt es den aufgang und ab 12:00:00 den untergang an

            Code:
            rule "auf"
             when
              Time cron "0 0 2 * * ?"    
            [FONT=Arial]then  [/FONT]      
             Anzeig.sendCommand(1)  //visibility auf 1
            
            end
            
            
            rule "unter"
             when
              Time cron "0 0 12 * * ?"    
            [FONT=Arial]then [/FONT]      
             Anzeig.sendCommand(2)  //visibility auf 2
            
            end



            dann noch in der sitemap die anzeigeelemente mit der variablen verküpfen

            Code:
            Text item=SonneAuf visibility=[Anzeige==1]
            Text item=SonneUnter visibility=[Anzeige==2]

            Kommentar


              #7
              bei Anzeig.sendCommand(1) //visibility auf 1 und Anzeig.sendCommand(2) //visibility auf 2 bekomme ich Fehlermeldung

              Code:
              Multiple markers at this line
              - Couldn't resolve reference to JvmIdentifiableElement 'Anzeig'.
              - The word 'auf' is not correctly spelled
              - Couldn't resolve reference to JvmIdentifiableElement 'sendCommand'.

              Kommentar


                #8
                in der fehlermeldung steht "Anzeig"
                heist dein item so oder heist es "Anzeige"

                achso sehs grade, hast gleich meinen fehler mit kopiert...

                Kommentar


                  #9
                  hab beides auf Anzeige..trotzdem Fehlermeldung
                  Code:
                  Multiple markers at this line
                  - Couldn't resolve reference to JvmIdentifiableElement 'Anzeige'.
                  - Couldn't resolve reference to JvmIdentifiableElement 'sendCommand'.
                  - The word 'auf' is not correctly spelled

                  Kommentar


                    #10
                    das anzeige item ist sicher noch nicht initialisiert (wenn du die zeiten so genommen hast)

                    mach mal eine zusätzliche rule


                    Code:
                    rule "init"
                     when
                     System started
                    then
                     if (Anzeige.state==Uninitialized) Anzeige.sendCommand(2)  //visibility auf 2
                    end
                    somit ist das anzeige item nach dem start auf 2 und damit initialisiert

                    Kommentar


                      #11
                      Danke schön, jetzt muss ich nur testen

                      Kommentar


                        #12
                        Wieso funktioniert das denn nicht ?
                        was mache ich falsch?
                        Code:
                        Switch Sonneunter "Sonneunter"
                        Switch Sonnehoch "Sonnehoch"
                        
                        
                        
                        // schedules a event which starts at sunrise, updating the Switch with ON, followed by a OFF
                        Switch Sunrise_Event   {astro="planet=sun, type=rise, property=start"}
                        
                        
                        Switch Sunset_Event    {astro="planet=sun, type=set, property=end"}
                        
                        
                           rule "init"
                         when
                         System started
                        then
                         if (Sonneunter.state==Uninitialized) Sonneunter.sendCommand(OFF) 
                         if (Sonnehoch.state==Uninitialized) Sonnehoch.sendCommand(OFF) 
                         
                         
                        end
                        
                        
                        
                        
                            rule "Sonnenaufgang"
                        when
                            Item Sunrise_Event changed from OFF to ON
                        then
                        
                            Sonneunter.sendCommand(ON)
                            Sonnehoch.sendCommand(OFF)
                           
                        end
                           
                           
                         rule "Sonnenuntergang"
                        when
                            Item Sunset_Event changed from OFF to ON
                        then
                        
                           
                           
                            Sonnehoch.sendCommand(ON)
                            Sonneunter.sendCommand(OFF)
                        end
                        
                        
                         Text item=Sunrise_Time visibility=[Sonneunter==ON]
                        Text item=Sunset_Time visibility=[Sonnehoch==ON] }
                        und so auch nicht
                        Code:
                         
                        
                        Switch Sunrise_Event   {astro="planet=sun, type=rise, property=start"}
                        
                        Switch Sunset_Event    {astro="planet=sun, type=set, property=end"}
                        
                        Switch Sonne
                        
                        
                        rule "init"
                         when
                         System started
                        then
                         
                         if(Sonne.state==Uninitialized) Sonne.sendCommand(OFF)
                         
                        
                        end
                        
                        
                         rule "Sonnen"
                        when
                           
                            Item Sunrise_Event received update ON
                        then
                        
                           sendCommand(Sonne, ON)
                           
                        end
                        
                        
                        
                        
                        rule "Sonnen"
                        when
                            Item Sunrise_Event received update ON
                           
                        then
                        
                        
                           sendCommand(Sonne, OFF)
                         
                           
                        end
                        
                        
                        
                        Text item=Sunrise_Time visibility=[Sonne==ON]
                        Text item=Sunset_Time visibility=[Sonne!=ON]

                        Kommentar


                          #13
                          Also, im letzten Fall lässt Du zwei Rules gegeneinander konkurrieren (selber Trigger)

                          Wenn Du auf System started triggerst, kannst Du normalerweise davon ausgehen, dass Deine Items ohnehin uninitialized sind. Die if-Abfrage würde ich da eher unter den Tisch fallen lassen, wie oft kommt es vor, dass Du bei Sonnenauf- oder -untergang openHAB neu startest (und Du damit Gefahr läufst, das schon beschriebene Item zurückzusetzen)?

                          Kommentar


                            #14
                            meinst du so ohne rule init ? mit dem Triger hab ich mich nur im forum vertippt der zweite Trigger ist Sunset_Event
                            Code:
                            Switch Sunrise_Event   {astro="planet=sun, type=rise, property=start"}
                            
                            Switch Sunset_Event    {astro="planet=sun, type=set, property=end"}
                            
                            Switch Sonne
                            
                            
                            
                            
                            
                             rule "Sonnen"
                            when
                               
                                Item Sunrise_Event received update ON
                            then
                               sendCommand(Sonne, ON)
                               
                            end
                            
                            
                            
                            
                            rule "Sonnen"
                            when
                                Item Sunset_Event received update ON
                            then
                               sendCommand(Sonne, OFF)
                             
                               
                            end
                            
                            
                            
                            Text item=Sunrise_Time visibility=[Sonne==ON]
                            Text item=Sunset_Time visibility=[Sonne!=ON]

                            Kommentar


                              #15
                              Nein, ich meinte nur ohne die if-Clause, die ist bei System started unwichtig, da die Items bei Systemstart per Definition immer uninitialized sind, das musst Du also nicht abfragen.
                              Code:
                              rule "init"
                              when
                                  System started
                              then
                                  Sonne.sendCommand(OFF)
                              end
                              Mal 'ne andere Frage: Kann es sein, dass Du die Dateien in einem Windows Editor bearbeitest und dann auf ein Linux System überträgst?

                              Kommentar

                              Lädt...
                              X