[Modul] Fenster- und Türkontakt (Contact Sensor)

Hallo zusammen,

jetzt wo es Winter wird kann das Modul erstmal zeigen ob es auch funktioniert :smiley:

Die erste Beta-Version hatte ich noch im Toolmatic-Thread vorgestellt!

Hier nun das erste Update, welches die gesammelten Erfahrungen und Feedbacks (special thanx to @MacTools) einfließen läßt.

CHANGELOG

v1.1.20201204 [Beta-Kanal]

[ul]
[li] NEU: 2. Kontaktsensor hinzugefügt
[/li][li] NEU: Wiederholungsintervall für bedingtes Schalten hinzugefügt
[/li][li] NEU: Zeitspanne für Aufhebung der Absenkung hinzugefügt
[/li][li] NEU: Aliase für Modul auf Türkontakt und Fensterkontakt geändert
[/li][li] FIX: Schaltungslogik komplett neu umgesetzt (via WINDOW_STATE)
[/li][li] FIX: Zugriff auf interne Funktionen aufgehoben
[/li][li] FIX: Meldungslogik umgebaut
[/li][/ul]

Doku wie immer im Repro oder auf meiner Website => Modul Kontaktsensor

Danke & Ciao
Heiko

Hallo zusammen,

schnell noch vor Heilig Abend ein Update!

CHANGELOG

v1.2.20201219 [Beta-Kanal]

[ul]
[li] NEU: 3. und 4. Kontaktsensor hinzugefügt
[/li][li] FIX: Meldungslogik verbessert/optimiert
[/li][/ul]

Doku wie immer im Repro oder auf meiner Website => Modul Kontaktsensor

Feedback wie immer willkommen!

Besinnliche Weihnachtszeit und guten Rutsch ins neue Jahr 2021

Weihnachtliche Grüße
Heiko

Hallo zusammen,

eigentlich wollte ich die Tage das Modul für die Zertifizierung vorbereiten und als Stable freischalten lassen.

Dabei ist mir ein Fauxpas meinerseits aufgefallen, welcher die hinterlegte Bundle-ID betrifft.
Da das Modul nur als Beta bisher im Store ist, war das Symcon Team so nett es für mich anzupassen (spezieller Danke an @Dr. Niels).

Also, wenn ihr mein Modul schon installiert habt bitte folgendes machen:

