Howto - zentrales Push-Nachrichten-Programm zPNP

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

Moderator: Co-Administratoren

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

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

Beitrag von dtp » 29.10.2017, 17:54

ACHTUNG: Seit dem Crash der CCU wegen der Zeitumstellung funktionieren einige neu implementierte String- und Math-Befehle, wie z.B. ".ToUTF8()" ".Replace(a, b)" oder ".Abs()" nicht mehr. Daher wird im Moment auch keine Push-Nachricht mit den zPNS-xx übermittelt. Ich hoffe, dass eQ-3 und jmaus das Problem schnell wieder in den Griff bekommen. Ansonsten werde ich in Kürze eine wieder funktionierende Version der zPNS-xx bereit stellen.

EDIT: Entwarnung. Mit einem erneuten Start der CCU2 seit dem 30.10. hat sich das Problem wieder erledigt.

Danke an den User Tibin für den Hinweis.

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.

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 » 04.11.2017, 23:50

Sorry, falls jemand in diesen 65 Seiten die Idee schon einmal gepostet hat... Ich habe die Suchfunktion und die ersten Seiten hier durchstöbert, aber nichts gefunden.

Vielen Dank erstmal für das tolle Programm.

Ich bin vor Monaten von den einzelnen Pushkonfigurationen in jedem Programm auf eine frühere Version von zPNP gewechselt. Vor ein paar Tagen bin ich nun auf die neueste Version hochgegradet. Ich nutze Pushover und vermisste die Betitelung in den Nachrichten. Ich habe mir das Prinzip der Programmteile angeschaut und erweitert. Achtung: meine Variablen heissen etwas anders als im normalen zPNP-Script!

Zuerst einmal habe ich eine Variable für den Titel angelegt:

Code: Alles auswählen

CCU.SV_Pushover.Title als Zeichenkette
Nun Pushover-zPNP folgende Zeilen ergänzen:

Code: Alles auswählen

string svPushoverTitle = "CCU.SV_Pushover.Title"; ! Pushover-Title 

Code: Alles auswählen

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("Title für 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();}
}
und ziemlich weit unten im Meldungsteil noch vor message='"#message#"' -d

Code: Alles auswählen

title='"#title#"' -d 
ergänzen.

In den Programmen die pushen sollen lautet dann die ergänzende Zeile:

Code: Alles auswählen

    ! +++++ Setzen des Titels für die Push-Nachricht +++++
    dom.GetObject("CCU.SV_Pushover.Title").State("Briefkasten");
Bitte melden, wenn ich, obwohl es bei mir läuft, Blödsinn zusammengeschustert habe. Ansonsten hoffe ich, diese Idee läuft bei Interesse auch bei Euch. Garantie kann ich natürlich nicht übernehmen^^
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)

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

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

Beitrag von dtp » 05.11.2017, 10:37

Hallo Tharanis,

vielen Dank für Deinen Input. Könntest Du mal einen Screenshot von der Pushover-App posten, wie sich die Titel dort optisch bemerkbar machen.

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.

xantalos
Beiträge: 14
Registriert: 22.10.2017, 19:25
System: Alternative CCU (auf Basis OCCU)
Wohnort: Warstein

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

Beitrag von xantalos » 05.11.2017, 10:45

Tharanis hat geschrieben:Sorry, falls jemand in diesen 65 Seiten die Idee schon einmal gepostet hat... Ich habe die Suchfunktion und die ersten Seiten hier durchstöbert, aber nichts gefunden.

Vielen Dank erstmal für das tolle Programm.

Ich bin vor Monaten von den einzelnen Pushkonfigurationen in jedem Programm auf eine frühere Version von zPNP gewechselt. Vor ein paar Tagen bin ich nun auf die neueste Version hochgegradet. Ich nutze Pushover und vermisste die Betitelung in den Nachrichten. Ich habe mir das Prinzip der Programmteile angeschaut und erweitert. Achtung: meine Variablen heissen etwas anders als im normalen zPNP-Script!

Zuerst einmal habe ich eine Variable für den Titel angelegt:

Code: Alles auswählen

CCU.SV_Pushover.Title als Zeichenkette
Nun Pushover-zPNP folgende Zeilen ergänzen:

Code: Alles auswählen

string svPushoverTitle = "CCU.SV_Pushover.Title"; ! Pushover-Title 

Code: Alles auswählen

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("Title für 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();}
}
und ziemlich weit unten im Meldungsteil noch vor message='"#message#"' -d

Code: Alles auswählen

title='"#title#"' -d 
ergänzen.

In den Programmen die pushen sollen lautet dann die ergänzende Zeile:

Code: Alles auswählen

    ! +++++ Setzen des Titels für die Push-Nachricht +++++
    dom.GetObject("CCU.SV_Pushover.Title").State("Briefkasten");
Bitte melden, wenn ich, obwohl es bei mir läuft, Blödsinn zusammengeschustert habe. Ansonsten hoffe ich, diese Idee läuft bei Interesse auch bei Euch. Garantie kann ich natürlich nicht übernehmen^^
Hallo soweit konnte ich alles einfügen.
Aber so bald ich den teil für die Message einfüge kommt der fehler:
Error 1 at row 142 col 250 near ^#"' -d message='"#message#"' -d priority='"#prio#"' -d sound='"#sound#"' -d html
Error 1 at row 142 col 250 near ^#"' -d message='"#message#"' -d priority='"#prio#"' -d sound='"#sound#"' -d html
Error 1 at row 142 col 250 near ^#"' -d message='"#message#"' -d priority='"#prio#"' -d sound='"#sound#"' -d html
Error 1 at row 142 col 250 near ^#"' -d message='"#message#"' -d priority='"#prio#"' -d sound='"#sound#"' -d html
Error 1 at row 142 col 250 near ^#"' -d message='"#message#"' -d priority='"#prio#"' -d sound='"#sound#"' -d html
Error 1 at row 142 col 250 near ^#"' -d message='"#message#"' -d priority='"#prio#"' -d sound='"#sound#"' -d html

hier auch die Message zeile:
if(prio >= prioMin){
! ----- Informationsmeldungen -----
if((prio == -2) || (prio == -1) || (prio == 0)){
(dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:5.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");
}

vielleicht kannst du mal dein ganzes script posten....

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 » 05.11.2017, 12:08

Hallo Xantalos, hallo Thorsten,

erst einmal versuche ich zu helfen, weiter unten folgenden dann auch die gewünschten Screenshots :wink:

Ich habe nochmal bei meiner RaspberryMatic der neuesten Version überprüft, ob bei mir irgendwelche Fehler aufgeführt werden. Ich kann aber keine Fehler ausmachen. Deshalb hier zuerst einmal mein von mir eingesetztes gesamtes Script von dtp mit meinen Zusätzen (bitte beachtet die anderen Systemvariablennamen):

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, 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|"; ! API-Basisschlüssel. Beispiel: "01|xxxxKey1xxxx 02|xxKey2xx"
string HMinfoList = "01|"; ! API-Schlüssel für Info-Meldungen. Beispiel: "01|xxxxKey1xxxx 02|xxKey2xx"
string HMwarnungList = "01|"; ! optionale API-Schlüssel für Warnmeldungen
string HMalarmList = "01|"; ! optionale API-Schlüssel für Alarmmeldungen
string prioMinList = "01|-2"; ! 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"; ! Pushover-Sound, default: "pushover"
string svPushoverDevice = "CCU.SV_Pushover.Gerät"; ! Pushover-Gerät (z.B. "CCU SV Pushover Gerät"), default: ""
string svPushoverTitle = "CCU.SV_Pushover.Title"; ! Pushover-Title 
 
! #####################################################################
! ##### 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 sound = "pushover"; string device = ""; string title = "";
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(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();}
}

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("Title für 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();}
}

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

    ! ----- 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");
        }
      }
    }
  }
}
Wenn das obere Script bei Dir auch nicht funktioniert, fallen mir noch zwei Zeilen im Script ganz oben auf, weiß aber nicht, ob dies dann zum Problem wird...
Könnte es sein, dass Du momentan noch eine ältere Firmware einsetzt?
! Version 2.1, Autor: dtp
! ACHTUNG: Dieses Skript benötigt eine CCU-Firmware ab Version 2.29.22
Ich hoffe, dies hilft Dir.

Ansonsten hier die versprochenen Screenshots:
push1_tharanis.png
push2_tharanis.png
Im ersten Screenshot wird deutlich, dass mit Servicemeldungen und Fensterwarnung unterschiedliche Title-Zeilen angezeigt werden. Bei Pushover heisst dieser mit dem schwarzen Haussymbol versehener Token bei mir "Mitteilungen", was mir zu allgemein war^^.
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)

xantalos
Beiträge: 14
Registriert: 22.10.2017, 19:25
System: Alternative CCU (auf Basis OCCU)
Wohnort: Warstein

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

Beitrag von xantalos » 05.11.2017, 12:21

Hallo Tharanis,

danke erstmal für Deine Antwort.
Da ich seit gestern ebenfalls schon einiges Probiert habe den Titel hin zu bekommen war anscheint in meinem Script noch ein Fehler. (Alte Probedaten)

Manchmal sieht man den wald vor Bäumen nicht.

Gruß
Andre

Benutzeravatar
Murmelbaerchen69
Beiträge: 274
Registriert: 01.12.2013, 22:55
Wohnort: @home

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

Beitrag von Murmelbaerchen69 » 05.11.2017, 12:23

@Tharanis

Hallo Tharanis,

ist zwar jetzt o. T. könntest du mir eine Anleitung geben, wie du das mit den 3 Warnungen und der Temperatur zum Zeitpunkt des öffnen gemacht hast.
Danke im voraus.

Gruß Ralf

Gesendet von meinem SM-N910F mit Tapatalk
Das soll ein neuer Computer sein ? Warum steht den auf der Tastatur "ALT" ?

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 » 05.11.2017, 13:01

ok, mal ganz kurz OT :D
Hallo Ralf,

da sich das Ganze nicht mit ein paar Zeilen erklären lässt, erstelle ich ein neues Thema, bzw. poste dahin wo es besser passt. Ich schreibe Dir dann gerne eine PN.

ansonsten nun wieder zu zPNP^^:
@Andre: schön, dass es nun zu klappen scheint (*Schweiß von der Stirn wisch)

Gruß 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)

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 » 05.11.2017, 13:03

@tharanis

bin auch offen für neue Fensterscripte... [emoji6]


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

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 » 05.11.2017, 18:56

nochmal OT was zPNP angeht... ich habe nun unter viewtopic.php?f=31&t=39992 ein neues Thema eröffnet und meine Variante eines Lüftungsscripts dort beschrieben.
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)

Antworten

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