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

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

Vorheriges Thema - Nächstes Thema

Tedious

FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

willib

Zitat von: RaspiLED am 09 Januar 2019, 20:49:35
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 würde vorschlagen einen Reed Kontakt zu verwenden und den RFID Tag oder die Figur zusätlich mit einem Magnet zu versehen.

Edit:
Ich habe nun diesen Artikel gefunden und direkt mal die Teile bestellt. Ich habe davon überhaupt keine Ahnung. Es sieht einfach aus und der FHEM code ist auch beschrieben.

https://haus-automatisierung.com/projekt/2018/12/16/projekt-playbox-mqtt-fhem-spotify.html
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

Tedious

Das klingt schon mal sehr spannend, aber was mir nicht klar ist - er übergibt die RFID-Nummern an FHEM und ordnet denn eine Spotify-Playlist zu. So weit, so gut. Aber wie bringt er denn Alexa (da steht ein Dot im Video?) dazu das denn abzuspielen?
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

balli1187

Zitat von: Tedious am 11 Januar 2019, 10:02:17
Das klingt schon mal sehr spannend, aber was mir nicht klar ist - er übergibt die RFID-Nummern an FHEM und ordnet denn eine Spotify-Playlist zu. So weit, so gut. Aber wie bringt er denn Alexa (da steht ein Dot im Video?) dazu das denn abzuspielen?

Über dieses Modul zum Beispiel:
[37_echodevice] Amazon Echo Modul (nicht Alexa)
https://r.tapatalk.com/shareLink?share_fid=75100&share_tid=82631&url=https%3A%2F%2Fforum%2Efhem%2Ede%2Findex%2Ephp%3Ftopic%3D82631&share_type=t


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

willib

Das Gute ist dass das alles in FHEM passiert.
Ich kenne das Spotify Modul nicht. Kann man da eventuell ein Ausgabegerät definieren? Es gibt in FHEM auch ein Echo Modul mit dem man einen Echo steuern kann. Ich habe allerdings im Video keine Ausgabe gehört.

Ich würde gerne MP3 vom NAS auf Sonos ausgeben. Dazu muss ich halt den FHEM Teil noch anpassen.
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

Tedious

Jau, das klingt echt spannend! Das Echo Modul nutze ich schon, denn muss ich mich da mal weiter einlesen - außer Amazon-Playlisten starten habe ich in der Richtung noch wenig versucht, war mir nicht klar dass ich über das Modul Musik die nicht bei Amazon (hier Spotify) abspielen kann. Vom NAS (oder LMS, der läuft eh bei mir) auf einen Echo wäre natürlich die Königsdisziplin. Ich lese mal ein wenig.. :)
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

Neuhier


Joejoe

So, ich habe den Fehler mit der nur minütlich übertragenen Reading für die Anwesenheit des Chips gefunden:
Unter den Einstellungen des "Generic - Dummy Device" auf dem ESP wird das Intervall auf "1" gestellt. So wird das Reading jede Sekunde aktualisiert.
So hab ich maximal eine Sekunde Nachlauf nachdem ich den Chip runtergenommen habe.

Ich habe jetzt von dem Vorschlag https://haus-automatisierung.com/projekt/2018/12/16/projekt-playbox-mqtt-fhem-spotify.html die DEF von dem Notify teilweise übernommen:


ESPEasy_ESP_Easy_Playbox:Tag_Nummer:.* {
    my $SonosTrack = ReadingsVal($NAME, 'card_' . $EVTPART1, 'undef');
    if ($SonosTrack ne 'undef') {
            fhem("set Sonos_Kueche " . $SonosTrack);
fhem("set Sonos_Kueche Volume 10");
      } else {
        fhem("setreading $NAME card_$EVTPART1 undef");
        # Nachricht, dass Song nicht gefunden
    }

}


Hier wird beim Event der Tag_Nummer geschaut welche Nummer ankommt und bei Vorhandensein eines entsprechenden Reading die dort hinterlegte Variable/Pfad auf dem Player Sonos_Kueche abgespielt. Zusätzlich habe ich die Lautstärke auf 10 gesetzt um nicht von der vorhergehend eingestellten Lautstärke überrascht zu werden.
Wird ein unbekannter Chip aufgelegt wird ein Reading angelegt das den Wert "undef" trägt. Somit kann man mit setreading einen entsprechenden Pfad eintragen.

Das funktioniert alles soweit.

Jetzt würde ich gerne noch über ein anderes Reading die auszuwählende Box verändern.