[ol]
[li]Installiertes Modul löschen (2 Wege)[/li][LIST=A]
[li]via kleinem Scriptaufruf => [/li]```php
SC_DeleteModule(12345 /* ID des Store Control */, ‚de.wilkware.ips.module.contactsensor‘);


[li]alternativ kann man auch den Ordner unter modules/.store manuell löschen (d[i]e.wilkware.ips.module.contactsensor[/i]).[/li][/ol]

[li]Modul erneut installieren (Suchstring : '[i]Toolmatic Contact Sensor[/i]')[/li][li]Bereits angelegt Instanzen sollten weiterhin funktionieren![/li][/LIST]

Sorry für den Aufwand! Bei Fragen kommt gern auf mich zu!

Als Dankeschön sollte es dann die Stable Version mit einigen Erweiterungen geben :loveips:

Danke & Ciao
Heiko

Hallo zusammen,

gerade kam die Meldung rein das die Einreichung für die Stable-Version erfolgreich war.
Damit hat die Toolmatic-Reihe wieder ein neues Mitglied im Store - Danke ans Symcon-Team!

Hier nochmal der Funktionsumfang:

  • Überwachen von bis zu 4 Kontaktsensoren (z.B. pro Raum)
  • Verzögertes Absenken der Heizung entsprechend eingestellter Zeit
  • Schalten von bis zu 2 Heizkörpern (Thermostaten bzw. Ventilantrieben)
  • Bedingtes Schalten in Abhängigkeit …
    • der Ventilstellung / Ventilöffnung
    • der Differenz zwischen Aussen- und Innentemperatur
    • Wiederholtes Testen der Bedingungen nach einstellbarer Zeit
  • Automatisches Aufheben der Absenkung unabhängig von Zustand der Sensoren

Doku wie immer im Repro oder auf meiner Website => Modul Kontaktsensor

Feedback wie immer willkommen!

Gruß
Heiko

Guten Morgen,

auch hier haben Renovierungsarbeiten zugeschlagen und hat dabei eine komplett neue Meldungsverwaltung mit sich gebracht!

Changeloge der BETA v2.0.20221204:

  • NEU: Konfigurationsformular überarbeitet und vereinheitlicht
  • NEU: Kompatibilität auf 6.0 hoch gesetzt
  • NEU: Meldungswesen komplett überarbeitet und erweitert
  • FIX: Interne Bibliotheken überarbeitet und vereinheitlicht
  • FIX: Dokumentation überarbeitet

WICHTIG: Die Einstellungen der Meldungsverwaltung haben sich „fast“ komplett verändert und erweitert und sind nicht Rückwärtskompatible (sorry) - also bitte entsprechend den eigenen Wünschen wieder setzen!

Danke & Ciao
Heiko

Kurzes Update - jetzt auch als Stable im Store verfügbar!

Danke & Ciao
Heiko

Guten Morgen Heiko,

eine Frage, funktioniert das Modul auch mit dem HM-CC-RT-DN?

Falls ja, was wird als Steuerungskanal hinterlegt?

Danke und Grüße
Stephan

Du meinst als Heizungssystem - nein, weil er kein WINDOW_STATE Datenpunkt unterstützt :frowning:

Gruß Heiko

Ja genau, dann kann die Absenkung damit also nicht erfolgen, schade :disappointed_relieved:
Die Möglichkeit das man ein Skript hinterlegt gibt es nicht oder habe ich da etwas übersehen?

Aber danke für die Antwort.

Grüße
Stephan

Nein, Skript ist im Moment nicht implementiert :frowning: Wäre aber glaube ich sehr einfach umsetzbar!

Könnte man mit IPS_RunScriptEx und übergabe von OPEN/CLOSE (1/0) gut lösen

IPS_RunScriptEx($script, Array("WINDOW_STATE" => $state));  

Würde Dir das helfen?

Gruß Heiko

Danke für deine erneute Antwort.

Ja das wäre super wenn ich hier dann einfach ein Skript hinterlegen könnte. Danke.
Würdest du das einbauen?

Grüße
Stephan

Ja, schaue es mir an und melde mich wieder. Könnte sogar recht schnell gehen - habe da ja schon fertige Sachen aus anderen Modulen!

Gruß Heiko

Und schon gibt es eine neue Beta :loveips:

Changelog BETA v2.1.20230110:

  • NEU: Referenzieren der Gerätevariablen hinzugefügt (sicheres Löschen)
  • NEU: Erweiterung zum Ausführen eines Skriptes
  • FIX: 4. Kontaktsensor wurde nicht berücksichtigt

Übergabe ans Script wie oben beschrieben! Hier mal die Ausgabe von $_IPS via LogMessage …

Contact 2023-01-10 105731

Gruß Heiko

Hallo Heiko,

vielen Dank für die schnelle Integration.

Ich habe noch eine Frage dazu, wie genau funktioniert denn bei der Absenkung der Weg zurück?
Also wenn das Fenster geöffnet wird, sorgt folgendes dafür das mein Heizkörper komplett ausgeschalten wird.

if ("WINDOW_STATE" == 0)
{
HM_WriteValueFloat(23546,"MANU_MODE", 1);
}

Wenn ich das Fenster dann wieder schließe, würde ich ja gerne wieder mein Automatikprogramm setzen.

if ("WINDOW_STATE" == 1)
{
HM_WriteValueBoolean(23546,"AUTO_MODE", true);
}

Das wird aber dann nicht nochmal abgefragt oder? Wie ist das denn normal bei deinem Modul geplant?

Danke schon mal und Grüße
Stephan

Ich habe leider kein HM-CC-RT-DN :frowning:

Ich hab jetzt schnell mal in die HM-Docu geschaut.

über ‚CONTROL_MODE‘ kann man den Modus auslesen:

0 = AUTO-MODE (Standard)
1 = MANU-MODE
2 = PARTY-MODE
3 = BOOST-MODE

über ‚MANU_MODE‘ kann man die manuelle Temp schreiben:

  • Typ: float
  • Minimaler Wert: 4.5
  • Maximaler Wert: 30.5
  • Standardwert: 20.0
  • Einheit: °C

Ich würde das hier probieren …

// zurück in Auto-Modus
HM_WriteValueBoolean($IPS_DeviceID,'AUTO_MODE',true);

// Absenken per Manuel Modus
HM_WriteValueFloat($IPS_DeviceID,'MANU_MODE',12.0);

Also das Script wird vom Modul beim Öffnen und dann wieder beim Schließen aufgerufen!

Gruß Heiko

Ich glaube ich habe Deine Frage falsch beantwortet, Du hast ja schon die richtigen Befehle angewandt :slight_smile:

Also, mein Modul ruft wie geschrieben bei Öffnen des Fensters und den eingestellten Bedingungen das hinterlegte Script mit

                    $rs = IPS_RunScriptEx($script, ['WINDOW_STATE' => 1]);

auf.

Wird das Fenster wieder geschlossen (Modul merkt sich das eine Absenkung überhaupt stattgefunden hat) ruft es

                $rs = IPS_RunScriptEx($script, ['WINDOW_STATE' => 0]);

auf.

Hoffe das hilft zum Verständnis!

Du kannst auch gern mal das Debug nebenher laufen lassen, dann kannst Du mitlesen was passiert!

Gruß Heiko

Danke für´s raussuchen der Befehle, die hatte ich aber in der Tat schon :slightly_smiling_face:.

Ich habe das jetzt mit dem offenen Debug nochmal laufen lassen:

Beim öffnen des Fensters werden 30 Sekunden gewartet und dann wird die Absenkung (Skript startet) vollzogen.
Wenn ich das Fenster schließe, reagiert das Skript sofort, allerdings passiert nichts, es scheint als wenn das Fenster immer noch als geöffnet betrachtet wird.

Der Fensterkontakt hat den Status aber korrekt gewechselt. Woran kann das liegen?

Gruß
Stephan

Bin etwas verwirrt was Du mit - es passiert nix wenn das Skript reagiert???

Im Debug kann man doch schön lesen …

  • Decrease - Script Execute Return Value 1 (heißt Absenkung hat gestartet, Script wurde erfolgreich ausgeführt)

  • Restore - Script Execute Return Value 1 (heißt Absenkung beenden, Fenster wurde geschlossen)

Vielleicht magst Du mir erklären was passieren soll?

Danke & Ciao
Heiko

Sorry das ich mich hier unverständlich ausdrücke.

Das Skript das ich in deinem Modul hinterlegt habe sieht wie folgt aus:

if ("WINDOW_STATE" == 1)
{
HM_WriteValueBoolean(23546,"AUTO_MODE", true);
}
if ("WINDOW_STATE" == 0)
{
HM_WriteValueFloat(23546,"MANU_MODE", 1);
}

Da ich eine Verzögerung von 30 Sekunden eingestellt habe, wird danach richtigerweise in den Manuellen Modus geschaltet.

Wenn ich dann das Fenster schließe, wird ohne Verzögerung das Skript ausgeführt, scheinbar kommt vom Fensterkontakt hier nicht schnell genug geschlossen und somit wird nicht in den Automatik Modus zurückgeschaltet.

Ich hoffe du verstehst jetzt was ich meine?

Grüße
Stephan

Ahh, jetzt verstehe ich was los ist :slight_smile: Zwar nicht aus Deiner Erklärung, aber aus Deinem Script :slight_smile: … das ist leider nicht ganz richtig! Der „WINDOW_STATE“ wird als Array-Wert übergeben, deshalb hatte ich ja extra die Screenshots vom Array mitgeschickt.

Dein Script muss ungefähr so aussehen …

if ($_IPS["WINDOW_STATE"] == 1)
{
HM_WriteValueBoolean(23546,"AUTO_MODE", true);
}
if ($_IPS["WINDOW_STATE"] == 0)
{
HM_WriteValueFloat(23546,"MANU_MODE", 1);
}

Sonst ist das ja eine normaler Stringvergleich mit 0 bzw. 1 und der schlägt bei == 0 wohl zu :slight_smile:

Gruß Heiko