Beiträge von gemu2015

    Hallo Jens,


    >T wird immer alle Teleperiod Sekunden aufgerufen.

    Der Fehler war dass ein Leerzeichen vor der geschweiften Klammer gebraucht wird.


    if temp>=max {

    -> power1

    }

    if temp<=min {

    -> power1 1

    }


    werde mal untersuchen ob man das ändern kann.


    eine script Variable kannst du mit =>publish ... an den broker senden

    oder aber in der >J Sektion eintragen.


    die Unit eines Datenpunktes wird nicht übertragen. (ist bei den meisten Variablen nicht im JSON enthalten)


    nur z.B. bei wenigen wie der Temperatur wird die Variable TempUnit zusätzlich gesendet und ergibt aber eine extra Variable im Broker.


    Es gibt in IObroker bei vordefinierten Variablen aber ein Default unit. Diese vordefinierten Variablen sind in der Datei datapoints.js enthalten.

    diese Datei kannst du editieren und z.B. die Luftfeuchtigkeit mit Unit vordefinieren.


    Wenn IObroker eine JSON Variable in dieser Liste nicht findet wird automatisch (wenn die Häkchen im Setup gesetzt sind) eine Variable diese Namens angelegt aber ohne Unit.


    Gruß Gerhard

    über Sektion >E kommen 2 Tasmota calls herein.


    FUNC_SET_POWER (kein MQTT JSON)

    FUNC_RULES_PROCESS (MQTT JSON)


    bei Dimmer xx werden beide Calls aktiviert wenn sich dabei POWER ändert, >E wird also 2 mal aufgerufen.


    Habe jetzt die Option eingebaut beide getrennt zu verarbeiten (#define SCRIPT_POWER_SECTION)

    FUNC_SET_POWER >P

    FUNC_RULES_PROCESS >E

    immer wenn POWER wechselt von ON zu OFF oder umgekehrt wird offensichtlich kein gültiger JSON geschickt.

    in beiden Fällen Dimmer not found.

    wenn dimmer auf 0 gesetzt wird wird Power auch auf 0 gesetzt

    wird dimmer >0 gesetzt wird power auf 1 gesetzt.

    sqw534


    Merkwürdig alle Werte außer 0 werden richtig verarbeitet.

    Dimmer 0 liefert " var not found: Dimmer"


    In diesem Fall scheint Tasmota kein oder ein falsches JSON zu liefern.


    muss ich mal näher untersuchen

    kann was dauern da ich gerade ganz wenig Zeit habe.

    Hallo Jens,


    Falls du das script an das gerade benutze Display anpassen willst =>


    Die Parameter des Displays kannst du z.B. so auslesen:


    >D

    xs=0

    ys=0

    mo=0


    >B

    +>Display


    >E

    mo=Display#Model

    xs=Display#Width

    ys=Display#Height

    print %xs% %ys% %mo%


    Gruß Gerhard

    billy


    sorry das endif ist beim kopieren verloren gegangen.


    In der jetzigen Konfiguration bekomme ich die erste Volumen Meldung nach dem Booten erst nach 20 Minuten.

    die Sensordaten werden erst nach ein paar Sekunden in Sektion >T geliefert so dass du direkt nach dem Booten noch warten musst.


    eventuell würde ich die Berechnung und auch Displayanzeige z.B alle 10 Sekunden machen lassen und nur den Publish alle 20 Minuten


    also

    if upsecs%10==0

    ;calculate and display

    endif


    if upsecs%tper==0

    ; publish

    endif

    Versuchs mal damit.

    Tipp nimm wenns geht -> statt =>

    das erzeugt sonst zu viel unnötigen MQTT Traffik



    >D

    r=100 ;Radius liegende Zisterne in cm

    l=207 ;Länge liegende Zisterne in cm

    h=0 ;Wasserstand in cm

    a=0 ;Berechnungswinkel

    v=0 ;Volumen

    m=0 ; Analogwert des Levelsensors

    DT="DisplayText"

    hr=0

    t:t1


    >T

    m=ANALOG#A0

    if m<601

    then

    h=ANALOG#A0/3

    endif


    >S


    ;update every teleperiod

    if upsecs%tper==0

    then


    a=2*acos((r-h)/r)

    v=l/1000*((r*r)/2)*(a-sin(a))


    print Wstd :%h%

    print Winkel Alpha:%a%

    print Volumen :%v% Liter

    ->%DT% [s1p21c1l01]Volumen

    ->%DT% [s1p21c1l02]%0v%

    ->%DT% [s1p21c1l03]Liter


    =>publish stat/%topic%/RESULT %0v%


    Nachspeisung

    if v<5000

    then

    n=1

    endif


    if v>6000

    then

    n=0

    endif

    print Nachspeisung :%n%



    hr=hours

    if chg[hr]>0

    and n>0

    then

    t1=60

    endif


    if t1>0

    then

    ->power2 1

    else

    ->power2 0

    endif





    >W

    Füllmenge {m} %0v% Liter

    Der Fonteditor ist auf meinem Fork im Ordner Fonteditor. (Mac und PC Version)

    Du editierst damit direkt die Zeichen im C Quelltext in den Fontfiles und musst danach neu kompilieren.


    ich würde für das Grad Zeichen der Einfachheit halber ein kleines O aus dem kleinsten Font nehmen und entsprechend platzieren.

    Du must für SPI die Hardware Pins nehmen, nur so geht es.

    der Jumper muss auf 3-Wire SPI stehen also BS=1 und DC auf GND


    und diese defines.


    #define USE_DISPLAY

    #define USE_SPI

    #define USE_DISPLAY_SSD1351


    Dieses Script zeigt eine farbige Analog und Digitaluhr an


    \>D

    min=0


    \>B


    ->displaytext [Bi0z]

    ->displaytext [Ci2x0y0r128:128]


    \>S

    ->displaytext [f1Ci4c6l10tS]

    ->displaytext [Ci5c6l2T]

    min=mins

    if chg[min]>0

    then

    ->displaytext [Ci3x64y64w30]

    endif


    Gruß Gerhard





    Hallo Jens,


    gib das Kommando z.B. script 1 in der Konsole an. In Iobroker Sonoff zuvor auf Autogenerate stellen.


    Dann wird die Variable script in iobroker automatisch erzeugt.


    im Tasmota script die Variablen definieren

    >D

    temp1=0

    temp2=0


    dann in iobroker javascript die Variablen setzen mit z.B.

    setState('sonoff.0.RA8876.Script','>temp1=20.3;temp2=27.2');


    AingTii


    habe jetzt die email auf core pre 2.6 am Laufen indem ich die Light TLS Library verwende. das mailen sollte jetzt sehr viel weniger Ram brauchen.

    muss noch ermitteln wieviel ram genau man braucht.


    da das mailen auf den älteren cores wegen ram Mangel kaum Sinn macht habe ich die Unterstützung dafür rausgenommen.

    ok, das reicht dann definitiv nicht.

    habe gerade mal einen Wemos mit 2.42, email und sh1106 geflasht und habe 22k frei.

    das würde knapp reichen.

    wenn du ein Farbdisplay nimmst hast du noch mal 1k mehr (das SW OLED braucht im Gegensatz zur Farbversion einen 1k Framespeicher)


    nimm doch das 128x128 Farb OLED (SSD1351 ca 15 Euro)


    mit dem core pre 2.6 hast du etwa 30k frei aber zur Zeit funktioniert email nur noch mit 2.42.


    (lief schon mal aber geht jetzt nicht mehr??)