Anfänger braucht Hilfe bei Wemos D1

Begonnen von dennis_n, 28 August 2017, 00:37:02

Vorheriges Thema - Nächstes Thema

dennis_n

Hi Leute,

ich brauche mal eure Hilfe bei der Anbindung eines Wemos D1 an fhem.

Ich habe einen wemos D1. Der ist soweit eingerichtet. Jetzt verstehe ich nicht ganz, wie ich sowohl den Wemos als auch fhem einrichten muss, damit mir ein Zustand des Wemos an fhem übermittelt wird.

Ich habe an 3,3V und den GPIO 16 jeweils ein Kabel angelötet. Wenn die Kabel keine Verbindung haben, will ich das Status A ausgegeben wird und wenn die Kabel miteinander verbunden werden, soll Status B an fhem übermittelt werden.

In fhem möchte ich dann über ein Dummy den Status überwachen und wenn er von A auf B wechselt soll eine Reihe von Aktionen stattfinden (Licht AN, Garagentor auf usw.).

Die Bridge habe ich in fhem eingerichtet bekommen, aber jetzt weiß ich nicht mehr weiter.

Kann mir hier einer helfen?

Danke

Gruss
Dennis



supernova1963

#1
Hallo Dennis,

soweit ich das laienhaft beurteilen kann, bist du bereits kurz vor dem Ziel.

