DIY - "Toniebox" Zutaten: ESP8266 + RFID Reader PN532 & Espeasy + Sonos Play1

Begonnen von Joejoe, 08 Januar 2019, 16:58:33

Vorheriges Thema - Nächstes Thema

Joejoe

Hallo zusammen,

Ich versuche mich gerade an der Kombination (ESP8266 + RFID Reader PN532 & ESPEasy Build: mega-20181231) aus dem Thread https://forum.fhem.de/index.php/topic,86868.0.html.

Ich möchte aus dieser Kombination und einer Sonos-Box eine "Toniebox" für meinen kleinen Sohn bauen bei der er RFID-Karten (oder RFID-Chip an Figur geklebt) benutzt um von der NAS im Netzwerk seine Musik abzuspielen etc.

Die Kombination ist erfolgreich in FHEM eingebunden (Bridge und Device angelegt).
Sobald ich einen Chip auf das Lesegerät lege, wird die hinterlegte Playlist abgespielt.

Anfangs war bei mir wie im eingangs genannten Thread das Problem, dass das Event dauerhaft/zu oft eintrat. Das wurde durch " event-on-change-reading .* " behoben.

Jetzt wollte ich allerdings die Funktion der Figuren der Toniebox nachempfinden und bei herunternehmen des Chips die Musik anhalten/pausieren.
Zusätzlich wäre die Speicherung des letzten Tracks/Position genial  ::)

Was ich bisher herausgefunden habe ist, dass der Log des ESP-Easy vollgeschrieben wird vom Lesen des Chips wenn ich ihn auf dem Leser liegenlasse. Das wiederum würde dauerhaft Traffic vom ESP zu FHEM bedeuten.

Weiter habe ich herausgefunden, dass sich Regeln (Rules) definieren lassen. Da steig ich aber noch nicht durch  :-\

Mein Vorschlag wäre eine Regel im ESP zu definieren, die:
Chip auf Leser -> Tag Nummer wird an FHEM gesendet
Chip wird vom Leser genommen -> Tag Nummer wird auf 0 gesetzt

FHEM nutzt die Tag-Nummer zur Identifizierung und laden des letzten Tracks/Position.
Sobald der Tag wieder auf 0 gesetzt wird soll der Aktuelle Track/Position zugehörig der Tag-Nummer gespeichert werden.

Ist nicht einfach (für mich) , aber einfach kann ja jeder ;)

Kann mir hier jemand Ratschläge/Links/Codeschnipsel geben über die ich zu einer Lösung gelange?

Grüße Joe

balli1187

Ich kann leider bei deinem Problem überhauptnicht helfen aber als Vater einer zweijährigen Tochter finde ich dein Projekt echt cool!
Könntest du vielleicht noch ein paar Bilder der Hardware-Umsetzung posten? Würde mich einfach interessieren :-)


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Joejoe

Hallo balli1187,

Bisher ist es einfach nur die lose Verkabelung des ESP und RFID der per USB an meinem Rechner hängt.

Wenn ich ein geeignetes Gehäuse gefunden habe werden noch passende Taster für die Bedienung (Pause, Next, etc) besorgen und das ganze natürlich hier posten  8)

Gruß Joe

Frank_Huber

Ich lese hier mal mit.
Meine Töchter (4 und 6) wären bestimmt begeistert. [emoji16][emoji16][emoji16]
Der Leser ist schon bestellt, wemos Module sind noch da.
Ansteuern werde ich damit Kodi.

Gesendet von meinem Doogee S60 mit Tapatalk


Hollo

Ich lese hier auch mal mit.

Ich habe mangels fertiger Alternative widerwillig (P/L-Verhältnis) zugestimmt, als mein Sohn eine Toniebox bekam.
Für eigene Inhalte gibt es da ja die Kreativ-Tonies, aber das finde ich wegen dem Cloud-Umweg zur Umwandlung sehr umständlich.

ABER das Bedienkonzept ist für Kinder wirklich Top umgesetzt; inkl. der Fehlercodes über Tiernamen.

Eine ähnliche Umsetzung mit FHEM-Anbindung finde ich sehr interessant.
Dazu noch eine "Anregung"...
Vielleicht wäre es da auch eine Variante, Karte/Chip nicht pro Folge, sondern pro Serie zu definieren.
Den Rest könnte dann FHEM übernehmen...
- welche Folge wird gerade gespielt
- aktuelle Position merken
- welche Folge kommt danach
- Random oder Reihenfolge
- Per Button / Slider Anzahl der jetzt noch erlaubten Folgen
- ...
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

RaspiLED

Hi,
Danke für den Thread. Ich Schlüsse mich dem vorpost voll an - naja hübsch gemacht ist die Box ja auch noch ;-)

Okay zurück zum Problem:
Der Traffic zwischen ESPEasy und FHEM ist eh da. Mit Event-on-* steuerst Du nur die FHEM internen Events.

Daher sehe ich zwei Hndlungsmöglichkeiten:
1) vom ESP wird nur eine Änderung am RFID Reader in den Rules ausgewertet und danach in FHEM ein Event getriggert.
2) Wir lassen die Events in FHEM alle laufen und machen einen watchdog (oder timer) in FHEM drauf. Der watchdog in FHEM pausiert dann den play Befehl.

Zu 1) ist fraglich ob die ESPEasy lib überhaupt einen timeout beim auslesen des RFID Chips erlaubt und überhaupt etwas (also eine 0) zurückgibt, wenn kein TAG aufliegt
Hier ist das mal für Arduino beschrieben: https://arduino.stackexchange.com/questions/21619/detect-when-rfid-card-is-absent

