[Projekt] Eigenbau-Wecker mit Anbindung an FHEM

Begonnen von roedert, 07 November 2017, 00:59:37

Vorheriges Thema - Nächstes Thema

roedert

Ich bin Fan eines klassischen Weckers und habe nur ungern ein Gerät mit kompletten OS (Android), hintergrundbeleuchtetem LCD und extra Wecker-App. Allerdings hat ein klassischer Wecker mit LCD-Anzeige keine Netzanbindung und ist somit nicht über FHEM steuerbar. Wichtig war mir vor allem das Ein- und Ausschalten des Weckers entsprechend dem FHEM-Feiertags- bzw- Urlaubskalenders.
Also gehts an den Eigenbau .... ESP8266, RTC DS3231, 4 MAX7219-Displaymodule (8x8 Pixel), paar Taster und ein Buzzer.
Sketch ist soweit rudimentär fertig, dass die Uhrzeit angezeigt wird, beim Einschalten und jede volle Stunde die Uhrzeit per ntp aktualisiert wird und Weckfunktion incl Snooze einstellbar und aktivierter/deaktivierbar ist.
Es läuft ein kleiner Webserver worüber man Wecker ein- und ausschalten und Weckzeit setzen kann. in FHEM habe ich dafür einen dummy mit notify eingerichtet, welches per curl die entsprechende URL aufruft. Ein extra FHEM-Modul wollte ich dafür nicht extra basteln.
Durch die ntp-Anbindung hätte man auch komplett auf die RTC verzichten können, ich wollte diese aber noch als "Gangreserve" im Hintergrund haben. Evtl. entfällt dies aber noch in Zukunft wenn ich einen extra Batterie/Akkupuffer als Gangreserve bei Stromausfall einbaue um nicht nur die Uhrzeit weiterlaufen zu lassen, sondern den kompletten ESP8266 und somit auch den Buzzer auslösen lassen kann.

ToDo's sind noch:
- Optimierung des Sketches, Einbindung einiger Taster und Funktionen fehlt noch
- Bug in der ntp-Abfrage (manchmal bekomme ich ein um eine Stunde falsches Ergebnis)
- "ausfallsicheres" Abspeichern der Weckzeit im EEPROM des 8266 oder im batteriegepufftem Speicher der RTC
- Gehäuse ... evtl. per 3D-Druck
- Batteriepuffer um auch ein Wecken bei Stromausfall sicherzustellen
- schickeres Display - am liebsten in weiss ... bisher habe ich aber nur rote 8x8-Module gefunden (mit imho gemeinsamer Anode)

Vielleicht dient es ja dem einem oder anderen auch als Anregung oder hat sogar Interesse an der Weiterentwicklung oder auch  nur weitere Ideen.

Aktuell sind das Teil zwar noch mehr wie ein selbstgebauter Zeitzünder aus ... aber das wird sich auch noch ändern  :) 

Gunther

Spannendes Projekt. Auch wenn ich außer Ideen nicht viel dazu beisteuern kann. Da fallen mir schöne Szenarien ein.
Ich lese mal mit.
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Tueftler1983

Ich gucke auf jeden Fall mit zu, mir würde z.b. noch gefallen wenn ein dht22 noch seine Daten an fhem schickt. War es mit nem esp8266 Musik wieder zu geben zumindest Melodien?

MadMax-FHEM

Zitat von: Tueftler1983 am 07 November 2017, 23:42:01
Ich gucke auf jeden Fall mit zu, mir würde z.b. noch gefallen wenn ein dht22 noch seine Daten an fhem schickt. War es mit nem esp8266 Musik wieder zu geben zumindest Melodien?

Mit nem angeschlossenen mp3-Modul sollte das kein Problem sein ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Gunther

Ne LAN Version wird vermutlich schwierig oder?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

mahowi

Läßt sich das Display dimmen? Ansonsten wäre mir das etwas zu hell im Schlafzimmer.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Gunther

Wenn ich das richtig verstanden habe musst Du es einschalten.
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

dev0

Hast Du den Link zum Quellcode vergessen oder habe ich ihn übersehen?

roedert

#8
Update:
Den "Webserver" lasse ich vielleicht als optionales "Frontend", die Kommunikation mit FHEM erfolgt mittlerweile komplett über MQTT und läuft soweit auch prima.
FHEM kann den Wecker aktivieren / deaktivieren und die Weckzeit setzen.
Der Wecker liefert jede Statusänderung vom Wecker (on/off/Weckzeit/ausgelöst/Snooze) an FHEM.

