HomeStatusDisplay (ESP8266, MQTT, WS2812B)

Begonnen von Joker, 12 März 2017, 23:48:10

Vorheriges Thema - Nächstes Thema

Joker

Das ist richtig, je nach Anzahl der LEDs kommt da schon einiges zusammen.

Beim wemos D1 mini ist es aber so, dass die 5V die über den USB Anschluss hereinkommen, durchgeschleift sind auf den Pin am Breakout Board. D.h. wenn man am USB Port ein Netzteil mit entsprechender Leistung anschließt, dann hat man da kein Problem und muss nicht z.B. ein zweites Netzteil extra für die LEDs nehmen.

Wie im Guide von Adafruit auch steht kann man "grob" mit 20mA pro Pixel rechnen anstatt mit 60, da der Anwendungsfall dass alle LEDs auf voller Helligkeit an sind (also weiß) so gut wie nie vorkommt und die meisten Netzteile auch "kurz" mal etwas mehr Strom liefern können als angegeben.

In meinem Fall habe ich 33 LEDs und versorge diese mit diesem Netzteil:
https://www.amazon.de/gp/product/B00WLI5E3M/ref=oh_aui_detailpage_o07_s00?ie=UTF8&psc=1

Das ist finde ich relativ günstig und von sehr guter Qualität - leistungsärmere Netzteile sind zumindest nicht sehr viel günstiger. Die 2.4A pro Port reichen auch dicke aus (33 LEDs * 60mA = 1,98A, also würde sogar den worst case abdecken). Aber ich habe den Aufbau auch ohne Probleme an einem 1A Netzteil betrieben.

Ralf W.

Zitat von: Joker am 05 April 2017, 20:36:36
Auch sehr schöne Variante! Muss zugeben dass ich deins bisher noch gar nicht gesehen hatte. Das OLED ist ne nette Sache. Wie wird es angesteuert? Sollte eigentlich kein Thema sein das mit dem ESP zu nutzen.

Hallo,

OLED wird mit Adafruit_Python_SSD1306 angesteuert. Steuerung mit ESP sollte keine Problem sein. Das Problem ist halt immer die Zeit ...

MfG
http://twitter.com/RWausD
Schon gewusst, dass Haarausfall zu einer Glatze führen kann?

FHEM: NUC7PJYH2, Ubuntu Server 22.04.2 LTS, HMCCU - RaspberryMatic, DE ConBee II, diverse Sensoren und Aktoren.

Joker

ZitatOLED wird mit Adafruit_Python_SSD1306 angesteuert. Steuerung mit ESP sollte keine Problem sein. Das Problem ist halt immer die Zeit ...

Ist ja ziemlich cool muss ich sagen. Es gibt auch eine Library für Arduino die mit dem ESP geht für diese Displays.
Bin fast am überlegen ob ich sowas auch einbauen soll  ;D
Am ESP hat man natürlich das Problem dass dieser erstmal keine Daten wie die Uhrzeit hat aber das kriegt man hin.

Eine Frage noch zu deinem Aufbau: Wie hast du die Front gestaltet? Sind es ein schwarzes und ein weißes Papier hintereinander? Oder ist es bedruckt? Ich bin mit der Optik meines Displays noch nicht so 100% zufrieden...

Frank_Huber

cooler Bilderrahmen,

zur Ansteuerung würde ich aber das LedStripe Modul empfehlen.
das macht das ganze imho einfacher ansprechbar. :-)

https://forum.fhem.de/index.php/topic,50174.0.html

Ich mache damit gerade noch Versuche mit einem 18650 gespeisten ESP:
https://www.tindie.com/products/lspoplove/pocket-8266-esp826618650-battery/

Joker

Zitat von: Frank_Huber am 06 April 2017, 11:27:21
cooler Bilderrahmen,

zur Ansteuerung würde ich aber das LedStripe Modul empfehlen.
das macht das ganze imho einfacher ansprechbar. :-)

