Howto - zentrales Push-Nachrichten-Programm zPNP

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

Moderator: Co-Administratoren

Benutzeravatar
elabgrando
Beiträge: 46
Registriert: 07.02.2014, 17:02

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V2.1

Beitrag von elabgrando » 22.11.2017, 15:32

Hallo Liebe Leute,

ich könnte im Moment etwas verzweifeln,

Ich hatte bis letzte Tage noch eine Alte Version des zPNP installiert und wollte jetzt von Telegram auf Pushover umstellen.
Ich habe das Programm komplett neu angelegt! in der Version 2.1.1 von Seite 64.
Was ich noch nicht so recht verstanden habe warum es bei Pushover einen User Key und einen Api Key gibt. Der User Key wird aber irgendwie nicht benötigt oder ich mache etwas falsch.
Anbei mal meine Konfig:

Das CUxD Gerät:
Bild

Folgende SV's:
Bild

Das Programm:
Bild

Die Programm Details;
Bild

mit den Scripts:
Ich nutze das Script:

Code: Alles auswählen

! Push-Nachrichten per Pushover senden
! weitere Informationen unter http://homematic-forum.de/forum/viewtopic.php?f=31&t=26282
! Version 2.1.2, Autor: dtp
! ACHTUNG: Dieses Skript benötigt eine CCU-Firmware ab Version 2.29.22
 
! +++++ User-Daten +++++
! In den nachfolgenden Listen die User-Daten durch "xx|" einleiten und durch EINEN Leerschritt voneinander trennen. 
string keyList = "01|a7xxxxxxxxxxxxxxxxxxdv"; ! API-Basisschlüssel. Beispiel: "01|xxxxKey1xxxx 02|xxKey2xx"
string HMinfoList = "01|a7xxxxxxxxxxxxxxxxxxdv"; ! API-Schlüssel für Info-Meldungen. Beispiel: "01|xxxxKey1xxxx 02|xxKey2xx"
string HMwarnungList = ""; ! optionale API-Schlüssel für Warnmeldungen
string HMalarmList = ""; ! optionale API-Schlüssel für Alarmmeldungen
string prioMinList = ""; ! Prioritäten, ab der die User Nachrichten erhalten sollen. Beispiel: "01|-2 02|0"
 
! +++++ Dauer in Sekunden, innerhalb der keine identischen Push-Nachrichten gesendet werden sollen +++++
integer stopRepeat = 10;

! +++++ Namen der zwingend benötigten Systemvariablen +++++
string svPushText = "CCU SV Push Text"; ! Text der aktuell zu übertragenden Push-Nachricht
string svPushTextRef = "CCU SV Push Text Ref"; ! Text der vorherigen Push-Nachricht als Referenz

! +++++ Namen der optionalen Systemvariablen (auf "" setzen, wenn nicht benötigt) +++++
string svPushPrio = "CCU SV Push Prio"; ! Prioritäten der Push-Nachrichten (-2,-1,0,1,2), default: 0
string svPushService = "CCU SV Push Dienst"; ! Push-Dienste ("aus;alle;...")
string svPushoverSound = "CCU SV Pushover Sound"; ! Sound der Nachricht, default: "pushover"
string svPushoverTitle = ""; ! Titel der Nachricht, default: "" 
string svPushoverDevice = ""; ! Pushover-Gerät (z.B. "CCU SV Pushover Gerät"), default: ""
 
! #####################################################################
! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
! #####################################################################
  
! +++++ Deklaration weiterer Variablen +++++
string message; string HMinfo; string HMwarnung; string HMalarm; string prioMin; 
string pushService = "alle"; string userStr; string key; string title = ""; string sound = "pushover"; string device = ""; 
integer prio = 0; integer userIndex; integer startIndex; integer diff; integer sendFlag = 1;
object svObject; object svObjectList;
 
! +++++ Systemvariablen erzeugen bzw. falls vorhanden, auslesen +++++
if(!svPushText){svPushText = "CCU SV Push Text";}
svObject = dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText);
if(!svObject){
  svObjectList = dom.GetObject(ID_SYSTEM_VARIABLES); svObject = dom.CreateObject(OT_VARDP); svObjectList.Add(svObject.ID()); 
  svObject.Name(svPushText); svObject.DPInfo("Aktuelle Push-Nachricht"); svObject.Internal(false); svObject.Visible(true); 
  svObject.ValueType(ivtString); svObject.ValueSubType(istChar8859); svObject.ValueUnit(""); dom.RTUpdate(true);
}
else{message = svObject.Value();}

if(!svPushTextRef){svPushTextRef = "CCU SV Push Text Ref";}
svObject = dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushTextRef);
if(!svObject){   
  svObjectList = dom.GetObject(ID_SYSTEM_VARIABLES); svObject = dom.CreateObject(OT_VARDP); svObjectList.Add(svObject.ID());
  svObject.Name(svPushTextRef); svObject.DPInfo("Vorherige Push-Nachricht"); svObject.Internal(false); svObject.Visible(true);
  svObject.ValueType(ivtString); svObject.ValueSubType(istChar8859); svObject.ValueUnit(""); dom.RTUpdate(true);
}

if(svPushPrio){
  svObject = dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio);
  if(!svObject){   
    svObjectList = dom.GetObject(ID_SYSTEM_VARIABLES); svObject = dom.CreateObject(OT_VARDP); svObjectList.Add(svObject.ID());
    svObject.Name(svPushPrio); svObject.DPInfo("Priorität der Push-Nachricht"); svObject.Internal(false); svObject.Visible(true);
    svObject.ValueType(ivtFloat); svObject.ValueSubType(istGeneric); svObject.ValueUnit(""); svObject.ValueMin(-2); svObject.ValueMax(2); dom.RTUpdate(true);
  }
  else{prio = svObject.Value().ToInteger(); if(prio == 2){stopRepeat = 0;}}
}

if(svPushService){
  svObject = dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushService);
  if(!svObject){   
    svObjectList = dom.GetObject(ID_SYSTEM_VARIABLES); svObject = dom.CreateObject(OT_VARDP); svObjectList.Add(svObject.ID());
    svObject.Name(svPushService); svObject.DPInfo("Auswahl des Push-Dienstes"); svObject.Internal(false); svObject.Visible(true);
    svObject.ValueType(ivtInteger); svObject.ValueSubType(istEnum); svObject.ValueList("aus;alle;Pushover"); svObject.ValueUnit(""); dom.RTUpdate(true);
  }
  else{
    if(svObject.ValueList().Find("Pushover") == -1){svObject.ValueList(svObject.ValueList() + ";Pushover");}
    pushService = svObject.ValueList().StrValueByIndex(";", svObject.Value());
  }
}

if(svPushoverSound){
  svObject = dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound);
  if(!svObject){   
    svObjectList = dom.GetObject(ID_SYSTEM_VARIABLES); svObject = dom.CreateObject(OT_VARDP); svObjectList.Add(svObject.ID()); 
    svObject.Name(svPushoverSound); svObject.DPInfo("Sound der Pushover-Nachricht"); svObject.Internal(false); svObject.Visible(true); 
    svObject.ValueType(ivtString); svObject.ValueSubType(istChar8859); svObject.ValueUnit(""); dom.RTUpdate(true);
  }
  else{sound = (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)).Value();}
}

if(svPushoverTitle){
  svObject = dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverTitle);
  if(!svObject){   
    svObjectList = dom.GetObject(ID_SYSTEM_VARIABLES); svObject = dom.CreateObject(OT_VARDP); svObjectList.Add(svObject.ID());
    svObject.Name(svPushoverTitle); svObject.DPInfo("Titel der Pushover-Nachricht"); svObject.Internal(false); svObject.Visible(true);
    svObject.ValueType(ivtString); svObject.ValueSubType(istChar8859); svObject.ValueUnit(""); dom.RTUpdate(true);
  }
  else{title = (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverTitle)).Value();}
}

if(svPushoverDevice){
  svObject = dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverDevice);
  if(!svObject){   
    svObjectList = dom.GetObject(ID_SYSTEM_VARIABLES); svObject = dom.CreateObject(OT_VARDP); svObjectList.Add(svObject.ID()); 
    svObject.Name(svPushoverDevice); svObject.DPInfo("Gerät für Pushover-Nachricht"); svObject.Internal(false); svObject.Visible(true); 
    svObject.ValueType(ivtString); svObject.ValueSubType(istChar8859); svObject.ValueUnit(""); dom.RTUpdate(true);
  }
  else{device = (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverDevice)).Value();}
}

! +++++ Push-Nachrichten erzeugen und versenden ++++
if((pushService == "alle") || (pushService == "Pushover") || (prio == 2)){
  ! ----- Vermeidung identischer Push-Nachrichten innerhalb stopRepeat Sekunden -----
  diff = (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).Timestamp().ToInteger() - (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushTextRef)).Timestamp().ToInteger();
  if(diff < stopRepeat){
    if(message == (dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushTextRef)).Value()){sendFlag = 0;}
  }
 
  if(sendFlag == 1){
    ! ----- Abschneiden zu langer Push-Nachrichten, um das Senden sicherzustellen -----
    if(message.Length() > 980){message = message.Substr(0, 980)#"\nMaximale Nachrichtenlänge erreicht!";}

    ! ----- Umwandlung von Sonderzeichen gem. UTF-8 -----
    message = message.ToUTF8(); title = title.ToUTF8();

    ! ----- Absenden der Push-Nachrichten -----  
    foreach(key, keyList.Split(" ")){
      ! Werte zuordnen
      userIndex = key.Substr(0, 2).ToInteger(); userStr = key.Substr(0, 3);
      key = key.Substr(3, key.Length()-3);
      startIndex = HMinfoList.Find(userStr).ToInteger();
      if(startIndex != -1){
        HMinfo = HMinfoList.Substr(startIndex+3, HMinfoList.Length()-1);
        HMinfo = HMinfo.Substr(0, HMinfo.Find(" "));
      } else{quit;}
      startIndex = HMwarnungList.Find(userStr).ToInteger();
      if(startIndex != -1){
        HMwarnung = HMwarnungList.Substr(startIndex+3, HMwarnungList.Length()-1);
        HMwarnung = HMwarnung.Substr(0,HMwarnung.Find(" "));
      } else{HMwarnung = HMinfo;}
      startIndex = HMalarmList.Find(userStr).ToInteger();
      if(startIndex != -1){
        HMalarm = HMalarmList.Substr(startIndex+3, HMalarmList.Length()-1);
        HMalarm = HMalarm.Substr(0,HMalarm.Find(" "));
      } else{HMalarm = HMinfo;}
      startIndex = prioMinList.Find(userStr).ToInteger();
      if(startIndex != -1){
        prioMin = prioMinList.Substr(startIndex+3, prioMinList.Length()-1);
        prioMin = prioMin.Substr(0,prioMin.Find(" "));
      } else{prioMin = -2;}

      if(prio >= prioMin){      
        ! ----- Informationsmeldungen -----
        if((prio == -2) || (prio == -1) || (prio == 0)){
          (dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC")).State("extra/curl -s -k -d token='"#HMinfo#"' -d user='"#key#"' -d device='"#device#"' -d title='"#title#"' -d message='"#message#"' -d priority='"#prio#"' -d sound='"#sound#"' -d html=1 https://api.pushover.net/1/messages.json");
        }
        ! ----- Warnmeldungen -----
        if(prio == 1){
          (dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC")).State("extra/curl -s -k -d token='"#HMwarnung#"' -d user='"#key#"' -d device='"#device#"' -d title='"#title#"' -d message='"#message#"' -d priority='"#prio#"' -d sound='"#sound#"' -d html=1 https://api.pushover.net/1/messages.json");
        }
        ! ----- Alarmmeldungen -----
        if(prio == 2){
          (dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:1.CMD_EXEC")).State("extra/curl -s -k -d token='"#HMalarm#"' -d user='"#key#"' -d device='"#device#"' -d title='"#title#"' -d message='"#message#"' -d priority='"#prio#"' -d sound='"#sound#"' -d html=1 -d retry=30 -d expire=120 https://api.pushover.net/1/messages.json");
        }
      }
    }
  }
}
und zum setzen der SVs:

Code: Alles auswählen

! Setzen der Push-Nachrichten-Referenz
! weitere Informationen unter http://homematic-forum.de/forum/viewtopic.php?f=31&t=26282
! Version 1.1, Autor: dtp

! +++++ Namen der zwingend benötigten Systemvariablen +++++
string svPushText = "CCU SV Push Text"; ! Text der aktuell zu übertragenden Push-Nachricht gem. zPNS-xx
string svPushTextRef = "CCU SV Push Text Ref"; ! Text der vorherigen Push-Nachricht als Referenz gem. zPNS-xx

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

! +++++ Setzen der Systemvariablen +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushTextRef)).State((dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).Value());
zum testen des zPNP nutze ich folgendes Script:

Code: Alles auswählen

! 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 svPushService = "CCU SV Push Dienst"; ! gem. zPNS-xx, optional
string svPushoverSound = "CCU SV Pushover Sound"; ! gem. zPNS-Po, optional

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

! +++++ Erzeugen der Test-Nachricht +++++
string message = "<font color=orange>Dies</font> ist eine <font color=green>gewöhnliche</font> Test-Nachricht.";

! +++++ Auswahl des Push-Dienstes +++++
if(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushService)){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushService)).State("1");}

