Vorstellung Windows App - oder endlich eine Frau die macht was ich sage :-)

Hallo Sebiman,
ich habe dein Modul unter ips4 installiert und die Sprachbefehle kommen auch in ips an, jedoch habe ich keine Ahnung wie ich die Daten für die weitere Nutzung aufrufen kann.
Kannst du ein Beispiel einstellen (vom WebHook Script).

Gruß Blacks

Hallo HvS,

wenn dein AppName nicht übernommen wird, mache bitte mal nach der Änderung die App zu und starte diese neu. Cortana ist manchmal ein wenig zickig. Falls sie sich weiterhin weigert, bitte nochmal melden - möchte das gerne genauer verstehen.

Das mit dem Smartband geht auch, solange es Cortana triggern kann (zB Microsoft Band 1/2).

Grüße
Seb.

hier mal ein Bsp:

so sieht bei mir die Sprachdefinition aus:

<? //Do not delete or modify.
include(IPS_GetKernelDirEx()."scripts/__ipsmodule.inc.php");
include("../modules/ips4Windows/ips4WinCortana/module.php");

$ips4WinCortana = new ips4WinCortana(57217 /*[ips4WinCortana\CortanaVoiceCommands]*/);

//Your code goes here...

$ips4WinCortana->EnableDebug(true);

 //you can add up to 100 sections (called Commands, each need a unique name like Block1\/Block2 or what ever you like)
 //each section can have up to 10 speach commands and include multiple PhraseLists (like {room}) entries
$ips4WinCortana->AddVoiceCommand("TempFragen","Wieviel Grad haben wir [li] {room}?");
[/li]$ips4WinCortana->AddVoiceCommand("TempFragen","Wie ist die Temperatur [li] {room}?");
[/li]
$ips4WinCortana->AddVoiceCommand("Block1","{action} [das] {actor} [das] {room}");
$ips4WinCortana->AddVoiceCommand("Block1","{action} [das] {actor} [das] {room} [auf] {status}");
$ips4WinCortana->AddVoiceCommand("Block1","{action} [das] {actor} [das] {room} [auf] {status} Prozent");
 //each section needs a Feedback and Example entry. Feedback is used when command was processed from Cortana
 //Example will shown, when user asks Cortana "What can I say?/Was kann ich sagen?"
$ips4WinCortana->AddCommandExample("TempFragen","Wieviel Grad haben wir im Wohnzimmer?");
$ips4WinCortana->AddCommandExample("Block1","schliesse das Rollo im Büro");

$ips4WinCortana->AddCommandFeedback("TempFragen","moment ich fühle mal");
$ips4WinCortana->AddCommandFeedback("Block1","ich arbeite dran");

 //you can add multiple PhraseLists with an total of max. 2000 entries
$ips4WinCortana->AddActionPhraseCommand("actor","Rollo");
$ips4WinCortana->AddActionPhraseCommand("actor","Licht");
$ips4WinCortana->AddActionPhraseCommand("actor","Radio");
 
$ips4WinCortana->AddActionPhraseCommand("action","öffne");
$ips4WinCortana->AddActionPhraseCommand("action","schliesse");
$ips4WinCortana->AddActionPhraseCommand("action","schalte");
$ips4WinCortana->AddActionPhraseCommand("action","stelle");
$ips4WinCortana->AddActionPhraseCommand("action","ändere");
$ips4WinCortana->AddActionPhraseCommand("action","dimme");

$ips4WinCortana->AddActionPhraseCommand("status","an");
$ips4WinCortana->AddActionPhraseCommand("status","aus");
$ips4WinCortana->AddActionPhraseCommand("status","Hälfte");
$ips4WinCortana->AddActionPhraseCommand("status","0");
$ips4WinCortana->AddActionPhraseCommand("status","10");
$ips4WinCortana->AddActionPhraseCommand("status","17");
$ips4WinCortana->AddActionPhraseCommand("status","18");
$ips4WinCortana->AddActionPhraseCommand("status","19");
$ips4WinCortana->AddActionPhraseCommand("status","20");
$ips4WinCortana->AddActionPhraseCommand("status","21");
$ips4WinCortana->AddActionPhraseCommand("status","22");
$ips4WinCortana->AddActionPhraseCommand("status","23");
$ips4WinCortana->AddActionPhraseCommand("status","24");
$ips4WinCortana->AddActionPhraseCommand("status","30");
$ips4WinCortana->AddActionPhraseCommand("status","40");
$ips4WinCortana->AddActionPhraseCommand("status","50");
$ips4WinCortana->AddActionPhraseCommand("status","60");
$ips4WinCortana->AddActionPhraseCommand("status","70");
$ips4WinCortana->AddActionPhraseCommand("status","80");
$ips4WinCortana->AddActionPhraseCommand("status","90");
$ips4WinCortana->AddActionPhraseCommand("status","100");


$ips4WinCortana->AddActionPhraseCommand("room","Büro");
$ips4WinCortana->AddActionPhraseCommand("room","Wohnzimmer");
$ips4WinCortana->AddActionPhraseCommand("room","Küche");
$ips4WinCortana->AddActionPhraseCommand("room","Schlafzimmer");
$ips4WinCortana->AddActionPhraseCommand("room","Bad");
$ips4WinCortana->AddActionPhraseCommand("room","Kinderzimmer");
$ips4WinCortana->AddActionPhraseCommand("room","Garten");
$ips4WinCortana->AddActionPhraseCommand("room","Erdgeschoss");
$ips4WinCortana->AddActionPhraseCommand("room","Obergeschoss");
$ips4WinCortana->AddActionPhraseCommand("room","Haus");

 //ProcessData will convert all the entries to something readable for ips4Windows App
$ips4WinCortana->ProcessData();

Auswerten möchte ich aber nicht den gesprochenen Satz, weil das ist zu unsicher. Es können ja auch Wörter ausgelassen werden je nach persönlichen Vorlieben der Nutzer. Deswegen versuche ich auf die Elemente zu Filtern…
hier mal ein einfacher Test ohne großes Fehlerhandling:

<? //Do not delete or modify.
include(IPS_GetKernelDirEx()."scripts/__ipsmodule.inc.php");
include("../modules/ips4Windows/ips4WinCortana/module.php");
$ips4WinCortana = new ips4WinCortana(23921 /*[ips4WinCortana]*/);
$ips4WinCortana->ProcessHookData();
if ($_POST['ips4Command'] != "GetConfig")
{

//Your code goes here...

$resultArray = $ips4WinCortana->GetCortanaResult();
//$resultArray has all the data from Cortana
//textSpoken - full message captured by Cortana
//CommandName - Command of textSpoken line, user defined in ips4CortanaSprachbefehle script (aka section)
//action - used entry from PhraseList defined in ips4CortanaSprachbefehle script
//room - used entry from PhraseList defined in ips4CortanaSprachbefehle script
//feedback - if you used SendFeedbackVerify or SendFeedbackVerifyDetailed you will get the result from this commands, multiple iteration will be added with "#+#" as seperator. Use explode ( "#+#" , $resultArray->feedback) to work with the result array
IPS_LogMessage("WebHook Cortana", print_r($resultArray, true));
//do something useful
//...
//Cortana waits for feedback, otherwise the request will timeout in seconds and shows an error
//Options: sucess - SendFeedbackSuccess(Msg), failure - SendFeedbackFailure(Msg)
//verify with yes/no - SendFeedbackVerify(Msg), verify with more option - SendFeedbackVerifyDetailed(Msg, ListofOptions as array)

/*
31.01.2016 18:40:49*| WebHook Cortana*| Array
(
    [ips4Command] => Data
    [commandMode] => voice
    [actor] => Licht
    [room] => Wohnzimmer
    [NavigationTarget] => ips4WindowsVoiceCommandService
    [status] => 50
    [action] => ändere
    [CommandName] => Block1
    [textSpoken] => ändere das Licht Wohnzimmer auf 50 Prozent
)*/
	$bProcessed = false;
	$status = $resultArray['status'];
	if ($status == "an")
	   $status = true;
	else if ($status == "aus")
      $status = false;
   else if ($status == "schliesse")
      $status = 0;
   else if ($status == "öffne")
      $status = 1;
	else
	   $status = $status;
	
	if ($resultArray['actor'] == "Licht")
	{
		if ($resultArray['room'] == "Wohnzimmer")
		{
		   $bProcessed = HM_WriteValueFloat(28396 /*[Räume\Wohnzimmer\Schalter Dimmer Decke (Küche)\1]*/,"LEVEL",($status/100));
		}
	}
	else if ($resultArray['actor'] == "Rollo")
	{
		if ($resultArray['room'] == "Wohnzimmer")
		{
		   $bProcessed = HM_WriteValueFloat(20797 /*[Räume\Wohnzimmer\Rollo\Rollo Terasse\Rollo]*/,"LEVEL",($status/100));
			$bProcessed = HM_WriteValueFloat(13445 /*[Räume\Wohnzimmer\Rollo\Rollo Seite\Rollo]*/,"LEVEL",($status/100));
		}
	}
	
	if ($bProcessed)
	{
		$result = $ips4WinCortana->SendFeedbackSuccess("Erfolgreich ausgeführt");
	}
	else
	{
	   $result = $ips4WinCortana->SendFeedbackFailure("IPS konnte den Befehl nicht ausführen");
	}

	
	//last line of the script must be an echo result
	echo $result;
}

Grüße
Seb.

Im debug log steht:
Error in ReadVoiceCommands

Es wird anscheinend versucht etwas zu laden, wenn die app neu gestartet wird.

Mic

ja er versucht die Sprachkommandos von IPS zu laden, aber die Fehlermeldung müsste noch mehr sagen.

Kannst du mir das mal bitte zukommen lassen am besten einen Screenshot per Mail an ipscontrol@outlook.com

Danke und Grüße
Seb.

„hier ist etwas schiefgelaufen.bitte versuche es gleich nocheinmal“
ist leider die einzige Antwort die ich bekomme.

verbindung ist aktiviert und die Sprachebefehle eingelesen.
die verbindung zum server im browser steht.

App Name ist „computer“ (habe auch „Horst“ getestet)

„was kann ich sagen“ zeigt unter „Computer“
zwei Sprachbefehle an.

ist die app geöffnet und ich sage:
„Computer schalte das Licht im Wohnzimmer an“
wird mit dem eingangs zitierten Satz beantwortet.

Ist die app geschlossen - oder ich lasse „computer“ weg wird
ein google-Browserfenster mit meinen Satz geöffnet.

was mache ich noch falsch?

Hi Verleihnix,

der Fehler kommt aus der Cortana Engine bevor es zu meiner App kommt. Ich hatte das beim Testen auch mal, ein Neustart des Rechners hat bei mir geholfen.

So wie bei den anderen „Problemfällen“ die wir hier hatten, vermute ich bei dir auch irgendwas „abnormales“. Das würde ich gerne klären, aber am besten direkt per Mail (ipscontrol@outlook.com).

Bitte mal Debug aktivieren, App schließen (am besten via Taskseite richtig beenden) und neu starten.
ca. 20 Sekunden warten und dann ein Screenshot vom Debug machen und mich schicken. Hast du IPS v3 oder v4 Anbindung konfiguriert? Hast du ein Phone oder ein PC, welche OS Version läuft bei dir?

Bitte alles per Mail.

Grüße
Seb.

Hi,

Erstmal herzliche Dank.

Ich habe die App unter win 10 Installiert. Anbinding mit IPS V4. In win 10 gebrauche ich die englische Sprache ( ich wohne in Holland)
Leider bekomme ich die folgende fehler meldungen:

ERROR in IPSSendData: The text associated with this error code could not be found.
A connection with the server could not be established
Fehler in IPSSendData: The text associated with th-s error code could not be found.
A connection with the server could not be established
ERROR in IPSSendData: The text associated with this error code could not be found.
A connection with the server could not be established
Feh er in IPSSendData: The text associated with th-s error code could not be found.
A connection with the server could not be established
RegisterVoiceCommandsThread, start Thread
TokenType: bearer
Token: EgAeAQMAAAAEgAAAC4AAB7YK5xC5id/gLjpgB2w2jpU2jyouqJErsOxag 7fJKmi2yYL8jR12NlfHjkOQLOA004 + Mfszn4Wtku04H/lmk91Wi5wiXh9bfhWdVZs 1 rXOmaGTgqAF8XP L4rohzSp8QdjCwv
application/json
ChanelURl: https://db5.notify.windows.com/?token=AwYAAAAdZVCOw%2BmjBCsXgsrlmb0cVBrvuu%2Fk21kglF09FmLQWOeuHnYsRDG-vr4mmzVClgtSQDX7BczTyek%2BJsIbglw8pMSjft45z9bLnGLECyI
TokenType: bearer
Token: EgAeAQMAAAAEgAAAC4AAYfnvhvW7+5y8Faz6K9H5dCU+RqPs16zspqZkd8pEYMCHiQA2wPVlYIGDGytGPObCNW3a2h70LgSmcF+fS120S3545zUhS7hn08m71i491TRls8mB070Mx6488hYa8dQl(
Ask me anything

Ich habe nun gelesen dasz die App nur die deutsche sprache unterstützt. Ist es schwierig um die App um zu setzen fur die englische Sprache? Kann ich das selbst machen durch in VoiceCommands xml file unter attachment die sprache zu andern?

Nochmals herzliche dank fur die App

Grusz

Frans

Hallo Frans,

ich habe es aktuell nicht mit Engl. getestet, aber es sollte gehen, notfalls muss ich noch ein wenig im Code anpassen.
Was genau geht bei dir den nicht? Die Fehler sagen ja, das keine Verbindung zum IPS Server hergestellt werden kann und das hat nichts mit der Sprache zu tun.

Grüße
Seb.

Erstmal Danke für die schnelle Hilfe. Der reboot war’s. Jetzt funktioniert alles - und
nachdem Karneval überstanden ist, geht’s ans testen.

Danke für das schöne Modul

Hello Seb,

Danke fur das Anwort.

Ja, ich bekomme keine verbindung zum IPS server.
Im debug log steht:

keine webconfig gefunden
Error in IPSSendData etc
A connection with the server couldn’t be established.

Ich habe es viele mahlen versucht auch mit reboot, reinstall ips4Windows und ich weisz nicht was ich false mache

Darstellung: http://192.168.1.14:3777, ich brauche keine username und password
Verbindung: url http://192.168.1.14:3777/ keine username und password

Danke fur die hilfe.

Grusz

Frans

Hi,

schicke mir bitte mal Screenshots von deinen Settings per Mail an ipscontrol@outlook.com. Außerdem hätte ich gerne das DebugLog wenn du die App startest (auch per Mail).

Grüße
Seb.

Um eigene Schaltvorgänge auszulösen, muss man entsprechend das ips4WinCortanaSprachbefehle Script anpassen – Cortana muss wissen auf was sie hören soll. Dabei kann man auch Platzhalter verwenden (Phrase Listen) um nicht für jeden Raum oder jeden Vorgang das gleiche zu schreiben.
Bsp: „schalte das Licht im Wohnzimmer an“ – könnte auch sein „{action} das {actiontype} im {room} {actionstatus}“
Für die einzelnen Phrasen setzt man dann die Werte:
action - schalte / dimme …
actiontype – Licht / Radio …
room – Wohnzimmer/Küche …
actionstatus – an/aus/zu/auf/12/20 …

Änderungen am Script müssen durch ausführen in eine Variable geschrieben werden (das macht das Script) und dann in der App eingelesen werden (beim App Start oder durch auf den Kopf im Setup siehe oben).

Konnte Cortana einen Satz erfassen übergibt sie ihn an das Script ips4WinCortanaHook, hier kann man dann seine Daten verarbeiten. Man bekommt in der resultArray alles zurück was man oben definiert hat inkl. dem kompletten Satz. Damit kann man dann seine Aktionen zusammenbauen, etwas schalten oder Variablen auslösen. Cortana warte am Ende auf eine Antwort, diese baut man mit den SendFeedbackSuccess(…) bzw. den anderen Funktionen zusammen. Hier sind durch SendFeedbackVerify und SendFeedbackVerifyDetailed auf Rückfragen möglich.

Kannst du nicht in einer pdf Datei die genaue Vorgehensweise und einige Beispiele zeigen, so kann ich und die anderen, vielleicht auch verstehen wie man die Dateien auf seine Bedürfnisse anpasst.
So ist die App für mich wertlos und ich kann sie nicht gebrauchen. :confused:
Michael :loveips:

Hi Michael,

schau mal Post #23 in diesem Thread, da habe ich schon mal ein ersten Beispiel der beiden Scripte gepostet.

Aber ja, ich baue auch nochmal ein komplette Anleitung in einem Dokument mit Screenshots und hänge das an den Anfang. Das dauert aber noch ein paar Tage, muss erst die Mobile Darstellung fertig bekommen.

Grüße
Seb.

schonmal vielen Dank.
Michael :loveips:

p.s. so langsam wirds rund und läuft stabil

so die Anleitung für Cortana unter V4 ist fertig und kann hier heruntergeladen werden (pdf war zu groß um es hier hochzuladen.

Grüße
Seb.

Hallo zusammen,

mit der Version 1.1.41 hat jetzt auch die Mobile App Darstellung unter Windows 10 Einzug gehalten.
Bitte beachten das ist aktuell noch eine Beta, da ich nicht alles testen kann was möglich ist. Feedback ist also gerne willkommen.

Viele Grüße
Seb.

Servus
hab mich eben mit deiner App gespielt.
Kannst du für die Mobile Darstellung wieder die Schriftart von IPSCONTROL verwenden ?
zzt. ist am Handy die arg groß und die Darstellung von längeren Namen wird dauernd umgebrochen oder ist fehlerhaft.

Weiters krieg ich sehr oft noch dieses da: Sowohl am Handy als auch am Desktop

Nach Bestätigung der Meldung funktioniert alles normal (naja, Cortana hab ich nicht getestet).

Tjo und was hat es mit dem Geofency auf sich ? Kommt das noch ?

schöne Grüße und danke für die App
bb

Hey, sehr serh cool.

Hab jetzt auch noch Cortana in Betrieb genommen, funktioniert tadellos.
Besonders meinen Mädels gefällts, da hab ich jetzt Extra Gutpunkte bekommen.

Jetzt hab ich aber unendlich viel Tipparbeit um alles einzupflegen.
bb

Hallo bb,

die Tipparbeit wird sich lohnen. Bei mir läuft das auch super.

Wegen deiner Fehlermeldung oben, hast du diese inzwischen weg?

Nachdem du das Modul installiert hast, gibt es ja drei Kern-Instanzen. Kann es sein, dass du „ips4WinDeviceRegistration“ noch nicht hinzugefügt hast? Füge einfach alle 3 hinzu…

Grüße Helmut