Bei HMIP-SWDO per Script die Eventverzögerung anpassen

HMIP lokale Installation

Moderator: Co-Administratoren

Antworten
DerFieseFriese
Beiträge: 5
Registriert: 02.02.2018, 09:27

Bei HMIP-SWDO per Script die Eventverzögerung anpassen

Beitrag von DerFieseFriese » 09.02.2018, 09:47

Hallo liebe Forum-Mitglieder,

erstmal ein Danke in die Runde! Nachdem ich jetzt schon viele tolle Ideen und Lösungen hier aus dem Forum ziehen konnte, beschäftigt mich ein Problem für ein kommendes Projekt bei dem ich einfach nicht weiter komme. Vielleicht hat jemand von euch eine schlaue Lösung per Script oder einen komplett anderen Ansatz. Ich betreibe meine komplette Hausautomatisierung auf einer CCU2 da ich persönlich kein Freund von Cloud-Lösungen bin (mal ganz angesehen von den Cloudmatic-Problemen).

- CCU2 FW 2.29.23
- CUxD 1.11a
- HMIP-SWDO FW 1.12.1

Szenario:
Wir haben einen großen Wohnzimmer-Bereich mit 2x HmIP-eTRV-2 Thermostaten, 2x HmIP-SWDO Fensterkontakten und 1x HmIP-WTH-2 Wand-Thermostat aufgestattet und funzt soweit auch ganz gut. Wegen unserer Katze wurden die HmIP-SWDO mit einer Eventverzögerung von 20 Sekunden eingestellt. Ich will ja nicht bei jedem rein- und rauslassen eine Vollbremsung der Thermostate :D

Die nächste Ausbau-Stufe wäre im EG alle Fenster und Türen mit HmIP-SWDO auszustatten, um in Zukunft eine Alarmanlage realisieren zu können. Dazu habe ich bereits hm-pdetect von Jens Maus am laufen, was auch hervorragend funktioniert.

Fragestellung:
Gibt es eine Möglichkeit die Eventverzögerung der HmIP-SWDO Fensterkontakte per Script anzupassen?
=> Bei Anwesenheit der Hausbewohner soll die Eventverzögerung auf 20 Sekunden stehen
=> Bei Abwesenheit und aktiver Alarmanlage soll die Eventverzögerung auf 0 Sekunden stehen und sofort auslösen

Recherche:
In der HmIP_Device_Documentation.pdf von Homematic findet man auf Seite 3573 das im Channel 1 SHUTTER_CONTACT_TRANSCEIVER bei den Channel configuration parameters theoretisch die Möglichkeit bestünde dort den Datenpunkt anzupassen:

- EVENT_DELAY_VALUE
- integer
- read write
- Min: 0
- Max: 63

Jetzt habe ich mal ein Script in der Konsole laufen lassen und alle Datenpunkte von so einem Fensterkontakt ausgeben lassen.

Code: Alles auswählen

