Hallo,
ich wollte euch kurz mein Projekt Garagentorsteuerung mit dem standard Sonoff vorstellen.
Ich habe das ganze 2x gebaut und damit meine beiden Hoerman Garagenantriebe in FHEM eingebunden.
Material:
Sonoff ca. 5,-
2x Magnetkontakt 4,-
ein paar Meter Kabel und Aluleiste
Ich habe jeweils einen Kontakt für Garage geschlossen und einen für Garage offen am Tor montiert. Dann einen standard Sonoff mit ESPEasy geflasht und den Relaiskontakt durch trennen der Leiterbahnen zu einen potenzialfreien Kontakt gemacht. Dann noch eine Brücke eingelötet und nun hat man einen normalen potenzialfreien Schließerkontakt. Den schalte ich über ein doif für 1s um das Tor zu öffnen oder zu schließen. (Toggle für den Tasteranschluß der Torsteuerung)
In ESPEasy habe ich den seriellen Ausgang abgeschaltet damit TX und RX zu GIPO 1 und 3 werden, an diesen habe ich nun die beiden Magnetkontakte angeschlossen. Über jeweils einen Magnetkontakt lege ich GND auf TX und RX.
Nun kann ich in FHEM den Stand des Tores anzeigen. Per doif setzte ich bei dem Tor dummy den Status open / move / closed.
Ich hoffe es gefällt euch und eventuell hat jemand Lust zum nachbauen.
Hallo hanswerner1,
schönes Projekt.
Mich würde der Anschluss der Magnetkontakte interessieren.
ZitatIn ESPEasy den seriellen Ausgang abgeschaltet damit TX und RX zu GIPO 1 und 3 werden, an diesen habe ich nun die beiden Magnetkontakte angeschlossen. Über den Magnetkontakt lege ich GND auf TX und RX.
Nun kann ich in FHEM den Stand des Tores anzeigen. Per doif setzte ich bei dem Tor dummy den Status open / move / closed.
Kannst du ein Fließbild skizzieren oder eine detaillierte Beschreibung?
Welches Bezeichnung haben die Magnetkontakte?
Warum hast du die Leiterbahn getrennt? Was hat es mit der Potentialfreiheit zu tun?
Viele Grüße Gisbert
Einen pol des Magnetkontaktes an GND und den dann anderen an TX. Der 2. Magnetkontakt an GND und an RX. Damit die Zustände am Sonoff eindeutig sind habe ich über jeweils einen 10k Widerstand TX und RX auf 3V3 gelegt. Wichtig ist aber das Abschalten des seriellen Ausgangs in ESPEasy !!
Das sind ganz einfache Standard Magnetkontakte. Diese heißen:
tinxi 5x Magnetkontakt
Am Ausgang des Sonoff liegt 230v an, wenn eingeschaltet ist. Gebraucht wird aber ein Schließkontakt. Durch trennen der Leiterbahnen (auf beiden Seiten der Platine) und einlöten der Brücke entsteht ein potenzialfreier Schließkontakt. Der an der Tasterfunktion des Antriebs angeschossen wird.
Schaltplan
Bin gerade dabei das selbe mit mysensors zu realisieren. Allerdings gefällt mir der Aspekt über ein unverschlüsseltes Signal ein sicherheitsrelevantes Relais zu schalten gar nicht. Nodemcu hatte ich als Alternative im Kopf! Hast du mal deinen fhem seitigen Ansatz da? Wie löst du die Sperre bei mehrfach Betätigung des Tasters? Die Anzeige hat ja im fahrzustand eine gewisse Trägheit und somit Anfälligkeit auf nervöse Finger ;)
Schaltung ist soweit klar aber für was ist die Brücke? Hast du da nen Schaltplan für?
Grüße
Matze
Dann müsste sich der Angreifer aber schon in meinen Netzwerk befinden um den Sonoff zu schalten.
Status:
Zitat
define doif_Garage_Katja_status DOIF ([ESPEasy_06_Garage_Katja:Tor_auf] eq "1" and [ESPEasy_06_Garage_Katja:Tor_zu] eq "0") (setreading Garage_Katja zustand open)\
DOELSEIF ([ESPEasy_06_Garage_Katja:Tor_auf] eq "0" and [ESPEasy_06_Garage_Katja:Tor_zu] eq "0") (setreading Garage_Katja zustand move)\
DOELSEIF ([ESPEasy_06_Garage_Katja:Tor_auf] eq "0" and [ESPEasy_06_Garage_Katja:Tor_zu] eq "1") (setreading Garage_Katja zustand closed)\
Öffnen/Schließen
Zitat
define doif_Garage_Katja_oeffnen DOIF ([Garage_Katja:state] eq "toggle") (set Garage_Katja "wait";; set ESPEasy_06_Garage_Katja on;; sleep 1;; set ESPEasy_06_Garage_Katja off)
Die Brücke verbindet den ehemaligen N Leiter mit dem Schaltkontakt das Relais.
Ah ok!
Das Sicherheitsrisiko sehe ich weniger am ESP!
Ich hab das auf mein mysensors Projekt bezogen
was den selben Zweck erfüllen soll.
Grüße
Matze
Hallo,
anbei eine Möglichkeit das Ganze gegenseitig zu verriegeln, falls doch mal beide Relais gleichzeitig aktiviert werden.
Grüße Jörg
Hallo,
ich finde das Projekt super interessant. Da ich noch recht neu bin bei Fhem hätte ich eine Bitte.
Könnte man den Kompletten Befehlssatz veröffentlichen.
Das fände ich echt super.
Zitat von: JoWiemann am 30 Mai 2017, 22:54:59
Hallo,
anbei eine Möglichkeit das Ganze gegenseitig zu verriegeln, falls doch mal beide Relais gleichzeitig aktiviert werden.
Grüße Jörg
Hallo Jörg,
das ist in meinen Fall nicht nötig, da meine Tore nicht per "auf" und "ab" gesteuert werden sondern mit einem Kontakt. Bei jeder Betätigung ändert sich dann die Richtung. (toggle)
Zitat von: Fuchshausen am 01 Juni 2017, 20:09:50
Könnte man den Kompletten Befehlssatz veröffentlichen.
kommt !
Dummy für Tor:
Zitat
define Garage_Katja dummy
attr Garage_Katja eventMap toggle
attr Garage_Katja group Garage
attr Garage_Katja icon fts_garage
attr Garage_Katja room 16_Aussen
attr Garage_Katja stateFormat zustand
attr Garage_Katja webCmd toggle
Sonoff:
Zitat
define ESPEasy_06_Garage_Katja ESPEasy 192.168.0.125 80 espBridge 06_Garage_Katja
attr ESPEasy_06_Garage_Katja IODev espBridge
attr ESPEasy_06_Garage_Katja Interval 300
attr ESPEasy_06_Garage_Katja eventMap /gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/
attr ESPEasy_06_Garage_Katja group ESPEasy Device
attr ESPEasy_06_Garage_Katja presenceCheck 1
attr ESPEasy_06_Garage_Katja readingSwitchText 0
attr ESPEasy_06_Garage_Katja room ESPEasy
attr ESPEasy_06_Garage_Katja stateFormat Tor auf: Tor_auf Tor zu: Tor_zu
attr ESPEasy_06_Garage_Katja webCmd on:off
Garage öffnen/schließen:
Zitat
define doif_Garage_Katja_oeffnen DOIF ([Garage_Katja:state] eq "toggle") (set Garage_Katja "wait";; set ESPEasy_06_Garage_Katja on;; sleep 1;; set ESPEasy_06_Garage_Katja off)
attr doif_Garage_Katja_oeffnen do always
attr doif_Garage_Katja_oeffnen group Garage
attr doif_Garage_Katja_oeffnen room 90_System_Prog
Garage Status:
Zitat
define doif_Garage_Katja_status DOIF ([ESPEasy_06_Garage_Katja:Tor_auf] eq "1" and [ESPEasy_06_Garage_Katja:Tor_zu] eq "0") (setreading Garage_Katja zustand open)\
DOELSEIF ([ESPEasy_06_Garage_Katja:Tor_auf] eq "0" and [ESPEasy_06_Garage_Katja:Tor_zu] eq "0") (setreading Garage_Katja zustand move)\
DOELSEIF ([ESPEasy_06_Garage_Katja:Tor_auf] eq "0" and [ESPEasy_06_Garage_Katja:Tor_zu] eq "1") (setreading Garage_Katja zustand closed)
attr doif_Garage_Katja_status do always
attr doif_Garage_Katja_status group Garage
attr doif_Garage_Katja_status room 90_System_Prog
Die Idee mit dem ESP hat mir gut gefallen und ich habe das ganze gestern
Mit einer Nodemcu und lochrasterplatte sowie relay und temperatursensor
Nachgebaut.
Als Anmerkung für alle Nachbauer:
Gpio 1 darf bei ESP Boot nicht auf Masse liegen, sonst bootet der ESP nicht.
Werde ich noch abändern! Muss aber erst mal in Erfahrung bringen welcher
Gpio das noch kann. Sind in espeasy eigentlich nur 4 Sensoren möglich?
Hätte gern auch noch einen pir reingehängt.
Viele Grüße
Matze
Nein, 16 Devices sind möglich. Dafür gibt es in der Deviceübersicht die schwarzen links/rechts Pfeile.
Grüße Jörg
Gesendet von iPhone mit Tapatalk
Ah danke!!
Manchmal ist die Lösung einfach 8)
Grüße
Matze
Hallo hanswerner1,
Danke für die geniale Tor Steuerung.
:)
Zitat von: JoWiemann am 30 Mai 2017, 22:54:59anbei eine Möglichkeit das Ganze gegenseitig zu verriegeln, falls doch mal beide Relais gleichzeitig aktiviert werden.
Warum nicht mit der "Standard"-Schaltung: ein Relais (Schließer) für "Ein", das zweite (Umschalter) für "Hoch"/"Runter"? Spart glatt zwei Relais und die Software ist schnell angepasst. Zur Not sogar als "Hardwarelösung" mittels einer Diode.
Danke @hanswerner1 für die schöne Anleitung, ich werde das für meine Doppelgarage nachbauen.
Magnetkontakte habe ich schon drin, allerdings bisher nur für "offen".
Meine Fragen dazu:
Spricht irgendwas dagegen, einen Sonoff dual zu verwenden und direkt zwei Tore anzusteuern?
Wo muss dort die Brücke und die Unterbrechungen hin?
Kann ich die Kontakte auch an andere GPIOs anschließen?
Danke.
Ich hatte auch zuerst vor den Sonoff dual für meine beiden Tore zu nehmen. Allerdings werden beim dual die Relais nicht wie bei den andreren sonoff's über GPIO gesteuert sondern seriel. Das unterstützt erstens nicht ESPEasy sondern nur die Tasmota FW bei der Du die GPIO's der Magnetsensoren aber leider nicht abfragen kannst. Der zweite Grund ist, Du kannst die serielle Kommunikation nicht abschalten um aus TX/RX GPIO's zu machen, da dann auch die Relais nicht mehr schalten würden.
Prinzipiell kannst Du die Kontakte auch an anderen verfügbaren GPIO's anschließen. musst dann nur den Code in ESPeasy darauf anpassen.
Danke hanswerner1, für deine Antwort.
Meinen Sonoff dual, den ich gerade von Banggood bestellt hatte, konnte ich leider nicht mehr canceln, aber dafür findet sich bestimmt noch eine andere Verwendung... ;)
Hier wird von @Reinhart ein Elektrodragon dual Modul erwähnt, das bereits mit potentialfreien Kontakten erhältlich ist:
https://forum.fhem.de/index.php/topic,73369.msg653878.html#msg653878
http://www.electrodragon.com/product/wifi-iot-relay-board-spdt-based-esp8266/ (http://www.electrodragon.com/product/wifi-iot-relay-board-spdt-based-esp8266/)
Das hat aber dann die gleiche Problematik wie das Sonoff dual, also Tasmota und keine Magnet-Kontakte oder ?
Ich kenne das Elektrodragon dual Modul leider nicht. Wenn darauf aber ESPEasy läuft und er 2 freie GPIO's hat, dann brauchst Du die serielle Kommunikation nicht abzuschalten.
Das ist nur nötig bei dem Sonoff die keine 2 freiverwendbaren GPIO's haben. Dann wird durch das abschalten TX/RX zu freiverwendbaren GPIO's. Wenn die Relais beim Dragon über GPIO's geschaltet werden dann macht auch das abschalten der seriellen Schnittstelle nichts.
Soweit ich das Wiki verstanden habe, werden die Relais direkt per GPIO angesteuert und es sind noch ein paar GPIO frei. ESPEasy drauf zu flashen sollte auch kein Problem sein.
Ich hab mal zwei Module bestellt und werde hier berichten, wenn ich es zum Laufen gebracht habe. ;)
Zitat von: Lucky2k12 am 29 Juni 2017, 13:42:25
Hier wird von @Reinhart ein Elektrodragon dual Modul erwähnt, das bereits mit potentialfreien Kontakten erhältlich ist:
https://forum.fhem.de/index.php/topic,73369.msg653878.html#msg653878
http://www.electrodragon.com/product/wifi-iot-relay-board-spdt-based-esp8266/ (http://www.electrodragon.com/product/wifi-iot-relay-board-spdt-based-esp8266/)
Das hat aber dann die gleiche Problematik wie das Sonoff dual, also Tasmota und keine Magnet-Kontakte oder ?
Was meinst du mit Magnetkontakte, normale Reedkontakte?
Wenn ja, diese kannst du mit Tasmota einfach mit "Buttontopic" entkoppeln, siehe Beispiel im Wiki mit Bewegungsmelder und die kannst du in Fhem auswerten wie du willst. Das Beispiel im Wiki ist noch für die 3er Version, d.h. du musst die Syntax daher geringfügig anpassen.
Beim Eelectrodragon sind die GPIOs 4,5,14,15 frei, 1+3 wären die seriellen die du noch zusätzlich frei schalten kannst. Aber ich glaube mit 4 freien geht schon einiges.
LG
Zitat von: Lucky2k12 am 30 Juni 2017, 08:38:09
Soweit ich das Wiki verstanden habe, werden die Relais direkt per GPIO angesteuert und es sind noch ein paar GPIO frei. ESPEasy drauf zu flashen sollte auch kein Problem sein.
Ich hab mal zwei Module bestellt und werde hier berichten, wenn ich es zum Laufen gebracht habe. ;)
berichte mal ob es mit den Elektrodragon funktioniert. Das ist dann schon die bessere Lösung als das trennen der Leiterbahnen beim normalen sonoff. und GPIO's hat das Teil ja auch genug. Für 2 Tore benötigst Du ja 4 GPIO's
Zitat von: Reinhart am 30 Juni 2017, 11:56:37
Was meinst du mit Magnetkontakte, normale Reedkontakte?
Wenn ja, diese kannst du mit Tasmota einfach mit "Buttontopic" entkoppeln, siehe Beispiel im Wiki mit Bewegungsmelder und die kannst du in Fhem auswerten wie du willst. Das Beispiel im Wiki ist noch für die 3er Version, d.h. du musst die Syntax daher geringfügig anpassen.
ja, normale Reedkontakte
Sind denn mit Tasmota auch 2 oder wie in Lucky2k12's Fall 4 GPIO's abfragbar ?
Zitat von: Reinhart am 30 Juni 2017, 11:56:37
Was meinst du mit Magnetkontakte, normale Reedkontakte?
Wenn ja, diese kannst du mit Tasmota einfach mit "Buttontopic" entkoppeln, siehe Beispiel im Wiki mit Bewegungsmelder und die kannst du in Fhem auswerten wie du willst. Das Beispiel im Wiki ist noch für die 3er Version, d.h. du musst die Syntax daher geringfügig anpassen.
Ja Reedkontakte, die im FHEM anzeigen sollen ob die Garage zu oder auf ist. Momentan sind in meiner Garage nur "Zu-" Kontakte verbaut.
Ich glaube der Torantrieb hat auch interne Endschalter. Evtl. kann man die auch anzapfen oder ist das eher keine so gute Idee?
Meinst du das Tasmota-Wiki, das electrodragon Wiki oder das FHEM Wiki? Ich finde das von dir erwähnte Beispiel nicht.
[quote author=hanswerner1
ja, normale Reedkontakte
Sind denn mit Tasmota auch 2 oder wie in Lucky2k12's Fall 4 GPIO's abfragbar ?
Ja, in Tasmota sind die Devices schon vordefiniert in der sonoff_template.h und somit braucht man diese nur anwählen und schon kannst du die möglichen GPIOs einem Sensor zuweisen, alles im Webif wie bei ESPEasy. Wenn was nicht geht oder Wünsche offen sind, einfach an Arends melden und wenn es Sinn macht baut der das ein. Das haben schon einige User von hier so gemacht. Obwohl die Software speziell für Sonoff (+Electrodragon + Wemos) ausgerichtet ist, passt sie fast für alle 8266 Anwendungen. Allerdings sind noch nicht so viele Sensoren wie bei ESPEasy vorhanden, werden aber fast täglich mehr.
Hier die Definition des Electrodragon, man kann hier auch händisch eingreifen ist aber im Normalfall nicht notwendig (deshalb kenne ich die GPIOs immer alle).
{ "ElectroDragon", // ElectroDragon IoT Relay Board (ESP8266)
GPIO_KEY2, // GPIO00 Button 2
GPIO_USER, // GPIO01 Serial RXD and Optional sensor
GPIO_KEY1, // GPIO02 Button 1
GPIO_USER, // GPIO03 Serial TXD and Optional sensor
GPIO_USER, // GPIO04 Optional sensor
GPIO_USER, // GPIO05 Optional sensor
0, 0, 0, 0, 0, 0, // Flash connection
GPIO_REL2, // GPIO12 Red Led and Relay 2 (0 = Off, 1 = On)
GPIO_REL1, // GPIO13 Red Led and Relay 1 (0 = Off, 1 = On)
GPIO_USER, // GPIO14 Optional sensor
GPIO_USER, // GPIO15 Optional sensor
GPIO_LED1, // GPIO16 Green/Blue Led (1 = On, 0 = Off)
GPIO_ADC0 // ADC0 A0 Analog input
},
Es empfiehlt sich aber immer auch das Wiki von Arends (https://github.com/arendst/Sonoff-Tasmota/wiki) zu studieren, weil das ständig wächst und auch alle Commands dort erklärt werden.
LG
Zitat von: Lucky2k12 am 30 Juni 2017, 13:53:15
Meinst du das Tasmota-Wiki, das electrodragon Wiki oder das FHEM Wiki? Ich finde das von dir erwähnte Beispiel nicht.
Fhem Wiki (https://wiki.fhem.de/wiki/Sonoff#Sonoff_Switch_mit_Bewegungsmelder_HC-SR501) Bewegungsmelder
LG
Zitat von: Reinhart am 30 Juni 2017, 14:06:23
Fhem Wiki (https://wiki.fhem.de/wiki/Sonoff#Sonoff_Switch_mit_Bewegungsmelder_HC-SR501) Bewegungsmelder
Danke @Reinhart, der Artikel im Wiki ist ja sehr umfangreich geworden, seit dem ich das letzte mal reingeschaut hatte.
OT: Meine Warmwasser-Heizungspumpensteuerung mit ESPEasy spackt seit ein paar Tagen rum, vielleicht Zeit, das mal auf Tasmota umzubauen. Gibt es eine Möglichkeit, mit Logik auf Temperaturgradienten zu reagieren? Ich würde das gern direkt im Modul machen und nicht im FHEM wegen der Zuverlässigkeit.
Jetzt muss ich leider noch ein paar Wochen warten, bis das electrodragon Modul über den Ozean geschippert ist und ich mit dem Basteln anfangen kann...
Hier noch meine Visualisierung in FTUI
Nach dem Tippen auf das Tor Symbol erscheint ein Fenster mit einen Button zum Tor öffnen / schließen.
Das habe ich als zusätzliche Sicherheit gemacht, damit das Tor nicht sofort aufgeht wenn man an das Torsymbol unbeabsichtigt kommt.
Dann wird der Zustand des Tores angezeigt, grün -> geschlossen, gelb blinkend -> in Bewegung, rot -> offen
<div data-type="push"
data-device="Garage_Katja"
data-get="zustand"
data-states='["on","closed","move","open","absent"]'
data-colors='["bg-gray","green","yellow","red","#505050"]'
date-set="on"
data-background-icon=""
data-icons='["oa-fts_garage_door_100","oa-fts_garage_door_100","oa-fts_garage_door_50 blink","oa-fts_garage","oa-fts_garage"]'
class="big"></div>
<div data-type="label" class="">Katja</div>
</div>
<div data-type="popup"
data-width="200px"
data-height="200px"
data-left="600px"
data-top="300px"
data-mode="fade"
data-device="Garage_Katja"
data-get="state"
data-get-on="on"
data-get-off="wait">
<div class="dialog">
<header><font size="+1">Garage Katja</font></header>
<div class="top-space-3x">
<div data-type="push"
data-device="Garage_Katja"
data-set-on="toggle"
data-set-off="wait"
data-get="zustand"
data-states='["closed","open","absent"]'
data-colors='["green","red","#505050"]'
data-icons='["oa-fts_garage_door_100","oa-fts_garage","oa-fts_garage"]'
data-background-icon="fa-square-o"
data-on-background-color="#505050"
class="big"></div>
</div>
</div>
</div>
So, kleines Update von mir:
Das Elektrodragon Modul ist mittlerweile in der Garage eingebaut und steuert erfolgreich beide Tore.
Der DHT11 direkt auf dem Board liefert deutlich zu hohe Temperaturen, den werde ich wohl aus dem Gehäuse raus verlegen müssen, damit das Sinn macht. Die Tasteranschlüsse des Torantriebs musste ich am Relais auf com und open (nicht Close) legen.
Die Magnetkontakte für Zustand "geschlossen" muss ich noch anschließen. Vorbereitet / verkabelt hab ich mal GPIO 4 und 5.
@Reinhart: Weißt du, ob das Modul Pullup Widerstände drauf hat?
Edit: Habs im electrodragon wiki gefunden, ja, 4k7 pullups an 4 und 5 sind dran: http://www.electrodragon.com/w/ESP_Relay_Board_Hardware#General_Pin_Definition
Dann kommen die beiden Positions-Kontakte der an GPIO4/5 und GND, und werden als Switch konfiguriert, richtig?
Nutzt ihr noch weitere Funktionen oder nur die "Fernsteuerung/Statusanzeige"?
z.B. ein paar Ideen:
- "coming home" mit geofencing: Handy fragt: "Soll ich die Garage öffnen?"
- "Warnung per pushmsg wenn Garage nach xx Uhr offen steht"
- "Lüften wenn Feuchtigkeit / Temperatur > xx / yy"
...
wenn ja, welche Funktionen und wie habt ihr die implementiert?
List vom device:
defmod Garage MQTT_DEVICE
attr Garage IODev mqtt
attr Garage alexaName Garage
attr Garage genericDeviceType garage
attr Garage room Garage,AlexaRoom,MQTT
attr Garage stateFormat transmission-state
attr Garage subscribeReading_Power1 stat/Garage/POWER1
attr Garage subscribeReading_Power2 stat/Garage/POWER2
attr Garage subscribeReading_Result stat/Garage/RESULT
attr Garage subscribeReading_Sensor tele/Garage/SENSOR
attr Garage subscribeReading_Status tele/Garage/STATE
setstate Garage incoming publish received
setstate Garage 2017-08-28 23:02:49 Power1 OFF
setstate Garage 2017-08-28 23:02:50 Power2 OFF
setstate Garage 2017-08-28 23:02:49 Result {"POWER2":"OFF"}
setstate Garage 2017-08-29 09:26:32 Sensor {"Time":"2017-08-29T09:26:32", "Switch1":"ON", "Switch2":"ON", "DHT11":{"Temperature":34.00, "Humidity":23.0}, "TempUnit":"C"}
setstate Garage 2017-08-29 09:26:32 Status {"Time":"2017-08-29T09:26:32", "Uptime":11, "Vcc":4.094, "POWER1":"OFF", "POWER2":"OFF", "Wifi":{"AP":1, "SSID":... ", "RSSI":38, "APMac":"xxx"}}
setstate Garage 2017-08-29 09:26:32 transmission-state incoming publish received
Edit: Wie muss ich eigentlich das attr publishSet definieren, um beide Relais ansprechen zu können? Es gibt ja zwei Topics (...POWER1 und ...POWER2)
@hanswerner1:
Hallo,
bin neu hier, und will deine Torsteuerung nachbauen. Wie schalte ich den seriellen Ausgang aus, um pio1 und 3 als Eingang für die Schalter zu nutzen? Kannst du mir deine ESPeasy config zu Verfügung stellen?
Ok, hab ich jetzt gefunden unter "Tools" "Advanced". Funktioniert auch soweit, die Eingänge werden erkannt, und der Richtige Status angezeigt (im Webinterface unter "Devices").
Ich habe die Befehle soweiteingegeben, funktioniert bis zu der Eingabe:
define doif_Garage_Katja_status DOIF ([ESPEasy_06_Garage_Katja:Tor_auf] eq "1" and [ESPEasy_06_Garage_Katja:Tor_zu] eq "0") (setreading Garage_Katja zustand open)\
DOELSEIF ([ESPEasy_06_Garage_Katja:Tor_auf] eq "0" and [ESPEasy_06_Garage_Katja:Tor_zu] eq "0") (setreading Garage_Katja zustand move)\
DOELSEIF ([ESPEasy_06_Garage_Katja:Tor_auf] eq "0" and [ESPEasy_06_Garage_Katja:Tor_zu] eq "1") (setreading Garage_Katja zustand closed)\
Dann bekomme ich die Rückmeldung:
doif_Garage_Katja_status DOIF: expected DOELSEIF or DOELSE: \ DOELSEIF ([ESPEasy_06_Garage_Katja:Tor_auf] eq "0" and [ESPEasy_06_Garage_Katja:Tor_zu] eq "0") (setreading Garage_Katja zustand move)\ DOELSEIF ([ESPEasy_06_Garage_Katja:Tor_auf] eq "0" and [ESPEasy_06_Garage_Katja:Tor_zu] eq "1") (setreading Garage_Katja zustand closed)\
wobei "ESPEasy_06_Garage_Katja" immer rot geschrieben ist.
Was nun?
Ich bin aktuell im Urlaub, nächste Woche kann ich Dir helfen.
Hallo,
funktioniert jetzt. Habe lange gebraucht um rauszufinden, dass die "\" nicht in die Befehlszeile gehören:-((
Funktioniert prima. Jetzt brauche ich nur noch einen zweiten Knopf "Automatikbetrieb", der das Tor öffnet, 3 min. wartet, und dann das Tor wieder schließt. Allerdings nur, wenn es offen ist, falls es manuell (mit dem originalen Schalter) während der 3 min. geschlossen wurde.
Das kann man mit einem doif oder notify ganz gut lösen.
Grüße
Matze
Vielleichtkann mir noch jemand etwas Hilfestellung geben:
Ich brauche einen zusätzlichen Knopf (Tor Automatik 3min):
Beim drücken öffet das Tor (nur wenn es noch nicht offen ist) bleibt für eine Zeit offen (z.B. 3min) und schließt dann wieder selbstständig (wenn es noch offen ist)
Hier meine config:
Dummy für Tor:
define Garagentor dummy
attr Garagentor eventMap toggle
attr Garagentor group Garage
attr Garagentor icon fts_garage
attr Garagentor room Aussen
attr Garagentor stateFormat zustand
attr Garagentor webCmd toggle
Sonoff:
define ESPEasy_06_Garagentor ESPEasy 192.168.1.76 80 espBridge 06_Garagentor
attr ESPEasy_06_Garagentor IODev espBridge
attr ESPEasy_06_Garagentor Interval 300
attr ESPEasy_06_Garagentor eventMap /gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/
attr ESPEasy_06_Garagentor group ESPEasy Device
attr ESPEasy_06_Garagentor presenceCheck 1
attr ESPEasy_06_Garagentor readingSwitchText 0
attr ESPEasy_06_Garagentor room ESPEasy
attr ESPEasy_06_Garagentor stateFormat Tor auf: auf Tor zu: zu
attr ESPEasy_06_Garagentor webCmd on:off
Garage öffnen/schließen:
define doif_Garagentor_oeffnen DOIF ([Garagentor:state] eq "toggle") (set Garagentor "wait"; set ESPEasy_06_Garagentor on; sleep 25; set ESPEasy_06_Garagentor off)
attr doif_Garagentor_oeffnen do always
attr doif_Garagentor_oeffnen group Garage
attr doif_Garagentor_oeffnen room 90_System_Prog
Garage Status:
define doif_Garagentor_status DOIF ([ESPEasy_06_Garagentor:auf] eq "1" and [ESPEasy_06_Garagentor:zu] eq "0") (setreading Garagentor zustand open)
DOELSEIF ([ESPEasy_06_Garagentor:auf] eq "0" and [ESPEasy_06_Garagentor:zu] eq "0") (setreading Garagentor zustand move)
DOELSEIF ([ESPEasy_06_Garagentor:auf] eq "0" and [ESPEasy_06_Garagentor:zu] eq "1") (setreading Garagentor zustand closed)
attr doif_Garagentor_status do always
attr doif_Garagentor_status group Garage
attr doif_Garagentor_status room 90_System_Prog
Ich komm im Moment nicht weiter.
Hi,
aber was ist Dein Problem?
Dein eventmap 06_Garagentor hat einen merkwürdigen Inhalt. Ich kenne gpio 12 gpio/output nicht!?
Dein stateFormat sollte nach den : keine Leerzeichen haben
Aber schildere erstmal Dein Problem ;-)
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Die Konfiguration habe ich vom Themenstarter übernommen. Funktioniert auch alles. Beim druck auf den Knopf öffent sich das Garagentor, state ist dann "move", wenn es ganz offen ist "open". Bei erneutem Druck ist der state "move", wenn es geschlossen ist "close". Alles wunderbar. Jetzt würde ich aber gerne noch zusätzlich einen Knopf haben, der das Tor automatisch nach 3min wieder schließt. (wenn es nicht bereits duch den Hardware-Knopf am Tor direkt in der Zwischenzeit geschlossen wurde. (sonst würde es ja wieder auf gehen, da das Tor eine Ein-Knopf-Bedienung hat). Es muß also der Zustand (open, move, close) überwacht werden. Außerdem soll das nur bei geöffnetem Tor (open) passieren.
Hallo trs,
schau dir mal Watchdog an, ich denke damit wäre das am Einfachsten. Du überwachst den Zustand open. wenn er sich nicht innerhalb von 3 min ändert dann sendest Du den toggle Befehl an das Tor.
Ich habe mir so etwas auch mal überlegt, aber wieder verworfen. Da es mir zu kriminell ist wenn das Tor automatisch zugeht ohne Kontrolle ob nicht etwas im weg ist.
Gruß HW1
Ok, probier ich aus. Das Tor geht doch bei einem Hindernis selbstständig nach oben.
ja schon, aber wenn ich aus irgendeinen Grund den Wagen mal nicht ganz rein oder rausfahre (was schon vorgekommen ist) fährt das Tor schon aufs Auto. Zwar dann wieder hoch, aber ohne Lackkratzer sicher nicht und 3 min später geht das Tor ja auch wieder runter und knallt wieder aus Auto. Ich würde das nicht ohne einen Sensor machen der misst ob ein Hindernis vorhanden ist, zB. eine Lichtschranke.
Zur Entschuldigung: Ich bin noch neu in der Materie;-)
Aber ich finde den Anfang nicht. Klar ist, ich erstelle einen dummy für den Automatikbetrieb:
define Garagentor_Auto dummy
attr Garagentor_Auto eventMap toggle
attr Garagentor_Auto group Garage
attr Garagentor_Auto icon fts_garage
attr Garagentor_Auto room Aussen
attr Garagentor_Auto stateFormat zustand
attr Garagentor_Auto webCmd toggle
Sonoff ist ja bereits definiert:
define ESPEasy_06_Garagentor ESPEasy 192.168.1.76 80 espBridge 06_Garagentor
attr ESPEasy_06_Garagentor IODev espBridge
attr ESPEasy_06_Garagentor Interval 300
attr ESPEasy_06_Garagentor eventMap /gpio 12 on:on/gpio 12 off:off/gpio 12 gpio:off/gpio 12 output:off/
attr ESPEasy_06_Garagentor group ESPEasy Device
attr ESPEasy_06_Garagentor presenceCheck 1
attr ESPEasy_06_Garagentor readingSwitchText 0
attr ESPEasy_06_Garagentor room ESPEasy
attr ESPEasy_06_Garagentor stateFormat Tor auf: auf Tor zu: zu
attr ESPEasy_06_Garagentor webCmd on:off
Garagen Status ist ebenfalls schon definiert:
define doif_Garagentor_status DOIF ([ESPEasy_06_Garagentor:auf] eq "1" and [ESPEasy_06_Garagentor:zu] eq "0") (setreading Garagentor zustand open)
DOELSEIF ([ESPEasy_06_Garagentor:auf] eq "0" and [ESPEasy_06_Garagentor:zu] eq "0") (setreading Garagentor zustand move)
DOELSEIF ([ESPEasy_06_Garagentor:auf] eq "0" and [ESPEasy_06_Garagentor:zu] eq "1") (setreading Garagentor zustand closed)
attr doif_Garagentor_status do always
attr doif_Garagentor_status group Garage
attr doif_Garagentor_status room 90_System_Prog
Aber jetzt das öffnen und schließen, da fehlt mir noch das Verständnis, wo baue ich ein das:
- Das Tor öffnet, wenn es noch nicht offen ist
- Das Tor 3min offen bleibt (ok, mit "sleep"
- das Tor danach schließt, wenn es nicht bereits geschlossen ist
Hintergrund: Ich möchte diesen Auto-Modus mit der "present"-Prüfung und einem NUT3 über Bluethooth koppeln.
Hi,
Ich hätte an ein at gedacht, dass nach 3 Minuten prüft und evtl. ein set toggle ausführt und sich dann selbst wieder startet...
Mein Tor fährt bei Widerstand automatisch wieder zurück und das gibt nicht mal einem blauen Fleck an der Schulter ;-)
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Ein paar Anmerkungen dazu:
Das Forum bietet die Formatierung "Code" (Icon: #), das solltest du nutzen.
DOIF bietet cmdState (https://fhem.de/commandref_DE.html#DOIF_Reine_Statusanzeige_ohne_Ausfuehrung_von_Befehlen).
Das kannst du statt
Zitat von: trs am 01 Februar 2018, 19:44:17(setreading Garagentor zustand open)
nutzen. Dann bildet das DOIF Garagentor _Status diesen direkt ab, ohne extra Userreading. Und dann kannst du dieses auch direkt zum "Bedienen (https://fhem.de/commandref_DE.html#DOIF_setList__readingList)" nutzen. Dann entfällt auch "Garagentor_Auto".
Mit toggle wirst du allerdings nicht weit kommen, weil was machst du wenn "move" ist? Und move kann auch länger bleiben, weil das Tor blockiert ist. Oder lokal Stopp gedrückt wurde.
Mein Vorschlag:
define doif_Garagentor_status DOIF ([ESPEasy_06_Garagentor:auf] eq "1" and [ESPEasy_06_Garagentor:zu] eq "0")
DOELSEIF ([ESPEasy_06_Garagentor:auf] eq "0" and [ESPEasy_06_Garagentor:zu] eq "0")
DOELSEIF ([ESPEasy_06_Garagentor:auf] eq "0" and [ESPEasy_06_Garagentor:zu] eq "1")
DOELSEIF (["$SELF:mybutton: on"] and [?$SELF] eq "open") (set ESPEasy_06_Garagentor close)
DOELSEIF (["$SELF:mybutton: on"] and [?$SELF] eq "move") (set ESPEasy_06_Garagentor stopp)
DOELSEIF (["$SELF:mybutton: on"] and [?$SELF] eq "closed") (set ESPEasy_06_Garagentor open) (set ESPEasy_06_Garagentor close)
DOELSEIF (["$SELF:mybutton: on"] and [?$SELF] eq "stopped") (set ESPEasy_06_Garagentor open)
#Status
attr doif_Garagentor_status cmdState open|move|closed|set_closed|stopp|set_open|secure_open
#Bedienung
attr doif_Garagentor_status readingList mybutton
attr doif_Garagentor_status setList mybutton:on
attr doif_Garagentor_status webCmd mybutton
#Automatik
attr doif_Garagentor_status wait 0:0:0:0:0:0,500:0
Ich lass das erstmal auf dich wirken, kannst ja noch nachfragen.
Achja, die ESPEasy_06_Garagentor-Set-Befehle habe ich mir aus den Fingern gesogen, kenne ESPEasy nicht weiter. Musst du anpassen.
@Per: Danke für den Vorschlag.
Mein Tor hat aber nur eine ein-Knopf-Bedienung. Drücken = auf, nochmal drücken = stop, nochmal drücken = zu. Und als Zstandsmeldung auf und zu. Wenn beides nicht zutrifft = move.
Funktioniert dein Vorschlag damit?
Weiss ich nicht.
Die Zustandsmeldung passt auf jeden Fall (wird ja extern erzeugt).
Zitat von: trs am 02 Februar 2018, 12:47:01nochmal drücken = stop
Auch wenn es steht? Oder nur, wenn es gerade "move" ist? Und in welche Richtung fährt es aus "stopp" heraus? In die alte oder immer nach oben?
Falls letzteres, kannst du alle set-Befehle durch
set xxx toggle (toggle ist ja eh nur ein fhem-interner Platzhalter) ersetzen.
Ein mehrfaches Start-Stopp ohne Erreichen der Endlage könnte aber Schwierigkeiten machen, da habe ich nicht weiter geschaut. Dazu müsste man die Status zwischenspeichern oder die Bedingungen erweitern.
Folgendermaßen :
Tor zu - Knopfdruck - Tor geht auf - Knopfdruck - Tor stoppt - Knopfdruck - Tor geht wieder zu
Tor auf - Knopfdruck - Tor geht zu - Knopfdruck - Tor stoppt - Knopfdruck - Tor geht auf
Bin noch nich viel weiter. Dadurch, dass der Knopf 25 sec gedrückt gehalten wird (die Zeit für eine komplette Torfahrt) kann in dieser Zeit nicht mit dem originalen Schalter "dazwischen gefunkt" werden. Somit gibt es keine undefinierte Stellung.
define doif_Garagentor_oeffnen DOIF ([Garagentor:state] eq "toggle") (set Garagentor "wait"; set ESPEasy_06_Garagentor on; sleep 25; set ESPEasy_06_Garagentor off)
Aber weiter bin ich nicht.
Hi,
also ich habe hier ein Hörmann Garagentor, das hat auch nur einen Eingang (oder Funkkanal auf der Fernbedienung).
Tor auf -> Taste -> Tor fährt zu -> Tor zu -> Taste -> Tor auf (oder)
Tor auf -> Taste -> Tor fährt zu-> Taste -> Tor hält an -> Taste -> Tor fährt auf -> Tor auf
Ich habe mir Deine Frage zum Anlass genommen einen ESP8266 mit ESPEasy Mega (Testversion 4096) zu flashen.
Kernideen:
- ESPEasy Bridge als FHEM Gateway
- ESPEasy Device als Gegenpart zur ESP8266 Hardware in der Garage,
* zeigt den aktuellen Status der Garage
* und liest dafür zwei Switches/Reedkontake Tor_zu bzw. "Reed_Closed" (GPIO-12) und Tor_auf bzw. "Reed_Opened" (GPIO-13) und
* fährt/stoppt das Garagentor über longpulse 2sec (GPIO-16)
* hat Status LED (GPIO-2)
- dummy ,,Garage" zur Interaktion mit HomeBridge/Siri
- notify übergibt tatsächlichen Status des Tors an Garage für Homebridge/Siri
Sieht jetzt schon ganz okay aus, die lists liefere ich hier nach:
ESPEasy Hardware wesentliche Einstellungen:
Seite Tools, Button Advanced:
Rules: checked
Seite Controller:
Protocol: FHEM HTTP
Locate Controller: Use Hostname
Controller Hostname: fhem.fritz.box
Controller Port: 8383
Controller User: Beispiel
Controller Password: Geheim
Enabled: checked
Seite Hardware:
Wifi Status LED: none
I2C: none und none
SPI: not checked
Alle Pin mode: default
außer 2 (D4), 12 (D6), 13 (D7): Input
und 16 (D0): Output low
Seite Devices, 4 Stück:
Analog Input - internal
Name: [leer]
Enabled: checked
Internal PullUp: checked
Inversed Logic : checked
1st GPIO: GPIO-2 (D4)
Switch Type: Switch
Switch Button Type: Normal Switch
Sent Bootstate: checked
Sent to Controller: checked
Delay: 0
Value 1 Name: LED
Analog Input - internal
Name: Garagentor
Enabled: checked
Internal PullUp: checked
Inversed Logic : checked
1st GPIO: GPIO-12 (D6)
Switch Type: Switch
Switch Button Type: Normal Switch
Sent Bootstate: checked
Sent to Controller: checked
Delay: 0
Value 1 Name: Reed_Closed
Analog Input - internal
Name: Garagentor
Enabled: checked
Internal PullUp: checked
Inversed Logic : checked
1st GPIO: GPIO-13 (D7)
Switch Type: Switch
Switch Button Type: Normal Switch
Sent Bootstate: checked
Sent to Controller: checked
Delay: 0
Value 1 Name: Reed_Opened
Analog Input - internal
Name: Garagentor
Enabled: checked
Internal PullUp: checked
Inversed Logic : not checked
1st GPIO: GPIO-16 (D0)
Switch Type: Switch
Switch Button Type: Normal Switch
Sent Bootstate: checked
Sent to Controller: checked
Delay: 0
Value 1 Name: Switch
Seite Rules
Rules Set 1:
On System#Boot do
timerSet,1,1
timerSet,2,18
EndOn
On Garagentor#Reed_Closed do
timerSet,1,1
timerSet,2,6
EndOn
On Garagentor#Reed_Opened do
timerSet,1,1
timerSet,2,12
EndOn
On Rules#Timer=1 do
timerSet,3,2
gpio,2,0
EndOn
On Rules#Timer=2 do
timerSet,1,0
timerSet,3,0
gpio,2,1
EndOn
On Rules#Timer=3 do
timerSet,1,1
gpio,2,1
EndOn
FHEM Seite:
list espBridge
Internals:
CONNECTS 2290
DEF bridge 8383
FD 21
HOST bridge
IPV 4
MAX_HTTP_SESSIONS 3
MAX_QUEUE_SIZE 250
NAME espBridge
NOTIFYDEV global
NR 138
NTFY_ORDER 50-espBridge
PORT 8383
STATE initialized
SUBTYPE bridge
TYPE ESPEasy
VERSION 1.35
READINGS:
2018-02-03 18:26:27 state initialized
helper:
pm:
Encode 1
JSON 1
queue: 192.168.188.120:
sessions: 192.168.188.120 0
Attributes:
authentication 1
autocreate 1
combineDevices 0
group ESPEasy Bridge
room ESPEasy,Gateways,Software
verbose 3
set espBridge pass geheim
set espBridge user Beispiel
list ESPEasy_ESP_Garage:
Internals:
DEF 192.168.188.120 80
espBridge ESP_Garage
ESP_BUILD 20000
ESP_BUILD_GIT mega-20180111
ESP_BUILD_NOTES - Mega
ESP_NODE_TYPE_ID 17:
ESP Easy Mega ESP_SLEEP 0
ESP_UNIT 1
ESP_VERSION 2
HOST 192.168.188.120
IDENT ESP_Garage
INTERVAL 300
IODev espBridge
LASTInputDev espBridge
MSGCNT 1999
NAME ESPEasy_ESP_Garage
NOTIFYDEV global
NR 162
NTFY_ORDER 50-ESPEasy_ESP_Garage
PORT 80
STATE -57.00
SUBTYPE device
TYPE ESPEasy
VERSION 1.35
espBridge_MSGCNT 1999
espBridge_TIME 2018-02-04 18:01:33
READINGS:
2018-02-04 10:59:57 LED off
2018-02-04 18:01:33 WiFi_RSSI -57.00
2018-02-04 17:58:56 presence present
2018-02-03 18:26:27 state opened
helper:
fpc 1517678797
pm: Encode 1
JSON 1
received:
LED 1517738397
WiFi_RSSI 1517763693
Attributes:
IODev espBridge
Interval 300
devStateIcon /close:ios-on-green:open/open:ios-off:close/absent:10px-kreis-rot:statusRequest/.*:ios-NACK:check/
eventMap /longpulse 16 1 2:toggle/
group ESPEasy
Device icon building_carport
presenceCheck 1
readingSwitchText 1
room Garage,ESPEasy,Hardware,MQTT
setState 0
stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"WiFi_RSSI","") }
webCmd reboot:toggle
list ESPEasy_ESP_Garage_Garagentor:
Internals:
DEF 192.168.188.120 80 espBridge ESP_Garage_Garagentor
ESP_BUILD 20000
ESP_BUILD_GIT mega-20180111
ESP_BUILD_NOTES - Mega
ESP_NODE_TYPE_ID 17: ESP Easy Mega
ESP_SLEEP 0
ESP_UNIT 1
ESP_VERSION 2
HOST 192.168.188.120
IDENT ESP_Garage_Garagentor
INTERVAL 300
IODev espBridge
LASTInputDev espBridge
MSGCNT 306
NAME ESPEasy_ESP_Garage_Garagentor
NOTIFYDEV global
NR 163
NTFY_ORDER 50-ESPEasy_ESP_Garage_Garagentor
PORT 80
STATE Close
SUBTYPE device
TYPE ESPEasy
VERSION 1.35
espBridge_MSGCNT 306
espBridge_TIME 2018-02-04 10:59:53
READINGS:
2018-02-04 10:59:53 Reed_Closed on
2018-02-04 10:59:52 Reed_Opened off
2018-02-04 10:40:21 Switch off
2018-02-04 18:09:01 presence absent
2018-02-04 18:09:01 state absent
helper:
fpc 1517678795
pm:
Encode 1
JSON 1
received:
Attributes:
IODev espBridge
Interval 300
devStateIcon Open:fts_garage_door_10:toggle Close:fts_garage_door_100:toggle Running:fts_garage_door_50:toggle
eventMap /longpulse 16 1 2:running/longpulse 16 1 2:open/longpulse 16 1 2:closed/longpulse 2 0 2:sim/gpio 12 0:simclose/gpio 13 1:simclose2/gpio 12 1:simopen2/gpio 13 0:simopen/longpulse 16 1 2:toggle/longpulse 16 1 1:autoclose/
genericDeviceType garage
group ESPEasy Device
icon fts_garage
presenceCheck 1
readingSwitchText 1
room ESPEasy,Garage,Hardware
setState 3
siriName Garage
stateFormat {ReadingsVal($name,"Reed_Opened","") eq "on" ? "Open" : ReadingsVal($name,"Reed_Closed","") eq "on" ? "Close" : "Running"}
webCmd toggle:autoclose:sim
list ESPEasy_ESP_Garage_Garagentor_DOIF_1:
Internals:
DEF ([ESPEasy_ESP_Garage_Garagentor:"^sim$"] and [ESPEasy_ESP_Garage_Garagentor] eq "Close") (
set ESPEasy_ESP_Garage_Garagentor simopen2,
set ESPEasy_ESP_Garage_Garagentor simopen)
DOELSEIF ([ESPEasy_ESP_Garage_Garagentor:"^sim$"]) (
set ESPEasy_ESP_Garage_Garagentor simclose2,
set ESPEasy_ESP_Garage_Garagentor simclose)
DOELSE ()
NAME ESPEasy_ESP_Garage_Garagentor_DOIF_1
NR 195
NTFY_ORDER 50-ESPEasy_ESP_Garage_Garagentor_DOIF_1
STATE cmd_3
TYPE DOIF
READINGS:
2018-02-04 18:14:06 Device ESPEasy_ESP_Garage_Garagentor
2018-02-04 10:34:55 cmd 3
2018-02-04 10:34:55 cmd_event ESPEasy_ESP_Garage_Garagentor
2018-02-04 10:34:55 cmd_nr 3
2018-02-04 18:14:06 e_ESPEasy_ESP_Garage_Garagentor_STATE Close
2018-02-04 18:14:06 e_ESPEasy_ESP_Garage_Garagentor_events absent
2018-02-03 22:13:07 mode enabled
2018-02-04 10:34:55 state cmd_3
Regex:
condition:
0 EventDoIf('ESPEasy_ESP_Garage_Garagentor',$hash,'^sim$',1) and InternalDoIf($hash,'ESPEasy_ESP_Garage_Garagentor','STATE') eq "Close"
1 EventDoIf('ESPEasy_ESP_Garage_Garagentor',$hash,'^sim$',1)
devices:
0 ESPEasy_ESP_Garage_Garagentor
1 ESPEasy_ESP_Garage_Garagentor
all ESPEasy_ESP_Garage_Garagentor
do:
0:
0 set ESPEasy_ESP_Garage_Garagentor simopen2, set ESPEasy_ESP_Garage_Garagentor simopen
1:
0 set ESPEasy_ESP_Garage_Garagentor simclose2, set ESPEasy_ESP_Garage_Garagentor simclose
2:
0
helper:
DOIF_Readings_events
DOIF_eventas
event absent
globalinit 1
last_timer 0
sleeptimer -1
timerdev ESPEasy_ESP_Garage_Garagentor
timerevent absent
triggerDev ESPEasy_ESP_Garage_Garagentor
timerevents:
absent
timereventsState:
state: absent
triggerEvents:
absent
triggerEventsState:
state: absent
internals:
0 ESPEasy_ESP_Garage_Garagentor:STATE
all ESPEasy_ESP_Garage_Garagentor:STATE
itimer:
readings:
trigger:
all ESPEasy_ESP_Garage_Garagentor
uiState:
uiTable:
Attributes:
icon helper_doif
room Garage,Software
list ESPEasy_ESP_Garage_Garagentor_notify_1:
Internals:
DEF ESPEasy_ESP_Garage_Garagentor:Ree:.on.*|ESPEasy_ESP_Garage_Garagentor:Ree:.off.* {
my $r1 = Value("ESPEasy_ESP_Garage_Garagentor");;
my $r2 = Value("Garage");;
if ($r1 eq "Close") {
fhem "setreading Garage CurrentDoorState closed;set Garage off"
} else {
if ($r1 eq "Open") {
fhem "setreading Garage CurrentDoorState opened;set Garage on"
} else {
if ($r1 eq "Running") {if ($r2 eq "closed") {
fhem "setreading Garage CurrentDoorState opening"} else {
fhem "setreading Garage CurrentDoorState closeing"}
} else {
fhem "setreading Garage CurrentDoorState $r1",,$r1
}}}}
NAME ESPEasy_ESP_Garage_Garagentor_notify_1
NOTIFYDEV ESPEasy_ESP_Garage_Garagentor
NR 192
NTFY_ORDER 50-ESPEasy_ESP_Garage_Garagentor_notify_1
REGEXP ESPEasy_ESP_Garage_Garagentor:Ree:.on.*|ESPEasy_ESP_Garage_Garagentor:Ree:.off.*
STATE 2018-02-04 11:00:01
TYPE notify
READINGS:
2018-02-04 10:18:58 state active
Attributes:
icon system_fhem_reboot
room Garage,Software
list ESPEasy_ESP_Garage_Garagentor_watchdog_1:
Internals:
CMD define Garage_autclose at +00:00:02 set ESPEasy_ESP_Garage_Garagentor autoclose
DEF ESPEasy_ESP_Garage_Garagentor:autoclose 00:00:30 ESPEasy_ESP_Garage_Garagentor:Reed_Closed:.on define Garage_autclose at +00:00:02 set ESPEasy_ESP_Garage_Garagentor autoclose
NAME ESPEasy_ESP_Garage_Garagentor_watchdog_1
NOTIFYDEV ESPEasy_ESP_Garage_Garagentor,ESPEasy_ESP_Garage_Garagentor_watchdog_1
NR 193
NTFY_ORDER 50-ESPEasy_ESP_Garage_Garagentor_watchdog_1
RE1 ESPEasy_ESP_Garage_Garagentor:autoclose
RE2 ESPEasy_ESP_Garage_Garagentor:Reed_Closed:.on
STATE defined
TO 30
TYPE watchdog
READINGS:
2018-02-03 21:40:53 Activated activated
2018-02-02 23:30:29 Triggered triggered
2018-02-02 19:10:52 state defined
Attributes:
autoRestart 1
icon ampel_gruen
room Garage,Software
list Garage:
Internals:
NAME Garage
NR 197
STATE closed
TYPE dummy
READINGS:
2018-02-04 11:00:01 CurrentDoorState closed
2018-02-03 19:57:39 TargetDoorState closed
2018-02-04 11:00:01 state off
Attributes:
devStateIcon closed:fts_garage_door_100:on opened:fts_garage_door_10:off opening:fts_garage_door_30:on closing:fts_garage_door_70:off
genericDeviceType garage
icon fts_garage
readingList CurrentDoorState
room Garage,Homekit,Software
stateFormat {
(ReadingsVal($name,"state","") eq "on" ||
ReadingsVal($name,"state","") eq "opened" ) ?
(ReadingsVal($name,"CurrentDoorState","") eq "opened" ? "opened" : "opening" ) :
(ReadingsVal($name,"state","") eq "off" ||
ReadingsVal($name,"state","") eq "closed" ) ?
(ReadingsVal($name,"CurrentDoorState","") eq "closed" ? "closed" : "closing" ) : "undefined"}
webCmd on:off
list Garage_notify_1:
Internals:
CFGFN
DEF Garage:o*{
if ($EVENT eq "on") {
fhem "setreading Garage TargetDoorState opened"
} else {
fhem "setreading Garage TargetDoorState closed"
}
}
NAME Garage_notify_1
NOTIFYDEV Garage
NR 323
NTFY_ORDER 50-Garage_notify_1
REGEXP Garage:o*{
STATE active
TYPE notify
READINGS:
2018-02-03 20:00:38 state active
Attributes:
icon system_fhem_reboot
room Garage,Software
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Hi,
wow selbst copy und paste dauert ;-) Wenn noch was fehlt einfach melden.
Deine "Schliesse nach drei Minuten Logik" steckt in dem Watchdog.
Das DoIf ist nur zur Simulation der Reedkontakte.
Die Garage ist nur für homebridge/Siri.
Das notify vermittelt zwisvhen ESP Device und homebridge.
Gruß Arnd
@RasiLED:
ich teste Deine Lösung mit einem zweiten Sonoff Basic. Der erste hängt schon in der Garage. Bei dem Basic weden der GPIO 1 (reed zu), GPIO 3 (reed auf) und der GPIO 14 (Relais Tor Betätigung) genutzt. Muss ich ändern. Welche ESPEasy Version hast Du verwendet?
Danke für Deine Hilfe.
Hi,
mega-20180111 git test version von hier:
https://github.com/letscontrolit/ESPEasy/releases
" On the linked page you will find two daily builds of ESPEasy.
For some clarification:
Release V2.0-<date>: Beta version of the next stable release, no new features, bugfixes only.
Release mega-<date>: Bleeding edge of development"
Ich brauchte die Testversion auf einem ESP w/ der (Klingel-)Tonausgabe auf einem Lautsprecher rtttl.
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Hallo Arnd,
ich bin jetzt erst wieder dazu gekommen, mich um die Garagentor Steuerung zu kümmern. Ein paar Fragen :
- Was bedeuteten die Smylies im Listing?
- Bei dem Sonoff Basic kann ich nur 3 GPIOs nutzen: GPIO 1 und 3 für auf und zu, und 14 für das Relais. Wozu ist dieLED? Kann ich die eingebaute LED an GPIO 13 verwenden?
Gruß
Thorsten
Hi, also die LED ist die eingebaute auf meinem ESP ;-) Insofern ja.
Smileys? Habe ich keine in meinen Listings. Ist das ein Autoersetzen Deines Endgerätes? Schau mal in der Normalen Webansicht. Ah jetzt sehe ich was Du meinst in Tapatalk:
Garage:o*{
if ($EVENT eq "on")
also Doppelpunkt kleinesO ":o" wird zu Smiley
Ich habe oben noch eine zip mit dem Auszug aus meiner fhem.cfg angehängt!
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Hi,
Ist hier Interesse für eine upgedatete Lösung der ESPeasy Firmware auf Sonoff/Wemos D1 mit Relais für Hörmann Supramatic Antriebe?
Bei mir läuft jetzt seit ca. 1 Woche "alles" auf dem ESP selbst. Inklusive Automatikmode mit 5 Minuten Überwachung auf Zielzustand und Relais Status und LED Status und Simulationsmode und ...
FHEM Integration passt, LogFile und Graph zum Verhalten stehen.
HomeBridge Mappings über CurrentDoorState, TargetDoorState und Obstruction inklusive ;-)
Falls es noch wen Anderen interessiert, würde ich noch zwei Dinge umbauen:
1) Gleiche GPIOs wie der Sonoff (Belegung muss mir jemand sagen!)
2) Native States wie bei Homebridge (Ist im Moment invers und muss per Mapping getauscht werden)
Gruß Arnd
Zitat von: RaspiLED am 23 Februar 2018, 21:57:52
Hi,
Ist hier Interesse für eine upgedatete Lösung der ESPeasy Firmware auf Sonoff/Wemos D1 mit Relais für Hörmann Supramatic Antriebe?
Würde mich schon interessieren wie du das umgesetzt hast.
Du hast die Firmware des ESP so angepasst, das die komplette Steuerung im ESP läuft und an FHEM nur noch die Torzustände gesendet werden ?
HW1
Moin,
habe auch Interesse an der Sonoff All-In Lösung.
Folgende GPIOs beim Sonoff Basic (Serial Port abgeschaltet) :
GPIO 1 und 3 Eingang für Tor auf und zu
GPIO 13 LED
GPIO 14 Schaltrelais (muss hardwareseitig potentialfrei gemacht werden, siehe Seite 1)
Zitat von: trs am 24 Februar 2018, 17:43:16
GPIO 1 und 2 Eingang für Tor auf und zu
GPIO 13 LED
GPIO 14 Schaltrelais (muss hardwareseitig potentialfrei gemacht werden, siehe Seite 1)
Bei mir, Sonoff Basic ist es:
Relais GPIO 12
TOR_zu GPIO 1
TOR_auf GPIO 3
Das sollte doch bei alles Sonoffs Basic gleich sein [emoji47]
Seltsam, bei mir geht GPIO 14.
Geht beides☺️
Hi,
https://github.com/arendst/Sonoff-Tasmota/wiki/Sonoff-Basic#serial-connection
Spannend, welche Versionen sonoff Basic habt Ihr? V1.1?
Okay also meine Konvention wird:
GPIO-01 Garage Auf (ESP interner PullUp mit Schalten nach Ground, also Invers)
GPIO-03 Garage Zu (ESP interner PullUp mit Schalten nach Ground, also Invers)
GPIO-12 Relais Garagenschalter (ext. PullDown z.B. 10K mit Schalten nach 3V3)
GPIO-13 LED (Wie ist die LED verkabelt?
GPIO-14 (not used)
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Schon geändert
Hi,
ich hatte jetzt kein Feedback auf meine GPIO Annahmen oben erhalten.
Zusätzlich habe ich das Problem, dass ich keinen Sonoff Basic zum Testen hier habe.
Meine ESP8266/4096 (z.B. Node MCU oder Wemos D1) haben die GPIO 1 und 3 gar nicht :-(
Daher habe ich jetzt folgende GPIO verwendet:
GPIO-00 Garage Auf (ESP interner PullUp mit Schalten nach Ground, also Invers)
GPIO-04 Garage Zu (ESP interner PullUp mit Schalten nach Ground, also Invers)
GPIO-12 Relais Garagenschalter (ext. PullDown z.B. 10K Ohm mit Schalten nach 3V3)
GPIO-13 LED (LED über 470 Ohm an Ground)
Als EasyESP Software setzte ich ein MEGA Release von https://github.com/letscontrolit/ESPEasy/releases (https://github.com/letscontrolit/ESPEasy/releases) ein,
z.B. "ESP_Easy_mega-20180219_test_ESP8266_4096.bin"
Also hier zu den Inhalten:
FHEM Defines:
define espBridge ESPEasy bridge 8383
attr espBridge allowedIPs 192.168.188.1/24 attr espBridge authentication 1
attr espBridge autocreate 1
attr espBridge combineDevices 0
attr espBridge group ESPEasy Bridge
attr espBridge room ESPEasy,Gateways,Software
attr espBridge verbose 3
define ESPEasy_ESP_Garage_GarageDoor ESPEasy 192.168.188.126 80 espBridge ESP_Garage_GarageDoor
attr ESPEasy_ESP_Garage_GarageDoor IODev espBridge
attr ESPEasy_ESP_Garage_GarageDoor Interval 300
attr ESPEasy_ESP_Garage_GarageDoor devStateIcon Open:fts_garage_door_10:close Closed:fts_garage_door_100:open Closing:fts_garage_door_70:close Opening:fts_garage_door_30:open Stopped:fts_garage:close
attr ESPEasy_ESP_Garage_GarageDoor event-min-interval .*:900
attr ESPEasy_ESP_Garage_GarageDoor event-on-change-reading .*
attr ESPEasy_ESP_Garage_GarageDoor eventMap /event Close:stopped/event Open:opening/event Close:closing/event Open:open/event Close:close/event Simulate:sim/event SimulateEnd:simEnd/event Toggle:toggle/event AutoClose:autoclose/
attr ESPEasy_ESP_Garage_GarageDoor genericDeviceType GarageDoorOpener
attr ESPEasy_ESP_Garage_GarageDoor group ESPEasy Device
attr ESPEasy_ESP_Garage_GarageDoor homebridgeMapping Clear CurrentDoorState=ESPEasy_ESP_Garage_GarageDoor:CurrentDoorState,values=0:0;;1:1;;2:2;;3:3;;/.*/:4 TargetDoorState=ESPEasy_ESP_Garage_GarageDoor:TargetDoorState,values=1:1;;0:0,cmdOff=open,cmdOn=close ObstructionDetected=ESPEasy_ESP_Garage_GarageDoor:ObstructionDetected,values=0:0;;/.*/:1
attr ESPEasy_ESP_Garage_GarageDoor icon fts_garage
attr ESPEasy_ESP_Garage_GarageDoor presenceCheck 1
attr ESPEasy_ESP_Garage_GarageDoor readingSwitchText 1
attr ESPEasy_ESP_Garage_GarageDoor room ESPEasy,Garage,Hardware,Homekit
attr ESPEasy_ESP_Garage_GarageDoor setState 3
attr ESPEasy_ESP_Garage_GarageDoor siriName GarageDoor
attr ESPEasy_ESP_Garage_GarageDoor stateFormat {ReadingsVal($name,"CurrentDoorState","") eq "0" ? "Open" : ReadingsVal($name,"CurrentDoorState","") eq "1" ? "Closed" :ReadingsVal($name,"CurrentDoorState","") eq "2" ? "Opening" :ReadingsVal($name,"CurrentDoorState","") eq "3" ? "Closing" : ReadingsVal($name,"CurrentDoorState","") eq "4" ? "Stopped" : "Undefined"}
attr ESPEasy_ESP_Garage_GarageDoor webCmd close:open:toggle:autoclose:sim:simEnd
define ESPEasy_ESP_Garage_GarageDoorSets ESPEasy 192.168.188.126 80 espBridge ESP_Garage_GarageDoorSets
attr ESPEasy_ESP_Garage_GarageDoorSets IODev espBridge
attr ESPEasy_ESP_Garage_GarageDoorSets Interval 300
attr ESPEasy_ESP_Garage_GarageDoorSets group ESPEasy Device
attr ESPEasy_ESP_Garage_GarageDoorSets presenceCheck 1
attr ESPEasy_ESP_Garage_GarageDoorSets readingSwitchText 1
attr ESPEasy_ESP_Garage_GarageDoorSets room ESPEasy
attr ESPEasy_ESP_Garage_GarageDoorSets setState 3
define GarageDoorFileLog FileLog ./log/GarageDoor_Filelog_%Y%m.log ESPEasy_ESP_Garage_GarageDoor:*
attr GarageDoorFileLog room Logs
define SVG_GarageDoorFileLog_1 SVG GarageDoorFileLog:SVG_GarageDoorFileLog_1:CURRENT
attr SVG_GarageDoorFileLog_1 captionPos left
attr SVG_GarageDoorFileLog_1 room Garage,Plots
SVG Plot Datei /opt/fhem/www/gplot/SVG_GarageDoorFileLog_1.gplot
# Created by FHEM/98_SVG.pm, 2018-02-27 15:50:23
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics ("Open" 100, "Run" 50, "Closed" 0)
set y2tics ("Active" 80, "Deactive" 20)
set grid ytics y2tics
set ylabel "DoorStates"
set y2label "State"
set yrange [-20:120]
set y2range [-20:120]
#GarageDoorFileLog 4:ESPEasy_ESP_Garage_GarageDoor.CurrentDoorState\x3a::$fld[3]=~"1"?102:0
#GarageDoorFileLog 4:ESPEasy_ESP_Garage_GarageDoor.TargetDoorState\x3a::$fld[3]=~"1"?100:2
#GarageDoorFileLog 4:ESPEasy_ESP_Garage_GarageDoor.RelaisState\x3a::$fld[3]=~"1"?80:20
#GarageDoorFileLog 4:ESPEasy_ESP_Garage_GarageDoor.ObstructionDetected\x3a::$fld[3]=~"1"?78:22
plot "<IN>" using 1:2 axes x1y1 title 'CurrentDoorState' ls l1 lw 1 with steps,\
"<IN>" using 1:2 axes x1y1 title 'TargetDoorState' ls l0 lw 1 with steps,\
"<IN>" using 1:2 axes x1y2 title 'Relais' ls l3 lw 1 with steps,\
"<IN>" using 1:2 axes x1y2 title 'Obstruction' ls l4 lw 1 with steps
EasyESP Einstellungen sind besser im angehängten File zu sehen, da Bilder...
Rules Page in ESPEasy:
[RulesSet1]
on System#Boot do // fired at boot
TaskValueSet 1,1,4 // CurrentDoorState (0=opened, 1=closed, 2=opening, 3=closing, 4=stopped)
TaskValueSet 1,2,1 // TargetDoorState (0=opened, 1=closed)
TaskValueSet 1,3,0 // RelaisState (0=off, 1=on)
TaskValueSet 1,4,0 // Obstruction (0=not detected, no sensor available)
TaskValueSet 2,1,1 // AutoMode (0=off, 1=on)
TaskValueSet 2,2,300 // AutoTestFrequency (in seconds)
TaskValueSet 2,3,0 // Simulate (0=off, 1=on)
TaskValueSet 2,4,30 // SimulationFrequency (in seconds)
gpio,13,0 // LED (0=off, 1=on)
gpio,12,0 // Relais (0=off, 1=on)
timerSet,1,300 // AutoTestTimer starten
endon
On Clock#Time=All,20:00 do // Defaults jeden Tag um 20:00 Uhr
TaskValueSet 1,2,1
TaskValueSet 2,1,1
TaskValueSet 2,2,300
TaskValueSet 2,3,0
TaskValueSet 2,4,30
timerSet,1,300
endon
on Drive do // Toggle Door and LED Lightshow
LongPulse,12,1,1
Pulse,13,1,200
Pulse,13,0,200
Pulse,13,1,200
Pulse,13,0,200
Pulse,13,1,200
timerSet,1,[GarageDoorSets#AutoTestFrequency] // Restart Check
endon
on AutoClose do
event ActivateAutoMode
TaskValueSet 1,2,1
timerSet,1,1
endon
on DoorClose do
TaskValueSet 1,2,1
event Check_Close
endon
On DoorOpen do
TaskValueSet 1,2,0
event Check_Open
endon
on ActivateAutoMode do
TaskValueSet 2,1,1
endon
on ActivateManualMode do
TaskValueSet 2,1,0
endon
On Check_Target do
If [GarageDoor#TargetDoorState]=0
event Check_Open
Else
event Check_Close
Endif
Endon
On Check_Open do
If [GarageDoor#CurrentDoorState]=0
Pulse,13,1,100
Pulse,13,0,200
Pulse,13,1,300
Pulse,13,0,400
Pulse,13,1,500
Else
timerSet,2,1
endif
endon
On Check_Close do
If [GarageDoor#CurrentDoorState]=1
Pulse,13,1,500
Pulse,13,0,400
Pulse,13,1,300
Pulse,13,0,200
Pulse,13,1,100
Else
timerSet,2,1
endif
endon
[RuleSet2]
on GarageDoor#DoorClosed=1 do
TaskValueSet 1,1,1
endon
on GarageDoor#DoorClosed=0 do
If [GarageDoor#CurrentDoorState]=1
TaskValueSet 1,1,2
endif
endon
on GarageDoor#DoorOpen=1 do
TaskValueSet 1,1,0
endon
on GarageDoor#DoorOpen=0 do
If [GarageDoor#CurrentDoorState]=0
TaskValueSet 1,1,3
endif
endon
on Rules#Timer=1 do
If [GarageDoorSets#AutoMode]=1 // AutoModus active?
Event Check_Target
Else
timerSet,4,1
Endif
timerSet,1,[GarageDoorSets#AutoTestFrequency] // Restart Check
Endon
on Toggle do // Toggle and switch GarageDoorTarget
if [GarageDoor#TargetDoorState]=0
TaskValueSet 1,2,1
else
TaskValueSet 1,2,0
endif
Event Drive
endon
on Close do // Set GarageDoorTarget to close and drive if needed
TaskValueSet 1,2,1
Event Check_Target
endon
on Open do // Set GarageDoorTarget to close and drive if needed
TaskValueSet 1,2,0
Event Check_Target
endon
on Rules#Timer=2 do
event Drive
endon
on GarageDoor#Relais do
TaskValueSet 1,3,%eventvalue%
endon
on Rules#Timer=4 do // LED Lightshow Manual Mode
Pulse,13,1,500
Pulse,13,0,500
Pulse,13,1,500
endon
[RuleSet3]
on Simulate do
TaskValueSet 2,3,1
timerSet,3,1
endon
on Rules#Timer=3 do // Simulation
If [GarageDoor#CurrentDoorState]=0
event Simulate_Close
Else
event Simulate_Open
Endif
Pulse,13,1,100
Pulse,13,0,100
Pulse,13,1,100
Pulse,13,0,100
Pulse,13,1,100
timerSet,3,[GarageDoorSets#SimulationFrequency]
endon
on SimulateEnd do
TaskValueSet 2,3,0
gpio,0,1
gpio,4,1
timerSet,3,0
endon
on Simulate_Open do
TaskValueSet 1,2,0
delay 5
gpio,4,1
delay 5
gpio,0,0
endon
on Simulate_Close do
TaskValueSet 1,2,1
delay 5
gpio,0,1
delay 5
gpio,4,0
endon
Was müsstet ihr meiner Meinung nach für Sonoff Basic noch ändern?
1.) Richtige EasyESP Firmware für Sonoff nehmen, wieviel Flash hat der 512 oder 4096?
2.) GPIO 1 und 3 verwenden:
a.) auf Devices Tab GPIO 1 statt 0 und GPIO 3 statt 4 auswählen
b.) in RuleSet 3 alle "gpio,0" durch "gpio,1" und "gpio,4" durch "gpio,3" ersetzten
3.) Hier mal posten ob es klappt ;-)
Gruß Arnd
Hallo Arnd,
werde mir das mal auf einen Sonoff packen und testen. Denke ich schaffe das bis zum WE. Werde dann mal berichten.
Gruß HW1
Ich habe jetzt mal alles auf einen Sonoff geflasht und eingerichtet.
Bin mir aber nicht sicher ob alles funktioniert. Kannst Du kurz zu den Readings etwas sagen was sie bedeuten ?
Was bedeutet autoclose, sim und simend ?
Diese Readings sind mir noch nicht klar.
AutoMode
AutoTestFrequency
CurrentDoorState
LEDState
ObsturctionDetected
RelaisState
Simulation
TargetDoorState
Hi,
ich habe heute mit Siri gesprochen und noch Fehler gefunden.
Morgen kommt ein Update für HomeBridgeMapping, Eventmap und für die Rules ;-(
Die Dummy sind beschrieben in Kommentaren in der System#Boot unter Rules 1.
Wesentlich sind in der Hombridge Logik:
- CurrentDoorState welches den Ist Status des Tors anzeigt. (0=auf, 1=zu, 2=öffnend, 3=schliessend, 4=gestoppt) Gefüttert über die Kontakte an den GPIOs (DoorClosed, DoorOpen).
- TargetDoorState sagt wie das Toor eigentlich sein soll (0=auf, 1=zu)
- Obstruction ist ein Sabotage Alarm, der immer auf 0 ist, da wir keinen GPIO dafür haben
Mit autoclose soll das Tor zufahren (und danach prüfen ob es auch zu bleibt) über Event AutoClose
Mit sim starte ich die Simulation über das Event Simulation
Mit simend beende ich die Simulation über Event Simulation_End
Achso die Rules in ESPEasy muss man unter den Advanced Einstellungen erst aktivieren, bevor man etwas reinschreiben kann.
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Moin,
so habe Beitrag 63 upgedatet. Jetzt geht auch HomeBridge und Siri ;-)
Zusätzlich gibt es jetzt noch ein klares Kommando zum schliessen ("event close") und eins zum öffnen ("event open") in ESPEasy.
Gruß Arnd
Zitat von: RaspiLED am 01 März 2018, 10:26:32
so habe Beitrag 63 upgedatet. Jetzt geht auch HomeBridge und Siri ;-)
Zusätzlich gibt es jetzt noch ein klares Kommando zum schliessen ("event close") und eins zum öffnen ("event open") in ESPEasy.
Hi Arnd,
Habs mal nach deinem update angepasst, jetzt reagiert aber toggle, close und open nicht ??
Der Sonoff schaltet nicht.
Gruß
HW1
Hi,
Hast Du die rules im ESPEasy? Was zeigt Dein FHEM Eventmonitor? Was zeigt der Tools/Log in ESPEasy? Jeweils während Du Toggle, Close, Open in FHEM ,set'est und/oder event toggle, event close, event open in ESPEasy unter Tools eingibst?
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Rules sind drin.
bei Druck auf toggle
Log ESPEasy
2230730 : Dummy: value 3: 0.00
2230730 : Dummy: value 4: 0.00
2230731 : EVENT: GarageDoor#CurrentDoorState=1.00
2231087 : EVENT: GarageDoor#TargetDoorState=1.00
2231448 : EVENT: GarageDoor#RelaisState=0.00
2231809 : EVENT: GarageDoor#ObstructionDetected=0.00
2232222 : SYS : -41.00
2232222 : EVENT: GarageDoor#WifiRSSI=-41.00
2233355 : WD : Uptime 37 ConnectFailures 0 FreeMem 21968
2241315 : EVENT: Toggle
Log Fhem
2018.03.02 15:42:10 3 : ESPEasy: set ESPEasy_ESP_GarageDoor event Toggle
2018-03-02 15:42:10 ESPEasy ESPEasy_ESP_GarageDoor toggle
Relais zieht nicht an, die zustände des Tores werden richtig angezeigt.
Hi,
es kommt also das FHEM toggle als Event Toggle beim ESP an. Soweit sogut! In Rules 2 unter On Toggle do... wird dann ein Event Drive ausgelöst. Das sehe ich bei Dir im Log des ESP nicht. Dort wird auf Rule Page 1 mit longpulse das Relais an gpio 12 für eine Sekunde angezogen.
Bist Du sicher, dass Du die Rules Pages 2&3 auch reinkopiert hast? Was passiert, wenn Du in FHEM ein
set ESPEasy_ESP_GarageDoor event Drive
auslöst? Ansonsten gerne mal Screenshots Deines ESP zeigen ;-)
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Hi Arnd,
Hab jetzt nochmal die 3 Rules aus dem aus dem Tweet reinkopiert, jetzt zieht das Relais an.
Vorher hatte ich die aus der Datei genommen. Vielleicht hatte ich aber auch einen Fehler beim kopieren gemacht. :)
Werd das ganze jetzt mal testen. Was mir aber schon aufgefallen ist, das die Zustandsanzeige CurrentDoorState ca. 10s verzögert ist.
Was mir gut gefällt ist, das die Logik komplett auf dem Sonoff läuft.
Hi,
Nee die ist nicht 10s verzögert. Sondern wird nur alle 60 Sec gesetzt. Kannst Du einstellen im Delay des Dummy Devices (indem CurrentDoorState und TargetDoorState drin sind) ;-) Provoziert aber halt auch jede Menge WLAN Traffic, obwohl das Toor ca 98% der Zeit immer den gleichen Status wie vorher hat. Deshalb dachte ich mir test alle 5 Minuten (AutoTestDelay 300=60*5) und Status jede Minute (60sec) reicht.
Wundere Dich nicht über die blöden event Verschachtelungen, aber ESPEasy kennt keine if in if und leider auch nur 3 event tiefen, so dass ich sogar timer verwenden musste, um den Event Drive zu feuern ;-) Naja, es geht immerhin *lol*
Wenn Du gute Ideen hast immer raus damit ;-)
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Ich meine, wenn das Tor öffnet, wird sofort das Reading DoorOpen und DoorClose gesetzt, aber CurrentDoorState braucht ca. 10s bis sich der Wert ändert. Dadurch ist die Zustandsanzeige um ca. 10s verzögert.
Läuft bis jetzt zuverlässig, bis auf die verzögerungen. Die auch manchmal beim Betätigen von open, close und toggel 2-3s brauchen bis das Relais anzieht.
Hi, ja verstehe genau was Du meinst.
Wie schon geschrieben, der CurrentDoorState wird sofort anhand der GPIO Status DoorClosed und DoorOpen ermittelt. Aber nur alle 60sec an FHEM gemeldet.
Die Verzögerungen beim Relais liegen daran, dass die ESP Hardware halt nicht Multitasking ist. Wenn da gerade etwas mit FHEM redet (z.B. Status Updates) dauert es halt. Schaue ich mir aber noch mal an, insb. Beim öffnen stört es wahrscheinlich.
Wenn Du testest, dann probiere mal über FB den Zustand zu ändern und schaue ob sich das Tor richtig verhält, da ja TargetDoorState dann nicht angepasst wird ;-)
Benutzt Du auch HomeBridge? Welche ESP Firmware nutzt Du auf dem Sonoff? Magst Du Deine Änderungen hier mal dokumentieren?
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Kann man das CurrentDoorState nicht bei Änderung auch direkt an FHEM senden wie das DoorClosed oder Door Open auch ?
Die Sim Befehle sind nur zum testen ? Die könnte man ja dann in der finalen Version aus den Rules rausnehmen oder ?
Ich konnte den Unterschied zwischen Close und Autoclose noch nicht erkennen. Hab das Tor mal mit beiden geschlossen und die Torkontakte dann nur geöffnet aber nicht geschlossen, ich hab aber keinen unterschied gesehen.
Bin am WE leider nicht so richtig zum testen gekommen. Hab den Sketch auf einen Testsonoff und die Türkontakte schölate ich per Brücke.
HomeBridgen nutze ich nicht. Auf den Sonoff ist die mega-20180104
Geändert habe ich bisher eigendlich nichts, ausser die GPIO's an den Sonoff angepasst.
Hi,
also Dummies können leider nicht auf den Delay 0 gesetzt werden, daher gibt es von Haus aus kein direktes Update, sondern nur alle <Delay> Sekunden. Nach abtauchen in die ESPEasy Tiefen gibt es aber eine Lösung. Überall auf den Rules Pages 1&2, wo wir TaskValue,x,... setzen, ergänzen wir ein TaskRun,x. X mit 1 oder 2.
Also z.B.:
on AutoClose do
event ActivateAutoMode
TaskValueSet 1,2,1
TaskRun,1
timerSet,1,1
endon
Ich habe das gerade getestet und scheint zu gehen ;-)
Ja sim und simend brauche ich nur zum testen. Insgesamt sind rules pages 3&4 nur zum testen. Du kannst also webCmd einfach einkürzen!
Autoclose setzt zusätzlich den Automatik Mode und startet den Timer mit 5 Minuten.
Okay die MegaVersion, aber mit wieviel Speicher 1024, 4096?
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Hi,
das mit TaskRun,x klappt prima, jetzt ist die Zustandsanzeige wesentlich schneller.
Wenn Du jetzt nur noch die Torbetätigung bescheinigen könntest. Da vergehen nach druck auf open oder close 2-4 sec bis das Relais anzieht.
Ich musste allerdings aus den Rules 1 die Kommentare rausnehmen, da die Rules sonst zu groß waren. (Data was not saved, exceeds web editor limit!)
Ruels 3 habe ich jetzt mal rausgenommen.
Hab die Mega Version mit 1024
Gruß HW1
Ich sage erstmal danke, es funktioniert.
Eine Sache stört mich, die Meldung in Home, das das "Tor geöffnet wird" kommt erst wenn das Tor am DoorOpen Kontakt ankommt. Öffne ich das Tor nur halb, bekommt man keine Pushnachricht.
Mit den Rules stehe noch etwas auf den Schlauch, wie weit alles entfernen, kann. Brauche nur auf und zu.
Hi,
Die Rules tun nicht weh also drinne lassen ;-) Alternativ Rules Seiten 3 und 4 löschen.
W/ dem halbauf: Die Message kommt von Homekit auf dem iPhone. Das kann ich nicht beeinflussen.
Du könntest allerhöchstens im Homebridge Mapping den Status öffnet auf offen mappen. Bekommst dann aber keine klaren Status mehr mit.
Oder ein Doif bauen, das nach 10 Sekunden öffnet auf offen switched!?
Gruß Arnd
Gesendet von iPhone mit Tapatalk
welche Rules Seite 4 meinst du?
Hi,
Die Rules unter ESPEasy haben die Seiten 1-4. Auf den Seiten 1 und 2 sind die wesentlichen Funktionen des Garagetor ESP, auf den Seiten 3 und 4 hatte ich Debug und Testcode. Falls da noch was stand, kann das weg. Muss aber eben nicht ;-)
Gruß Arnd
Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Rules habe ich Seite 1-2 integriert, soweit alles ok, Schalten per Siri klappt auch.
Wenn ich die Homebridge Neustarte springt die anzeige auf "wird geöffnet..." oder "wird geschlossen..." wo habe ich hier einen Dreher?
Hi,
Das habe ich nicht getestet, aber ich schätze die Homebridge liest dann den Status aus FHEM ein. Kamst Du das Log von Homebridge zeigen oder durchsuchen was da genau passiert? Ich tippe darauf, das TargetDoorState nicht gleich CurrentDoorState ist.
Gruß Arnd
Gesendet von iPhone mit Tapatalk
Hallo Arnd,
auch wenn dieser Thread schon länger ruht, habe ich eine Frage, die mit der hardwareseitigen Garagentorsteuerung zu tun hat.
Ich hab einen Sonoff Basic mit potentialfreiem Relais seit längerem in Gebrauch.
Von Homematic habe ich einen optischen Fenstersensor, der erkennt, wenn das Tor geschlossen ist. Sobald das Tor öffnet, ggf. auch nur ein bißchen geöffnet ist, z.B. auf Lüftungsstellung, also nur einen kleinen Spalt, meldet sich der Homematic-Sensor. Als Software läuft Tasmota in der aktuellen Version, soweit ist alles zufriedenstellend und stabil.
Verbaut sind auch noch außen ein Schlüsselschalter und innen ein Taster, mit dem man das Tor ganz an Fhem vorbei öffnen kann, solange Strom da ist.
Jetzt hab ich mir in den Sinn gesetzt, die Schlüsselschalter/Tasterbetätigung in Fhem zu registrieren. Ich weiß, dass die Tasterbetätigung, ohne weitere Informationen zu haben, Rauf/Stop/Runter bedeuten kann.
Ich hab jetzt mal die Spannung an den beiden rausgeführten Relaiskontakten gemessen, die ja von Fhem zum Absetzten des Rauf/Stop/Runter-Befehls genutzt werden:
- Keine Tasterbetätigung: ca. 27V, fällt mit der Zeit ab, hab auch 20.6V gemessen
- Tasterbetätigung: 0V Spannung zwischen den beiden Relaiskontakten
Wie könnte ich dieses Verhalten in Fhem registrieren?
Mir ist klar, dass ich nicht 27V auf einen GPIO geben kann, da muss eine Z-Diode dazwischen, die die Spannung auf 3.3V reduziert.
Im Falle der Tasterbetätigung müssten dann am GPIO 0V anlegen, so dass man diese high/low-Änderung zur Auswertung nutzen könnte.
Die Frage ist auch am Rande noch, wieviel Energie dabei verbraten wird. Wenn es 1W ist, dann wäre das ja akzeptabel, bei 10W sieht es aber schon anders aus.
Da ich von Elektrotechnik, Potentialen, gemeinsamer Masse, etc. nicht wirklich viel verstehe - außer jemand macht sich die Mühe und erklärt es mir :) - und ich den Garagentorantrieb nicht durch eine solche Aktion zerstören möchte, suche ich nach Hilfe. Wenn es nur um den Sonoff gehen würde, der Verlust wäre verschmerzbar.
Vielleicht kannst du dich der Sache annehmen und mich auf den Pfad der Tugend führen ;).
Wenn es noch jemand gibt, der etwas beitragen kann, dann möchte ich ihn nicht abhalten.
Viele Grüße Gisbert
Hallo Gisbert,
das mit der Z-Diode ist so ne Sache. Ich würde einfach einen Optokoppler nehmen oder ein 24 Volt Miniaturrelais,
das mir bei Betätigung dann den GPIO auf Gnd legt.
Mit Opto oder Relais liegste mit ca. 10 bis 15 mA bei etwa 0,4 Watt.
Andere Option wenn´s nicht unbedingt Potentialfrei sein muss: FET mit Gate-Spannungsteiler --> Leistungslos
Gruß
Papa Romeo
Zitat von: Gisbert am 24 August 2019, 16:15:54
Hallo Arnd,
auch wenn dieser Thread schon länger ruht, habe ich eine Frage, die mit der hardwareseitigen Garagentorsteuerung zu tun hat.
Ich hab einen Sonoff Basic mit potentialfreiem Relais seit längerem in Gebrauch.
Von Homematic habe ich einen optischen Fenstersensor, der erkennt, wenn das Tor geschlossen ist. Sobald das Tor öffnet, ggf. auch nur ein bißchen geöffnet ist, z.B. auf Lüftungsstellung, also nur einen kleinen Spalt, meldet sich der Homematic-Sensor. Als Software läuft Tasmota in der aktuellen Version, soweit ist alles zufriedenstellend und stabil.
Verbaut sind auch noch außen ein Schlüsselschalter und innen ein Taster, mit dem man das Tor ganz an Fhem vorbei öffnen kann, solange Strom da ist.
Jetzt hab ich mir in den Sinn gesetzt, die Schlüsselschalter/Tasterbetätigung in Fhem zu registrieren. Ich weiß, dass die Tasterbetätigung, ohne weitere Informationen zu haben, Rauf/Stop/Runter bedeuten kann.
Ich hab jetzt mal die Spannung an den beiden rausgeführten Relaiskontakten gemessen, die ja von Fhem zum Absetzten des Rauf/Stop/Runter-Befehls genutzt werden:
- Keine Tasterbetätigung: ca. 27V, fällt mit der Zeit ab, hab auch 20.6V gemessen
- Tasterbetätigung: 0V Spannung zwischen den beiden Relaiskontakten
Wie könnte ich dieses Verhalten in Fhem registrieren?
Mir ist klar, dass ich nicht 27V auf einen GPIO geben kann, da muss eine Z-Diode dazwischen, die die Spannung auf 3.3V reduziert.
Im Falle der Tasterbetätigung müssten dann am GPIO 0V anlegen, so dass man diese high/low-Änderung zur Auswertung nutzen könnte.
Die Frage ist auch am Rande noch, wieviel Energie dabei verbraten wird. Wenn es 1W ist, dann wäre das ja akzeptabel, bei 10W sieht es aber schon anders aus.
Da ich von Elektrotechnik, Potentialen, gemeinsamer Masse, etc. nicht wirklich viel verstehe - außer jemand macht sich die Mühe und erklärt es mir :) - und ich den Garagentorantrieb nicht durch eine solche Aktion zerstören möchte, suche ich nach Hilfe. Wenn es nur um den Sonoff gehen würde, der Verlust wäre verschmerzbar.
Vielleicht kannst du dich der Sache annehmen und mich auf den Pfad der Tugend führen ;).
Wenn es noch jemand gibt, der etwas beitragen kann, dann möchte ich ihn nicht abhalten.
Viele Grüße Gisbert
Hi Gisbert,
Optokoppler wäre auch meine erste Idee, aber erstmal eine andere Frage! Welche Steuerung hast Du? Meine Supramatic von Hörmann hat auch 27V auf dem Tastereingang, daneben aber noch andere Eingänge ;-)
Warum ist der Druck spannend, wenn Du per Homematic den geschlossen Status bereits in FHEM hast? Dann kann doch FHEM einem ESP sagen das Targetdoorstate geschlossen ist!?
Gruß Arnd
Signalduino (Nano, ESP, ...), CUL (Busware, Nano, Maple, ...), Homematic (HM-MOD-UART-RPI, ESP, Maple, ...), LaCrosseGateway (LGW, ESP, ...), 1-wire, ESPEasy, Bravia, Yamaha, ...
Hallo Papa Romeo,
ich hatte was Ähnliches bei einer Klingelerkennung schon mal realsiert. Von da hatte ich, ohne nachzuschauen, die Z-Diode im Kopf. Dort hatte ich mit einer Z-Diode die Spannung soweit mit einer 20V Z-Diode runtergebracht, dass zwischen den beiden Niveaus 22V (mit Klingeln) und 18V (ohne Klingel) unterschieden werden kann. Die "Rest"spannung hatte ich dann auf einen Optokoppler gegeben und von dort dann auf einen GPIO. Ich muss mir dann "nur" noch Gedanken um den Vorwiderstand machen, da die Spannung anscheinend zwischen 20.6V und ca. 27V schwanken kann, wobei die 20.6V
vor der Tasterbetätigung und die ca. 27V
direkt nach einer Tasterbetätigung gemessen wurde.
Hallo Arnd,
ZitatWarum ist der Druck spannend, wenn Du per Homematic den geschlossen Status bereits in FHEM hast? Dann kann doch FHEM einem ESP sagen das Targetdoorstate geschlossen ist!?
willst du die kurze oder die lange Variante hören?
Ok, die kurze: weil ich es will (... Golum: "mein Schatz, wir benötigen ihn" ... ;D)
Die lange Variante: sobald das Tor länger als 15 Minuten geöffnet ist, werde ich per Pushnachricht darüber informiert. Da ich eine Lüfterstellung (nur einen Spalt offen) habe, ist das Tor für den Homematic-Fensterkontakt ebenfalls offen, d.h. dann bekomme ich auch eine Nachricht, die ich aber an der Stelle nicht haben möchte. Ich habe alle möglichen Varianten durchgespielt, ob das softwareseitig (in einem DOIF) zu regeln ist, bin dann aber zum Schluss gekommen, dass mir die Information fehlt, ob das Tor per Taster/Schlüsselschalter auf oder per Fhem auf Lüfterstellung gefahren wurde.
Was ich aber noch nicht bedacht habe, und was vermutlich aber so realisert ist, dass alle Taster/Schlüsselschalter/Fhem-Befehle auf den gleichen Eingang gehen, so dass ich gar nicht zwischen Fhem und manueller Betätigung unterscheiden kann. Immerhin wüsste ich dann,
dass ein Fahrbefehl eingegangen ist.
Ich sehe nach, ob ich mehrere Eingänge am Garagentormotor habe, vielleicht gelingt da noch was.
Züruck zur Z-Diode und einem Optokoppler:
Wenn ich eine 18V Z-Diode nehme, dann lässt die 2.6 - 9V durch, richtig?
Dann benötige ich einen Vorwiderstand, der die 9V abdeckt, aber gleichzeitig sicherstellt, dass der Optokoppler bei 2.6V noch arbeiten kann.
Verfügbar habe ich die folgenden Optokoppler:
PC817 und ggf. SFH620A
Für den PC817 müsste die Rechnung so aussehen
Forward voltage VF = 1.2-1.4V, IF = 20mA
- bei 9V: R = (9 - 1.3)/0.02 = 385 Ohm - I ist dann 20 mA
- bei 2.6V: R = (2.6 - 1.3)/0.02 = 65 Ohm - mit 385 Ohm wäre I dann nur noch 3.4 mA
- Funktioniert der PC817-Optokoppler damit noch? Angehängt ist ein Datenblatt des PC817.
Viele Grüße Gisbert
Hallo Papa Romeo und Arnd,
bei weiterem Nachdenken komme ich zum Schluss, dass ich die Z-Diode gar nicht benötige, denn bei einem Tasterdruck geht die Spannung auf 0V, so dass der Optokoppler zwischen 20.6-27V und 0V unterscheiden kann. Der Vorteil wäre sogar, dass der Vorwiderstand für 20.6 und 27V in etwa gleich bis ähnlich liegen.
Viele Grüße Gisbert
Zitat von: Gisbert am 25 August 2019, 10:48:43
Die lange Variante: sobald das Tor länger als 15 Minuten geöffnet ist, werde ich per Pushnachricht darüber informiert. Da ich eine Lüfterstellung (nur einen Spalt offen) habe, ist das Tor für den Homematic-Fensterkontakt ebenfalls offen, d.h. dann bekomme ich auch eine Nachricht, die ich aber an der Stelle nicht haben möchte. Ich habe alle möglichen Varianten durchgespielt, ob das softwareseitig (in einem DOIF) zu regeln ist, bin dann aber zum Schluss gekommen, dass mir die Information fehlt, ob das Tor per Taster/Schlüsselschalter auf oder per Fhem auf Lüfterstellung gefahren wurde.
Was ich aber noch nicht bedacht habe, und was vermutlich aber so realisert ist, dass alle Taster/Schlüsselschalter/Fhem-Befehle auf den gleichen Eingang gehen, so dass ich gar nicht zwischen Fhem und manueller Betätigung unterscheiden kann. Immerhin wüsste ich dann, dass ein Fahrbefehl eingegangen ist.
Ich sehe nach, ob ich mehrere Eingänge am Garagentormotor habe, vielleicht gelingt da noch was.
Ich mache so etwas ähnliches über ein doif.
Mein Treppenhauslicht schalte ich über den Eltako von Papa Romeo allerdings mit Tasmota drauf. Wenn ich das Licht über Bewegungsmelder einschalte, setzte ich gleichzeitig im doif ein User Reading ,,Schaltgrund" auf ,,auto".
In einem anderem doif frage ich ab ob das Licht an ist und wenn Schaltgrund nicht auto ist setze ich Schaltgrund auf ,,manuell". Bei Licht aus setzte ich Schaltgrund auf ,,aus".
So kann ich über das UserReading Schaltgrund im Device Eltako abfragen wie das Licht eingeschaltet wurde. Das funktioniert sehr zuverlässig.
Hallo hanswerner1,
ZitatSo kann ich über das UserReading Schaltgrund im Device Eltako abfragen wie das Licht eingeschaltet wurde. Das funktioniert sehr zuverlässig.
Das ist eine interessante Idee, die ich ausprobieren werde.
Gestern war ich jedoch mit deiner ursprünglichen Idee beschäftigt, nämlich 2 Sensoren für die offen/geschlossen Erkennung zu nutzen. Das hat mich mit diversen Schwierigkeiten - wie üblich - einige Stunden gekostet, bei denen ich allerdings einiges gelernt habe.
Zuerst wollte ich einen Hallsensor verbauen und habe mich darin eingelesen. Der benötigt 5V Spannung, gut das kann man sich vom Sonoff rausführen.
Dann ist mir ein Reedkontakt in die Hände gefallen, den ich vor längerer Zeit zum Auslesen des Gaszählers nutzen wollte, was aber wegen der mangelnden Empfindlichkeit nicht geklappt hat. Den hatte ich bereits mit der passenden Länge und Dupont-Steckern ausgestattet, super.
Auf dem Sonoff hatte ich noch einen DHT12 rausgeführt, der zwischendurch den Geist aufgab, weil ein Kabel gebrochen war. Da es nicht gesteckt, sondern gelötet war, musste der Lötkolben ran.
Den Reedkontakt hab ich angeschlossen und den GPIO über einen 100kOhm-Widerstand auf high gezogen. Frage an dieser Stelle:
War das nötig, oder kann der ESP das intern über Einstellung in der Software regeln?Die nächste Schwierigkeit war dann Tasmota, das den Reedkontakt nicht als solchen akzeptiert hat. Ich hab's nicht durch Recherchieren oder Ausprobieren hinbekommen. Also hab ich ESPEasy drauf geschmissen, was zuerst mal ne Viertelstunde rumgezickt hatte, bis es lief. Der Reedkontakt wird als Switch Input definiert und liefert 0 oder 1 - funktioniert also.
Da bei Tasmota die Schaltbefehle per MQTT schön kurz und fürs menschliche Auge gut lesbar sind, wollte ich das bei ESPEasy auch haben. Lange Rede, kurzer Sinn, ich hab's geschafft Rules zu definieren und die per MQTT von Fhem ausführen zu lassen. Wichtig ist ja, dass das potentialfreie Relais kurz schließt und nach einer halben bis einer Sekunde wieder öffnet, d.h. diese Logik muss im Sonoff (in den Rules) liegen. Informationen zu MQTT und ESPEasy findet man jedoch nur bruchstückhaft, was entsprechend langes Rumexperimentieren bedeutet hat.
Wen es interessiert, ich hab mir eine kleine Anleitung geschrieben, die ich gerne teilen kann.Es funktioniert alles, auch das Fhemdevice sieht gut aus, jetzt kann ich den Sonoff wieder in die Garage hängen und mich den anderen Ideen widmen.
Viele Grüße Gisbert
Zitat von: Gisbert am 26 August 2019, 08:56:35
Den Reedkontakt hab ich angeschlossen und den GPIO über einen 100kOhm-Widerstand auf high gezogen. Frage an dieser Stelle: War das nötig, oder kann der ESP das intern über Einstellung in der Software regeln?
Ich glaube nicht unbeding, hatte das damals so mit den Wiederständen mal gelesen um definierte Zustände an den GPIO's zu haben.
Hab das auch noch so, aber mittlerweile in anderen Projekten ohne die Wirderstände mit der Einstellung "Internal PullUp " auch keine Probleme.
Hallo Gisbert,
bei eigenen Sketchen kannst du das z.B. so regeln, dass du keinen externe Pullup benötigst.
.
.
.
#define SENSOR1 3
.
.
.
void setup()
{pinMode(SENSOR1,INPUT_PULLUP);
.
.
.
Kurze Rückmeldung hierzu.
ZitatDen Reedkontakt hab ich angeschlossen und den GPIO über einen 100kOhm-Widerstand auf high gezogen. Frage an dieser Stelle: War das nötig, oder kann der ESP das intern über Einstellung in der Software regeln?
Ich hab in ESPEasy den Internal PullUp angekreuzt und versucht, ob der Reedkontakt ein Signal reinbekommt.
Entweder war meine "fliegende" Verkabelung zu schlecht, jedenfalls hat's mit dem PullUp nicht funktioniert, also zurück zum 100kOhm-Widerstand.
Viele Grüße Gisbert
Hallo Zusammen,
eine Frage bezüglich der Sonoff Basic Konfiguration:
Wer hat denn eine finale Lösung mittels Tasmota und MQTT konfiguration und kann diese teilen?
Und: wie sieht es aus, wenn der Sonoff(Tasmota) neu started? Bei mir wird immer Status des Reed Kontakts zu anfangs
invertiert. Also wenn der Kontakt offen ist, wird der Status als "On" also geschlossen angezeigt.
Siehe zweite Zeile. Kontakt ist dem Fall offen gewesen:
13:27:34 RSL: tele/tasmota_4CA967/STATE = {"Time":"2021-10-29T13:27:34","Uptime":"0T00:00:11","UptimeSec":11,"Heap":27,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":20,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"PG-HAUS","BSSId":"3C:A6:2F:A9:9C:63","Channel":11,"RSSI":100,"Signal":-37,"LinkCount":1,"Downtime":"0T00:00:05"}}
13:27:34 RSL: tele/tasmota_4CA967/SENSOR = {"Time":"2021-10-29T13:27:34","Switch1":"ON"}
13:28:07 RSL: tele/tasmota_4CA967/SENSOR = {"Time":"2021-10-29T13:28:07","Switch1":"ON"}
13:28:08 RSL: tele/tasmota_4CA967/SENSOR = {"Time":"2021-10-29T13:28:08","Switch1":"OFF"}
Für bessere Lösungen auf dem Sonoff Basic bin ich sehr offen.
Aktuelles Setup:
Sonoff Basic RF R2 V1.0
1x Reed Kontakt and GPIO3
SwitchOption 15
Grüße
Nutze das mitlerweile mit dem Wemos D1 Mini
Zitat von: bajuware am 29 Oktober 2021, 14:29:18
Also wenn der Kontakt offen ist, wird der Status als "On" also geschlossen angezeigt.
...ist ein GPIO "offen", dann hat dieser über den Pullup ein "HIGH" anliegen und wird somit als "ON" erkannt.
LG
Papa Romeo
@gasmast3r
Ich werde es heute auch mal mit einem ESP32 testen.
Der Sonoff ist halt komfortabel weil er die Relais an Board hat.
@Papa Romeo
Das passiert aber nur beim starten des Gerätes.
Im Betrieb wird es richtig erkannt. Eben bis auf das erste Signal
welches ich ja manuel triggern muss.
Kann man das denn irgendwie ändern bzw umgehen? Widerstand?
Grüße
Zitat von: bajuware am 30 Oktober 2021, 08:06:12
Das passiert aber nur beim starten des Gerätes.
Bein Booten braucht der ESP bestimmte logische Pegel an seine GPIO´s.
0(Flash) ,1(TxD)und 2
müssen "HIGH" sein.
GPIO03 (RxD) wird bei Booten auf HIGH gelegt, kann oder darf aber auch z.B. durch einen Öffner auf LOW liegen.
Hast du einen Schliesser angeschlossen, also "offen", ist der Pegel natürlich "HIGH".
Zitat von: bajuware am 30 Oktober 2021, 08:06:12
Im Betrieb wird es richtig erkannt.
... da kommt dann der Sketch(Tasmota) ins Spiel, wie es dort definiert ist.
LG
Papa Romeo
Vielen dank für die Erklärung.
Würde dann eigentlich bedeuten ein anderes Board zu nehmen und dann dort die entspr. "freien" GPIO's, richtig?
Leider ist GPIO14 auf dieser Board VErsion os gut wie unerreichbar.
Zitat von: bajuware am 30 Oktober 2021, 15:57:55
Würde dann eigentlich bedeuten ein anderes Board zu nehmen und dann dort die entspr. "freien" GPIO's, richtig?
... hier eine Übersicht, wann die GPIO´s wie genutzt werden können ...
https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/
LG
Papa Romeo
Ok, habe jetzt der Vollständigkeit halber den Kontakt an GPIO14 angebracht. Laut Doku der Pins sollte das keine Problem zwecks Boot machen. Aber ich habe immer noch den widersprüchlichen Status des Schalters. Obwohl er aus ist und das auch korrekt protokolliert wird sagt der Status in diesem Fall "ON". Sie log unten. Woran liegt das? Ist die Platine kaputt?
CMD: Switchmode2 15
12:41:27 RSL: stat/tasmota/RESULT = {"SwitchMode2":15}
12:41:34 RSL: tele/tasmota/SENSOR = {"Time":"2021-10-31T12:41:34","Switch2":"ON"}
12:41:34 RSL: tele/tasmota/SENSOR = {"Time":"2021-10-31T12:41:34","Switch2":"OFF"}
12:41:35 RSL: tele/tasmota/SENSOR = {"Time":"2021-10-31T12:41:35","Switch2":"ON"}
12:41:35 RSL: tele/tasmota/SENSOR = {"Time":"2021-10-31T12:41:35","Switch2":"OFF"}
12:41:36 RSL: tele/tasmota/SENSOR = {"Time":"2021-10-31T12:41:36","Switch2":"ON"}
12:41:36 RSL: tele/tasmota/SENSOR = {"Time":"2021-10-31T12:41:36","Switch2":"OFF"}
12:41:42 CMD: Status 8
12:41:42 RSL: stat/tasmota/STATUS8 = {"StatusSNS":{"Time":"2021-10-31T12:41:42","Switch2":"ON"}}
..definiere mal was bei dir "ON" und was "OFF" ist.
Ist ein "HIGH-Pegel" am GPIO "ON" und ein "LOW-Pegel" an GPIO "OFF" so, wie es definiert ist, wenn er als Ausgang genutzt wird oder ist es umgekehrt.
Am Eingang ist es in der Regel so, dass ein "ON" dann vorliegt, wenn der Schalter oder Taster geschlossen ist. Dies wiederum hat am Eingang aber ein LOW zu Folge.
Ein LOW wird aber eigentlich als "OFF" deklariert.
Der GPIO14 ist zwar für das "Booten" nicht relevant, aber an ihm liegt bei offenen Schalter trotzdem ein "HIGH-Pegel" und wird daher während dem "Booten´s" als
"ON" erkannt.
Was ist eigentlich so schlimm daran, dass der ESP während dem Booten seine tatsächlichen Pegel an den GPIO´s wieder gibt ?
Wird doch dann durch den Sketch korrigiert.
LG
Papa Romeo
Das ist im Prinzip gar nichts schlecht dran.
Ich möchte ja im Prinzip einfach nur den Zustand des Reed Kontakts wissen und mittels mqtt gesendet bekommen. Und natürlich auch nach einem Stromausfall wissen wollen ob das Tor eben offen oder zu ist.
...da macht er doch auch, wenn der Sketch nach dem "Booten" läuft. Ist doch egal was der ESP währen dem "Booten" ausgibt. Die über MQTT übertragenen Daten sind doch erst valid wenn der Sketch, sprich Tasmota läuft und die GPIO´s abgefragt hat.
LG
Papa Romeo