Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
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
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.
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 ?
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]
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'.
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
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]
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)?
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]
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?
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar