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

    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.3 Unlimited / Docker / Synology DS415+

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

    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.3 Unlimited / Docker / Synology DS415+

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

    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: 140
Größe:  69.9 KB

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

    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.3 Unlimited / Docker / Synology DS415+

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

    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
    263

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

    Ralf
    IPS 5.3 Unlimited / Docker / Synology DS415+

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

    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.3 Unlimited / Docker / Synology DS415+

  8. #48
    Registriert seit
    Apr 2019
    Ort
    Etelsen bei Bremen
    Beiträge
    263

    Hi,
    es gibt noch mehr Kommandos die von der Neeo geschickt werden:
    "FUNCTION RED (LONG PRESS)"
    "FUNCTION GREEN (LONG PRESS)"
    "FUNCTION YELLOW (LONG PRESS)"
    "FUNCTION BLUE (LONG PRESS)"

    Ich benutze diese Funktionen sehr gerne bei meinen E2-Boxen. Langer Tastendruck bei der Neeo und Forwardaction geht leider nur bei 2 Tasten.

    btw. mit letzter Firmware geht tatsächlich Multibrain auch im Zusammenhang mit dem Neeo Modul, d.h. Brain 1 schickt an Brain 2 und der schickt dann ans Modul.

    Ralf
    IPS 5.3 Unlimited / Docker / Synology DS415+

  9. #49
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    6,530

    Zitat Zitat von HarmonyFan Beitrag anzeigen
    Ich benutze diese Funktionen sehr gerne bei meinen E2-Boxen. Langer Tastendruck bei der Neeo und Forwardaction geht leider nur bei 2 Tasten.
    Wie funktioniert das genau mit Longpress? Legst Du die Befehle ins Display unter Favoriten? Auf die wenigen Tasten der NEEO kann man ja keine Befehle legen oder habe ich da was übersehen?
    Leider hat die NEEO selber ja keine Hardware Tasten für Farben und so was wie Play, Stop habe ich auch immer irgendwie vermisst. Aber wenn man sich noch mehr Tasten wünscht hätte man ja am Schluss fast eine Harmony Elite . SnapAV, der jetzige Eigentümer von ehemals NEEO, verkauft im übrigen Logitech als Lösung.
    Wäre ja wirklich schön gewesen es hätte mal was als bezahlbare Alternative zur Logitech gegeben mit mehr Möglichkeiten.

  10. #50
    Registriert seit
    Apr 2019
    Ort
    Etelsen bei Bremen
    Beiträge
    263

    Moin,
    Zitat Zitat von Fonzo Beitrag anzeigen
    Wie funktioniert das genau mit Longpress? Legst Du die Befehle ins Display unter Favoriten?
    Ja aufs Display aber nicht bei den Favoriten. Anders geht es ja leider nicht:-(

    Auf die wenigen Tasten der NEEO kann man ja keine Befehle legen oder habe ich da was übersehen?
    Nein Du scheinst nichts übersehen zu haben. Mit der Neeo-App habe ich mich aber noch nicht so viel beschäftigt.

    Wäre ja wirklich schön gewesen es hätte mal was als bezahlbare Alternative zur Logitech gegeben mit mehr Möglichkeiten.
    ich bin von der Entwicklung auch ein wenig enttäuscht. Wäre ich Mitentwickler hätte ich vermutlich mehr Arbeit in die Software investiert. Mir fehlt z.B. eine LANG-Erkennung bei allen Tasten und vielleicht auch im Display und beim Display wäre was in Richtung Pronto was Flexibilität angeht sehr sehr nett gewesen.

    Ralf
    IPS 5.3 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