Howto - zentrales Push-Nachrichten-Programm zPNP

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Belei
Beiträge: 59
Registriert: 20.07.2016, 21:57

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.0

Beitrag von Belei » 21.09.2018, 22:23

Im 3ten Teil unter Handsender 1 extern scharf.
screen3.JPG
srceen2.JPG
Unbenannt.JPG

NACHTRAG:
Jetzt am nächsten Tag und nach Neustart der CCU, funktioniert es auf einmal :D :D


Danke

Belei
Beiträge: 59
Registriert: 20.07.2016, 21:57

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.0

Beitrag von Belei » 23.09.2018, 18:38

Wenn ich hier:
string svPushoverSound = "CCU SV Pushover Sound"; ! gem. zPNS-Po, optional
ändere in
string svPushoverSound = "Falling"; ! gem. zPNS-Po, optional

Sollte doch eigentlich ein andere Push Sound kommen, oder?

Code: Alles auswählen

! Meldung Fenster/Türen schließen
! Version 2.4, Autor: dtp

! Gewerkname für die Türen- und Fenster-Sensoren
string trade = "Verschluss";

! Listen geöffneter und gekippter Fenster und Türen, die nicht berücksichtigt werden sollen
string exListTilt = ""; ! gekippte Fenster und Türen (trennen mit "\t")
string exListOpen = ""; ! geöffnete Fenster und Türen (trennen mit "\t")

! Namen der verwendeten Systemvariablen
string svPushText = "CCU SV Push Text"; ! gem. zPNS-xx, obligatorisch
string svPushPrio = "CCU SV Push Prio"; ! gem. zPNS-xx, obligatorisch
string svPushoverSound = "Falling"; ! gem. zPNS-Po, optional

! Name des zentralen Push-Nachrichten-Programms
string zPNP = "CCU PRG Push-Nachrichten"; ! obligatorisch

! #####################################################################
! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
! #####################################################################

! +++++ Deklaration weiterer Variablen +++++
var device;
string index; string list = ""; string stateList = ""; string message;
integer valueIndex;

! +++++ Sound für Pushover-Nachricht +++++
if(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)).State("alien");}

! +++++ Auslesen der Fenster- und Türenzustände und Erzeugen einer Liste +++++
foreach(index, dom.GetObject(ID_FUNCTIONS).Get(trade).EnumUsedIDs()){
  if(dom.GetObject(index).IsTypeOf(OT_CHANNEL)){
    device = dom.GetObject(dom.GetObject(index).Device());
    if(((exListTilt.Find(device.Name())).ToInteger() == -1)){
      if((device.HssType() == "HM-Sec-RHS") || (device.HssType() == "HmIP-SRH")){
        if(dom.GetObject(index).DPByHssDP("STATE").Value() == 1){
          list = list#"\n- "#device.Name()#"<font color=orange> gekippt</font>.";
          stateList = stateList#dom.GetObject(index).DPByHssDP("STATE").Value();
        }
      }
    }
    if(((exListOpen.Find(device.Name())).ToInteger() == -1)){
      if((device.HssType() == "HM-Sec-RHS") || (device.HssType() == "HmIP-SRH")){
        if(dom.GetObject(index).DPByHssDP("STATE").Value() == 2){
          list = list#"\n- "#device.Name()#"<font color=red> offen</font>.";
          stateList = stateList#dom.GetObject(index).DPByHssDP("STATE").Value();
        }
      }
      if((device.HssType() == "HM-Sec-SC") || (device.HssType() == "HM-Sec-SC-2") || (device.HssType() == "HM-Sec-SCo") || (device.HssType() == "HMIP-SWDO")){
        if(dom.GetObject(index).DPByHssDP("STATE").Value() == 1){
          list = list#"\n- "#device.Name()#"<font color=red> offen</font>.";
          stateList = stateList#"2";
        }
      }
    }
  }
}

