NEWS
ESP Matrix Anzeige fully IoBroker steuerbar
-
@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 ;(
-
@rotamint
Wie lang dauert es denn, bis die aktuellen Werte dann alle angezeigt werden? Sind die sofort da?
Mein Display läuft von 9 - 0 Uhr, läßt sich aber auch per Sprachbefehl an- und ausschalten. Bei mir läuft es mit Tasmota. -
@rotamint
Moin und sorry für die späte AntwortSodele, ich habe mir überlegt, wie man bei meiner Laufschrift-Variante einen Bewegungsmelder integrieren kann.
Softwaremäßig bin ich zu keiner rechten Lösung gekommen.
Einen PIR-Datenpunkt per MQTT via ioBroker zu verwursteln ist mit zu viel Arbeit, zumal meine Nutzdaten ja nicht per MQTT, sondern per UDP übertragen werden.Darum habe ich mir gedacht - warum nicht einen Bewegungsmelder direkt an den WEMOS anschließen?
Gesagt, getan - meine Laufschrift aufgeschraubt und einen 5V Bewegungsmelder HC SR501 an den WEMOS gelötet.
Sind nur 3 Anschlüsse: +5V, GND und OUTPUT.
Der OUTPUT-Ausgang des Bewegungsmelders muss zwingend! mit PIN D2 (=GPIO04) des WEMOS verbunden werden!Die Streungslinse kann man übrigens entfernen, darunter befindet sich der eigentliche Sensor.(Sieht aus wie ein Transistor)
Dann kann man die Platine durchaus neben der Matrix im Gehäuse unterbringen und die Laufschrift läuft an, wenn man sich davor bewegt.
Die Dauer der Anzeige hängt davon ab, wie man das Poti "Time Delay Adjuster" einstellt.
Wenn gewünscht ist, daß die Anzeige fortwährend läuft, wenn sich davor bewegt, muß der entspr. Jumper "Repeat Trigger Selector" entspr. gesetzt werden.Jetzt noch das Wichtigste, der entspr. modifizierte Sketch zum Download:
http://arduino.joergeli.de/laufschrift/ioBroker_Laufschrift_mit_Bewegungsmelder.ino
( Den Bewegungsmelder betreffende Zeilen enthalten immer die Zeichenfolge PIR)Ich hoffe, damit ist Dir geholfen - ist zwar nicht genau das, was Du wolltest, aber ich denke, so bleibt der Aufwand - zumindest für mich - überschaubar.
Gruß
JörgP.S.
hier noch mal der Link zu meiner Laufschrift: http://arduino.joergeli.de/laufschrift/laufschrift.php -
@joergeli Vielen Dank für Deine Mühe! Ich war beruflich momentan wieder mal schwer eingespannt, darum kann ich Dir erst heute antworten. Ich werde mir Deine Lösung mal aufbauen (wenn der PIR geliefert wurde).
Bis dahin, erstmal vielen Dank für Deine Mühe, ich werde wieder Berichten!
LG. S.