SONOS_Remote_v1.0.1

Perfekt.

Hallo Zusammen,

ich habe folgendes Problem. Wenn ich eine .mp3 Datei von meiner Synology abspiele, kann ich diese mittels Stop oder Pause Button nicht mehr anhalten. Habe dies mit verschiedenen Datein getestet immer das gleiche Ergebnis. Wenn ich Radio abspiele keine Probleme, nur bei Mp3 funktioniert es nicht. Jemand eine Idee woran dies liegen kann? Bzw. hat jemand das selbe Problem? Habe Version SONOS_Remote_v1.0.1b und auf dem HC2 4.092 beta.

Lg. Beijonig

Hallo Zusammen,

hat das mal einer getestet ob das bei euch funktioniert? Bzw. gibt es noch ein anderes VD für Sonos was mp3 abspielen kann? Daniel hatte doch auch mal für die Schwaiger ein VD erstellt. Kann man das auch mit Sonos nutzen? Schwaiger_HAS_v06.vfib?

lg. Beijonig

Hi. Ich nutze auch Sonos Remote und mp3s von der Synology. Bin jetzt arbeiten - kann es morgen Nachmittag mal testen ob es bei mir auch so ist - meine aber das ich die Lieder stoppen und pausieren kann… Das Schwaiger VD dürfte nicht funktionieren…

Hallo Campos,

wäre super wenn du das mal testen würdest! Bei mir hat das sonst immer ohne Probleme Funktioniert. Hintergrund ist folgender, ich nutze die Sonos als Sirene für meine Alarmanlage. Wenn ich vergesse zu entscherfen und die Sirene losgeht, nimmt er den Stop befehl nicht mehr und dudelt vor sich hin.

Lg. Beijonig

Also gerade getestet : bei mir wird der “Stopp” Befehl korrekt ausgeführt. Spiele ich eine mp3 vom Server ab - kann ich problemlos stoppen oder pausieren… Vielleicht das VD nochmal laden und den “Stopp” Button aus dem neuen kopieren und gegen den Code im alten austauschen ?

Hast du bei deinem mp3-Test die Files manuell oder über eine Szene gestartet?
Wird ggf dein Alarmton immer wieder getriggert, so das es scheint, als wenn Stop nicht wirken würde?

Hallo Zusammen,

vielen Dank für die Rückmeldung! Das ist Komisch bei mir funktioniert es einfach nicht. Habe das VD mehrfach gelöscht und neu Installiert. Kannst du deins mal Posten? Würde es gerne mal damit versuchen. Bzw. Poste mal bitte den Code von nem Button von ner Mp3, vielleicht habe ich dort einen Fehler drin. Obwohl er sie ja ohne Probleme abspielt.

@Hoggle Funktioniert beides nicht aus der Szene herraus nicht und im VD selber auch nicht.

lg. Beijonig

Funktioniert Stopp über die Sonos App bzw. Controller, wenn du Dein mp3 per Szene gestartet hast?

Hallo Hoggle,

ja das Funktioniert ohne Probleme über die Sonos App. Auch wenn ich Radio Abspiele kann ich Pause und Stop drücken und er hört sofort auf. Auch über das VD nur nicht bei Mp3. Habe festgestellt das ich auch nicht die Lautstärke ändern kann. Es kommt mir so vor als ob sich das ganze Vd für eine Zeit aufhängt sobald ich eine Mp3 abspiele.

So sieht mein Button für die Mp3 aus.

http://pastebin.com/WzR6C6Fv

Hallo,
ich habe nun vieles gelesen und versucht und komme aber leider nun bei der Sprachausgabe bei folgendem Fehler nicht mehr weiter:

[DEBUG] 23:50:32: TTS data found, please wait…
[DEBUG] 23:50:32: TTS message: Es ist Dienstag, 13.Dezember und draussen sind nil Grad . Es ist nebelig…
[DEBUG] 23:50:32: TTS duration mode: auto seconds
[DEBUG] 23:50:32: TTS volume: 18
[DEBUG] 23:50:32: TTS language: de-DE

usw…
nil Grad?

hier mein Script dazu:
`–[[
%% properties
%% globals
–]]

– 96 is the Virtual Device ID
– 96 is the Process button ID

local sid, bid = 96, 96
local temp = tostring(fibaro:getValue(144, “value”))

–local temp=tostring(fibaro:getGlobalValue(“OWM_Temp”));
–fibaro:debug(temp);
tempcurr=string.gsub(temp, “%.”, “,”, 1);
fibaro:debug(tempcurr);



– Funktion zur Ermittlung des Datums.
– Version 1.0
– Copyright © 2015 Nicolas Dörig


function germanDate( _type ) – l=longDate(“Montag, 12.September”), s=shortDate(“Mo, 12.Sep 2011”), N=numericLong(“12.09.2011”), n=numericShort(“12.09.11”)
local longWochentag = {‘Sonntag’,‘Montag’,‘Dienstag’,‘Mittwoch’,‘Donnerstag’,‘Freitag’,‘Samstag’}
local shortWochentag = {‘So’,‘Mo’,‘Di’,‘Mi’,‘Do’,‘Fr’,‘Sa’}
local longMon = {‘Januar’,‘Februar’,‘März’,‘April’,‘Mai’,‘Juni’,‘Juli’,‘August’,‘September’,‘Oktober’,‘November’,‘Dezember’}
local shortMon = {‘Jan’,‘Feb’,‘Mrz’,‘Apr’,‘Mai’,‘Jun’,‘Jul’,‘Aug’,‘Sep’,‘Okt’,‘Nov’,‘Dez’}
local indexTag = os.date( “%w” ) +1
local indexMon = math.abs( os.date( “%m” ) )
if _type == ‘s’ then
return os.date( shortWochentag[indexTag]…", %d."…shortMon[indexMon]…" %Y" )
elseif _type == ‘l’ then
return os.date( longWochentag[indexTag]…", %d."…longMon[indexMon] )
elseif _type == ‘N’ then
return os.date( “%d.%m.%Y” )
elseif _type == ‘n’ then
return os.date( “%d.%m.%y” )
end
end
–print ( ‘Kurzdatum mit Wochentag\t’ … germanDate(‘s’) )
–print ( ‘Langdatum mit Wochentag\t’ … germanDate(‘l’) )
–print ( ‘Datum numerisch lang\t’ … germanDate(‘N’) )
–print ( ‘Datum numerisch kurz\t’ … germanDate(‘n’) )


–playTTS(“de”, “Guten Morgen. Es ist “… germanDate(‘l’) …” und draussen sind es " … getWeather( ‘t’ ) …” Grad " … getWeather( ‘c’ ) …". Ich starte das Radio fuer dich.", 13000, 15);

–local weather = fibaro:getValue(3, “WeatherConditionConverted”)
local weather = fibaro:getGlobal(“OW_Weather”)
local weather_de
fibaro:debug(weather)

if weather == “overcast clouds” then
weather_de = “und es ist bewoelkt.”
elseif weather == “few clouds” then
weather_de = “mit ein paar Wolken.”
elseif weather == “scattered clouds” then
weather_de = “bei aufgelockerter Bewölkung.”
elseif weather == “broken clouds” then
weather_de = “bei durchbrochener Bewölkung.”
elseif weather == “light rain” then
weather_de = “es regnet leicht, vergiss den Schirm nicht!”
elseif weather == “moderate rain” then
weather_de = “es regnet, vergiss den Schirm nicht!”
elseif weather == “heavy intensity rain” then
weather_de = “es regnet stark, vergiss den Schirm nicht!”
elseif weather == “clear sky” then
weather_de = “und der Himmel ist klar.”
elseif weather == “snow” then
weather_de = “. Es schenit.”
elseif weather == “sleet” then
weather_de = “. Schneeregen.”
elseif weather == “drizzle” then
weather_de = “. Nieselregen.”
elseif weather == “light snow” then
weather_de = “. Es schneit leicht.”
elseif weather == “fog” then
weather_de = “. Es ist nebelig.”

else
–weather_de = “.”
weather_de = weather
end

fibaro:debug(weather_de)

– Create TTS params object

–message = "Die aktuelle Temperatur draußen beträgt "…tempcurr…“°Celsius.”,

local params = {

–TTS Message

message = “Es ist “… germanDate(‘l’) …” und draussen sind “…tempcurr…” Grad “…weather_de…”.”;

–message = “Es ist “… germanDate(‘l’) …” und draussen sind “…tempcurr…“°Celsius.”… getWeather( ‘c’ ) …”. Ich starte das Radio fuer dich.”;

duration = ‘auto’; – Duration: “auto”, xx seconds
language = “de-DE”; – Language: see http://www.voicerss.org/api/documentation.aspx to get your language code
volume = 18; – Volume
}

local _f = fibaro
local _x ={root=“x_sonos_object”,load=function(b)local c=_f:getGlobalValue(b.root)if string.len©>0 then local d=json.decode©if d and type(d)==“table"then return d else _f:debug(“Unable to process data, check variable”)end else _f:debug(“No data found!”)end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)==“table"then for g,h in pairs(f)do if tostring(g)==tostring(e or””)then return h end end end;return nil end}
– Make a request to the remote to process params object instantly
_x:set(tostring(sid), { tts = params })
_f:call(sid, “pressButton”, bid)</del></ul>

</ol>
Grüße
Marco
</li>

local temp = tostring(fibaro:getValue(144, „value“))
tempcurr=string.gsub(temp, „%.“, „,“, 1);

Was ist ID 144? Daraus wird die Temperatur ausgelesen. Hast du die angepasst?

Gruß

Hi,

Die 144 war bei mir das Netatmo-Modul. Das musst du schon an deine Verhältnisse anpassen.
Bist Du Dir bei der Procesd-Button-ID mit 96 sicher?
Im Original-VD war das 28.
Normalerweise hat dieser Button auch eine andere ID, als das VD.

Viele Grüße Hoggle

Hi,

das Problem beim Auslesen der Temperatur lag in der Tat an der faschen ID des Netatmo Aussenthermometers. Ist in meinem Fall die 106. Danke für den Tip.
Die ID vom Procesd-Button-ID habe ich deshalb auf die gleiche ID wie das VD gesetzt, da ich glaubte irgendwo gelesen zu haben, das die PB ID immer gleich ist. Das habe ich offensichtlich falsch interpretiert :slight_smile:

Wo sehe ich eigentlich die ID des Buttons?

Danke für Eure Hilfe
Marco

Hallo,

die Button ID sollte 16 sein wenn du am VD (SONOS_Remote_v1.0.1) nichts geändert hast.

Gruß Manuel

Sonos-vd.jpg

Der zählt anders.
Es sind 16 Elemente mit x Buttons.

Um das herauszufinden, kannst Du einfach eine Blockszene anlegen, den Button auswählen und nach LUA konvertieren.

Hallo,

Sorry wenn ich falsch war. Bei mir ging die Sprachausgabe bisher auch mit 16 nur am Ende wurde immer stumm gestellt. Anscheinend ist 16 der Mute Button. Aber aktuell geht die Sprachausgabe nicht mehr obwohl ich nichts geändert habe :frowning:

Gruß

Hast Du den Debug im VD und der Szene geprüft?

Hallo,

anscheinend gibt es ab und an mal Probleme mit der Variable x_sonos_object die ist mit NaN gefüllt und dann geht nichts mehr. Ich muss dann alles löschen (VD + Variable) und von vorne beginnen. Ich weis nicht was dies verursacht.

Gruß Manuel