[Gelöst] Direktverknüpfung - Benachrichtigung

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Xel66
Beiträge: 14169
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 586 Mal
Danksagung erhalten: 1501 Mal

Re: Direktverknüpfung - Benachrichtigung

Beitrag von Xel66 » 24.01.2021, 22:12

Alexandra hat geschrieben:
24.01.2021, 21:52
Ich denke, ich habe etwas in der Art von virtuellen Verknüpfungspartnern gesucht ... die können zwar als Auslöser fungieren, aber leider nicht als Empfänger. Sowas wär' nett gewesen :)
Die virtuellen Tasten der CCU erfüllen nicht diesen Zweck? Diese lassen sich in Programmen sowohl als Trigger auswerten als auch als Aktionsziel im DANN auswählen.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Benutzeravatar
Alexandra
Beiträge: 194
Registriert: 14.12.2018, 10:01
System: Alternative CCU (auf Basis OCCU)
Wohnort: Baden bei Wien
Hat sich bedankt: 45 Mal
Danksagung erhalten: 19 Mal

Re: Direktverknüpfung - Benachrichtigung

Beitrag von Alexandra » 24.01.2021, 22:19

Servus,

in Programmen (die versuch' ich auf der CCU allerdings zu vermeiden wie der Teufel das Weihwasser) schon,
aber leider lassen sie sich nicht in Direktverknüpfungen als Ziel eintragen.
DAS würd' einiges an Kopfweh ersparen :)

Ganz liebe Grüße, Alexa

Xel66
Beiträge: 14169
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 586 Mal
Danksagung erhalten: 1501 Mal

Re: Direktverknüpfung - Benachrichtigung

Beitrag von Xel66 » 24.01.2021, 23:52

Alexandra hat geschrieben:
24.01.2021, 22:19
...in Programmen (die versuch' ich auf der CCU allerdings zu vermeiden wie der Teufel das Weihwasser) schon...
Hmmm... Bedingte logische Verknüpfungen lassen sich aber nun nicht als Direktverknüpfungen anlegen. Irgendeinen Tod musst Du sterben. Und da ist der vom Hersteller vorgesehene immer noch der einfachste, effektivste und der mit den wenigsten Nebenwirkungen. Du willst also vermeiden, dass System so zu nutzen, wie es der Hersteller vorgesehen hat. Stattdessen setzt Du eine separate aufwändige Logikschicht ein, die dazu auch nicht in der Lage ist. Irgendwie kommt mir das wie in der Autotuner-Szene vor. Auf keine Fälle das Fahrzeug so nutzen, wie es der Hersteller vorgesehen hat. Alles mögliche rein- und dranbauen und ersetzen und dann am Ende doch nicht zu einem "guten" Ergebnis kommen. Aber soll jede(r) machen wie sie/er es will.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Benutzeravatar
Alexandra
Beiträge: 194
Registriert: 14.12.2018, 10:01
System: Alternative CCU (auf Basis OCCU)
Wohnort: Baden bei Wien
Hat sich bedankt: 45 Mal
Danksagung erhalten: 19 Mal

Re: Direktverknüpfung - Benachrichtigung

Beitrag von Alexandra » 25.01.2021, 07:20

Servus,

du erwähnst in einem Nebensatz dass ich eine separate, aufwändige Logikschicht verwende.
Ja, tue ich. Ich verwende sogar zwei - NodeRed (auf separatem Rechner) und S.A.R.A.H. (ebenfalls auf separatem Rechner - eine selbstcodierte Lösung die sich um den Rest, der durch keine der eingesetzten Lösungen abgedeckt wird, kümmert.

Warum mache ich das?
Nicht um noch eine Schicht Hochglanzpolitur aufzubringen sondern einfach deshalb weil

a) ich mit der Qualität der gebotenen Software des Herstellers nicht einverstanden bin
- wenn ich ein Programm 3x ändere und speichere ist die Funktionalität nicht mehr zuverlässig gegeben? Ich muss das Programm neu anlegen und dann geht's auf einmal? Macht für mich keinen Sinn.
- Systemvariablen die umbenannt werden (ja, das kommt manchmal vor) können oder können auch nicht mehr funktionieren.
- es gibt - abgesehen von Drittentwicklern - kaum Möglichkeiten das System zu erweitern
- mangelnde Dokumentation
- ausgesprochen eigenwillige Scriptsprache welche nicht immer den Paradigmen üblicher Softwareentwicklung folgt.
b) der Funktionsumfang für meine Wünsche nicht ausreicht.
c) ich intensiv auch fremde Hardware verwende und die ebenfalls in meiner Haussteuerung gleichwertig eingebunden haben möchte.

