Anzahl offene Fenster

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

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

Re: Anzahl offene Fenster

Beitrag von alchy » 18.02.2019, 08:52

emil70 hat geschrieben:
14.02.2019, 19:13
Ich suche ein script, das mir bei Statusänderung meiner Fenster mir das meldet über Telegramm

Das Script ermittelt den Zustand der Sensoren zu seiner Laufzeit. Die Laufzeit bestimmst du. Siehe auch Beiträge direkt über deinem.
Das Script beinhaltet auch Telegram als Meldeservice.

Wo ist nun dein Problem?

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.

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

Re: Anzahl offene Fenster

Beitrag von Xel66 » 18.02.2019, 09:10

alchy hat geschrieben:
18.02.2019, 08:52
Wo ist nun dein Problem?
Es fehlt das Sibertablet zur eigenen, vermeintlich einzigartigen Anforderung, auf dem die Lösung präsentiert werden soll. Das ist der Trend. Das Suchen und Lesen ist doch so zeitaufwändig. :-)

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
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1071 Mal
Kontaktdaten:

Re: Anzahl offene Fenster

Beitrag von Black » 18.02.2019, 09:19

FullAck Xel66

Leider is der trend in letzter Zeit deutlich. Es reicht nimmer, wenn man den Leutz mit kurzen Stichworten Begriffe für die Suche gibt, auf der sich mit ein bisschen Transfer Kombination dann die Lösung höchstwahrscheinlich erarbeiten lässt, weil die mindestens schon einmal in dieser Form behandelt wurde.

Nein, es muss ein bis ins Detail für diesen individuellen EInzelfall schon komplett ausgetestete Lösung sein, die am besten dann auf dem Silbertablett präsentiert wird.

naja, schöne neue Welt, just my 2 cents, Black

- der trotzdem niemanden den Ar..h nachträgt
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

emil70
Beiträge: 288
Registriert: 02.12.2017, 13:47
System: CCU
Hat sich bedankt: 33 Mal
Danksagung erhalten: 8 Mal

Re: Anzahl offene Fenster

Beitrag von emil70 » 18.02.2019, 20:05

alchy hat geschrieben:
18.02.2019, 08:52
Wo ist nun dein Problem?
ich habe mich leider falsch ausgedrückt. Ich würde gern ein Telegramm bekommen, wo dann nur das Fenster drin steht was gerade aufgemacht wurde.

So wie ich das verstanden und getestet habe, werde jetzt ja alle offen/gekippte Fenster übermittelt

Code: Alles auswählen

string ONLYOPEN= "yes"; ! if yes pushed only the opened sensors


oder bei

Code: Alles auswählen

string ONLYOPEN= "no"; ! if yes pushed only the opened sensors
Alle


@Black und @Xel66

Eure Beiträge sind überflüssig und NEIN ich such nix auf einem Silbertablet.

Für Neulinge ist das nunmal nicht immer einfach, das Alles zu verstehn

Aber wahrscheinlich wart Ihr beiden Spezies nie Neuling/Frischlinge in Homematic und habt das schon mit der Muttermilch angesaugt
gruß emil70

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

Re: Anzahl offene Fenster

Beitrag von alchy » 18.02.2019, 22:44

Dann solltest du eher mit den Auslöser $src$ eines Programms arbeiten.
Dazu hab ich auch schon ein Script veröffentlicht, kann aber grad selber nicht verlinken.


>> Auslöser eines Programmes finden und loggen <<


Alchy
Zuletzt geändert von alchy am 19.02.2019, 07:55, insgesamt 1-mal geändert.
Grund: link

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.

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

Re: Anzahl offene Fenster

Beitrag von Xel66 » 19.02.2019, 06:38

emil70 hat geschrieben:
18.02.2019, 20:05
...habt das schon mit der Muttermilch angesaugt
Eben nicht, aber Deine Anforderung hat bis auf die Schlagworte "Telegram" und "Fenster" absolut nicht mit dem Script in diesem Thread zu tun. Hier geht es um einen gemeinsamen Versand der Informationen über die geöffneten Fenster, bzw. deren Anzahl.

Das Grundproblem liegt schon in der Fragestellung im falschen Thread. Wenn man eine Telegram-Push mit nur einer einzigen Information haben will, dann erstellt man ein Programm mit dem "Fenster offen" als Trigger und im Scriptteil kommt eines der vielen Telegramscripts mit einem festen Text hier aus dem Forum rein. Beispiele gibt es doch zu Hauf. Das notwendige Script ist selbst im Eröffnungspost des allgemeinen Telegramm-Threads zu finden. Was dann als Informationinhalt versendet wird, kann man doch nach Belieben festlegen.

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

Linnet998
Beiträge: 110
Registriert: 04.07.2018, 21:46
Danksagung erhalten: 2 Mal

Re: Anzahl offene Fenster

Beitrag von Linnet998 » 19.06.2019, 17:48

Hi, habe das script versucht ein wenig anzupassen... leider funzt es nicht ganz so wie ich das will

Code: Alles auswählen

var myAssembly = dom.GetObject("Türen");
string itemID;
integer zaehler;
zaehler = 0;
foreach(itemID, myAssembly.EnumUsedIDs())
{
  var item = dom.GetObject(itemID);
  if
(item.IsTypeOf(OT_CHANNEL))
  {
    var device = dom.GetObject(item.Device());
    if ( (device.HssType() == "HM-Sec-RHS" ) || (device.HssType() == "HM-Sec-SCo" ) )
    {
      if (item.State() ==true)
{
        zaehler = zaehler + 1.00;
      }
 if (item.State() ==2)
{
        zaehler = zaehler + 1.00;
      }
    }
  }
}
dom.GetObject("offene Türen").State(zaehler);
ich will das der HM-Sec-SCo hochzählt beim öffnen und der HM-Sec-RHS nur bei State(2) also geöffnet...
leider ist es so wenn ich denn HM-Sec-RHS auf kipp stelle zählt er ebenfalls hoch. das ist auf die abfrage vom true zurückzuführen... leider ist der State vom "HM-Sec-SCo aber false/true
nehme ich das raus...

Code: Alles auswählen

    {
if (item.State() ==2)
{
        zaehler = zaehler + 1.00;
      }
    }
  }
}
funtioniert es zwar aber HM-Sec-SCo wird nicht mehr hochgezählt... was mache ichf falsch

Linnet998
Beiträge: 110
Registriert: 04.07.2018, 21:46
Danksagung erhalten: 2 Mal

Re: Anzahl offene Fenster

Beitrag von Linnet998 » 20.06.2019, 09:30

Alles gut habe es selbst hinbekommen

Benutzeravatar
Sammy
Beiträge: 9172
Registriert: 09.09.2008, 20:47
Hat sich bedankt: 15 Mal
Danksagung erhalten: 174 Mal

Re: Anzahl offene Fenster

Beitrag von Sammy » 20.06.2019, 09:48

Und wie sieht die funktionierende Lösung aus? Dann hätten auch andere User was davon.
Links: CCU-Logik, Tipps für Anfänger, WebUI-Doku, Expertenparameter, virtuelle Aktorkanäle
Inventur vom 22.01.14: 516 Kanäle in 165 Geräten, 132 Programme, 270 Direkte Verknüpfungen
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!

Linnet998
Beiträge: 110
Registriert: 04.07.2018, 21:46
Danksagung erhalten: 2 Mal

Re: Anzahl offene Fenster

Beitrag von Linnet998 » 21.06.2019, 12:48

ganz ehrlich ich habe keine ahnung wieso es funktioniert... ich hatte es anfangs schonmal so und es ging nicht, als ich denn HM-Sec-SCo geöffnet habe zeigte er mir aufeinmal 8türen offen an... usw.
ich habe einfach ständig was geändert und so ein ausschlussverfahren zu entwickeln.. und bei dem hier gings aufeinmal was keinen sinn für mich macht... weil der HM-Sec-SCo keinen State(2) hat. sondern auf false/true reagiert
tür.png
tür.png (14.27 KiB) 1601 mal betrachtet

aber doch geht das script hier

Code: Alles auswählen

var myAssembly = dom.GetObject("Türen");
string itemID;
integer zaehler;
zaehler = 0;
foreach(itemID, myAssembly.EnumUsedIDs())
{
  var item = dom.GetObject(itemID);
  if
(item.IsTypeOf(OT_CHANNEL))
  {
    var device = dom.GetObject(item.Device());
    if ( (device.HssType() == "HM-Sec-RHS" ) || (device.HssType() == "HM-Sec-SCo" ) )
    {
 if ((item.State() ==2))
{
        zaehler = zaehler + 1.00;
      }
    }
  }
}
dom.GetObject("offene Türen").State(zaehler);

ich habe nämlich das script gesplittet und lasse mir offene fenster sowie gekippte türen in eine vari schreiben und offene türen in eine zweite

hier das fenster script

Code: Alles auswählen

var myAssembly = dom.GetObject("Fenster");
string itemID;
integer zaehler;
zaehler = 0;
foreach(itemID, myAssembly.EnumUsedIDs())
{
  var item = dom.GetObject(itemID);
  if
(item.IsTypeOf(OT_CHANNEL))
  {
    var device = dom.GetObject(item.Device());
    if ( (device.HssType() == "HM-Sec-RHS" ) || (device.HssType() == "HM-Sec-SC" ) || (device.HssType() == "HM-Sec-RHS" ) || (device.HssType() == "HMIP-SWDO" ) )
    {
 if (item.State() ==1)
{
        zaehler = zaehler + 1.00;
      }
    }
  }
}
dom.GetObject("offene Fenster").State(zaehler);
türen1.png

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“