NEWS
ESP Matrix Anzeige fully IoBroker steuerbar
-
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
-
@opensourcenomad sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
ein vernünftiges System (esphome) zu hiefen
Ich weiß, daß esphome Dein Lieblingskind ist, meines nicht - auch nicht z.B. Tasmota.
Bei meinen selbsgefrickelten Sachen weiß ich, was darauf abgeht - gut, setzt natürlich Programmierkenntnisse voraus.
.... und seien wir doch mal ehrlich: wer schaut bei einem Arduino/ESP8266/ESP32 ständig nach, ob es da irgendwelche Updates z.B. bzgl. core gibt, wenn das Ding wie gewünscht funktioniert?Nebenbei: Ich nutze gelegentlich noch einen alten WINXP-Rechner (ich glaube, der läuft schon, bevor die Jahrtausendwende stattfand), einfach weil einige ältere Programme unter WIN7/WIN10 nicht mehr laufen, die ich aber benötige (z.B. um meine Philips Pronto-Fernbedienung zu programmieren).
Der hängt dann auch im Netz und so what, soll ich mich deshalb von "German-Angst" verrückt machen lassen?
Wie gesagt, läuft seit über 20 Jahren problemlosAber lassen wir das, ich werde OT.
Gruß
JörgP.S.
... und MQTT läuft bei mir auch noch -
@joergeli said in ESP Matrix Anzeige fully IoBroker steuerbar:
und seien wir doch mal ehrlich: wer schaut bei einem Arduino/ESP8266/ESP32 ständig nach, ob es da irgendwelche Updates z.B. bzgl. core gibt, wenn das Ding wie gewünscht funktioniert?
Da liegt die Krux vergraben, so ziemlich keiner. Gibt ja sogar einige Leute die wissen das sie verwundbare Geräte im Einsatz haben (und es theoretisch updates gibt) und sie diese trotzdem nicht einspielen weil sie dem Aufwand scheuen.
Und da kommt eben auch schon mein Lieblingskind zum Einsatz, denn wie schon geschrieben:
@opensourcenomad said in ESP Matrix Anzeige fully IoBroker steuerbar:
konsequent auch weiter fragen "wie halte ich das am einfachsten auf dem aktuellsten Stand"
Und Stand heute kenne ich eben kein anderes "Tool" welches mir diese Arbeit abnimmt.
Warum versuchen das Rad () neu zu erfinden nur um festzustellen das dieses nur eiernd () voran kommt und dafür ein Haufen Zeit verheizt () wurde?
Aber ja, manch einer fährt auch aus Überzeugung ohne Sicherheitsgurt, jedem das seine... Aber empfehlen sollte man solche "bad practice" bitte niemanden
-
@joergeli said in ESP Matrix Anzeige fully IoBroker steuerbar:
WINXP-Rechner (ich glaube, der läuft schon, bevor die Jahrtausendwende stattfand)
Eher nicht, Windoof XP ist erst 2001 auf den Markt gekommen. Vielleicht verwechselt du es mit Win ME (Millennium!). Das waren noch die alten guten Windoofe welche man ohne Kreditkarte installieren konnte und welche keinen Online-Account (Zwang) hatten. Besser war eigentlich nur noch DOS, so spritzig, sollte ich mir gleich mal installieren...
Wenn du übrigens "wirklich" noch auf eine win NT Basis "angewiesen" bist gibt es besser Möglichkeiten als ein OS zu verwenden das vor 8 Jahren das letzte update gesehen hat. Je nach Software könnte sich wine anbieten, wenn du ein ganzes OS willst ist wahrscheinlich ReactOS die erste Wahl
-
@opensourcenomad sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
Besser war eigentlich nur noch DOS, so spritzig, sollte ich mir gleich mal installieren...
Ist jetzt zwar leicht OT, aber ich nutze DOS tatsächlich noch beruflich . Da unsere neuen Wartungslaptops alle mit Win10 laufen, wir aber noch viele alte Systeme warten müssen (ich repariere Züge, hauptsächlich Dieselfahrzeuge), habe ich mir einen bootfähigen USB-Stick mit DOS gebastelt. Wir virtualisieren zwar viel unter Win10, aber es geht eben nicht alles. Und der Stick bootet schön schnell . Die Fahrzeuge, für die ich noch Win 3.11 gebraucht habe , wurden nach Österreich verkauft. Und dort fahren die noch!
Zurück zum Thema:
@joergeli sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
Blockly ist nicht mein Ding, obwohl es ja letztendlich auch JS ist.
Vielen vielen Dank für die Anleitung, aber ich versuche mich doch gerade lieber mit der Tasmotaversion und Blockly. Und da hab ich einen kleinen Test laufen, welcher (für mich) recht gut aussieht.
Das GIF ist etwas zusammengeschnitten und sieht deshalb "unrund" aus . Sobald ein Datenpunkt aktualisiert wird, wird das in der Matrix angezeigt. Was mich ein wenig stört ist die Uhrzeit. Die greife ich mir in den Objekten -> javascript -> variables ab. Allerdings wird die dort nur alle 60 Sekunden aktualisiert und deshalb werden in der Matrix keine Sekunden angezeigt. Ist aber nur ein Schönheitsfehler. Das Datum/Uhrzeit "läuft" liegt nur am Format TT.MM.JJJJ SS:mm:ss:sss. Wenn ich die Hundertstel ausblende, steht die Anzeige, weil dann genügend Displays vorhanden sind. Ach ja, und bei der Temperatur wird °C nicht angezeigt, sondern nur die Zahlen. Das ist blöd.
Als jemand, der null Ahnung von JS und Co. hat, bin ich mit dem momentanen Ergebnis doch vorerst zufrieden. Jetzt muß ich nur meine Hardware noch umbauen. Dann werde ich noch einen Temp.fühler am Wemos anbringen, so hab ich gleich noch die Außentemperatur vom Garten (ist die Nordseite vom Haus, da ist es immer etwas kälter). Man könnte dann die Anzeige noch per Alexa (ja, die hängt auch mit im Garten rum ) an- und ausschalten. Und wenn ich mal gaaaanz viel Zeit habe, werde ich mich mit euren Scripts beschäftigen @joergeli @liv-in-sky .
Wie müßte ich denn eigentlich die Displays am Wemos anschließen, wenn ich DisplayHeight 16 haben möchte? Oder werden die auch nur durchgeschleift?
Viele Grüße,
Andi -
@1topf said in ESP Matrix Anzeige fully IoBroker steuerbar:
aber ich nutze DOS tatsächlich noch beruflich
Hoffentlich ein gepflegtes freeDOS und kein gammel msDOS