Ich meine GPIO16 ist im Standard der WakeUp-PIN. Alle PINS mit vorgelegten Funktionen versuche ich ohne Not nicht zu verwenden. Das WEMOS D1 Relay Shield benutzt z.B. GPIO5 (D1). Ebenfalls ist der GPIO4 (D2) mMn in keinem Standard vorgelegt. Bei diesen beiden PINS bin ich mir sicher, dass sie standardmäßig "high" bzw. "1" sind. Veränderungen erreicht man demzufolge mit "low" => auf GND ziehen.
Ich vermute, dass der von dir verwendete GPIO16 (den du mit dem Häkchen an PullUp ja auch 'hoch" ziehst) einfach nicht reagiert, wenn du 3V3 anlegst. Wenn du gerade dabei bist, empfehle ich dir die 1 Sekunde aus dem Delay raus zu nehmen, wenn du es nicht aus irgendeinem wichtigen Grund benötigst.

In FHEM wird das espBridge - Modul, - sobald sich der Status eines definierten Devices ändert oder seinen Status sendet -, ein entsprechendes  espDevice im Raum ESPEasy angelegen. Einen Dummy benötigst du an-für-sich nicht.

Ich hoffe es hilft dir ein wenig weiter,

Gernot


P.S.: Meine Wemos D1 mini haben alle zusätzlich zu einem Input Device mindestens ein System Devive z.B. Uptime, RSSI, ... mit einem Delay von 60 Sekunden um den Status minütlich zu überwachen.
Ob es mit high/low funktioniert kannst du mit ESPEasy mit der folgenden URL testen.
Für LOW bzw. GND:
http://<ESP IP address>/control?cmd=GPIO,<pin>,0

bzw. für HIGH bzw. 3V3:
http://<ESP IP address>/control?cmd=GPIO,<pin>,1

eppi

Zitat von: dennis_n am 28 August 2017, 00:37:02
Die Bridge habe ich in fhem eingerichtet bekommen, aber jetzt weiß ich nicht mehr weiter.
Hallo Dennis
Was mir spontan auffällt:
Port 8085 ist im FHEM Standard für WEBtablet konfiguriert. Wenn du diese nicht gelöscht oder geändert hast, hättest du einen Port-Konflikt. Versuch mal die ESP-Bridge und ESPEasy mit dem Default ControllerPort 8383 einzurichten.
Gruss Eppi

dennis_n

Hi,

ich danke euch schonmal für eure Antworten.

@Gernot
Bei den GPIOs habe ich mich an folgendes Bild gehalten. Demnach bin ich davon ausgegangen, dass GPIO 16, also D0, nicht doppelt belegt ist. Stimmt das oder sollte ich tatsächlich einen anderen wählen?
Zum Hintergrund: Ich bin bei der Feuerwehr und habe meinen Melder im Schlafzimmer stehen. Der Raspi mit fhem steht aber unten im Wohnzimmer. Also habe ich eine Möglichkeit gesucht, wie ich die Alarmierung vom oberen Stockwerk an den Raspi unten weiter geben kann, damit das Licht an geht und sich die Garage öffnet. Der Wemos wurde mir empfohlen. Finde diese Lösung auch sehr schick. Nur, wie gesagt, habe ich ein paar Probleme mich in die Konfiguration zu denken. Der Melder schließt einen Kontakt wenn ein Alarm eingeht (zieht dauerhaft ein Relais an). Wenn dies geschieht, möchte ich gerne dass in fhem ein DOIF oder so ausgelöst wird. Damit mir keine Zeit verloren geht, habe ich das Delay auch auf 1 Sekunde gestellt. Ist das falsch?

@Eppi
Ich habe extra den Port des WEBtablet gewählt. Hintergrund ist, dass ich den normalen WEB Port Passwort geschützt habe, damit ich von aussen darauf zugreifen kann. Der WEBtablet Zugang ist nur für intern und darauf greife ich ohne Passwort mit meinem Tablet zu. Damit ich mich nicht um Passwörter usw. kümmern muss, habe ich jetzt erstmal den Port gewählt.

Gruss
Dennis

eppi

Zitat von: dennis_n am 28 August 2017, 07:50:42
@Eppi
Ich habe extra den Port des WEBtablet gewählt.
Hallo Dennis
Ich glaube du hast einen Überlegungsfehler. Die ESP Bridge benötigt einen eigenen Port nicht jenen eines FHEM-WEB. Probier mal 8383 auf beiden Seiten (ESPBridge auf FHEM und in ESPEasy Contoller-Port).

dennis_n

Hi Eppi,

alles klar, werde ich nachher zu Hause probieren.
Vielleicht liegt es auch daran, dass die ESPbridge keine Devices erkannt hat?

Gruss
Dennis

eppi

#6
Zitat von: dennis_n am 28 August 2017, 08:04:29
Vielleicht liegt es auch daran, dass die ESPbridge keine Devices erkannt hat?
Genau. Viel Erfolg!
Gruss Eppi

supernova1963

Hallo Dennis,

Du kannst auch GPIO16 lassen insbesondere dann, wenn du den Standard für SCL und SDA noch nutzten möchtest.
Ich habe gerade einmal nach gesehen, GPIO16 bzw. D0 ist tatsächlich "low" bzw. 0. Das Häkchen an "Pull Up" hat mich unsicher gemacht (Im Build: 20000 - Mega wird sogar daraufhin gewiesen, dass Pull Up an diesem PIN nicht unterstützt wird).

Es müßte genauso funktionieren, wie du es gemacht hast (GPIO16 auf 3V3 hoch ziehen, sollte ein Ereignis auslösen).
Den Haken an Pull Up und den Delay von 1 Sekunde solltest du dennoch raus nehmen.

Wenn du tatsächlich den fhem Port 8085 noch mit dem fhemweb für's tablet belegt hast, wird nichts ankommen.
Nimm den von Eppi empfohlenen und hoffentlich noch nicht verwendeten Port 8383 für die espBridge.

Dann solltest du spätestens nach dem ersten Schalten ein Device in dem Raum ESPEasy finden. Den Dummy brauchst du wahrscheinlich nicht.

Gernot   


dennis_n

#8
Hi,

hat nun alles bestens funktioniert. Allerdings habe ich den Wemos nochmal neu geflasht und den Port 8333 genommen. Den Dummy hatte ich vorher gelöscht.

Mein Schalter wird mir nun als Device angezeigt und funktioniert bestens. Aber......

Zum testen des Schalters habe ich ja die zwei Kabel angelötet. Nun erwarte ich, dass wenn ich die Kabel zusammenführe und auch zusammen lasse, SOFORT der Status ändert. Wenn ich die Kabel wieder trenne, der Status SOFORT sich wieder ändert.

Aktuell ist das nicht so. Was muss ich denn wo an Delays einstellen, damit das so ist?
Denn im Falle eines Alarms sollen die Aktionen ja sofort ausgeführt werden und nicht erst 300 Sekunden später.

Danke

Gruss
Dennis

eppi

Hallo Dennis
Dein Device sieht richtig konfiguriert aus. Im Eventmonitor müsstest du etwas sehen, wenn du den GPIO auf VCC 3.3V ziehst. Hast du da schon nachgeschaut? Hast du ev ein attr event-on-change-reading gesetzt, das verhindert, dass ein Event ankommt?
Gruss Eppi

Frank_Huber

Ich würde sagen "push button active low" ist falsch. Nimm hier mal "normal switch"

Gesendet von meinem S3_32 mit Tapatalk


dennis_n

Sorry, ich glaube ich habe mich twas unverständlich ausgedrückt.

Also wenn ich die beiden Kabel zusammen halte passiert nichts. Trenne ich sie wieder springt Value auf 1.
Verbinde ich die beiden Kabel wieder direkt wieder passiert nichts. Wenn ich sie wieder trenne passiert immer noch nichts. Wenn ich etwas warte, dann die Kabel wieder zusammen mache und wieder trenne, springt Value wieder auf 0.

Für mich ist nicht ganz ganz klar, wie das Teil schaltet.
Ich möchte, wenn die Kabel zusammen sind, Value auf 1 geht und wenn ich sie wieder trenne Value auf 0 geht.

Es soll also quasi mehr so ein Push-Button sein. Der wenn man ihn loslässt wieder den normal Zustand annimmt.

Geht das?

Gruss
Dennis

Frank_Huber

Teste "normal switch"

Gesendet von meinem S3_32 mit Tapatalk


dennis_n

Das war es wohl. Jetzt scheint es zu funktionieren. Sehr cool. Vielen Dank.

Jetzt noch eine kleine Frage ;-)

