NEWS
ESP Matrix Anzeige fully IoBroker steuerbar
-
@liv-in-sky @rushmed @joergeli und den Rest hier
Hallo zusammen,
der Thread ist ja riesig. Ich würde mir gern auch sowas basteln, die Idee hab ich schon länger, aber zu wenig Zeit und zu wenig Ahnung.
Ich würde gern eine Anzeige mit 15 Segmenten bauen, die passen nämlich in dieses Gehäuse:
Das ist eine Innenanzeige aus einem Dieseltriebwagen (gibts auch in Straßenbahn, Zug usw.), läuft normalerweise mit 24V Betriebsspannung und IBIS Bussystem.
Original sieht das innen so aus:
1 Anzeigeseite besteht aus 3 Platinen mit je 5 8x8 DOT-Matrixdingern, also insgesamt 15, 2 Seiten wären dann 30. Ich könnte jetzt noch die ganzen Chips usw. aufzählen, is aber egal, fliegt alles raus. Die Umsetzung von IBIS auf "normal" ist mir zu aufwendig, und ob man das dann in ioB einbinden kann weiß ich nicht.
Ich habe hier also noch Wemos D1 mini rumfliegen, MAX7219 8x8 8 Dot Matrix sind auf dem Weg aus China. Die Seite von Joergeli hab ich mir abgespeichert, die INO auch schon angepaßt, aber spätestens bei Javascript fängt es bei mir an zu qualmen ...
Könnt ihr mir helfen? Bin mitten im Thread plötzlich auf Tasmota gestoßen. Mit was fahre ich jetzt besser? Tasmota? INO? Die einfachste Lösung wäre mir die liebste . Ich hab leider nie richtig Zeit, mal ein paar Tage am Stück an einer Sache zu arbeiten, vieles bleibt angefangen liegen. Hardwaretechnisch, schafft es der Wemos überhaupt, 15 DOT-Matrix zu versorgen? Oder gar 30? Da wohl dann eher eine andere Spannungsversorgung nehmen, richtig?
Über Hilfe würde ich mich sehr freuen!!! Den Wemos könnte ich ja schon programmieren, nur halt leider nicht testen. Oder gibt es dafür eine Virtualisierung? Das wäre richtig geil.
Viele Grüße,
Andi -
@1topf
Hallo Andi,wie Du meiner Seite ioBroker DOT Matrix Laufschrift entnehmen kannst, betreibe ich 4 Stck. 4fach-MAX7219Module ( das sind 16 Stellen, bzw. real sind's nur 14, weil ich 2 Stck. gehimmelt und einfach abgesägt habe ;-).
Funktioniert bei mir einwandfrei, obwohl ich den WEMOS via USB über ein 5V-Steckernetzteil versorge und die 5V für die Module am 5V-PIN des WEMOS abgreife.
Normalerweise sollten die 5V für LED-Stripes, Matrix-Module, etc. immer direkt vom Netzteil versorgt werden, aber der Einfachheit halber funktioniert es bei mir auch so.
Bedenkt: Die Matrix-Module werden gemultiplexed, d.h. die einzelnen LEDs werden schnell hintereinader ein- und ausgeschaltet, d.h. das ist etwas anderes, als wenn jede LED mit 100% Lichtstärke leuchtet - ergo ist die Gesamtstromaufnahme geringer.@1topf sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
Die Seite von Joergeli hab ich mir abgespeichert, die INO auch schon angepaßt, aber spätestens bei Javascript fängt es bei mir an zu qualmen ...
Wenn Du den Arduino-Sketch (im Sketch insbesondere darauf achten, daß Deine IP-Adressen passen) angepasst hast, sollten auf dem Display zumindest schon die Uhrzeit und "Warte auf Daten von ioBroker ..." abwechselnd erscheinen?
Mit anderen Worten: Die Laufschrift wurde erfolgreich in Dein WLAN eingebunden ( die Uhrzeit wird aus dem Internet über NTP empfangen).Was jetzt am Einfachsten ist, Esphome, Tasmota, oder "zu Fuß" - wie ich es mache - ist schwer zu sagen, nur wenn ich mir hier die Diskussion bzgl. Esphome ansehe, scheint das doch nicht so einfach zu sein ( sorry @OpenSourceNomad ) Kommt halt auf den Wissensstand des Einzelnen an.
Zumindest kann ich für die "zu Fuß"-Methode behaupten, da kann ich alles ein- bzw. verstellen, vorausgesetzt, ich weiß was ich tue
Falls es schon existiert,hängt doch mal Dein JavaScript hier mit an.
Falls nicht, schreib, wo es hapert.Gruß
Jörg -
@joergeli sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
Kommt halt auf den Wissensstand des Einzelnen an.
Korrekt, die einfachste Variante ist für mich Tasmota.
-
@joergeli said in ESP Matrix Anzeige fully IoBroker steuerbar:
Was jetzt am Einfachsten ist, Esphome, Tasmota, oder "zu Fuß" - wie ich es mache - ist schwer zu sagen,
Also für "zu Fuß" braucht man schon Programmierkenntnisse und muss selber kompilieren, wahrscheinlich schon mal nicht das "einfachste".
Ich würde aber auch nicht bei "wie bekomme ich das am einfachsten drauf" aufhören sondern konsequent auch weiter fragen "wie halte ich das am einfachsten auf dem aktuellsten Stand"
Als nächstes stellt sich natürlich auch die Frage nach Skalierbarkeit und Aufwand, (Lebens)zeit ist leider limitiert. -
@rushmed said in ESP Matrix Anzeige fully IoBroker steuerbar:
Kommt halt auf den Wissensstand des Einzelnen an.
Das ist zirmlich relativ. Wenn jemand was lernen will, kann er/sie/es/ das auch. Wer nicht will halt nicht.
Wer noch nie mit Arduino, Tasmota oder Esphome gearbeitet hat wird sich zwangsläufig erst Wissen aneignen müssen um damit klar zu kommen. Der Lernerfolg ist natürlich individuell unterschiedlich, aber sowohl Tasmota wie auch esphome haben ausgezeichnete Dokumentation und machen den Einstieg wirklich denkbar einfach.
Wenn man nur ein paar Gerätschaften hat ist man vielleicht schneller mit Tasmota am Ziel, sobald man einen kleinen oder großen "Fuhrpark" managen will gibt es aktuell keine mir bekannte ebenbürtige alternative zu esphome.
-
Hallo zusammen,
vielen Dank für die Antworten.
@joergeli Wie gesagt, die DOT Matrix sind noch auf dem Weg zu mir, deshalb kann ich auch nichts testen. Die bestellten Teile werde ich auch um 1 kürzen, es passen ja nur 15 ins Gehäuse. Ich hatte bei deiner INO schon alle IP-Adressen angepaßt. Aber dann wollte ich das JS anpassen und hab damit wieder aufgehört . Bin aber nicht grundsätzlich lernunwillig.Ich tendiere tatsächlich eher zu TASMOTA, da ich da schon genügend Geräte habe. @Rushmed , deine tasmota-display2.bin könnte ich da gleich nehmen? Oder doch lieber selber kompilieren? Wow, da hat sich bei Gitpod ja echt viel getan, seit ich die Onlinefunktion das letzte mal benutzt habe. Bzw., ich sehe gerade es gibt eine xdsp_19_max7219_matrix.ino. Wenn ich jetzt die user_config_override.h mit meinen Daten anpasse, ist da diese ino gleich in der entstehenden *.bin mit drin? Oder muß ich da noch was beachten?
@OpenSourceNomad Mit ESPHome werde ich mich vielleicht auch irgendwann mal beschäftigen, aber hier bei diesem Projekt würde ich mich schon einfach freuen, wenn ich es ans laufen bekomme.
Aber hat alles noch ein wenig Zeit, zumindest bis die restlichen Teile da sind.
Schönen Abend noch.
-
@1topf sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
Bzw., ich sehe gerade es gibt eine xdsp_19_max7219_matrix.ino. Wenn ich jetzt die user_config_override.h mit meinen Daten anpasse, ist da diese ino gleich in der entstehenden *.bin mit drin? Oder muß ich da noch was beachten?
Ja, die musst du einbauen und das wars.
-
@1topf said in ESP Matrix Anzeige fully IoBroker steuerbar:
ich sehe gerade es gibt eine xdsp_19_max7219_matrix.ino. Wenn ich jetzt die user_config_override.h mit meinen Daten anpasse, ist da diese ino gleich in der entstehenden *.bin mit drin?
Das hier würde ich übrigens schon zur höchst möglichen Komplexität zählen da hier schon selber kompiliert wird (sprich das Gegenteil was man Neueinsteigern empfehlen würde).
Esphome erlaubt meines wissens gar nicht "selber"/manuell zu kompilieren (u.a. genau dafür ist ja esphome zuständig). Einzige Aufgabe des Anwenders ist esphome eine yaml zu " übergeben", dieser "no code" approach ist wahrscheinlich der beste Ansatz für ein so umfangreiches Projekt wie esphome.
-
Ich hab schon viele Geräte mit Tasmota geflasht, es ist mir zumindest im Grunde vertraut. Der Vorteil ist hier, daß man den Geräten gleich vorm flashen z.B. feste IP-Adressen zuweisen kann. Das müßte man sonst später über Konsole machen. Ebenso hab ich Zeitzone und Sprache eingestellt. War für mich eine recht einfache Methode, so gleich mehrere Geräte "erstellen" zu können (man mußte nur die user_config anpassen) und die entstehenden BIN-Dateien zu flashen bzw. auf Vorrat zu speichern. Mehr hab ich allerdings auch nicht gemacht, da bin ich dann eher der Endanwender als der Entwickler. Tasmota hat also eine mir vertraute Umgebung, und wenn ich damit ans Ziel komme, ist es mir erst einmal lieber. Danach kann ich mich immer noch mit anderen Möglichkeiten beschäftigen, die auch zum Ziel führen.
-
Hallo, ich habs noch nicht getestet aber lt. Changelog vom neuen Tasmotarelease v11.0.0 Olivia ist der Matrix Treiber jetzt schon enthalten.
-
@rushmed
Wie meinst du das?
War doch schon drin. (Display Version) -
@wolfi Nein, nicht die Unterstützung der Matrix. Vorher wurden doch nur 7Segmentanzeigen supportet.
Die Frage ist jetzt ob die Matritzen direkt mit der Display bin funzen oder ob man immernoch den Treiber reinkompilieren muss.
Habs vorhin erfolglos getestet.
-
Ich hab immer noch keine Hardware, dafür aber Corona . Hab jetzt schon Post Covid ...
-
@1topf Meine Quarantäne war sehr produktiv, jetzt stehen hier überall Marixdisplays rum
-
Du Glücklicher. Meine Frau hat mich weggesperrt und schiebt mir das Essen unter der Tür durch.
-
@1topf said in ESP Matrix Anzeige fully IoBroker steuerbar:
Der Vorteil ist hier, daß man den Geräten gleich vorm flashen z.B. feste IP-Adressen zuweisen kann
Das ist übrigens genau das Vorgehen von esphome, alles wird fix in die binary eingebrannt.
später über Konsole machen
Konsole mit kryptischen Befehlen oder eine verschachtelte web ui zur konfigurierung gibt es bei esphome glücklicherweise gar nicht.
die entstehenden BIN-Dateien zu flashen bzw. auf Vorrat zu speichern.
Bei esphome ist selbst das total unnötig. Es erstellt dir nicht nur die binaries für jedes Gerät sondern flasht das ganze auch ota oder serial
Danach kann ich mich immer noch mit anderen Möglichkeiten beschäftigen, die auch zum Ziel führen.
Für mich ist schlicht auch der Faktor Zeit ein großes Thema, ich kann nicht immer 10 Minuten zur Einrichtung eines Gerät verbraten. Wer mehr als 5 esp's aktuell halten will und noch nicht in Rente ist, für den führt meiner Meinung nach aktuell kein weg an esphome vorbei.
-
So, meine Quarantäne ist nun vorbei und in einen gelben Erholungsschein übergegangen . Die Teile aus China sind mittlerweile auch eingetroffen und stellen mich vor ein unerwartetes Hardwareproblem: sie sind viel kleiner als die, die ich ersetzen will
und sind auch anders beschalten, sprich eine 1 zu 1 - Belegung der Pins führt zu einer anderen Anzeige. Das ist schlecht ... . Ich arbeite jetzt erstmal mit den chinesischen Teilen.
Egal. Nun wieder zum Thema. Ich habe den Wemos mit selbst kompiliertem Tasmota (komplett plus Display) bespielt und z.B. mit DisplayClock 2 wird auch brav die Uhrzeit angezeigt. Jetzt brauch ich Hilfe, wie schicke ich Daten aus ioBroker an den Wemos. @rushmed, Du hast mich auf Tasmota gebracht, jetzt erklär mal .
Ansonsten müßte ich mich doch mal mit der "zu Fuß"-Methode von @joergeli beschäftigen. Aber Tasmota wäre mir schon lieber, da könnte ich eventuell noch einen Temp.fühler o.ä. an den Wemos hängen, ohne das großartig programmieren zu müssen.
Viele Grüße und noch einen schönen Abend,
Andi -
Als erstes habe ich zwei Rules angelegt und aktiviert :
Rule1 ON System#Boot DO DisplayClock 2 ENDON Rule1 1 Rule2 ON Switch1#state=0 DO Backlog Power 1; Ruletimer1 30 ENDON ON Rules#Timer=1 DO Power 0 ENDON Rule2 1
Rule1 startet den Clockmode nach nem Neustart, Rule2 schaltet bei Aktivierung des angeschlossenen PIR ein und nach 30 s wieder aus.
Für den PIR ist noch:Switchmode1 1
notwendig.
Da du die Uhr schon angezeigt bekommst nehme ich an, dass du die korrekten Displayabmessungen schon gesetzt hast.
Hier noch ein paar Konsolenbefehle:
Now, the following "Display" commands can be used: DisplayText text Sends the text to the display. If the text fits into the display, it is shown in the center. Otherwise it scrolls to the left and repeats as long it is cleared or new "DisplayText" overwrites it. DisplayDimmer [0..100] Sets the intensity of the display. DisplayBlinkrate [0..3] 0: not blinking 1: slow, 2: medium 3: fast blinking Power [ON|OFF] Sitches the display on or off. When "off", the display buffer is not cleared and will be shown again when after "Power ON". Other display commands are still active when off. DisplayClear Clears the display DisplayScrollDelay [0..15] // default = 0 Sets the speed of text scroll. Smaller delay = faster scrolling. The maximum scroll speed is 50ms per pixel on DisplayScrollDelay 0. DisplayWidth [8..256] Sets the pixel width of the display (8x number of modules in a row) DisplayHeight [8..256] Sets the pixel height of the display (8x number of module rows) DisplayRotate [0|2] 0: normal orientation; devide 0 starts at top left 2: upside down; device 0 starts at bottom right DisplayClock [0|1|2] Displays a clock. Commands "DisplayClock 1" // 12 hr format "DisplayClock 2" // 24 hr format "DisplayClock 0" // turn off clock; please use additional cammand: DisplayMode 0
Die kanns du bspw. per MQTT, Sonoff Adapter oder HTTP senden.
Ich bevorzuge den Sonoff Adapter. -
@rushmed sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
Die kanns du bspw. per MQTT, Sonoff Adapter oder HTTP senden.
Ich bevorzuge den Sonoff Adapter.Das mußt Du mir mal erklären. Wie sendet man etwas mit dem Sonoff Adapter? Also, beispielsweise habe ich einen Sonoff TH10 @ Tasmota zur Temp.anzeige meines Wasserkessels. Wie sende ich jetzt den Temp.wert an den Wemos, damit die Matrixanz. mir das anzeigt?
@joergeli Ich hab mir heute nochmal deine ioBroker_Laufschrift.ino gezogen. ArduinoIDE meint aber beim kompilieren call to 'HTTPClient::begin' declared with attribute error: obsolete API, use ::begin(WiFiClient, url).
String loadDataFromURL() { if (WiFi.status() == WL_CONNECTED) { HTTPClient http; http.setTimeout(3000); Serial.println("getState url: " + String(url)); http.begin(url); int httpCode = http.GET(); String payload = "error"; if (httpCode > 0) { payload = http.getString(); } if (httpCode != 200) { Serial.println("HTTP " + String(url) + " fail"); payload = " HTTP Error "; } http.end();
Es bleibt bei http.begin(url); hängen. Muß da was eingetragen werden? Ich hab auch schon lange nicht mehr mit ArduinoIDE gearbeitet, weiß aber noch, daß die recht empfindlich war was die Bibliotheken angeht. Es sollte alles auf aktuellstem Stand sein, was aber wiederum auch manchmal zu Problemen geführt hat. Teufelskreis.
Andi
-
@1topf sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
obsolete API
Hallo Andi,
ich habe gerade eben noch mal eine neuere Version meines Sketches hochgeladen, der den alten Sketch ersetzt.
Es wurde die NTP-Routine zum Holen der Uhrzeit kpl. ersetzt, da es mit der alten Routine Probleme mit der Sommerzeitumstellung gab.
Außerdem wurde noch die bounce2-library implementiert, die zum Entprellen des Effekt-Buttons dient.
Habe den Sketch gerade eben noch mal erfolgreich mit der Arduino-IDE 1.8.10 kompiliert.Zu Deinem Problem mit "obsolete API":
Kann schon sein, daß es da Diskrepanzen mit den libraries gibt?
Schau vielleicht mal hier:
stackoverflow.comGruß
JörgP.S.
Komisch ist, daß bei mir das Kompilieren erfolgreich durchläuftHier wird auch noch was dazu geschrieben:
forum.arduino.cc