AllgemeinFibaro TutorialsTutorials

Fibaro Home Center: Szene für Push-Nachricht über den Status von Haushaltsgeräten erstellen

Wie Du Push-Nachrichten übers Smartphone und Sprachausgaben von Alexa über Dein Fibaro Home Center erstellen kannst, erfährst Du hier!

Willkommen zu unserem neuen Tutorial. Wir zeigen Dir heute, wie Du über Dein Fibaro Home Center und mithilfe einer LUA Szene eine Push-Nachricht über Haushaltsgeräte in Deinem Smart Home erhalten kannst. Dafür werden wir beispielhaft eine Szene mit einer Spülmaschine umsetzen. Die Vorgehensweise kann aber auch auf andere Geräte wie die Waschmaschine oder den Trockner angewandt werden. Zudem zeigen wir Dir, wie Du auch Statusmitteilungen über Alexa oder das Bose Soundtouch System erhalten kannst.

Infos vorweg

Für den weiteren Verlauf benötigst Du ein Fibaro Home Center sowie einen Wall Plug, also Zwischenstecker. Wir nutzen für diesen Stecker ein Modell von Fibaro. Es gibt aber auch Modelle von anderen PushnachrichtHerstellern. Wichtig ist hierbei nur, dass der Stecker Z-Wave fähig ist und über eine Strommessfunktion verfügt.

Nachfolgend wollen wir Dir nun zeigen, wie Du Deine Spülmaschine smart machst. Das bedeutet, dass nicht nur eine Push-Nachricht auf Dein Smartphone gesendet wird, sobald die Spülmaschine fertig ist, sondern auch Alexa eine Sprachausgabe über den Amazon Echo machen wird. Zudem nutzen wir in unserem Tutorial einen RGBW-Strip, welcher blau aufblinkt und unterhalb der Spülmaschine befestigt ist.

Wall Plug Szene

Als erstes muss der Wall Plug zu Deinem Home Center hinzugefügt werden. Danach können wir eine Szene erstellen, die den Wall Plug überwacht und uns anschließend auf verschiedene Weise über dessen Status infomiert. Füge dafür eine LUA-Szene hinzu, gib dieser einen Namen und füge ihr einen Raum zu. Anschließend kannst Du über “Erweitert” den nachfolgenden Code in die Szene einfügen:

--[[
%% properties
xxx power
%% weather
%% events
--]]
 
if (fibaro:countScenes()>1) then
  fibaro:abort();
end
 
--[[
 
Was kann das Script?
Mit diesem Script kannst du Geräte wie die Waschmaschine, den Trocker oder die Spühlmaschine
überwachen und wenn Sie in den Standbybetrieb wechseln, das heißt fertig sind, darauf reagieren.
 
Das Script wurde von Nico Bode von https://www.intelligentes-haus.de entwickelt.
 
Die Anleitung  inkl. Video findest du hier: https://www.intelligentes-haus.de/tutorials/fibaro-home-center-szene-fur-push-nachricht-uber-den-status-von-haushaltsgeraten-erstellen/
 
Anleitung:
device_id = Die Geräte ID die Ihr Prüfen wollt z.b. Die WallPlug ID von der Waschmaschine
power_on  = Ab wieviel Watt ist die Waschmaschine aufjendenfall an ->  am besten bei Verbrauch -> Gerät wählen und da schauen
power_standby = Ab wieviel Watt ist die Maschine im Standby
standby_secounds = Wielange muss die Maschine im Standby sein damit Sie wirklich fertig ist
global_var_name = Variablenname um den status zu speichern: bsp: waschmaschine_run oder trocker_run -> 0 ist waschmaschine ist nicht an 1 ist waschmaschine läuft
 
Bitte oben bei den Properties ebenfalls die ID des Wallplugs eintragen (157 durch deine ersetzen) das ist der Trigger!
 
Weiter unten im Script ab ca. Zeile 90 kannst du dann angeben was passieren soll!
 
--]]
 
 
 
local device_id = 157;
 
local power_on = 50;  -- From how many watts is the machine on example 100
local power_standby = 8; -- From how many watts is the machine finished example 10
local standby_secounds = 10; --how long has Stanby really had to be done with it?
 
 
local global_var_name = 'dishwasher_run'; -- exampale waschmaschine_run oder trocker_run
local debug_mode = true;  -- zeig dann mehr infos im debug fenster an false /true
 
 
if (fibaro:getGlobal(global_var_name) ~= nil) then
  if(debug_mode == true)
  then
    fibaro:debug('Variable ' ..global_var_name.. ' is created.');
  end
else
  fibaro:debug('Variable ' ..global_var_name.. ' isn`t created. Plese Create it Panels -> Variables Panel');
end
 
 
if(debug_mode == true)
then
  fibaro:debug('Scene start ');
end
 
 
if (tonumber(fibaro:getValue(device_id, "power")) >= power_on  and  tonumber(fibaro:getGlobalValue(global_var_name)) == 1)
then
  if(debug_mode == true)
  then
    fibaro:debug('The machine still seems to be running!');
  end
end
 
 
if (tonumber(fibaro:getValue(device_id, "power")) >= power_on  and  tonumber(fibaro:getGlobalValue(global_var_name)) == 0)
then
  fibaro:debug('Device was started');
  fibaro:setGlobal(global_var_name, "1");
end
 
local is_device_off_real = true;
 
if (tonumber(fibaro:getValue(device_id, "power")) <= power_standby  and  tonumber(fibaro:getGlobalValue(global_var_name)) == 1)
then
  fibaro:debug('Smaller then '..power_standby..' Watt check is really end!');
 
  local i = 1;
 
  while(i <= standby_secounds)
    do
 
      if (tonumber(fibaro:getValue(device_id, "power")) <= power_standby and is_device_off_real == true)
      then
        if(debug_mode == true)
        then
          fibaro:debug(''..i..' Secound smaller then '..power_standby..' Watt');
        end
      else
        if(debug_mode == true)
        then
          fibaro:debug(''..i..' over '..power_standby..' Watt maschine isnt finish');
        end
        is_device_off_real = 0;
        i = standby_secounds;
 
 
      end
 
      if(is_device_off_real == true)
      then
        fibaro:sleep(1000);
      end
      i = i + 1
    end
 
    if(is_device_off_real == true)
    then
 
      --[[
      from here things should happen when the device is done!
 
      example:  Send Push, TextTo Speech, Light on ..
      --]]
 
      fibaro:debug('Device is finish');
      fibaro:setGlobal(global_var_name, 0); -- this do not change
 
      -- example send push:
      --fibaro:call('add here your iphone/android device id', "sendPush", "Waschmaschine ist fertig!");
 
      -- example TTS Alexa see tutorial: https://www.intelligentes-haus.de/tutorials/alexa-text-to-speech-tts-uber-fibaro-zentrale-nutzen/
      --fibaro:setGlobal('tts_alexa_device', 'office');
      --fibaro:setGlobal('tts_alexa_text', 'Die Waschmaschine ist fertig');
      --fibaro:startScene(117);
 
      -- example set rgbw on and after 10 secount to off  579 = your is from rgbw
      --fibaro:call(579, "setBrightness", "100");
      --fibaro:call(579, "setColor", "0","255","255","255");
      --fibaro:call(579, "turnOn");
      --fibaro:sleep(10000);
      --fibaro:call(579, "turnOff");
 
 
 
 
      --[[
      end things add
      --]]
 
    else
      fibaro:debug('Device is not finish!');
    end
  end
  if(debug_mode == true)
  then
    fibaro:debug('Scene end');
  end

Passe danach noch die Werte in der Szene mit Deinen Werten an, indem Du beispielsweise zu Beginn die ID Deines Wall Plugs eingibst. Genauso müssen auch die restlichen Werte verändert werden. Weitere Erklärungen dazu findest Du im Video!

Beispielsweise kannst Du auch Einstellungen über den Verbrauch Deines Wall Plugs festlegen. Um darüber Aussagen treffen zu können, klicke im Home Center auf den Menüpunkt “Verbrauch”. Dort kannst Du den Spülmaschinen-Zwischenstecker auswählen und entsprechend den Verbrauch einsehen und die Werte in Deiner Szene nach diesem anpassen.

Außerdem benötigst Du für die Szene eine globale Variable. In unserem Fall eine für die Spülmaschine, um diese zu überwachen. Eine globale Variable legst Du über den Menüpunkt “Steuerungen” – “Variablensteuerungen” an.

Tipp

Du kannst den debug_mode innerhalb der Szene von “false” auch auf “true” setzen. Dann würdest Du mehr Fehlermeldungen erhalten über die Werte innerhalb Deiner Szene.

Anschließend ist die Konfiguration der Szene abgeschlossen. Diese funktioniert nun auch. Um aber auch eine Benachrichtigung über den Status der Spülmaschine zu erhalten, muss die LUA-Szene noch weiter angepasst werden.

Push-Nachricht festlegen

Wenn Du innerhalb der Zwischenstecker-Szene weiter nach unten scrollst, findest Du den Code mit den Einstellungen für die Benachrichtigung vor. Auch dort muss noch einiges angepasst werden.

LUA Benachrichtigung Wall Plug

Du kannst beispielsweise Deinen Wunschtext für die Benachrichtigung eintragen. Außerdem benötigt man zwei globale Variablen für die IDs der nutzbaren Smartphones, diese kannst Du aber auch manuell eintragen. Um die ID Deines Smartphones herauszufinden, brauchst Du zunächst die Fibaro App fürs iPhone oder Android-Smartphone. Danach musst Du folgende Seite aufrufen: “IP-Adresse Deines Home Centers/api/devices/”. Auf der danach geöffneten Seite kannst Du nun nach Deinem Smartphone suchen, die ID des Geräts entnehmen und danach in der Szene eintragen, sodass Du eine Push-Benachrichtigung über Dein Smartphone erhältst.