https://forum.fhem.de/index.php/topic,50174.0.html
Hm, ich glaube das ist eher weniger gut für den Anwendungsfall geeignet. Ich möchte ja gerade die Intelligenz wie und welche LED angesteuert wird dem Display überlassen. Ich schicke dem Display nur eine Message z.B. "Fenster Küche ist offen", und was damit passiert entscheidet das Display. Die Benutzung von MQTT hat außerdem den Vorteil, dass ich mir im Prinzip das gleiche Display nochmal bauen kann, an den Strom anschließe und sofort zeigt es ohne irgendeine Änderung in FHEM dasselbe an wie das andere, da es automatisch die Messages ebenso bekommt. Wenn ich jetzt möchte dass das zweite Display bestimmte Messages anders anzeigt kann ich das sehr leicht am entpsprechenden Display ändern und muss in FHEM gar nichts machen.
Weiterhin, wenn ich das richtig sehe kann ich mit dem LEDStripe Modul eine LED auch nicht dauerhaft blinken lassen oder? Das kann ich bei meiner Variante einfach einstellen, dass die Reaktion kein dauerhaftes "ein" einer LED sein soll sondern ein Blinken oder auch "Flackern".

ZitatIch mache damit gerade noch Versuche mit einem 18650 gespeisten ESP:
https://www.tindie.com/products/lspoplove/pocket-8266-esp826618650-battery/
Ja das mit der Stromversorgung ist so ein Thema. Natürlich wärs am besten wenn ich so einen Bilderrahmen einfach irgendwo an die Wand hängen könnte, aber ich brauche immer eine Stromversorgung. Löse ich aktuell so dass das Display in einem Regal steht wo das Kabel unsichtbar zugeführt werden kann.
Den ESP per Batterie zu versorgen wäre zwar schön, aber ist wegen dem WLAN schon schwierig... die 17h die mit der Batterie möglich sind, sind ja viel zu wenig... da müsste man mit DeepSleep etc arbeiten, aber bei dem Statusdisplay geht das auch nicht, weil ich will ja dass ein Status immer sofort angezeigt wird...

Ralf W.

#20
Zitat von: Joker am 06 April 2017, 11:17:38
... Eine Frage noch zu deinem Aufbau: Wie hast du die Front gestaltet? Sind es ein schwarzes und ein weißes Papier hintereinander? Oder ist es bedruckt?  ...

Die Front ist gedruckt. Der Platz für OLED ist mit einem Cuttermesser ausgeschnitten. Ich hänge meine aktuelle Version als jpg und xcf an.

MfG

http://twitter.com/RWausD
Schon gewusst, dass Haarausfall zu einer Glatze führen kann?

FHEM: NUC7PJYH2, Ubuntu Server 22.04.2 LTS, HMCCU - RaspberryMatic, DE ConBee II, diverse Sensoren und Aktoren.

Frank_Huber

Zitat von: Joker am 06 April 2017, 11:55:16
Hm, ich glaube das ist eher weniger gut für den Anwendungsfall geeignet. Ich möchte ja gerade die Intelligenz wie und welche LED angesteuert wird dem Display überlassen. Ich schicke dem Display nur eine Message z.B. "Fenster Küche ist offen", und was damit passiert entscheidet das Display. Die Benutzung von MQTT hat außerdem den Vorteil, dass ich mir im Prinzip das gleiche Display nochmal bauen kann, an den Strom anschließe und sofort zeigt es ohne irgendeine Änderung in FHEM dasselbe an wie das andere, da es automatisch die Messages ebenso bekommt. Wenn ich jetzt möchte dass das zweite Display bestimmte Messages anders anzeigt kann ich das sehr leicht am entpsprechenden Display ändern und muss in FHEM gar nichts machen.
Weiterhin, wenn ich das richtig sehe kann ich mit dem LEDStripe Modul eine LED auch nicht dauerhaft blinken lassen oder? Das kann ich bei meiner Variante einfach einstellen, dass die Reaktion kein dauerhaftes "ein" einer LED sein soll sondern ein Blinken oder auch "Flackern".
OK, in dem Fall macht das so Sinn. Ich überlassedie Steuerung gerne FHEM so dass das zentral abäuft. ein zweites Display kann ich auch einfach in den DOIFs mit reinpacken.
Ich sehe für mich mit dem Modul den Vorteil das alles in FHEM ist und ich noch dazu kein MQTT benötige.
Aber bekanntlich führen ja viele Wege nach Rom. :-)

