mal wieder eine toootal notwendige openhab integration von mir.
das neue ring intercom ist letzte woche bei mir angekommen. (wer bestellen möchte, natürlich bitte über diesen ref-link um dieses forum zu unterstützen)
https://www.amazon.de/ring-intercom/dp/B0B5FX7QHX?tag=kodinerds04-21 [Anzeige]
ring intercom kann so gut wie jede bereits vorhandene türsprechanlage "smart" machen. ihr könnt per ring app mit dem "klingler" sprechen und auch den türöffner betätigen. eine alexa bridge gibt es auch, um bspw alexa klingeln zu lassen, via alexa (konfigurierbarer zahlencode wird abgefragt) die tür zu öffnen oder mit dem "klingler" zu sprechen.
kompatiblitätschecker: https://ring.com/intercom-compatibility-checker/
was mich an dem system allerdings ziemlich gestört hat, sind die eingeschränkten möglichkeiten zeitfenster für "klingel aus" zu setzen. ich hasse paketboten, die am wochenende, während meines mittagsschlafs klingeln. deswegen musste also eine ring-alexa-openhab integration her.
leider gibt es kein aktuelles openhab3 ring binding und die opensource standalone ring2mqtt software sagt mir auch nicht so recht zu. bei letzterer ist das ring intercom momentan auch noch nicht kompatibel.
das ganze ist kein problem, man geht einfach den umweg über einen schaltbaren dummy switch in openhab. dieser taucht in der alexa app auf und kann dann mittels alexa routine für die kommunikation mit openhab genutzt werden.
kurzversion: ringintercom ist der trigger ---- ausgelöste aktion = dummy switch in openhab -----> openhab regelt den ganzen rest.
hier ein beispiel bzw eine anregung für interessierte. ich hab mich mal auf das wesentliche beschränkt. das ganze ist natürlich unendlich erweiterbar...bspw mit cam bildern in der sitemap, auf dem tv usw usw
hier vorhandene features:
- klingel ein/ausschalten
- anzeige zuletzt geklingelt
- ruhetimer inkl laufzeitanzeige für zeitbasierte stummschaltung
- optionale mittagsautomatik (stummschaltung am wochenende und an feiertagen zur mittagszeit)
- optionale tv automatik (anhalten und fortsetzen der wiedergabe auf geräten die kodi nutzen)
- klingeltonauswahl inkl klingelton test (nutzung der amazon soundlibrary)
- automatisch saisonale und eventabhängige klingeltöne, manuelle auswahl ebenso möglich (nutzung der amazon soundlibrary)
und nochmals....dies hier ist keine 1:1 copy/paste vorlage. dafür sind die systeme bei allen usern zu unterschiedlich. wer hilfe benötigt einfach hier posten)
items:
Group Klingel
Switch Haustuerklingel "Türklingel" <klingel> (Klingel) {alexa="Switch"}
DateTime Haustuerklingel_Zeit "Zuletzt geklingelt [%1$tH:%1$tM Uhr am %1$td.%1$tm.]" <time> (Klingel)
Switch Haustuerklingel_Dummy "Klingel Trigger" <lock> (Klingel) {alexa="Switch",expire="5s,command=OFF"}
String Haustuer_Klingelton "Klingelton [%s]" <klingelton> (Klingel)
Switch Haustuerklingel_Kodi "TV Automatik" <screen> (Klingel)
Switch Haustuerklingel_Mittag "Mittag Automatik" <bedroom> (Klingel)
Number Haustuerklingel_Timer "Ruhetimer [%.0f]" <soundvolume_mute> (Klingel)
DateTime Haustuerklingel_Timer_Ende "Ruhetimer endet [%1$tH:%1$tM Uhr]" <time> (Klingel)
String Haustuer_Klingelton_Test "Klingelton [%s]" <soundvolume> {expire="5s,command=OFF" }
rules
rule "klingeltrigger löst klingel aus"
when
Item Haustuerklingel_Dummy changed from OFF to ON
then
Haustuerklingel_Zeit.postUpdate(new DateTimeType())
if (Haustuerklingel.state == ON && Haustuerklingel_Kodi.state == OFF){
Alexa_TTS.sendCommand(Haustuer_Klingelton.state.toString)
}
if (Haustuerklingel.state == ON && Haustuerklingel_Kodi.state == ON){
Alexa_TTS.sendCommand(Haustuer_Klingelton.state.toString)
Kodi_Player.sendCommand("PAUSE")
createTimer(now.plusSeconds(30), [|
Kodi_Player.sendCommand("PLAY")
])
}
// für einen zusätzlichen visuellen hinweis (alexas mit display), die folgende zeile einkommentieren:
//Alexa_Announce_Guppe.sendCommand('{"sound": false, "title": "Haustür", "body": "Jemand klingelt an der Haustür!"}')
end
rule "klingelton test sitemap"
when
Item Haustuer_Klingelton_Test received command "Play"
then
Alexa_TTS.sendCommand(Haustuer_Klingelton.state.toString)
end
rule "automatische klingelabschaltung am we und feiertagen"
when
Time cron "0 0 12 1/1 * ? *" or
Time cron "0 0 15 1/1 * ? *"
then
val String FeiertagName = Ephemeris.getNextBankHoliday()
val long TagebisFeiertag = Ephemeris.getDaysUntil(FeiertagName)
val heuteWochenende = Ephemeris.isWeekend(0)
var stunde = now.getHour()
if ((TagebisFeiertag == 0 || heuteWochenende == true) && (Haustuerklingel_Mittag.state == ON && stunde == 12)) {
Haustuerklingel.sendCommand(OFF)
}
if (stunde == 15 && Haustuerklingel_Mittag.state == ON) {
Haustuerklingel.sendCommand(ON)
}
end
rule "automatisierte klingeltöne"
when
Time cron "0 0 0 1/1 * ? *"
then
var tag = now.getDayOfMonth()
var monat = now.getMonthValue
// halloween
if (tag == 31 && monat == 10) {
Haustuer_Klingelton.sendCommand('<speak>""<audio src="soundbank://soundlibrary/monsters/ghosts_demons/ghosts_demons_13"/></speak>')
}
if (tag == 1 && monat == 11) {
Haustuer_Klingelton.sendCommand('<speak>""<audio src="soundbank://soundlibrary/bell/chimes/chimes_02"/></speak>')
}
// Weihnachtszeit
if (tag == 6 && monat == 12) {
Haustuer_Klingelton.sendCommand('<speak>""<audio src="soundbank://soundlibrary/holidays/christmas/christmas_02"/></speak>')
}
if (tag == 27 && monat == 12) {
Haustuer_Klingelton.sendCommand('<speak>""<audio src="soundbank://soundlibrary/bell/chimes/chimes_02"/></speak>')
}
// silvester
if (tag == 31 && monat == 12) {
Haustuer_Klingelton.sendCommand('<speak>""<audio src="soundbank://soundlibrary/explosions/fireworks/fireworks_02"/></speak>')
}
if (tag == 1 && monat == 1) {
Haustuer_Klingelton.sendCommand('<speak>""<audio src="soundbank://soundlibrary/bell/chimes/chimes_02"/></speak>')
}
//Hier drüber auf Wunsch weitere Sonds einfügen. Übersicht Soundlibraries ---> https://developer.amazon.com/en-US/docs/alexa/custom-skills/ask-soundlibrary.html
end
rule "türklingel ruhetimer"
when
Item Haustuerklingel_Timer received command
then
switch receivedCommand {
case receivedCommand > 0.0: {
Haustuerklingel.sendCommand(OFF)
Haustuerklingel_Timer_Ende.postUpdate(new DateTimeType(now.plusMinutes((Haustuerklingel_Timer.state as Number).intValue)))
createTimer(now.plusMinutes((Haustuerklingel_Timer.state as Number).intValue), [|
Haustuerklingel.sendCommand(ON)
Haustuerklingel_Timer.postUpdate(0.0)
])
}
case receivedCommand == 0: {
Haustuerklingel.sendCommand(ON)
}
}
end
rule "ruhetimer auf 0 bei manuellem einschalten der klingel"
when
Item Haustuerklingel received command ON
then
Haustuerklingel_Timer.postUpdate(0.0)
end
Alles anzeigen
sitemap
Text item=Haustuerklingel_Zeit label="Türklingel" icon="klingel" {
Frame {
Switch item=Haustuerklingel mappings=[OFF="Aus", ON="Ein"]
Text item=Haustuerklingel_Zeit
Selection item=Haustuerklingel_Timer mappings=["0.0"="Deaktiviert", 30="30 Minuten",60="1 Stunde",120="2 Stunden",240="4 Stunden"]
Text item= Haustuerklingel_Timer_Ende visibility=[Haustuerklingel_Timer > 0]
Switch item=Haustuerklingel_Mittag mappings=[OFF="Aus", ON="Ein"]
Switch item=Haustuerklingel_Kodi mappings=[OFF="Aus", ON="Ein"]
Selection item=Haustuer_Klingelton mappings=[
'<speak>""<audio src="soundbank://soundlibrary/bell/chimes/chimes_02"/></speak>'='Standard',
'<speak>""<audio src="soundbank://soundlibrary/monsters/ghosts_demons/ghosts_demons_13"/></speak>' = "Halloween",
'<speak>""<audio src="soundbank://soundlibrary/holidays/christmas/christmas_02"/></speak>' = "Weihnachten",
'<speak>""<audio src="soundbank://soundlibrary/explosions/fireworks/fireworks_02"/></speak>' = "Silvester"
//Hier drüber auf Wunsch weitere Sonds einfügen (Kommasetzung nicht vergessen). Übersicht Soundlibraries ---> https://developer.amazon.com/en-US/docs/alexa/custom-skills/ask-soundlibrary.html
]
Switch item=Haustuer_Klingelton_Test label="Klingelton Test[]" mappings=[Play="Start"]
}
}
Alles anzeigen
persisten
icons:
icons.zip