string auswahl = "XXXXXXXXXXXXX";
! +++++++++++++++++++
string index;
string liste = dom.GetObject(ID_DATAPOINTS).EnumUsedNames();
foreach (index, liste) {
	var sserial = (index.StrValueByIndex(":",0).StrValueByIndex(".",1));
	if (sserial == auswahl) {
		Write(index #"\n");
	}
}
Dabei kam vom Channel 1 leider nur STATE zurück. All die anderen Parameter aus der Doku werden wohl nicht ausgeliefert.

Code: Alles auswählen

HmIP-RF.XXXXXXXXXXXXXX:0.CONFIG_PENDING
HmIP-RF.XXXXXXXXXXXXXX:0.DUTY_CYCLE
HmIP-RF.XXXXXXXXXXXXXX:0.ERROR_CODE
HmIP-RF.XXXXXXXXXXXXXX:0.LOW_BAT
HmIP-RF.XXXXXXXXXXXXXX:0.OPERATING_VOLTAGE
HmIP-RF.XXXXXXXXXXXXXX:0.RSSI_DEVICE
HmIP-RF.XXXXXXXXXXXXXX:0.RSSI_PEER
HmIP-RF.XXXXXXXXXXXXXX:0.SABOTAGE
HmIP-RF.XXXXXXXXXXXXXX:0.UNREACH
HmIP-RF.XXXXXXXXXXXXXX:0.UPDATE_PENDING
HmIP-RF.XXXXXXXXXXXXXX:1.STATE
Ich habe schon andere Ansätze kurz angelesen, bin da aber jetzt noch nicht soo tief drin. Anscheinend kann die XML-API mehr auslesen, es gäbe da noch TCL-Scripte, die anscheinend auch tiefer ins System kommen und dann habe ich gestern noch etwas über RegaHSS gelesen und es mit sowas von User BadenPower ausprobiert:

Code: Alles auswählen

object obj = devices.Get("Tür-Sensor Haupt-Terrasse");
xmlrpc.PutParamset (obj.Interface(), obj.Address(), "MASTER", "EVENT_DELAY_VALUE", "20");
Da bekomme ich bei CUxD im Log aber nur allerlei Fehlermeldungen. Ich gehe mal davon aus, dass ich das falsch benutze oder schlicht auch dort dieser Datenpunkt nicht angesprochen werden kann. Also ich bin für jede Hilfe dankbar oder alternative Lösungen :mrgreen:

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Bei HMIP-SWDO per Script die Eventverzögerung anpassen

Beitrag von Familienvater » 09.02.2018, 11:08

Hi,

bevor Du viel Kraft investierst, um die Daten automatisch zu ändern, wie klappt es denn, wenn Du die Daten manuell in der Konfig anpasst?
Werden die automatisch an das Gerät übermittelt, oder muss sich das Gerät dazu erstmal bei der Zentrale melden?

Ich würde mich "ungerne" auf so etwas verlassen, wenn nicht 100% sicher ist, das es zuverlässig funktioniert, weil sonst kommt der Einbrecher in dem 20 Sekunden Fenster rein und macht das Fenster wieder zu, und es passiert nichts.

Und es könnte sein, das im späteren Betrieb so eine Konfig-Orgie bei vielen Geräten massiv Dutycycle kosten könnte, weil ich nicht glaube, das nur ein Parameter übertragen wird, sondern "alle" Konfig-Parameter des Kanals, bei einem Fensterkontakt ist das noch eine überschaubare Menge, bei einem Wandthermostat könnte das ein ganz schön großer Konfigblock werden.

Der Familienvater

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Bei HMIP-SWDO per Script die Eventverzögerung anpassen

Beitrag von alchy » 09.02.2018, 12:23

Nicht alles ist über die Abfrage von Datenpunkten bzw. das Ändern zu erledigen.
Daher bekommst du auch nur den einen Datenpunkt auf Kanal 1 des Gerätes angezeigt.
Soweit "normal".

Der zumindest erfolgversprechendere Versuch über xmlrpc.PutParamset schlägt *IMHO* fehl, weil du auf das Parameterset des Gerätes zugreifen willst.
Aber das nur aus der Erinnerung. Richtig gemacht würde es *IMHO* funktionieren.

ABER

Wenn du den Parameter über ein Script änderst, dann erscheint eine Servicemeldung "Konfigdaten" zur Übertragung.
Und da liegt der Crux in deinem Willen, wie auch schon vom Familienvater geschrieben.
Daher würde dir raten, deinen Willen eher über z.B. ein Programm mit Systemvariablen und entsprechender Verzögerung im DANN abzubilden.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

DerFieseFriese
Beiträge: 5
Registriert: 02.02.2018, 09:27

Re: Bei HMIP-SWDO per Script die Eventverzögerung anpassen

Beitrag von DerFieseFriese » 09.02.2018, 13:31

Hallo Familienvater und Alchy,

schon mal vielen Dank für eure Antworten. Ich hatte mir schon fast gedacht, dass es nicht so einfach werden würde, wenn diese Einstellungen nicht von Haus aus direkt verfügbar sind. Am schlauesten wäre es natürlich vom Hersteller gewesen, bei den Heizungsthermostaten und/oder Wand-Thermostat ein programmierbares Delay zu hinterlegen, damit "Tür-Offen" zwar sofort erkannt wird, aber die Thermostate erst mal nicht reagieren :wink:

Da ich alle 3 Geräteklassen (2x HmIP-eTRV-2 Thermostaten, 2x HmIP-SWDO Fensterkontakten und 1x HmIP-WTH-2 Wand-Thermostat) mit diversen Direktverknüpfungen verbunden habe, heisst das dann wohl im Umkehrschluss:

=> Alle Direktverknüpfungen mit den HmIP-SWDO Fensterkontakten entfernen
=> Eventverzögerung in den HmIP-SWDO Fensterkontakten wieder auf 0 setzen
=> Programme anlegen, die nach je nach Zustand der Alarmanlage/Anwesenheit mit einem Delay von 0 oder 20 Sekunden reagiert
=> Wand-Thermostat reagiert auf "Tür-Offen" Meldung bzw. der Alarm wird ausgelöst

Hab ich noch was vergessen? :)

