Hi.
freilich geht das ansteueren des Display auch mit MQTT oder http request
Um Dein Beispiel aufzugreifen, dann kommt als Befehl stat LED1 eben Displaytext<whatever>
Jeder Befehl der in der Konsole geht, geht auch über MQTT oder http request
Hi.
freilich geht das ansteueren des Display auch mit MQTT oder http request
Um Dein Beispiel aufzugreifen, dann kommt als Befehl stat LED1 eben Displaytext<whatever>
Jeder Befehl der in der Konsole geht, geht auch über MQTT oder http request
Ja, passt so.
Für Rule1 wäre ONCE nicht unbedingt notwendig. Wenn Rule2 deaktiviert passiert ja nix wenn sie erneut deaktiviert wird.
Aber solange du in Rule1 nix zusätzliches hast, das mit dem ONCE kollidiert reduziert das natürlich Trigger-Ausführungen.
Mich wundert etwas, dass Rule2 dennoch auf State=ON steht, obwohl im Moment Watt=0, sowie Power=OFF ist.
Hast du doch so vorgegeben:
on Energy#Power<8 do rule2 1
Und wenn der Power off ist bliebt das auch so weil ja die Leistung solange niemals größer-gleich 8 wird und damit die Rule1 wieder greift (ONCE !!!)
Moin,
mal mit dem Template versucht?
{"NAME":"PA-GEH-01SW2","GPIO":[0,0,0,32,2688,2656,0,0,2624,320,224,0,0,0],"FLAG":0,"BASE":18}
Moin.
In dem Fall musst Du Rule2 auf ONCE setzten, damit der Trigger energy#power<8 nur einmal ausgeführt wird und dann erst wieder wenn energy#power mal über 8 war. Sonst wird ständig nachgetriggert und der ruletimer neu gestartet:
rule2 5
Der MagnetSchalter hängt GPIO14 und du hast den Switch 3 auf Switchmode1 gsetellt. Soweit passt das. Falls invertiert einfach den Switchmode3 2 verwenden.
Was passiert den wenn du den GPIO14 mit ner Drahtbrücke auf GND legst?
Hi.
ich denk mal das größere Problem ist ein sauberes EIN Signal zu erkennen gerade bei langen Leitungen.
Deshalb würd ich es mit einem PullUp versuchen. Also VCC über den 10K an den GPIO und der Magnetschalter schaltet dann den GPIO auf GND.
Ach ja - Im Falle von Pull-Down kann ich da eigentlich den Widerstand einfach zwischen die beiden Leitungen vom Magnetschalter klemmen,
denn das ist doch dann wie GPIO gegen GND oder ist das Unsinn?
So würde der 10K weder Pullup noch Pulldown Sinn machen. Du schaltest da ja den Widerstand patallel zum Magnetschater und "brückst" den somit.
Nachdem ich da zufällig beim freundlichen Chinesen eine 4x4 Folientatstatur für unter 2€ gesehen hab, hab ich mir das Teil mal bestellt mit dem Hintergrund das mit Tasmota an den Start zu bekommen.
Die Idee war die Tastenmatrix über Widerstände abzufragen und über den Analog Eingang auszuwerten. (Siehe Schaltbild und Foto)
Dazu muss im Tasmota-Binarie die VCC Auswertung auskommentiert werden:
#ifdef USE_ADC_VCC
#undef USE_ADC_VCC
Damit werden am GPIO17 die ADC-Input Varianten auswählbar, ich hab hier einfach "ADC input" verwendet.
Die Tastatur mit 5V vom Wemos versorgen.
Dann noch eine Rule die die Tastenwerte abfragt:
rule1
on rules#timer=1 do var2 X endon
on analog#a0>999 do var1 1 break
on analog#a0>800 do var1 2 break
on analog#a0>500 do var1 3 break
on analog#a0>400 do var1 A break
on analog#a0>290 do var1 4 break
on analog#a0>250 do var1 5 break
on analog#a0>215 do var1 6 break
on analog#a0>190 do var1 B break
on analog#a0>160 do var1 7 break
on analog#a0>145 do var1 8 break
on analog#a0>130 do var1 9 break
on analog#a0>120 do var1 C break
on analog#a0>110 do var1 * break
on analog#a0>105 do var1 0 break
on analog#a0>99 do var1 # break
on analog#a0>90 do var1 D endon
on var1#state$!%var2% do backlog ruletimer1 3; var2 %value%; ledpower 1; ledpower 0 endon
Alles anzeigen
Damit die Tasten nicht prellen ist eine Timeout von 3 Sekunden eingebaut bevor dieselbe Taste erneut auslöst.
In der letzten Zeile kann man den Wert z.B. per publish übertragen. Ich lasse einfach mal die BuildIn LED (GPIO2) als Bestätigung blinken.
Kann natürlich individualisiert werden indem das mit anhängt für jede Taste:
on var2#state=123..ABCD do <was auch immer> endon
oder am besten in eine extra Rule:
rule2
on var2#state=1 do publish cmnd/DECKENFLUTER/Power1 1 break
on var2#state=2 do publish cmnd/DECKENFLUTER/Power1 0 break
on var2#state=3 do publish cmnd/Pflanzenleuchte/Power1 1 break
on var2#state=4 do publish cmnd/Pflanzenleuchte/Power1 0 break
on var2#state=A do backlog publish cmnd/DECKENFLUTER/Power1 1; publish cmnd/Pflanzenleuchte/Power1 1 break
on var2#state=B do backlog publish cmnd/DECKENFLUTER/Power1 0; publish cmnd/Pflanzenleuchte/Power1 0 endon
Zugegeben, die Reaktionsgeschwindigkeit ist nicht die schnellste. Ich denk mal als echtes Codeschloss macht das wenig Sinn aber wenn man viele Tastenbefehle braucht ist das eine echte günstige Option.
Moin.
Wurzel3 brauchst nur wenn du beim messen auch mit einer Strangspannung von 380 bzw 400V arbeitest.
Nachdem du aber bei allen 3 Phasen mit Leiterspannung 230V misst ist Wurzel3 (Verhältnis von 380V zu 230V) ja schon berücksichtigt.
Moin.
Was mich schon irritiert:
Beim dem zweiten Modul habe ich eine Wechselschaltung:
Wenn jemand den Taster 1 oder 2 drückt so wird immer das Relais1 eingeschaltet oder ausgeschaltet.
Wenn jemand den Taster 1 oder 2 betätigt und damit das Licht einschaltet dann soll ein Timer mit X min. gestartet werden und das Licht wieder ausschalten.
Wenn jemand den Taster für mehr als 5 Sec hält dann bleibt das Licht immer an bis jemand wieder den Taster betätigt.
Du hast eine Wechselschaltung.
Mit Schaltern !! Sprichst aber von Tastern?
Was ist den nun vorhanden? Taster oder Schalter? Bei ner Wechselschaltung geh ich von Schaltern aus. Wie willst Du damit eine 5 Sek. Tastfunktion realisieren?
EDIT:
Mit "button#state" funktioniert vermutlich deshalb nicht weil dein GPIO vermutlich auch als Switch (schalter) deklariert ist und nicht als Button (taster).
Im Prinzip müsstest du auf ne Tasterschaltung umbauen, was von der Verdrahtung her kein Problem wäre.
Moin.
andere Timer stören nicht. Es werden nur die in den Rule verwendet die auch auf "Regel" stehen und in den Rule auch ausgewertet werden.
Du hättest testhalbe ja auch mal andere Zeiten einstellen können, ansonsten erst ab heute 09:00h,
Hi.
In den Einstellungen -> Zeitplan Einstellungen zwei Timer konfigurieren und die Zeitpläne auch aktivieren.
Timer1 09:00 (ein) auf Regel stellen
Timer2 21:00 (aus) auf Regel stellen
In der Konsole folgendes Copy & Paste eingeben:
rule1
on clock#timer=1 do backlog rule2 1; power1 1; ruletimer1 600 endon
on clock#timer=2 do backlog rule2 0; power1 0; ruletimer0 0 endon
rule2
on rules#timer=1 do backlog power1 0; ruletimer2 3600 endon
on rules#timer=2 do backlog power1 1; ruletimer1 600 endon
rule1 1
Gitpod hab ich jetzt auch gesehen, müßte ich mr mal anschauen ob das wirklich einfacher ist
Am einfachsten ist der Benzino Kompiler.
Der gitpod ist etwas aufwendiger aber dafür lässt sich dort der Quellcode der Dateien bearbeiten wie im Offline Compiler.
Ebenso die user_config_override.h
Spart einem die Mühe alles erst installieren zu müssen.
Hab jetzt VScode runtergeladen um selbst zu kompilieren, aber .... puhhh .
Warum nimmst du nicht den online kompiler vom Gitpod Master Release?
Schau mal meine Signatur
Was sagt den der i2cscan in der Konsole?
EDIT:
Ach ja, zwei Geräte des selben Typs, also 2x BMP oder 2x BH gehen nicht an Tasmota.
Der Treiber erkennt immer nur ein gerät des gleichen Typs.
Und, muss man beide I2C Devices am gleichen GPIO-Paar verwenden?
Hab ich noch nie getestet aber ich denk mal du kannst auch meherere GPIO als I2C konfigurieren. Ob sich da gleiche Adressen stören wäre interessant zu testen.
Also SDA von beiden Devices an den GIPO, welcher auf "IC2 SDA" eingestellt ist, analog für SDL.
Korrekt, oder muss noch mehr beachtet werden bei der Verkabelung?
(Aber das hat ja nicht funktioniert)
Mehr muss nicht beachtet werden bei der Verkabelung. Nur die beiden Bus-Adern SDA und SDL unbd natürlich braucht der Sensor die passende Spannungsversorgung!
Was natürlich am wichtigsten ist:
Du brauchst ein Binary bei dem Deine Sensoren-Treiber auch mit einkomopiliert sind. Die Sensor.bin z.B oder eben eine slebst kompilierte.
Hi ...
eine ähnlich Frage gabs neulich erst im "Füllstand Öltank messen" - Thread:
Hi
Hast du denn mit setoption15 1
Den Modus auf Steuerung via pwm Befehl umgestellt?
Hi.
So wie Du das gezeichnet hast darfst du das auf KEINEN FALL machen ! Denn die derzeitge Ausschaltposition des Wechselschalters würde keine Kurzschluss zwischen Phase und Neutraleiter erzeugen.
Leider geht das mit dem Schalter so nicht, denn in der Wechselschalter bestromt in einer Schaltposition IMMER die Kontrolleuchte, egal wie der Schaltausgang des Shelly's ist.
EDIT:
zu eich Vorschlag:
Das würde gehen, dazu darf die Glimmelampe keinen Kontakt mehr zu dem Anschluß oben rechts haben !!!
Hi.
Ruletimer werden nur in den Rule verwendet und hab nix mit den Timer zu tun die man im WebIF einstellen kann, falls Du das meinst:
RuleTimer<x> | Up to eight timers to be used as countdown event (x = 1..8 ) 0..65535 = set countdown rule timer in secondsRuleTimer0 0 = stops and clear all timer simultaneously |
Wenn der ein Ruletimer abläuft wird je nach Ruletimer der Trigger rule#timer=<1...8> getriggert:
Ruletimer1 ergibt den Trigger rules#timer=1
Ruletimer2 ergint den Trigger rules#timer=2
usw.
siehe: https://tasmota.github.io/docs/Commands/#rules
Das was der Event macht könnte auch mit in die Befehlskette von AM2301#Humidity mit reinschreiben aber ich hab das um Zeichen zu sparen in den Event ausgelagert.
Wird in unserer Rule2 ein Trigger: AM2301#Humidity ausgeführt werde zum einen die LED angesteuert und der Event event x ausgeführt, der Zum einen die Rule2 deaktiviert um nicht dauernd Mess-Loops zu erzeugen und zum anderen wird der Ruletimer1 gestarten mit dem Zeitwert der in var1 hinterlegt ist. Ist dann der Ruletimer erneut abgelauf, wird Rule2 aktiviert, in Rule2 der Trigger: AM2301#Humidity ausgeführt und zum einen die LED angesteuert und der Event event x ausgeführt. "Event x" deaktiviert dann wieder Rule2 und startet den Ruletimer für den nächsten Mess-Loop nach Ablauf des Timers usw. usw.
Du kannst ja mal zum spielen var1 auf 1 setzen ... das funktioniert schon auch, nur wirst zu sehen wie die dauernden Mess-Loops die die Konsole und auch den MQTT (falls aktiviert) mit Ereignissmeldungen zumüllt.