! +++++ Setzen der Priorität in Abhängigkeit vom Zustand der Fenster und Türen +++++
valueIndex = stateList.Find("2");
if(valueIndex <> -1){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State("1");}
else{(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State("0");}

! +++++ Erzeugen der Nachricht +++++
message = "<font color=orange>Achtung, Fenster/Türen schließen!</font>";

if(list != ""){
  message = message#list;
  
  ! +++++ zPNP ausführen +++++
  (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).State(message);
  (dom.GetObject(ID_PROGRAMS).Get(zPNP)).ProgramExecute();
}

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

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.0

Beitrag von alchy » 24.09.2018, 07:57

Belei hat geschrieben:
23.09.2018, 18:38
Wenn ich hier:
string svPushoverSound = "CCU SV Pushover Sound"; ! gem. zPNS-Po, optional
ändere in
string svPushoverSound = "Falling"; ! gem. zPNS-Po, optional

Sollte doch eigentlich ein andere Push Sound kommen, oder?
Nein, das würde nur bedeuten, das du den zu verwendenden Soundnamen (pushover, bike, bugle... falling, gamelan,.....)
in der Systemvariable mit Namen Falling speichern willst.

Der SInn ist also:
Leg eine Systemvariable mit Namen CCU SV Pushover Sound an und weise der Variablen den Wert: falling zu.(oder eben einen anderen gültigen Soundnamen)


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.

Belei
Beiträge: 59
Registriert: 20.07.2016, 21:57

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.0

Beitrag von Belei » 24.09.2018, 09:11

Ok dann mach ich das schnell wieder rückgängig...

Die SV: CCU SV Pushover Sound habe ich natürlich. Die unterschiedlichen Sounds haben auch immer funktioniert.
Nur seit paar Tagen gehts nicht mehr, könnt mit Update des Scripts zu tun haben. (meinerseits natürlich)

Ich bekomme jetzt immer den gleichen Sound egal was an de SV Sound übergeben wird.

Ich blicke auch gerade nicht ganz durch wo/wie die SV Sound geändert wird.

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

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.0

Beitrag von alchy » 24.09.2018, 11:21

Belei hat geschrieben:
24.09.2018, 09:11
Ich blicke auch gerade nicht ganz durch wo/wie die SV Sound geändert wird.
Hatte ich ja geschrieben:
alchy hat geschrieben:
24.09.2018, 07:57
Leg eine Systemvariable mit Namen CCU SV Pushover Sound an und weise der Variablen den Wert: falling zu.(oder eben einen anderen gültigen Soundnamen)
Eine Möglichkeit wäre das einmalige ausführen des Script:

Code: Alles auswählen

object sysvar = (dom.GetObject(ID_SYSTEM_VARIABLES)).Get("CCU SV Pushover Sound"); 
if(sysvar){
sysvar.State("falling");
WriteLine("Sound geändert");
}else{WriteLine("Variable nicht vorhanden");} 
Ich habe mir die Scripte nie näher angesehen.
Aber ich gehe mal von aus, das dann bei eingebundenen Variablen der Sound eben auf falling geändert wird.
dtp hat doch reichlich Informationen zur Einrichtung hinterlassen. Sollte mich wundern, wenn dies nicht irgendwo steht.
Er wird sich schon melden.

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.

Belei
Beiträge: 59
Registriert: 20.07.2016, 21:57

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.0

Beitrag von Belei » 24.09.2018, 17:13

ok Variabel SV Pushover Sound vorhanden.

Der Script wird ausgeführt und es wird auch in der Variablen der Wert geändert.
Aber trotzdem der Standartton gesendet...

Hab mehrere Ton Namen mit groß/kleinschreibung ausprobiert....

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

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.0

Beitrag von dtp » 26.09.2018, 07:47

Lösche bitte - falls noch nicht geschehen - zunächst mal die automatisch angelegte Systemvariable "Falling".

Wie alchy schon richtig geschrieben hat, bezeichnet die Skriptzeile

Code: Alles auswählen

string svPushoverSound = ""; ! gem. zPNS-Po, optional
nicht den Inhalt der Systemvariablen - also z.B. "falling" -, sondern den Namen der anzulegenden Systemvariablen - also z.B. "CCU SV Pushover Sound".

Wenn du nun den Sound für Pushover-Nachrichten ändern willst, dann musst du das in einem der aufrufenden Skripte tun. Im zweiten Posting dieses Threads hatte ich das entsprechend dem zweiten Skriptbeispiel beschrieben. Und denke dran, dass die Soundnamen für Pushover klein geschrieben werden (siehe hier).

Bis dann,

Thorsten
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.

Belei
Beiträge: 59
Registriert: 20.07.2016, 21:57

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.0

Beitrag von Belei » 26.09.2018, 09:36

Ja die neue SV hab ich wieder gelöscht :roll:
Das kommt vom vielen rumprobieren...

Es hat ja früher immer funktioniert!

1. Die Variabel Push Sound ist angelegt und wird auch geändert durch verschiedene Scripts.

Bsp ein einfacher Script:

Code: Alles auswählen

    ! Erzeugen der Nachricht

     string message = "Briefkastenklappe wurde geöffnet.";

    ! Auswahl des Push-Dienstes (nur, wenn "CCU SV Push-Dienst" vorhanden)
      dom.GetObject("CCU SV Push Dienst").State("1");

    ! Setzen der Priorität für die Push-Nachricht (nur, wenn "CCU SV Push Prio" vorhanden)
      dom.GetObject("CCU SV Push Prio").State("0");

    ! Sound für Pushover-Nachricht (nur, wenn "CCU SV Push Pushover-Sound" vorhanden)
      dom.GetObject("CCU SV Pushover Sound").State("bike");

    dom.GetObject("CCU SV Push Text").State(message);

    ! Programm "CCU PRG Push-Nachrichten" ausführen
    dom.GetObject("CCU PRG Push-Nachrichten").ProgramExecute();
    WriteLine("Nachricht gesendet");
Die SV bekommt den Wert bike, aber die Nachricht kommt mit dem Standard Ton an.
pushsv.JPG

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

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.0

Beitrag von dtp » 26.09.2018, 10:22

Nur zur Sicherheit. Die App-Einstellungen sind soweit korrekt?
Pushover_Einstellungen.jpg
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.

Belei
Beiträge: 59
Registriert: 20.07.2016, 21:57

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V3.0

Beitrag von Belei » 26.09.2018, 10:50

ja ist identisch

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“