Beiträge von gemu2015

    djuscha


    Achtung um Missverständnissen vorzubeugen. Als Uhr ist das Ding nicht zu gebrauchen. Sie nimmt ca 150mA auf wenn sie läuft. Selbst wenn sie im Light oder Deepsleep Modus läuft kommt man auf maximal 24 Stunden mit dem Akku.


    Deshalb kannst du einen Akkubetrieb mit Tasmota komplett vergessen.

    djuscha

    Also die Übertragung von Werten funktioniert ganz automatisch mit globalen Variablen.


    Du definierst in einem z.B. Sensor Tasmota eine Variable

    g:temperatur

    und setzt sie mit der gemessenen Temperatur z.B alle Teleperiod Sekunden


    in der Uhr oder jedem anderen Tasmota definierst du diese Variable auch.


    und dann wird sie automatisch upgedatet ohne dass die Geräte ihre IPs kennen


    Die Uhr gibt es auch noch in anderer Version in größerem Gehäuse mit ganz vielen Optionen aber dem gleichen Display. Ist aber deutlich teurer.


    Die anderen ESP32 mit Display haben andere Display Varianten aber kein Audio und kein PSRAM


    Bisher habe ich IObroker verwendet und die Kommunikation in Javascript auf dem IOBroker programmiert.


    Auch die grafische Ausgaben mit IObroker VIS.


    Ich wollte aber die RASPIs loswerden da es immer wieder mal Probleme gab.


    Für ganz kleine Systeme mit wenigen Tasmotas ist es sowieso die bessere Wahl und ein extra RASPI zu aufwendig.


    Wenn das jemand auch so lösen will kann ich ja mal genauere Infos geben

    AingTii


    Hi Jens


    Dass mit den Leerzeilen mach nicht ich, sondern das kommt daher dass du bisher einen Editor verwendest der CR/LF als Zeilenende hat.

    Das erzeugt dann eine Leerzeile weil im Scripteditor nur LF als Zeilenende gilt (ist by unix, Linux so), CR wird in eine extra Zeile verwandelt.


    Du kannst ja exportieren und dann die exportierte Datei wieder laden, dann sind alle Leerzeilen erst mal draussen. Damit sparst du dir das händisch zu löschen.


    Hast du die allerneueste Version von Tasmota ?


    Es gab ein Problem mit dem Upload, weil Theo was eingebaut hat was meinen Upload ausgehebelt hatte.


    Ist seit gestern behoben.


    DisplayMode und Model Restarten Tasmota sofort. Das führt dazu dass mehrmals hintereinander ein Restart ausgelöst wird bis Tasmota dann das script (bzw rules) disabled. (soweit ich weis nach 6 mal)


    Gruß Gerhard

    Moin Jens,


    Habe diesen Sensor auch schon verwendet, sollte eigentlich keine Problem geben den als Button anzusprechen.


    Zu deinem script habe ich einige Anmerkungen.


    Du solltest den script Editor verwenden, da kannst du mit Tabs formatieren und siehst viel besser was du vergessen hast.

    und beliebige Formatierungen einfügen.

    und mit einem Tastendruck das Script installieren.

    Im Anhang dein Script etwas formatiert.


    Du hast nämlich eine Klammer vergessen. Das kann fatale Auswirkungen haben, habe den Fehler drin gelassen


    Bei print braucht man nicht mehr das => davor

    und für ->Displaytext gibt es jetzt den Shortcut dt, spart jede Menge Platz



    Gruß Gerhard


    color_script.pdf

    Die gmail Daten haben nichts mit den Charts zu tun.


    Das und viel mehr ist in der Script Erweiterung von Tasmota machbar. Da man das immer selbst kompilieren muss ist das nicht so verbreitet.


    Du kannst damit erheblich mehr erreichen als mit rules.


    Die WEB GUI kannst du selbst gestalten mit Buttons, Schiebereglern etc


    Du kannst beliebige HTML Seiten bauen auch im Vollformat mit Bildern, Links etc. also ein richtiger Webserver.


    Du hast ein File System in dem du Dateien speichern kannst und die dann hoch und runterladen.


    Du kannst emails versenden auch mit Anhang, alle möglichen Google Charts anzeigen.


    Audio Dateien abspielen, mit der Webcam Bewegungs Erkennung, Gesichtserkennung etc. machen


    und natürlich umfangreiche Datenverarbeitung machen


    Bin gerade dabei meine RASPies zu ersetzen mit einem ESP32 der mit allen anderen Tasmotas ohne MQTT kommuniziert.


    Ist für kleinere Systeme ganz problemlos möglich.


    Ich programmiere gerade eine TTGO ESP32 Watch als Server

    da hat man ein schönes kleines Display und Audioausgabe in einem Armbanduhren Gehäuse

    16MB Flash und noch extra 4MB Ram

    für 23 euro inklusive Versand.


    werde das Armband abmachen und die Uhr in ein Wandgehäuse einbauen.


    Hi alle


    Hier mal ein Beispiel für eine GoogleChart Grafik bei einem Zähler (nur Solar Einspeisung)

    Wochengrafik, Tagesgrafik, Tabelle für letzte Woche, sendet jede Woche eine Ertragstabelle per email.

    Die Grafiken zeigen die Werte bei Maus Over an.


    Nun das HowTo


    in user config_override.h

    für alle

    #undef USE_RULES

    #define USE_SCRIPT

    #define USE_SML_M

    #define USE_SML_SCRIPT_CMD

    #define USE_SCRIPT_GLOBVARS

    #define USE_GOOGLE_CHARTS

    #define LARGE_ARRAYS

    #define USE_SENDMAIL

    #define USE_SCRIPT_WEB_DISPLAY

    #define USE_SCRIPT_JSON_EXPORT

    ; der mail account, natürlich angepasst

    #define EMAIL_USER "user"

    #define EMAIL_PASSWORD "passwd"

    #define EMAIL_FROM "<mr.x@gmail.com>"

    #define EMAIL_SERVER "smtp.gmail.com"

    #define EMAIL_PORT 465



    Für 1MB Devices zusätzlich:

    #define USE_EEPROM

    #define EEP_SCRIPT_SIZE 4096


    Für 4MB Devices: zusätzlich

    #define USE_SCRIPT_FATFS -1

    #define FAT_SCRIPT_SIZE 4096

    #define SDCARD_DIR

    zusätzlich hier in platform_override ein anderes Linkerfile nehmen

    board_build.ldscript = eagle.flash.4m2m.ld


    Besonderheit bei 1M devices wird das Script nach jedem over the air update gelöscht weil

    Tasmota den EEPROM Speicher als Zwischenpuffer verwendet.

    Man muss nach einem Softwareupdate also das script neu installieren.



    solar_script.pdf

    solor_einspeisung_script.txt






    Hallo meierchen006


    Alle Varianten falsch, leider


    z.B. so wäre eine richtige


    >S

    tm=time

    if chg[tm]>0

    then


    if ((time==813) and (ps0==1) and ((wday==7) or (wday==1)))

    then

    ; Samstags und Sonntags

    =>print "Zeitgesteuert Lüften"

    ;=>power2 1

    endif


    if ((time==1020) and (ps0==1) and (wday!=7) and (wday!=1))

    then

    ; Wochentags

    =>print "Zeitgesteuert Lüften"

    ;=>power2 1

    endif


    endif




    wday fängt Sonntags mit 1 an

    Hallo meierchen006


    du musst diese Zeilen weglassen


    // -- zusätzlicher 2MB Speicher bei Wemos oder NodeMCU ----

    #define USE_SCRIPT_FATFS -1

    #define FAT_SCRIPT_SIZE 1536 // normal 1536

    #define USE_SCRIPT_FATFS_EXT

    #define SDCARD_DIR


    die konfigurieren eine Version die Flash File hat wie der 4MB Wemos

    er findet dann beim Starten kein Flash File in der Partition Map und nimmt die ganz alte Variante.

    Moin userTK


    Hab dein script geprüft.

    Der Fehler passiert beim Neustart wenn die Uhr noch nicht gestellt ist.

    Der chg[] ist bei Neustart immer einmal wahr und der Monatstag (day) steht auf 1

    dadurch werden deine ersten beiden p Variablen überschrieben.


    du kannst z.B. das Jahr mit dazu nehmen. wenn das >0 ist ist die Uhr gestellt und dein Vergleich funktioniert wie erwartet


    man testet solche Probleme am besten in dem man die fraglichen Variablen mit print ausdruckt


    und auch die Stellen wo sie modifiziert werden mit einem debug print versieht.

    die defines


    #undef USE_RULES

    #define USE_SCRIPT

    #define USE_WEBCAM

    #undef EMAIL_FROM

    #define EMAIL_FROM "mustermann@googlemail.com"

    #define USE_SENDMAIL

    #define USE_ESP32MAIL

    #define USE_FACE_DETECT

    #define USE_SPI

    #define USE_SCRIPT_FATFS 13

    #undef FAT_SCRIPT_SIZE

    #define FAT_SCRIPT_SIZE 8192

    #define SDCARD_DIR


    die SPI Pins musst du definieren, damit du die SD Karte nutzen kannst

    Das Script selbst wird auch auf SD Karte gespeichert


    Die Syntax findest du in den Script Dokus


    um die webcam im script zu nutzen musst du allerdings den Tasmota stream ausschalten:


    wcstream 0



    Hier ein ganz einfaches Testscript


    >D

    res=0

    w=0

    h=0

    mot=0

    bri=0

    >B

    ; init cam with QVGA

    res=wc(0 4)

    ; get pixel size

    w=wc(3)

    h=wc(4)

    ; start motion detector, picture every 1000 ms

    mot=wc(6 1000)

    >S

    if wific>0

    then

    ; when wifi up, start stream

    res=wc(5 1)

    endif

    ; get motion detect diff value

    mot=wc(6 -1)

    ; get picture brightnes

    bri=wc(6 -2)

    >W

    <center>motion diff = %mot%<br>

    <center>brightness = %bri%<br>

    ; show stream on WEBUI

    $<br>

    $<img src="http://%lip%:81/stream" style="width:%w%px;height:%h%px">

    $<br><center>webcam stream



    Unter Tasmota kannst du ohne script nur den einfachen Viewer nutzen.


    Mit Script kannst du Bewegungserkennung, Helligkeitsmessung, Gesichtserkennung (nur ob ein Gesicht gefunden wurde, kein Anlernen)

    nutzen. Du kannst Bilder z.B. bei Bewegung abspeichern (auf SD Karte) und bei Bedarf die Bilder auch per email verschicken oder im WebUI anzeigen.

    .