PeterAustria / node-red-contrib-ta-cmi

Reads values from C.M.I. of Technische Alternative
MIT License
3 stars 2 forks source link

Frage zu den Werten der UVR16x2 #6

Open xtrailrunner opened 1 year ago

xtrailrunner commented 1 year ago

Servus Peter, ich habe schon einige Flows mit node-red realisiert und würde jetzt gern meine Heizungssteuerung von TA einbinden, auch wenn mein Anwendungsfall (Use Case) noch nicht klar definiert ist.

Installation und Grund-Konfiguration haben schon mal funktioniert. (1) Hier habe ich nur eine Frage zu den User Accounts. Ich melde mich als admin an, habe aber dann innerhalb des Menüs von TA noch einmal die Möglichkeit zwischen Anwender, Fachmann und Experte zu wählen. Hier habe ich noch nicht verstanden, ob und wie ich ein Default-Profil nach der Authentifizierung festlegen kann. Allerdings konnte ich bereits einen Wert auslesen. Das scheint also keine Hürde mehr zu sein und betrifft auch mehr die Benutzung der TA-Steuerung. (2) Wie kann ich ermitteln, auf welche Werte (Eingänge, Ausgänge) ich im Flow zugreifen kann? Ich würde eventuell gern den Status eines Ausgangs (on, off) abfragen bzw. diesen ändern. Ist das überhaupt möglich?

Schon mal vielen Dank für Deine Bemühungen. Gruß Jürgen

xtrailrunner commented 1 year ago

Servus Peter, habe inzwischen noch etwas probiert und komme über Outputs auch an den gewünschten Wert. Kann ich mit einer URL den kompletten zur Verfügung stehenden Output des Data Loggers abfragen? Mit http://cmi/INCLUDE/api.cgi?jsonnode=1&jsonparam=I,O bekomme ich den Fehler "Too many requests". Gruß Jürgen

PeterAustria commented 1 year ago

Hallo Jürgen, es freut mich, dass du meinen Node verwenest. Vorweg eine prinzipielle Frage: Welche Komponeten (Regler) der TA setzt du ein? ad1) Laut TA funktioniert für die Abfrage, so wie ich sie programmiert habe, nur mit dem Admin Account. Alle anderen Accounts finden nur für TA Funktionen Anwendung (z.B. CAN-Touch, CAN Monitor oder der in 16x2 integrierten Oberfläche). ad2) Du kannst immer nur lesend auf das TA-System zugreifen. Ein Verändern der Werte von node-red aus ist nicht möglich und von der TA auch nicht vorgesehen. Was du allerdings machen kannst, ist z.B. auf digitale Werte zu reagieren, indem du über node-red z.B. Relays ansteuerst, die du über die 16x2 abfragen kannst... ad3) Die Fehlermeldung "Too many requests" bedeutet, dass du öfter als 1x in der Minute eine Abfrage durchgeführt hast. Dabei ist es unerheblich ob die Abfrage durch den Node oder über den Browser erfolgt. Stoppe ggf. den Node, warte 1 MInute und führe dann die Abfrage mit oben genannten Link durch. Wenn du eine 16x2 verwendest, siehst du ohnehin sehr übersichtlich alle Eingänge, Ausgänge (die physischen) sowie CAN-Bus und DL-Bus alle digitalen und anlogen Werte sämtlicher Geräte im System. Wenn du im Configuration Node die 16x2 als abzufragenden CAN-Knoten definierst, (bitte nur einmal anlegen, alle Instanzen verwenden den gleichen Configuration Node(!) ) kannst du auf alle Werte, Funktionsergebnisse etc. zugreifen und das in nahezu unbegrenzter Anzahl. Liebe Grüße Peter

xtrailrunner commented 1 year ago

