Beiträge von strohkw

    Lediglich im Displaymode 2 kann man mit Displaytext zeilenweise das Display füllen, so dass die vorherigen Zeilen nach oben weggeschoben werden. Im Dislaymode 0 wird ohne Positionsangabe jeweils die erste Zeile überschrieben. Im Displaymode 1 kann man mit Displaytext ohne Positionsangaben keine Zeilen aufs Display schreiben.

    Hallo, ich möchte so eine Art rollende Anzeige haben. Daher schreibe ich im Displaymode 2 die Zeilen mit displaytext Text ohne Positionsangaben. Das funktioniert auch wie gewollt, die neue Zeile wird unten angefügt, wenn vier Zeilen schon angezeigt werden, wird die oberste Zeile nach oben weggeschoben. Mit dem Taster bestätige ich praktisch, die Meldungen gelesen zu haben. Dann sollen alle Zeilen gelöscht werden, das Display wird ausgeschaltet. Kommt dann eine neue Zeile, wird das Display wieder eingeschaltet, es soll aber nur die neue Zeile (und dann eventuell folgende Zeilen) angezeigt werden.

    Ich möchte auf einem LCD Display 20/04 fortlaufend einzeilige Texte mit Displaytext ausgeben. Das funktioniert im Displaymode 2 auch wie gewünscht, neue Zeile schiebt alte Zeilen nach oben weg.

    Ich habe am D1 mini allerdings auch einen Taster. Wenn ich den drücke, sollen alle Zeilen gelöscht (Displaytext[z]) werden (und das Display mit Power off ausgeschaltet werden). Das funktioniert auch.

    Wenn ich dann eine neue Zeile auf das Display schreibe, sind allerdings die vorherigen drei Zeilen auch wieder sichtbar. Kann man das verhindern (Ausgabepuffer löschen oder so?)

    Habe jetzt die Hardware zur Verfügung, mit der IP Adresse ausgeben auf Display funktioniert nicht wie vorgeschlagen.

    Hier die Konsolenausgabe:

    19:58:14.375 CMD: rule1 on time#minute do backlog ipaddress endon;on ipaddress1 do backlog displaytext[zl2c5] IP-Adresse; displaytext[l2c2]%value% endon
    19:58:14.384 RUL: Stored uncompressed, would compress from 128 to 80 (-37%)
    19:58:14.387 RSL: RESULT = {"Rule1":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":128,"Free":383,"Rules":"on time#minute do backlog ipaddress endon;on ipaddress1 do backlog displaytext[zl2c5] IP-Adresse; displaytext[l2c2]%value% endon"}}
    19:58:18.618 CMD: rule1 1
    19:58:18.624 RSL: RESULT = {"Rule1":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":128,"Free":383,"Rules":"on time#minute do backlog ipaddress endon;on ipaddress1 do backlog displaytext[zl2c5] IP-Adresse; displaytext[l2c2]%value% endon"}}
    19:58:18.926 RUL: TIME#MINUTE performs 'backlog ipaddress'
    19:58:18.972 RSL: RESULT = {"IPAddress1":"0.0.0.0 (192.168.178.90)","IPAddress2":"192.168.178.1","IPAddress3":"255.255.255.0","IPAddress4":"192.168.178.1","IPAddress5":"0.0.0.0"}

    Am angeschlossenen Display erscheint keine Ausgabe. Oder habe ich da was falsch erstanden bei der Rule?

    Ich will nach dem Start der Tasmota Software die per dhcp vergebene IP4 Adresse automatisch auf einem angeschlossenen Display ausgeben. Dazu habe ich eine Rule geschrieben, die jede Minute die IP4 Adresse aufs Display schreiben soll:

    rule3
    on time#minute do Status 5 endon
    on StatusNET#IPAddress do backlog var1 %value%; displaytext[zl2c5] IP-Adresse; displaytext[l3c4]%var1% endon

    rule3 1

    In der Konsole kann ich sehen, dass das Kommando "Status 5" jede Minute angestpßen wird, die folgende Zeile "on StatusNET..." jedoch nicht auslöst.

    Rufe ich "Status 5" in der Kommandozeile der Konsole auf, dann löst die Bedingung aus. Wird der Event bei automatische Auslösung nicht weitergereicht (eventuell nur an MQTT)?

    Die Rule modifiziert mit "switch#state" und angeschlossenem Schalter zeigt das gleiche Verhalten.

    Gelöst habe ich es, indem ich nach dem Booten eine Regel "backlog displaymode 1; displaymode 2" auslöse. Wenn ich hier nur "displaymode 2" auslöse, steht die IP4 Adresse immer auf 0.0.0.0

    Aber warum greift eine Folgeregel nicht nach einem automatisch ausgelöstem Kommando. :evil: