Zitat von milymat
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
Suche Push Button für 0,5 sek und 3 sek
Einklappen
X
-
Letztere Variante würde ich bevorzugen, da man da noch eingreifen kann (z.B. wenn die Taste04 während der Timer läuft nochmal gedrückt wird). Dafür müsstest du aber den erzeugten Timer einer Variable zuweisen. Ein deterministisches Verhalten ist jedoch auch hier nicht zu erreichen, da es die dafür erforderlichen Synchronisations-Mechanismen (skriptseitig) nicht gibt. (Lasse mich hier gerne eines Besseren belehren.)
-
Und wie bekommt man das jetzt von der Hauptebene weg?
Zitat von teichsta Beitrag anzeigenHi,
der "eigentlich intendierte" Weg die Sitemap aufzubauen ist, die Items darin einzeln aufzuführen. Eigentlich nur zu Demo-Zwecken hat Kai diesen Automatismus eingebaut, der Groups auflöst.
Da Du ein Mapping verwenden möchtest, wirst Du gewissermaßen gezwungen, die Items in der Gruppe "Living" einzeln anzugeben. Der Vorteil dieser Methode ist darüber hinaus auch, dass Du die Item-Reihenfolge bei der Darstellung beeinflussen kannst :-). Die Sitemap würde dann so in etwa aussehen:
Code:sitemap default label="Home Sweet Home" { Frame { Text label="Wohnen" { Frame label="Licht" { Switch item=Door_Terrasse_p label="Living" mappings=[ON="Go!"] ... } Frame label="Rolläden" { ... } } Group item=Kitchen Group item=Office Group item=Bedroom Group item=Childroom Group item=Flor Group item=Bath } Frame { Group item=Lichter label="Leuchten" icon="light-on" Group item=Jalousie label="Rollläden" icon="rollershutter" } }
Ich habe das jetzt aber noch nicht verstanden! Wie bekomme ich die "Gruppenschaltung" weg von der Hauptebene - sprich: von der Sitemap zu den items.
Habe bei mir die Aussenbeleuchtung geschaltet mit einzelnen switches und kann mit einem Eintrag auf der Hauptebene ALLE schalten. Für mich wäre es aber übersichtlicher im Bereich "Outdoor" alle auf einmal zu schalten...
Einen Kommentar schreiben:
-
Hi,
Jede Regel wird zwar in einem eigenen Thread ausgeführt (siehe ScriptExecutionThread), diesen Thread schlafen zu legen ist dennoch nicht so elegant (sagt milymat ja selbst).Zitat von Jockel Beitrag anzeigenIch kenne das Thread-Modell von openHAB nicht und bin mir daher nicht sicher, ob jede Regel in einem eigenen Thread ausgeführt wird. Wenn dies nicht der Fall ist würdest Du mit dem Sleep auch andere Regeln blockieren.
Wir empfehlen eindeutig die Timer-Variante.
Gruß,
Thomas E.-E.
Einen Kommentar schreiben:
-
Ich kenne das Thread-Modell von openHAB nicht und bin mir daher nicht sicher, ob jede Regel in einem eigenen Thread ausgeführt wird. Wenn dies nicht der Fall ist würdest Du mit dem Sleep auch andere Regeln blockieren.
Darüber hinaus hat der Timer, wenn er nicht anonym angelegt wird, auch die Möglichkeit nach dem Starten noch mal einzugreifen.
Dazu gibt es in den Demo.rules auch ein Beispiel (ganz am Ende)
Einen Kommentar schreiben:
-
Also bei mir sieht es so aus :
oder ist das eleganter/robuster mit createTimer ?Code:rule "Lampe 10 min" when Item Taste04 received update ON then lampe.sendCommand(ON) Thread::sleep(600000) lampe.sendCommand(OFF) end
Code:createTimer(now.plusSeconds(1)) [| Tueroeffner_Einfahrt.sendCommand(OFF) ]
Einen Kommentar schreiben:
-
Hier noch das versprochene Beispiel:
Code:rule "Automatically switch off pedastrian gate switch" when Item Tueroeffner_Einfahrt received command ON then createTimer(now.plusSeconds(1)) [| Tueroeffner_Einfahrt.sendCommand(OFF) ] end
Einen Kommentar schreiben:
-
Hi,
der "eigentlich intendierte" Weg die Sitemap aufzubauen ist, die Items darin einzeln aufzuführen. Eigentlich nur zu Demo-Zwecken hat Kai diesen Automatismus eingebaut, der Groups auflöst.Zitat von rolli20up Beitrag anzeigenaber wie schreib ichs denn, das er nur in der Gruppe Wohnen auftaucht
Da Du ein Mapping verwenden möchtest, wirst Du gewissermaßen gezwungen, die Items in der Gruppe "Living" einzeln anzugeben. Der Vorteil dieser Methode ist darüber hinaus auch, dass Du die Item-Reihenfolge bei der Darstellung beeinflussen kannst :-). Die Sitemap würde dann so in etwa aussehen:
Code:sitemap default label="Home Sweet Home" { Frame { Text label="Wohnen" { Frame label="Licht" { Switch item=Door_Terrasse_p label="Living" mappings=[ON="Go!"] ... } Frame label="Rolläden" { ... } } Group item=Kitchen Group item=Office Group item=Bedroom Group item=Childroom Group item=Flor Group item=Bath } Frame { Group item=Lichter label="Leuchten" icon="light-on" Group item=Jalousie label="Rollläden" icon="rollershutter" } }
Einen Kommentar schreiben:
-
die Timer-Geschichte klingt gut.
Hab bei der SuFu nicht das gefunden wo ich denke, dass du dich drauf beziehst.
Wäre dankbar, wenn du mir was schicken könntest.
Danke.
Wahrscheinlich versteh ich den Aufbau Sitemap, Items noch nicht komplett.
Das der Schalter so auf der "Hauptebene" erscheint, ist mir eigentlich klar, aber wie schreib ichs denn, das er nur in der Gruppe Wohnen auftaucht.
Danke
Einen Kommentar schreiben:
-
Na, Du hast ihn in die Hauptebene gesetzt, der steht ja hinter der geschlossenen Klammer der Frames.Bei meinem Button-Versuch, landet der in der "Hauptebene". Will ihn aber in Gruppe Wohnen haben, was mach ich falsch...
Bezüglich des Zeitverhaltens kannst Du beim Drücken des Buttons einen Timer starten, der bei Ablauf dann das OFF schickt. Ich glaube, dazu gibt es hier im Forum auch ein Beispiel, ansonsten poste ich heute abend mal was.
Die Funktionen des Aktors zu nutzen ist aber die noch bessere Idee, minimiert die möglichen Fehler zur Laufzeit.
Einen Kommentar schreiben:
-
Hallo,
ich habe so etwas Ähnliches realisiert. Ich nutze dazu die Treppenhausfunktion des Schaltaktors sowie das zugehörige Statusobjekt (listeningGA), um nach der Ablaufzeit den OpenHAB-Button wieder zurückzusetzen.
Ob diese Lösung was für dich ist, weiss nicht nicht, da du ja zwei unterschiedliche Laufzeiten benötigst.
Gruß,
thoern
Einen Kommentar schreiben:
-
Suche Push Button für 0,5 sek und 3 sek
Hallo,
dank Saschas (verspätetem) Weihnachtsgeschenk, läuft nun openhab auf meinem Pi erfolgreich. Für mich sogar wie Weihnachten und Ostern zusammen...
Nun such ich ne Möglichkeit meine elektrische Terrassentür zu öffnen.
Mit nem normalen Switch klappt es zwar aber muss immer auf off schalten.
Hab die Lösung https://code.google.com/p/openhab-sa..._a_pushbutton: mit dem Button versucht, nur bleibt auch der blau nach push und ist nicht mehr ansteuerbar. Oder mach ich was falsch?
Brauch die 2 og. Varianten.
1. Nur kurzer (0.5sek) Klick Button.
2. Ca 3sek Klick Button. Damit stell ich den Motor der Tür auf Daueroffen.
Bei meinem Button-Versuch, landet der in der "Hauptebene". Will ihn aber in Gruppe Wohnen haben, was mach ich falsch...
Hab mich an https://code.google.com/p/openhab-sa..._a_pushbutton: gehalten.
Danke für eure Hilfe.
Sitemap:
Item:Code:sitemap default label="Home Sweet Home" { Frame { Group item=Living Group item=Kitchen Group item=Office Group item=Bedroom Group item=Childroom Group item=Flor Group item=Bath } Frame { Group item=Lichter label="Leuchten" icon="light-on" Group item=Jalousie label="Rollläden" icon="rollershutter" } Switch item=Door_Terrasse_p label="Living" mappings=[ON="Go!"] }
Gruß GregorCode:... Group Living "Wohnen" <sofa1> (All) Switch Light_Living "Licht Wohnen" (Living, Lichter) { knx="0/0/3" } Switch Light_Aussen "Aussen-Steckdosen" (Living) { knx="0/0/1" } Switch Door_Terrasse "Terrassentür" (Living) { knx="0/0/4" } Switch Door_Terrasse_p "Terrassentür p" (Living) { knx="0/0/4", autoupdate="false"} Switch Light_Terrasse "Licht Terrasse" (Living, Lichter) { knx="0/0/5" } Rollershutter Jal_Hausall "Rollo Haus" (Living, Jalousie) { knx="0/2/18, 0/2/19" } Rollershutter Jal_Liveall "Rollo Wohnen" (Living, Jalousie) { knx="0/2/6, 0/2/7" } Rollershutter Jal_Live_T "Rollo Terrasse" (Living, Jalousie) { knx="0/2/4, 0/2/5" } Rollershutter Jal_Live_G "Rollo gr. Fenster" (Living, Jalousie) { knx="0/2/2, 0/2/3" } Rollershutter Jal_Live_K "Rollo kl. Fenster" (Living, Jalousie) { knx="0/2/0, 0/2/1" } ...Stichworte: -


Einen Kommentar schreiben: