+ Antworten
Seite 5 von 5 ErsteErste ... 3 4 5
Ergebnis 41 bis 47 von 47
  1. #41
    Registriert seit
    Apr 2019
    Ort
    Etelsen bei Bremen
    Beiträge
    95

    Hi Fonzo,
    Code:
    		$neeo_scriptid = $this->ReadPropertyInteger("NEEOScript");
    		$this->SendDebug("NEEO Recieve:", "ScriptID: " . $neeo_scriptid, 0);
    		if($neeo_scriptid != 0)
    		{
    			IPS_RunScriptEx($neeo_scriptid, ["action" => $action, "device" => $device, "room" => $room, "actionparameter" => $actionparameter, "recipe" => $recipe]);
    		}
    wenn ich das richtig sehe sollen hier die Forward-Scripte aufgerufen werden. Bei mir lierfert $neeo_scriptid aber immer 0. Mein VU-Problem habe ich jetzt quick&dirty durch einen Aktualisierungs-Trigger auf action vom Neeo-IO "gelöst".

    Es sollten auch nicht immer nur Device und Recipe sondern auch Room verglichen werden z.B. in GetRecipeUID denn Neeo hat die Eigenart alle Fernseher TV und alle Sat-Receiver satellite zu nennen und wenn man dann mehrere Räume bedient wird eventuell das falsche Gerät genommen.

    Ralf
    IPS 5.1 Unlimited / Docker / Synology DS415+

  2. #42
    Registriert seit
    Apr 2019
    Ort
    Etelsen bei Bremen
    Beiträge
    95

    Hi ihr vielen Neeo Benutzer:-)

    mit $action = 'CHANNEL_1' .. 'CHANNEL_?' kann man auf die Favoriten von Neeo reagieren. Neeo schickt nicht die Kanalnummern!

    Ralf
    IPS 5.1 Unlimited / Docker / Synology DS415+

  3. #43
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,199

    Standard Favoriten Icons

    Zitat Zitat von HarmonyFan Beitrag anzeigen
    mit $action = 'CHANNEL_1' .. 'CHANNEL_?' kann man auf die Favoriten von Neeo reagieren. Neeo schickt nicht die Kanalnummern!
    Nur zur Info falls Du mit Fernsehkanälen rumspielst, Du kannst die Icons die angezeigt werden austauschen.

    Dazu eine Variable vom Typ String in IP-Symcon anlegen mit dem Variablenprofil ~HTMLBox. Anschließend ein Skript anlegen und hier die Objekt ID der soeben angelegten Variable ergänzen.

    PHP-Code:
    <?php

    // Konfiguration

    // Objekt ID HTMLBox Variable
    $htmlbox 16851 /*[Geräte\NEEO\NEEO Modul\NEEO Favoriten]*/;

    // -- Ende Konfiguration
    $html '<!doctype html>
    <html>

    <head>
        <title>NEEO Favorites</title>
        <script>
        let dd = "";
    function connect() {
        let brainIP = document.getElementById("brainIP").value;
        document.getElementById("Favorites").innerHTML = \'<h1>Connecting to \' + brainIP + \'...</h1>\';
        connectBrain(brainIP);
    }
    function connectBrain(brainIP) {
        fetch(\'http://\' + brainIP + \':3000/v1/projects/home/rooms/\').then(response => response.json()).then((configRooms) => {
            findFavorites(configRooms);
        }).catch(err => {
            document.getElementById("Favorites").innerHTML = "<h1>Can\'t connect to " + brainIP + "...</h1>";
            throw err
        });
    }
    function cl(cl) {
        console.log(cl);
    }
    function findFavorites(configRooms) {
        dd = "";
        for (let i in configRooms) {
            let room = configRooms[i];
            for (let j in room.devices) {
                let device = room.devices[j];
                if (Object.keys(device.favorites).length > 0) {
                    printFavorites(device);
                }
            }
        }
        if (!dd == "") {
            document.getElementById("Favorites").innerHTML = dd;
        } else {
            document.getElementById("Favorites").innerHTML = \'<h1>This brain does not have any favorites configured...</h1>\';
        }
    }
    function printFavorites(device) {
        dd = dd + \'<div class="fieldrowh"><h1>\' + device.name + \'</h1></div>\'
        for (let i in device.favorites) {
            let favorite = device.favorites[i];
            dd = dd + \'<div class="fieldrow"><div class="imgbox">\';
            dd = dd + \'<span class="iconhelper"></span>\';
            dd = dd + \'<img class="icon" src="\' + favorite.channel.logoUrl + \'" id="\' + device.roomKey + \'a\' + device.key + \'b\' + i + \'"></div>\';
            dd = dd + \'<label class="channellabel">\' + favorite.channel.name + \'</label>\';
            dd = dd + \'<input class="urlinput" id="\' + device.roomKey + \'x\' + device.key + \'y\' + i + \'" type="text" value="\' + favorite.channel.logoUrl + \'"/>\';
            dd = dd + \'<button class="setbutt" onclick="seturl(\' + i + \', \' + device.roomKey + \', \' + device.key + \')" ><i></i>Update</button>\';
            dd = dd + \'</div>\';
        }
    }
    function seturl(id, roomKey, deviceKey) {
        let url = \'http://\' + document.getElementById("brainIP").value + \':3000/v1/projects/home/rooms/\' + roomKey + \'/devices/\' + deviceKey + \'/favorites/\';
        fetch(url).then(response => response.json()).then((favorites) => {
            favorite = favorites[id];
            let logoUrl = document.getElementById(roomKey + \'x\' + deviceKey + \'y\' + id).value;
            favorite.channel.logoUrl = logoUrl;
            let content = JSON.stringify(favorite);
            let http = new XMLHttpRequest();
            let purl = \'http://\' + document.getElementById("brainIP").value + \':3000/v1/projects/home/rooms/\' + roomKey + \'/devices/\' + deviceKey + \'/favorites/\' + id;
            http.open("POST", purl, true);
            http.setRequestHeader("Content-type", "application/json");
            http.onreadystatechange = function () {
                if (http.readyState == 4 && http.status == 200) {
                    alert("Image is updated...");
                    document.getElementById(roomKey + \'a\' + deviceKey + \'b\' + id).src = logoUrl;
                } else if (http.readyState == 4 && http.status != 200) {
                    alert("Something went wrong...");
                }
            }
            http.send(content);
            cl(content);
        }).catch(err => {
            document.getElementById("Favorites").innerHTML = "<h1>Something went wrong fetching the favorite...</h1>";
            throw err
        });
    }
        </script>
        
        
    </head>
    <style>
        .inforow {
            border: 2px solid rgb(250, 148, 32);
            background-color: rgb(245, 211, 178);
            border-radius: 4px;
            height: 150px;
            text-align: center;
            margin-bottom: 40px;
        }

        .fieldrow {
            height: 50px;
            background-color: #f9f9f9;
            border: 0px solid #fff;
            border-radius: 10px;
            position: relative;
            margin-bottom: 6px;
        }

        .icon {
            vertical-align: middle;
            max-width: 46px;
            max-height: 46px;
        }

        .iconhelper {
            display: inline-block;
            height: 100%;
            vertical-align: middle;
        }

        .brainip {
            width: 100px;
        }

        .urlinput {
            border: 0px solid #fff;
            border-bottom: 2px solid #ddd;
            background-color: #f9f9f9;
            border-radius: 4px;
            width: 700px;
            left: 70px;
            position: absolute;
            bottom: 2px;
        }

        .channellabel {
            top: 2px;
            position: absolute;
            left: 70px;
            font-family: sans-serif;
            font-size: large;
        }

        .imgbox {
            height: 50px;
            width: 50px;
            text-align: center;
            margin-left: 10px;
        }

        .setbutt {
            left: 800px;
            position: absolute;
            bottom: 14px;

        }

        h1 {
            font-family: sans-serif;
        }
    </style>

    <body>
        <div class="inforow" id="Info">Eigene Icons für Favoriten festlegen.
            <br>Nutzung auf eigenes Risiko.
            <br>
        </div>
        <div class="row" id="Connect">
            <div class="field row">
                <label for="brainIP">Brain IP address: </label>
                <input class="brainip" id="brainIP" type="text" value="" placeholder="192.168.0.10" />
                <button onclick="connect()">
                    <i class=""></i>Connect</button>
            </div>
        </div>
        <div class="row" id="Favorites"></div>
    </body>
    </html>
    '
    ;

    SetValue($htmlbox$html);
    Anschließend das Skript einmal ausführen. Jetzt kannst Du im Webfront mit dieser Variable die Icons einsehen und bei Bedarf austauschen.

    Name:  favicons.png
Hits: 75
Größe:  69.9 KB

  4. #44
    Registriert seit
    Apr 2019
    Ort
    Etelsen bei Bremen
    Beiträge
    95

    Hi Fonzo,
    danke schau ich mir wohl Morgen mal an.

    Noch eine kleine Ergänzung. Wenn "Das Erste" auf Kanal 57 liegt dann wird dafür CHANNEL_57 als action geschickt. Bisher scheitere ich damit mehr als 30 Favoriten anzulegen:-(

    Ralf
    IPS 5.1 Unlimited / Docker / Synology DS415+

  5. #45
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,199

    Zitat Zitat von HarmonyFan Beitrag anzeigen
    Bisher scheitere ich damit mehr als 30 Favoriten anzulegen:-(
    Falls es da eine künstliche Begrenzung gibt, wäre wohl die einzige Möglichkeit eine Liste zu nutzten, dann müste man aber ein NEEO Treiber schreiben das wird ziemlich umständlich.

  6. #46
    Registriert seit
    Apr 2019
    Ort
    Etelsen bei Bremen
    Beiträge
    95

    Hi Fonzo,
    Neustart vom Brain (Tipp von Daniel) hat geholfen.

    Ralf
    IPS 5.1 Unlimited / Docker / Synology DS415+

  7. #47
    Registriert seit
    Apr 2019
    Ort
    Etelsen bei Bremen
    Beiträge
    95

    Standard Debüt log

    Hi,
    Kann man das externded debug flag in den Forward Action Scripten abfragen um das Log File nicht unnötig voll zu müllen?

    Ralf
    IPS 5.1 Unlimited / Docker / Synology DS415+

Ähnliche Themen

  1. SQ Remote
    Von Schneider im Forum Audio & Video, TK-Anlagen, ISDN
    Antworten: 0
    Letzter Beitrag: 01.12.11, 22:22
  2. XBee Remote Commands
    Von bbernhard im Forum IPS-868 / ProJET, XBee, ZigBee, XPort
    Antworten: 4
    Letzter Beitrag: 24.11.10, 23:08
  3. Tastaturanschläge remote senden
    Von Hausautomation im Forum Skripte, PHP, SQL
    Antworten: 12
    Letzter Beitrag: 01.09.09, 11:42
  4. xcomfort Remote
    Von UVoigi im Forum Eaton Xcomfort
    Antworten: 12
    Letzter Beitrag: 29.09.07, 17:14
  5. Designer remote starten
    Von guyabano im Forum Dashboard
    Antworten: 10
    Letzter Beitrag: 01.10.06, 09:56