Beiträge von eich

    Sorry, ich kenne dieses Rule-Problem überhaupt nicht.

    Sie sollten im nichtflüchtigen Speicher abgelegt werden, was hoffentlich auch der Fall ist.

    Vermutlich nimmst du dafür die Tasmota Webkonsole. Damit arbeite ich für die Rules nicht. Ich nutze MQTT und habe mir hierfür per Node-RED eine eigene Webkonsole erstellt. Diese gab/gibt mir bessere Möglichkeiten, Rules zu erstellen und zu testen.

    Falls du MQTT und Node-RED nutzt, kannst du meine Konsole gerne bekommen.

    Hallo Ralf123,


    Ich nutze diesen Sensor zur Füllstandsmessung in meiner Zisterne, allerdings an einem Arduino Uno. Er wird mit 5V versorgt, was auch empfehlenswert ist.

    Ich verwende die Erfassung der Schalllaufzeit, also Trig und Echo. Meine Leitung zwischen Arduino und Platine des Sensors ist etwa 15m Lang.


    Man kann diesen Sensor auch für eine serielle Kommunikation "jumpern", per Widerstandsbrücke neben den Stiften - afaik mit R27 beschriftet.


    Meine Tests mit Tasmota und einem ESP8266 Board waren ebenso erfolgreich.


    Dieser Sensor hat allerdings größere Richtkeulen als ein HC-SR04 und man kann ihn schlecht/gar nicht mit Rohren in der Richtwirkung verbessern.


    Vermutlich liegt dein Problem nicht an Hindernissen im Bereich der US-Wellen, da der Sensor, wie du schreibst, auch im ausgebauten Zustand 18cm anzeigt. Überprüfen könntest du dies aber mal. Und versorge den Sensor mit 5V - sicherheitshalber! Dazu ist dann ein Spannungsteiler für das Echo-Signal am Eingang des µC erforderlich, wie Seppel24 bereits schrieb.

    Du könntest zwei weitere events definieren, welche in event#t1 genutzt werden:

    ON event#t1 DO Backlog var2 %value%; add2 3 ENDON
    ON event#t1 DO Backlog var3 %value%; add3 6 ENDON

    Beispiel-Teillösung:

    on event#t1 do backlog var2 %value%; var3 %value%; event a2=3; event a3=6 endon

    on event#a2 do add2 %value% endon

    on event#a3 do add3 %value% endon


    Ob so dein Ziel erreicht wird, kann ich derzeit nicht einschätzen, aber die Addition sollte so erfolgen, wie du beabsichtigst.

    Ich kenne deine Hardware nicht. Trotzdem ein paar kurze Bemerkungen:

    * GIPO lässt sich vielleicht leichter aussprechen, die Dinger heißen aber GPIO (General Purpose Input Output). ;-)

    * Zwei 4,7 kOhm parallel ergibt 2,35kOhm, schalte sie für die 10kOhm besser in Reihe oder nimm einen 4,7kOhm - ist eh nur ein Pullup Widerstand.

    * Rechne mit Prellen des Reed-Kontaktes und denke an das Einstellen des softwareseitigen Entprellens!

    Da du bisher keine Reaktion erfahren hast, gehe ich mal kurz darauf ein, obwohl ich bisher die 2.5er shellies noch nicht eingesetzt habe und schon gar nicht mit tasmota geflasht habe.

    Ich setze mal die passende Konfiguration voraus und überprüfe das jetzt (noch) nicht.


    1. Ich würde es so machen wie du.


    2. Hast du statt Button mal Switch versucht?


    3. Es bleibt der Versuch eines Debugging. Baue doch dazu einfach mal in das Backlog die Speicherung in Variable ein, bspw.

    Rule3 ON button1#state DO Backlog var1 1; var2 %value%; Power1 %value%; RuleTimer1 1200 ENDON ON Rules#Timer=1 DO Power1 off ENDON


    Lasse nach der Aktivierung von Button1 mal die Werte in den Variablen anzeigen und ändere diese ggf., um ein Nichteintreffen des Ereignisses button1#state eindeutig detektieren zu können. ...


    Viel Erfolg und nicht allzuviel Frustration wünsche ich. ;-)

    Es fehlt schlicht eine Schalthysterese. Versuche es doch mal mit zwei Schaltschwellen, bspw. mem3 40, mem4 35 - oder so!

    Wenn das funktioniert und es noch weitere Probleme mit den Rules geben sollte, schaue ich mir diese Rules evtl. mal genauer an. ;-)

    Trotzdem noch ein Hinweis:

    ON event#t1 DO Backlog var2 %value%; add2 3 ENDON

    Es sollte dir klar sein, dass hier mit add2 3 zum Inhalt von var2 VOR dem Eintritt in dieses Event 3 addiert wird. %value% wirkt somit nicht.

    Deine Wortwahl lässt die Vermutung zu, dass du von der E-Technik nicht wirklich Ahnung hast. Falls das stimmt, rate ich dir erst einmal, selbst die Finger davon zu lassen und dies jemandem mit E-Technik Wissen zu überlassen.

    Antwort zu deiner Frage:

    Die shelly 1 schalten potentialfrei, d.h. deren Relais schalten über zwei Anschlüsse (fast) jeden Stromkreis, den man schalten will.

    Man kann also einen shelly 1 sehr gut als zentralen Schalter einsetzen. Ich setze mal voraus, dass du 230V schalten willst - mit bspw. 12V geht es genau so.

    Alle shellies werden mit "Dauerphase" (L1) und Nullleiter (N) betrieben. Der zentrale shelly erhält die zu schaltende Spannung (230V) an der I-Klemme (Input) und leitet diese per O-Klemme (Output) an die I-Klemmen der anderen shellies. Die O-Klemmen der "Einzelshellies" werden mit den L1 Anschlüssen der Lampen verbunden. So werden alle shellies dauerhaft betrieben und die letzten Schaltzustände bleiben erhalten, wenn der zentrale shelly alle Lampen ausschaltet.

    Hinweise:

    1. Die Klemmen I und O sind afaik schlicht mit den Relaisschalterklemmen verbunden und müssten auch vertauschbar sein - aber nur bei den shelly 1, die potentialfrei schalten.

    2. Sehr wichtig: Der zentrale shelly schaltet den Gesamtstrom für alle Lampen. Es ist also darauf zu achten, dass die Gesamtstromstärke nicht zu hoch wird.

    Falls du die Tasmota Rules meinst, ja das ginge. Falls du diese nicht meinst, übergehe meine folgenden Erklärungen bitte!

    Ich kenne diese Sonoff Geräte nicht, kann speziell dazu somit keine Aussage tätigen.


    Ich würde bei häufigen Änderungen statt der mem- die var-Variablen einsetzen, weil für erstere der nichtflüchtige Speicher verwendet wird, der weniger Schreibzugriffe als der RAM verträgt. Falls die Änderungen relativ selten sind und du insbesondere bei Stromausfall den letzten Zustand brauchst, sind die mem-Variablen angemessen.


    Verfahren:

    Immer wenn auf den entsprechenden Ausgang etwas geschrieben wird, kann der Ausgabewert in eine Variable kopiert werden.

    Code
    on power1#state do var1 %value% endon

    Setze anstelle von power1 den von dir gewünschten Ausgang ein! var1 kannst du durch jede andere Variable (auch mem) ersetzen. Mit power1#state wird jeder Schreibzugriff auf den Ausgang erfasst. Somit wird dieser Ausgabewert in var1 gespeichert und kann per %var1% an anderer Stelle genutzt werden.

    %...% ist der Wertoperator, %value% ist der Parameterwert zum Trigger, hier also der Ausgabewert an power1. Ein Ausdruck %power1% ist nach meinen Erfahrungen in den Tasmota Rules nicht definiert.

    Was soll "delay10" bewirken?

    delay 10 (mit Leerzeichen) kenne ich. Dies würde 1s verzögern, weil der Parameter hinter delay die Anzahl an 100ms angibt.

    Wenn überhaupt, kann nur deine zweite Variante wie beabsichtigt funktionieren, falls du dort "delay 100" einsetzt.


    Leerzeichen (white spaces) sind oft, aber nicht immer, notwendig. Manchmal können sie auch weggelassen werden:

    on power3#state=OFF do backlog delay 100;power3 ON endon


    ;)


    Vielleicht ist diese Stelle auch eine geeignete Anregung für dich. Ich würde delay vermeiden, wenn möglich:

    https://tasmota.github.io/docs…e-delayed-auto-off-switch

    Na bitte.

    Das passt doch zu meinen Erklärungen - und es ist durchaus erträglich.

    An einer einzigen Stelle mal in einer solch kleinen Firmware D1 statt Relais zu verwenden, ist tolerierbar.

    Sogar meine Kommentare sind im Quellcode. Das ist gut, damit du verstehend nachsehen kannst, wenn mal noch eine Änderung angestrebt ist.

    Servo ist auch nicht zweckentfremdet, da du das Relais per digitalWrite(...) steuerst.

    Es freut mich, dass du zufrieden bist. Ich bin es letztlich auch. :)

    Ich kenne halt LED als Light Emitting Diode, Halbleiterbauelement mit Sperrschicht und zur Wellenlänge passende Dotierungen (Verunreinigungen).

    Den ganzen Farbschnickschnack habe ich nicht und konsumiere nicht an der Front.

    Unterschiedliche LED, mal von den Farben abgesehen, kann ich mir nur vorstellen im Zusammenhang mit der Schaltelektronik.

    Damit habe ich keine Erfahrungen. Trotzdem interessiert es mich.

    Wie verhalten sich die Feuchtigkeitswerte, wenn du die Relais sukzessive ausschaltest?

    Da 1 Wire genutzt wird, ist ein Pullup Resistor erforderlich. Den hast du hoffentlich eingebaut.

    Evtl. wäre der entsprechende Schaltplan(auszug) nützlich.

    Wenn du genauso sicher wie bei einer Lampe erkennen willst, ob das Tor offen oder zu ist, musst du entweder

    • hingehen und nachsehen ;-) oder
    • Endschalter abfragen

    Die Endschalter müssten elektronisch sicher mit je einem Eingang des µC Boards verbunden werden. Du kannst selbstverständlich auch einen zusätzlichen µC am Tor einbauen, der die Tor-Zustände überwacht und diese per WLAN Kommunikation mitteilt.

    Um Obiges elektronisch sicher zu bewerkstelligen, sind Kenntnisse über die Endschalter-Beschaltung erforderlich. Da kann ich nicht mit Erfahrung aufwarten, weil ich solchen Komfort nicht besitze. :D

    Nur für den Fall, dass es zu aufwändig wäre, die Endschalter anzuzapfen, sind zwei zusätzliche Endschalter/Lichtschranken als Sensoren denkbar. Wenn du dann noch relativ sicher erfassen willst, ob das Tor gerade auf- oder zufährt, sind ein oder zwei weitere solcher Schalter nützlich, mit denen die Fahrtrichtung des Tors recht sicher ermittelt werden kann. Ohne solche (zusätzlichen) Schalter ist alles Interpretationssache per Software - und das kann auch mal schiefgehen.

    Im Ernst, Abzweigdosen einsparende Installationen sind echter Bullshit.

    Wenn es eine Mietwohnung ist, siehe Hinweise Helfinger und Athen2004.

    Falls es dein Haus ist, solltest du sukzessive Abzweigdosen einbauen!

    Oft ist die Infrastruktur entscheidend für die Servicefreundlichkeit. ;-)