Das Relais meines Feuerwehr-Melders schließt dauerhaft, bis man den Melder aus der Ladeschale nimmt oder den Alarm quittiert.
Wie verhindere ich in fhem denn, dass das DOIF ständig meine Garage öffnet und das Licht anmacht? Also der Befehl dauerhaft an meine ZWave Geräte gesendet wird?

Wenn der Melder geht, soll der Befehl ja dann nur einmal abgesetzt werden. Klar werde ich im Alarmfall den Melder mitnehmen bzw. den Alarm quittieren, aber es soll eben nur einmal das DOIF abgearbeitet werden. Egal ob der Wert noch auf 1 steht oder nicht. Nach 10 Minuten soll die Blockade dann wieder raus und alles genullt sein.

Gruss
Dennis

Fixel2012

Zitat von: dennis_n am 28 August 2017, 20:25:08
Das war es wohl. Jetzt scheint es zu funktionieren. Sehr cool. Vielen Dank.

Jetzt noch eine kleine Frage ;-)

Das Relais meines Feuerwehr-Melders schließt dauerhaft, bis man den Melder aus der Ladeschale nimmt oder den Alarm quittiert.
Wie verhindere ich in fhem denn, dass das DOIF ständig meine Garage öffnet und das Licht anmacht? Also der Befehl dauerhaft an meine ZWave Geräte gesendet wird?

Wenn der Melder geht, soll der Befehl ja dann nur einmal abgesetzt werden. Klar werde ich im Alarmfall den Melder mitnehmen bzw. den Alarm quittieren, aber es soll eben nur einmal das DOIF abgearbeitet werden. Egal ob der Wert noch auf 1 steht oder nicht. Nach 10 Minuten soll die Blockade dann wieder raus und alles genullt sein.

Gruss
Dennis

z.B. mit dem Attribut event-min-interval gesetzt auf das Device, dass das Event erzeugt. Wenn du das ganze auf 10 Minuten setzt, wird maximal jede Minute ein Event ausgelöst.

Such mal in der Commandref  :)
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify