RpcTools for IP-Symcon

Ich stelle euch heute meine RpcTools vor.

Damit ist es möglich diverse im Netzwerk vorhandene Geräte wie TV, Verstärker, Dreambox, CCU ect, über die Soap Schnittstelle zu steuern.

Enthalten sind ein Konfigurator Modul das im Netzwerk vorhandene Geräte erkennt
und ein einfaches erstellen von Gerätespezifischen Modulen ermöglicht,
sowie ein Generic und ein Media Modul das zur Steuerung der Geräte dient.

Eine nähere Beschreibung findet ihr in der README_DE.md Datei.
Module Link GitHub - softbar/RpcTools: RpcTools for IP-Symcon

Da ich die Module, gefühlte 1000 mal, mit der IP-Symcon Version 4.3, 5.0 und 5.1
getestet habe und bei mir im Netzwerk leider nichts neues mehr zu finden ist, kann
ich jedoch nicht ausschließen das es hier und da in anderen Netzwerken bzw mit
anderen Geräten Probleme gibt.

Alle Test liefen jedoch unter einem Windows Betriebssystem. Wäre Interessant zu wissen ob es auch unter Linux läuft.

Wenn es für mich notwendig wird Fehler zu finden, dann benötige ich den Inhalt des
Verzeichnisses RpcTools/libs/discovercache als ZIP Datei. Falls der Ordner leer ist
überprüfe bitte ob der Zwischenspeicher in den Konfigurator Einstellungen aktiviert
ist. Danach bitte „Alle Geräte neu finden“ klicken. Wenn der Ordner dann immer noch
leer ist, dann wurden leider keine Geräte erkannt.

Ich wünsche viel Spass beim ausprobieren.

Module Link GitHub - softbar/RpcTools: RpcTools for IP-Symcon

Hallo Tierfreund,

kannst du deinen Eintrag noch um ein paar Screenshots oder ein Video erweitern wie du das ganze dann nutzt?

Beste Grüße

Anleitungen sind nun wirklich nicht meine stärke aber ich hoffe ihr kommt damit zurecht :confused:

Das einbinden der Module von GIT Hub überspringe ich gleich …
und nach dem einbinden der Module den RpcConfigurator hinzufügen

Beim ersten Start des Konfigurators , oder wenn keine Geräte gefunden wurden, erscheint die Start Konfiguration. Diese kann auch eingezeigt werden wenn die Option „Einstellungen…“ markiert ist.
Hier bitte darauf achten das unter 1 die IP der Netzwerkkarte gewählt ist auf der auch die console erreichbar ist. Normalerweise ist es die IP des Rechners auf dem IP-Symcon läuft.
Punkt 2 kann die login daten für die Fritzbox enhalten damit diese und die AddOnes gleich richtig konfiguriert werden wenn die Module eingerichtet werden.
Danach Punkt 3 klicken und einen Moment warten und mit warten meine ich warten :slight_smile: zwischen 10 und … sekunden je nach einstellungen des Timeouts im Konfigurator.
In der Windows Console das Formular schliesen und neu öffnen, im Webfront sollte der Autorefresh das Formular aktullisieren.

Nun sehen wir die Liste , zumindes bei mir :wink: , der gefundenen Geräte. Wird immer wieder die Start Konfiguration angezeigt dann versagt leider meine Geräte Erkennung oder du hast den Button „Neue Geräte erkennen“ nicht geklickt.
Zwischen dem Listmodus und der Konfiguration wird ganz oben am roten pfeil, umgeschaltet.
Punkt 1 . Gerät erstellen , erstellt eine Generic/Media oder AddOne Instance anhand der gewählten Eigenschaften aus der Liste.
Punkt 2 . Erstellt immer eine Generic Rpc Instance
Punk 3. Findet neue Geräte und fügt diese hinzu
Punk 4. Wie 3 löscht jedoch die Liste vorher
ANMERKUNG Manchmal ist es erforderlich erneut auf „neue Geräte erkennen“ zu klicken, wenn der Timeout unter 5 Sekunden ist. Die voreingestellten 3 Sekunden reichen in manchen fällen nicht aus um alle Geräte zu erkennen. Ich habe den Wert jedoch absichtlich so niedrig eingestellt da sonnst jeder denkt … abgestürzt :mad:

Wie man erkennen kann sind bei mir mehrere Fritzbox einträge vorhanden. Das hat den hintergrund verschiedene Instance Typen für einen Host erstellen zu können.
Beim erkennen der Geräte wird nach 2 Klassen spezifiziert, einmal Generic und dann Media Geräte. Media Geräte sind all diejenigen die Funktionen wie Get/SetVolume oder Get/SetMute ect. enthalten alle anderen sind erstmal Generic Geräte.
Im zweiten schritt werden Sondergeräte ermittelt wie Fritzbox,HomeMatic CCU und Dreambox.
Die erkannten eigenschaften der Geräte stehen in der Spalte Eigenschaften.
Sind die RpcTools Zusatz module https://github.com/softbar/RpcAddOnes installiert dann erscheinen auch mehrere Einträge in der Liste zum gleichen Gerät.

