Wenn item = ein dann nach 1h Stunde ausschalten

Alles zu Rules, Items, Sitemaps unter openHAB 1.X

Moderatoren: seppy, udo1toni

Benutzeravatar
seppy
Beiträge: 623
Registriert: 24. Sep 2015 20:25
Wohnort: Bonn

Re: Wenn item = ein dann nach 1h Stunde ausschalten

Beitrag von seppy » 9. Jul 2019 16:38

Hi,

ich konnte jetzt nicht rauslesen, ob Deine rule funktioniert. Aber für die Lüftergeschichte ist das expire binding perfekt geeignet:

Code: Alles auswählen

Switch badluefter "Badlüfter" (gBad) [ "Lighting" ] {knx="<0/0/40", expire="1h00m,command=OFF" }
Damit wärst Du ohne Regel und ohne Timer fertig. Nur das Expire binding muss aktiviert sein!

Grüße,
Seppy
Homematic über 1x HMLAN an homegear. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 60 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2)
- Werkstatt Kompressorsteuerung (HM-LC-Sw4-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation, iBeacon und WLAN
- Philips HUE Einbindung

Kito
Beiträge: 12
Registriert: 7. Jul 2019 15:30

Re: Wenn item = ein dann nach 1h Stunde ausschalten

Beitrag von Kito » 10. Jul 2019 17:33

Danke, funktioniert damit auch wunderbar. 8-)

Habe noch eine Frage zu meiner anderen rule. Sie funktioniert, so dass bei Sonnenuntergang die Gruppe Rollos runter gefahren werden. Wie kann man das umsetzen, dass ich sage es soll nur 50% gefahren werden? Geht das über die rule?

Code: Alles auswählen

when
Channel 'astro:sun:xxx:set#event' triggered START
then
createTimer(now.plusMinutes(2)) [|   gSUG.allMembers.forEach(gSUG | { gSUG.sendCommand(DOWN) } ) ]
end
Edit.. hat sich erledigt... sendCommand(50)

Benutzeravatar
peter-pan
Beiträge: 246
Registriert: 28. Nov 2018 12:03
Wohnort: Schwäbisch Gmünd

Re: Wenn item = ein dann nach 1h Stunde ausschalten

Beitrag von peter-pan » 10. Jul 2019 18:12

Ich kenne mich mit Rollos zwar nicht aus (habe leider keine), aber es sollte funktionieren, wenn du die Items als Typ Rollershutter definiert hast. Hier ein paar Links zu diesem Thema:
https://community.openhab.org/t/virtuel ... er/64604/4
https://www.openhab.org/docs/configurat ... .html#type
viewtopic.php?t=401

Du findest hier im Forum sicher noch mehr Posts zu diesem Thema. Schau doch mal unter Openhab2 nach. Was mich zu der Frage bringt, warum hast du das unter Openhab 1 gepostet ?

Zum Problem mit dem Astro-Binding. Es gibt natürlich die Möglichkeit des Offsets.

Zum besseren Verständnis, ier meine astro.things-Datei

Code: Alles auswählen

//    Astro - Binding Geo-Position  geolocation="xx.xxxxxx,y.yyyyy,zzz"

Thing astro:sun:local     "Sonnen Daten"    [geolocation="xx.xxxxxx,9.8709123,zzz", interval=300]
Thing astro:moon:local    "Mond Daten"      [geolocation="xx.xxxxxx,9.8709123,zzz", interval=300]
                                        

Thing astro:sun:minus90   "Offset -90"     [geolocation="xx.xxxxxx,9.8709123,zzz", interval=300]{
  Channels:
    Type rangeEvent : set#event [
      offset=-90
    ]
    Type start : set#start [
      offset=-90
    ]
    Type end : set#end [
      offset=-90
    ]
  }

Thing astro:sun:stowing   "Offset -180"     [geolocation="xx.xxxxxx,9.8709123,zzz", interval=300]{
  Channels:
    Type rangeEvent : set#event [
      offset=-180,
      earliest="19:40"
    ]
  }
Thing astro:sun:stowing1   "Offset 20"     [geolocation="xx.xxxxxx,9.8709123,zzz", interval=300]{
  Channels:
    Type rangeEvent : noon#event [
      offset=20,
      earliest="13:00"
    ]
    Type rangeEvent : set#event [
      offset=20,
      earliest="20:10"
    ]
    Type start : rise#start [
      offset=20,
     earliest="09:00"
    ]
    Type end : rise#end [
      offset=20
    ]
    Type start : set#start [
      offset=20,
      earliest="21:10"
    ]
    Type end : set#end [
      offset=20,
      latest="21:50"
    ]
  }
  Thing astro:sun:stowing2   "Offset -90"     [geolocation="xx.xxxxxx,9.8709123,zzz", interval=300]{
  Channels:
    Type rangeEvent : set#event [
      offset=-90
    ]
    Type start : set#start [
      offset=-90
    ]
    Type end : set#end [
      offset=-90
    ]
  }

und ein paar korrespondierende Regeln

Code: Alles auswählen

var Number count=1
var Number mooncount=0

/*===============================================================================
|                           Begin Astro Rules                                   |
=================================================================================*/
//===============================================================================
*/
//===============================================================================
rule "Stowing1_Noon200_Event Test"
    when
            Channel 'astro:sun:stowing1:noon#event' triggered START
    then
        logInfo("astro-rules" + '_Test', " Noon_200 Event. START")
        //EG_EG_Kind2_Licht.sendCommand(ON)