Hallo Peter, vielen Dank für Deine Hinweise. ad2) Ich setze eine UVR16x2 ein, an der ein elektrischer Heizstab angeschlossen ist, der den Überschuss der PV-Anlage verbraucht. Diesen Heizstab möchte ich manchmal komplett ausschalten, wenn ein anderer großer Verbraucher PV-Strom konsumiert. Unser Heizungsbauer hat deshalb am Heizstab ein Relais angebracht und in der TA-Steuerung einen Ausgang angelegt, so das ich manuell den Heizstab über die Steuerung ein- und ausschalten kann. Jetzt könnte ich mir vorstellen, dass ich ein Relais verwende, welches z.B. über homematic und damit über node-red steuerbar ist. Würde die TA-Steuerung das überhaupt merken, wenn ich das Relais über homematic ändere und mir den Status richtig anzeigen? Ich kenne mich da zu wenig mit der TA-Steuerung aus. ad3) Das habe ich noch nicht ganz verstanden. Ich habe im Configuration Node als Source "Output" ausgewählt. Sollte ich da besser eine andere Option aus der Werteliste auswählen? Viele Grüße Jürgen

PeterAustria commented 1 year ago

Hallo Jürgen. auch ich verwende gemeinsam eine Homematic und eine UVR16x2 unter node red. Ad 2) Ich fürchte allerdings, dass du ohne Programmierung auf der 16x2 nicht zum gewünschten Ziel kommst. Prinzipiell kannst du zum Beispiel ein Relais eines HM-LC-Sw4-WM ansteuern, dessen Schaltzustand du wiederum mit der 16x2 auswerten und entsprechend reagieren kannst. Die Programmlogik hierfür musst du aber in der 16x2 hinterlegen, damit der Ausgang der 16x2 entsprechend "überschrieben" wird. Das kannst du entweder selber programmieren oder von deinem Heizungsbauer machen lassen. Das sollte kein großer Aufwand sein. Ad 3) Schaue mal ins Menü deiner 16x2. Unter "Eingänge" findest du alle verweneten Eingänge und normalerweise pro Eingang auch eine sprechende Bezeichnung. Die Nummer des jeweiligen Eingangs kannst du dann im Node eintragen und auslesen. Genauso funktioniert es mit "Ausgänge". Betreibst du auch Geräte am CAN-Bus oder DL-Bus, gibt es auch hier die entsprechenden Listen im Menü (bei den Bussen wird zusätzlich noch zwischen analogen und digitalen Werten unterschieden). Das CAN-Bus-Datalogging kannst du auch dazu "missbrauchen", weitere Werte deiner Steuerung auszulesen, indem du bis zu 64 analoge und 64 digitale Werte einträgst (dazu musst du Hauptbenutzer sein). Auch diese Werte lassen sich im Node auslesen. Liebe Grüße Peter

xtrailrunner commented 1 year ago

Servus Peter, so ganz verstehe ich das noch nicht. In der TA-Steuerung sind die Eingänge bestimmte Werte, die von den Sensoren geliefert werden. Die Ausgänge sind Kommandos, um Einstellungen zu ändern. In Deinem Node habe ich als Source "Outputs" ausgewählt und bekomme den Zustand eines Elements. Normalerweise hätte ich den Zustand unter "Inputs" erwartet. Wenn ich keine Werte der Steuerung von außen ändern kann, warum gibt es dann überhaupt eine Source "Inputs" bzw. "Outputs"? Viele Grüße Jürgen

xtrailrunner commented 1 year ago

Servus Peter, ich bin auf ein Wiki gestoßen, in dem ein möglicher Weg zum Setzen von Ausgängen beschrieben wird: https://wiki.fhem.de/wiki/TA_CMI_UVR16x2_UVR1611 Abschnitt: Direktes Setzen von Ausgängen Viele Grüße Jürgen

PeterAustria commented 1 year ago

Hallo Jürgen, dieses Thema wäre besser in einem Forum für TA-Geräte aufgehoben. Ich will trotzdem versuchen, es dir hier zu erklären: Bei den Eingängen der UVR16x2 handelt es sich um Zustände und Messgrößen der angeschlossenen Sensoren. Das können z.B. der Messwert eines Temperaturfühlers oder der Schaltzustand eines Relays (AUF oder ZU) sein. Die TA unterscheidet analoge Werte (z.B. eine Temperatur oder Luftfeuchtigkeit) und digitale Werte (EIN oder AUS, AUF oder ZU,...). Über die Ausgänge sendet die UVR16x2 Schaltbefehle an die "Aktoren". Z.B. digital - Pumpe EIN/AUS oder analog - wie weit soll ein Ventil geöffnet werden. Normalerweise werde die Ausgänge aufgrund von Programmen in der UVR16x2 entsprechend gesetzt. Zum Beispiel, wenn die Temperatur im Wohnraum kleiner als Solltemperatur ist, dann wird der Ausgang für die Heizungspumpe auf EIN gesetzt. Sobald die Temperatur wieder erreicht ist, wird der Ausgang für die Heizungspumpe wieder auf AUS gesetzt. Genau das passiert, wenn ein Ausgang auf "Auto" steht (Auto/EIN bzw. Auto/AUS). Wenn du keine automatische Änderung des Ausgangs möchtest, kannst du über die Benutzeroberfläche auch Hand/EIN oder Hand/AUS wählen, wodurch die Automatik überschrieben wird und ständig EIN oder AUS ist. In meinem Beispiel würde dann die Heizungspumpe immer oder nie laufen. Du kannst also den Ausgang deines Relays für den Heizstab auf "Auto" oder "Hand" setzen. In meinem Node wird immer nur der aktuelle Zustand angezeigt, unabhängig davon, ob dieser händisch oder automatisch gesetzt wurde. Verändern kannst du ihn mit meinem Node nicht. Das ist von der TA auch nicht vorgesehen. Auch über die in dem von dir verlinkten WIKI gezeigten Verfahren ist das nicht möglich. Hierüber können lediglich Fixwerte verändert werden. Fixwerte sind noch einmal etwas ganz anderes und haben mit den Ausgängen nichts zu tun. Beachte bitte das Kapitel "Direktes Setzen von Ausgängen" im WIKI-Beitrag. Hier steht: "Ausgänge direkt zu setzen (z.B. Hand-Ein, Hand-Aus) wird von diesem Modul nicht unterstützt." Auch hier wird das Anlegen einer Logik-Funktion empfohlen, wie ich dir bereits in meinem vorigen Post geraten habe. Liebe Grüße Peter

xtrailrunner commented 1 year ago

Hallo Peter, das habe ich jetzt verstanden. Das Missverständnis lag bei den Ausgängen, deren Status bei der TA (cmi) nur gelesen, aber nicht geändert werden kann. Wir haben jetzt einen Fixwert gesetzt und die entsprechende Funktion in der TA hinzugefügt. Wenn ich das richtig verstehe, kann ich über Dein contrib-Modul keine Fixwerte ändern. Ich müsste also dann direkt an das API der TA (cmi) gehen. Korrekt? Viele Grüße Jürgen

PeterAustria commented 1 year ago

Hallo Jürgen, zuerst einmal ein Sorry für die späte Antwort. Ich habe deine Nachricht irgendwie übersehen... Ja, das ist richtig. Über die offizielle Schnittstelle, welche die TA zur Verfügung stellt, können Daten nur aus dem CMI gelesen werden. Da ich diese offizielle Schnittstelle verwende, kann daher auch mein Node die Daten nur lesen. Wenn ich einmal (viel) Zeit habe, werde ich aber versuchen, einen Node zu erstellen, der zumindest die Fixwerte schreiben kann. Ich kann dir aber leider nicht versprechen, ob und wann das sein wird. In der Zwischenzeit kannst du, wie bereits ganz am Anfang in diesem Thread beschrieben, ein Relaymodul (z.B. Homematic IP Smart Home Schaltplatine HmIP-PCBS) oder jeden anderen Schaltaktor mit potentialfreien Relaiskontakt verwenden und auf einen dessen Ausgang an einem freien Eingang der 16x2 klemmen. Diesen Eingang könnt ihr dann statt des Fixwertes in der 16x2 abfragen. Liebe Grüße Peter