Autor Thema: iButton als Zuganskontrolle per ESP8266 -> MQTT -> Fhem und zurück..  (Gelesen 6351 mal)

Offline Spielmann

  • Jr. Member
  • **
  • Beiträge: 81
Antw:iButton als Zuganskontrolle per ESP8266 -> MQTT -> Fhem und zurück..
« Antwort #30 am: 22 Februar 2017, 23:17:07 »
Hallo lenoxef,
der ESP verbindet sich mit mqtt und folgendes wird an der seriellen Schnittstelle ausgegeben:
Zitat
Connecting to spnet
.......
WiFi connected
IP address:
192.168.178.80
Attempting MQTT connection...connected

Leider tut sich nichts wenn ich ein iButton anlege (DS1990R serial number iButton). Der Reader ist an GPIO4 (PinD2)  GPIO2 (PinD4) mit einem pull-up Widerstand (4,7k) an 3,3V angeschlossen. Passt das so? Die LED leuchtet ständig. Wenn ich den Code richtig lese, sollte doch die LED erst beim Anlegen des Buttons aufleuchten.

Inswischen tut er und bin begeistert. Anscheinend ist im code:
OneWire  ds(2)nicht Pin2 (GPIO4) sondern Pin4 (GPIO2)


Warum zeigt eigentlich der ESP ein offenes Netz mit der SSID ESP_D0C5C9 an?

Gruß
Spielmann
« Letzte Änderung: 23 Februar 2017, 06:43:09 von Spielmann »
FHEM mit Raspi
CCU2 mit diversen Komponenten und HMCCU
Siemens LOGO8 mit S7
1Wire Basteleien
Diesel-Tankstelle mit iButton, fhem, Arduino  (eine ewige Baustelle)

Offline lenoxef

  • New Member
  • *
  • Beiträge: 43
Antw:iButton als Zuganskontrolle per ESP8266 -> MQTT -> Fhem und zurück..
« Antwort #31 am: 23 Februar 2017, 07:12:33 »
Hallo Spielemann,

du hast natürlich recht mit der Pin/GPIO Zuordnung.. da hab ich wohl was verdreht, ich werde das heute abend ändern und neu hochladen. Das der ESP einen AP auf macht, kann ich dir allerdings nicht sagen. Das muss aus dem MQTT Beispiel kommen. Ich habe es allerdings selbst noch nicht bemerkt.

Gruß
lenoxef

Offline digiart

  • Full Member
  • ***
  • Beiträge: 134
