+ Antworten
Seite 10 von 19 ErsteErste ... 8 9 10 11 12 ... LetzteLetzte
Ergebnis 91 bis 100 von 187
  1. #91
    Registriert seit
    Aug 2017
    Ort
    Kaarst
    Beiträge
    163

    Hallo Thomas,
    nutzt du vielleicht auch Telegram?

    Grüße
    Kai

  2. #92
    Registriert seit
    Sep 2012
    Beiträge
    139

    Moin Kai,

    nein - gibt es vorteile?

    Grüße
    Thomas

  3. #93
    Registriert seit
    May 2008
    Ort
    Forstern
    Beiträge
    1,126

    Standard Version 2.2

    Hi zusammen,

    hatte ja noch versprochen den kleinen Bugfix für das Löschen in Gänze zu schicken!

    PHP-Code:
    <?
    ################################################################################
    # Scriptbezeichnung: System.Dashboard.ips.php
    # Version: 2.2.20180226
    # Author:  Heiko Wilknitz (@Pitti)
    #          Original von Horst (12.11.2010)
    #          Angepasst für RasPi lueralba (31.3.2015)
    #
    # Meldungsanzeige im WebFront
    # ===========================
    #
    # Dieses Skript dient zur Verwaltung einer Meldungsliste im WebFront.
    # Meldungen können hinzugefügt und entfernt werden. Es ist auch möglich,
    # Meldungen zu einem bestimmten Zeitpunkt automatisch löschen zu lassen,
    # sowie das Löschen von Meldungen durch Klick im WebFront zu aktivieren.
    # Mit der Version 2.0 ist es möglich den Button zum Wechseln der Seite
    # im Webfront zu benutzen (Typ 4).
    #
    # Installation:
    # -------------
    #
    # Dieses Skript richtet automatisch alle nötigen Objekte bei manueller
    # Ausführung ein. Eine weitere manuelle Ausführung setzt alle benötigten Objekte
    # wieder auf den Ausgangszustand.
    #
    # - Neues Skript erstellen
    # - Diesen PHP-Code hineinkopieren
    # - Skript Abspeichern
    # - Webfront ID eintragen (Abschnitt 'Konfiguration')
    # - Skript Ausführen
    #
    # Meldung durch ein anderes Skript hinzufügen lassen:
    # ---------------------------------------------------
    #
    # $number = IPS_RunScriptWaitEx(ObjektID, array('action' => 'add', 'text' => 'Test', 'expires' => time() + 60, 'removable' => true));
    # Die Rückgabe des Aufrufes ist die Identifikationsnummer der neuen Nachricht,
    # bei Misserfolg wird der Wert 0 zurückgegeben.
    #
    # Parameter:
    # - 'text': Meldungstext
    # - 'expires' (optional): Zeitpunkt des automatischen Löschens der Meldung
    #          als Unix-Timestamp. Ist der Wert kleiner als die aktuelle Timestamp,
    #          wird nicht automatisch gelöscht.
    # - 'removable' (optional): Anzeige eines Buttons zum Löschen der Meldung im WebFront.
    # - 'type' (optional): Art der Meldung ... 0 => Normal(grün),
    #          1 => Fehler(rot), 2 => Warnung(gelb), 3 => Todo(blau), 4 => Goto(orange)
    # - 'image' (optional): Name des WebFront-Icons (ipsIcon<name>), welches
    #          für Meldung verwendet werden soll, Standard ist "Talk"
    #          Doku:  https://www.symcon.de/service/dokumentation/komponenten/icons/ 
    #          z.B. Clock, Gear, Alert, etc....  
    # - 'page' (optional): Nur in Verbindung mit Type 4 - Seitenname
    #          HINWEIS: funktioniert nur ohne Parameter 'removable'!!
    #
    # Meldung durch ein anderes Skript löschen lassen:
    # ------------------------------------------------
    #
    # $success = IPS_RunScriptWaitEx(ObjektID, array('action' => 'remove', 'number' => 123));
    # Bei erfolgreichem Löschen wird der Wert 1 zurückgegeben, bei Misserfolg der Wert 0.
    #
    # Parameter:
    # - 'number': Identifikationsnummer der zu löschenden Meldung
    #
    # Meldung eines bestimmten Types löschen:
    # ------------------------------------------------
    #
    # $success = IPS_RunScriptWaitEx(ObjektID, array('action' => 'removeType', 'type' => x));
    # Bei erfolgreichem Löschen wird der Wert 1 zurückgegeben, bei Misserfolg der Wert 0.
    #
    # Parameter:
    # - 'type': Meldungstyp der gelöscht werden soll (x = 0|1|2|3|4)
    #
    # Alle vorhandenen Meldungen durch ein anderes Skript löschen lassen:
    # -------------------------------------------------------------------
    #
    # $success = IPS_RunScriptWaitEx(ObjektID, array('action' => 'removeAll'));
    # Bei erfolgreichem Löschen wird der Wert 1 zurückgegeben, bei Misserfolg der Wert 0.
    #
    # Eine Meldungen hinzufügen, welche bei Klick auf den Button die Seite wechselt:
    # ------------------------------------------------------------------------------
    #
    # $id = IPS_RunScriptWaitEx(ObjektID , array('action' => 'add', 'text' => $text, 'type' => 4, 'image' => 'Telephone', 'page' => 'catAnrufe'));
    # Der Parameter 'page' definiert zu welcher Seite im Webfront gewechselt werden soll.
    # Der Name der Seite muss einer existierenden 'Element ID' im konfigurierten Webfront
    # entsprechen (z.b. item32435).
    #  
    # ----------------------------- Konfigruration ---------------------------------
    #
    # WebFront Configuration
    $wfc     52523 /*[Forstern.NET]*/;  
    #
    # First In First Out - erste Meldung wird zuerst dargestellt, sonst 
    # letzte Meldung zuerst (LIFO).
    $fifo    false
    #
    ################################################################################

    switch ($_IPS['SENDER']) {
        case 
    'Execute':
            
    install();
            break;

        case 
    'RunScript':
            
    $result 0;
            switch (
    $_IPS['action']) {
                case 
    'add':
                    
    $expires  = isset($_IPS['expires']) ? $_IPS['expires'] : 0;
                    
    $removable  = isset($_IPS['removable']) ? $_IPS['removable'] : false;
                    
    $text     = isset($_IPS['text']) ? $_IPS['text'] : 'leer';
                    
    $type     = isset($_IPS['type']) ? $_IPS['type'] : 0;
                    
    $image    = isset($_IPS['image']) ? $_IPS['image'] : 'Talk';
                    
    $page     = isset($_IPS['page']) ? $_IPS['page'] : '';
                    if (!(
    $expires time())) { $expires 0; }
                    if (!(
    $removable === true)) { $removable false; }
                    if (!(
    $type 0)) { $type 0; }
                    if (!(
    is_string($page))) { $page ''; }
                    if (!(
    $image != '')) { $image 'Talk'; }
                    if (
    is_string($text) && $text != '') {
                        
    $result addMessage($text$expires$removable$type$image$page$fifo);
                    }
                    break;

                case 
    'remove':
                    
    $number = isset($_IPS['number']) ? $_IPS['number'] : -1;
                    if (
    $number 0) {
                        
    $result removeMessage($number$fifo);
                    }
                    break;

                case 
    'removeAll':
                    
    $result removeAllMessages();
                    break;
                case 
    'removeType':
                    
    $type = isset($_IPS['type']) ? $_IPS['type'] : -1;
                    if (
    $type >= 0) {
                      
    $result removeTypes($type$fifo);
                    }
                    break;
            }
            echo 
    $result;
            break;

        case 
    'TimerEvent':
            
    $number explode('#'IPS_GetName($_IPS['EVENT']));
            
    $number $number[1];
            
    IPS_DeleteEvent($_IPS['EVENT']);
            
    removeMessage($number$fifo);
            break;

        case 
    'WebHook':
            
    $result 0;
            switch (
    $_GET['action']) {
                case 
    'remove':
                  
    $number = isset($_GET['number']) ? $_GET['number'] : -1;
                  if (
    $number 0) {
                      
    $result removeMessage($number$fifo);
                  }
                  break;
                case 
    'switch':
                  
    $page = isset($_GET['page']) ? $_GET['page'] : '';
                  if (
    is_string($page) && $page !='') {
                      
    $result switchPage($wfc$page);
                  }
                  break;
        }
        echo 
    $result;
        break;
    }

    function 
    removeAllMessages ()
    {
        
    $ParentID IPS_GetParent($_IPS['SELF']);
        
    $DataID IPS_GetVariableIDByName('Daten'$ParentID);
        
    $MessagesID IPS_GetVariableIDByName('Meldungen'$ParentID);
        
    $LastNumberID IPS_GetVariableIDByName('letzte Meldungsnummer'$ParentID);

        
    $ids IPS_GetChildrenIDs($_IPS['SELF']);
        foreach (
    $ids as $id) {
            if (
    IPS_EventExists($id) && substr(IPS_GetName($id), 016) == 'Remove Message #') {
                
    IPS_DeleteEvent($id);
            }
        }
        
    SetValueString($DataIDjson_encode(array()));
        
    SetValueString($MessagesID'Keine Meldungen vorhanden!');
        
    SetValueInteger($LastNumberID0);
        
        return 
    1;
    }

    function 
    removeTypes($type$method
    {
        
    $ParentID IPS_GetParent($_IPS['SELF']);
        
    $DataID IPS_GetVariableIDByName('Daten'$ParentID);
        
        
    $result 0;
        
    $i 0;
        
    $j 0;
        
    $data json_decode(GetValueString($DataID), true);
        foreach(
    $data as $dataid => $dataval) {
            if(
    $dataval['type'] == $type) {
                if(
    removeMessage($dataid$method)) $i++;
                
    $j++;
            }
        }
        if (
    $i == $j$result 1;
        return 
    $result;
    }

    function 
    removeMessage($number$method)
    {
        
    $ParentID IPS_GetParent($_IPS['SELF']);
        
    $DataID IPS_GetVariableIDByName('Daten'$ParentID);
        
    $result 0;
        if (
    IPS_SemaphoreEnter($_IPS['SELF'].'DataUpdate'2000)) {
            
    $data json_decode(GetValueString($DataID), true);
            if (isset(
    $data[$number])) {
                unset(
    $data[$number]);
                
    $eventID = @IPS_GetEventIDByName('Remove Message #'.$number$_IPS['SELF']);
                if (
    $eventID !== false) {
                    
    IPS_DeleteEvent($eventID);
                }
                
    SetValueString($DataIDjson_encode($data));
                
    $result 1;
            }
            else {
                
    throwException('Could not remove message #'.$number.': Unknown message number!');
            }
            
    IPS_SemaphoreLeave($_IPS['SELF'].'DataUpdate');
            
    renderData($data$method);
        }
        else {
            
    throwException('Could not remove message #'.$number.': Semaphore timeout!');
        }
        return 
    $result;
    }

    function 
    addMessage ($text$expires$removable$type$image$page$method)
    {
        
    $ParentID IPS_GetParent($_IPS['SELF']);
        
    $DataID IPS_GetVariableIDByName('Daten'$ParentID);
        
    $LastNumberID IPS_GetVariableIDByName('letzte Meldungsnummer'$ParentID);
        
    $number 0;
        if (
    IPS_SemaphoreEnter($_IPS['SELF'].'DataUpdate'2000)) {
            
    $data json_decode(GetValueString($DataID), true);
            if (!
    is_array($data)) {
                
    $data = array();
            }
            
    $number GetValueInteger($LastNumberID) + 1;
            
    $data[$number] = array('timestamp' => time(), 'text' => utf8_encode($text), 'expires' => $expires'removable' => $removable'type' => $type'image' => $image'page' => $page);
            if (
    $expires time()) {
                
    $eventID IPS_CreateEvent(1);
                
    IPS_SetParent($eventID$_IPS['SELF']);
                
    IPS_SetName($eventID'Remove Message #'.$number);
                
    IPS_SetEventCyclic($eventID100000);
                if(
    $expires == 0) {
                    
    IPS_SetEventCyclicDateFrom($eventID000);
                } else {
                    
    IPS_SetEventCyclicDateFrom($eventID, (int)date('j',$expires), (int)date('n'$expires),  (int)date('Y'$expires));
                }
                
    IPS_SetEventCyclicDateTo($eventID000);
                
                if(
    $expires == 0) {
                    
    IPS_SetEventCyclicTimeFrom($eventID000);
                } else {
                    
    IPS_SetEventCyclicTimeFrom($eventID, (int)date("H"$expires), (int)date("i"$expires), (int)date("s"$expires));
                }
                
    IPS_SetEventCyclicTimeTo($eventID000);
                
    IPS_SetEventActive($eventIDtrue);
            }
            
    SetValueString($DataIDjson_encode($data));
            
    SetValueInteger($LastNumberID$number);
            
    IPS_SemaphoreLeave($_IPS['SELF'].'DataUpdate');
            
    renderData($data$method);
        }
        else {
            
    throwException('Could not add message: Semaphore timeout!');
        }
        return 
    $number;
    }

    function 
    switchPage($wfc$page)
    {
        
    $result WFC_SwitchPage($wfc$page);
        return 
    $result;
    }

    function 
    install ()
    {
        
    IPS_SetHidden($_IPS['SELF'], true);
        
    $ParentID IPS_GetParent($_IPS['SELF']);
        
    $instanceID 0;
        if (
    IPS_InstanceExists($ParentID)) {
            
    $instance IPS_GetInstance($ParentID);
            if (
    $instance['ModuleInfo']['ModuleID'] == '{485D0419-BE97-4548-AA9C-C083EB82E61E}') {
                
    $instanceID $ParentID;
            }
        }
        if (
    $instanceID == 0) {
            
    $instanceID IPS_CreateInstance('{485D0419-BE97-4548-AA9C-C083EB82E61E}');
            
    IPS_SetParent($instanceID$ParentID);
            
    IPS_SetName($instanceID'Meldungen');
            
    IPS_SetParent($_IPS['SELF'], $instanceID);
            
    $ParentID $instanceID;
        }
        
    $DataID = @IPS_GetVariableIDByName('Daten'$ParentID);
        if (
    $DataID === false) {
            
    $DataID IPS_CreateVariable(3);
            
    IPS_SetParent($DataID$ParentID);
            
    IPS_SetName($DataID'Daten');
        }
        
    SetValueString($DataIDjson_encode(array()));
        
    $MessagesID = @IPS_GetVariableIDByName('Meldungen'$ParentID);
        if (
    $MessagesID === false) {
            
    $MessagesID IPS_CreateVariable(3);
            
    IPS_SetParent($MessagesID$ParentID);
            
    IPS_SetName($MessagesID'Meldungen');
            
    IPS_SetVariableCustomProfile($MessagesID'~HTMLBox');
        }
        
    SetValueString($MessagesID'Keine Meldungen vorhanden!');
        
    $LastNumberID = @IPS_GetVariableIDByName('letzte Meldungsnummer'$ParentID);
        if (
    $LastNumberID === false) {
            
    $LastNumberID IPS_CreateVariable(1);
            
    IPS_SetParent($LastNumberID$ParentID);
            
    IPS_SetName($LastNumberID'letzte Meldungsnummer');
        }
        
    SetValueInteger($LastNumberID0);
        
        
    $ids IPS_GetChildrenIDs($_IPS['SELF']);
        foreach (
    $ids as $id) {
            if (
    IPS_EventExists($id) && substr(IPS_GetName($id), 016) == 'Remove Message #') {
                
    IPS_DeleteEvent($id);
            }
        }
    }

    function 
    renderData ($data$method)
    {
        
    $ParentID IPS_GetParent($_IPS['SELF']);
        
    $DataID IPS_GetVariableIDByName('Daten'$ParentID);
        
    $MessagesID IPS_GetVariableIDByName('Meldungen'$ParentID);
        
    // Etwas CSS und HTML
        
    $style "";
        
    $style $style.'<style type="text/css">';
        
    $style $style.'table.msg { width:100%; border-collapse: collapse; }';
        
    $style $style.'td.fst { width: 36px; padding: 2px; border-left: 1px solid rgba(255, 255, 255, 0.2); border-top: 1px solid rgba(255, 255, 255, 0.1); }';
        
    $style $style.'td.mid { padding: 2px;  border-top: 1px solid rgba(255, 255, 255, 0.1); }';
        
    $style $style.'td.lst { width: 42px; text-align:center; padding: 2px;  border-right: 1px solid rgba(255, 255, 255, 0.2); border-top: 1px solid rgba(255, 255, 255, 0.1); }';
        
    $style $style.'tr:last-child { border-bottom: 1px solid rgba(255, 255, 255, 0.2); }';
        
    $style $style.'.blue { padding: 5px; color: rgb(255, 255, 255); background-color: rgb(0, 0, 255); background-image: linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -o-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -moz-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -webkit-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -ms-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); }';
        
    $style $style.'.red { padding: 5px; color: rgb(255, 255, 255); background-color: rgb(255, 0, 0); background-image: linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -o-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -moz-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -webkit-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -ms-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); }';
        
    $style $style.'.green { padding: 5px; color: rgb(255, 255, 255); background-color: rgb(0, 255, 0); background-image: linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -o-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -moz-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -webkit-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -ms-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); }';
        
    $style $style.'.yellow { padding: 5px; color: rgb(255, 255, 255); background-color: rgb(255, 255, 0); background-image: linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -o-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -moz-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -webkit-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -ms-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); }';
        
    $style $style.'.orange { padding: 5px; color: rgb(255, 255, 255); background-color: rgb(255, 160, 0); background-image: linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -o-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -moz-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -webkit-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); background-image: -ms-linear-gradient(top,rgba(0,0,0,0) 0,rgba(0,0,0,0.3) 50%,rgba(0,0,0,0.3) 100%); }';
        
    $style $style.'</style>';
        
    $content $style;
        
    $content $content.'<table class="msg">';

        if (
    count($data) == 0) {
        
    $content $content.'<tr>';
        
    $content $content.'<td class="fst"><img src=\'img/icons/Ok.svg\'></img></td>';
        
    $content $content.'<td class="mid">Keine Meldungen vorhanden!</td>';
        
    $content $content.'<td class=\'lst\'><div class=\'green\' onclick=\'alert("Nachricht kann nicht bestätigt werden.");\'>OK</div></td>';
        
    $content $content.'</tr>';
        }
        else {
            
    // fifo or lifo
            
    if(!$method) {
                
    $data array_reverse($datatrue);
            }
            foreach (
    $data as $number => $message) {
                if (
    $message['type']) {
                    switch (
    $message['type']) {
                        case 
    4:
                            
    $type 'orange';
                            break;
                        case 
    3:
                            
    $type 'blue';
                            break;
                        case 
    2:
                            
    $type 'yellow';
                            break;
                        case 
    1:
                            
    $type 'red';
                            break;
                        default:
                            
    $type 'green';
                            break;
                    }
                }
                else {
                    
    $type 'green';
                }
                if (
    $message['image']) {
                    
    $title ' ';
                    if (isset(
    $message['timestamp'])) {
                        
    $title .= 'title=\''.date("d.m.Y H:i"$message['timestamp']).'\' ';      
                    }
                    
    $image '<img src=\'img/icons/'.$message['image'].'.svg\''.$title.'></img>';
                }
                else {
                    
    $image '<img src=\'img/icons/Ok.svg\'></img>';
                }
                
    $content .= '<tr>';
                
    $content $content.'<td class="fst">'.$image.'</td>';
                
    $content $content.'<td class="mid">'.utf8_decode($message['text']).'</td>';
                if (
    $message['removable']) {
                    
    $content $content.'<td class=\'lst\'><div class=\''.$type.'\' onclick="window.xhrGet=function xhrGet(o) {var HTTP = new XMLHttpRequest();HTTP.open(\'GET\',o.url,true);HTTP.send();};window.xhrGet({ url: \'hook/msg?ts=\' + (new Date()).getTime() + \'&action=remove&number='.$number.'\' });">OK</div></td>';
                }
                elseif (
    $message['page']) {
                    
    $content $content.'<td class=\'lst\'><div class=\''.$type.'\' onclick="window.xhrGet=function xhrGet(o) {var HTTP = new XMLHttpRequest();HTTP.open(\'GET\',o.url,true);HTTP.send();};window.xhrGet({ url: \'hook/msg?ts=\' + (new Date()).getTime() + \'&action=switch&page='.$message['page'].'\' });">OK</div></td>';
                }
                else {
                    
    $content $content.'<td class=\'lst\'><div class=\''.$type.'\' onclick=\'alert("Nachricht kann nicht bestätigt werden.");\'>OK</div></td>';
                }
                
    $content .= '</tr>';
            }
        }
        
    $content $content'</table>';
        
    SetValueString($MessagesID$content);
    }

    function 
    throwException($message)
    {
        
    IPS_LogMessage($_IPS['SELF'], $message);
    }
    ################################################################################

    ?>
    Viel Spaß beim Erweitern ;-)
    Pitti
    SERVER: FritzBox 7490, Raspberry Pi 3, CCU2 und IP-Symcon V5.3 (Ninja) | SYSTEME: Amazon ECHOs, Apple TVs, Homematic/IP, LevelJet, Logitech Harmony, Magic Home, Pioneer AVR, Philips Hue, Samsung TV's, Somfy RFX, Apple & Android Handys & Tablets | MODULE: Awido, Toolmatic Reihe (4x), Almanac, Magic Home Controller, Pollenflug | SKINS: WwxSkin

  4. #94
    Registriert seit
    Aug 2017
    Ort
    Kaarst
    Beiträge
    163

    Hi Thomas,

    kann ich nicht sagen...

    Ich versuche mal dein Script zu ändern um es für Telegram zu verwenden.

    Gruß
    Kai

  5. #95
    Registriert seit
    Sep 2010
    Ort
    Emmerich
    Beiträge
    761

    Hallo, ich bekomme die Meldungen noch nicht per Click im Webfront gelöscht.

    Über WebHook wird das Skript "removeMessage" aber getriggert !

  6. #96
    Registriert seit
    Aug 2017
    Ort
    Kaarst
    Beiträge
    163

    Hallo Thomas,

    leider reichen meine PHP-Kenntnisse nicht aus um die Daten vom Telegram Modul herraus an das Meldungsscript weiterzuleiten.

    Ich konnte dein Script wie folgt anpassen.
    PHP-Code:
    <?

    // Telegram
    $TelegramID 22786 /*[Module\TelegramMessenger IPS]*/;                    // ID vom Telegram-Modul
    $UserID XXXXXXXXXX;

    // Schalter im Webfront ob Pushnachrichten versendet werden sollen
    $id_pushnachricht_empfangen 48490 /*[WORK\Push empfangen]*/;

    // ID des Webfront Meldungen Scriptes
    $webfront_meldung 25111 /*[Scripte & Variablen\Meldungen & Push-Nachrichten\Meldungen\System Dashboard]*/;

    // Type - ob anzeige nur im Webfront oder auch als Push Nachricht
            
    if(!isset($type)) { $type "push"; }
                if ( 
    GetValue($id_pushnachricht_empfangen) == true  && $type == "push") {
                    
    $pushnachricht true;
                } else {
                    
    $pushnachricht false;
                }
        
        
    // Zeitpunkt des automatischen Löschens der Meldung
            
    if(!isset($verfall)) { $expires strtotime("+1 Day"); } else { $expires strtotime($verfall); }
        
        
    // keine Gruppe gesetzt
            
    if(!isset($gruppe)) { $gruppe "info"; }
        
        
    // Inhalt
            
    if(!isset($nachricht)) { $nachricht "Es wurde keine Nachricht angegeben.";}
        
        
        
    // Soll ein Bild mit gesendet werden?
        // Abfrage unen, falls nicht mit angegeben
        
    if(!isset($bild)) { $bild "";}
        
        
    // Seiten Sprug Adresse
        
    if(!isset($seite)) { $seite ""; }

        
    // Zuordnung der Meldung zu den Applications -> aus "Meldungsanzeige im Webfront"
            //  0 => Normal(grün), 1 => Fehler(rot), 2 => Warnung(gelb), 3 => Todo(blau), 4 => Goto(orange) 
            
    $type = Array (
                
    "system"        => "3",
                
    "info"            => "0",
                
    "wetter"        => "2",
                
    "alarm"            => "1",
                
    "sicherheit"    => "3",
                
    "geraete"         => "0",
                
    "telefon"         => "0",
                
    "seite"            => "4",
                
            );

            
    $icon = Array ( 
                
    "system"        => "IPS",
                
    "info"             => "Information",
                
    "wetter"        => "Rainfall",
                
    "alarm"            => "Alert",
                
    "sicherheit"    => "Warning",
                
    "geraete"        => "Gear",
                
    "telefon"        => "Telephone",
                
    "seite"            => "IPS",
            );

        
    // Telegram Daten
            // ID vom Bot liefert als Ergebnis "Es wurde keine Nachricht angegeben."
            
    $token = Array (
                
    "system"        => "ID_TELEGRAM_BOT",
                
    "seite"        => "ID_TELEGRAM_BOT",
                
    "info"             => "ID_TELEGRAM_BOT",
                
    "wetter"        => "ID_TELEGRAM_BOT",
                
    "alarm"            => "ID_TELEGRAM_BOT",
                
    "sicherheit"        => "ID_TELEGRAM_BOT",
                
    "geraete"         => "ID_TELEGRAM_BOT",
                
    "telefon"         => "ID_TELEGRAM_BOT",
            );
        
        
    if(
    $pushnachricht) {

            
    $post = array(
                
    "token"            => "$token[$gruppe]",
                
    "user"            => $UserID,
                
    "message"        => $nachricht,
                
    "expire"        => $expires,
                );

                
    // Bild 
                
    if((isset($bild)) and ($bild != "")) { 
                    
    $file = new CURLFile($bild,'image/jpg','Bild');
                    
    $post["attachment"] = $file;
                }
                }

    Telegram_SendText($TelegramID$nachricht$UserID$ParseMode='HTML');


    // Nachrichten im Webfront anzeigen
    $message IPS_RunScriptEx($webfront_meldung, array('action' => 'add''text' => $nachricht'expires' => $expires'removable' => true'type' => $type[$gruppe], 'bild' => $bild'icon' => $icon[$gruppe], 'page' => $seite));

    ?>
    Ich habe ein weiteres Script angelegt um die Nachrichten zu verschicken.
    PHP-Code:
    <?

    $telegram 
    46682 /*[WORK\Telegram]*/;

    IPS_RunScriptEx ($telegram, Array("type" => "push""gruppe" => "sicherheit" "message" => "Sicherheit - Testnachricht Sicherheit Verfall 2 Minuten""verfall" => "+2 minutes")) ;

    ?>
    Als ergebnis erhalte ich eine Telegram Nachricht mit dem Inhalt "Es wurde keine Nachricht angegeben.". Diese bekomme ich auch über das Meldungsscript von Pitti angezeigt.

    Hast du vielleicht eine Idee warum ich den eigentlichen Inhalt der Nachricht nicht angezeigt bekomme.

    Gruß
    Kai

  7. #97
    Registriert seit
    Sep 2012
    Beiträge
    139

    Moin,

    so wie es ausschaut? ...

    Übergibst Du hier die Variable ->message<-, dieses muss(müsste) aber ->nachricht<- lauten.

    Sonst kennt das Versende Programm die Nachricht nicht und sendet den Text "Es wurde keine Nachricht angegeben.".

    Probier mal bitte,


    PHP-Code:
    $telegram 46682 /*[WORK\Telegram]*/;

    IPS_RunScriptEx ($telegram, Array("type" => "push""gruppe" => "sicherheit" "nachricht" => "Sicherheit - Testnachricht Sicherheit Verfall 2 Minuten""verfall" => "+2 minutes")) ; 

    Grüße
    Thomas



    Zitat Zitat von Karlinho Beitrag anzeigen
    Hallo Thomas,

    leider reichen meine PHP-Kenntnisse nicht aus um die Daten vom Telegram Modul herraus an das Meldungsscript weiterzuleiten.

    Ich konnte dein Script wie folgt anpassen.


    Ich habe ein weiteres Script angelegt um die Nachrichten zu verschicken.
    PHP-Code:
    <?

    $telegram 
    46682 /*[WORK\Telegram]*/;

    IPS_RunScriptEx ($telegram, Array("type" => "push""gruppe" => "sicherheit" "message" => "Sicherheit - Testnachricht Sicherheit Verfall 2 Minuten""verfall" => "+2 minutes")) ;

    ?>
    Als ergebnis erhalte ich eine Telegram Nachricht mit dem Inhalt "Es wurde keine Nachricht angegeben.". Diese bekomme ich auch über das Meldungsscript von Pitti angezeigt.

    Hast du vielleicht eine Idee warum ich den eigentlichen Inhalt der Nachricht nicht angezeigt bekomme.

    Gruß
    Kai

  8. #98
    Registriert seit
    Aug 2017
    Ort
    Kaarst
    Beiträge
    163

    Hallo Thomas,

    vielen Dank für deine Mühe.

    Leider funktioniert es nicht. Es bleibt bei der Meldung "Es wurde keine Nachricht angegeben.".

    Beste Grüße
    Kai

  9. #99
    Registriert seit
    Sep 2012
    Beiträge
    139

    Moin,

    Probiere doch mal bitte zur Eingrenzung , im "Telegram Script"... ganz oben die Variable $nachricht mit einem Wert zu füllen.

    Wenn selbige in Telegram ankommt - muss etwas bei der Übergabe / Aufruf etwas nicht stimmen ...

    Grüße
    Thomas


    PHP-Code:
    <?

    //Hier test Nachricht 
    $nachricht "Dieses ist eine Test Nachricht";

    // Telegram
    $TelegramID 22786 /*[Module\TelegramMessenger IPS]*/;                    // ID vom Telegram-Modul
    $UserID XXXXXXXXXX;

    // Schalter im Webfront ob Pushnachrichten versendet werden sollen
    $id_pushnachricht_empfangen 48490 /*[WORK\Push empfangen]*/;

    // ID des Webfront Meldungen Scriptes
    $webfront_meldung 25111 /*[Scripte & Variablen\Meldungen & Push-Nachrichten\Meldungen\System Dashboard]*/;

    // Type - ob anzeige nur im Webfront oder auch als Push Nachricht
    Zitat Zitat von Karlinho Beitrag anzeigen
    Hallo Thomas,

    vielen Dank für deine Mühe.

    Leider funktioniert es nicht. Es bleibt bei der Meldung "Es wurde keine Nachricht angegeben.".

    Beste Grüße
    Kai

  10. #100
    Registriert seit
    Aug 2017
    Ort
    Kaarst
    Beiträge
    163

    Hallo Thomas,

    es scheint an der Übergabe der zu liegen.
    Ich bekomme als Ergebniss in Telegram und Meldungsanziege im WF "Dieses ist eine Test Nachricht" angezeigt.

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	2018-03-03 11_03_38-IPSView Windows.png 
Hits:	117 
Größe:	15.2 KB 
ID:	43040Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	2018-03-03 11_05_41-Telegram.png 
Hits:	114 
Größe:	29.0 KB 
ID:	43041

    Beste Grüße
    Kai

Ähnliche Themen

  1. Update und Webfront zerschossen
    Von Lukky im Forum WebFront
    Antworten: 2
    Letzter Beitrag: 10.09.10, 16:18
  2. Webfront reload Frage
    Von Matraaxel im Forum WebFront
    Antworten: 8
    Letzter Beitrag: 17.01.10, 17:03
  3. Umstellung V1 auf V2 mit Designer oder Webfront?
    Von hmpf99 im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 3
    Letzter Beitrag: 22.04.09, 20:51
  4. Antworten: 0
    Letzter Beitrag: 09.02.09, 23:59

Stichworte