Beiträge von gemu2015

    Hallo kaennchen,


    habe jetzt erst verstanden was du da machen willst.

    du forderst mit websend Werte eines anderen Tasmota an und hast den code zum Websend Response im Webserver aktiviert.


    das ist eine gute Idee!

    es braucht dabei keine scripts auf der anderen Seite!


    habe das jetzt aber etwas einfacher gelöst.


    du kannst jetzt 3 stufige MQTTs abfragen


    die RESULT Meldungen kommen in Sektion >E an


    temp=StatusSNS#BME280#Temperature

    ->print tmp=%temp%


    neue Version auf Github (files scripter und Webserver)


    VG Gerhard

    ja da läuft auch gerade eine ähnliche Diskussion in Tasmota chats. Es gibt inzwischen so viele Geräte das sie die Übersicht verlieren.

    dort wird ja bisher versucht alle templates in der software unterzubringen. dann kommen aber noch zig Sonderwünsche die bisher mit Setoptions erledigt werden müssen.


    eigentlich bräuchte man nur einen default setup, den dann jeder aus einem repo ersetzen und editieren kann. das würde jede Menge Platz im Kode sparen.


    am idealsten natürlich über ein komfortables Webinterface das aber auch einiges an Kode verbrauchen würde.


    ich denke mal für diesen Treiber sollte es reichen die Scripts aus einem Fundus per copy and paste einzusetzen und bei Bedarf anzupassen.


    was man natürlich bräuchte wäre ein Tutorial wie die Scripte zu interpretieren und zu modifizieren sind.


    und einen Ort, Datei in der jeder eventuell Definitionen von Zählern addieren kann, damit man irgendwann nicht mehr selbst frickeln muss sondern für jeden Zähler eine Vorlage hat.



    die alte Lösung über #define lasse ich noch einige Zeit drin, da einige Leute daran gewöhnt sind und andere unbedingt noch rules verwenden wollen.


    ausserdem gibt es einige Spezialitäten die noch nicht per Script einstellbar sind wie z.B. das Senden von Anforderungs Strings (manche Zähler brauchen regelmäßig eine bestimmte Sequenz um überhaupt Daten zu senden)

    wenn das eine TELE message ist kommt sie nur in Sektor T rein. dort muss pwr=ENERY#Power funktionieren (auf Groß klein Schreibung achten im Gegensatz zu rules)

    EVENTS also RESULT etc kommen in Sektor E rein.


    dann mit if upd[pwr] oder chg[pwr] abfragen. das ist dann equivalent zu rule on ... do

    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.

    :thumbup:

    Vielen Dank. Display reagiert auf die DisplayMode's.


    Kann diese SH1106 Unterstützung nicht irgndwie in das Release migiert werden?


    Leider ist Theo Arends da etwas störrisch. Habe eine ganze Sammlung von Display Treibern die er erst mal nicht integrieren will.


    Grund ist dass ich dazu einen kompletten Überbau über alle Treiber gebaut habe damit alle Displays mit derselben Logic und mit allen Fonts angesteuert werden können. Dazu musste ich allerdings die ursprünglichen Treiber von Adafruit etc anpassen. Theo Arends würde lieber bei den Original Treibern bleiben.

    Hallo ecki945


    mit original Tasmota geht das sh1106 gar nicht.


    mit meinem Fork geht es wenn du diese defines benutzt (am besten die ganz neue Version universal7)


    #define USE_DISPLAY

    #define USE_I2C

    #define SHOW_SPLASH // damit wird eine Einschaltmeldung gezeigt

    #define USE_DISPLAY_SH1106


    benutzt und die richtigen i2c Anschlüsse definierst.


    danach das Displaymodel in der Konsole abfragen , sollte 7 sein, sonst aktiv umschalten


    danach sollte das Display die Einschaltmeldung anzeigen

    sunburstc


    es braucht einen default Zähler in der Definition damit die Initialisierung auch ohne script klappt.


    der Vorteil der script Version ist auch, wenn etwas schief läuft disabled Tasmota das script und der Treiber nimmt wieder die default Definition


    und natürlich muss #define USE_SML_M gesetzt sein damit der Treiber überhaupt kompiliert wird.


    das Rücksetzen der Zählerstände beim Neustart des Scripts ist behoben. (neue Version auf Github)


    Die Watchdog Fehler beim direkt MQTT können auftreten wenn zu viele Ereignisse hintereinander kommen, oder der MQTT Server nicht reagiert.


    Bei mir funktioniert das, hängt aber sehr vom individuellen Zähler ab. Versuchs erst mal nur mit einer Zeile.


    hast du das mit einem counter versucht?


    direkt MQTT funktioniert nicht mit einem Counter und hängt sich auf wenn der counter im IRQ mode ist.

    dann wird nämlich der MQTT transfer im Interrupt aufgerufen was immer schief geht.

    giulup


    die Definition ist schon richtig. Hast du meine universal7 genommen oder nur den Treiber in eine Tasmota Installation kopiert?

    du brauchst auf jeden Fall auch die modifizierte Tasmota_Serial LIB aus meinem Fork.


    hast du mal die beiden Inputs vertauscht? Vielleicht ist ja bei deinen Kopplern was nicht in Ordnung.

    sunburstc


    habe meine universal7 auf den heutigen Stand von Tasmota dev gebracht. sollte jetzt fehlerfrei kompilieren.


    giulup


    du must schon etwas genauer beschreiben was du erreichen willst. normalerweise hängt der erste SML sensor am HARDWARE serial pin 3, alle weiteren und auch counter hängen an anderen pins, bei denen die serielle Schnittstelle per software emuliert wird.


    URBANsUNITED


    wenn ich das richtig verstanden habe, hast du ausser iobroker noch einen 2. MQTT server auf dem die Daten eigentlich landen sollen.

    warum schickst du nicht die Tasmota Daten direkt dorthin ? (indem du diesen Server statt iobroker in Tasmota definierst)



    an alle user dieses Treibers:


    kann allen nur empfehlen die neue Version mit der script Definition zu verwenden. die per source code definierten Zähler werde ich nicht weiter unterstützen.

    Wolfi

    sunburstc


    ok, dann liegt es vielleicht am Prellen, habe jetzt eine IRQ Entprellung eingebaut.


    IRQ mode : eine negative Zahl schaltet auf IRQ mode und die Zahl ist die Entprellzeit in Millisekunden.


    wenn es immer noch abstürzt schickt mir bitte eine Definition mit der der Fehler auftritt damit ich den Fehler suchen kann.


    bei mir funktioniert es einwandfrei.



    URBANsUNITED


    die Speicherung erfolgte bisher nur bei gewolltem Neustart. Habe jetzt analog zum Tasmota counter eine Speicherung um Mitternacht hinzugefügt.

    die counter werden automatisch gespeichert (jede Sekunde) weil sie teil der Tasmota Settings sind (hast du SaveData an?)


    blocked loop bedeutet dass die software mehrere Sekunden in einem Loop feststeckt


    was meinst du mit MQTT abgefangen?

    was von iobroker willst du denn ersetzen?

    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)

    hallo sunburst


    da man mir nachsagt ich könne Anfängern nichts richtig erklären da ich viel zu viel voraussetze müsste das am besten gerade ein Anfänger mal versuchen.


    als Start kann man ja die Einführung im Source code selbst hernehmen.


    durch die neue Möglichkeit die Zähler im Script zu definieren entfällt das mühsame neu kompilieren nach jeder Änderung.


    direkt nach dem Abspeichern des Script werden alle Änderungen sofort übernommen und der Treiber neu gestartet.


    Leider weigert sich Theo Arends diesen Treiber in Tasmota zu übernehmen, da er behauptet das könne man nur in Deutschland gebrauchen.


    kann mir aber vorstellen dass solche IR Interfaces auch in allen möglichen zumindest europäischen Ländern gebräuchlich sind.


    bezüglich IRQ countern hat ja auch Wolfi Probleme. bei mir stürzt aber nix ab.


    vielleicht könnt ihr mir ja mal eure Definitionen schicken (am besten nach dem ihr auf script umgestellt habt)