Außerdem kannst Du auch eine Text-to-Speech Funktion mit Alexa umsetzen. Wie das funktioniert, erfährst Du hier. Genauso kannst Du auch eine Sprachausgabe über Bose Text-to-Speech nutzen. Darüber haben wir bereits ein Tutorial gemacht. Dieses findest Du hier.
In Deiner LUA-Szene kannst Du die Werte dafür jeweils anpassen und so die Benachrichtigungen über die verschiedenen Geräte umsetzen.

Benachrichtigungen über grafische Szene erstellen

Wenn Du Dich nicht so gut mit LUA auskennst, kannst Du die vorherigen Schritt rund um die Benachrichtigungen auch über eine grafische Szene umsetzen. Lege dafür eine neue, grafische Szene über Dein Home Center an.

Benachrichtigung über grafische Szene erstellenAls erstes kannst Du die Wenn-Bedingung mit der Spülmaschinen-Variable erstellen. Setze dabei den Wert auf 0. Danach kannst Du eine Push-Benachrichtigung für die Spülmaschine festlegen. Diese musst Du im Vorhinein über “Steuerungen” – “Benachrichtigungssteuerung” erstellen.

Genauso kannst Du auch ein Licht aufblinken lassen. Wir haben dafür in unserer Küche einen RGBW-Strip angebracht. Wähle das passende Modul in der grafischen Szene aus und passe die Farbeinstellung an. Die Werte können nach eigenem Belieben ausgesucht werden. Wähle über “Module” das passende Licht aus und entscheide Dich für eine Farbe. Übertrage den dazugehörigen Wert danach in Deine grafische Szene. Natürlich sollte die Lampe auch wieder ausgeschaltet werden, das kannst Du auch über die Szene festlegen.

Durch den Schritt mit der grafischen Szene kannst Du Dir den Benachrichtigungsteil innerhalb der LUA-Szene sparen. Wählst Du diese Vorgehensweise, entferne den entsprechenden Teil aus der LUA-Szene, da er dann überflüssig ist.

Push-Nachricht und Co. nutzen

Sind die Schritte abgeschlossen, kann die Spülmaschine angestellt werden. Nach deren Fertigstellung erhältst Du entsprechend eine Push-Nachricht, Alexa- oder Bose-Sprachausgabe – wie Du es vorher innerhalb der Szenen festgelegt hast.

Mehr anzeigen

Ralf

Im Jahre 2018 habe ich ein Haus gebaut und versuche, nach und nach smarte Produkte ins Haus zu integrieren. Ich freue mich, Euch die Smart Home Welt näherzubringen und gemeinsam mit Euch zu lernen.

Ähnliche Artikel

2 Kommentare

  1. Hallo Nico,

    erstmal vielen Dank für das Tutorial und das LUA-Skript, funktioniert bei meiner Waschmaschine einwandfrei.
    Ich würde das Skript auch gerne für die Spülmaschine nutzen, aber da habe ich das Problem, dass die Spülmaschine zum Trocknen in eine Art Standby geht und die Leistungsaufnahme zwischen 0,3 – 0,4 Watt liegt (wie im Video angedeutet). Diese Leistungsaufnahme scheint alleine daraus zu resultieren, dass die Spülmaschine noch eingeschaltet ist.
    Kurz bevor der Trockenvorgang beendet ist, springt die Leistungsaufnahme allerdings für etwas mehr als 1 Sekunde auf bis zu 150 W. Somit ist es nicht möglich eine “standby_seconds” Zeit anzugeben, an dem die Spülmaschine wirklich fertig ist, zumal die Dauer des Trockenvorgangs je nach Spülprogramm unterschiedlich ist.
    Könnte man den kurzzeitigen Sprung der Leistungsaufnahme nicht irgendwie als “Trigger” nutzen?
    Beispiel: mind. x standby_seconds (kürzeste Trockenphase) + Leistungsansprung > 100 W (ggfs. + 30 sec um sicherzustellen, dass die Spülmaschine wirklich fertig ist) DANN Push-Nachricht
    Ich hoffe, dass das einigermaßen verständlich ist.
    Wäre das möglich? Wenn ja, wie? Oder gibt es eventuell eine elegantere Lösung?

    Vielen Dank schon mal im Voraus!

    Viele Grüße,
    Dirk

  2. Hallo, echt interessante Projekte.

    Ich bin in diesem Bereich noch neu, deshalb mal die Frage, woher bekomme ich die Parameter/ Befehle, die ich von einem Device abfragen oder setzen kann?

    Grüß, aliasdispi — und weiter so!!!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Schaltfläche "Zurück zum Anfang"