NEWS
Klingel über Homematic / iobroker
-
Hallo,
ich habe meine Türklingel über eine Homematic Tasterschnittstelle realisiert!
Wird der Kontakt geschlossen, spielt iobroker (Blockly) eine Gong mp3 ab! Das klappt auch schon lange sehr gut!
Allerdings wird für jedes Drücken natürlich die mp3 nochmal abgespielt, obwohl die erste noch nicht zu Ende ist!
Bei hektischen Klinglern kann das schonmal nerven, da man dann nur noch "Audiosalat" hört!
Was wäre die geschickteste Lösung die erneute Ausführung des Skriptes für eine gewisse Zeit (Dauer der mp3) zu verhindern. Natürlich sollten andere Prozesse dadurch nicht verzögert werden!
Ich bin ja sicher nicht der erste, der das so realisiert hat!
Danke !!!
-
Ich würde es mit blockly und einer Variable regeln.
Solange mp3 läuft xxx Sekunden keine neuen Trigger acceptieren
–-----------------------
Send from mobile device
Das schöne ios hat Auto Korrektur zum k****
Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community
-
Ich würde es auch mit einer Variablen / einem eigenen Datenpunkt und zwei sep. Scripte machen.
Script 1:
Wird geklingelt, wird die Variable auf true geprüft. Ist sie false, wird die Variable auf true gesetzt.
Über einen Timer wird sie dann wieder auf false gesetzt.
Script 2
Es prüft die Änderung der Variable. Geht sie auf true, wird das mp3 angespielt.
Gruß,
Eric
Von unterwegs getippert
-
Das wurde hier in ähnlicher Form schon behandelt.
-
Warum eigentlich so kompliziert. Ich habe das in einem Javascript gelöst. Wenn die Taste gedrückt wird lese ich von dem Gong den Status .STATE aus. Ist er true, dann spielt noch das MP3 und ein erneuter Tastendruck wird ignoriert.
createState('wohnung.klingel.gedrueckt', false); createState('wohnung.klingel.aktiviert', true); /*Klingel*/ subscribe({id: whgKlingelSwitchShort, val:true}, function (obj) { klingelGedrueckt(); }); subscribe({id: whgKlingelSwitchLong, val:true}, function (obj) { klingelGedrueckt(); }); function klingelGedrueckt() { var klingel=getState('javascript.0.wohnung.klingel.aktiviert').val; //Prüfen ob Klingel aktiviert oder nicht var klingelState=getState(whgKlingel).val; //whgKlingel = Gong.STATE if ((klingel===true) && (klingelState===false)){ setState(whgKlingelSettings,"1,1,108000,0"); setState(whgKlingel,true); sendTo("pushover", "Klingel gedrückt!"); } }
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
