Waschmaschine Push Nachricht

Hi,

warum nimmst du nicht das Skript auf der ersten Seite, was funktioniert? :smiley:

Die Szene wird durch das An/Ausschalten getriggert, das ist richtig. Der Fehler ist in der Zeile 21: “valueSensor” gibt es nicht.

Gruß

ICh finde immer “neuer ist besser” und habe das genommen, an dem stand “ich habe es nochmal überarbeitet…” :wink:

Alles klar, dann versuche ich gleich das erste nochmal.

Kenne mich in LUA nicht aus und versuche deshalb einfache Lösungen für mich zu finden. Aber ich lese mich nach und nach ein.

Danke erstmal für die Hilfe!

Sorry, mein Fehler. War in einem anderen Thread.

Findest du hier (Seite 1, mein Post)

--[[
%% properties
81 power
%% globals
--]]
 
local power_socket = 81 -- wallplug
local powerlive = fibaro:getValue(power_socket, "power")
fibaro:debug("Verbrauch = "..powerlive.." Watt")
 
if (fibaro:countScenes()>1)
  then
 fibaro:abort();
  end
 
local run = 0
local currentDate = os.date("*t");
local power = fibaro:getValue(power_socket, "power")
local counter = 0
 
if ( tonumber(fibaro:getValue(power_socket, "power")) > 35 ) and run == 0 then
  local start = (os.time())
  fibaro:debug("Geschirrspüler läuft...")
  fibaro:debug("Verbrauch = "..power.." Watt")
  run = 1
end
 
while run == 1 do
 
if (tonumber(fibaro:getValue(power_socket, "power")) < 2) then
     counter = counter + 1
    local power2 = fibaro:getValue(power_socket, "power")
        fibaro:debug('counter = ' ..counter.. " : "..power2.."Watt")
    end
      if (tonumber(fibaro:getValue(power_socket, "power")) > 3 ) then
      	 counter = 0
      end
       if (tonumber(fibaro:getValue(power_socket, "power")) < 1.0) and counter > 60 then
          fibaro:debug("Geschirrspüler ist fertig.")
          local power3 =  fibaro:getValue(power_socket, "power")
          fibaro:debug("Verbrauch (3) = "..power3.." Watt")
          fibaro:debug("Send Push")
    	  fibaro:call(68, "sendPush", "Geschirrspüler ist durchgelaufen", "Dischwasher");
    	  fibaro:call(113, "sendPush", "Geschirrspüler ist durchgelaufen", "Dischwasher");
		  run = 0
       end 
  fibaro:sleep(1*1000)
end

Super, jetzt funktioniert es perfekt. Musste nur die Watt Zahl im idle runter setzen und dann lief es.

Vielen Dank!

Lieber Boomx,

ich habe das Script für mich angepasst. Im Debug laufen nun die Verbräuche schön durch. Ich habe mit meiner Waschmaschine versucht. Der Ruheverbrauch beträgt 4,2 Watt. Kann ich in Zeile 35 diesen Ruheverbrauch anpassen, also z.B.

  if (tonumber(fibaro:getValue(power_socket, "power")) &gt; 5 ) then

Oder ist das die falsche Stelle?
Aktuell kommt keine Beendigungsmeldung im Debug und demnach auch nicht bei den ID meiner Smartphones heraus.

Vielen Dank für einen Tipp

Hi,

hab es mal angepasst für deinen Wert:

--[[
%% properties
81 power
%% globals
--]]
 
local power_socket = 81 -- wallplug
local powerlive = fibaro:getValue(power_socket, "power")
fibaro:debug("Verbrauch = "..powerlive.." Watt")
 
if (fibaro:countScenes()>1)
  then
 fibaro:abort();
  end
 
local run = 0
local currentDate = os.date("*t");
local power = fibaro:getValue(power_socket, "power")
local counter = 0
 
if ( tonumber(fibaro:getValue(power_socket, "power")) > 35 ) and run == 0 then
  local start = (os.time())
  fibaro:debug("Geschirrspüler läuft...")
  fibaro:debug("Verbrauch = "..power.." Watt")
  run = 1
end
 
while run == 1 do
 
if (tonumber(fibaro:getValue(power_socket, "power")) < 5) then
     counter = counter + 1
    local power2 = fibaro:getValue(power_socket, "power")
        fibaro:debug('counter = ' ..counter.. " : "..power2.."Watt")
    end
      if (tonumber(fibaro:getValue(power_socket, "power")) > 5 ) then
      	 counter = 0
      end
       if (tonumber(fibaro:getValue(power_socket, "power")) < 5) and counter > 60 then
          fibaro:debug("Geschirrspüler ist fertig.")
          local power3 =  fibaro:getValue(power_socket, "power")
          fibaro:debug("Verbrauch (3) = "..power3.." Watt")
          fibaro:debug("Send Push")
    	  fibaro:call(68, "sendPush", "Geschirrspüler ist durchgelaufen", "Dischwasher");
    	  fibaro:call(113, "sendPush", "Geschirrspüler ist durchgelaufen", "Dischwasher");
		  run = 0
       end 
  fibaro:sleep(1*1000)
