Klingel Tuning - Openhab + Alexa + Ring Intercom

  • 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 [ca]
    - 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:

    Code
    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

    sitemap

    persisten

    Code
    Klingel*

    icons:
    icons.zip

  • Cooler scheiß! Gerade erst durch die News von @don gesehen. :)

    Ich hab noch einen mechanischen Gong, hab ihn aber mit einem Aqara vibration sensor zumindest etwas smart gemacht: Sprachausgabe über Alexa und Ein-/Aus-Schalter in openHAB. Ruhetimer und TV-Pausieren sind für mich interessant, packe ich mal auf die ToDo-Liste. :thumbup:

  • Das ist echt eine Supervorlage! Danke.
    Ich werde meine "smarte Klingel" (es ist nur ein Tür/Fenstersensor, an den ich einen Taster gelötet habe) auch damit aufhübschen.
    Was mir noch fehlt ist eine Lautstärkeeinstellung für die Klingel.

    Wie ist das wenn ich dem Text to Speech Lautstärke item einen Wert mitgebe? Gilt das dann nur für die eine Ansage oder würde das für spätere Ansagen beibehalten?

    Soll heißen, wenn ich z.B. die Klingel laut stelle und danach eine andere Ansage kommt. Ist die dann genauso laut wie die Klingel oder fällt das auf einen Grundwert zurück?

    @horschte wo holst Du die icons her?
    Ich suche noch was nettes für meine Aquarien.

  • @horschte wo holst Du die icons her?
    Ich suche noch was nettes für meine Aquarien.

    einfach nach free svg icons suchen.
    von hier hab ich bspw einiges https://www.svgrepo.com/
    die icons im ersten beitrag sind aber fast alle openhab eigene
    https://www.openhab.org/docs/configuration/iconsets/classic/

    Wie ist das wenn ich dem Text to Speech Lautstärke item einen Wert mitgebe? Gilt das dann nur für die eine Ansage oder würde das für spätere Ansagen beibehalten?

    keine ahnung. nicht getestet. ich bion mit meiner lautstärkeeinstellung zufrieden. weder sprachausgabe noch klingel ist zu laut oder leise

  • Mir ist Dein Code wegen meiner Advents-rules in den Sinn gekommen.

    Bisher habe ich die rule immer ein oder aus kommentiert, damit sie nur in der Adventszeit läuft.

    Verstehe ich das hier richtig:
    Am 6.12. wird der Klingelton auf Christmas_02 gestellt; am 27.12. dann wieder auf chimes_02?

    Ich hatte erst mit dem Gedanken gespielt das mit Ephemeris zu lösen, aber Dein Ansatz wäre ja viel einfacher.
    Dann könnte ich ja nach dem Muster einen AdventsDummy schalten lassen?

    Code
    }
    // 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>')  
        }
  • ephemeris kann nur feiertage und wochenende erkennen aber kein datum selbst. ephemeris und datumserkennung kann man natürlich auch gut kombinieren.

    Verstehe ich das hier richtig:
    Am 6.12. wird der Klingelton auf Christmas_02 gestellt; am 27.12. dann wieder auf chimes_02?

    korrekt. var tag = now.getDayOfMonth() und var monat = now.getMonthValue müssen dann natürlich an den anfang der rule wie oben im beispiel.

    Dann könnte ich ja nach dem Muster einen AdventsDummy schalten lassen?

    jup.

  • Die Adventssonntage finde ich nicht.
    Das wäre dann sicher ein fieses Gerechne.
    Im Großen und Ganzen kommt es da nicht unbedingt darauf an genau den Advent zu erwischen

    Was es zu geben scheint, ist der Totensonntag. Der ist ja immer eine Woche vor dem ersten Advent

  • Könnte man auch mit Openhab die Tür öffnen oder kann nur die Klingel abgefragt werden?

    Würde das nämlich als Ring-To-Open an bestimmten Tagen verwenden, wenn ich weiß dass ein Paket kommen sollte

  • bisher ist es nicht möglich die tür via openhab zu öffnen. momentan ist der "code" zum tür öffnen das problem. man kann zwar mittels openhab und alexa binding den befehl senden, der mitgelieferte code zum öffnen wird allerdings nicht akzeptiert. ich hab da aber schon einige feature requests betreffs bestätigungscode gesehen, gut möglich dass es in zukunft funktionieren wird.

  • Die Adventssonntage finde ich nicht.
    Das wäre dann sicher ein fieses Gerechne.
    Im Großen und Ganzen kommt es da nicht unbedingt darauf an genau den Advent zu erwischen

    https://github.com/svendiedrichse…Holidays_de.xml
    adventssonntage gibt es offenbar nicht

    Was es zu geben scheint, ist der Totensonntag. Der ist ja immer eine Woche vor dem ersten Advent

    nein, siehe link oben

  • bisher ist es nicht möglich die tür via openhab zu öffnen. momentan ist der "code" zum tür öffnen das problem. man kann zwar mittels openhab und alexa binding den befehl senden, der mitgelieferte code zum öffnen wird allerdings nicht akzeptiert. ich hab da aber schon einige feature requests betreffs bestätigungscode gesehen, gut möglich dass es in zukunft funktionieren wird.

    Also bei Amazon ist eine Bewertung von jemandem der sagt er öffnet über dieGarmin App Apicall seine Haustüre Verbunden über openhab-alexa-ring intercom und seine Garmin Watch.

    Weil ich genau das auch machen möchte habe ich mir ein openhabian3 auf dem raspberry aufgesetzt.
    Ich habe es bis jetzt geschafft mal ne Location und Räume zu erstellen sowie mein Hue Hub zu connecten und mal Testweiße ne Lampe anzusteuern sowie mein Alexaaccount mit openhab zu Koppeln mehr auch nicht.Ich Blick da einfach nicht durch.

    Wie um Himmels willen kann ich in openhab3 in der Benutzerui ein Dummieswitch erstellen der mir in Alexa angezeigt wird?

  • Also ich antworte mir mal selbst.Die Sache läuft einwandfrei. Der nette Mensch aus der Amazonbewertung hat sich in einem anderen Forum bei mir gemeldet.
    Dummy switch erstellen dieser wird über opencloudhub von Apicall angesteuert und gibt ein
    call command an eines der Alexa Geräte.Diese öffnet entriegelt dann die Türe übers Intercom.

  • Gude,
    also die Kurzform hab ich doch oben geschrieben.

    1.) Dummy Switch in Openhab einrichten.
    2.) Der Switch bekommt eine Regel, über die du an eines deiner Alexa Geräte ein Voice Command sendest. Das geht über das Echo Binding. Du musst das Kommando senden "Öffne Haustüre 1 2 3 4", das ganze unter der Annahme, dass "Haustüre" der Name deines Ring Intercoms bei Alexa ist und 1 2 3 4 der von dir gewählte Pin Code zum öffnen.

    Du kannst dann schonmal in Openhab prüfen, ob dein Dummy Switch wie gewünscht funktioniert.

    Wenn das klappt, musst du unter API Call einen Befehl hinterlegen, um den Switch über Openhab cloud anzusteuern:

    {deviceName:"Haustüre",deviceIcon:7,actionName:"öffnen",headers:"{\"Authorization\":\"Basic xxxxxxxxxxxxxxxxxxxxxx \"}",url:"https://home.myopenhab.org/basicui/CMD?door_open=ON"}

    hierbei musst du deine openhab Cloud Login Daten mit einem Base64 Encoder umwandeln. xxxxxxxxx steht also für deine Logindaten für Openhab Cloud in der Form "meine@mailadresesse.de:passwort", encodiert in Base64.

    door_open ist der Name des Switches.
    Command "ON" habe ich in einer Regel verwendet. (Wenn door_open empfängt ON, dann ....)

    (Quelle Openhub Forum erstellt vom User gforums.Hier der Link ab Seite 2 mitte:https://openhabforum.de/viewtopic.php?p=50316#p50316)

    Ich kann aber auch gerne den Link vom andern Forum hier reinstellen wenn das ok ist.

  • ephemeris kann nur feiertage und wochenende erkennen aber kein datum selbst. ephemeris und datumserkennung kann man natürlich auch gut kombinieren.

    korrekt. var tag = now.getDayOfMonth() und var monat = now.getMonthValue müssen dann natürlich an den anfang der rule wie oben im beispiel.

    jup.


    Mir ist gerade langweilig.

    klappt das wohl so?

  • ne. da hast du nen syntax/logik fehler in zeile 9 und 12 drin.
    zeile 9 müsste so aussehen:

    Code
    if ((tag == 24 && monat == 11) || (tag == 7 && monat == 1))

    bei deinem beispiel würde an dieser stelle  tag >= 24 && monat == 11 jeden tag ab dem 24. getriggert werden. ist unnütz. es reicht ja 1x am 24.11 zu schalten...das brauchste nicht jedes mal im wiederholen zu lassen.
    zusätzlich siehst du, dass ich  (tag == 24 && monat == 11) und (tag == 6 && monat == 1) extra eingeklammert habe. du musst die sachen so voneinander trennen.
    bei deinem anwendungsfall würde ich da aber gar nicht mit "oder" rumjonglieren. du machst es dir da zu umständlich weil du halt die rule jeden tag starten wolltest. am 24.11. und am 7.1. alles durchrattern lassen reicht doch. ist ja nicht so, dass die beiden tage im jahr "verschwinden" und damit die rule nicht mehr triggern könnte [ad]
    beispiel für ne total simple umsetzung:

  • Warum einfach wenn es auch kompliziert geht ?

    Ich habe mich an der von dir damals geschriebenen rule für meine Schlafzimmerbeleuchtung orientiert.
    Die war komplizierter.


    Ich war da der Meinung, daß z.B. am 24.11 der Schalter auf ON geht und am 25.11. dann nicht mehr.
    Aber Du hast natürlich -wie immer - recht. Warum sollte der Schalter am 25.11. wieder aus gehen?

    vielen Dank für die einfache Lösung. Wird die Tage eingebaut.

    Das

    Code
    when 
        Time cron "0 00 05 * * ?" && isAdvent.state == ON
    then gAdvent.sendCommand(ON)
    end

    zum eigentlichen Schalten ist aber okay?

  • Aber Du hast natürlich -wie immer - recht. Warum sollte der Schalter am 25.11. wieder aus gehen?

    richtig. den schalter in irgendeine gruppe, die in die persistence rein und der schalter bleibt auch nicht auf NULL, bspw nach nem neustart.

    Das
    zum eigentlichen Schalten ist aber okay?

    ne....falscher aufbau. du kannst bei when keine abfrage machen. du willst offenbar gAdvent (licht?) um 5uhr jeden morgen einschalten wenn isAdvent aktiv ist.
    die abfrage ob isAdvent aktiv ist, muss ganz normal in ein if ...bspw

    Code
    rule "xxxxxxxxxxxxxxx"
    when 
        Time cron "0 00 05 * * ?"
    then
        if(isAdvent.state == ON){
             gAdvent.sendCommand(ON)
        }
    end

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!