Aktuell hab ich ein Reading erstellt: ESPEasy_ESP_Easy_Playbox:Selected Box mit dem Wert "Sonos_Kueche"
Ich hänge aber grad an dem Syntax wie ich das in die DEF des Notify einbaue.
Eckige Klammern, runde Klammern oder geschweifte Klammern... Hat alles nichts geholfen :-\

Kann mir da jemand helfen?

Vielen Dank  ;D

Joe

RaspiLED

Hi,
1) hat das TasKRun,2 was ich oben beschrieben habe nicht geholfen?

2) Ist das Leerzeichen Dein Feind (Selected Player)? Mal mit . Probiert?
Gruß Arnd


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

Joejoe

Aktuell sieht es in den Rules so aus:

on RFID#Tag do
   TaskValueSet 2,1,1              // setze Device-Task-Nr.2, erster Dummy, Wert 1
   TaskValueSet 2,2,[RFID#Tag]     // setze Device-Task-Nr.2, zweiter Dummy, Tag des RFID-Chips
   TaskRun,2
   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
   TaskValueSet 2,2,0              // setze Device-Task-Nr.2, zweiter Dummy, Wert 0
   TaskRun,2
endon


Ich setze den RFID-Tag auch in ein Dummy Device und auf 0 sobald der Chip weggenommen wird.
Allerdings wird der Wert nur nach dem Aktualisierungsintervall vom ESP an Fhem gesendet.

Das Leerzeichen hat das Handy eingefügt  >:( Ist in Fhem ohne Leerzeichen erstellt.

Ist das der richtige Syntax?
fhem("set ESPEasy_ESP_Easy_Playbox:SelectedBox " . $SonosTrack);

Gruß Joe

balli1187

Zitat von: Joejoe am 16 Januar 2019, 18:41:13
Aktuell sieht es in den Rules so aus:

on RFID#Tag do
   TaskValueSet 2,1,1              // setze Device-Task-Nr.2, erster Dummy, Wert 1
   TaskValueSet 2,2,[RFID#Tag]     // setze Device-Task-Nr.2, zweiter Dummy, Tag des RFID-Chips
   TaskRun,2
   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
   TaskValueSet 2,2,0              // setze Device-Task-Nr.2, zweiter Dummy, Wert 0
   TaskRun,2
endon


Ich setze den RFID-Tag auch in ein Dummy Device und auf 0 sobald der Chip weggenommen wird.
Allerdings wird der Wert nur nach dem Aktualisierungsintervall vom ESP an Fhem gesendet.

Das Leerzeichen hat das Handy eingefügt  >:( Ist in Fhem ohne Leerzeichen erstellt.

Ist das der richtige Syntax?
fhem("set ESPEasy_ESP_Easy_Playbox:SelectedBox " . $SonosTrack);

Gruß Joe
Wenn du mit Doppelten Anführungszeichen arbeitest werden die Steuerleuten erkannt und du kannst. Für das setzen von Readings gibt es einen eigenen Befehl.

fhem("setReading ESPEasy_ESP_Easy_Playbox SelectedBox $SonosTrack");
Sollte funktionieren


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

Ich setze nicht das Reading sondern starte damit den Player

$SonosTrack = "PlayURI //NAS/Ordner/Playlist.m3u
Device:ESPEasy_ESP_Easy_Playbox Reading:SelectedBox = Sonos_Kueche

Insgesamt sollte dann da stehen: (zusammengesetzt aus ESPEasy_ESP_Easy_Playbox:SelectedBox & $SonosTrack)
fhem("set Sonos_Kueche PlayURI //NAS/Ordner/Playlist.m3u")

balli1187

Sorry zu schnell gelesen

fhem("set " . ReadingsVal('ESPEasy_ESP_Easy_Playbox','SelectedBox','') . " $SonosTrack");


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

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

Joejoe

Nach ein bisschen rumspielen hat es nun so geklapp:

ESPEasy_ESP_Easy_Playbox:Tag_Nummer:.* {
    my $SonosTrack = ReadingsVal($NAME, 'card_' . $EVTPART1, 'undef');
    if ($SonosTrack ne 'undef') {
fhem("set " . ReadingsVal('ESPEasy_ESP_Easy_Playbox','SelectedBox','') . " " . $SonosTrack);
fhem("set " . ReadingsVal('ESPEasy_ESP_Easy_Playbox','SelectedBox','') . " Volume 5");
      } else {
        fhem("setreading $NAME card_$EVTPART1 undef");
        # Nachricht, dass Song nicht gefunden
    }

}


Vielen Dank!  :D