script editor für Tasmota

  • Hallo,

    da hatte ich schon Stunden drinne verbracht, hatte es aber nicht hin bekommen. Das mit den >D >T >S hatte ich dort gelesen und auch mit gespielt.

    Vielen Dank Gemu2015 für deine schnelle Hilfe.

    Wie muss ich das denn schreiben, wenn ich den Counter auf 0 setzen will?

    Counter<x> 0 = reset Counter<x>

    1..64900 = preset Counter<x>

    -1..-64900 = decrease Counter<x>

    +1..+64900 = increase Counter<x>

    In order to define and use a Counter, *you must configure one of the free device GPIO as Counter<x>. Counter module configuration is using internal pull-up resistor while Countern does not. *

    Gruß Stefan

    Einmal editiert, zuletzt von Stefan W (2. Juli 2020 um 20:43) aus folgendem Grund: ...weitere Frage aufgetreten...

  • Mal eine Frage zur Formatierung in der Webanzeige?

    {m} setzt ja die Ausgabe rechtsbündig! z.B.

    >W

    Füllmenge in Liter {m} %0v%

    Gibt es da weitere Ausgabemöglichkeiten?

    z.B. Mittig etc?

  • Servus Ich versuche die Volumenberechnung nachzustellen aber in der Konsole steht immer nur:

    00:00:00 CFG: aus Flash geladen am 3F7, zählen 60

    00:00:00 Script: nv=8, tv=1, vns=21, ram=148

    00:00:00 I2C: SSD1306 gefunden bei 0x3c

    00:00:00 Projekt tasmota Tasmota Version 8.4.0(tasmota)-2_7_3_2

    00:00:00 WIF: verbinden mit AP1 Skynet-IoT Channel 5 BSSId 18:64:72:75:78:72 in Modus 11N als tasmota_AEF21C-4636...

    00:00:03 WIF: verbunden

    20:03:30 HTP: Web-Server aktiv bei tasmota_AEF21C-4636 mit IP-Adresse 192.168.100.211

    20:03:31 RSL: tele/tasmota_AEF21C/INFO1 = {"Module":"Generic","Version":"8.4.0(tasmota)","FallbackTopic":"cmnd/DVES_AEF21C_fb/","GroupTopic":"cmnd/tasmotas/"}

    20:03:31 RSL: tele/tasmota_AEF21C/INFO2 = {"WebServerMode":"Admin","Hostname":"tasmota_AEF21C-4636","IPAddress":"192.168.100.211"}

    20:03:31 RSL: tele/tasmota_AEF21C/INFO3 = {"RestartReason":"Software/System restart"}

    20:03:31 RSL: stat/tasmota_AEF21C/RESULT = {"POWER1":"OFF"}

    20:03:31 RSL: stat/tasmota_AEF21C/POWER1 = OFF

    20:03:31 RSL: stat/tasmota_AEF21C/RESULT = {"POWER2":"OFF"}

    20:03:31 RSL: stat/tasmota_AEF21C/POWER2 = OFF

    20:03:31 RSL: stat/tasmota_AEF21C/RESULT = {"POWER3":"OFF"}

    20:03:31 RSL: stat/tasmota_AEF21C/POWER3 = OFF

    20:03:35 RSL: tele/tasmota_AEF21C/STATE = {"Time":"2020-08-22T20:03:35","Uptime":"0T00:00:11","UptimeSec":11,"Heap":23,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":23,"MqttCount":0,"POWER1":"OFF","POWER2":"OFF","POWER3":"OFF","Wifi":{"AP":1,"SSId":"Skynet-IoT","BSSId":"18:64:72:75:78:72","Channel":5,"RSSI":46,"Signal":-77,"LinkCount":1,"Downtime":"0T00:00:05"}}

    20:03:35 RSL: tele/tasmota_AEF21C/SENSOR = {"Time":"2020-08-22T20:03:35","ANALOG":{"A0":250},"AM2301":{"Temperature":23.7,"Humidity":70.7,"DewPoint":18.1},"TempUnit":"C"}

    20:04:10 script compressed to 535 bytes = 71 %

    20:04:10 Script: nv=8, tv=1, vns=21, ram=148

    20:04:37 RSL: stat/tasmota_AEF21C/RESULT = {"POWER3":"ON"}

    20:04:37 RSL: stat/tasmota_AEF21C/POWER3 = ON

    20:08:24 var not found: *acos((r-h)/r)

    20:08:24 var not found: /1000*((r*r)/2)*(a-sin(a))

    20:08:24 Wstd :85.67

    20:08:24 Winkel Alpha:0.00

    20:08:24 Volumen :0.00 Liter

    20:08:24 Script: performs "publish stat/tasmota_%06X/RESULT 0"

    20:08:24 RSL: stat/tasmota_%06X/RESULT = 0

    20:08:24 Nachspeisung :???


    hat jemand eine idee warum er die variablen nicht findet?

  • gemu2015

    Danke für den Hinweis zum Formatieren.

    Ich hätte noch eine Frage zur

    Zigbee Sonoff ZBBridge todo/wishlist#9051

    Da hat Kugelkopf geschrieben:

    "Maybe an integration into the scripting function would also be a good option that offers more possibilities than rules."

    Kann ich scripting schon mit der Sonoff ZBBridge verwenden? Wenn ja wie?

  • Hallo zusammen!

    Ich glaube ich brauche da doch auch mal Hilfe. Schon bei der einfachsten Sache verkacke ich oder da stimmt etwas nicht.

    Ich habe an einem Sonoff 4 Channel R2 einen MCP23017 angeschlossen und wollte über diverse Ports nun die Relays auslösen. Leider alles ohne Erfolg.

    Hier mein Script:

    Beim schalten von MCP_D0 springt Power1 sowie power2 um.

    WARUM!?

    Gruß

    Steffen

  • billy

    Es gibt keine speziellen Befehle für Zigbee.

    Natürlich kannst du beliebige Befehle mit -> an Tasmota senden, also auch Zigbee Befehle und die Zigbee Status Meldungen kommen in der >E Sektion als JSON an und können dort abgefragt werden.

    gemu2015 Danke für diese Info!

    Bin bei meinen Tasmota Installationen komplett auf dein Scripting umgestiegen.

    Was sich mir im Augenblick jedoch nicht erschließt ist die Möglichkeit das Scripting in der build Version tasmota-zbbridge.bin einzubauen.

    Kann man irgendwo sehen welche defines und undefines in dieser build verwendet werden? um dann selbst zu compilieren und

    die Rules mit Scripting zu ersetzen?

    billy

  • gemu2015

    Guten Morgen Gerhard,

    hast Du schon mal mit dem Ultraschall Sensor HC-SR04 gearbeitet? in der Konsole wird folgendes ausgegeben:

    Code
    MQT: tele/StromzaehlerTest191/SENSOR = {"Time":"2020-08-30T08:11:59","SR04":{"Distance":3.228},"OBIS":{"Total_in":0.0000,"Total_out":0.0000,"Power_curr":0,"Meter_number":""}}

    folglich sollte es doch gehen mit folgendem Inhalt im Scripter den Wert zu bekommen oder?

    Code
    >D
    v1=0
    
    >S
    v1=SR04#Distance
    
    >W
    Abstand %3v1% cm

    allerdings bleibt er 0.000 und die Konsole gibt aus

    Code
    08:11:59 var not found: SR04#Distance

    Danke Gruß Jens

  • Hallo

    nach längerer Abwesenheit, habe ich mal wieder eine Frage in der Hoffnung, dass hier noch einer liest ...

    Das Script zur PV-Überschussverwertung läuft bis dato ohne Murren!

    Nun würde ich gern per Thyristorsteller mit 0-10V Eingang meinen PV-Überschuss dynamsich verwerten. Daher meine Frage, kann ich generell Werte an einen GPIO mit dem Script senden? (PWM-Pins) -> um mit einem PWM to Voltage Modul die 0-10V des Leistungsstellers zu nutzen?

    Ich habe in der Doku nur 0 oder 1 Werte zum setzen gefunden :

    spin(x b) set GPIO x (0..16) to value b (0,1). Only bit 0 of b is used - even values set the GPIO to 0 and uneven values set the GPIO to 1

    Gruss OW

  • Hallo gemu

    Besten Dank für Deine schnelle Antwort!

    Habe mal einen GPIO auf PWM geändert:

    danach erschient der Dimmregler in der WebGUI:

    mit " dimmer (0-100)" kann ich per Konsole und Script am "Lesekopf-Tasmota" im Zählerschrank verändern,

    und mit "Websend [192.168.1..xxx] dimmer (0-100) den "Remote-Tasmota" in der Heizung.

    Code
    17:37:14 Script: performs "WebSend [192.168.118.37] dimmer -42.20"
    17:37:14 MQT: stat/q3b_tasmota/RESULT = {"WebSend":"Done"}

    Soweit so gut.

    Nun hab ich noch zwei Fragen:

    1. wird die Dimmung automatisch an den den von mir gewählten GPIO angelegt oder muss ich das noch irgendwo definieren? ja!

    2. Hat jemand schon so eine Überschussberechnung mal per Script gemacht?

    Einfach den aktuellen Überschuss als Dimmlevel mappen funktioniert ja nicht lange, denn angenommen ich habe 500W Überschuss und gebe diese dann an den Heizstab (welcher dann 500W verheizt), dann habe ich bei der nächsten teleperiod ja 0W und wenn ich die wieder weitergebe ... also hätte ich immer 500W > 0W > 500W > 0W usf.

    Viele Grüsse

    OW

    2 Mal editiert, zuletzt von opferwurst (25. November 2020 um 23:52)

  • Hallo!

    Ich versuche nun schon geraume Zeit Daten eines Sensors (Humidity) per Websend von einem WEMOS D1 Mini auf einen anderen WEMOS D1 Mini zu senden.

    Das #define USE_WEBSEND_RESPONSE ist aktiviert, Version mit der ich teste ist die 9.5.0.2.

    Das senden funtioniert, auch wenn eine Result Command:Unknow nach dem absenden vom "Sender" erzeugt wird im LOG.

    Script Sender:

    LOG Sender:

    Code
    17:33:33.415 Script: performs "WebSend [192.168.2.151] Messung 71.00"
    17:33:33.417 SRC: Rule
    17:33:33.419 CMD: Grp 0, Cmnd 'WEBSEND', Idx 1, Len 29, Data '[192.168.2.151] Messung 71.00'
    17:33:33.780 MQT: stat/Wemos_2/5C8F78/RESULT = {"Command":"Unknown"}
    17:33:33.784 MQT: stat/Wemos_2/5C8F78/RESULT = {"WebSend":"Done"}
    17:33:33.787  Humi 71.00

    Die Daten kommen im LOG auch an, allerdings ebenfalls mit einen Result Command Unknow.


    Script Empfänger:

    Code
    >D25
    Humi=0.00
    
    
    >E
    Humi=Messung#Data
    =>print Humidity %Humi%

    LOG: Empfänger:

    Code
    17:38:59.152 HTP: Befehl
    17:38:59.156 SRC: WebCommand from 192.168.2.152
    17:38:59.159 CMD: Grp 0, Cmnd 'MESSUNG', Idx 1, Len 5, Data '70.80'
    17:38:59.164 MQT: stat/sonoff/0B9978/RESULT = {"Command":"Unknown"}
    17:38:59.167  Humidity 0.00

    Das senden von POWER oder Dimmer/PWM-Werten funtioniert ja "einfach", wenn diese im Empfänger angelegt sind.

    Hat vlt jemand eine Idee was ich falsch mache oder vergessen habe? Im Scripting-Cookbook usw. habe ich schon gesucht, auch hier im Forum beschäftigt das einige Leute. Aber an irgend eine Punkt kann ich dann nicht mehr folgen...

    Wäre super wenn mir da jemand helfen könnte!

    MfG

    vc45

  • Hallo,

    ich habe einen Shelly mit Tasmota 9.5.0.5 der an 12V betrieben mein Garagentor abfragt und den Antrieb über ioBroker triggert.

    Seit kurzem hängt an GPIO01 und 03 ein RFID Leser der über Wiegand kommuniziert.

    Im Web-UI wird die gelesene ID korrekt angezeigt, nur im Script habe ich Probleme diese ab zu fragen.

    An ioBroker wird sie auch übertragen.

    Code
    21:10:07.568 MQT: tele/Garage-TorLinks/SENSOR = {"Time":"2021-08-08T21:10:07","Wiegand":{"UID":123456,"Size":4}}

    Normalerweise sollte diese Abfrage doch den gleichen Wert liefern

    Code
    >D
    rfid=0
    
    >T
    rfid=Wiegand#UID
    
    >S
    print %rfid%

    Wo hab ich meinen Denkfehler?

    Gruß

    Christian