Hallo ich benötige Hilfe bei einem VD für ein Busch Jäger Inet Radio.
Ziel soll es sein wenn man das Badezimmer betritt das das Radio an geht. Ein Motionsensor ist vorhanden.
Jetzt mein Frage wie kann ich hierzu ein VD erstellen.
Leider habe ich bis jetzt noch keine Funktion die das Radio ausschalten würde. Evtl hat wer ja eine Idee…
Mir würde aber erstmal ein funktionierendes VD reichen.
Dann kann man das doch bestimmt mit Blockszene umsetzen.
Bei Bewegenung press Button …hier würde ja dann der Button vom VD benutzt.
Ausmachen kann man es dann von Hand, bis ich was gefunden habe um es per Befehl aus zu machen.
So habe hier Forum den Thread zum RooWifi RooWifi gefunden und mir zum nutzen gemacht…
-- hole ip adresse aus virtuellem modul
selfId = fibaro:getSelfId()
radioIP = fibaro:get(selfId, "IPAddress")
-- setze variable RADIO aus IP
RADIO = Net.FHttp(radioIP)
-- geting info about specific device
response = RADIO:GET("/de/index.cgi?n1=Radio+Sauerland&p1=+Abspielen+")
-- decoding json string to table
result = response;
Fibaro.log(result);
Jetzt habe ich zumindest den Button in einem VD den ich haben wollte.
Habe mir dann eine Blockszene erstellt und das Radio geht auch an wenn ich den Raum betrete.
Jetzt das Problem wenn ich das Radio ausschalte und noch im Raum bin sollte es doch sofort wieder angehen, wenn ich mich bewegen, da passiert aber nix… evtl. wäre hier eine Lua Szene doch von Vorteil.
Schöne wäre natürlich das ganze so zu machen “Radio an solange Bewegung” und es dann wieder ausgeht wenn man den Raum verlässt.
Das Radio soll aber auch nur zu bestimmten Zeiten angehen zwischen 22 uhr und 6 Uhr morgen z.b. nicht.
Den Befehl zum Ausschalten haben ich in Form eines Schlaftimer gefunden.
– Raum wird betreten Radio geht an (geht super)
– solange Bewegung im Raum Radio bleit an (geht super)
– wenn keine Bewegung z.b. 2 min mehr ist soll der Schlaftimer gestartet werden (geht super per parameter 6 und dem delay)
– zwischen 22:00 Uhr und 6:00 Uhr soll das Radio nicht automatisch angehen
(das geht leider noch nicht hast du dafür auch eine Lösung bzw. ein Stück Code was ich reinkopieren kann)
Ansonsten echt Top genau das was ich benötigt habe.
dazu würde ich eine Variable nutzen, da diese wesentlich leichter im Code abzufragen ist, als ein bestimmter Zeitraum. Diese Variable könntest du dann mit einer Blockszene abändern oder alternativ natürlich auch mit einer LUA-Szene.
Die Variable fragst du im Skript dann so ab:
if (fibaro:getGlobal('Time') == '22') then
fibaro:debug('Starte kein Radio')
else
fibaro:debug('Starte Radio')
end
Die Variablen & Inhalte müssen natürlich durch dich angepasst werden.
Leider weis ich da jetzt nix mit anzufangen bzw. kann dir nicht folgen.
Kannst du mir das nicht in die Szene einbauen ?
Und so eine Szene mit den Variablen muss doch dann so aussehen das die Variable zwischen 22 und 6 uhr auf false steht.
Hier kann ich aber auch nicht folgen was genau ich da machen muss da hört Lua bei mir leider auf ich übe zwar und teste aber so leicht ist das Ganze leider nicht.
Kann man diese beiden Szenen nicht verbinden die erste habe ich ja für das Radio die zweite nutze ich für Lichsteuerung Flur.
--[[
%% properties
205 value
%% globals
--]]
local sensors = {205}
local radio = 274
local delay = 180
local debug = false
function actionsMotion()
fibaro:debug('Führe Aktionen bei Bewegungserkennung aus')
fibaro:call(radio, "pressButton", "1")
fibaro:sleep(1000)
fibaro:call(radio, "pressButton", "3")
end
function actionsNoMotion()
fibaro:debug('Führe Aktionen nach Ende Bewegung aus')
fibaro:call(radio, "pressButton", "2")
end
local instances = tonumber(fibaro:countScenes());
function getSensorStatus()
for i,n in ipairs(sensors) do
if (tonumber(fibaro:getValue(n, "value")) > 0) then
return 1;
end
end
return 0;
end
function getLastBreach()
local breach = 0;
for i,n in ipairs(sensors) do
local nBreach = tonumber(fibaro:getValue(n, "lastBreached"));
if(nBreach > breach) then
breach = nBreach;
end
end
return breach;
end
function checkMotion()
lastBreached = getLastBreach();
time = os.time();
if (debug) then fibaro:debug("Zuletzt ausgelöst: Vor "..(time-lastBreached).." Sekunden"); end
if (getSensorStatus() == 1) then
return true;
end
if ((time-lastBreached)>=delay) then
return false;
end
return true;
end
local lastBreached = getLastBreach()
if (fibaro:getSourceTriggerType() == 'property' and getSensorStatus() == 1) then
if (instances > 1) then fibaro:abort(); end
fibaro:debug('Bewegung im Raum erkannt - Starte Timer')
actionsMotion()
while (checkMotion()) do
fibaro:sleep(5000);
end
if (debug) then fibaro:debug("Keine Bewegung mehr erkannt."); end
actionsNoMotion()
end
--[[
%% properties
43 value
%% globals
--]]
-- VARIABLEN Konfiguration (Bewegungsmelder muss oben unter %% properties aufgeführt sein) löst die szene aus
-----------------------------------------------------------------------------------------------------------------------------------------
local scene = 262 -- ID dieser Szene
local motion = 43 -- ID des Bewegungssensors
local licht = 45 -- ID Lichtsensor
local switch = 55 -- ID der Lampe
local nachtstart = 1800 -- 22:00 = 2200
local nachtende = 0800 -- 07:00 = 0700
local starttimer = 20 -- licht an zeit (+ zeit des bewegungssensors - par. 6)
local lichtwert = 0 -- grenze zum nachtmodus (nur ausführen, wenn licht größer als)
-----------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------
---------------------Script-----------------
fibaro:debug("start1")
if (fibaro:countScenes()>1) then
fibaro:debug("stop scene");
fibaro:abort();
end
-- SCHALTE LICHT EIN & AUS (wenn nicht nacht)
if (tonumber(fibaro:getValue(motion, "value")) > 0 ) and tonumber(fibaro:getValue(licht, "value")) > lichtwert and (tonumber(os.date("%H%M")) >= nachtstart or tonumber(os.date("%H%M")) <= nachtende) then -- hier fehlt noch "und schalter aus"
fibaro:debug("ausgelöst");
--led auf wert einstellen
fibaro:call(switch, "turnOn");
-- timer start und einstellen
timer = os.time();
while os.time() - timer < starttimer do
fibaro:sleep(1000);
-- Timer zurücksetzen, wenn neue Bewegung erkannt wird innherhalb der Verzögerungszeit
if (tonumber(fibaro:getValue(motion, "value"))) > 0 then
timer = os.time();
end
end
-- Schalte Licht aus, wenn Timer vollständig abgelaufen ist
fibaro:call(switch, "turnOff");
end
fibaro:debug("ende1");
fibaro:killScenes(scene);
klar kannst du die zusammenfassen. Das zweite Skript brauchst du eigentlich nicht mehr, du kannst darüber die Lampen schalten.
Welchen Inhalt du bei der Variablen setzt ist eigentlich egal. Mein Skript war nur ein Beispiel und so kannst du das einfach einbauen.
kannst du mir kurz deine Erfahrungen mit dem Inet radio schildern? Ist der Klang sehr gut? Ich bin auch auf der Suche nach einem geeigneten Badradio. Würde mich auch mit nem schicken Radiowecker zufrieden geben, den man mittels festem Kippschalter auf Radio Dauerbetrieb schaltet. Dann müsste man nur den Strom schalten. So einen Wecker scheint es aber nicht mehr zu geben und gehört wohl zum alten Eisen.
Ist natürlich nett mit der Streaming Funktionalität des Inet Radios. Der Preis ist aber auch happig :-/
Hast du schon an eine Steuerung mit Alexa gedacht? Mit einer HA Bridge könnte man ja auch Sprachkommandos absenden, wenn alles über die URLs gesteuert wird.
Sorry das ich in deinem Thread poste, ich hoffe das ist o.k.
Grüße!
hast du dir mal die Schwaiger-Lautprecher angeschaut? Dort gibt es auch einen Multiroom-Support, welchen zum Beispiel ein Alexa-Lautsprecher nicht bietet. Die Lautsprecher von Schwaiger können auch ins HomeCenter integriert werden. Alternativ würde es auch mit einem Rocki gehen.
sieht gut aus. Ich habe mir gerade die HAS110 bestellt. Das “text to speech” hört sich mega interessant an. Ich hoffe nur, dass der Lautsprecher mit der Luftfeuchtigkeit im Bad umgehen kann.
Stell dich bald schonmal auf ein paar Fragen dazu hier im Forum ein
also ich bin sehr zufrieden mit dem Inet Radio von Busch Jäger. Über den klang kann man streiten, mir reicht es auf jeden Fall aus morgens mal eben die Nachrichten und etwas Musik zu hören.
Habe an dem radio auch nur eine Box also Mono.
Der Preis ist recht hoch.
Mir war es wichtig das es ein W-Lan Radio ist und Unterputz kommt.
Das Schwaiger hört sich aber auch gut an ist nur leider nicht Unterputz.
Zum Thema Alexa… ich habe zwar einen Echo und einen Echo Dot aber das Thema Sprachsteuerung ist noch nicht so ganz ausgereift es ist eine tolle Spielerei mehr aber auch nicht.Mal versteht Alexa eine und dann wider nicht…
Mit der Luftfeuchtigkeit hatte ich noch keine Problme läuft schon zwei Jahre das Radio.
Hast du das Radio mit einem Relais angeschlossen?
Nein das ist nicht Notwendig. Ist ja über W-LAN verbudnen.
Welchen Motion Sensor verwendest du?
Den Fibaro Motion.
Ist dein LUA-Script fertig? Funktioniert alles?
Nein leider nicht. Soweit geht das mit dem ersten Skipt was ich oben gepostet habe ganz gut.
Ganz zufrieden bin ich noch nicht hatte aber noch keine Zeit das Skript zu verbessern oder hier fragen zu stellen damit ich weiter komme.
Durch ein VD was du erstellst kann man auf die API des Radio zugreifen.
Den Luacode findest du für das VD auch oben im Post, man muss etwas basteln.
Hier mal die Befehle:
XXX.XXX.XXX.XXX = IP des Radio
Ganz Wichtig ist das das Radio nicht im ECO Modus ist, sonst gehts nicht es muss immer mit dem W-LAn verbunden sein.
Den Eco Modus kannst du am Radio selber um stellen auf Premium…