+ Antworten
Seite 3 von 4 ErsteErste 1 2 3 4 LetzteLetzte
Ergebnis 21 bis 30 von 35
  1. #21
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,279

    180ms...das ist grenzwertig.

    Bekommst du einen eindeutigen Fehler zurück, wenn die SID nicht mehr gültig ist? Wenn ja, dann würde ich z.B. einmal Nachts eine Anmeldung machen und die SID in einer Variable zwischenspeichern. Dann so lange die SID verwenden, bis der Fehler kommt, diesen dann abfangen und automatisch eine neue SID holen, wieder in die Variable speichern und dann den Befehl mit der neuen SID wiederholen. Weißte wie ich meine?


    Hier in diesem Thread kannst du dir noch einiges an Infos "klauen" bzgl. Variablen über ein Skript generieren lassen, Events, Timer, Uhrzeiten, und und und
    IP-Symcon - Wie kann ich... 2.0

    Grüße,
    Chris
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

  2. #22
    Registriert seit
    Aug 2012
    Beiträge
    112

    Habe das versucht mit Funktionen umzusetzen, grundsätzlich geht das auch aber macht für mich irgendwie wenig sinn.
    So habe ich nun eben einen Funktionssammler dem alle Variablen hinterlegt sind, und viele Scripte für die Aufrufe der Funktionen.
    Bisher hatte ich die Funktion gleich in dem jeweiligen Skript.

    Oder mache ich da was falsch und die Aufrufe können auch zusammengefasst in einem Skript sein? Aber woher weiß ich dann welche Funktion ausgeführt werden soll, dazu benötige ich doch wieder einzelne Skripts, welche durch ein Ereignis ausgeführt werden, oder ?!?

  3. #23
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,279

    Abend!

    Jedem möglichen Befehl/Kommando in eine Funktion zu stecken hat mehrere Vorteile, was du noch ganz von alleine merken wirst


    Aber mal ein Beispiel:
    Du hast ein Medion-Skript in dem alle Funktionen stecken. Dieses kann wie gesagt mit "include" eingebunden werden.

    Dann hast du ein weiteres Skript, welches sich um die manuellen Kommandos (WebFront, App, ...) kümmert. In diesem Skript steht ganz oben das include für dein Medion-Skript mit den Funktionen.
    Dann wählst du z.B. per Slider im WebFront die Lautstärke, dann wird diese in eine Integer Variable geschrieben. Diese Variable wird per Ereignis auf Änderung überwacht und startet das erwähnte "Kommando-Skript".
    In diesem Skript fragst du dann z.B. ab "if ($_IPS['EVENT'] == $IDvomEVENTfuerLautstaerke) {" usw. und in dieses IF dann jeweils den Befehl "Medion_SetVolume($_IPS['VALUE']);", um beim Beispiel mit der Lautstärke zu bleiben.

    Dieser Weg hat den Vorteil, dass du jetzt nicht nur die Steuerung über WebFront übersichtlich zusammengefasst hast, sondern zusätzlich noch in beliebige andere Skripte (später z.B. für Sprachausgabe), nur einen include vom Medion-Skript im jeweiligen Skript machen musst und schon kannst du auf deine Funktion deines Medion zurückgreifen.

    Edit: Ein weiterer Vorteile wäre z.B., wenn sich irgendwann durch ein FirmwareUpdate eine der URLs ändert oder ein Befehl, dann muss man das nur an einer Stelle ändern und schon funktionieren alle Skripte/Szenen/Sprachausgaben/... wieder

    Ich hoffe du kannst mir folgen Das ist jetzt auch nur ein möglicher Weg und nicht DER Weg Da hat sicher jeder so seine Vorlieben

    Grüße,
    Chris
    Geändert von Bayaro (18.10.15 um 21:29 Uhr)
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

  4. #24
    Registriert seit
    Aug 2012
    Beiträge
    112

    Guten Abend,
    du hast mich überzeugt, versuche das dann doch nochmal mit den Funktionen.
    Habe das wie von dir vorgeschlagen versucht, doch bei der Ersten Funktion schon ein Problem. Ich bekomme das Gerät EIN geschalten aber nicht AUS geschalten.
    Siehst jemand einen Fehler?

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

Name:	Baum.JPG 
Hits:	66 
Größe:	54.1 KB 
ID:	31195Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	MD_command.JPG 
Hits:	120 
Größe:	49.8 KB 
ID:	31196Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	MD_function.JPG 
Hits:	82 
Größe:	27.9 KB 
ID:	31197

    DANKE

  5. #25
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,279

    Moin!

    Mit $_IPS['VALUE'] übergebst du den Wert, der in der Variable steht.

    Ich denke mal, dass der Befehl für Power-AUS einfach etwas anderes in VALUE stehen haben müsste, als es aktuell der Fall ist!?

    Bau mal im Skript "MD_Functions" in zwischen Zeile 7 und 8 das hier ein:
    PHP-Code:
    IPS_LogMessage("MEDION-TEST""Wert in value = $value"); 
    Und dann bekommst du beim Ausführen eine passende Ausgabe in der IPS-Console im "Meldungen-Fenster", dann weißt du ob der Wert richtig ist für Power-Aus, oder nicht...


    >> Und bitte von Skripten keine Screenshots mehr! Skripte einfach hier rein kopieren und mit dem PHP-Tag "umschließen" Sieht dann aus wie der PHP Code hier im Post So muss man alles neu tippen und kann nicht einfach dein Skript kopieren und bearbeiten...

    Grüße,
    Chris
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

  6. #26
    Registriert seit
    Aug 2012
    Beiträge
    112

    Guten Abend,

    danke für den Hinweis mit LogMessage
    Das Problem lag an dem Befehl $_IPS['Event'], das muss $_IPS['VARIABLE'] verwendet werden.

    So Funktioniert der Code nun.
    PHP-Code:
    <?
    include ('MD_functions.ips.php');
    $IP GetValue(@IPS_GetVariableIDByName("strIP"$IPS_SELF));    // IP vom Medion Gerät
    $PIN GetValue(@IPS_GetVariableIDByName("strPIN"$IPS_SELF));  // PIN vom Medion Gerät
    $SID GetValue(@IPS_GetVariableIDByName("strSID"$IPS_SELF));  // SID vom Medion Gerät

    $PowerEventID = @IPS_GetVariableIDByName("bPower",$IPS_SELF);

    // Medion Ein-/Ausschalten
    if ($_IPS['VARIABLE'] == $PowerEventID)
    {
    setPower($IP$PIN$SID$_IPS['VALUE']);
    IPS_LogMessage("MEDION-TEST""Command Ausschalten wurde aufgerufen");
    }
    ?>
    Grüße Christoph

  7. #27
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,279

    Abend

    Dann hast du ja jetzt eine gute Basis, auf der du weitere Funktionen in dein Medion-Funktionen-Skript einbauen kannst und diese kannst du dann je nach Bedarf überall einsetzen Ob du dann auf Events oder Links schaust und darüber dann irgendwelche Aktionen ausführst, das bleibt dir überlassen

    Wenn du noch ein paar Sachen eingebaut hast, dann poste mal einen Zwischenstand und ich schau gerne nochmal drüber. Aber bisher siehts gut aus

    Grüße,
    Chris
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

  8. #28
    Registriert seit
    Aug 2012
    Beiträge
    112

    OK, dann zeige ich euch hier mal die Scripte.

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

Name:	Baum.JPG 
Hits:	110 
Größe:	92.9 KB 
ID:	31211

    MD Function:
    PHP-Code:
    <?
    // SchaltFunktionen
    //Medion Ein-/Ausschalten
    function setPower($IP$PIN$SID$value)
    {
    $url "http://$IP/fsapi/SET/netRemote.sys.Power?pin=$PIN&sid=$SID&value=$value";
    $result Sys_GetURLContent($url);
    }

    //Medion Lautstärke ändern
    function setVolume($IP$PIN$SID$value)
    {
    $url "http://$IP/fsapi/SET/netRemote.sys.audio.volume?pin=$PIN&sid=$SID&value=$value";
    $result Sys_GetURLContent($url);
    }

    //Medion Mute
    function setMute($IP$PIN$SID$value)
    {
    $url "http://$IP/fsapi/SET/netRemote.sys.audio.mute?pin=$PIN&sid=$SID&value=$value";
    $result Sys_GetURLContent($url);
    }


    //Medion presets ändern
    function setPreControl($IP$PIN$SID$value)
    {
        switch (
    $value) {
        case 
    0:
            
    $url1 "http://$IP/fsapi/SET/netRemote.play.shuffle?pin=$PIN&sid=$SID&value=0";
            
    $url2 "http://$IP/fsapi/SET/netRemote.play.repeat?pin=$PIN&sid=$SID&value=0";
            break;
        case 
    1:
            
    $url1 "http://$IP/fsapi/SET/netRemote.play.shuffle?pin=$PIN&sid=$SID&value=0";
            
    $url2 "http://$IP/fsapi/SET/netRemote.play.repeat?pin=$PIN&sid=$SID&value=1";
            break;
        case 
    2:
            
    $url1 "http://$IP/fsapi/SET/netRemote.play.shuffle?pin=$PIN&sid=$SID&value=1";
            
    $url2 "http://$IP/fsapi/SET/netRemote.play.repeat?pin=$PIN&sid=$SID&value=0";
            break;
        }

    $result1 Sys_GetURLContent($url1);
    $result2 Sys_GetURLContent($url2);
    }

    //Medion source ändern
    function setSource($IP$PIN$SID$value)
    {
    $url "http://$IP/fsapi/SET/netRemote.sys.mode?pin=$PIN&sid=$SID&value=$value";
    $result Sys_GetURLContent($url);
    }

    //Medion Control (0=Stop, 1=Play, 2=Paue, 3=Next, 4=Privious)
    function setControl($IP$PIN$SID$value)
    {
    $url "http://$IP/fsapi/SET/netRemote.play.control?pin=$PIN&sid=$SID&value=$value";
    $result Sys_GetURLContent($url);
    }



    //Informationen und Statusabfragen

    //Medion Power Status
    function getPower($IP$PIN$SID)
    {
    $url "http://$IP/fsapi/GET/netRemote.sys.Power?pin=$PIN&sid=$SID";
    $result Sys_GetURLContent($url);
    return 
    $result;
    }

    //Medion Lautstärke Status
    function getVolume($IP$PIN$SID)
    {
    $url "http://$IP/fsapi/GET/netRemote.sys.audio.volume?pin=$PIN&sid=$SID";
    $result Sys_GetURLContent($url);
    }

    //Medion Mute Status
    function getMute($IP$PIN$SID)
    {
    $url "http://$IP/fsapi/GET/netRemote.sys.audio.mute?pin=$PIN&sid=$SID";
    $result Sys_GetURLContent($url);
    }

    //Medion Titel Status
    function getTitel($IP$PIN$SID)
    {
    $url "http://$IP/fsapi/GET/netRemote.play.info.name?pin=$PIN&sid=$SID";
    $result Sys_GetURLContent($url);
    $result substr($result56, -37);
    return 
    $result;
    }

    //Medion Album Status
    function getAlbum($IP$PIN$SID)
    {
    $url "http://$IP/fsapi/GET/netRemote.play.info.album?pin=$PIN&sid=$SID";
    $result Sys_GetURLContent($url);
    $result substr($result56, -37);
    return 
    $result;
    }

    //Medion Artist Status
    function getArtist($IP$PIN$SID)
    {
    $url "http://$IP/fsapi/GET/netRemote.play.info.artist?pin=$PIN&sid=$SID";
    $result Sys_GetURLContent($url);
    $result substr($result56, -37);
    return 
    $result;
    }

    //Medion Titellänge [ms]
    function getDuration($IP$PIN$SID)
    {
    $url "http://$IP/fsapi/GET/netRemote.play.info.duration?pin=$PIN&sid=$SID";
    $result Sys_GetURLContent($url);
    }

    //Medion aktuelle playtime [ms]
    function getPosition($IP$PIN$SID)
    {
    $url "http://$IP/fsapi/GET/netRemote.play.position?pin=$PIN&sid=$SID";
    $result Sys_GetURLContent($url);
    }

    ?>
    MD_command
    PHP-Code:
    <?
    include ('MD_functions.ips.php');
    $IP GetValue(@IPS_GetVariableIDByName("strIP"$IPS_SELF));    // IP vom Medion Gerät
    $PIN GetValue(@IPS_GetVariableIDByName("strPIN"$IPS_SELF));  // PIN vom Medion Gerät
    $SID GetValue(@IPS_GetVariableIDByName("strSID"$IPS_SELF));  // SID vom Medion Gerät


    $AlbumID = @IPS_GetVariableIDByName("strAlbum"$IPS_SELF);  // Aktuelles Album
    $TitelID = @IPS_GetVariableIDByName("strTitel"$IPS_SELF);  // Aktueller Titel
    $ArtistID = @IPS_GetVariableIDByName("strArtist"$IPS_SELF);  // Aktueller Künstler
    $DurationID = @IPS_GetVariableIDByName("iDuration"$IPS_SELF);  // Aktueller Künstler
    $PositionID = @IPS_GetVariableIDByName("iPosition"$IPS_SELF);  // Aktueller Künstler

    $PowerEventID = @IPS_GetVariableIDByName("bPower",$IPS_SELF);
    $PreControlEventID = @IPS_GetVariableIDByName("iPreControl",$IPS_SELF);
    $SourceEventID = @IPS_GetVariableIDByName("iSource",$IPS_SELF);
    $VolumeEventID = @IPS_GetVariableIDByName("iVolume",$IPS_SELF);
    $MuteEventID = @IPS_GetVariableIDByName("bMute",$IPS_SELF);
    $ControlEventID = @IPS_GetVariableIDByName("iControl",$IPS_SELF);


    // Medion Ein-/Ausschalten (1=EIN, 0=AUS)
    if ($_IPS['VARIABLE'] == $PowerEventID)
    {
    setPower($IP$PIN$SID$_IPS['VALUE']);
    }

    // Medion PreControl anpassen (0=Normal, 1=Repeat all, 2=Shuffle)
    if ($_IPS['VARIABLE'] == $PreControlEventID)
    {
    setPreControl($IP$PIN$SID$_IPS['VALUE']);
    }

    // Medion Quelle auswählen (0=Internetradio, 1=Musikplayer, 2=DAB, 3=FM-Radio, 4=AUX)
    if ($_IPS['VARIABLE'] == $SourceEventID)
    {
    setSource($IP$PIN$SID$_IPS['VALUE']);
    }

    // Medion Lautstärke ändern (0 - 20)
    if ($_IPS['VARIABLE'] == $VolumeEventID)
    {
    setVolume($IP$PIN$SID$_IPS['VALUE']);
    }

    // Medion Mute (1=Mute, 0=unmute)
    if ($_IPS['VARIABLE'] == $MuteEventID)
    {
    setMute($IP$PIN$SID$_IPS['VALUE']);
    }

    // Medion Control (0=Stop, 1=Play, 2=Paue, 3=Next, 4=Previous)
    if ($_IPS['VARIABLE'] == $ControlEventID)
    {
    setControl($IP$PIN$SID$_IPS['VALUE']);
    }


    // Informationenund Status Abfragen

    // Titelinformationen
    if ($_IPS['VARIABLE'] == $ControlEventID)
    {
    $value getAlbum($IP$PIN$SID);
    setvalue($AlbumID$value);
    $value getTitel($IP$PIN$SID);
    setvalue($TitelID$value);
    $value getArtist($IP$PIN$SID);
    setvalue($ArtistID$value);
    }


    ?>
    Soweit ich das getestet habe funktioniert auch alles

  9. #29
    Registriert seit
    May 2010
    Ort
    Kreis Unna (NRW)
    Beiträge
    188

    Hi,

    ich weiß deine letzte Antwort auf das Thema ist schon einige Zeit her, aber evtentuell kannst du mir ja trotzdem helfen.
    Ich hab alle Skripte und Variablen jetzt wie in deinem Screenshot angelegt, aber ich kann nix bedienen und bekomme beim ausführen der "MD Command" immer Fehler.

    Was mach ich falsch bzw wo muss ich bei den Variablen welche Aktion setzten ? Ich hab dir gerade mal unten ein paar Bilder angehängt, wie der aktuelle Stand bei mir ist. Wie gesagt deine Skripte hab ich 1 zu 1 kopiert und auch korrekt benannt.

    Dankeschön.

    Gruß Philip

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

Name:	WebUI.JPG 
Hits:	33 
Größe:	89.5 KB 
ID:	46725

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

Name:	Fehler.JPG 
Hits:	33 
Größe:	59.4 KB 
ID:	46726

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

Name:	Variablen.JPG 
Hits:	35 
Größe:	97.0 KB 
ID:	46727

  10. #30
    Registriert seit
    Aug 2012
    Beiträge
    112

    Hi,

    laut deinem Screenshot hast du die MD_functions nicht umbenannt. Diese heißt noch 58637.ips.php
    Versuche mal diese in MD_functions.ips.php umzubenennen und starte das script erneut.

Ähnliche Themen

  1. X4-Life Schlüsselfinder xmarty mit IPS steuern.
    Von tasmanie im Forum Skripte, PHP, SQL
    Antworten: 0
    Letzter Beitrag: 30.03.15, 17:55
  2. FS20 IRF mit IP-Symcon steuern
    Von hofi61 im Forum Sonstige Funkkomponenten / Wetterstationen
    Antworten: 8
    Letzter Beitrag: 22.07.14, 09:37
  3. IP-Symcon mit PHP über Joomla steuern
    Von sid im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 3
    Letzter Beitrag: 31.01.10, 21:45
  4. FBH Steuern mit IP-Symcon
    Von kollaps im Forum Ideen & Anregungen
    Antworten: 10
    Letzter Beitrag: 04.03.09, 22:24
  5. Media Centen mit ip Symcon steuern ??
    Von Professorakiera im Forum Ideen & Anregungen
    Antworten: 16
    Letzter Beitrag: 10.04.07, 17:41