Beiträge von kaennchen

    Eine Frage hätte ich noch... wenn ich Werte instant abfragen möchte, wie komme ich dann an die Daten ran?

    Mein Blitzwolf hat z.B. (bei den Rules) ein on "ENERGY#Power" - bekomme ich das (ausser, wenn ich auf die Teleperiod warten kann) irgendwie in eine Variable rein?


    pwr=ENERGY#Power geht leider nicht.


    Danke & LG Kaennchen

    da es nur extrem wenig platz für strings gibt und die meisten User kaum strings brauchen habe ich mich bisher mit Stringfunktionen zurückgehalten.

    habe deine Funktionen aber eingebaut. wir müssen aber aufpassen dass die Codegrösse nicht zu stark anwächst.

    bitte gut testen und Bescheid sagen ob alles geht dann mache ich eine pr.

    Erste Sahne! Das funktioniert durchweg asterein! Vielen Dank! ;)

    Danke, probiere ich gleich mal aus.


    Ich möchte auch gerne was zurückgeben, daher habe ich (mit meinen äußerst beschränkten C-Kenntnissen) folgendes gebaut:


    Als Doku:

    Code
    1. sb(svar s n) = substring - retrieve a substring of n characters of svar starting at s. S may be negative.
    2. sl(svar) = string length - retrieve length of svar

    Passt das auch rein?


    LG Kaennchen

    Hallo Gerhard,


    ich möchte Code dynamisch ausführen (den ich per WebSend von einam anderen ESP bekommen habe)


    Generell möchte ich den Inhalt einer mir noch nicht bekannten Variable, deren Name ich als Text übermittelt bekomme, einer lokalen Variable zuweisen.


    Stattdessen:

    Code
    1. 10:07:24 tt:sendvar=localvar
    2. 10:07:24 sendvar:A:0.00
    3. 10:07:24 sendvar:B:0.00
    4. 10:07:24 sendvar:C:55.00


    Wird mein Ansinnen dadurch etwas klarer?


    Der Schlüssel ist das "%tt%" das m.E. nicht ausgewertet wird.


    LG Kaennchen

    Wenn ich gerade dabei bin ;)


    Mir ist aufgefallen, dass SUBs wohl nur innerhalb des Skriptes gelten, Variablen aber auch global, von der Konsole aus zugegriffen werden können.

    Lässt sich das anpassen? So dass ich eine SUB auch von der Konsole aus (und natürlich per Web/MQTT call) aufrufen kann?


    Danke & LG Kaennchen


    Das hatte ich schon probiert, ich möchte aber die Variable vom zweiten ESP holen, nicht dass mir der zweite ESP sie pusht.


    Aktuell versuche ich das zu realisieren, indem ich dem ersten ESP sage, er soll den zweiten anweisen, ihm die Info zu schicken.


    Ich hänge gerade daran fest, dass ich Code nicht dynamisch ausführen kann.

    Beispielconfig:

    Code
    1. >D 50
    2. tt=""
    3. gtst=11
    4. >B
    5. tt="print test1:%gtst%"
    6. =>print tt:%tt%
    7. =>%tt%
    8. =>print test2:%gtst%

    (ich poste gerne den kompletten Code, sobald ich es hinbekommen habe)


    Anstatt dem Erwarteten kommt allerdings:

    Code
    1. 13:21:34 tt:print test1:%gtst%
    2. 13:21:34 test1:%gtst%
    3. 13:21:34 test2:11.00

    Mache ich was falsch oder liegt der Fehler im System?


    LG Kaennchen

    Danke für die Infos. Ich nutze MQTT ja (eignetlich) nicht. Ich möchte nur das Ergebnis (genauer: die Antwort) eines WebSend auswerten. Trifft das dann auch noch zu?

    der aktuelle branch ist universal7 (aber den display branch hast du sicher nicht genommen, der hatte noch keine scripts)


    leider unterstützt aber der subscribe nur einen Key mit einem Punkt. (den Teil hatte ich aus rules übernommen)

    Danke für die schnelle Antwort, jetzt bin ich komplett verwirrt ;)

    Hier hab ich die Sources her: https://github.com/gemu2015/Sonoff-Tasmota/tree/displays

    (benötige den ST1106-Treiber, deshalb nutze ich deinen Fork)


    Code
    1. Generic Module
    2. Sonoff
    3. Program Version 6.6.0.3(display)
    4. Build Date & Time 2019-08-16T12:31:38
    5. Core/SDK Version 2_5_2/2.2.2-dev(c0eb301)



    Der universal7 kompiliert bei mir nicht für den ESP-01 mit irgendwelchen Fehlern - kann gleich nochmal nachsehen.


    Kann ich deinen Fork irgendwie mit den Fixes in Theos Tree zusammenbringen? Oder hast Du das ohnehin geplant?

    Ich hab's mit dem Displays Branch in Deinem Rep probiert (oder meintest Du eine andere Source?)


    Seltsam ist, dass auch der numerische Wert nicht kommt:

    Code
    1. >D
    2. TU=""
    3. TMP=0
    4. >B
    5. =>subscribe TU, stat/%topic%/RESULT,StatusSNS.TempUnit
    6. =>subscribe TMP, stat/%topic%/RESULT,StatusSNS.SI7021.Temperature
    7. >E
    8. =>print e:%TMP%:%TU%:

    Hi, ich muss jetzt auch mal was loswerden. Tolle Arbeit von gemu2015 das mit dem Scripten war höchste Zeit ;)


    Nur mit dem Subscribe komme ich nicht so ganz klar.

    Ich habe mir die HTTP-Ausgabe im xdrv_01_webserver.ino aktiviert und würde die Antworten gerne auslesen.

    Die Antwort kommt auch ganz fein in der Konsole an als:

    Code
    1. 11:14:20 CMD: websend [192.168.142.150]/cm?cmnd=status%208
    2. 11:14:20 SRC: WebConsole from 192.168.142.153
    3. 11:14:20 CMD: Group 0, Index 1, Command "WEBSEND", Data "[192.168.142.150]/cm?cmnd=status%208"
    4. 11:14:21 RSL: stat/sonoff/RESULT = {"StatusSNS":{"Time":"2019-08-16T11:14:21","Epoch":1565950461,"SI7021":{"Temperature":21.4,"Humidity":64.4},"TempUnit":"C"}}
    5. 11:14:21 RSL: stat/sonoff/RESULT = {"WebSend":"Done"}

    (ich frage einen anderen ESP ab)


    Nur irgendwie kommt mir das Ergebnis (ich versuche es für den Anfang mal mit "TempUnit") nicht in die Variable rein.

    Mache ich was falsch oder ist da ein Fehler im System?

    Code
    1. >D
    2. HTTPR=""
    3. >B
    4. =>subscribe HTTPR, stat/%topic%/RESULT,StatusSNS.TempUnit
    5. >E
    6. =>print e:%HTTPR%