Befehl ausführen in Tasmota-Script

  • Hallo, versuche einen Wert an Tasmota zu senden was auch funktioniert.

    Der Wert soll dann mit einem Befehl übertragen werden, was nicht funktioniert:

    Der Printbefehl gibt nur den Wert aus ohne "SOLLWERT=" und der TuyaSend wird nicht abgearbeitet. Habe ich Fehler im Script oder funktioniert der TuyaSend-Befehl nicht in Scripten ?

  • Habe jetzt herausgefunden, das das Script gar nichts empfängt.Ich kann jetzt das Thermostat komplett über das Webinterface steuern, nur wie kann ich vom Broker aus die Variablen verändern ?

    Code
    16:36:36 MQT: empfangenes topic "cmnd/tasmota_CFB63C/sollwert", Datengröße 2, Daten "30"
    16:36:36 30
    16:36:36 SRC: MQTT
    16:36:36 CMD: Gruppe 0, Index 1, Befehl "SOLLWERT", Daten "30"
    16:36:36 MQT: stat/tasmota_CFB63C/RESULT = {"Command":"Unknown"}

  • Ja das geht danke schon mal.

    Ich dacht ich könnte mir in ioBroker ein Objekt cmnd/sollwert erstellen, das Thema dann in Tasmota subscriben und den Wert direkt in das Objekt schreiben.

  • das mit subscribe geht auch, dann wird der Wert direkt überschrieben.

    Must du aber erst kompilieren mit #define SUPPORT_MQTT_EVENT.


    hattest du ja oben schon versucht. habe ich lange nicht verwendet hat aber immer funktioniert

  • das mit subscribe geht auch, dann wird der Wert direkt überschrieben.

    Must du aber erst kompilieren mit #define SUPPORT_MQTT_EVENT.

    Das hatte ich gemacht, er bringt auch die Meldung das er das Thema abonniert. Es kommt aber immer {"Command":"Unknown"} wenn ich ein cmnd abonniere, bei stat bringt er nichts im Log.

    Da du ja der Entwickler bist und sagst es geht, muss ich mal weiter testen. ;)

    Einmal editiert, zuletzt von Wal () aus folgendem Grund: cmnd oder stat abonnieren.

  • Das hatte ich gemacht, er bringt auch die Meldung das er das Thema abonniert. Es kommt aber immer {"Command":"Unknown"} wenn ich ein cmnd abonniere, bei stat bringt er nichts im Log.

    Da du ja der Entwickler bist und sagst es geht, muss ich mal weiter testen. ;)


    erinnere mich gerade wo damals ein Problem lag.

    der subscribe wird in der >B section nach dem Neustart nicht ausgeführt da MQTT noch nicht verbunden ist.

    gib mal zum Testen den subscribe über die Konsole ein wenn MQTT verbunden ist dann sollte es gehen.


    im script haben wir das subscribe dann so gemacht:


    >S

    if mqttc>0

    then

    =>Subscribe soll, cmnd/%topic%,SOLLWERT

    endif

  • Ich hatte bevor ich hier gepostet habe, den kompletten Thread schon gelesen. Dein Tip habe ich schon ohne Erfolg versucht.;)

    Evtl. mache ich noch einen kleinen Fehler, werde weiter versuchen. Schade finde ich, das es noch so wenige Beispiele gibt, da das Ganze doch sehr mächtig ist.Vielen Dank für deine Hilfe.

  • Nach vielen Stunden habe ich jetzt den Sonoff-Adapter mit 3-4 Zeilen Code angepasst, damit ich die Werte direkt einfügen kann. Werde mal ein PullRequest hochladen und sehen was bluefox sagt.


    Bekanntgeben der Variablen von Tasmota aus wie gehabt mit einem einfachen z.B. script>sollwert=25 in der Konsole. Im Sonoff-Adapter wird die Variable dann unter Script_sollwert angezeigt. Der Vorteil ist auch, es wird weniger Skriptspeicher verbraucht.

  • subscribe brauchst du übrigens nicht weiter zu testen. das geht mit dem sonoff adapter gar nicht sondern nur mit dem mqtt adapter.

    Hatte mit beiden getestet, wurde im Scripteditor Thread ja besprochen.

    Nach der Änderung im Sonoff-Adapter sieht das jetzt so aus:

    Damit kann ich jetzt das Tuya_Thermostat komplett bis auf die Uhrzeit steuern.

    Weist du zufällig ob die Zeichen bei SerialSend5 begrenzt sind ? TuyaSend kann ich für die Uhrzeit nicht nehmen, da er nur 06 als Commandword nutzt, ich brauche 1C.

  • habe gerade mit einem anderen User das SUPPORT_MQTT_EVENT Problem geklärt.


    den Publish must du mit +> abschicken (recursion allowed)


    >S

    if mqttc>0

    then

    +>Subscribe soll, cmnd/%topic%,SOLLWERT

    endif


    dann gab es noch einen möglichen Überlauf des Subscribe Dekoders


    den kann man jetzt mit mehr Kapazität versehen in user_config


    z.B.


    #define MQTT_EVENT_MSIZE 450

    #define MQTT_EVENT_JSIZE 2000


    default sind 256 und 400