NEWS
Erste Gehversuche: Mit HM-PB-2-WM55-2 Sonos Wiedergabe start
-
Moin,
ich arbeite mich hier gerade ein wenig in ioBroker ein, habe bisher nur Erfahrung mit Homematic gesammelt gesammelt und möchte jetzt etwas mehr. Z.B. Hue per Curl oder später dem ioBroker ansprechen. Aktuell möchte ich gerne meine Sonos besser ins Haus integrieren.
Aktuell möchte ich nur vom Wandtaster aus einen Play Befehl an den Player senden. Klappt leider nicht.
Habe mir dazu folgendes Script angelegt:
on("hm-rpc.0.MEQ0373108.1.PRESS_SHORT", function (obj) { log("TestLogEintrag2","info"); setState("sonos.0.root.192_168_1_101.state","play"); });
Im Log steht nach dem speichern soweit drin, dass eine Subscription gemacht wurde, aber nach Tastendruck kommt kein Logeintrag für TestLogEintrag2.
Im Bereich Objekte kann ich sehen, dass bei hm-rpc.0.MEQ0373108.1.PRESS_SHORT ->Value sich der Zeitstempel geändert hat (Dafür muss ich allerdings die Seite komplett neu laden)
Ich hoffe, dass mir hier jemand ein bisschen Starthilfe geben kann.
Grüße,
Malte
-
Hallo Muskelkatermann,
ich nutze auch den 6fach-Wandtaster für Sonos (http://homematic-forum.de/forum/viewtopic.php?f=27&t=26373&p=230463&hilit=6fach+sonos&sid=7458aa6ac1b0a0295e162967e38b167d#p230463 mit Bild). Hier der Teil aus dem Skript, der für Play zuständig ist. Es wird noch kurz abgefragt, ob gerade MUTE eingestellt ist.
// ######################## Mitte links ######################## on({ id: "hm-rpc.0.MEQ0027317.3.PRESS_SHORT"/*Taster Küche Tür 6fach Mitte links.PRESS_SHORT*/, val: true }, function(obj) { if (getState("sonos.0.root.192_168_178_51.muted"/*muted*/).val === true) { setState("sonos.0.root.192_168_178_51.muted"/*muted*/,false); // falls MUTE eingeschaltet war, MUTE ausschalten } setState("sonos.0.root.192_168_178_51.state"/*state*/,"play"); log('6fach Wandtaster Küche Mitte links kurz gedrückt - play Sonos'); });
Auf Wunsche kann ich dir auch das ganze Skript schicken, da sind dann auch Pause, Favoriten und Laut/Leise drin.
Gruß
Pix
-
Hallo Pix,
ich habe dein Script genommen und statt eines Tasters einen Bewegungsmelder eingetragen.
Dann habe ich meine Sonos Box eingetragen.
Leider funktioniert das Script bei mir nicht, es ist aktiviert und läuft auch laut Anzeige.
Bei Bewegung wird mein Datenpunkt des Bewegungsmelders auch auf True gesetzt, trotzdem startet keine Wiedergabe.
Hier mal mein ganzes Script:
on({ id: "hm-rpc.0.LEQ0573310.1.MOTION"/*HM-Sen-MDIR-SM LEQ0573310:1.MOTION*/, val: true }, function(obj) { if (getState("sonos.0.root.192_168_0_230.muted"/*muted*/).val === true) { setState("sonos.0.root.192_168_0_230.muted"/*muted*/,false); // falls MUTE eingeschaltet war, MUTE ausschalten } setState("sonos.0.root.192_168_0_230.state"/*state*/,"play"); log('6fach Wandtaster Küche Mitte links kurz gedrückt - play Sonos'); });
Eine idee warum sich nichts tut. Ich hab echt keinen Plan von Javascript und das ist mein erstes Script.
Bitte dringend um Hilfe sonst geht noch was kaputt.
-
Bei mir hat das Script von Pix funktioniert, musste nur die IDs austauschen
@Pix: Die Tastenbelegung sieht gut aus. Wenn du mir das komplette Script bereitstellen magst wäre das super.
-
Das konnte gar nicht funktionieren unter Instanzen war Javascript nicht aktiviert, auch wenn ich nicht weiss warum.
Jedenfalls geht es jetzt und ich bin Glücklich.
Danke für das Script.
6305_flot_lueftung.png
6305_modbus_fehler.png -
Die Tastenbelegung sieht gut aus. Wenn du mir das komplette Script bereitstellen magst wäre das super. `
Hier das Skript für alle Tasten. Die Lautstärke wird jeweils um 20% gesenkt oder gehoben (deshalb volume_ist/5).! ````
/* Kueche Taster Aktionen
Im Wesentlichen Lichtsteuerung
6fach Wandtaster für SONOS
! erstellt: 27.05.2015
28.05.2015 SONOS Steuerung durch 6fach Taster eingebaut
! Licht Eckschrank & Licht Küchenschrank werden über PIR eingeschaltet
! --------------------- Taster neben der Tür (Wandtaster mit PIR) - noch nicht eingebaut
| |
| | Oben kurz: --
| ---- | Oben lang: --
| / \ |
| | | | PIR: --
| \ / |
| ---- | Unten kurz: --
| | Unten lang: --
| |
--------------------- 6fach Wandtaster
| | | | Oben links kurz: Radio B5 oben rechts kurz: Radio Energy
| | | | Oben links lang: - oben rechts lang: -
|-----| |-----|
| | | | Mitte links kurz: Sonos Play mitte rechts kurz: Sonos Pause
| | | | Mitte links lang: Sonos Prev mitte rechts lang: Sonos Next
|-----| |-----|
| | | | Unten links kurz: Sonos leiser unten rechts kurz: Sonos lauter
| | | | Unten links lang: Sonos Mute unten rechts lang: -
|-----| |-----|
| | Taster neben der Tür (Wandtaster unten) HEQ0119326
| | Oben kurz: Direktverknüpfung - Eckschrank, Küchenschrank, Licht Arbeitsplatte EIN
| | Oben lang: Dimmfunktion Licht DUNKLER/AUS
| |
| |
| | Unten kurz: Direktverknüpfung - Eckschrank, Küchenschrank, Licht Arbeitsplatte EIN
| | Unten lang: Dimmfunktion Licht DUNKLER/AUS
| |
| || |
| |
| |
| | Busch Jäger Schalter für Hauptlicht
| |
| |
| |
| |
| || |
| |
| |
| /\ /\ |
| | | | | | Darunter Steckdose
| / / |
| |
| |
| |*/
! // ############ SONOS Steuerung über 6fach Taster #############
// ######################## oben links ########################
on({
id: "hm-rpc.0.MEQ0027317.1.PRESS_SHORT"/Taster Küche Tür 6fach oben links.PRESS_SHORT/,
val: true
}, function(obj) {
if (getState("sonos.0.root.192_168_178_51.muted"/muted/).val === true) {
setState("sonos.0.root.192_168_178_51.muted"/muted/,false); // falls MUTE eingeschaltet war, MUTE ausschalten
}
// starte B5 aktuell
setState("sonos.0.root.192_168_178_51.favorites_set"/favorites_set/,'B5 aktuell');
log('6fach Wandtaster Küche oben links kurz gedrückt - B5 aktuell');
});
! on({
id: "hm-rpc.0.MEQ0027317.1.PRESS_LONG"/Taster Küche Tür 6fach oben links.PRESS_LONG/,
val: true
}, function(obj) {
log('6fach Wandtaster Küche oben links lang gedrückt - keine Aktion');
});
! // ######################## oben rechts ########################
on({
id: "hm-rpc.0.MEQ0027317.2.PRESS_SHORT"/Taster Küche Tür 6fach oben rechts.PRESS_SHORT/,
val: true
}, function(obj) {
if (getState("sonos.0.root.192_168_178_51.muted"/muted/).val === true) {
setState("sonos.0.root.192_168_178_51.muted"/muted/,false); // falls MUTE eingeschaltet war, MUTE ausschalten
}
// starte Energy
setState("sonos.0.root.192_168_178_51.favorites_set"/favorites_set/,'ENERGY München');
log('6fach Wandtaster Küche oben rechts kurz gedrückt - Radio Energy');
});
! on({
id: "hm-rpc.0.MEQ0027317.2.PRESS_LONG"/Taster Küche Tür 6fach oben rechts.PRESS_LONG/,
val: true
}, function(obj) {
log('6fach Wandtaster Küche oben rechts lang gedrückt - keine Aktion');
});
! // ######################## Mitte links ########################
on({
id: "hm-rpc.0.MEQ0027317.3.PRESS_SHORT"/Taster Küche Tür 6fach Mitte links.PRESS_SHORT/,
val: true
}, function(obj) {
if (getState("sonos.0.root.192_168_178_51.muted"/muted/).val === true) {
setState("sonos.0.root.192_168_178_51.muted"/muted/,false); // falls MUTE eingeschaltet war, MUTE ausschalten
}
setState("sonos.0.root.192_168_178_51.state"/state/,"play");
log('6fach Wandtaster Küche Mitte links kurz gedrückt - play Sonos');
});
! on({
id: "hm-rpc.0.MEQ0027317.3.PRESS_LONG"/Taster Küche Tür 6fach Mitte links.PRESS_LONG/,
val: true
}, function(obj) {
if (getState("sonos.0.root.192_168_178_51.muted"/muted/).val === true) {
setState("sonos.0.root.192_168_178_51.muted"/muted/,false); // falls MUTE eingeschaltet war, MUTE ausschalten
}
// Prev
log('6fach Wandtaster Küche Mitte links lang gedrückt - zurück Sonos');
});
! // ######################## Mitte rechts ########################
on({
id: "hm-rpc.0.MEQ0027317.4.PRESS_SHORT"/Taster Küche Tür 6fach Mitte rechts.PRESS_SHORT/,
val: true
}, function(obj) {
setState("sonos.0.root.192_168_178_51.state"/state/,"stop");
log('6fach Wandtaster Küche Mitte rechts kurz gedrückt - pause Sonos');
});
! on({
id: "hm-rpc.0.MEQ0027317.4.PRESS_LONG"/Taster Küche Tür 6fach Mitte rechts.PRESS_LONG/,
val: true
}, function(obj) {
// Next
log('6fach Wandtaster Küche Mitte rechts lang gedrückt - weiter Sonos');
});
! // ######################## unten links ########################
on({
id: "hm-rpc.0.MEQ0027317.5.PRESS_SHORT"/Taster Küche Tür 6fach unten links.PRESS_SHORT/,
val: true
}, function(obj) {
// leiser 20%
var volume_ist = parseInt(getState("sonos.0.root.192_168_178_51.volume"/volume/).val);
setState("sonos.0.root.192_168_178_51.volume"/volume/, volume_ist - Math.ceil(volume_ist/5));
log('6fach Wandtaster Küche unten links kurz gedrückt - leiser Sonos - jetzt ' + getState("sonos.0.root.192_168_178_51.volume"/volume/).val,'info');
});
! on({
id: "hm-rpc.0.MEQ0027317.5.PRESS_LONG"/Taster Küche Tür 6fach unten links.PRESS_LONG/,
val: true
}, function(obj) {
setState("sonos.0.root.192_168_178_51.muted"/muted/,true);
log('6fach Wandtaster Küche unten links lang gedrückt - mute Sonos');
});
! // ######################## unten rechts ########################
on({
id: "hm-rpc.0.MEQ0027317.6.PRESS_SHORT"/Taster Küche Tür 6fach unten rechts.PRESS_SHORT/,
val: true
}, function(obj) {
// lauter 20%
var volume_ist = parseInt(getState("sonos.0.root.192_168_178_51.volume"/volume/).val);
if (getState("sonos.0.root.192_168_178_51.muted"/muted/).val === true) {
setState("sonos.0.root.192_168_178_51.muted"/muted/,false); // falls MUTE eingeschaltet war, MUTE ausschalten
}
setState("sonos.0.root.192_168_178_51.volume"/volume/, volume_ist + Math.ceil(volume_ist/5));
log('6fach Wandtaster Küche unten rechts kurz gedrückt - lauter Sonos - jetzt ' + getState("sonos.0.root.192_168_178_51.volume"/volume/).val,'info');
});
! on({
id: "hm-rpc.0.MEQ0027317.6.PRESS_LONG"/Taster Küche Tür 6fach unten rechts.PRESS_LONG/,
val: true
}, function(obj) {
log('6fach Wandtaster Küche unten rechts lang gedrückt - keine Aktion');
});Hier die Beschriftungsvorlage ![261_beschriftungsvorlage-homematic-wandtaster_individuelle-beschriftung.psd.zip](/assets/uploads/files/261_beschriftungsvorlage-homematic-wandtaster_individuelle-beschriftung.psd.zip) Gruß, Pix
-
super sache.
das ist ja mal was richtig brauchbares.
werde es auch mal versuchen. macht es sinn die SONOS per variable einzutragen. Dann kann man den Script schneller für weitere SONOS nutzen
Gruß
Jürgen
-
Hallo Jürgen,
@derAuge:macht es sinn die SONOS per variable einzutragen. Dann kann man den Script schneller für weitere SONOS nutzen `
das muss jeder selbst wissen. Nach meiner Erfahrung sind Skripte mit vielen Ersetzungen und Kurzschreibweisen schwer zu verstehen, wenn man a) Anfänger oder b) lange aus dem Thema ist. So ein Skript für einen 6fach Taster schreibe ich ja nicht jeden Tag. Wenn ich mir in einigen Monaten / Jahren noch einen Taster anschaffe, dann kann ich das bestehen de einfach kopieren. Es kommt nicht auf die 15min an, die es dauert, die genauen Datenpunktbezeichnungen zu ändern.
Die Geschwindigkeit ändert sich bei so einem kurzen Skript sicher nicht. Ich würde das vorher bei den Homematic Datenpunkten machen:
Du kannst aber oben im Skript Variablen definieren, die das Ansprechen des Tasters vereinfachen (zB auch, wenn der Taster mal defekt ausgetauscht wird und eine neue Seriennummer hat).
zum Beispiel so:
var idMitteLinksKurz = "hm-rpc.0.MEQ0027317.3.PRESS_SHORT", idMitteLinksLang = "hm-rpc.0.MEQ0027317.3.PRESS_LONG", idMitteRechtsKurz = "hm-rpc.0.MEQ0027317.4.PRESS_SHORT", idMitteRechtsLang = "hm-rpc.0.MEQ0027317.4.PRESS_LONG", idUntenLinksKurz = ...
Gruß,
Pix
355_9d1368fd-62a1-49e0-9c29-0e5a8beb4227.jpeg
355_1e53d405-040e-4641-ba7b-ccf13c1819c2.jpeg