XML-RPC: Ermittlung des vom Benutzer vergebenen Device Namen

Nutzung von XML RPC, Remote Script, JSON RPC, XMLAPI

Moderator: Co-Administratoren

Antworten
bumaas
Beiträge: 128
Registriert: 29.03.2010, 16:40
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

XML-RPC: Ermittlung des vom Benutzer vergebenen Device Namen

Beitrag von bumaas » 18.01.2018, 19:02

Hallo,

ich möchte gerne über die XML-RPC Schnittstelle, den vom Benutzer vergebenen Namen zu einem Device herausfinden. Welche Methode muss ich da nutzen?

Kann mir bitte jemand auf die Sprünge helfen? Ich habe es mit getAllMetaData versucht:

Code: Alles auswählen

<methodCall>
<methodName>getAllMetadata</methodName>
<params>
<param>
<value><string>HEQ0004711:0</string></value>
</param>
</params>
</methodCall>
Aber da bekomme ich immer eine Fehlermeldung:

Code: Alles auswählen

<methodResponse>
    <fault>
        <value>
            <struct>
                <member>
                    <name>faultCode</name>
                    <value>
                        <i4>-1</i4>
                    </value>
                </member>
                <member>
                    <name>faultString</name>
                    <value>Failure</value>
                </member>
            </struct>
        </value>
    </fault>
</methodResponse>
Vielen Dank schon mal für eure Hilfe!

Burkhard

Benutzeravatar
anli
Beiträge: 4326
Registriert: 10.06.2009, 14:01
Wohnort: 20 Min. nördlich von Hannover und bei Bremen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: XML-RPC: Ermittlung des vom Benutzer vergebenen Device N

Beitrag von anli » 19.01.2018, 12:25

Hallo Burkhard,

wen fragst Du nach dem Namen? Vermutlich rfd oder hs485d, vielleicht auch den HMIPServer. Da stehen die leider nicht drin. Die Namen, Raum-/Gewerkszuordnung etc. stehen nur in der Logikschicht. Von dort bekommst Du sie über die RemoteScript-Schnittstelle mit einem Rega-Skript.
Herzliche Grüße, anli

Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.

Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)

Einsteiger-Hilfeerweiterter Skript-Parser

bumaas
Beiträge: 128
Registriert: 29.03.2010, 16:40
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: XML-RPC: Ermittlung des vom Benutzer vergebenen Device N

Beitrag von bumaas » 19.01.2018, 13:20

Ja, alle drei habe ich gefragt und sogar den EQ3 Support :D

Ich habe es befürchtet, dass die Namen nur in der Logikschicht sind. Hast du zufällig einen Codeschnipsel, der mir anhand der Seriennummer oder der Kanalnummer eines Devices deren Namen liefert?

Versucht habe ich es mit

Code: Alles auswählen

var y = dom.GetObject("HmIP-RF. xxxxxxxxxxxxxxx").Name();
WriteLine(y);
Das läuft bei mir leider nicht.

Benutzeravatar
anli
Beiträge: 4326
Registriert: 10.06.2009, 14:01
Wohnort: 20 Min. nördlich von Hannover und bei Bremen
Hat sich bedankt: 1 Mal
Danksagung erhalten: 23 Mal
Kontaktdaten:

Re: XML-RPC: Ermittlung des vom Benutzer vergebenen Device N

Beitrag von anli » 19.01.2018, 14:15

bumaas hat geschrieben:Hast du zufällig einen Codeschnipsel, der mir anhand der Seriennummer oder der Kanalnummer eines Devices deren Namen liefert?
Nee, leider nicht. Google findet mit homematic script gerät name:
viewtopic.php?f=26&t=16192
Herzliche Grüße, anli

Alle Angaben ohne Gewähr und Haftung meinerseits. Verwendung der von mir zur Verfügung gestellten Downloads auf eigene Gefahr. Ich bitte um Verständnis, dass ich aus zeitlichen Gründen keine unaufgeforderte Hilfestellung per PN/Mail geben kann. Bitte allgemeine Fragen ins Forum stellen, hier können viele fähige User viel schneller helfen.

Homematic-Manager v2: einfaches Tool zum Erstellen von Direktverknüpfungen und Bearbeiten von Gerätenamen, -parametern etc. für Homematic und HomematicIP (Alternative diesbzgl. zur WebUI)

Einsteiger-Hilfeerweiterter Skript-Parser

nimmnenkeks
Beiträge: 453
Registriert: 30.11.2016, 20:24
Hat sich bedankt: 43 Mal
Danksagung erhalten: 19 Mal

Re: XML-RPC: Ermittlung des vom Benutzer vergebenen Device N

Beitrag von nimmnenkeks » 19.01.2018, 22:02

bumaas hat geschrieben:Hast du zufällig einen Codeschnipsel, der mir anhand der Seriennummer oder der Kanalnummer eines Devices deren Namen liefert?
Hallo Burkhard,
den Code hat der User BadenPower doch schon gegen Ende vorletzten Jahres zu genau dieser Problemstellung gepostet.

Ich kann leider nicht mehr sagen, wann genau das war und fragen kann man ihn ja nicht mehr, da sein Input/Wissen hier im Forum leider nicht mehr erwünscht ist.
Siehe viewtopic.php?f=1&t=39914&hilit=BadenPo ... B+gesperrt


..

zap
Beiträge: 66
Registriert: 05.12.2014, 17:57

Re: XML-RPC: Ermittlung des vom Benutzer vergebenen Device N

Beitrag von zap » 22.01.2018, 19:57

GetObject() mit einer Adresse funktioniert nur, wenn ein Datenpunkt angegeben wird. Man muss also einen korrekten Datenpunkten anhängen. Dabei kann man sich zunutze machen, dass jedes Device im Kanal 0 zB einen Datenpunkt UNREACH hat.
Möchte man z.B. den Namen des Device mit der Adress ABC1234567 rausbekommen, geht das so:

Code: Alles auswählen

object myDP = dom.GetObject("BidCos-RF.ABC1234567:0.UNREACH");
var myChnID = myDP.Channel();
object myChn = dom.GetObject(myChnID);
var myDevID = myChn.Device();
object myDev = dom.GetObject(myDevID);
string myDevName = myDev.Name();

nimmnenkeks
Beiträge: 453
Registriert: 30.11.2016, 20:24
Hat sich bedankt: 43 Mal
Danksagung erhalten: 19 Mal

Re: XML-RPC: Ermittlung des vom Benutzer vergebenen Device N

Beitrag von nimmnenkeks » 23.01.2018, 10:09

Ich würde diese Möglichkeit präferieren:

Code: Alles auswählen

object lObjDevice;
lObjDevice = xmlrpc.GetObjectByHSSAddress(interfaces.GetAt(0),"SN-Device");
if(lObjDevice)
{
  Write("");
  Write(lObjDevice.Name());
  Write("   " # lObjDevice.ID());
  Write("   " # lObjDevice.TypeName());
  WriteLine("");
}
HM-Investigator - Version 0.4.1 - Geraetenamen von SN_CodeEditor.PNG


oder man nutzt BadenPowers mächtiges Werkzeug, den von Ihm entwickelten
HM-Investigator
HM-Investigator - Version 0.4.1 - Geraetenamen von SN_2.PNG

..

bumaas
Beiträge: 128
Registriert: 29.03.2010, 16:40
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: XML-RPC: Ermittlung des vom Benutzer vergebenen Device N

Beitrag von bumaas » 23.01.2018, 11:19

Danke an alle für eure Unterstützung!

Mit euren Hinweisen habe ich es geschafft:

Code: Alles auswählen

WriteLine((xmlrpc.GetObjectByHSSAddress(interfaces.Get("BidCos-RF"),"HEQ0137xxx:1")).Name());
WriteLine((xmlrpc.GetObjectByHSSAddress(interfaces.Get("BidCos-Wired"),"HEQ0165xxx:0")).Name());
WriteLine((xmlrpc.GetObjectByHSSAddress(interfaces.Get("HmIP-RF"),"0001D709904xxx:6")).Name());
WriteLine("");
WriteLine((xmlrpc.GetObjectByHSSAddress(interfaces.Get("BidCos-RF"),"0001D709904xxx:6")).Name());
WriteLine((xmlrpc.GetObjectByHSSAddress(interfaces.Get("BidCos-Wired"),"0001D709904xxx:6")).Name());
liefert das gewünschte Ergebnis:

Code: Alles auswählen

Flur.Sicherheit.Rauchmelder:1
Wohnzimmer.Licht.Tastfeld2:0
HMIP-PSM 0001D709904xxx:6

HMIP-PSM 0001D709904xxx:6
HMIP-PSM 0001D709904xxx:6
Lediglich die letzten beiden Zeilen erstaunen mich, zeigen sie doch, dass der erste Parameter von GetObjectByHSSAddress nicht "ernst" genommen wird :roll:
Nun egal, ist vielleicht eine Unschärfe :D

Gruß

Burkhard

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“