Es gibt für alles Lösungen. Bestenfalls hat man eine Klingel/Türsprechanlage an der man direkt ein geeignetes Klingelsignal abgreifen kann, welches man dann über ein kleines Microcontrollerboard mit etwas Code auswertet. Das erkannte Klingelzeichen kann man dann z.B. per WLAN an einen MQQ-Broker als entsprechendes Topic senden, von wo aus es eine Smarthome-Lösung abholen und für weitere Aktivitäten nutzen kann. Kann man kein passendes Signal abgreifen, muss man sehen, was man sonst so abgreifen kann, und wie man das mit zusätzlicher Hardware für die Eingänge des Microcontrollerboards „passend“ macht. Kann/will man gar nicht direkt in die Klingel/Sprechanlage eingreifen, tut es notfalls ein Mikro an der Klingel dessen Pegel man misst (in der Auswertung die Schwelle natürlich dann so hoch legen, dass wirklich nur das unmittelbar am Mikro erzeugte Klingeln als solches erkannt wird). Ist die Klingel noch so richtig schön elektro-mechanisch, könnte ggf. auch ein Hall-Sensor gute Dienste leisten, der die Änderung des Magnetfeldes aufgrund der beim Klingeln aktiven Elektromagnete auswertet.
Ich habe neulich angefangen ein wenig mit ausgesprochen billigen NodeMCU-Boards im Zusammenhang mit meiner Hausautomatisation zu „spielen“, die recht einfach zu nutzen sind und WLAN mitbringen. Damit habe ich mir z.B. einen CO-Sensor in genau der oben beschriebenen Art und Weise aufgebaut. D.h. auf dem Board läuft ein kleines Programm (wirklich sehr überschaubar), dass das Board ins heimische WLAN bringt, sich mit dem auf meinem Heimautomatisationsserver (Raspberry Pi mit openHAB) laufenden MQQ-Broker verbindet, den Sensor ausliest und die Messwerte unter einem eigenen Topic auf den MQQ-Broker schiebt. Dort werden die dann von openHAB über ein entsprechendes Item ausgelesen, ausgewertet und genutzt. Zusätzlich hängt am Board auch noch ein eigener kleiner akustischer Signalgeber (doppelt hält besser), der über ein paar Codezeilen einer lokalen Auswertung der Daten ggf. ausgelöst wird.