Bitte nicht falsch verstehen, ich habe mich sehenden Auges für HomeMatic(IP) entschieden und bin von der Qualität der Hardware und den Entwicklungsansätzen mehr als nur angetan.
Aber - meines Erachtens nach - ist erkennbar, dass EQ-3 auf Grund seiner Wurzeln in den 80ern ein hervorragender Hardware-Entwickler ist - Software ist dort aber letztendlich Mittel zum Zweck.

Somit - zusammenfassend - die Software kann diesen Wunsch (Hook der auslöst wenn eine Direktverknüpfung zwischen zwei Devices ausgeführt wird) nicht erfüllen.
Eine Lösung wie - leg doch für jede Direktverknüpfung (das wären schon jetzt weit über hundert) doch ein Programm an - sind nicht wirklich zielführend und in der Gesamtheit kaum wartbar. Von einer Wiederverwendbarkeit und Usability red' ich erst noch gar nicht.

Dem Enduser hier den Vorwurf zu machen das System nicht "wie vorgesehen" zu nutzen ist meines Erachtens nach unfair und billig, vor allem wenn die erhoffte Lösung im System nicht exisitiert. Und wenn man sich das Forum (incl. aktueller Umfrage) ansieht, dann verwendet offensichtlich der Großteil der Power-User Ergänzungen wir ioBroker, NodeRed etc. - und dies aus gutem Grund und nicht nur weil es Spaß macht.

Liebe Grüße,
Alexa

dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Re: Direktverknüpfung - Benachrichtigung

Beitrag von dtp » 25.01.2021, 07:57

Ich würde mir da einfach ein Programm basteln, das bei Überschreiten der Windgeschwindigkeit getriggert wird. In dem Programm würde ich dann ein kleines Skript im Dann-Zweig einfügen, das den Innenrollo nur dann schließt, wenn innerhalb einer festen Zeitspanne (z.B. eine Sekunde) das Außenrollo ausgelöst wurde. Sowas sollte sich mit dem .Timestamp()-Befehl ganz gut lösen lassen.

Code: Alles auswählen

string Windsensor = "Name des Windsensors";
string Aussenrollo = "Name des Außenrollos";
string Innenrollo = "Name des Innenrollos";
real Innenrollo_Behanghoehe = "40.0";

integer diff = (dom.GetObject(ID_DEVICES).Get(Windsensor)).Timestamp().ToInteger() - (dom.GetObject(ID_DEVICES).Get(Aussenrollo )).Timestamp().ToInteger();
if(diff <= 1){
  (dom.GetObject(ID_CHANNELS).Get(Innenrollo)).DPByHssDP("LEVEL").State(Innenrollo_Behanghoehe/100.0);
}
Die Behanghöhe des Außenrollos würde ich nur dann abfragen, wenn das Skript mit ausreichendem Delay ausgelöst wurde, weil die CCU ansonsten noch nicht den richtigen Wert übermittelt bekommen hat.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Benutzeravatar
Alexandra
Beiträge: 194
Registriert: 14.12.2018, 10:01
System: Alternative CCU (auf Basis OCCU)
Wohnort: Baden bei Wien
Hat sich bedankt: 45 Mal
Danksagung erhalten: 19 Mal