Ne LAN Version wird vermutlich schwierig oder? ... nö, dann nimmst zB ein Arduino mit Ethenet-Shield - sind dann sicher noch ein paar Anpassungen nötig, aber denke ich machbar
Läßt sich das Display dimmen? Ansonsten wäre mir das etwas zu hell im Schlafzimmer. ... man kann dem Display per Software verschiedene Helligkeitswerte vorgeben, aber selbst der kleinste Wert ist noch ziemlich hell. Daran muss ich auch noch arbeiten - per Elektronik oder einfach nur ne getönte Scheibe vor - oder nen ganz anderes Display.
Hast Du den Link zum Quellcode vergessen oder habe ich ihn übersehen? ... soweit bin ich ja noch nicht wirklich dass man den schon "veröffentlichen" könnte ... kommt aber denke ich bald

Edit:
Hab mal den aktuellen Quellcode angehangen.
Ist noch vieles "quick and dirty", aktuell ist noch offen:
- NTP-Bug: manchmal wird eine um eine Stunde falsche Uhrzeit eingestellt
- Buzzer löst nach Ablauf des Snooze-Intervals noch nicht wieder aus
- Weckzeit und Status sollten im EEPROM gespeichert werden

Außerdem sind das nach langem wieder mal meine ersten Programmierungen, ausserdem bin ich neu in der Arduino-Welt. Also werden einige Teile im Quellcode unsauber oder auch "ungeschickt" sein - aber es funktioniert erstmal.
Thema MQTT war auch komplett neu für mich, hoffe ich habe es soweit verstanden und die Umsetzung ist auch korrekt - wie auch immer, sie funktioniert zumindest.

In FHEM sieht der Wecker dann so aus:
defmod FHEMclock MQTT_DEVICE
attr FHEMclock IODev MQTTbroker
attr FHEMclock publishSet FHEMclock/set/
attr FHEMclock stateFormat transmission-state
attr FHEMclock subscribeReading_alarm FHEMclock/alarm
attr FHEMclock subscribeReading_buzzer FHEMclock/buzzer
attr FHEMclock subscribeReading_almtime FHEMclock/almtime


Vom Wecker werden diese Reading gefüllt:
alarm ative|disabled
buzzer on|off
almtime hh:mm


Steuern kann man den Wecker von FHEM aus mit
set FHEMclock alarm=on
set FHEMclock alarm=off
set FHEMclock almtime=hhmm


Per

Was ähnliches habe ich auch vor, eine Uhr mit normaler und mit gespiegelter Anzeige nebeneinander, damit sie im Badspiegel genauso gelesen werden kann wie direkt. Aber ohne Wecker (wenn ich im Bad bin, bin ich ja schon "wach" ;)).

Zitat von: roedert am 11 November 2017, 04:55:29Edit:
Hab mal den aktuellen Quellcode angehangen.
Pack sowas besser in den ersten Post, sonst findet man das später schlecht wieder.

accessburn

Hallo roedert,
erst mal "danke" für die coole Idee. Ich bin drauf und dran es nach zu bauen da ich großes Interesse an einem smarten Wecker habe  :)
Das Gehäuse druck ich mir dann einfach selber  :)
Display würde ich ein OLED 0.96 nehmen, was in der Nacht zwar schwer zu sehen ist, den Raum aber nicht unnötig erhellt und auch nicht den halben Nachttisch in Beschlag nimmt. Zum Testaufbau nutze ich die MAX7219, wie du, jedoch musste ich nachbestellen und China dauert  ;)

Also, bleib bitte am Ball, ist nämlich ein tolles Projekt! 8)
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

roedert

Zitat von: accessburn am 15 November 2017, 14:39:48
Also, bleib bitte am Ball, ist nämlich ein tolles Projekt! 8)

Ja, bleib ich auf jeden Fall! Bin gerade noch im Urlaub ... der 3D-Drucker ist aber mittlerweile angekommen!
Softwareseitig bin ich gerade noch am Projekt "Wasserzählersensor" dran, da wird einiges des erlernten KnowHows bzgl. Weboberfläche, Konfigurationsseite etc. auch noch in den Wecker einfliessen.
Funktionell ist soweit eigentlich alles umgesetzt - jetzt geht es nur noch um "Feinarbeit" bei Software und eben vernünftiger Hardware.

roedert

OLED-Display klingt prinzipiell auch nicht schlecht. Allerdings müsste es immer an sein - erst nen Knopf drücken um die Uhrzeit zu erfahren scheidet bei mir aus. Ein OLED sollte ja auch mit entsprechend geringer Helligkeit einzustellen sein?
Allerdings habe ich kaum was in der Größe brauchbares gefunden - die Teile lagen meist bei 1" oder drunter.
Die Anzeige sollte schon 2 oder eher 3 cm hoch sein. Kennt da wer was passendes?
Und MP3-Weckton klingt auch nicht schlecht - allerdings dann wie vorgeschlagen über ein MP3-Modul was nur vom ESP aus getriggert wird.
Muss mal suchen ob es da was brauchbares gibt.