Zitat von: Joker am 06 April 2017, 11:55:16
Ja das mit der Stromversorgung ist so ein Thema. Natürlich wärs am besten wenn ich so einen Bilderrahmen einfach irgendwo an die Wand hängen könnte, aber ich brauche immer eine Stromversorgung. Löse ich aktuell so dass das Display in einem Regal steht wo das Kabel unsichtbar zugeführt werden kann.
Den ESP per Batterie zu versorgen wäre zwar schön, aber ist wegen dem WLAN schon schwierig... die 17h die mit der Batterie möglich sind, sind ja viel zu wenig... da müsste man mit DeepSleep etc arbeiten, aber bei dem Statusdisplay geht das auch nicht, weil ich will ja dass ein Status immer sofort angezeigt wird...
Ja, 17h ist nicht viel, aber um ein Statusdisplay mal am Abend mit auf die Terrasse zu nehmen oder wie bei mir abends am Kaminofen den Füllstand vom Pufferspeicher anzuzeigen, dazu reichen die 17h locker.
wenn die LEDs noch drüber gehen sind es wahrscheinlich eh nur noch 5 bis 6 h. aber auch das reicht für meinen Zweck.

Joker

Zitat von: Ralf W. am 06 April 2017, 12:00:28
Die Front ist gedruckt. Der Platz für OLED ist mit einem Cuttermesser ausgeschnitten. Ich hänge meine aktuelle Version als jpg und xcf an.
Danke. Ich hatte mir auch schon mal überlegt das mit schwarzem Hintergrund zu machen, aber mit meinem Tintenstrahler habe ich das erst gar nicht probiert. Denke das geht nur mit einem Laserdrucker gut.
Daher habe ich dann einen farbigen Karton vor das gedruckte Papier gelegt und die "Löcher" ausgeschnitten als Test. Hat mir dann zumindest so gut gefallen dass ich es mit einem Laserdrucker nicht mehr probiert habe. Aber so filigranere Ausschnitte kann ich dann natürlich nicht machen.

ZitatOK, in dem Fall macht das so Sinn. Ich überlassedie Steuerung gerne FHEM so dass das zentral abäuft. ein zweites Display kann ich auch einfach in den DOIFs mit reinpacken.
Ich sehe für mich mit dem Modul den Vorteil das alles in FHEM ist und ich noch dazu kein MQTT benötige.
Aber bekanntlich führen ja viele Wege nach Rom. :-)
Hehe, so ist es. Ich will MQTT noch für andere Dinge nutzen, von daher war es quasi "schon da".

ZitatJa, 17h ist nicht viel, aber um ein Statusdisplay mal am Abend mit auf die Terrasse zu nehmen oder wie bei mir abends am Kaminofen den Füllstand vom Pufferspeicher anzuzeigen, dazu reichen die 17h locker.
wenn die LEDs noch drüber gehen sind es wahrscheinlich eh nur noch 5 bis 6 h. aber auch das reicht für meinen Zweck.
Ok, das stimmt dafür ist es in Ordnung.

Ralf W.

Zitat von: Joker am 06 April 2017, 14:54:56
Danke. Ich hatte mir auch schon mal überlegt das mit schwarzem Hintergrund zu machen, aber mit meinem Tintenstrahler habe ich das erst gar nicht probiert. Denke das geht nur mit einem Laserdrucker gut ...

Ich habe es mit einem Tintenstrahtdrucker erstellt (Fotomodus) und bin zufrieden. Falls das Papier zu stark wellt, kurz warten und in ein großes Buch legen. Papier war 90 g oder 120 g, da bin ich mir nicht mehr ganz sicher.

MfG
http://twitter.com/RWausD
Schon gewusst, dass Haarausfall zu einer Glatze führen kann?

FHEM: NUC7PJYH2, Ubuntu Server 22.04.2 LTS, HMCCU - RaspberryMatic, DE ConBee II, diverse Sensoren und Aktoren.

ckbln

Hallo Joker,

mir ist aufgefallen das nach einer gewissen Zeit (Dauer kann ich nicht sagen) alle gesetzten LED´s aus sind. Kann es sein, dass der ESP selbst einen Reboot macht und damit alle gesetzten LED´s aus sind?

Viele Grüße

Joker

#25
Ich habe gerade noch ein paar Aktualisierungen hochgeladen:
- MQTT Broker Adresse kann nun wahlweise als IP oder Hostname übergeben werden
- Es wird maximal 10s lang versucht sich am MQTT Broker anzumelden, danach wird abgebrochen. Nur noch während dieser Zeit ist das Webinterface sehr langsam, da der PubSubClient sehr lange in der connect() Routine verbleibt und in der Zeit der Webserver nicht bedient wird