! +++++ Setzen der Priorität für die Push-Nachricht +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State("0");

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

! +++++ zPNP ausführen +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).State(message);
(dom.GetObject(ID_PROGRAMS).Get(zPNP)).ProgramExecute();

WriteLine("Nachricht gesendet");
was auch die SV's setzt.

Übersehe ich hier etwas? Ich bekomme auch die Info Nachricht gesendet bei Pushover kommt aber nichts an!

Pushover Übersicht:
Bild

Bild

Die versendeten Nachrichten sind mit folgendem Script erzeugt worden:

Code: Alles auswählen

!Pushover - Skript by technikkram.net
!------------------------------

!__Pushover Keys
string po_api_user="u2xxxxxxxxxxxxxxxxxxxxxha";
string po_api_token="a7zzzzzzzzzzzzzzzzzzzzzdv";

!__Nachricht
string po_title="Beispieltitel";
string po_message="Beispieltext";
string po_sound="none";
string po_priority="0";

!___Nur benoetigt wenn Prioritaet auf Emergency (2) gesetzt ist
string po_retry="30";
string po_expires="3600";

!___Erlaeuterungen
! Sounds: pushover, bike, bugle, cashregister, classical, cosmic, falling, gamelan, incoming, intermission, magic, mechanical, pianobar, siren, spacealarm, tugboat, alien, climb, persistent, echo, updown, none
!Prioritaeten: 0=Normal; 1=High (AudioVibration auch waehrend quiet hour); 2=Emergency (Meldung Muss bestätigt werden, solange sound/Vibration); -1=Low ; -2=Lowest
! Bei Prio 2: po_retry gibt an (in sekunden), wie hauefig eine Nachricht vom Server geschickt wird (z.B. alle 30s)
! Bei Prio 2: po_expires gibt an (in Sekunden), wie lange nachrichten geschickt werden sollen. Bestätigt der User, stoppt die Benachrichtigung. Beispiel: Alle 30 sekunden wird eine Nachricht geschickt, das passiert eine Stunde lang (1 Stunde = 3600 sekunden).

!------ NICHT MODIFIZIEREN-------
string po_request;
if(po_priority=="2"){
po_request="/usr/local/addons/cuxd/curl -X POST -k -H \"Content-Type: application/x-www-form-urlencoded\" -d \"token=" # po_api_token # "&user=" # po_api_user # "&title=" # po_title # "&priority="# po_priority # "&sound=" # po_sound # "&retry="# po_retry # "&expire=" # po_expires # "&message=" # po_message # "\" https://api.pushover.net/1/messages.json";
}
else{
po_request="/usr/local/addons/cuxd/curl -X POST -k -H \"Content-Type: application/x-www-form-urlencoded\" -d \"token=" # po_api_token # "&user=" # po_api_user # "&title=" # po_title # "&priority="# po_priority # "&sound=" # po_sound # "&message=" # po_message # "\" https://api.pushover.net/1/messages.json";
}
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(po_request);
Das Funktioniert sofort. Wo liegt der Fehler? hat jemand ne Idee?
Klug zu fragen, ist schwieriger, als klug zu antworten.
--------------------------------------------------------------------
286 Kanäle in 70 Geräten:
2x HM-LC-Sw1PBU-FM, 5x HM-LC-Sw1-FM, 2x HMIP-PSM, 8x HM-RC-2-PBU-FM, 1x HM-LC-Sw2-FM, 2x HmIP-WRC6, 1x HM-LC-Sw1-Ba-PCB, 4x HM-LC-Dim1TPBU-FM, 7x HmIP-SWDO-I, 2x HM-RC-Key4-3, 1x HM-RC-Key4-2, 1x HmIP-eTRV-2, 4x VIR-LG-ONOFF, 4x VIR-LG-RGBW-DIM, 1x HM-Sec-Key, 1x HmIP-SPI, 7x HM-LC-Bl1PBU-FM, 1x HmIP-FROLL, 3x HM-Sec-SD-2, 1x HM-Sec-SD-2-Team, 1x VIR-HUE-GTW, 7x HmIP-BWTH, 2x VIR-LG-DIM, 1x HM-RC-19, 1x HmIP-RCV-50
--------------------------------------------------------------------

Tharanis
Beiträge: 119
Registriert: 15.04.2015, 11:39
Hat sich bedankt: 2 Mal
Danksagung erhalten: 5 Mal

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V2.1

Beitrag von Tharanis » 22.11.2017, 19:20

elabgrando hat geschrieben:[...]
Was ich noch nicht so recht verstanden habe warum es bei Pushover einen User Key und einen Api Key gibt. Der User Key wird aber irgendwie nicht benötigt oder ich mache etwas falsch.
[...]
Der User Key ist in dem Script bei

Code: Alles auswählen

 string keyList = "01|
einzutragen.

Bei

Code: Alles auswählen

 string HMinfoList
und den weiter folgenden trägst Du dann die API Token/Keys (Application) ein.

So klappt es bei mir ohne Probleme.
Viele Grüße
Tharanis
DWD-Unwetterwarnscript v1.32.b03 (RaspberryMatic) - Lüftungswarnung auf Temperatur-Basis

RaspberryMatic (3.65.11.20221005) - Längste Laufzeit bislang: 48 Tage (RaspberryMatic), 72 Tage (CCU2), >100 Tage (CCU1)

Benutzeravatar
elabgrando
Beiträge: 46
Registriert: 07.02.2014, 17:02

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V2.1

Beitrag von elabgrando » 23.11.2017, 23:25

Hi Tharanis,

danke dir für den Hinweis! Das könnte man im Script eventuell auch nochmal besser benennen z.B.

Code: Alles auswählen

string keyList = "01|xxxxxUSER-KEYxxxxxxxxx"; ! User API-Key. Beispiel: "01|xxxxKey1xxxx 02|xxKey2xx"
string HMinfoList = "01|xxxxxxAPI-TOKENxxxxxxx"; ! API-Schlüssel für Info-Meldungen. Beispiel: 
Das wäre etwas eindeutiger gerade wenn man eh die Einzelnen Scripte anbietet für die jeweiligen Dienste ;-)

Aber es funktioniert nun endlich wieder ;-)
Klug zu fragen, ist schwieriger, als klug zu antworten.
--------------------------------------------------------------------
286 Kanäle in 70 Geräten:
2x HM-LC-Sw1PBU-FM, 5x HM-LC-Sw1-FM, 2x HMIP-PSM, 8x HM-RC-2-PBU-FM, 1x HM-LC-Sw2-FM, 2x HmIP-WRC6, 1x HM-LC-Sw1-Ba-PCB, 4x HM-LC-Dim1TPBU-FM, 7x HmIP-SWDO-I, 2x HM-RC-Key4-3, 1x HM-RC-Key4-2, 1x HmIP-eTRV-2, 4x VIR-LG-ONOFF, 4x VIR-LG-RGBW-DIM, 1x HM-Sec-Key, 1x HmIP-SPI, 7x HM-LC-Bl1PBU-FM, 1x HmIP-FROLL, 3x HM-Sec-SD-2, 1x HM-Sec-SD-2-Team, 1x VIR-HUE-GTW, 7x HmIP-BWTH, 2x VIR-LG-DIM, 1x HM-RC-19, 1x HmIP-RCV-50
--------------------------------------------------------------------

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) V2.1

Beitrag von dtp » 24.11.2017, 08:33

elabgrando hat geschrieben:Das könnte man im Script eventuell auch nochmal besser benennen z.B.
Das habe ich extra vermieden, da man durchaus für beides denselben Key verwenden kann, wenn man nicht extra zwischen unterschiedlichen Tokens für die Prioritäten unterscheiden will.

Außerdem gibt's ja sowas, wie die Anleitung im Ausgangsthread. ;)

Gruß,

Thorsten

PS.: Freut mich, dass es nun funktioniert. @Tharanis: Danke für die Unterstützung. War die letzten Tage etwas viel mit anderen Dingen beschäftigt.
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
elabgrando
Beiträge: 46
Registriert: 07.02.2014, 17:02

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V2.1

Beitrag von elabgrando » 24.11.2017, 17:31

dtp hat geschrieben:Das habe ich extra vermieden, da man durchaus für beides denselben Key verwenden kann, wenn man nicht extra zwischen unterschiedlichen Tokens für die Prioritäten unterscheiden will
Aber wenn ich doch nur eine API mit Pushover erstellt habe, habe ich trotzdem Zwei Token/Keys
einmal den User Key und den Api Key


Also selbst wenn ich alles in eine Api laufen lassen will muss ich doch trotzdem zwei verschiedene Token/Keys hinterlegen

1.

Code: Alles auswählen

string keyList = 01|xxxUSERKEY von Pushoverxxxx
2.

Code: Alles auswählen

string HMinfoList = 01|yyyyKEY für die APIyyyyyyy
Also habe ich doch immer zwei Token/Keys die ich benutzen muss

Sonst wird nämlich nichts über Pushover versendet.

Die Anleitung im 1. Thread habe ich 10x gelesen um zu gucken wo ich den Fehler mache!
Ich hatte auch schon die verschiedensten Variationen probiert Userkey|Apikey
nur Userkey , nur Apikey aber eben nicht die Kombi die
Tharanis vorgeschlagen hat.

Naja es läuft wieder alles ist gut!

Danke für das tolle zPNP und den Support den Ihr leistet!
Klug zu fragen, ist schwieriger, als klug zu antworten.
--------------------------------------------------------------------
286 Kanäle in 70 Geräten:
2x HM-LC-Sw1PBU-FM, 5x HM-LC-Sw1-FM, 2x HMIP-PSM, 8x HM-RC-2-PBU-FM, 1x HM-LC-Sw2-FM, 2x HmIP-WRC6, 1x HM-LC-Sw1-Ba-PCB, 4x HM-LC-Dim1TPBU-FM, 7x HmIP-SWDO-I, 2x HM-RC-Key4-3, 1x HM-RC-Key4-2, 1x HmIP-eTRV-2, 4x VIR-LG-ONOFF, 4x VIR-LG-RGBW-DIM, 1x HM-Sec-Key, 1x HmIP-SPI, 7x HM-LC-Bl1PBU-FM, 1x HmIP-FROLL, 3x HM-Sec-SD-2, 1x HM-Sec-SD-2-Team, 1x VIR-HUE-GTW, 7x HmIP-BWTH, 2x VIR-LG-DIM, 1x HM-RC-19, 1x HmIP-RCV-50
--------------------------------------------------------------------

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) V2.1

Beitrag von dtp » 27.11.2017, 08:29

Ich schau noch mal drüber. Ich selbst verwende Pushover nur als Fallback-Lösung für Alarm-Push-Nachrichten mit einer Priorität von 2 und nutze ansonsten lieber Telegram. Daher beschäftige ich mich auch nicht so viel mit den anderen Pushdiensten des zPNP.

Gruß,

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.

al-79
Beiträge: 80
Registriert: 15.11.2016, 15:47
Wohnort: nähe Hannover
Hat sich bedankt: 1 Mal

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V2.1

Beitrag von al-79 » 27.11.2017, 08:48

Moin Thorsten,

Hast du schon Feedback bzgl zPNP-Po212 erhalten?

Du nutzt Pushover als Backup und primär telegram.... bei mir genau anders herum....

Bzgl Titel-Übergabe, hab ich die Variable nun bei Pushover nun in 2-3 Scripten mit eingesetzt. Leider kommen nur die normalen Pushi‘s aber aber der Titel hat sich nicht geändert.

Wenn ich wieder an PC bin teste ich nochmal und gebe detaillierte Script-Info‘s

Grüsse Andre



Gesendet vom Mobiltelefon .... Rechtschreibfehler ggf. durch 'T9'
Grüße

al-79

--------------------------------------------
361 Kanäle in 84 Geräten und 32 CUxD-Kanäle in 2 CUxD-Geräten
--------------------------------------------

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) V2.1

Beitrag von dtp » 27.11.2017, 15:02

al-79 hat geschrieben: Hast du schon Feedback bzgl zPNP-Po212 erhalten?
Hi Andre,

nee, bis auf das jetzt von Dir gepostete Feedback habe ich noch nichts erhalten. Ist ja meistens auch ein gutes Zeichen. ;)

Ich werde mal selbst noch etwas mit den Titeln herum spielen. Bisher hatte ich dafür selbst noch keine Veranlassung und zig Dinge, die mir persönlich mehr auf den Nägeln brannten. 8)

Gruß,

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.

SMA
Beiträge: 95
Registriert: 16.04.2015, 13:28

Re: Howto - zentrales Push-Nachrichten-Programm (zPNP) V2.1

Beitrag von SMA » 02.12.2017, 17:39

Huhu,

habe noch V2.0, da CCU2 noch nicht geupgraded.

Es besteht irgendein Problem mit stopRepeat. Das Problem hab ich eigentlich schon länger, aber so langsam nervt es, da ich leider noch keine für mich zufriedenstellende An/Abwesenheitserkennung habe. Ich habe die Variable auf 60 Sekunden zum Test gesetzt, dennoch kann ich ein Fenster 5x hintereinander öffnen und erhalte 5x hintereinander eine push-Nachricht. Irgendwo stimmt da leider etwas nicht. Hab auch schon bissl probiert und die Variablen ausgelesen, aber nichts gefunden.

Ich nutze noch das "alte" Skript zum setzen, aber das sollte dabei ja eigentlich keine Relevanz haben, wie die Variable Push Text letztlich gesetzt wird. Wichtig ist ja nur, dass sich die Uhrzeit ändert...

Code: Alles auswählen

! Das Script schickt eine Prowl Push Nachricht auf iOS Gereate

! Das Skript initialisiert eine neue Variable "id" welche das Auslösende Gerät erfasst und eine prowl-Message abschickt.
! Desweiteren wird anschließend die Nachricht bereinigt und Sonderzeichen nach UTF-8 ersetzt.

string id = dom.GetObject((dom.GetObject((dom.GetObject("$src$")).Channel())).Device());
string message = "Tür-Fenster-Kontakt ausgelöst: " # id;

! 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("2");

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

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

! Programm "CCU PRG Push-Nachrichten" ausführen
dom.GetObject("CCU PRG Push-Nachrichten").ProgramExecute();
Privat
1 Kanäle in 1 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten:
1x CUX28, 1x HM-Sec-SCo


Ehemalig studentische Projektgruppe
Übersicht des Haus-Projekts (Neubau)
1x CCU2 (Untergeschoss/Stahlbau) || 2x LAN-Gateway (Erdgeschoss/Dachgeschoss)

527 Kanäle in 238 Geräten und 64 CUxD-Kanäle in 17 CUxD-Geräten:
9x HM-Sen-MDIR-O-2, 16x CUX90, 12x HM-LC-Sw2-FM, 18x HM-PB-6-WM55, 33x HM-Sec-SCo, 21x HM-Sec-SD, 19x HM-LC-Bl1PBU-FM, 24x HM-LC-Sw1PBU-FM, 16x HM-TC-IT-WM-W-EU, 19x HM-LC-Sw1-FM, 9x HM-PBI-4-FM, 3x HM-Sec-SD-Team, 1x HM-Sec-TiS, 10x HM-Sec-SC-2, 3x HM-CC-VG-1, 5x HM-Sec-MDIR-2, 2x HM-LC-Sw4-SM, 1x HM-Sen-Wa-Od, 5x HM-LC-RGBW-WM, 1x CUX28, 1x HM-Sen-EP, 3x HM-LC-Dim1T-FM, 1x HM-LC-Sw4-DR, 1x HM-LC-Dim1TPBU-FM, 2x HM-WDS10-TH-O, 1x HM-Sec-WDS-2, 2x HM-ES-PMSw1-Pl, 14x HMW-LC-Sw2-DR, 1x HM-WDS100-C6-O, 2x HMW-IO-12-Sw7-DR

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) V2.1

Beitrag von dtp » 04.12.2017, 08:02

SMA hat geschrieben: Es besteht irgendein Problem mit stopRepeat. Das Problem hab ich eigentlich schon länger, aber so langsam nervt es, da ich leider noch keine für mich zufriedenstellende An/Abwesenheitserkennung habe. Ich habe die Variable auf 60 Sekunden zum Test gesetzt, dennoch kann ich ein Fenster 5x hintereinander öffnen und erhalte 5x hintereinander eine push-Nachricht. Irgendwo stimmt da leider etwas nicht. Hab auch schon bissl probiert und die Variablen ausgelesen, aber nichts gefunden.
Ich prüfe das mal nach.

Bedenke aber, dass stopRepeat nur unmittelbar aufeinanderfolgende, identische Nachrichten innerhalb der eingestellten Zeit unterdrücken kann. Sobald eine andere Nachricht zwischendrin gesendet wird und sich "...Push Text Ref" verändert, beginnt das Zeitfenster wieder von Neuem zu starten.

Aber wie gesagt, ich teste das mal heute Abend.

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.

Antworten

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