Zu 2) sollte eigentlich mit FHEM Bordmitteln gehen ;-)
https://wiki.fhem.de/wiki/Watchdog

define w watchdog ESP*.RFID* 00:01 SAME set Player pause;; trigger w .


Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

RaspiLED

Hi,
Kannst Du und trotzdem mal Deine Pinbelegungen aufmalen, damit wir das gleiche aufbauen.

Oder Ist Dein RFID Reader einfach so angeschlossen:
There are 2 small switches on the PN532. Set sw1 to ON and sw2 OFF. connect the VCC pin to 3v3, GND to GND, SDA to D2, and SCL to D1 of the nodeMCU. von https://www.hackster.io/Granpino/rfid-control-for-your-home-automation-espeasy-and-domoticz-5fe5f8

Gruß Arnd



Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

balli1187

Vielleicht ist auch ein eigener Sketch eine Alternative zu ESPEasy...

So wie in dem Video dargestellt, sollte das Traffic-Problem lösbar sein.

https://youtu.be/K0PT066UQKU


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

RaspiLED

Stimmt per MQTT ginge ja auch ;-)

Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

willib

Interessante Idee. Vielleicht kann man hier noch was abschauen:
https://github.com/MiczFlor/RPi-Jukebox-RFID


oder doch lieber hier (wegen Arduino statt Pi) leider ohne Netzwerk und daher ohne FHEM Anbindung:
https://www.voss.earth/tonuino/
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

RaspiLED

Hier gibt es was zu unserem Problem des Entfernen:

https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/62

So ganz trivial scheint es nicht, da wir doch in Software
Mit Timeouts arbeiten müssen oder Hardware Hacks nutzen ;-)

Ich habe hier andere Reader (RC522) als der TO :-(

Gruß Arnd



Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Joejoe

So, ich hab mir jetzt über die Rules weitergeholfen.

Nachdem ich den Syntax verstanden hatte war es auch nicht mehr so schwer.

Ich habe ein "Generic - Dummy Device" unter Devices angelegt die keine Dezimalstellen haben.
Durch Autocreate wurde in FHEM ein Device angelegt mit dem Namen den ich im ESP bei "Name" eingetragen habe.

Ich habe in den Rules diese Zeilen eingetragen:

on RFID#Tag do
   TaskValueSet 2,1,1     // setze Device-Task-Nr.2, erster Dummy, Wert 1
   timerSet,1,1           // Starte Timer 1 mit einer Sekunde
endon

on Rules#Timer=1 do       // Wenn Timer 1 abgelaufen (1 ist)
   TaskValueSet 2,1,0     // setze Device-Task-Nr.2, erster Dummy, Wert 0
endon


Jetzt wird solange der RFID-Chip auf dem Leser liegt der Timer auf eine Sekunde gesetzt und der Dummy auf 1 gesetzt.
Bleibt der RFID-Chip liegen wird der Timer dauerhaft auf 1 Sekunde gehalten.
Sobald der RFID-Chip heruntergenommen wird, läuft der Timer ab und setzt nach einer Sekunde den Dummy auf 0.

In FHEM ist die Sache auch angekommen aber der Wechsel des Signals wird (über den Event Monitor geschaut) nur jede Minute übertragen.
Welches Attribut muss ich verändern damit das direkt empfangen wird? ???

Gruß Joe

Joejoe

Zitat von: RaspiLED am 08 Januar 2019, 23:02:09
Hi,
Kannst Du und trotzdem mal Deine Pinbelegungen aufmalen, damit wir das gleiche aufbauen.

Oder Ist Dein RFID Reader einfach so angeschlossen:
There are 2 small switches on the PN532. Set sw1 to ON and sw2 OFF. connect the VCC pin to 3v3, GND to GND, SDA to D2, and SCL to D1 of the nodeMCU. von https://www.hackster.io/Granpino/rfid-control-for-your-home-automation-espeasy-and-domoticz-5fe5f8

Gruß Arnd



Gesendet von iPhone mit Tapatalk

Für die Verdrahtung habe ich mich an den Standard gehalten außer evtl die Aderfarben ;D (siehe auch Bilder).

MCU    ----    PN532
G -     rot -     GND
3V -  braun -    VCC
D2 - schwarz - SDA
D1 -   weiß -    SCL

Die Schalterstellung habe ich auf I2C stehen (siehe auch Bild)

I0 steht Richtung ON
I1 steht Richtung 2 (OFF)

Gruß Joe

RaspiLED

Zitat von: Joejoe am 09 Januar 2019, 21:24:27
[...]
Ich habe ein "Generic - Dummy Device" unter Devices angelegt die keine Dezimalstellen haben.
[...] in FHEM ein Device [...] ESP bei "Name" [...]
In FHEM ist die Sache auch angekommen aber der Wechsel des Signals wird (über den Event Monitor geschaut) nur jede Minute übertragen.
Welches Attribut muss ich verändern damit das direkt empfangen wird? ???
[...]

Moin,
In dem Dummy steht das Interval, bei Dir wahrscheinlich 60!? Ich glaube beim Dummy darf man das nicht auf 0 setzen. Daher in den Rules direkt nach dem TaskValueSet ein publish an FHEM absetzen:

TaskRun,2


vgl. https://forum.fhem.de/index.php/topic,72502.msg776812.html#msg776812

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

gloob

Ich lese hier mal still mit, weil mich das Thema auch interessiert.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway