Fragen zu: Squeezebox Next & Previous Buttons belegen und Herunterfahren!

Begonnen von Pampersjoe, 11 November 2016, 16:22:55

Vorheriges Thema - Nächstes Thema

Pampersjoe

Hallo zusammen,

ich bin der "Neue"  8) ;D

ich wurschtel mich die ganze Zeit schon durch und bislang hat alles soweit geklappt... installiert habe ich:

- FHEM (aktuelleste Version)
- Squeezebox Server (Max2Play) auf einem Raspberry
- weitere Raspberrys mit Player fur Squeezebox
- Apache mit Smartvisu

Smartvisu läuft... FHEM auch... die Module für Squeezbox sind in Fhem installiert und funktionieren... kann also meinen Squeezeboxserver über FHEM steuern... Somit an der Stelle einen Haken dran... mein Problem ist eher "vermutlich" ein Verständnisproblem...

In Smartvisu habe ich das Multimedia-Widget mit eingebunden... Artist, Songtitel etc. werden angezeigt... somit bin ich mir sicher, dass ich das auch richtig gemacht habe... ABER... das steht so in der Widget-Config:

/**
* Standard Multimedia Player
*
* @param unique id for this widget
* @param the item for play/pause
* @param the item for stopping the music (optional)
* @param the item for fast forward and rewind (optional)
* @param the item for next an previous playlist title
* @param the item for the position (optional)
* @param the item for the volume (optional)
* @param the item to mute the music (optional)
* @param the item for the song title (optional)
* @param the item for the song artist (optional)
* @param the item for repeat (optional)
* @param the item to load the default playlist (optional)
*
* @author Axel Otterstätter
*/
{% macro music(id, item_play, item_stop, item_ff, item_next, item_pos, item_vol, item_mute, item_title, item_artist, item_repeat, item_playlist) %}


Kurz gesagt, was von von oben herunter liest, ist das was hintereinander in der Zeile steht, die ich in meine html-Datei einfügen muss... diese sieht in dem Bereich so aus:

{{ multi.music ('WZ_Musik', 'WZ_Musik.PlayPause', 'WZ_Musik.Stop', '', 'WZ_Musik.Next_Previous', 'WZ_Musik.Position', 'WZ_Musik.Lautstaerke', 'WZ_Musik.Mute', 'WZ_Musik.Titel', 'WZ_Musik.Artist', 'WZ_Musik.Repeat', 'WZ_Musik.DefaultPlaylist' ) }}

Und genau HIER habe ich mein Problem... wenn ich "* @param the item for next an previous playlist title" einbau, dann habe ich ja folgende Buttons:

http://fs5.directupload.net/images/161111/pkl5jvas.jpg

(rechts und links)

FastForward oder so benötige ich nicht, wobei hier ja das gleich Problem wäre...

Ich habe somit ja nur EIN GAD erstellt...

http://fs5.directupload.net/images/161111/7k46u472.jpg

Das wäre doch aber nur EIN Button... aber ich habe doch vor und zurück  :o irgendwie verstehe ich nicht, was ich hier einstellen muss um die Titel vor oder zurück drücken zu können.



Nächste Frage:

Ich habe an FHEM Homematic-Kombonenten angebunden, die auch in Smartivisu super funktionieren... jetzt würde ich gerne folgendes machen... um mein "Multiroom" nicht ständig laufen zu haben, würde ich es bei nicht gebrauch ausschalten wollten über ein Button in Smartvisu... da ich beim Scripten echt noch am Anfang stehe und wenig Ahnung davon habe, wäre es klasse, wenn mich hier jemand unterstützen würde bei meinem Vorhaben...

Folgendes habe ich mir überlegt...

- Zwischenstecker von Homematic kaufen...
- 2-FachSteckdose dran
- Raspberry an eine Dose
- "Mini"-Verstärker an die andere Dose

Klick auf "On" in Smartvisu wäre kein Thema... da würde ich Basic.Switch on machen damit der Zwischenstecker "einschaltet"... beim ausschalten müsste man nun etwas basteln, dass er nicht direkt ausschaltet sondern eben erst einen SSH - Befehl an das Rapsberry schickt für einen shutdown und nach einem Timer von ca. 2-3 Minuten dann erst den Zwischenstecker ausschaltet... das Ganze wäre super, wenn man das evtl. sogar auf den gleichen Button setzt wie den "On" Button...

Sorry falls es die Antworten hier schon gibt und ich sie übersehen haben sollte... habe hier schon viel Hilfe mit der Suche bekommen aber hierbei bräuchte ich dann doch Hilfe.

Ich danke!  :)

cruser1800

Hi,
schau dir mal DOIF an! Hier kannst du sehr gut Befehle mit Zeitverzögerung basteln!

Pampersjoe

Na ja... öhm... was ist DOIF?  ??? ::)

Übrigens... habe festgestellt, dass meine Buttons wohl doch nicht alle funktionieren (habe von Arbeit auf Zuhause zugegriffen und gesehen, dass die Titel ausgelesen wurden sowie der Titel etc, daher dachte die Buttons funktionieren auch)... daher wäre vllt. interessant wie man die GADs für Smartvisu (multimedia widget) einstellen muss...  falls jemand eine Übersicht hätte oder Bild wäre das top  8)

Pampersjoe

Hallo zusammen  8)

da entweder wenige den Squeezeboxserver nutzen oder mit (was ich nicht glaube) mit Informationen "geizen" hier wie ich es gelöst habe... die Buttons funktionieren auch nun bis auf wenige...

"Meine Lösung"

in der Multimedia.html habe ich einfach aus

{% macro music(id, item_play, item_stop, item_ff, item_next, item_back, item_pos, item_vol, item_mute, item_title, item_artist, item_repeat, item_playlist) %}

item_back hinzugefügt... und weiter unten dann:

Die Config so angepasst:

<div data-role="controlgroup" data-type="horizontal">
{{ basic.button(id~'prev', item_back, 'back', 'control_arrow_left.svg', 0) }}
{% if item_ff %} {{ basic.button(id~'rew', item_ff, 'rev', 'audio_rew.svg', 0) }} {% endif %}
{{ basic.dual(id~'play', item_play, 'audio_pause.svg', 'audio_play.svg') }}
{% if item_stop %} {{ basic.button(id~'stop', item_stop, 'stop', 'audio_stop.svg', 1) }} {% endif %}
{% if item_ff %} {{ basic.button(id~'ff', item_ff, 'fwd', 'audio_ff.svg', 1) }} {% endif %}
{{ basic.button(id~'next', item_next, 'next', 'control_arrow_right.svg', 1) }}


Nun bekomme ich auch zwei GADs die ich jeweils belegen kann...

Des Weiteren war das Problem, dass ich die "vordefinierten" writes verwendet habe... sprich z.B. bei der Lautstärke habe ich die Möglichkeit:

cmd set: volume:slider,0,1,100

Bei mir funktioniert es nur mit:

cmd set: volume

und schon gehts... das selbst auch bei vor und zurück... da steht

cmd set: prev:noarg

mit

cmd set: prev

gehts... also so auch die anderen Buttons...

ich hoffe das hilft jemanden, der das gleiche Problem hat...

Ich hätte eigentlich gehofft, dass hier etwas mehr ansturm ist, dass man sich nicht selbst so durchquälen muss  :( aber nu gut... vllt habe ich ja mal ein anderes Thema bei dem man mir helfen kann  ;D

raman

Du hast es ja selbst gemerkt, dass das Multimedia-Widget nicht gerade für Squeezebox und fhem geschrieben wurde.

Die Werte, die gesendet werden, wenn die Buttons gedrückt werden, sind in der html-Datei festgelegt.
Hier an der 5. Position die "0":
{{ basic.button(id~'prev', item_back, 'back', 'control_arrow_left.svg', 0) }}

Wenn ich das richtig sehe ist der Befehl in fhem:
set squeezebox prev

Um den Befehl "direkt" mit dem Button zu senden könnte man das so anpassen
{{ basic.button(id~'prev', item_back, 'back', 'control_arrow_left.svg', 'prev') }}

Als Converter in fronthem muss man dann Direct verwenden.
Für reading und cmd set glaube ich state.

Als Anregung für das Schalten des Pi könnte evtl. folgendes funktionieren (ist ungetestet)

Schalten der Steckdose über einen Dummy
define dummy_steckdose dummy

Wie schon vorgeschlagen - Verwendung von DOIF:
define di_steckdose DOIF ([dummy_steckdose] eq "1") (set steckdose on) DOELSEIF ([dummy_steckdose] eq "0") (<ssh-Befehl für Shutdown raspi>) (set steckdose off)
attr di_steckdose wait 0:0,120


Der erste set-Befehl und der ssh-Befehl werden nicht verzögert, der letzte um 120 sec.

Der Button in SV schaltet dann den Dummy.

Aber mit DOIF kenne ich mich nicht so gut aus, weiß nicht ob das so funktioniert!
Es gibt aber eine gute deutsche Commandref zu DOIF.


Pampersjoe

 ;) danke...

ich hätte doch noch eine Frage... man kann damit ja den Artist und Titel auslesen... mein Problem ist jetzt folgendes... rufe ich die Seite auf... dann kommt auch sofort der richtige Name und Titel... nur aktualisiert sich dieser dann nicht, wenn das nächste Lied kommt...

Aktuell habe ich im GAD folgendes:

mode: item
device Playername
reading currentArtist (und als zweites GAD) currentTitle
cmd set (leer)
Haken bei read
kein Haken bei write

Habe ich hier etwas falsches ausgewählt? Oder fehlt hier noch etwas?

Gruß

dev0