end

Gruß

Herzlichen Dank lieber Boomx :slight_smile:
Es läuft super. Ich habe zusätzlich neben der Pushnachricht eine Sprachmitteilung über Sonos realisiert.
Zusätzlich wollte ich am Ende den Wallplug ausschalten.
Ich habe den Ausschaltbefehl nach den Benachrichtigungen platziert, dann bricht aber das Script ab. Vor und nach fibaro:sleep ging es auch nicht. Morgens die Waschmaschine an machen und dann zur Arbeit gehen bedeutet unnötigen Standbyverbrauch. An welcher Stelle kann man den Ausschaltbefehl platzieren, damit es noch rund läuft?

In welche Zeile hast du es eingefügt? Nach Zeile 44? Das sollte eigentlich gehen, da dort keine Werte mehr abgefragt werden.

Gruß

ich habe es hinter der Zeile 46 aktuell eingefügt. Dann schaltet der Wallplug direkt nach dem Einschalten den Verbraucher wieder ab

Gruß

… konnte es klären. Läst man genügend zeitlichen Abstand zum nächsten Einschalten, läuft es sauber…
Begrenzt ggf. die maximale Anzahl an Instanzen das direkte Neustarten? Ist eigentlich nur am Rande von Interesse.

OK, wollte es nochmal testen, bevor ich poste. Brauch ich ja dann nicht mehr :wink:

Ne, sollte nicht. Die Szene oben kann nur 1x laufen.

Gruß

Die Herbergsmutter hatte noch einen Hinweis: Die Nachricht sollte nicht während der Nachtruhe durchs Haus plärren. Wenn die Waschmaschine im Keller nachts läuft, wäre das nicht gut. Dies wäre mit einer Variable “Timeoffday” als if Bedingung gut realisierbar
Wenn ich bei den Globals Timeoffday ergänze, wie baue ich das dann an dieser Stelle ein, das die Nachrichten unterdrückt werden aber der Wallplug trotzdem abeschaltet wird?

   if (tonumber(fibaro:getValue(power_socket, "power")) &lt; 5) and counter &gt; 90 then
      fibaro:debug("Waschmaschine ist fertig.")

Dies wäre der Part der noch hinein müsste:

local startSource = fibaro:getSourceTrigger();
if (
( fibaro:getGlobalValue(“TimeOfDay”) == “Day” )
or
startSource[“type”] == “other”
)
then

Bin ein wneig überfordert, wie sich machen lässt…

Hallo,
ich versuche mich langsam in Szenen einzuarbeiten. aber irgendwie willl das bei mir nicht funzen.Ich poste mal zwei Scrrens und den Code. Kann mir jemand sagen, was ich falsch mache.
Danke.

--[[
%% properties
81 power
%% globals
--]]
 
local power_socket = 33 -- wallplug
local powerlive = fibaro:getValue(power_socket, "power")
fibaro:debug("Verbrauch = "..powerlive.." Watt")
 
if (fibaro:countScenes()>1)
  then
 fibaro:abort();
  end
 
local run = 0
local currentDate = os.date("*t");
local power = fibaro:getValue(power_socket, "power")
local counter = 0
 
if ( tonumber(fibaro:getValue(power_socket, "power")) > 35 ) and run == 0 then
  local start = (os.time())
  fibaro:debug("Trockner läuft...")
  fibaro:debug("Verbrauch = "..power.." Watt")
  run = 1
end
 
while run == 1 do
 
if (tonumber(fibaro:getValue(power_socket, "power")) < 5) then
     counter = counter + 1
    local power2 = fibaro:getValue(power_socket, "power")
        fibaro:debug('counter = ' ..counter.. " : "..power2.."Watt")
    end
      if (tonumber(fibaro:getValue(power_socket, "power")) > 5 ) then
       counter = 0
      end
       if (tonumber(fibaro:getValue(power_socket, "power")) < 5) and counter > 60 then
          fibaro:debug("Trockner ist fertig.")
          local power3 =  fibaro:getValue(power_socket, "power")
          fibaro:debug("Verbrauch (3) = "..power3.." Watt")
          fibaro:debug("Send Push")
    	  fibaro:call(46, "sendPush", "Trockner ist durchgelaufen", "Trockner");
    	  fibaro:call(81, "sendPush", "Trockner ist durchgelaufen", "Trockner");
   run = 0
       end 
  fibaro:sleep(1*1000)