Hier eine übersicht einiger Geräte

Hier das Generic Modul

und das Media Modul

Hier dir README_DE

RpcTools für IP-Symcon

  • Benötigt IP-Symcon Version 4.3 oder größer

# Konfigurator Module

Durchsucht das Netzwerk nach Rpc Geräten
Sondermodule
1. Homematic CCU
2. Enigma2 WebInterface
3. Fritzbox (see Add One Modules)

Arbeitet wie folgt:

Die Suche nach Geräten im Netzwerk dauert zwischen 5 und 180 Sekunden abhängig
von der Timeout-Einstellung im Konfigurator und der Anzahl gefundener Geräte.

Das Ergebnis ist, dass die lokale Windows-Konsole zu hängen scheint, ist aber nicht so :stuck_out_tongue:

In der Webfront-Konsole kann man den Fortschritt im Nachrichtenprotokoll verfolgen.

Mit dem RpcConfigurator können neue Geräte einfach gesucht und erstellt werden.
Wenn dein Gerät nicht in der Liste angezeigt wird und Du die Gerät Beschreibungs-XML-Datei-URL kennst,
dann kannst du entweder eine allgemeines oder ein Multimedia-Module erstellen
und die vollständige URL als HOST eingeben. Das Modul versucht dann, sich selbst zu konfigurieren.

  • HINWEIS Wenn Du mehrere URLs angeben möchtest, dann werden diese entweder als Zeichenfolge durch Komma getrennt oder als einfaches Array übergeben

  • Beispiel Urls

    • http ://fritz.box:49000/tr64desc.xml
    • http ://192.168.112.61:8000/serverxml.xml, http ://192.168.112.61:8080/description.xml
    • homematic.xml für CCU
    • enigma2.xml für DreamBox Enigma2 WebInterface

Alle Module beinhalten Timer Funktionen zum aktualisieren der Statusvariablen , mit Ausnahme des RPCGENERIC Moduls .
Es gibt 2 Timermodes UPDATE und OFFLINE die jeweils getrennte werte haben können, dies bedeutet
wenn das Gerät online ist wird der Status alle 15min aktualisiert , wenn es offline ist (TV ausgeschaltet) findet
die Prüfung / Aktualisierung nur alle 2 Stunden statt solange bis das Gerät wieder online ist.

Alle Module exportieren die Funktionen xxx_GetApi und xxx_GetApiInfo

-xxx_GetApi() gibt ein RpcApi Objekt zurück, mit dem alle weiteren Befehle an das Gerät gesendet werden können.
-xxx_GetApiInfo() Liefert ein Array mit Informationen zur API

Generic RPC Module

API zum Aufrufen aller vom Gerät erkannten Methoden Es wird nur eine Variable für den Status erstellt

Arbeitet:

Dieses Modul exportiert zusätzlich die Funktionen RPCGENERIC_CallMethod

  • RPCGENERIC_CallMethod(IpsInstanceID,FunctionName, Kommagetrennter String mit Parametern)

die Syntax entspricht $api->__call(FunctionName, Parameter ) mit dem Unterschied das die Parameter nicht als Array sondern als Komma-getrennter String übergeben.

  • RPCGENERIC_CallApi(IpsInstanceID,‚SetVolume‘,„0,Master,10“)
  • RPCGENERIC_CallApi(IpsInstanceID,‚GetVolume‘,„0,Master“)
    oder
  • $api = RPCGENERIC_GetApi(IpsInstanceID)
  • $volume=$api->GetVolume(0,„Master“)
  • $api->SetVolume(0,„Master“,$volume)

Der Aufruf über das RpcApi Objekt $api ist in jedem fall bei mehreren, aufeinander folgenden ,aufrufen sinnvoll da nicht , wie bei xxx_GetApi(IpsInstanceID), bei jedem Aufruf das Module neu erstellt wird.

Darüber hinaus ist es möglich, Anrufe direkt an einen Dienst zu richten. Da einige Rpc-Geräte wie zb die Fritzbox
mehrere gleichnamige Funktionen enthält, ist es notwendig, den Dienstnamen beim Aufruf anzugeben. Das passiert wie folgt

  • $api->__ call („DeviceInfo1.GetInfo“, Array mit Parametern)
    oder
  • $api->{„DeviceInfo1.GetInfo“}(Parameter,Parameter…)

Multimedia RPC Module

Liefert, abhängig vom Gerät, Standardmethoden für 
1. Volume, Mute (Generic)
2. Bass, Loudness, Trebble (sonos, ect..)
3. Play,Pause,Stop,Next,Previous (Generic)
4. Color,Brightness,Sharpness, Contrast (TV )

Arbeite:
Dieses Modul exportiert zusätzlich die Funktionen

  • RPCMEDIA_RequestUpdate aktualisiert alle Status variablen
  • RPCMEDIA_WriteValue setzen von Status variablen

Da die Rpc Geräte InstanceID normalerweise 0 ist, muss diese Variable beim Aufruf nicht angegeben werden
ebenso die Variable Channel . Diese Werte beim Aufruf automatisch hinzugefügt.

Daher ist auch der Aufruf mit $api->GetVolume() oder $api->SetVolume(10) möglich.

  • $api = RPCMEDIA_GetApi(IpsInstanceID)
  • $api-> SetVolume (NewVolume)
  • $volume=$api->GetVolume ()

oder

benutze die Funktion RPCMEDIA_WriteValue um Status Variablen zu ändern.

  • RPCMEDIA_WriteValue (IpsInstanceID, ‚VOLUME‘, 10) sets the volume to 10

  • RPCMEDIA_WriteValue (IpsInstanceID, ‚PLAYSTATE‘, value) wird zur Steuerung der Wiedergabe verwendet, wobei folgende Werte möglich sind:

    • 0: Stop
    • 1: Pause
    • 2: Play
    • 3: Weiter
    • 4: Zurück

Anmerkung

Um die Konfigdateien der Geräte im Cache klein zu halten , werden nicht benötigte Funktionen und Statusvariablen beim verarbeiten der XML Dateien ignoriert.
Wer tiefer eintauchen möchte findet alles dazu in der discrover.inc Datei, außerdem habe ich die Module im Quellkode (für meine Verhältnisse lach ) gut dokumentiert.

Zusatz Module

findest du hier https://github.com/softbar/RpcAddOnes

LG Xaver

Ich immer nur diese Bild ?

? Ich sehe alle bilder ( Firefox )

Nein . Das ist das Bild bei mir.
Hab kein Bild mit
Geraet erstellen
etc.

:slight_smile: In der Tat , der Button fehlt . Was für eine IP-Symcon Version ?

Als Tipp. Das Update der liste bzw Discover der Geräte ist auch mit dem Befehl

IPS_RequestAction( ConfiguratorInstanceID, „DISCOVER“,true) true list neu erstellen, false list aktuallisieren

möglich.

Aber der Button darf trotzdem nicht fehlen :mad::confused:

Habe gerade gesehen :)… Der haken Einstellungen Anzeigen ist gesetzt. Dann bitte entfernen und die Liste erscheint.

Ist villeicht etwas verwirrend :confused: möchte Platz im Fenster sparen daher nicht alles anzeigen sondern umschalten.

LG Xaver

AaH
Jetzt seh ich die Liste. Das sollte besser dokumentiert werden :wink:

Hast recht, habe den Text angepasst zu : „Check for settings, uncheck for device list“: „An=Einstellungen oder Aus=Geräteliste anzeigen“

LG

Hallo Tierfreund,

es ist schon ein Cooles Modul. Danke für die Bereitstellung :smiley:

Eine Frage habe ich aber.

in der Instanz „FritzCallmon“ steht unten (Anrufliste - Aktualisierung, nur wenn eine übergeordnete Instant verbunden ist"
welche Instanz?
Ist es möglich im WebFront bei Anruf eine „WFC_SendNotification“ Abzusetzen?
Oder eine WFC_PushNotification?

Gruß

EDIT:
Habs gefunden :o
Läuft Super

Danke :cool: Wenn es vorschläge zum besseren Verständnis der Module gibt oder etwas fehlt, dann bitte schreiben :slight_smile:

Hallo Tierfreund,

Habe SYMBOX
FRITZ!Box 7590
Webkonsole

So sieht es bei mir aus.

IP der Netzwerkkarte lässt sich nicht eintragen.
Deswegen werden die Variablen nicht aktualisiert.(Gehe ich davon aus)
Kann mann da etwas machen.
Gruss

Klar kann man da was machen, ich wede morgen … Ähmm :confused: ich meinte nachher :slight_smile: , dafür eine Änderung machen.

EDIT: Änderungen für Konfigurator sind online

Hast du einen gültigen Benutzer und Passwort angegeben ?
In jedem meiner module gib es , im debug fenster, zur zeit jede menge infos oder fehlermeldungen !

LG Xaver

Moin,

Modul habe ich eben Aktualisiert.

Rpc Configurator (Wo Antwort auf IP steht habe ich IP von SimBox eingetragen).

Anmeldenahme und Passwort von FritzBox eingetragen.

Hier ist der DEBUG von FRIZT STATUS

Es läuft einfach nicht:banghead:

Hi,

hast mal Probiert den oberen Schalter im Konfigurator auf AUS zu Stellen?

Bei mir wird auch keine IP angezeigt. (Noch kein Update gemacht) Fritzbox funktioniert aber.

Gruß

Hallo sewo,

Ja Konfigurator auf AUS zu Stellen habe ich auch probiert.(et tut sich einfach nicht).

Habe heute Das Modul auch aktualisiert.
Jetzt kann mann IP Adresse eintragen.
Muss ich vielleicht etwas bestimmtes in fritzbox freischaltte?
Der Modul zeigt auch keine Fehler.

Hi, sewo

Hast du Windows Konsole oder Webbasierte Verwaltungskonsole?