Wie Redundanz einbauen?

Hallo Ihr Lieben,

heute benötige ich mal einen Expertenrat:

Gestern Morgen schaue ich verschlafen auf meinen kleinen Teich und musste feststellen, dass mein Koi-Fütterautomat ca. 2 kg Fischfutter ausgespuckt hat und immer noch am laufen war.
Irgenwie waren auch alle Koi’s ein wenig dicker als sonst :wink:

Das Problem: Der Automat wird über ein zeitgesteuertes Skript 2 bis 3 x am Tag für 15 Sekunden eingeschaltet.
Den Befehl dafür sende ich an ein ‚wired‘ Homematik Modul HMW -IO-12-Sw14-DR (an einen Open Collector Ausgang, der ein Relais schaltet).

Hier das entsprechende (simple) Skript:

<?
$dur = 15; //  15 seconds
$ins = 32806 /*[AUSSEN\Garten\Wired_1_Terrasse\CH8_OC]*/;

 if($_IPS['SENDER']  == "TimerEvent")
 {
HM_WriteValueBoolean($ins,"STATE",FALSE);
  //Timer ausschalten
  IPS_SetScriptTimer($_IPS['SELF'], 0);
 } else {
HM_WriteValueBoolean($ins,"STATE",TRUE);
  //Timer anschalten
  IPS_SetScriptTimer($_IPS['SELF'], $dur);
 }
?>

Wie der Profi erkennen kann, ruft sich das Skript nach 15 Sekunden selbst wieder auf und soll - wenn vom Timer aufgerufen - den Kanal wieder ausschalten.

Dies hat nun mehrere Monate gut funktioniert - nur gestern nicht. Der Kanal war nach 1,5 Stunden immer noch auf ‚ON‘.

Hat von Euch jemand einen Tipp wie man dabei ein wenig mehr Redundanz einbauen kann, um sicher zu stellen, dass der Kanal tatsächlich ausgeschaltet wurde (ohne zusätzlich Hardware)?

An dieser Stelle schon mal Danke für konstruktive Vorschläge dazu.

Liebe Grüße aus Wiesbaden
Dieter

Dafür hat Homematic den „ON_TIME“ Parameter geschaffen, damit das Modul sich selber abschalten kann.

Ich nutze das ausgiebig für die Bewässerung, damit ich keinen Teich bekomme :smiley:

Wenn er auf ‚ON‘ stand müsstest Du doch abfragen können wie lange der Aktor diesen Status schon hat. Ist ein bestimmter Grenzwert überschritten könntest Du damit weitere Aktionen triggern.

Oder falls Dein Aktor das unterstützt wäre ein anderer Ansatz:


	HM_WriteValueString($ins, "ON_TIME", 15);
	HM_WriteValueBoolean($ins, "STATE", true);

[EDIT} Da war jemand schneller [/EDIT]

@dapor,
@kronos,

hier schon mal Danke für die Vorschläge - aber den Parameter „ON_TIME“ gibt es leider nicht beim Homematik
Modul HMW-IO-12-Sw14-DR :mad:

Mal schaun wie wir das lösen :wink:

Gruß
Dieter

Dann über die Einschaltdauer. Da gab es hier im Forum schon mal ein kleines Skript dazu. Hätte auch den Vorteil nicht nur eine zu lange sondern auch eine zu kurze Einschaltdauer ermitteln zu können.

Gefunden: Klick mich.

Danke Dir kronos,

ich habe jetzt eine Idee wie die Sache anzugehen ist.

Gruß
Dieter

Würde ich anders machen. Baue dir eine virtuelle Direktverknüpfung mit dem Aktor und setze dies auf das Profil „Treppenhauslicht“ mit 15sek.

Das Aufrufen dieser Direktverknüpfung kannst Du dann in der CCU über ein Programm erledigen oder in IPS lösen.

Der Vorteil ist, dass dem Aktor direkt die Info „nur für 15 sekunden angehen“ geschickt wird, also nur ein Befehl, der Timer läuft dann Modul intern. Es benötigt also keinen Ausschaltbefehl.

Ich habe sehr schlechte Erfahrungen mit getimten Befehlen über IPS oder die CCU gemacht, es wurden häufig Befehle verschluckt. Seit dem arbeite ich bei allen getimten Geschichten fast nur noch mit der virtuellen Direktverknüpfung.

So verfahre ich generell bei HM: Direktverknüpfung vor CCU Programm vor IPS Skript

@roadsterhh,

danke für Deinen Vorschlag - aber ich befürchte dies lässt sich mit dem von mir benutztem wired Modul Modul HMW -IO-12-Sw14-DR nicht realisieren, denn in der CCU-Geräteeinstellung werden gar keine Profile angeboten.

Oder habe ich Dich komplett falsch verstanden?

Mein Problem ist, dass ich nicht genau weiss, was den Fehlerfall verursacht:

a) hat der Timer gar nicht zugeschlagen oder
b) konnte der Befehl HM_WriteValueBoolean($ins,„STATE“,FALSE) nicht ausgeführt werden

Beides ist in meiner Anwendung FATAL wenn es eintritt - leider/zum Glück passiert es sehr selten.

Gruss aus Wiesbaden
Dieter

Moin… ich dacht an HM wäre der Vorteil das es einen Rückkanal gibt… also Feedback!?
Frag den Status des Aktors doch nach 17-20 Sekunden noch einmal ab und sollte er da noch auf True sein lass Dir ne Meldung schicken. Oder liegt das Problem bei HM und IPS und IPS hat den Aktor als False angezeigt, obwohl er aber True war?
Gruß,
Peter

@Dieter:

Stimmt ! Dein Modul ist glaube ich das einzige, welches keine Direktverknüpfungen erlaubt. Ich nutze es auch, allerdings ausschließlich zur Erfassung analoger Werte meiner 0-10V Temperatursensoren.

Ich würde auf ein Modul setzen, welches direkt verknüpfbar ist. Langt ja sogar so ein lütter UP Aktor.

Wie gesagt: arbeite soviel wie möglich mit Direktverknüpfungen, im Notfall virtuelle und rufe dieses Konstrukt dann durch CCU Programm oder IPS Skript auf. Das ist sicherste Lösung. Bei allem anderen sind mir schon mal Zustände und Befehle flöten gegangen. Das 14er IO Modul ist gefühlt bei mir auch das instabilste.

Servus

also ehrlich gesagt richtig Fail-Save ist das alles nicht.

Falls du am Modul noch einen Eingang frei hast so könntest doch diesen benutzen um den Status des Ausgangs zurückzulesen. So kriegst dann ggfls. auch Hardwaredefekte mit.

Alternativ ein externes Zeitglied (Monofop) welches durch den HM Aktor getriggert wird.

gruß
bb

Huhu,
also für meine Saunasteuerung habe ich zusätzlich nen HM-LC-SW1 als Unterbrecher drin. An den kann ich zusätzlich die On-Time mitgeben. Der schaltet auch wieder aus wenn die CCU o.ä. versagt :slight_smile:
Aber was rettet die Fische vorm verhungern, falls ein Relais mal nicht mehr einschaltet…?
Also an deinen Ausgang ein Hilfsrelais o.ä. welches vor dem Schaltvorgang abgefragt wird (Spannungslos), nach dem Schaltvorgang muss dieses Relais seinen Schaltzustand negiert haben und letztendlich nach dem Ausschalten wieder.
Im Fehlerfall… Prowl o.ä.

LG
Sven