Auswahl Liste funktioniert nicht

Ich würde gerne Radiosender per Webfront umschalten. Dazu gibt es eine Variable vom Typ Integer die im Webfront angezeigt wird. Wenn ich auf das Icon klicke geht eine Liste auf.

Allerdings ändert sich die Variable nicht wenn ich auf einen Listeneintrag klicke. Was mache ich da falsch oder muss ich da noch irgendwas zusätzlich konfigurieren? Ich nutzte Chrome als Browser.

Warum sollte sie sich ändern?
Wenn die dahinter liegende Aktion die Variable nicht ändert, wird halt der alte Wert angezeigt.
Das hat auch nix mit Modulen zu tun, sondern diese Liste gibt es immer im WebFront.
Michael

Das ist ja das Problem ich verstehe eben nicht warum die Aktion nicht greift der Rest lässt sich ja auch einwandfrei schalten.


public function RequestAction($Ident, $Value)
    {
        $devicenumber = $this->ReadPropertyString('Devicenumber');
		$this->SendDebug("Echo Remote:","Request Action trigger device ".$devicenumber." by Ident ".$Ident,0);
		if($Ident == "EchoRemote")
		{
			switch($Value) 
			{
                    case 1: // Rewind30s
						$this->Rewind30s(); 
						$this->SendDebug("Echo Remote:","Request Action Rewind 30s",0);
                        break;
                    case 2: // Previous
                        $this->Previous();
						$this->SendDebug("Echo Remote:","Request Action Previous",0);
                        break;
                    case 3: // Pause / Stop
                        $this->Pause();
						$this->SendDebug("Echo Remote:","Request Action Pause",0);
                        break;
                    case 4: // Play
                        $this->Play();
						$this->SendDebug("Echo Remote:","Request Action Play",0);
                        break;
					case 5: // Next
                        $this->Next();
						$this->SendDebug("Echo Remote:","Request Action Next",0);
                        break;
					case 6: // Forward30s
                        $this->Forward30s();
						$this->SendDebug("Echo Remote:","Request Action Forward 30s",0);
                        break;		
			}
		}
		if($Ident == "EchoShuffle")
		{
			$this->Shuffle($Value);
			$this->SendDebug("Echo Remote:","Request Action Shuffle",0);
		}
		if($Ident == "EchoRepeat")
		{
			$this->Repeat($Value);
			$this->SendDebug("Echo Remote:","Request Action Repeat",0);
		}
		if($Ident == "EchoVolume")
		{
			$this->SetVolume($Value);
			$volume = $Value*100;
			$this->SendDebug("Echo Remote:","Request Action set Volume to ".$volume,0);
		}
		if($Ident == "EchoTuneInRemote_".$devicenumber)
		{
			$stationid = GetTuneInStationID($Value);
			$this->SendDebug("Echo Remote:","Request Action set Station to ".$stationid,0);
			$this->TuneIn($stationid);
		}
		
		$objid = $this->GetIDForIdent($Ident);
		SetValue($objid, $Value);
		$this->SendDebug("Echo Remote:","Set value of variable with object ID ".$objid." and ident ".$Ident." to ".$Value,0);
    }

Geschaltet werden soll wenn $Ident == „EchoTuneInRemote_“.$devicenumber
Ich bekomme ja aber noch nicht mal eine Debug Message. Also daher verstehe ich nicht was da falsch läuft.

P.S.: Jetzt wo ich es ins Forum poste sehe ich zumindest selber das da ein $this fehlt mal sehen ob das die Ursache war, ich melde mich.

Was sagt die Console den bei der Variable bezüglich Eigene & Standardaktion?
Michael

So Fehler gefunden, wie oben schon gesagt hatte ich ein $this vergessen.

Statt

$stationid = GetTuneInStationID($Value);

eben

$stationid = $this->GetTuneInStationID($Value);

dann klappt das auch. Da schließt sich bei mir noch einen Frage an, muss man solche Flüchtigkeitsfehler im Code finden oder gibt es eine Möglichkeit das IPS da auch eine Fehlermeldung ausspuckt damit man den Fehler schneller findet?

Ein guten Editor nutzen?
Der hätte dir dann keinen Vorschlag unterbreitet oder auch gesagt er kennt die Funktion nicht, was mich immer stutzig macht.
Ansonsten hilft nur alles haarklein zu testen und dabei das Log und Debug im Auge zu behalten.
Bei dir hätte im WF eigentlich ein Fehler kommen müssen, dass die Funktion nicht bekannt ist.
Michael

Ich weis das wurde schon an anderer Stelle andiskutiert aber kannst Du da einen Editor empfehlen der so was kann oder ist da dann gleich eine IDE notwendig?

Ich meinte eher auch IDE.
Reine Editor mit diesen Funktionen gibt es glaube ich auch nicht.
Aber man muss ja nicht alles von der IDE nutzen :slight_smile:

Egal ob nun PHPStorm, Netbeans oder whatever. Auf jeden Fall hilft es ungemein.
Michael

Nutzt jemand vielleicht Atom und weis ob das da auch mit geht? Ansonsten müsste ich mir doch mal PHPStorm oder so anschauen.

Ich fände ja mal ein Tutorial der unterschiedlichen IDE bzw. fortschrittlichen Editoren und die Anbindung in IPS ganz nützlich.

Anbindung ist gut. Zu 99% nutze ich das Teil standalone. Und ein zweimal mit xDebug ausprobiert.
Git-Einbindung ist nett, aber auch da nutze ich andere Tools.
Einfach mal ausprobieren was einem gefällt und in deine Infrastruktur passt.
Michael

Meinst Du mit Teil PHPStorm oder was anderes wie Atom?

Ich nutze NetBeans, gerade wegen Sonne wieder die Darstellung von Dracula auf normal umgestellt, sonst ist das so dunkel :wink:

Michael

Ich habe heute mal Atom ausprobiert und dort konnte ich keine Möglichkeit finden die zusätzliche php Datei einzubinden, damit die IPS Funktionen und IPS Klasse vorhanden sind.

paresy

Aber mit Netbeans bzw. PHPStorm funktioniert es, das auch die IPS Funktionen validiert werden ja?

Jupp. Schau mal hier: PhpStorm

paresy

Cool, probiere die Befehlsliste heute Abend mal in Eclipse zu importieren, nutzen das in der Uni viel als Alternative zu den Produkten von JetBrains.

Basti