Nodemcu mit Tasmota und 2-Relais

Begonnen von ghostrider, 25 November 2020, 14:16:30

Vorheriges Thema - Nächstes Thema

ghostrider

Hallo,
habe folgendes Problem und zwar habe ich einen Nodemcu mit Tasmota geflasht und in Fhem über MQTT eingebunden.
Die 2 Relais lassen sich ansteuern.

Nun möchte ich 2 Buttons am Board anschließen welche folgendes schalten.

Button1- > Relay1 an und Relay2 an

Button 2 -> Relay 1 an und Relay 2 aus

Wenn ich einen Button konfiguriere schaltet Button1 Relay1 Button 2 Relay2 usw.

Wie bekomme ich das getrennt ?

Ich habe nun schon über Stunden Sachen durchgelesen doch irgendwie komme ich damit nicht klar.
Auch das Tasmota Wiki mit den ganzen  verschiedenen Befehlen für die Schalter...

Vielleicht kann jemand helfen...

Beta-User

Das Trennen sollte mit SetOption1 bzw. 11 gehen, siehe https://tasmota.github.io/docs/Buttons-and-Switches/#changing-default-functionality.

Vermutlich brauchst du dann für den Rest rules, die basics dazu sollten hier stehen: https://tasmota.github.io/docs/Rules/#button-single-press-double-press-and-hold

ABER: Mir kommt das Anwendungsszenario irgendwie unvollständig vor. Willst du wirklich immer einschalten? Oder irgendwie auch wieder (teilweise?) aus?
Dann brauchst du irgendeine erweiterte Logik oder zumindest weitere Tastendrücke+rules...

Falls das irgendwie dafür gedacht ist, einen Rollladen zu steuern: Dafür gibt es interne Verriegelungsmechanismen und auch eine Kalibirerung innerhalb der Tasmota-Firmware ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

ghostrider

Hi,

ja ich möchte damit mein Rolltor ansteuern Button1 hoch 2 Runter und evtl. einen 3. für Stop.

Ich hatt gelesen das ich die Relais hardwaremäßig verriegel also quasi 1. Relai an das 2. Anschließe und so erst Relai 1. Einschalte und somit das 2. mit Strom versorgt wird und anschließend das 2. dann entsprechend der Laufrichtung geschaltet werden muss?

Wenn das noch einfacher geht wäre das natürlich genial.
Wichtig ist nur das nicht irgendwas passiert und der Antrieb abraucht, dann wirds teuer denn es ist ein 3 Phasen Industrierolltor was über 230 V Impulse über Relais angesteuert wird.

rr725

Sieh dir mal die tasmota Option interlock an. Damit kann man relais gegeneinander verriegeln

ghostrider

Your device must have at least two relays (see Shutters with Sonoff Dual R2). Only available in normal tasmota.bin!

Habe mir das grade mal angeschaut, stolpere ich gleich über diesesn Satz

Ich habe trasmota-sensors.bin geflasht weil ich noch einen BMP280 verbaut habe.

