NEWS
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.
-
@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
-
Sorry, MS. Aber natürlich mit Norton Commander.
-
@joergeli Super Arbeit. Ist es denn auch möglich einen Bewegungssensor, der die Matrix nur anstellt wenn jemand davor steht, einzufügen?
Gruß Otto -
@tommy64
Ich sag's mal mit Radio Eriwan: Im Prinzip ja, aaaaber ....Einen Bewegungsmelder ( z.B. HC-SR501, oder Mini HC-SR505) an einen I/O-Pin anzuschließen, ist nicht das Problem - ist im Prinzip das Gleiche, was ich mit meinem Photowiderstand (LDR) mache, nämlich die Helligkeit regeln.
Also keine Bewegung --> Helligkeit =0, Bewegung erkannt --> Helligkeit = x.Allerdings bekomme ich darüber die Laufschrift nicht kpl. aus, d.h. auch bei intensity = 0 wird die Laufschrift nur abgedunkelt, geht aber nicht ganz aus.
Evtl. gibt es aber andere - mir unbekannte - Parameter in der von mir verwendeten Parola-library mit der man die Matrix kpl. ausschalten/abdunkeln kann? Müsste man mal in der library-Doku suchen und dann testen.
Evtl. ist es mit anderen libraries (z.B. von Adafruit) leichter, habe mich aber damit noch nicht beschäftigt.Was nicht funktionieren wird, wäre z.B. den WEMOS bei Bewegungserkennung aus einem Sleep-Modus zu wecken, denn bei meiner Laufschrift-Variante werden die Daten aus ioBroker "nur" alle 45 Sekunden gesendet, d.h. wenn man man noch den WEMOS-Verbindungsaufbau zum WLAN mit berücksichtigt, kann es u.U. ca. 50-60 Sek. dauern, bis die ersten Daten angezeigt werden.
Diese 45 Sekunden kann man auch nicht beliebig verkleinern, denn wir bekommen ja aus ioBroker div. Werte angezeigt, deren Darstellung für einen kpl. Durchlauf eine gewisse Zeit benötigt.
Wenn man den Zeitraum zu kurz wählt, würden schon neue Werte angezeigt, obwohl die letzten Werte des vorherigen Durchlaufes noch gar nicht angezeigt wurden.
Mit anderen Worten: je mehr Werte man anzeigen will, desto länger wird die Durchlauf-Dauer.Sorry
Jörg -
nutzen wir nicht die selbe library ?
P.displayReset(); P.displayShutdown(true)
display ist dann aus.