Antw:iButton als Zuganskontrolle per ESP8266 -> MQTT -> Fhem und zurück..
« Antwort #32 am: 23 Februar 2017, 09:01:42 »
Um den AP weg zu bekommen, sollte ein WiFi.mode(WIFI_STA); eingefügt werden (http://esp8266.github.io/Arduino/versions/2.1.0-rc1/doc/libraries.html).

Was mir bei deiner .ino noch aufgefallen ist, sind die letzten Zeilen:
//// gelesenen Chip auf Serial-Monitor ausgeben
 
  for( i = 0; i < 8; i++) {
    if (addr[i] <= 0xF){Serial.print("0");}
    Serial.print(addr[i], HEX);
    }
Serial.println();

sprintf (Key, "%02x%02x%02x%02x%02x%02x%02x%02x",addr[0],addr[1],addr[2],addr[3],addr[4],addr[5],addr[6],addr[7]);
client.publish("outTopic", Key);

Hier machst du zweimal das Gleiche, nur einmal gibst du das Ergebnis auf die serielle Schnitstelle aus, und das zweite Mal sendest du das Ergebnis per MQTT.
Zur Optimierung könnte so etwas funktionieren:
sprintf (Key, "%02x%02x%02x%02x%02x%02x%02x%02x",addr[0],addr[1],addr[2],addr[3],addr[4],addr[5],addr[6],addr[7]);
Serial.println(Key);
client.publish("outTopic", Key);
Anfragen ausserhalb der Threads (PN, Mail o.ä.) werden ignoriert!

Offline Spielmann

  • Jr. Member
  • **
  • Beiträge: 81
Antw:iButton als Zuganskontrolle per ESP8266 -> MQTT -> Fhem und zurück..
« Antwort #33 am: 23 Februar 2017, 09:33:56 »
Hallo lenoxef,
mir ist auch aufgefallen, dass die interne LED nicht "BUILTIN_LED" sondern "LED_BUILTIN" heißt. Habe jedoch keine Verhaltensänderung an der LED feststellen können.

@digiart: Ich war froh, dass die Ausgabe zusätzlich zum Testen/Debuggen auf der seriellen Schnittstelle lag. Ich habe Putty zum Testen parallel geöffnet. Natürlich kann man diese später entfernen.

Gruß
Spielmann
FHEM mit Raspi
CCU2 mit diversen Komponenten und HMCCU
Siemens LOGO8 mit S7
1Wire Basteleien
Diesel-Tankstelle mit iButton, fhem, Arduino  (eine ewige Baustelle)

Offline digiart

  • Full Member
  • ***
  • Beiträge: 134
Antw:iButton als Zuganskontrolle per ESP8266 -> MQTT -> Fhem und zurück..
« Antwort #34 am: 23 Februar 2017, 09:41:28 »
Die Ausgabe ist ja nicht entfernt, Die Umwandlung Array -> HEX-String ist IMHO nur einmal nötig, und es werden auch diejenigen Daten ausgegeben, die wirklich gesendet werden.
Anfragen ausserhalb der Threads (PN, Mail o.ä.) werden ignoriert!

Offline lenoxef

  • New Member
  • *
  • Beiträge: 43
Antw:iButton als Zuganskontrolle per ESP8266 -> MQTT -> Fhem und zurück..
« Antwort #35 am: 23 Februar 2017, 09:47:03 »
Hallo digiart,

danke für deinen Hinweis mit dem AP. Das werde ich heute Abend gleich testet.

Auch das sprintf (Key, "%02x%02x%02x%02x%02x%02x%02x%02x",addr[0],addr[1],addr[2],addr[3],addr[4],addr[5],addr[6],addr[7]);
Serial.println(Key);
client.publish("outTopic", Key);

ist wesentlich eleganter und wird gern übernommen. Die Formatierung durch "%02x" war für mich neu und ist sicherlich besser als auf "<=0xF" zu prüfen.

Wenn noch jemand eine Idee hat, wie man die LED komplett ausschalten kann, immer her damit.. aktuell blinkt sie wild vor sich hin.. das braucht kein Mensch.

Offline digiart

  • Full Member
  • ***
  • Beiträge: 134
Antw:iButton als Zuganskontrolle per ESP8266 -> MQTT -> Fhem und zurück..
« Antwort #36 am: 23 Februar 2017, 10:01:26 »
Die BuiltIn-LED liegt auf Pin4/GPIO2
Anfragen ausserhalb der Threads (PN, Mail o.ä.) werden ignoriert!

Offline lenoxef

  • New Member
  • *
  • Beiträge: 43
Antw:iButton als Zuganskontrolle per ESP8266 -> MQTT -> Fhem und zurück..
« Antwort #37 am: 23 Februar 2017, 10:15:06 »
Ah, ok... da wo auch mein iButton-Reader dran hängt.. dann macht das Sinn, dass die permanent blinkt.. Wird geändert.. Danke.

Offline Spielmann

  • Jr. Member
  • **
  • Beiträge: 81
Hallo zusammen,
ich war letzten Monat nicht ganz untätig und habe meine configurable Firmata durch ein ESP8266 mit mqtt Aufbau ersetzt. Dazu musste ich mich allerdings etwas in die Arduino Programmierung einarbeiten und konnte letztendlich mittels Pfannes Basic Library eine wesentlich bessere und stabilere Lösung finden. Da dieser Thread den Ausschlag meiner Lösung auslöste (Ich kannte den ESP8266 vorher nicht) möchte ich Interessierten meine Lösung vorstellen:

https://forum.fhem.de/index.php/topic,50238.msg618827.html#msg618827

Gruß
Spielmann 
FHEM mit Raspi
CCU2 mit diversen Komponenten und HMCCU
Siemens LOGO8 mit S7
1Wire Basteleien
Diesel-Tankstelle mit iButton, fhem, Arduino  (eine ewige Baustelle)

Offline Itschi

  • New Member
  • *
  • Beiträge: 12
Antw:iButton als Zuganskontrolle per ESP8266 -> MQTT -> Fhem und zurück..
« Antwort #39 am: 21 Oktober 2017, 15:37:17 »
Hallo,

ich habe den Code von lenoxef übernommen und meinen Reder an GPIO2 (PIN4) angeschlossen.

Der Serielle Monitor gibt mit:

WiFi connected
IP address:
192.168.178.72
Attempting MQTT connection...connected


und in Fhem bekomme ich ein "iButton Reader connected" angezeigt.

Doch wenn ich einen iButton an den Reader halte wird nichts im seriellen Monitor und Fhem ausgegeben.

Gruß
Itschi

Offline Itschi

  • New Member
  • *
  • Beiträge: 12
Antw:iButton als Zuganskontrolle per ESP8266 -> MQTT -> Fhem und zurück..
« Antwort #40 am: 21 Oktober 2017, 16:20:58 »
Ah...wie dumm!
Jetzt geht es. Hatte den Reader extern versorgt. Wenn die 1-wire Data Versorgung und GND vom ESP kommen geht es natürlich.

Gruß
Itschi

Offline rabehd

  • Full Member
  • ***
  • Beiträge: 492
iButton als Zuganskontrolle per ESP32 -> MQTT -> Fhem und zurück..
« Antwort #41 am: 08 März 2018, 10:18:38 »
Ich wollte mal hierzu Feedback geben.
Die Diskussion hier war Basis für meine Lösung.

Ich habe nur einen ESP32 und 2 iButton-Reader genommen.
Warum 2? Wir nutzen es nicht als Schlüsselbrett, sondern als Zu-/Abgangsmelder. In einer ersten Version gab es nur einen Reader. Das brachte das System etwas durcheinander, wenn es verschiedene Eingaber kurz hintereinander gab. Nun haben wir einen iButton fürs Kommen und einen fürs gehen.
Der ESP32 schläft im Normalfall und hängt an einer Powerbank.
Berührt man einen Touchsensor, dann bootet der ESP32 innerhalb von 2 Sekunden, incl. WLAN-Verbindung.
der Kommen-Reader wird auf LED grün geschaltet, der Gehen-Reader auf LED rot. 
Wird an einem Reader ein iButton erkannt, dann werden beide Reader auf LED orange geschaltet.
Die ID wird per MQTT an FHEM übermittelt, wenn dort ok, dann gehen beide LED auf grün für 15 Sekunden.
Sollte innerhalb von 180 Sekunden nichts mehr passieren, dann geht der ESP schlafen.

Da es ab und zu passiert, dass der ESP nicht schlafen geht oder bei Mehrfach-"Eingaben" hängen bleibt verzichte ich noch den Code zu veröffentlichen.
In der nächsten Stufe sollten noch LEDs per MQTT gesteuert werden, die sagen Fenster sind auf, Licht ist an...
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline henfri

  • Newbie
  • Beiträge: 1
Moin,

ich habe gerade einen Pull-Request für iButtons und EspEasy erstellt:
https://github.com/letscontrolit/ESPEasy/pull/1468

Freue mich auf euer Feedback.

Gruß,
Hendrik