end
//===============================================================================
rule "Stowing1_Set200_Start Test"
    when
            Channel 'astro:sun:stowing1:set#event' triggered START
    then
        logInfo("astro-rules" + '_Test', " Set_200 Event. START")
        //EG_EG_Kind2_Licht.sendCommand(ON)
end
rule "Moonset Ende"
    when
        Channel 'astro:moon:local:set#event' triggered END
    then
        logInfo("astro-rules" + '_02'," Der Mond geht unter. END")
        //Sonoff_Basic_03.sendCommand(ON)
end
//===============================================================================
rule "Sunset_180 Start"
    when
            Channel 'astro:sun:stowing:set#event' triggered START
    then
        logInfo("astro-rules" + '_03', " Sunset_180 Start. START")
        //EG_EG_Kind2_Licht.sendCommand(ON)
end
//===============================================================================
rule "Sunset_180 Ende"
    when
            Channel 'astro:sun:stowing:set#event' triggered END
    then
        logInfo("astro-rules" + '_04', " Sunset_180 Ende. END")
        //EG_EG_Kind2_Licht.sendCommand(ON)
end

//===============================================================================
rule "Sunrise Start"
    when
            Channel 'astro:sun:local:rise#event' triggered START
    then
        logInfo("astro-rules" + '_05', " Sunrise START ")
        //EG_EG_Kind2_Licht.sendCommand(ON)
end

//===============================================================================
rule "Mittag Start"
    when
        Channel 'astro:sun:local:noon#event' triggered START
    then
        logInfo("astro-rules" + '_06', " Mittag - noon. START")
        //Sonoff_Basic_03.sendCommand(ON)
end
//===============================================================================
Vieleicht kannst du ja damit was anfangen.

Benutzeravatar
sihui
Beiträge: 538
Registriert: 11. Apr 2018 19:03

Re: Wenn item = ein dann nach 1h Stunde ausschalten

Beitrag von sihui » 10. Jul 2019 19:10

peter-pan hat geschrieben:
10. Jul 2019 18:12
Es gibt natürlich die Möglichkeit des Offsets.
Hat er nicht oder will er nicht :(
sihui hat geschrieben:
8. Jul 2019 22:28
Für deine Beispiele bietet sich aber eher ein Offset im Range Event des Astro Bindings an.
Kito hat geschrieben:
8. Jul 2019 22:34
Offset gibt es nicht im Astro Binding.
openHAB2 mit Zwave, Tinkerforge, Alexa, ESP8266, Logitech Harmony, Philips HUE und Xiaomi Hardware

Kito
Beiträge: 12
Registriert: 7. Jul 2019 15:30

Re: Wenn item = ein dann nach 1h Stunde ausschalten

Beitrag von Kito » 10. Jul 2019 19:14

Ich habe nur im Astro Binding geschaut und da steht nichts von offset.

Peter Aschinger
Beiträge: 181
Registriert: 8. Feb 2019 12:12

Re: Wenn item = ein dann nach 1h Stunde ausschalten

Beitrag von Peter Aschinger » 10. Jul 2019 20:09

....doch....
Im Binding im jeweiligen Channel:
Screenshot_20190710-200751.png

Benutzeravatar
peter-pan
Beiträge: 246
Registriert: 28. Nov 2018 12:03
Wohnort: Schwäbisch Gmünd

Re: Wenn item = ein dann nach 1h Stunde ausschalten

Beitrag von peter-pan » 10. Jul 2019 22:41

Ich denke da gibt es ein kleines Missverständnis. Wie Peter (mein Namensvetter) das beschrieben hat, kann man das auch in der PaperUI setzen. Ich bevorzuge die Textvariante.
Man kann es aber auch nachlesen. z. B. hier.

Benutzeravatar
udo1toni
Beiträge: 1413
Registriert: 11. Apr 2018 18:05
Wohnort: Darmstadt

Re: Wenn item = ein dann nach 1h Stunde ausschalten

Beitrag von udo1toni » 14. Jul 2019 19:44

Kito hat geschrieben:
10. Jul 2019 17:33
Danke, funktioniert damit auch wunderbar. 8-)

Habe noch eine Frage zu meiner anderen rule. Sie funktioniert, so dass bei Sonnenuntergang die Gruppe Rollos runter gefahren werden. Wie kann man das umsetzen, dass ich sage es soll nur 50% gefahren werden? Geht das über die rule?

Code: Alles auswählen

when
Channel 'astro:sun:xxx:set#event' triggered START
then
createTimer(now.plusMinutes(2)) [|   gSUG.allMembers.forEach(gSUG | { gSUG.sendCommand(DOWN) } ) ]
end
Edit.. hat sich erledigt... sendCommand(50)
Wenn Deine Rollos absolutes Positionieren unterstützen, kannst Du auch einen Zahlwert senden:

Code: Alles auswählen

gSUG.allMembers.forEach[i | i.sendCommand(50)]
Bitte nicht identische Bezeichner über unterschiedliche Dinge in unterschiedlichen Kontexten verwenden, das geht irgendwann grandios schief.

Im vorliegenden Fall gibt es eine Gruppe gSUG, deren Member nacheinander einen Befehl bekommen. Dabei sollte das einzelne Item nicht mit dem Gruppennamen gSUG dargestellt werden, sondern mit einem übergeordnet einmaligen Zeichen (hier i für Item). Da i nur in diesem Kontext gültig ist, kann man i auch in anderen Kontxten verwenden, aber natürlich nicht in übergeordneten oder untergeordneten Kontexten, denn hier schlägt die Vererbung zu.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast