NEWS
ESP Matrix Anzeige fully IoBroker steuerbar
-
habe ich muss mann sonnst nichts machen
-
Kann man nachher auf denn wifimanger zugreifen um was zu ändern
-
@steff123 leider nicht - wenn du ein neues wifi setting willst, mußt du den wemos mit einem "leer" binary schreiben - also ganz löschen
wenn einmal konfiguriert - ist fest
daher aufpassen, was du da eingibst - kennwort ! und auch den pfad zum datenpunkt
-
du musst das von github beachten https://github.com/liv-in-sky/MatrixDisplayESP8266
Auch die Standardwerte, welche beim ersten Einrichten angegeben werden müssen, können bzw. müssen übergeben werden (von z.B. IOBroker). ScrollPause, ScrollSpeed und der Wert, wie oft man die Daten abholen will (Refresh Time). ScrollSpeed: 1 bis 300; ScrollPause: 1 bis 30(sek); RefreshTime (erzeugt Taffic im Netz!): 1 bis 600 = 1 sek bis 10 min). Die Daten werden wie im Orginal im folgenden Format übegeben: xxx;yyy;zzz Die Standard(Config)-Werte werden wie die zu anzeigenden Daten übergeben. Z.B 5;1;60;5;20 . In der Reihenfolge bedeutend: Mode, Intensity(Helligkeit);RefreshTime;ScrollPause;ScrollSpeed Im IOBRoker muss der Simple-Api-Adapter installiert sein - in diesem Beispiel mit dem Standardport 8087. Die Einrichtung ist wie im Orginal - es kommt eine weitere Url-Abfragen dazu. Url für Daten werden wie Orginal angelegt - z.B.: http://192.168.xxx.xxx/getPlainValue/control-own.0.ESPMatrix.Matrix (IOBroker-Baum: control-own.0.ESPMatrix.Matrix) anschliessend müssen noch ein weiterer Datenpunkt in IOBroker angelegt werden. Diese muss notwendigerweise im selben Vewrzeichnis sein und wie folgt benannt werden: control-own.0.ESPMatrix.MatrixSetting (wählt man anstatt "Matrix" z.B. Display -> muss der Wert mit DisplaySetting benannt werden - siehe anim. Gif - ertes Bild) Im Config-Mode des Wemos D1 wird nur eine URL angegeben (DatenURL). Bei richtiger Bennenung des zweiten Datenpunktes, wird er automatisch gefunden !
natürlich muss in den datenpunkten etas stehen
matrix -> z.b. test
matrixsetting -> z.b. 5;1;60;5;20 -
@liv-in-sky kann man denn Datenpunkt nicht mehr sehen
-
@steff123 verstehe frage nicht
-
@steff123 was auch noch wichtig ist: die 5V für die matrix sollte nichte vom wemos kommen - du solltest +5V und 0V parallel an den wemos und die matrix anschliessen - nicht die +5V vom wemos-pin nehmen !!!
-
@liv-in-sky muss da iobroker ip und der port von simple adapter stehen oder nur ip
-
@steff123 ip mit port !!!
-
http://192.168.xxx.xxx:port/getPlainValue/control-own.0.ESPMatrix.Matrix
deine ip mit port und dein datenpunkt -
scheint in github falsch zu sein
(habe es jetzt auf github geändert)
-
@liv-in-sky muss da display angeschlosen sein?
-
ich glaube nicht - du kannst in arduino den seriellen monitor anschliessen und nachsehen, was das log sagt, wenn die matrix nicht angeschlossen ist
-
Hallo Zusammen,
ich habe das Projekt mit der LED Matrix auch nachgebaut und bin begeistert. Ich fand es allerdings (für mich) etwas umständlich die Datenpunkte die übertragen werden soll über das Skript zu aktualisieren. Ich nutze nur den Teil des Skript der die Daten pusht. Für das Befüllen des Datenpunktes nutze ich ein Blockly, das ist, wie ich, finde etwas einfacher anzupassen.
//################################## // ioBroker Matrix-Laufschrift //################################## //________________________________________________________________ //Script jede 45te Sekunde ausfuehren schedule('45 * * * * *', Laufschrift_Aktualisieren); //________________________________________________________________ //Laufschrift_Aktualisieren(); // nur! wenn manuell getestet werden soll function Laufschrift_Aktualisieren() { //______________________________________________________________________________________ //Wemos IP-Adresse var udpIP = '192.168.178.119' // IP-Adresse des Wemos, bzw. der DOT Matrix Laufschrift //Ausgabe-Datenpunkt var ausgabe_datenpunkt = 'javascript.0.Laufschrift'; // Ausgabe-Datenpunkt muss mit der URL im Arduino-Sketch des Wemos übereinstimmen! /* // Nur zur Info Sonderzeichen: $ = degC - = line = plus _ = rechteck-block ! = ü ? = ö ^ = ä ` = ß */ //______________________________________________________________________________________ // "update" an WEMOS senden (pushen), damit dort die Laufschrift sofort aktualisiert wird const dgram = require('dgram'); var udpPort = 6610 var udpMessage = "update" var client = dgram.createSocket('udp4'); client.send(udpMessage, 0, udpMessage.length, udpPort, udpIP, function(err, bytes) { if (err) throw err; client.close(); }) //______________________________________________________________________________________ } //Ende function Laufschrift_Aktualisieren
Kann man den Teil, in dem die Daten gepusht werden auch über Blockly realisieren? Der einzige Nachteil von meiner Methode ist, dass ich immer erst auf das pushen warten muss, obwohl der Datenpunkt schon aktualisiert ist.
Gruß
Spike
-
@spike08122
Wenn man nur einen einzigen Wert im Datenpunkt hat, könnte man natürlich gleich bei Änderung dieses Wertes triggern, bzw. pushen. Dann könnte man aber auch gleich eine statische Matrix verwenden
(bei Blockly bin ich aber raus )Hier ist es aber so, daß sich der Datenpunkt ja aus mehreren Werten zusammensetzt, in meinem Beispiel so;
var ausgabe = Service + DutyCycle + Badezimmer + tf_aussen + tf_wohnzimmer + tf_keller + druck_wind + GelbSackMorgen + GelbSackHeute + BioMuellHeute + BioMuellMorgen + PapierHeute + PapierMorgen + RestMuellHeute + RestMuellMorgen + open_windows
Bei Änderung welchen Wertes soll hier nun getriggered/gepushed werden?
Außerdem musst Du bedenken, daß es ja eine gewisse Weile dauert, bis der Zyklus, d.h. die Anzeige aller Werte auf der Laufschrift ein Mal durchgelaufen ist ( bei mir hatte ich willkürlich das Push-Intervall auf 45 Sekunden gesetzt.)
Wenn man z.B. das Push-Intervall auf z.B. 5 Sekunden heruntersetzen würde, würden immer nur die ersten Werte angezeigt werden, die restlichen würden nie angezeigt, da der Zyklus der Laufschrift schon nach 5 Sek.neu startet. -
@joergeli Danke für die schnelle Antwort. Das Zeitproblem verstehe ich. Da es bei mir etwas weniger Daten sind, könnte ich diese Aktualisierungszeit sicher etwas runtersetzten.
Ich habe es ähnlich, wie Du mit der Toilette eingerichtet. Wenn bei mir das Badfenster geöffnet ist, wird nur der Zustand "Badfenster ist offen" angezeigt. Wenn das Badfenster geschlossen wird, dann ist die Aktualisierung natürlich entsprechend verzögert.
Könnte man das phuschen der Daten zum ESO durch die Änderung des Datenpunktes "javascript.0.Laufschrift" auslösen lassen. Der Datenpunkt, wird ja bei mir separat befüllt und es ist nur ein einzelner Datenpunkt?
-
@spike08122 sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
Ich habe es ähnlich, wie Du mit der Toilette eingerichtet. Wenn bei mir das Badfenster geöffnet ist, wird nur der Zustand "Badfenster ist offen" angezeigt. Wenn das Badfenster geschlossen wird, dann ist die Aktualisierung natürlich entsprechend verzögert.
Könnte man das phuschen der Daten zum ESO durch die Änderung des Datenpunktes "javascript.0.Laufschrift" auslösen lassen. Der Datenpunkt, wird ja bei mir separat befüllt und es ist nur ein einzelner Datenpunkt?Wenn bei Dir der Datenpunkt "javascript.0.Laufschrift" nur einen einzelnen Wert enthält, könnte man natürlich die Änderung dieses Wertes als Trigger nehmen.
Ansonsten sehe ich bei mehreren Werten im Datenpunkt keine Möglichkeit, die Anzeige schneller zu aktualisieren, außer die Aktualisierungszeit zu verkürzen - da muss man halt testen, wie kurz die Zeit sein kann, damit auch die "hinteren" Werte noch angezeigt werden.
Ist natürlich blöd, wenn's jemandem pressiert, schnell auf die Toilette zu kommen - da könnten 10 Sek. schon entscheidend sein
Wenn es Dir auf eine quasi Echtzeitanzeige eines Zustandes ankommt, wäre evtl. ein LED Statusdisplay etwas für Dich?
Da können mittels farbigen LEDs insgesamt 32 Zustände visualisiert werden.
Ist im Prinzip das Gleiche, wie die Laufschrift, nur daß hier insgesamt 32 Datenpunkte verwendet werden.
Wenn sich hier einer der Datenpunkte ändert, werden sofort - via MQTT - alle LEDs aktualisiert. -
@joergeli Alles klar, dann das Statusdisplay schau mir mal in Ruhe an, danke für den Tipp. Und beim Matrix, werd ich halt noch n bisschen rumprobieren.
-
Hallo was muss man bei den Datenpunkt MatrixMode nehmen auch Zeichenkette
-
@steff123 kommt darauf an, wie du den MatrixSetting datenpunkt in deinem script zusammenstellst - am ende muss ja eine zeichenkette rauskommen, die den mode-dp enthält
ich habe zeichenkette
nimmst du zahl musst du konvrtieren, wenn due den MatrixSetting "addierst"
setze bitte mein alias @liv-in-sky in deine nachfragen im forum - dann werd ich informiert, dass du was von mir willst
-
@liv-in-sky Hallo wollte dich fragen ob du ein Script benutzt wenn ja wäre es möglich das du mir zu verfügung stellst ?
Danke