Makros nur ausführen wenn bestimmte Ansicht aktiv

Programmierung der HomeMatic CCU mittels contronics homeputer CL

Moderator: Co-Administratoren

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

Re: Makros nur ausführen wenn bestimmte Ansicht aktiv

Beitrag von Familienvater » 23.10.2018, 19:50

Hi,

ich bin raus, aus den unterschiedlichsten Gründen, und von mir kommt nicht ein gutes Wort über die Rega, und ich sehe außer zur Verwaltung der Geräte keinerlei Grund irgendetwas dort zu tun.

Der Familienvater

Daimler
Beiträge: 9115
Registriert: 17.11.2012, 10:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 37 Mal
Danksagung erhalten: 283 Mal

Re: Makros nur ausführen wenn bestimmte Ansicht aktiv

Beitrag von Daimler » 23.10.2018, 20:04

Hi,

dito (oder war das jetzt mit 2 't'? 8) )
Obwohl ich gar nicht 'drin' war.

Zur Überwachung eingeschalteter Hardware gäbe es zur Not noch die Schalt-/Messaktoren als Alternative.
Die Taler dürften im gewerblichen Bereich ja keine Rolle spielen. :wink:
Gruß Günter

pivccx mit 3.xx in Produktiv und Testsystem mit HM-, HM-W, HMIP- und HMIP-W Geräten, HPCx Studio 4.1,
L-Gateways, RS-L-Gateways, HAP, Drap, FHZ200x, vereinzelt noch FS2x-Komponenten.
HM / HM-IP: Zur Zeit knapp 300 Komponenten mit ??? Kanälen .

Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

firefox_i
Beiträge: 224
Registriert: 04.10.2018, 19:07
Hat sich bedankt: 4 Mal
Danksagung erhalten: 2 Mal

Re: Makros nur ausführen wenn bestimmte Ansicht aktiv

Beitrag von firefox_i » 24.10.2018, 08:35

Okay,
scheinbar hab ich jetzt hier mit meiner Fragerei den ein oder anderen verärgert - sorry dafür.
Schade dass ihr euch rauszieht.

Bzgl. der LED16:
Wie gesagt habe ich da aktuell ein Programm in der WEBUI (eben weil ich bisher kein HPCL hatte) - sorry wenn ich hier erstmal versucht habe mit Bordmitteln zu arbeiten, aber okay.
Und scheinbar gibt es mit dieser Anzeige eben Probleme mit dem Übetragen der Status in HPCL.
Siehe hierzu auch:
viewtopic.php?f=30&t=46065

Ich nehme die Anregungen sehr gerne auf und versuche in einer Welt zu bleiben.
Dann stell ich das Teil mit der LED16 eben um....kein Ding.

@Daimler
Die Idee mit den Schaltaktoren ist prinzipiell eine Gute,
Nur kleiner Wemutstropfen:
Dass ein Rechner Strom zieht bedeutet nicht zwangsweise dass er euch im Netz erreichbar ist.

Leider wurden auf die beiden Fragen ( das a) und b) in dem Beitrag von gestern) leider nicht eingegangen.
Aber okay. Sorry nochmal wenn ich hier jemand auf den Schlips getreten bin.

Gruß
S.
Gruß Sven

Produktivsytem mit CCU3 (Raspberrymatic) , knapp 80 Geräte, Visu per HPCL; Automatisierung einer Praxis bzgl. Überwachung, Heizung usw.
Experimentalsystem mit CCU3 (Raspberrymatic) , ca. 40 Komponenten

Hardwareentwickler und bisschen Ahnung von Programmierung.

EnergyStar
Beiträge: 1276
Registriert: 27.07.2010, 11:38
Danksagung erhalten: 1 Mal

Re: Makros nur ausführen wenn bestimmte Ansicht aktiv

Beitrag von EnergyStar » 24.10.2018, 22:58

Also, wenn ich mal auf den Kern der Frage zurückkomme, so wie ich es verstanden habe:
Wie kann man ermitteln, welche Ansicht aktiv ist?

Mein Vorschlag:
Definiere eine Ansicht, die bei Start von VisuWin automatisch aufgerufen wird.
Jede andere Ansicht darf man dann nur über Button aus anderen Ansichten aufrufen.
Definiere eine Zahl-Variable mit dem Startwert 0
Jedesmal wenn die bestimmte Ansicht aufgerufen wird, erhöhe diesen Wert um 1, jedesmal von aus dieser Ansicht wieder auf eine andere Ansicht wechselt, verringere den Wert wieder um 1.
Ist der Wert 0, so wird die Ansicht nirgends angezeigt, bei größer 0 wird sie mindestens einmal angezeigt.

Dies ist vielleicht etwas mühsam, umzusetzen und bedarf einer gewissen Disziplin bei der Nutzung, aber führt zum Ziel. Ich rufe schon immer Ansichten nur über Buttons von anderen Ansichten auf.

Gruß EnergyStar
--------------------------------------------
CCU1 mit 1.514, CUxD 0.59b, Historian V0.7.6hf1
161 Kanäle in 35 Geräten
in schrittweiser Migration auf die
CCU2 mit 2.15.5, CUxD 0.68, Historian V0.7.6hf1
254 Kanäle in 88 Geräten
gesamte Funktionalität über die
CL-Box mit homeputer CLX Ver. 4.0 Rel. 150625
Ansichten: 17, Objekte: 882, Zeilen: 19863, Variablen: 1966

firefox_i
Beiträge: 224
Registriert: 04.10.2018, 19:07
Hat sich bedankt: 4 Mal
Danksagung erhalten: 2 Mal

Re: Makros nur ausführen wenn bestimmte Ansicht aktiv

Beitrag von firefox_i » 25.10.2018, 15:09

Hey,
danke für die Anregung - Klingt gut.
Behalte ich mal so im Hinterkopf.

Schadeist alt nur, dass mir bisher nichts eingefallen, wie ich mit den vorhandenen Mitteln irgendwas machen kann, was mir den/die Rechner identifiziert auf denen VisuWin läuft.

Wäre halt ziemlich praktisch, wenn man die von Dir beschriebene Mimik weiter verfeinern könnte um auch zu wissen, auf welchen Rechnern welche Ansicht gerade aktiv ist.

Aber ich glaube der Betrieb mit mehreren VisuWins ist in meiner Applikation sowieso eher selten und somit sind da "unzulänglichkeiten" eher zweitrangig.

Gruß
S.
Gruß Sven

Produktivsytem mit CCU3 (Raspberrymatic) , knapp 80 Geräte, Visu per HPCL; Automatisierung einer Praxis bzgl. Überwachung, Heizung usw.
Experimentalsystem mit CCU3 (Raspberrymatic) , ca. 40 Komponenten

Hardwareentwickler und bisschen Ahnung von Programmierung.

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

Re: Makros nur ausführen wenn bestimmte Ansicht aktiv

Beitrag von Familienvater » 25.10.2018, 16:26

Hi,

es erschließt sich mir nicht, wo der Unterschied ist, ob eine Ansicht auf Rechner A oder/und auf Rechner B geöffnet ist. Du willst wissen, ob die Ansicht aktuell min. einmal offen ist, oder? Da aber HPCL keine "Visu-Instanz-Spezifischen" Objekte/Variablen hat, müssen ggf. eh alle Visus auf den gleichen Pool an Informationen zugreifen.

Oder Du musst für jeden Rechner ein individuelles Set an Ansichten machen, dann kannst Du in dem Makro, mit dem die Ansicht umgeschaltet wird, entsprechend auch alle möglichen Rechner-Individuellen Objekte setzen/prüfen etc. Das setzt aber "Disziplin" voraus, das auch wirklich Ansichten nur mit den Objekt-Knöpfen auf den Ansichten gewechselt werden, und nicht über die Auswahlliste von VisuWin.

Du kannst theoretisch bei jedem Ansichtswechsel (oder auch zyklisch alle 5 min) die "Visualisierenden" Rechner zwingen, sich zu identifizieren, in dem Du ein Makro startest, was n-StartWin-Aufrufe enthält, n ist die Anzahl der möglichen Rechner, und Startwin ruft z.B. Rechner1.bat, Rechner2.bat, Rechner3.bat usw. auf, und auf Rechner 1 gibt es nur eine Rechner1.bat, die anderen Batches gibt es da nicht, bzw. die tun nichts. Und die "richtige" Rechnerx.bat macht z.B. einen wget-Aufruf auf das ClWebI-Interface, und setzt ein eigenes Objekt "Rechner1" auf An, und nach x-Minuten wird das Rechner1-Objekt in HPCL wieder auf AUS gesetzt, und wieder per StartWin die Rechner1.bat auf allen offenen Visus gestartet. Bleibt das Objekt auf Aus, ist der visualisierende Rechner inaktiv, sonst hätte er sich beim ClWebI gemeldet und seinen Status wieder auf An gesetzt. wget gibt es auch für Windows, auf jeden Fall in irgendwelchen GNU-Utils, vielleicht sogar inzwischen per Default, oder irgendwelche PowerShell-Alternativen oder so. Du bekommst so aber nur per "Brechstange" raus, welche Clients visualisieren, nicht was sie visualisieren. Und da die Ansicht offen/geschlossen mehr oder weniger eine "Mitzählmethode" ist, wird es bei jedem Beenden eines Visu-Clients eine "Desyncronisierung" geben, und das ganze wird ganz schnell Asyncron, und evtl. sind gezählt alle Ansichten 3x offen, obwohl es nur max. 2 Visu-Clients gibt. Per "Rechnerx.bat"-Methode könnte theoretisch der Betriebspunkt erkannt werden, wo keine Visus offen sind, und alle Ansichtenzähler genullt werden, aber die Ansichten-Zählerei ist meiner Meinung nach mehr als fehleranfällig.
Vielleicht kann man auch auf der Zentrale was mit netstat rausgreppen, um eine Liste der offenen Visus zu erhalten, aber auch da könnte man höchstens die Clients über die IP rausfinden, welche in den letzten Minuten Visu-Events gepusht bekommen haben, aber auch nicht welche Ansicht offen ist.


Der Familienvater

Antworten

Zurück zu „homeputer CL“