Re: Direktverknüpfung - Benachrichtigung

Beitrag von Alexandra » 25.01.2021, 08:06

Ganz lieb,

danke für die Arbeit die du da reingesteckt hast,
aber - es handelt sich hier um ein Programm das eine in-HomeMatic-nicht-existente Innenrollo (die ist - im Moment - von Ikea und per HomeMatic somit nicht ansteuerbar) steuern versucht.

Wäre die Innenrolle ebenfalls von HomeMatic wäre das eine zusätzliche Direktverknüpfung gewesen und dieser Thread wäre niemals begonnen worden. Da ich allerdings (vorerst) noch nicht zu den Fenstern durchstemmen mag, musste eine Funk-/Akkulösung her.

Und nochmals - ich suchte eine generelle Lösung (die es eben nicht zu geben scheint - das ist mittlerweile angekommen),
nicht einen Workaround den ich für hunderte Devices einzeln ausarbeiten müsste.

Sorry für die Arbeit, danke für die Info,

liebe Grüße, Alexa

jp112sdl
Beiträge: 12116
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 849 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: Direktverknüpfung - Benachrichtigung

Beitrag von jp112sdl » 25.01.2021, 08:11

Alexandra hat geschrieben:
23.01.2021, 19:07
wird die CCU benachrichtigt, wenn zwischen zwei Devices eine Direktverknüpfung ausgeführt wurde?
Alexandra hat geschrieben:
25.01.2021, 08:06
das eine in-HomeMatic-nicht-existente Innenrollo (die ist - im Moment - von Ikea und per HomeMatic somit nicht ansteuerbar) steuern versucht.
Jetzt bin ich gedanklich raus. :|
Ich hätte sonst fast noch den AskSinAnalyzer XS empfohlen, der quasi alle Homematic Funk-Telegramme mithört.
Dann siehst du zumindest, ob der Funkbefehl von der Zentrale oder einem Direktverknüpfungspartner an den Aktor gesendet wurde.
Den Output kannst du ja wo du willst weiter verarbeiten.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Benutzeravatar
Alexandra
Beiträge: 194
Registriert: 14.12.2018, 10:01
System: Alternative CCU (auf Basis OCCU)
Wohnort: Baden bei Wien
Hat sich bedankt: 45 Mal
Danksagung erhalten: 19 Mal

Re: Direktverknüpfung - Benachrichtigung

Beitrag von Alexandra » 25.01.2021, 08:46

Servus,

nein, ich hab' jetzt noch nicht danach gesucht, aber gibt's am AnalyzerXS eine API mit der ich die empfangenen Telegramme komfortabel abgreifen kann? Ich hab' ihn hier im Einsatz, seh die Infos live mitlaufen, aber kann ich die abgreifen ohne Kopfstände?

Weil ja, das wäre definitiv eine gute Lösung,
liebe Grüße, Alexa

Benutzeravatar
Alexandra
Beiträge: 194
Registriert: 14.12.2018, 10:01
System: Alternative CCU (auf Basis OCCU)
Wohnort: Baden bei Wien
Hat sich bedankt: 45 Mal
Danksagung erhalten: 19 Mal

Re: Direktverknüpfung - Benachrichtigung

Beitrag von Alexandra » 25.01.2021, 08:55

DANKE!

Das war's ... AsksinAnalyzerXS ist problemlos per NodeRED abgreifbar - somit hab ich die EXAKT die Infos die ich benötige, einfach und komfortabel!
Getestet - läuft.

Danke und ganz liebe Grüße,
Alexa

Xel66
Beiträge: 14169
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 586 Mal
Danksagung erhalten: 1501 Mal

Re: Direktverknüpfung - Benachrichtigung

Beitrag von Xel66 » 25.01.2021, 10:15

