Hallo zusammen,
seit kurzem gibt es die FS20IRB: ELV FS20 Internet Radio Box FS20 IRB, Komplettbausatz | ELV-Elektronik .
Da es eine Weboberfläche für die Steuerung hat, schreit es danach von IPS gesteuert zu werden
Die ELV-Entwickler haben es beim Stromsparen aber leider etwas zu gut gemeint.
Das LAN-Port ist im StandBy deaktiviert :mad:
Also ist das Gerät im StandBy über LAN nicht erreichbar und kann daher auch so nicht eingeschaltet werden.
Die jenigen die eine FHZ haben können es natürlich per FS20-Befehl einschalten und dann die http-Kommandos schicken.
Ich wollte es aber rein über http steuern und dazu muss das LAN-Port immer an sein.
Das lässt sich eigentlich recht einfach bewerkstelligen:
1.) „T3“ entfernen und Pins 2-3 brücken.
2.) „T4“ und „T5“ entfernen.
„T3“ wird über den FS20-Atmel gesteuert und unterbricht im StandBy die Stromzufuhr zu den restlichen Komponenten.
„T4“ und „T5“ deaktivieren den Vorverstärker und sind im StandBy durchgeschaltet, also entfernen und der Vorverstärker bleibt an.
Anbei ein Bild vom Umbau…
Und hier mein Steuerscript für die FS20 IRB.
Sollte jemandem etwas in dem Script bekannt vorkommen, könnte es daran liegen das es aus diversen anderen Scripten aus dem Forum zusammengeschnippelt ist
An dieser Stelle danke an die Vordenker!
Das inklude-Script (fs20irb.ips.php):
<?php
function gethttp($url,$postData,$user,$pass)
{
$handle = curl_init($url);
curl_setopt_array($handle, array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 15,
CURLOPT_TIMEOUT => 15,
CURLOPT_MAXREDIRS => 10,
CURLOPT_POST => true,
CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
CURLOPT_USERPWD => $user.':'.$pass,
CURLOPT_POSTFIELDS => $postData
) );
$result = curl_exec($handle);
$errNo = curl_errno($handle);
$errMsg = curl_error($handle);
curl_close($handle);
}
class fs20irb
{
var $ip;
var $user;
var $password;
function fs20irb($irb_cfg)
{
$this->ip = $irb_cfg["ip"];
$this->user = $irb_cfg["user"];
$this->password = $irb_cfg["password"];
}
function power_up()
{
$post_url = "http://".$this->ip."/index.htm";
$post_Data = 'btnStationStart=Starten';
gethttp($post_url,$post_Data,$this->user,$this->password);
IPS_Sleep(200);
$post_Data = 'btnAmplifierSwitch=Einschalten';
gethttp($post_url,$post_Data,$this->user,$this->password);
}
function power_down()
{
$post_url = "http://".$this->ip."/index.htm";
$post_Data = 'btnAmplifierSwitch=Ausschalten';
gethttp($post_url,$post_Data,$this->user,$this->password);
IPS_Sleep(200);
$post_Data = 'btnStationStop=Stoppen';
gethttp($post_url,$post_Data,$this->user,$this->password);
}
function volume_up()
{
$post_url = "http://".$this->ip."/index.htm";
$post_Data = 'btnVolumeUp=Lauter';
gethttp($post_url,$post_Data,$this->user,$this->password);
}
function volume_down()
{
$post_url = "http://".$this->ip."/index.htm";
$post_Data = 'btnVolumeDown=Leiser';
gethttp($post_url,$post_Data,$this->user,$this->password);
}
function station_next()
{
$post_url = "http://".$this->ip."/index.htm";
$post_Data = 'btnStationNext=Nächster';
gethttp($post_url,$post_Data,$this->user,$this->password);
}
function station_prev()
{
$post_url = "http://".$this->ip."/index.htm";
$post_Data = 'btnStationPrev=Vorheriger';
gethttp($post_url,$post_Data,$this->user,$this->password);
}
function mode_next()
{
$post_url = "http://".$this->ip."/index.htm";
$post_Data = 'btnPlayerModeNext=Nächster';
gethttp($post_url,$post_Data,$this->user,$this->password);
}
function mode_prev()
{
$post_url = "http://".$this->ip."/index.htm";
$post_Data = 'btnPlayerModePrev=Vorheriger';
gethttp($post_url,$post_Data,$this->user,$this->password);
}
function station_id($st_id)
{
$post_url = "http://".$this->ip."/stations.htm";
$post_Data = 'hidStationIndex='.$st_id.'&btnPlay=Radio';
gethttp($post_url,$post_Data,$this->user,$this->password);
}
}
?>
Die Steuerbefehle:
<?
require("fs20irb.ips.php");
$irb_cfg["ip"]="192.168.0.46";
$irb_cfg["user"]="admin";
$irb_cfg["password"]="admin";
$irb=new fs20irb($irb_cfg);
// $irb->power_up();
// $irb->power_down();
// $irb->volume_up();
// $irb->volume_down();
// $irb->station_next();
// $irb->station_prev();
// $irb->mode_next();
// $irb->mode_prev();
// $irb->station_id(86);
?>