end

Bild-1.jpg

Bild-2.jpg

Hi,

@knallfrosch

die Szene startet nicht, weil du die ID im Header nicht angepasst hast.

@Homer:

Mach einfach vor die Versendung der Push-Nachrichten eine Abfrage, ob die Variable ein bestimmtes Value hat. Den Header darfst du nicht verändern.

Gruß

Danke für die schnelle Antwort. Heute sollte der Trockner noch ´ne Runde drehen. Dann werde ich sehen, ob es funzt :slight_smile:

Hallo liebe Gemeinde,

habe heute meinen ersten Wallplug bekommen und natürlich gleich an dem Trcokner getestet. Mit dem Script das boomx empfohlen hat. Allerdings bekommt man ja hier ständig Push-Meldungen wenn am ende der Trockner in seinen Knitterschutz geht und ständig 60 sec pause macht und dann wieder anläuft.

Kann mir jemand ein komplettes Script reinstellen, welches bei dem ersten Knitterschutz ein Pusch-Nachricht sendet " Trockner ist zu ende, Wäsche kann entnommen werden, Knitterschutz läuft" ( Aber nur eine Meldung, da dieser Knitterschutz zig mal läuft bis er endlich den Trockner ausschaltet)

Die zweite Meldung sollte dann kommen " Trockner ist zu ende, Wäsche kann entnommen werden, Knitterschutz zu ende". ( Dies ist dann wenn sich der Trockner komplett abgeschaltet hat)

Also bekommt man für einen Trcoknerdurchlauf nur max 2 Meldungen.

Gibt es eine Möglichkeit dies so anzupassen? Wenn ja, wäre ich dankbar, wenn ihr mir das fertige Skript zum testen reinstellen könntet.

Ich bin etwas verzweifelt. Ich habe das Skript nochmal angepasst (ID im Header angepasst) und trotzdem will nix passieren. Hat jemand eine Idee, wie ich überprüfen könnte, woran es liegt. Wenn der Trockner läuft, sehe ich bspw. in der App den Stromverbauch am Wall-Plug. Über ein Magic Scene habe ich auch mal die Benachrichtigung (wenn Verbauch größer X Watt dann sende E-Mail) getestet und es hat einwandfrei funktioniert.

Hi Leute,

hier mal mein Script das ich an meinen Trockner angepasst habe, damit ich nur eine push bekomme.

Bei mir funktioniert es tadellos.

–[[
%% properties
93 power
%% globals
–]]

local power_socket = 93 – wallplug
local powerlive = fibaro:getValue(power_socket, “power”)
fibaro:debug(“Verbrauch = “…powerlive…” Watt”)

if (fibaro:countScenes()>1)
then
fibaro:abort();
end

local run = 0
local currentDate = os.date("*t");
local power = fibaro:getValue(power_socket, “power”)
local counter = 0

if ( tonumber(fibaro:getValue(power_socket, “power”)) > 35 ) and run == 0 then
local start = (os.time())
fibaro:debug(“Geschirrspüler läuft…”)
fibaro:debug(“Verbrauch = “…power…” Watt”)
run = 1
end

while run == 1 do

if (tonumber(fibaro:getValue(power_socket, “power”)) < 2) then
counter = counter + 1
local power2 = fibaro:getValue(power_socket, “power”)
fibaro:debug('counter = ’ …counter… " : "…power2…“Watt”)
end
if (tonumber(fibaro:getValue(power_socket, “power”)) > 3 ) then
counter = 0
end
if (tonumber(fibaro:getValue(power_socket, “power”)) < 1.0) and counter > 15 then
fibaro:debug(“Waschmaschine ist fertig.”)
local power3 = fibaro:getValue(power_socket, “power”)
fibaro:debug(“Verbrauch (3) = “…power3…” Watt”)
fibaro:debug(“Send Push”)
fibaro:call(6, “sendPush”, “Trockner ist fertig”, “Dischwasher”);
fibaro:call(114, “sendPush”, “Trockner ist fertig”, “Dischwasher”);
fibaro:call(143, “sendPush”, “Trockner ist fertig”, “Dischwasher”);
fibaro:call(113, “pressButton”, “3”);
run = 0
end
fibaro:sleep(1*1000)
end

OK, werde ich versuchen. Mit dem Befehl
fibaro:call(113, „pressButton“, „3“);
löst Du was aus?

Damit sagt mir mein SONOS Lautsprecher, “Die Wäsche ist fertig!”

Der Wallplug ist bei mir immer an, da sonst meine Frau diesen immer wieder einschalten müsste!