NEWS
ESP Matrix Anzeige fully IoBroker steuerbar
-
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 -
@1topf sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
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?
In den Sonoff Adaptereinstellungen
den Haken setzen.Dann einmal in der Webinterface Konsole von Tasmota
Displaymode 0 DisplayText Test
eingeben.
Dann sollte bei dem Sonoffgerät die entsprechenden DP erscheinen.
-
@joergeli sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
Habe den Sketch gerade eben noch mal erfolgreich mit der Arduino-IDE 1.8.10 kompiliert.
OK, ist schon etwas älter, ich hab die 1.8.19. Habe mir jetzt die 10 gesaugt und probiere das morgen mal damit.
-
@rushmed sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
Dann sollte bei dem Sonoffgerät die entsprechenden DP erscheinen.
Also. Ich habe es jetzt mal mit einem Blockly versucht anzusteuern, aber das funzt nur bedingt.
In meinem jugendlichen Leichtsinn hab ich mir das wohl zu einfach vorgestellt. So wie auf dem Bild geht es schon mal nicht . Wenn ich aber TempHeizung alive durch z.B. einen Zigbeetaster ersetze und ist wahr in z.B. wurde aktualisiert ändere und den Taster drücke, dann zeigt mir die Matrix den Temperaturwert an. Da müßte ich wohl mal einen Blocklykenner löchern.
Für heute ist schluß. -
@1topf Mein Blockly zur Ausgabe von Texten sieht etwa so aus:
Der Trigger ist hier ein manuell angelegter DP, so starte ich bei Aktualisierung den Textanzeigemodus, gebe den Text an den ESP und schalte dann den ESP ein. Nach 20 s wird wieder die Uhr angezeigt und weitere 10 s später schalte ich die Anzeige aus.
Das funz solange der ESP connected ist perfekt.
-
@1topf sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
@joergeli sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
Habe den Sketch gerade eben noch mal erfolgreich mit der Arduino-IDE 1.8.10 kompiliert.
OK, ist schon etwas älter, ich hab die 1.8.19. Habe mir jetzt die 10 gesaugt und probiere das morgen mal damit.
Geht nicht, selber Fehler. Mit welchem ESP8266 core arbeitest Du in ArduinoIDE?
-
Yepp, liegt anscheinend am core:
Bei mir ist esp8266 V2.7.1 installiert, damit funktioniert das Kompilieren.
Habe probehalber mal die aktuelle esp8266 V3.0.2 installiert, da lief er auf den von Dir beschriebenen Fehler.Bin wieder zurück auf V2.7.1, da ich sonst wahrscheinlich noch div. andere Sketche anpassen müsste und momentan keine Zeit dafür habe.
Gruß
JörgP.S.
Achte darauf, daß Du im Sketch diese Zeile gem. Deinen Gegebenheiten anpassen musst (IP-Adresse des ioBroker, sowie Datenpunkt,mit dem die Laufschrift "gefüttert" wird):char url[255] = "http://192.168.192.29:8087/getPlainValue/javascript.0.Laufschrift"; //###### Datenpunkt in ioBroker, der abgefragt werden soll ####
-
@1topf said in ESP Matrix Anzeige fully IoBroker steuerbar:
Es sollte alles auf aktuellstem Stand sein, was aber wiederum auch manchmal zu Problemen geführt hat. Teufelskreis.
Das ist eben die "zu Fuß" Version.
@opensourcenomad said in ESP Matrix Anzeige fully IoBroker steuerbar:
für "zu Fuß" braucht man schon Programmierkenntnisse und muss selber kompilieren, wahrscheinlich schon mal nicht das "einfachste".
Und ja, es sollte alles auf den aktuellsten stand sein, alle Abhängigkeiten inklusive!
@opensourcenomad said in ESP Matrix Anzeige fully IoBroker steuerbar:
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"
Und für die "Instandhaltung" ist einfach ein Haufen Zeit nötig. Viele werden (leider) auf fire and forget setzten und veraltete und verwundbare Software einsetzen.
@joergeli said in ESP Matrix Anzeige fully IoBroker steuerbar:
Bin wieder zurück auf V2.7.1, da ich sonst wahrscheinlich noch div. andere Sketche anpassen müsste und momentan keine Zeit dafür habe.
Deine ESP's (mit v2.7.1.) z.B. haben alle eine Sicherheitslücke welche einen unberechtigten Zugriff auf das Gerät ermöglichen kann. Mittels exploit chain ist es dann meistens nicht mehr weit bis zum kompromittierten Netzwerk
-
@joergeli sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
Yepp, liegt anscheinend am core:
Bei mir ist esp8266 V2.7.1 installiert, damit funktioniert das Kompilieren.
Ja, bei mir auch, Wemos ist bespielt. Muß morgen - falls ich Zeit finde - noch Drähte anlöten. Aber ich glaube, daß es dann bei mir am JS scheitern wird. Kannst Du nicht bissl näher an PLZ 08066 ziehen?
@opensourcenomad sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
Deine ESP's (mit v2.7.1.) z.B. haben alle eine Sicherheitslücke
Dann haben all meine ersten Sonoffs das Problem, da ich am Anfang auch alle per ArduinoIDE mit Tasmota bespielt habe, bevor dann die Online-Githubvariante aus der Taufe gehoben wurde. Aber eh ich die alle nochmal flashe (wird bei den wenigsten OTA gehen), gehe ich das Risiko ein, vom BND gehackt zu werden ...
-
@1topf
Zitat:
Aber ich glaube, daß es dann bei mir am JS scheitern wird... keine Panik, das bekommen wir auch noch hin
-
@joergeli sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
... keine Panik, das bekommen wir auch noch hin
Das denkst Du ...
Ich hab ja auch noch einen Wemos mit Tasmota laufen, an dem ich auch gerade verzweifel, weil ich versuche das ganze mit Blockly zu lösen. Und dann kommt Söhnchen und will Fußball spielen ...
-
@1topf
... is klar, Fußball spielen hat natürlich oberste PrioritätIm Ernst:
Blockly ist nicht mein Ding, obwohl es ja letztendlich auch JS ist.Zu dem JS auf meiner WebSite:
Du musst darin zuerst die IP-Adresse Deines WEMOS ( Laufschrift) eintragen://Wemos IP-Adresse var udpIP = 'xxx.xxx.xxx.xxx' // IP-Adresse des Wemos, bzw. der DOT Matrix Laufschrift
Dann noch den Datenpunkt festlegen, in dem die Daten, welche an die Laufschrift gesendet werden sollen, gespeichert werden. Ich habe ihn bei mir als javascript.0.Laufschrift manuell angelegt (Typ: Zeichenkette).
Dann folgen alle Datenpunkte (Sensoren), deren Werte übermittelt werden sollen.
Um erst mal ein simples Beispiel zum Laufen zu bekommen, würde ich vorschlagen, erst mal nur einen Temperatur-/Luftfeuchtewert zu übermitteln,
Also mein JS soweit strippen, daß z.B. nur die Kellertemp/Kellerfeuchte übrig bleibt, also so:
var temp_keller = getState('hm-rpc.2.CUX0100008.1.TEMPERATURE').val ; // Keller Temp var feuchte_keller = getState('hm-rpc.2.CUX0100008.1.HUMIDITY').val ; // Keller Feuchte
Da musst Du natürlich die Datenpunkte eines eigenen Temp-/Feuchte-, oder sonstigen Sensors eintragen.
Also z.B.:var temp_xy = getState('xyt').val ; // xy Temp var feuchte_xy = getState('xyf').val ; // xy Feuchte
Die nächste relevante Zeile wäre dann bei mir:
// Temperatur/Feuchte Keller_______________________________ var tf_keller = 'Keller ' + temp_keller + '$C ' + feuchte_keller + ' %;'
Da wird der String dann für die Laufschrift "aufgehübscht":
Ausgabe z.B.: Keller 17°C Feuchte 56%
( Wichtig: Das Semikolon am Ende, welches der Laufschrift sagt: String ist hier zu Ende)Dann setzen wir nur noch den Ausgabestring - der aus vielen Einzelstrings bestehen kann - zusammen, denn wir wollen ja im Endeffekt auf der Laufschrift mehr als nur einen simplen Temp-Feuchte-Wert ausgeben.
Momentan haben wir aber nur den Temp-/Feuchte Wert des Kellers, also:var ausgabe = tf_keller
Diesen Ausgabe-String schreiben wir dann in den eingangs erwähnten Ausgabe-Datenpunkt:
// Ausgabestring in Datenpunkt schreiben var pfad = ausgabe_datenpunkt setState(pfad , ausgabe, true); log('----' + ausgabe +' ----');
.... das war's auch schon.
Wenn alles passt sollte jetzt alle 45 Sekunden der Wert an die Laufschrift übermittelt werden, siehe//Script jede 45te Sekunde ausfuehren schedule('45 * * * * *', Laufschrift_Aktualisieren);
__
In meinem JS sind auch div. if-Abfragen drin, z.B. ob heute oder morgen die Bio-Tonne abgeholt wird:// Biomuell__________________________________________ if (biomuell_heute == true) { var BioMuellHeute = 'Heute Biom!ll;' } else { var BioMuellHeute = '' } if (biomuell_morgen == true) { var BioMuellMorgen = 'Morgen Biom!ll;' } else { var BioMuellMorgen = '' }
Wenn ja, wird dann ein String
var BioMuellHeute = 'Heute Biom!ll;'
generiert, wenn nein ein Leerstring
var BioMuellHeute = ''Mit dem Leerstring wird einfach die Anzeige von Biomüll auf der Laufschrift unterdrückt, wenn keine Abholung ansteht.
(Nicht über das Ausrufezeichen in Biom!ll wundern - auf dem WEMOS wird das Ausrufezeichen automatisch in den Umlaut "ü" umgewandelt)
Ich würde sagen, probier mal, ob das mit dem Temp-/Feuchte-Wert funktioniert, wenn ja einen zweiten Sensor hinzufügen, etc.
Schau Dir meinen Sketch bzgl. der Besonderheiten einfach mal an, ich denke mit ein wenig Probieren wird die Struktur dann klarer.Bei Problemen: einfach fragen.
Gruß
JörgP.S.
Ach ja, wenn ich mich recht erinnere - bin mir aber nicht sicher - muss in ioBroker der simple-api-Adapter installiert sein -
@1topf said in ESP Matrix Anzeige fully IoBroker steuerbar:
Dann haben all meine ersten Sonoffs das Problem, da ich am Anfang auch alle per ArduinoIDE mit Tasmota bespielt habe, bevor dann die Online-Githubvariante aus der Taufe gehoben wurde. Aber eh ich die alle nochmal flashe (wird bei den wenigsten OTA gehen),
Es ist erstmal ein Haufen Arbeit die ganzen Altlasten auf ein vernünftiges System (esphome) zu hiefen, wenn das aber geschafft ist heißt es zukünftig: Ein klick (und eine Tasse ) genügt um alle (seien es 10, 50 oder 100) esp's auf einmal zu aktualisieren.
Ich feiere noch heute den Tag als ich den ollen mqtt broker endlich in den wohlverdienten Ruhestand schicken konnte (die 20 Jahre alte technologie hatte ausgedient) weil ich meine letzten Geräte von espeasy/espurna/tasmota zu esphome migriert hatte.
gehe ich das Risiko ein, vom BND gehackt zu werden ...
Ich glaube da sind wir einer Meinung, von den deutschen Schlapphüten geht mit Sicherheit keinerlei Risiko aus, vor Scriptkiddies muss man sich da schon deutlich mehr fürchten