NEWS
ESP Matrix Anzeige fully IoBroker steuerbar
-
@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.
-
@liv-in-sky
Jo, stimmt, darüber sollte es gehen - es war gestern schon ziemlich spät und ich war nur auf die Helligkeitseinstellungen fixiert -
altes thema : ich kann mich immer noch nicht durchringen, mein script auf mqtt umzuprogrammieren - das gefällt mir bei dir sehr gut !
meine einstellungen , die ich machen kann, will ich aber auch nicht verlieren - daher nutze ich immer noch meine langsame variante, dass die matrix die settings und daten holt - und dadurch langsam ist - abe rdafür kann ich halt das display abschalten -
@liv-in-sky sagte in ESP Matrix Anzeige fully IoBroker steuerbar:
abe rdafür kann ich halt das display abschalten
Sollte bei mir auch mit P.displayReset(); P.displayShutdown(true) gehen, sei's über Bewegungsmelder, oder Taster direkt am WEMOS, oder evtl. auch über VIS/Datenpunkt via ioBroker.
Andererseits möchte ich die Laufschrift gar nicht ausschalten, weil das Teil bei mir in der Bastelbude steht und ich so rel. schnell mitbekomme, ob z.B. Homematic-Servicemeldungen anstehen, oder der Duty-Cycle aus irgendeinem düsteren Grund zu hoch ist, oder ich heute noch die Mülltonne rausstellen muss, weil sie morgen abgeholt wird.
Somit habe ich momentan keine große Lust mich mit der Abschaltung zu beschäftigen. -
@joergeli Guten Morgen (zusammen). Nachdem ich vor zwei Jahren mit dem Displaybau begonnen habe, zwischenzeitlich dann doch andere Projekte hatte, habe ich mich in den letzten Tagen wieder intensiv damit auseinander gesetzt; ich möchte - in Blick auf den kommenden Winter - die Temperaturen der einzelnen Räume darstellen.
Soweit bin ich auch bisher ganz gut voran gekommen, habe (für mein Empfinden) "das Beste" aus joerglis-Script und vom liv-in-sky vereint, allerdings hänge ich nun an einer Stelle, wo ich absolut keinen Einstieg finde, meine Idee zu realisieren:
Ich möchte gerne einen Datenpunkt aus dem io-Broker abfragen (true / false), (der durch einen Bewegungsmelder im Broker gesetzt wird).
Entsprechend soll dann gemäß parola.h-lib das Display wie bereits genannt abgeschalten werden, damit es nicht 24/7 im Treppenhaus leuchtet.
Ich habe gestern viel dazu gelesen, bin letztendlich beim "PubSub MQTT Client" angekommen. Verstehe hier allerdings bisher nur Bahnhof und würde gerne wissen, ob ich hier auf dem richtigen Weg bin, und ob / wer mir dabei etwas unter die Arme greifen würde.
Danke für's lesen! LG. S.
-
@rotamint bei meinem scrippt kann man das display durch das mode setting (ich glaube mode 6) ausschalten. den rest macht ein blockly, das diesen mode dann aktiviert
mit PubSub MQTT Client kennn ich mich nicht aus
-
@liv-in-sky Danke für Deine Antwort! Ich habe mir beide Lösungen aufgebaut und angeschaut. Deine und die vom joergli. Letztendlich habe ich mich für die von joergli entschieden, da der Code für mich einfacher zu verstehen war. Ich bin was das Thema angeht absoluter Anfänger mit etwas lückenhaftem Baiswissen. Was mir an Deiner Lösung definitiv besser gefällt, ist dass die Animation je nach Meldung geändert werden kann. Habe aber nicht verstanden wo / wie die "Settings" ausgewertet werden und darum den Gedanken an "flexible" Animation schnell verworfen. Letzendlich wird das Display sowieso bei mir nur in einem Modus laufen... Mit dem "Abschalten" des Displays geht's aber jetzt genau in die Richtung, wo ich mich nicht ran getraut habe ;(