Zitat von: ckbln am 08 April 2017, 11:41:11
mir ist aufgefallen das nach einer gewissen Zeit (Dauer kann ich nicht sagen) alle gesetzten LED´s aus sind. Kann es sein, dass der ESP selbst einen Reboot macht und damit alle gesetzten LED´s aus sind?
Das ist jetzt nicht ganz einfach zu sagen. Bei einem Reboot des ESP müsstest du im Logfile vom MQTT Broker sehen dass der Client verschwunden ist (KeepAlive Mechanismus). Weiterhin würde der Broker wenn du ein Will Topic angegeben hast, dieses in dem Fall verschicken.
Prinzipiell wäre dann aber die Frage was den Reboot auslöst (hatte ich selber noch nie, mein Display ist schon mehrere Wochen durchgelaufen. Aber ausschließen kann man es natürlich nicht). Was ich für das Gerät sinnvoll halte ist, die MQTT Messages immer mit retain Flag zu schicken. Dann würde der Broker wenn das Gerät weg ist und wieder auftaucht, die letzten Nachrichten zu jedem Topic neu schicken und die LEDs würden wieder an gehen.

Joker

Ich habe der Status-Webseite nun eine Uptime hinzugefügt (ist im git), siehe Anhang.
Wenn der ESP tatsächlich rebooten sollte, würde die Uptime zurückgesetzt werden. Falls das tatsächlich auftritt wären weitere Infos gut (wie lange lief der ESP, ist zum Absturzzeitpunkt evtl. etwas besonderes passiert z.B. sehr viele Nachrichten eingetroffen etc). Bei mir habe ich das nach wie vor nicht gesehen.

Wenn sonst noch jemand Probleme oder Anregungen hat, immer her damit.

Joker

Weitere Aktualisierungen:

Zitat von: Franz Tenbrock am 06 April 2017, 09:30:43
das Bild hier macht dann schnell einiges klarer,

https://github.com/MTJoker/HomeStatusDisplay
ev wäre es sinnvoll im 1. Post es noch einzufügen.
Ist jetzt im ersten Post drin.

Zitat von: ckbln am 06 April 2017, 00:46:08
Noch eine Frage: Wäre es möglich über ein Eingabefeld die Helligkeit der LED´s anzupassen?
Ist jetzt ebenfalls möglich, es gibt ein weiteres Eingabefeld bei der "General config".
ACHTUNG: Da sich dadurch eine Konfigurationsdatei ändert, geht durch ein Update mindestens die General config verloren und muss neu eingegeben werden!
Bitte vorher Screenshot machen etc. um die Konfiguration leicht neu eingeben zu können. Bei einem Test hatte ich auch einmal den Fall dass alle drei Konfigurationen verloren gingen (General, Color mapping, Device mapping), aber das konnte ich nicht mehr reproduzieren. Sicherheitshalber von allen Screenshots machen o.ä.

Zur Funktionsweise: Der Helligkeitswert ist einstellbar von 0 (aus, macht natürlich keinen Sinn) und 255 (maximale Helligkeit). Ich verwende bei mir 15, das reicht völlig aus und ist ungefähr so wie in der alten Version. Wer es heller oder dunkler haben möchte, hat jetzt die Möglichkeit.

Zitat von: ckbln am 08 April 2017, 11:41:11
mir ist aufgefallen das nach einer gewissen Zeit (Dauer kann ich nicht sagen) alle gesetzten LED´s aus sind. Kann es sein, dass der ESP selbst einen Reboot macht und damit alle gesetzten LED´s aus sind?
Ich hatte in den ganzen Wochen in denen das Gerät bei mir läuft jetzt auch scheinbar zwei mal einen Neustart. Über den Grund bin ich nicht 100% sicher, aber habe eine Idee woran es liegt. In der aktualisierten Version ist schonmal was eingebaut was dies beheben könnte. Ich teste noch, aber wenn jemand noch das Problem hat, kann er es ja mal mit der neuen Version probieren.

Franz Tenbrock

Hallo
hatte bisher das Teil von ELV, das habe ich über einen Bewegungsmelder aktiviert, dh wenn vor der Garderobe Bewegung ist wird es eingeschaltet, nach 10-15 Sekunden hat es dann alles angezeigt.
Ist es möglich das Ganze ebenso mit einem Bewegungsmelder zu kombinieren, um den Gesamtstromverbrauhc von dem Teil zu redudieren, neben den dimmen sollte es dann ja halbwegs gehen mit dem Stromverbrauch.
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Joker

Ich weiß grade nicht wovon du sprichst  :)

Was für ein Teil von ELV?
Was heißt "neben dem dimmen"...?