Also kann ich das so vergessen   ? Mit der normalen tasmota.bin wurde mir der Sensor nicht angezeigt :(

rr725

Ist doch kein Problem.....die Meldung sagt dir doch, dass du keine relais angelegt hast

ghostrider

Es ist die Tasmonta Sensors.bin geflasht.

Ich habe 2 Relais angeschlossen und einen BMP280. Die Relais lassen sich ganz normal schalten die Temperatur und der Druck wird angzeigt.

Wenn ich nur die Tasmota.bin flashe funktioniert der TempSensor nicht mehr. Ich kann sie zwar kofigurieren aber es werden keine Werte angezeigt.

Im WIKI Shutters steht:
Your device must have at least two relays (see Shutters with Sonoff Dual R2). Only available in normal tasmota.bin!

Also funktioniert das mit meiner tasmota-sensors.bin nicht oder sehe ich das falsch.

Beta-User

Es geht vermutlich um die shutter-Funktionalität. Die braucht wg. der Timer etc.wohl etwas Speicher (wie der BME-Code), so dass es eben in der "normalen" nur eine der beiden Funktionalitäten gibt.
Ergo: Entscheiden, welche, zwei ESP nehmen oder selber compilieren (die firmware ist so konzipiert, dass sie auch auf "kleine" paßt; die meisten ESP haben aber mehr Speicher)...

Würde mal empfehlen, das mit der shutter-Funktionalität erst mal auf einem anderen ESP anzusehen, weil es uU. schon Sinn macht, eine HW-seitige Verriegelung vorzusehen. Ob die aber mit Tasmota-interner Funktionalität (ohne rules/interlock etc) abgebildet werden kann, kann man doch vorher mal rausfieseln?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

rr725

Ist alles mit pulsetime und interlock zu erschlagen

Gisbert

Hallo ghostrider,

du hast uns noch nicht vollständig über deine Hardware aufgeklärt, außer über die Nodemcu, die du einsetzt.

Wenn du separate, externe Relais hast, kannst du sie hardwaremäßig gegeneinander verriegeln; das ist sicherer als eine softwaremäßige Lösung.
Für die hardwaremäßige Verriegelung gibt es mehrere Varianten, noch ein Hinweis, die Relais sollten bei Nichtbenutzung in der Position stehen, in der sie keine Energie benötigen.
Wir gehen im Beispiel von NC (normally closed) als energielose Position aus.
Relais1 schaltet nur Strom an oder aus:

  • NC: kein Strom
  • NO: Strom
NO des Relais 1 wird mit dem Eingang von Relais2 verbunden, das für das Hoch- oder Runterfahren zuständig ist, z.B. so:

  • NC: Runter
  • NO: Hoch
Dann noch eine Frage zu deinem Rolltor. Ich kenne da nur 1-Knopf-Bedienungen: hoch-stop-runter usw., bei jedem Knopfdruck wird gestoppt, wenn in Fahrt, oder in Gegenrichtung gefahren, wenn in Endposition.

Hast du tatsächlich für jede Fahrtrichtung ein separates Relais? Bitte mehr Input zu deiner Hardware.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Papa Romeo

Zitat von: Gisbert am 26 November 2020, 10:13:36
Relais1 schaltet nur Strom an oder aus:

  • NC: kein Strom
  • NO: Strom
NO des Relais 1 wird mit dem Eingang von Relais2 verbunden, das für das Hoch- oder Runterfahren zuständig ist, z.B. so:

  • NC: Runter
  • NO: Hoch

...hier eine Veranschaulichung oder Verdrahtungsbeispiel zur hardwaremässigen Verriegelung:

https://forum.fhem.de/index.php/topic,88615.msg810907.html#msg810907

LG

Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

ghostrider

#11
Zitat von: Gisbert am 26 November 2020, 10:13:36
Hallo ghostrider,

du hast uns noch nicht vollständig über deine Hardware aufgeklärt, außer über die Nodemcu, die du einsetzt.

Wenn du separate, externe Relais hast, kannst du sie hardwaremäßig gegeneinander verriegeln; das ist sicherer als eine softwaremäßige Lösung.
Für die hardwaremäßige Verriegelung gibt es mehrere Varianten, noch ein Hinweis, die Relais sollten bei Nichtbenutzung in der Position stehen, in der sie keine Energie benötigen.
Wir gehen im Beispiel von NC (normally closed) als energielose Position aus.
Relais1 schaltet nur Strom an oder aus:

  • NC: kein Strom
  • NO: Strom
NO des Relais 1 wird mit dem Eingang von Relais2 verbunden, das für das Hoch- oder Runterfahren zuständig ist, z.B. so:

  • NC: Runter
  • NO: Hoch
Dann noch eine Frage zu deinem Rolltor. Ich kenne da nur 1-Knopf-Bedienungen: hoch-stop-runter usw., bei jedem Knopfdruck wird gestoppt, wenn in Fahrt, oder in Gegenrichtung gefahren, wenn in Endposition.

Hast du tatsächlich für jede Fahrtrichtung ein separates Relais? Bitte mehr Input zu deiner Hardware.

Viele​ Grüße​ Gisbert​

Hallo Gisbert,

wie beschrieben habe ich einen NodeMCU+2 Relais-Karte+BMP280 Sensor. Es ist die tasmota.sensor.bin geflasht da ich sonst keine Sensoren abfragen konnte.

Das ist meine Definition in FHEM für den NodeMCU

defmod MQTT2_DVES_2333B4 MQTT2_DEVICE DVES_2333B4
attr MQTT2_DVES_2333B4 IODev myBroker
attr MQTT2_DVES_2333B4 autocreate 0
attr MQTT2_DVES_2333B4 comment NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10;; 'cmnd/cmnd/DVES_2333B4/Backlog POWER1 1;; delay '.$duration.';; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
attr MQTT2_DVES_2333B4 devStateIcon Online:10px-kreis-gruen Offline:10px-kreis-rot 1.on:on:POWER1+off 1.off:off:POWER1+on 2.on:on:POWER2+off 2.off:off:POWER2+on
attr MQTT2_DVES_2333B4 icon hue_filled_outlet
attr MQTT2_DVES_2333B4 model tasmota_2ch_unified
attr MQTT2_DVES_2333B4 readingList tele/DVES_2333B4/LWT:.* LWT\
  tele/DVES_2333B4/STATE:.* { json2nameValue($EVENT) }\
  tele/DVES_2333B4/SENSOR:.* { json2nameValue($EVENT) }\
  tele/DVES_2333B4/INFO.:.* { json2nameValue($EVENT) }\
  stat/DVES_2333B4/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/DVES_2333B4/UPTIME:.* { json2nameValue($EVENT) }\
  stat/DVES_2333B4/POWER1:.* POWER1\
  stat/DVES_2333B4/POWER2:.* POWER2
attr MQTT2_DVES_2333B4 room MQTT2_DEVICE
attr MQTT2_DVES_2333B4 setList POWER1:on,off,toggle cmnd/DVES_2333B4/POWER1 $EVTPART1\
  POWER2:on,off,toggle cmnd/DVES_2333B4/POWER2 $EVTPART1\

attr MQTT2_DVES_2333B4 setStateList on off toggle
attr MQTT2_DVES_2333B4 stateFormat LWT\
1:POWER1\
2:POWER2\
<br>\
Temperatur BMP280_Temperature\
Luftdruck BMP280_Pressure\
<br>\
<a href="http://IPAddress" target="_blank">IPAddress</a>\

attr MQTT2_DVES_2333B4 webCmd POWER1:POWER2

setstate MQTT2_DVES_2333B4 Online\
1:off\
2:off\
<br>\
Temperatur 25.8\
Luftdruck 626.9\
<br>\
<a href="http://192.168.178.61" target="_blank">192.168.178.61</a>\

setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 BMP280_Pressure 626.9
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 BMP280_Temperature 25.8
setstate MQTT2_DVES_2333B4 2020-11-25 12:30:23 ButtonTopic
setstate MQTT2_DVES_2333B4 2020-11-26 08:46:57 Command Unknown
setstate MQTT2_DVES_2333B4 2020-11-25 12:26:57 Free 459
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 Heap 22
setstate MQTT2_DVES_2333B4 2020-11-26 09:23:48 Hostname DVES_2333B4-5044
setstate MQTT2_DVES_2333B4 2020-11-26 09:23:48 IPAddress 192.168.178.61
setstate MQTT2_DVES_2333B4 2020-11-26 09:23:46 LWT Online
setstate MQTT2_DVES_2333B4 2020-11-25 12:26:57 Length 52
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 LoadAvg 22
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 MqttCount 1
setstate MQTT2_DVES_2333B4 2020-11-25 12:26:57 Once off
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 POWER1 off
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 POWER2 off
setstate MQTT2_DVES_2333B4 2020-11-25 09:44:40 POWER3 on
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 PressureUnit hPa
setstate MQTT2_DVES_2333B4 2020-11-26 09:23:48 RestartReason Software/System restart
setstate MQTT2_DVES_2333B4 2020-11-25 12:26:57 Rule1 off
setstate MQTT2_DVES_2333B4 2020-11-25 12:26:57 Rules on button1#state do backlog power1 2;; power2 2 endon
setstate MQTT2_DVES_2333B4 2020-11-25 08:06:43 SaveData on
setstate MQTT2_DVES_2333B4 2020-11-26 11:20:15 SetOption114 on
setstate MQTT2_DVES_2333B4 2020-11-25 08:06:43 SetOption26 on
setstate MQTT2_DVES_2333B4 2020-11-25 14:57:18 SetOption73 off
setstate MQTT2_DVES_2333B4 2020-11-26 08:44:03 SetOption80 on
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 Sleep 50
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 SleepMode Dynamic
setstate MQTT2_DVES_2333B4 2020-11-25 08:06:42 StateText1 off
setstate MQTT2_DVES_2333B4 2020-11-25 08:06:42 StateText2 on
setstate MQTT2_DVES_2333B4 2020-11-25 08:06:43 StateText3 toggle
setstate MQTT2_DVES_2333B4 2020-11-25 08:06:43 StateText4 hold
setstate MQTT2_DVES_2333B4 2020-11-25 12:26:57 StopOnError off
setstate MQTT2_DVES_2333B4 2020-11-26 09:20:06 Switch1 off
setstate MQTT2_DVES_2333B4 2020-11-25 09:10:04 Switch2 on
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 Switch3 off
setstate MQTT2_DVES_2333B4 2020-11-25 09:37:50 Switch8 on
setstate MQTT2_DVES_2333B4 2020-11-25 13:58:30 SwitchMode1 0
setstate MQTT2_DVES_2333B4 2020-11-25 13:58:40 SwitchMode2 0
setstate MQTT2_DVES_2333B4 2020-11-25 12:32:18 SwitchTopic
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 TempUnit C
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 Time 2020-11-26T11:28:50
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 Uptime 0T02:05:09
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 UptimeSec 7509
setstate MQTT2_DVES_2333B4 2020-11-26 09:23:48 WebServerMode Admin
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 Wifi_AP 1
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 Wifi_BSSId 34:31:C4:01:6C:7A
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 Wifi_Channel 13
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 Wifi_Downtime 0T00:00:03
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 Wifi_LinkCount 1
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 Wifi_RSSI 56
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 Wifi_SSId FRITZ!Box 7490
setstate MQTT2_DVES_2333B4 2020-11-26 11:28:50 Wifi_Signal -72
setstate MQTT2_DVES_2333B4 2020-11-25 08:06:42 attrTemplateVersion 20200522 or prior
setstate MQTT2_DVES_2333B4 2020-11-25 08:08:30 subscriptions cmnd/DVES_2333B4/# cmnd/DVES_2333B4_fb/# cmnd/tasmotas/#



Das alleine hat mich schon tage gekostet weil ich einfach nicht mit den Templates zurecht komme und immer was anpassen wollte, z.B. das die Temp angezeigt wird und ich den zusätzlichen POWER2 angezeigt bekomme.  :(
Oder diese Meldung, ich kapiere nicht was genau darein muss ? Das ist jetzt ein TEST-Gerät
pecify the unknown parameters for tasmota_basic_state_power1:
Command topic prefix, without trailing /   
info topic prefix, without trailing /   
ack topic prefix, without trailing /   

Hier noch der Code für das Schalten aus FHEM heraus

defmod Scheunentor ROLLO
attr Scheunentor cmdIcon open:fts_shutter_up closed:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr Scheunentor devStateIcon open:fts_shutter_10:closed closed:fts_shutter_100:open half:fts_shutter_50:closed drive-up:fts_shutter_up@red:stop drive-down:fts_shutter_down@red:stop pct-100:fts_shutter_100:open pct-90:fts_shutter_80:closed pct-80:fts_shutter_80:closed pct-70:fts_shutter_70:closed pct-60:fts_shutter_60:closed pct-50:fts_shutter_50:closed pct-40:fts_shutter_40:open pct-30:fts_shutter_30:open pct-20:fts_shutter_20:open pct-10:fts_shutter_10:open pct-0:fts_shutter_10:closed
attr Scheunentor rl_autoStop 0
attr Scheunentor rl_commandDown set MQTT2_DVES_2333B4 POWER1 on;; set MQTT2_DVES_2333B4 POWER2 off
attr Scheunentor rl_commandStopDown set MQTT2_DVES_2333B4 POWER1 off;; set MQTT2_DVES_2333B4 POWER2 off
attr Scheunentor rl_commandStopUp set MQTT2_DVES_2333B4 POWER1 off;; set MQTT2_DVES_2333B4 POWER2 off
attr Scheunentor rl_commandUp set MQTT2_DVES_2333B4 POWER1 on;; set MQTT2_DVES_2333B4 POWER2 on
attr Scheunentor rl_excessBottom 2
attr Scheunentor rl_excessTop 4
attr Scheunentor rl_secondsDown 30
attr Scheunentor rl_secondsUp 30
attr Scheunentor rl_switchTime 1
attr Scheunentor rl_type normal
attr Scheunentor room Schalten
attr Scheunentor webCmd open:closed:half:stop:pct

setstate Scheunentor open
setstate Scheunentor 2020-11-25 09:41:30 command open
setstate Scheunentor 2020-11-25 09:41:30 desired_pct 0
setstate Scheunentor 2020-11-25 09:41:30 drive-type modul
setstate Scheunentor 2020-11-25 09:41:30 last_drive drive-up
setstate Scheunentor 2020-11-25 09:42:06 pct 0
setstate Scheunentor 2020-11-25 09:42:06 state open



Hier habe ich die Command up und down so bearbeitet wie ich es mir vorstelle.

Ein Relais Schaltet ein und ist an das zweite Relai angeschlossen welches jetzt zwischen runter und hoch hin und her schalten kann. Schaltet man das 1. Relais wieder aus ist das 2. stromlos.

Ich habe am Rolltor 3  Tasten 1. für hoch nochmal drücken stoppt 2. tasten für runter nochmal drücken stoppt.   3. Taste wäre eigentlich Stop hab ich aber grade nicht angeschlossen.

Die Relais im Antrieb sind momentan auf Selbsthaltung angeschlossen deswegen müssen die Taster nur kurz angetippt werden.

Ich verwende dafür derzeit die ELV Markisensteuerung welche aber nicht zufriedenstellend funktioniert, da man hier keine Rückmeldung über den Schaltzustand bekommt und man nicht noch mehr Sachen anschließen kann, also Katasrophe :)

Bin für jede Hilfe dankbar versuche zu verstehen bin leider aber nicht Fit auch wenn ich Passagen wieder und wieder durchlese zur Konfiguration...

Beta-User

Sorry, aber bei dem Kenntnisstand wäre meine Empfehlung, das auf zwei ESP's zu verteilen.

Das mit ROLLO und dem "softwaremäßigen Nachverriegeln" ist nicht optimal, und der Rollladen-Modus in Tasmota selbst ist dem Vernehmen nach super.

Wie dem auch sei: Die Rückfrage aus dem attrTemplate kommt daher, dass bestimmte Inhalte nicht automatisiert ermittelt werden können - hier, weil kein LWT-Eintrag in der readingList in deiner Test-Kopie enthalten gewesen sein dürfte.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

ghostrider

Zitat von: Beta-User am 26 November 2020, 12:46:36
Sorry, aber bei dem Kenntnisstand wäre meine Empfehlung, das auf zwei ESP's zu verteilen.

Das mit ROLLO und dem "softwaremäßigen Nachverriegeln" ist nicht optimal, und der Rollladen-Modus in Tasmota selbst ist dem Vernehmen nach super.

Wie dem auch sei: Die Rückfrage aus dem attrTemplate kommt daher, dass bestimmte Inhalte nicht automatisiert ermittelt werden können - hier, weil kein LWT-Eintrag in der readingList in deiner Test-Kopie enthalten gewesen sein dürfte.

Schade, aber keine Option

ghostrider

#14
So ich habe jetzt einen neuen NodeMCU aufgesetzt mit Version 9.1.0

1 Relay an D3 und eins an D6 konfiguriert und angeschlossen
mit SetOption80 1 den ShutterSupport aktiviert

dann mit Shutterrelay1 2
auf
Circuit Safe
First relay: ON/OFF, Second relay: UP/DOWN

umgestellt
dann bekomme ich folgendes Ergebnis

14:32:18 CMD: status 13
14:32:18 RSL: stat/tasmota_9D2E30/STATUS13 = {"StatusSHT":{"SHT0":{"Relay1":2,"Relay2":3,"Open":100,"Close":100,"50perc":50,"Delay":0,"Opt":"0000","Calib":[300,500,700,900,1000],"Mode":"0"}}}



Es wir mit Shutterrelay1 2

SHT0 erstellt der über Relay1 und Relay2 verfügt ? Das andere sind die Angeben zum öffnen schließen und Verzögerung ?