accessburn

Bei der Größe des OLEDs geb ich dir vollkommen recht. Zum Thema Dauerleuchten denke ich auch an die Lebensdauer des Displays, wie lange können die so im Durchschnitt leben? Für MP3s habe ich ein, noch hier rumliegenden "DFPlayer mini" vorgesehen.

Ich hänge mal mein halbfertiges Fritzing an.
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

roedert

Bei der weiteren Displaysuche bin ich jetzt auf RGB-8x8-LED-Matrixdisplays mit 60x60mm gestossen ... muss ich mich mal weiter einlesen, denen aber das könnte das richtige sein ... einfach mal bei aliexpress nach Colorduino suchen.

Nachdem ich jetzt soweit alle Grundlagen für den Wecker geklärt habe, würde ich die Displayfrage gerne erste klären bevor ich weitere Zeit und Arbeit in Soft- und Hardwareentwicklung stecke.

Per

Zitat von: roedert am 18 November 2017, 08:33:58erst nen Knopf drücken um die Uhrzeit zu erfahren
Wenn du keine freilaufenden Haustiere hast, kannst du mit einem IR- oder Radar-Bewegungsmelder was machen.

accessburn

Einen Ultraschallsensor hab ich noch übrig  ;D
Sollte gehen, habe nur eine freilaufende Frau und einen Kaktus, sollten beide keine Schwierigkeiten machen!  8)
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole


mark79

#18
Hallo,

an so was habe ich auch Interesse und wollte mir schon so mit einem ESP bauen, da kannte ich fhem aber noch nicht. :)

Wir haben ein Philips Wake-up Light der ganz toll ist.
Er weckt praktisch eine halbe Stunde eher durch ein gedimmtes Licht, was immer heller wird und nach 30 Minuten die max. Helligkeit erreicht und man dadurch sanft geweckt wird.
Falls man dann noch nicht wach sein sollte, spielt er Töne ab, z.B. Vogelgezwitcher, Bachrauschen etc. und auch erst leise, die später immer lauter werden. Oder alternativ Radio.

Der große Nachteil ist allerdings, das er keine Tageszeiten kennt, also man kann nicht einstellen, wecken nur von Mo-Fr.
Eine Funkuhr ist auch nicht verbaut und Sommer & Winterzeit kennt er auch nicht. Schon schade für den Preis..

Würde mir eine Funktion gerne wünschen, das man z.B. Einstellen kann, das vor dem Weckbefehl in xx Minuten ein Befehl an fhem gesendet wird, wo man z.B. eine dimmbare Lampe schalten könnte.

So was hat schon jemand gebaut:
https://www.youtube.com/watch?v=UWnqvZswX6Y

Als Display und Gehäuse hat er wohl eins aus China verwendet: https://www.aliexpress.com/wholesale?catId=0&initiative_id=SB_20171120172210&SearchText=led+alarm+clock

Ich würde ein Display nehmen, welches Nachts nicht stört  und das man sehr niedrig dimmen kann. Der Philips Wecker hat meine ich auch ein Matrix Display, in rot/orange verbaut.


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Per

Ich habe das zwar noch nicht einzeln gesehen, aber unser Wecker hat einen Projektor. Das möchte ich nicht mehr missen.

F_Klee

Hallo Leute,
ich bin auf der Suche nach einer einfachen Uhr mit einem großen Display auf diesen Thread gestoßen und habe mir gedacht, eine super Sache, Code herunter laden, fertig. Leider hat sich heraus gestellt, dass der Code noch halbfertig ist und auch noch einige Fehler enthält. Deshalb habe ich mich daran gesetzt und ihn erweitert und an meine Bedürfnisse angepasst. Angehängt für andere Interessierte das Ergebnis.

Die Uhr kann ohne WLAN betrieben werden. Das Einstellen der Uhrzeit oder Alarmzeit erfolgt dann über die Serielle Schnittstelle. Mit WLAN und/oder MQTT kann für die Konfiguration der Tasmotizer verwendet werden (WLAN1). Per Button GetIP erfährt man dann bei erfolgreichem WLAN-Connect, welche IP die Uhr bekommen hat. Die weitere Konfiguration erfolgt dann über die Website.

Die Software ist nicht komplett getestet. Ich habe mich beim Testen auf die Funktionen beschränkt, die für mich wichtig sind. Viele Funktionen, speziell MQTT, habe ich einfach nur übernommen. Falls ihr Fragen habt, immer heraus damit. Ansonsten viel Spaß.

Gruß
Frank

Du darfst diesen Dateianhang nicht ansehen.