Benutzeravatar
shartelt
Beiträge: 7421
Registriert: 14.01.2015, 14:59
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 524 Mal
Danksagung erhalten: 753 Mal

Re: Bei HMIP-SWDO per Script die Eventverzögerung anpassen

Beitrag von shartelt » 09.02.2018, 14:30

Du kannst doch die Eventverzögerung live im Fensterkontakt einstellen und musst dazu nicht die Verknüpfungen neu machen.

DerFieseFriese
Beiträge: 5
Registriert: 02.02.2018, 09:27

Re: Bei HMIP-SWDO per Script die Eventverzögerung anpassen

Beitrag von DerFieseFriese » 09.02.2018, 15:23

shartelt hat geschrieben:Du kannst doch die Eventverzögerung live im Fensterkontakt einstellen und musst dazu nicht die Verknüpfungen neu machen.
Vielleicht stehe ich gerade auf dem Schlauch, aber was genau meinst du mit "live" einstellen? Die Eventverzögerung kann ich aktuell nur über WebUI > Geräte > Einstellen Fensterkontakt abändern. Mir ging es aber ja darum, wie ich dies automatisch anpassen könnte, je nach Zustand einer zukünftigen Alarmanlage.

Edit: Oder beziehst du dich auf die Homematic IP App? Die hab ich nicht, sondern nur eine CCU2 ...

Mittlerweile habe ich auch noch diesen Beitrag gefunden, der anfangs dasselbe Problem beschreibt und zu ähnlichen Ergebnissen kommt:
viewtopic.php?f=27&t=20932

Nach meinem Verständnis würde ein Fensterkontakt ohne Eventverzögerung, der per Direktverknüpfung mit dem Wandthermostat verbunden ist, bei "Tür offen" sofort ein Herunterfahren der Heizkörperthermostate auslösen. Wenn ich jetzt ein Programm anlege, dass parallel dazu läuft und mit Systemvariable arbeitet und eine Verzögerung inne hat, dann würde dies meiner Meinung nach nicht funktionieren. Erst wenn die Direktverbindung aufgelöst wurden, kann ich zeitverzögert je nach Zustand der Alarmanlage dem Wandthermostat ein "Tür offen" übermitteln oder halt einen Alarm auslösen.

Ich werde heute Abend einfach mal etwas rumprobieren :?

Benutzeravatar
shartelt
Beiträge: 7421
Registriert: 14.01.2015, 14:59
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 524 Mal
Danksagung erhalten: 753 Mal

Re: Bei HMIP-SWDO per Script die Eventverzögerung anpassen

Beitrag von shartelt » 09.02.2018, 15:26

achso sorry ja. Ich hab Deine Aufzählung nur überflogen und dachte, Du willst für die Änderung die Verknüpfung löschen und neu anlegen :)

aber Du folgerst richtig, wenn Du das variabel haben möchtest und Alchys vorschlag folgen möchtest, dann musst Du das über ein Programm machen...allerdings wirst Du dann eine merkliche Verzögerung spüren :)

Also die DV ist nahezu sofort da...über ein Programm dauert das schon mal nen Sekündchen.

dixy
Beiträge: 28
Registriert: 17.04.2013, 20:50
Wohnort: HH
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Bei HMIP-SWDO per Script die Eventverzögerung anpassen

Beitrag von dixy » 03.03.2019, 17:16

Hallo FieserFriese,

das ist ja lustig, genau das von dir beschriebene Problem beschäftigt mich auch gerade. Am Hintereingang habe ich eine Verzögerung für den Fensterkontakt von 30 Sekunden eingestellt. Das ist im Einbruchsintervall natürlich großer Mist zumal das "Geöffnet" so wie es ausschaut ach nicht 30sec später übertragen wird, wenn die Tür zwischenzeitlich wieder geschlossen wurde.

Daher muss ich für diesen Raum wohl auf die Direktverknüpfung verzichten und ein Programm für den Fall "anwesend" bzw "abwesend" zusammenklicken.

Hast du da schon etwas produktiv?

Viele Grüße
dixy
RaspberryMatic auf PI3 und neuer Senderplatine RPI-RF-MOD und angeschlossener Philips Hue Bridge

Antworten

Zurück zu „HomeMatic IP mit CCU“