NEWS
ESP Matrix Anzeige fully IoBroker steuerbar
-
@joergeli Danke geht das ohne taster auch und wie bekomme ich die ip von wemos heraus
-
@steff123
Ohne Dir zu nahe treten zu wollen, wird es wohl schwierig mit der Laufschrift, wenn Dir Grundkenntnisse in puncto Arduino fehlen.Taster:
Kann man weglassen, aber dann muss man den Sketch umstricken.
Da ist wohl @liv-in-sky 's Lösung besser, soweit ich verstanden habe, kann er die Effekte von ioBroker aus steuern.IP-Adresse:
Ich bin ein Freund statischer IP-Adressen, deshalb sind die Netzwerkparameter bereits im Sketch festgelegt://######################################### // Netzwerk-Parameter festlegen //_________________________________________________________________________________________ // Set your own !!!! network variables in this section !!! const char* OTA_host = "Laufschrift"; //### Name for OTA-Flashing (OTA = Over the Air) const char* ssid = "###########"; //### your WLAN SSID //### the name of your WiFi-network / <= 31 Signs const char* pwd = "###########"; //### your WLAN Password //### the password of your WiFi-network / >= 8 or <= 63 signs or NULL IPAddress ip(192, 168, 192, 19); //### local ip-address of WEMOS D1 mini IPAddress gateway(192, 168, 192, 99); //### router IPAddress subnet(255, 255, 255, 0); //### subnet-mask IPAddress dns(192, 168, 192, 99); //### dns-server = mostly the same adress as router //_________________________________________________________________________________________ //######################################### // Laufschrift initialisieren char url[255] = "http://192.168.192.29:8087/getPlainValue/javascript.0.Laufschrift"; //###### Datenpunkt in ioBroker, der abgefragt werden soll #### char scrollPause[10] = "2.5"; // Anzeigedauer char scrollSpeed[10] = "13"; // Scrollgeschwindigkeit (0-xx): je hoeher der Wert, desto langsamer die Geschwindigkeit int effekt_nr = 6; // Start mit Effekt Nr.6 (0-8) //_____________________________________________________________________________
Die Netzwerkparameter musst Du natürlich an die Gegebenheiten Deines eigenen Netzwerkes Anpassen!
-
Hallo ich wolte das Sketch liv in sky hochlade kommt der Fehler beim Kompilieren für das Board LOLIN(WEMOS) D1 R2 & mini. aber andere Sketche gehen
-
@steff123 schau mal hier und folgend - der boardverwalter und die einstellungen in rduino ist bei meinem sketch sehr wichtig
-
@liv-in-sky Danke hat geklappt jetzt noch was wie lege ich den Datenpunkt an in iobroker
-
-
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.