dtp hat geschrieben:
25.01.2021, 07:57
Ich würde mir da einfach ein Programm basteln...
Programme sind doch nicht gewünscht. Die funktionieren doch nicht zuverlässig. Ich weiß nur nicht, warum ich hier ein System habe, welches mit so einigen Programmen und einer Vielzahl an Systemvariablen stabil läuft und nachvollziehbar das tut, was ich mit der Programmierung beabsichtigt habe. Wie konnte das bei einem solche buggy system nur passieren?
Alexandra hat geschrieben:
25.01.2021, 07:20
Dem Enduser hier den Vorwurf zu machen das System nicht "wie vorgesehen" zu nutzen ist meines Erachtens nach unfair und billig, vor allem wenn die erhoffte Lösung im System nicht exisitiert.
Dem Enduser? Ich bin ebenfalls nur ein Anwender und habe mit den Firmen außer der Kundenbeziehung nichts weiter zu tun. Ich bestelle meine Geräte genau wie die meisten Anwender hier online und bezahle sie mit meinem selbst verdienten Geld. Unfair und billig ist eher, irgendwelche Gründe an den Haaren herbeizuzerren um ja einen Grund zu finden, das System nicht so zu benutzen, wie es vorgesehen ist. Beispiel: die "unzuverlässige" Programmeditierfunktion. Ich habe bei mir Programme im System, die ich gefühlte hundert mal geändert habe, und sie tun trotzdem ihren Dienst. Aber habe aber auch schon kaputte Programme gehabt. Aber irgendwas muss ich anders machen, dass dieses bei mir äußerst selten auftritt. Zweites Beispiel: Systemvariablen. Bei einer Umbenennung habe ich noch nie das Problem gehabt, dass eine Systemvariable nicht mehr "funktionierte". Reproduzierbar treten solche Effekte aber bei Typänderungen oder beim Hinzufügen von zusätzlichen Kriterien einer Mehrfachauswahl auf. Ich stecke nicht tief in der Firmware-Materie der CCU drin, aber ich kann mir durchaus vorstellen, dass Typänderungen, die eben nicht den in den Programmen angelegten Zustandserwartungen entsprechen, das System dann zu unvorhergesehen Aktionen veranlasst (meist funktioniert es einfach nicht). Wenn man davon weiß, dann berücksichtigt man das in seiner Programmerstellung genau so, wie man eine Syntax oder Namensgebung beim Erstellen von Scripten (auch in anderen Programmiersprachen) zu beachten hat. Der einfachste Weg ist, die Verwendungsstellen zu identifizieren und dort die Systemvariablenauswahl wiederholen. Fertig.

BTT: Die "erhoffte Lösung" kann bei logischer Herangehensweise nicht existieren. Eine Direktverknüpfung trägt ihren Namen nicht aus Marketinggründen sondern als sprechende Bezeichnung ihrer Funktion. Sprich, der Sender sendet ein vereinbartes Signal und der Empfänger reagiert entsprechend der diesem Befehl zugewiesenen Aktionen. Was er zu tun hat, ist beim Anlegen dieser Verknüpfung konfiguriert und lokal abgespeichert. Es gibt also keine Instanz dazwischen, in die man sich mit irgeneiner Automation reinhängen kann. Darum heißt das ja auch "direkt".

Will man nun eine solche Verknüpfung extern überwachen, dann muss man sich entweder an den Trigger hängen oder man nimmt den Status des Aktors und wertet im Ausschlussverfahren die möglichen sonstigen Pfade aus. Für die erste Variante hast Du mehrmals den Hinweis auf eine mögliche Lösung erhalten. Im Normalfall sollten auch Deine genutzten Logikschichten darauf triggern können, denn sie erhalten ja die gleichen Status wie die CCU. Es wird also m.E. keinen anderen Weg geben, als sich an den Trigger zu hängen.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Antworten

Zurück zu „HomeMatic allgemein“