Beiträge von kaennchen

    Hallo zusammen,

    nachdem ich es einfach nicht hinbekomme, die Reed-Kontakte meines Garagentors auszulesen, ohne dass die vorhandene (billig-)Hardware des Tors völlig abdreht, möchte ich die Entfernung des Schlittens auslesen, um so den Zustand abzufragen. Leider ist es etwas über 2 Meter, sodass der VL53L0X nicht infrage kommt. Also sollte ein VL53L1X her. Für den gibt es zwar Arduino-Treiber, aber (noch) keinen für Tasmota, der im Standard (oder gemu-Fork) einbindbar wäre. Hat sich schon jemand die Mühe gemacht, da etwas zu entwickeln, das ich nur nicht finden konnte? (Besonders wichtig wäre mir die ROI-Konfiguration) oder würde das eventuell angehen wollen?

    LG

    Kännchen

    Bei mir jetzt auch merkwürdig. Ich hab die Zuweisung in >E mal als erstes Statement eingetragen und jetzt geht's. Zum Test wieder nach unten (in >E gibt's bei mir noch mehr) gesetzt und es geht immernoch. Ich achte mal drauf und falls mir noch was auffällt, Gebe ich Laut.

    Danke für Deine Mühe.

    LG

    kaennchen

    Ha!

    Geht nicht. Also wieder nach oben und geht.

    Hier wird es nicht übernommen (ich verwende anstatt IPAddress den FriendlyName)

    Code
    >E
    btn=pin[2]
    if btn==1
    tmr+=1
    endif
    hn=FriendlyName1

    Und hier funktioniert es:

    Code
    >E
    hn=FriendlyName1
    btn=pin[2]
    if btn==1
    tmr+=1
    endif

    Bei mir jetzt auch merkwürdig. Ich hab die Zuweisung in >E mal als erstes Statement eingetragen und jetzt geht's. Zum Test wieder nach unten (in >E gibt's bei mir noch mehr) gesetzt und es geht immernoch. Ich achte mal drauf und falls mir noch was auffällt, Gebe ich Laut.

    Danke für Deine Mühe.

    LG

    kaennchen

    Das hört sich super an, aber irgendwie funktioniert es mit der Ausgabe nicht so richtig:


    Mein Code (Schnipsel):

    Code
    >D 30
    hn="*"
    
    >B
    +>IPAddress
    
    >E
    hn=IPAddress1
    =>print %hn%

    Und die Ausgabe:

    Code
    10:04:15 Script: nv=21, tv=3, vns=114, ram=519
    10:04:15  start
    10:04:15 MQT: qiot/things/admin/gttaster1/RESULT = {"IPAddress1":"(IP unset) (192.168.142.190)"}
    10:04:15  *

    Danke, funktioniert prima!

    Sag mal, gibt es eigentlich eine "Geheimvariable" in der der Hostname oder die aktuelle IP enthalten ist?

    Mist, ich hänge schon wieder...

    Ich habe ein Relais (Relay1/D6) und möchte, dass es NICHT über meine zwei Schalter (Switch1/D8, Switch2/D0) gesteuert wird, weil es per Script geschaltet werden soll.

    Ich habe nun (IMO) fast alles probiert, ButtonTopic auf "xyz" gesetzt usw. und so langsam glaube ich, dass das entkoppeln von Switch/Relais nur funktioniert, wenn der Wemos per MQTT verbunden ist.

    Kann das jemand bestätigen?

    Perfekt, so funktioniert es. Ich musste es allerdings in >F packen, weil da kein Event generiert wird.

    Danke!

    Hallo zusammen,

    ich hab gelesen, dass es so gut wie nichts gibt, was mit Rules möglich wäre, aber mit Scripting nicht. Vielleicht kann mir wer helfen, dann liegt es nämlich vermutlich an mir... ; )

    Ich möchte einen Button-Press, der nur sehr kurz dauert, abfangen. Wenn ich das Ganze über die Zuweisung an eine Variable variable=sw[1] und onchg[variable] mache, ist der Wert nicht mehr vorhanden (weil der Druck auf den Button - in diesem Fall ein Reed-Kontakt - zu kurz dauert).

    In Rules wäre das dann vermutlich "on buttonX#state"; eine HA-Lösung habe ich nicht, also kann ich das auch dort nicht per MQTT verarbeiten. Aber im Scripting müsste das doch irgendwie gehen. Vielleicht in >E ? Wenn ja, wie?

    Liebe Grüße,

    Kännchen

    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
    sb(svar s n) = substring - retrieve a substring of n characters of svar starting at s. S may be negative.
    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
    10:07:24  tt:sendvar=localvar
    10:07:24  sendvar:A:0.00
    10:07:24  sendvar:B:0.00
    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
    >D 50
    tt=""
    gtst=11
    
    
    >B
    tt="print test1:%gtst%"
    =>print tt:%tt%
    =>%tt%
    =>print test2:%gtst%

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

    Anstatt dem Erwarteten kommt allerdings:

    Code
    13:21:34  tt:print test1:%gtst%
    13:21:34  test1:%gtst%
    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
    Generic Module
    Sonoff
    Program Version	6.6.0.3(display)
    Build Date & Time	2019-08-16T12:31:38
    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
    >D
    TU=""
    TMP=0
    
    >B
    =>subscribe TU, stat/%topic%/RESULT,StatusSNS.TempUnit
    =>subscribe TMP, stat/%topic%/RESULT,StatusSNS.SI7021.Temperature
    
    >E
    =>print e:%TMP%:%TU%: