Loxone Webservices mit Office (VBA, z.B. Outlook) ansteuern

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Benjamin Jobst
    Lox Guru
    • 25.08.2015
    • 1199

    #1

    Loxone Webservices mit Office (VBA, z.B. Outlook) ansteuern

    Hallo liebe Community,

    damit euch nicht zu langweilig wird hätte ich mal wieder eine kleine Knobel-Aufgabe für euch ;-)
    Es geht um das folgende: Ich will aus MS Outlook heraus bei bestimmten Events einen Eingang am Miniserver triggern, z.B. für Benachrichtigungen. Generell läuft das über VBA - also das in Office integrierte Visual Basic for Applications.
    Generell funktioniert das über die Webservices des Miniserver schon, allerdings bin ich noch nicht ganz happy damit. Bisher habe ich den folgenden VBA-Code für den Digitaleingang 1:

    Shell ("CMD /C start http://LoxUser:LoxPW@MS-IP/dev/sps/io/I1/Pulse"), vbNormalFocus
    Damit wird über die Kommandozeile die Adresse des Webservice im Browser aufgerufen. Das funktioniert soweit. Allerdings stören mich dabei zwei Punkte:
    1. Bei jedem Aufruf öffnet sich der Browser mit der entsprechenden Seite des Webservice
    2. Beim ersten Aufruf nach PC hochfahren muss ich manuell bestätigen, dass ich die Authentifizierung für diese Seite will.

    Mein Ziel ist es aber, diese Aufrufe im Hintergrund durchlaufen zu lassen, damit sich mein Browser nicht mit Webservice-Tabs füllt und ich nicht jedes Mal bestätigen muss.

    Deshalb mein zweiter Ansatz, die URL in Outlook direkt zu öffnen. Dazu habe ich die Open-Funktion gefunden.
    Set oXH = CreateObject("MSXML2.ServerXMLHTTP")
    With oXH
    .Open "GET", "http://LoxUser:LoxPW@MS-IP/dev/sps/io/I1/Pulse", False
    .Send ""
    End With
    title = oXH.ResponseText
    über ResponseText bekomme ich die Info, was die aufgerufene Seite enhält, also ob mein Aufruf geklappt hat oder woran er gescheitert ist.
    Die Open-Funktion unterstützt dabei anscheinend nicht die Authentifizierung über die URL, ich bekomme die Fehlermeldung "Error" und "Unauthorized".

    Meine Knobelaufgabe deshalb für diejenigen, die sich mit Webservices, REST-Authentifizierung und VBA auskennen: Wie bekomme ich den Aufruf zum Laufen? =)
    Über Hinweise, die zur Ergreifung der Lösung führen, freue ich mich =)
    MfG Benny
  • Gast

    #2
    Ich weiß nicht ob es funktioniert, aber das war zumindest das erste was ich per Google gefunden habe:
    Code:
     [COLOR=#CCCCCC][FONT=Consolas]Dim result As String[/FONT][/COLOR]
      [COLOR=#CCCCCC][FONT=Consolas]Dim myURL As String[/FONT][/COLOR]
      [COLOR=#CCCCCC][FONT=Consolas]Dim winHttpReq As Object[/FONT][/COLOR]
      [COLOR=#CCCCCC][FONT=Consolas]Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")[/FONT][/COLOR]
      
      [COLOR=#CCCCCC][FONT=Consolas]myURL = "[URL="http://192.168.10.101/your_web_service?parameter=hello"]http://192.168.10.101:80/your_web_service?parameter=hello[/URL]¶meter2=hi"[/FONT][/COLOR]
      
      [COLOR=#CCCCCC][FONT=Consolas]winHttpReq.Open "GET", myURL, False[/FONT][/COLOR]
      [COLOR=#CCCCCC][FONT=Consolas]winHttpReq.Send[/FONT][/COLOR]
      
      [COLOR=#CCCCCC][FONT=Consolas]result = winHttpReq.responseText[/FONT][/COLOR]
    oder siehe hier:
    http://stackoverflow.com/questions/2...entials-in-vba

    Kommentar


    • svethi
      svethi kommentierte
      Kommentar bearbeiten
      Ja, die Lösungen unter Stackoverflow sehen sehr brauchbar aus.
  • Benjamin Jobst
    Lox Guru
    • 25.08.2015
    • 1199

    #3
    Hallo ihr Beiden,

    es ist immer wieder unglaublich, was man hier im Forum so alles bekommt =)
    Vielen Dank Gast , svethi der Ansatz von Stackoverflow ist genau der Richtige:

    Set oXH = CreateObject("MSXML2.ServerXMLHTTP")
    With oXH
    .Open "GET", "http://IP-MS/dev/sps/io/I1/Pulse", False, "LoxUser", "LoxPW"
    .Send""
    End with
    Ich hatte schon den Verdacht, dass ich nur irgendwo etwas übersehen hatte aber manchmal findet man den Wald vor Bäumen niciht.
    Danke für den Hinweis!
    Zuletzt geändert von Benjamin Jobst; 07.04.2016, 08:17.
    MfG Benny

    Kommentar

    Lädt...