Seite 1 von 2

Haussteuerung per Spracherkennung

Verfasst: Montag 30. Januar 2017, 10:40
von Joshi
Hallo Leute,

Ich arbeite jetzt schon eine ganze weile mit Profilab. Meine ganze Hauselektrik hängt an dem Server, der im Flur oder übers Handy per Touch alle Lichter und andere Verbraucher Ansteuern kann. Soweit funktioniert alles Prima, bis auf meinen Versuch dass Ganze auch per Sprachbefehl über die Windows Spracherkennung inklusive Windows speech recgnition speech macros anzusteuern.

Wenn ich einen Schalter oder Taster im Programm durch einen Hotkey ersetze geht es ganz normal über die Tastatur mit der gewählten Tastenkombination. Windows speech macros können ja einen Sprachbefehl wie zum Beispiel "Licht Wohnzimmer an" in einen Hotkeybefehl wandeln. Nur tut sich da garnichts, aber der PC erkennt den Befehl. Dann noch ein Fehler mit einer Zugriffsverletzung der ntdll.dll Datei.

Kann mir von euch jemand weiterhelfen oder hat jemand eine Alternative dazu?

mfg

Re: Haussteuerung per Spracherkennung

Verfasst: Donnerstag 2. Februar 2017, 22:17
von wb77
Hallo,
ich verwende bitvoicer von bitsophia sehr gut und fast keine CPU Belastung
und das Protokoll per com Schnittstelle oder per lan kann man selber festlegen

gruß
Bernhard

Re: Haussteuerung per Spracherkennung

Verfasst: Freitag 3. Februar 2017, 07:04
von Joshi
Ok, Vielen dank erstmal.

Hast du dich da angemeldet oder ist die Software kostenlos?

Re: Haussteuerung per Spracherkennung

Verfasst: Freitag 3. Februar 2017, 07:53
von Joshi
kannst du mir vielleicht eine kleine Anleitung dazu geben wie du das dann verwendest?

hab noch keine Ahnung von diesem Programm

mfg

Re: Haussteuerung per Spracherkennung

Verfasst: Montag 6. März 2017, 11:15
von Joshi
Hallo Nochmal,

Also nachdem ich nun Das Programm Bitvoicer heruntergeladen und die Linzenz dazu gekauft habe, hab ich etwas ausprobiert und naja noch nicht sehr viel geschafft.

Das Programm ist eigentlich ganz super. es kann vier Arten von Daten senden die dann ein anderer Port empfängt. Char, Int, Byte und String.

mann muss eine Nullmodemverbindung zwischen zwei Schnittstellen schaffen. Virtuell oder mit der Hardware.

Mein Problem: Ich weiss überhaupt nicht wie z.B ein String den ich sende aussehen muss um ihn in Profilab zu empfangen, und auch nicht mit welchen Bauteil.

Wer kann mir weiterhelfen?

Re: Haussteuerung per Spracherkennung

Verfasst: Montag 6. März 2017, 12:44
von Messtechniker
Suche mal in der Hilfe zu Profilab nach "String".

Re: Haussteuerung per Spracherkennung

Verfasst: Montag 6. März 2017, 13:06
von tmm
oder unter Beispiele\Hardware\\RS232\Nullmodem.prj

Re: Haussteuerung per Spracherkennung

Verfasst: Dienstag 7. März 2017, 07:01
von Joshi
OK, hallo nochmal,

mit dem nullmodem rs232 Beispiel hab ich geprüft ob die virtuelle Verbindung auch wircklich besteht. das klappt,
wenn ich jetzt einen String mit der Spracherkennung sende kommt aber nichts in Profilab an.
anscheinend fehlt mir die nötige Kenntnis über diese Verbindungen.

weil ich irgendwie keine Ahnung habe aus was der String, also vielleicht Anfangszeichen Endzeichen und so weiter besteht.

es gibt ja auch die Möglichkeit ein Byte zu senden aber da kommt auch nichts in Profilab an. weis irgendwie nicht weiter :|

Re: Haussteuerung per Spracherkennung

Verfasst: Dienstag 7. März 2017, 07:35
von tmm
Hi,

hole dir das Programm "hterm" aus dem Netz, damit kannst du genau sehen welche Zeichen (und Steuerzeichen) von deinem Sprachprogramm gesendet werden.
Dann stellst du die Parameter im $COM Baustein so ein, wie sie sein müssen.
Das wars schon.

Gruß MM

PS: hier im Forum findest du auch viele Beiträge, in denen "hterm" angesprochen wird.

Re: Haussteuerung per Spracherkennung

Verfasst: Dienstag 7. März 2017, 08:31
von Joshi
OK,
Vielen Dank für die schnelle Antwort, ich versuche es mal,

mfg

Re: Haussteuerung per Spracherkennung

Verfasst: Donnerstag 9. März 2017, 20:01
von Joshi
Also,

OK, ich nochmal,

Hab mir jetzt das ganze von hterm anzeigen lassen. Bitvoicer sendet signale. Nur weiss ich nicht wie ich sie in Profilab zu lesen bekomme.
Hängt dass vielleicht mit dem Trennzeichen oder der Definition der Synchronzeichenkette zusammen, weil die Verbindung steht auf jeden fall, aber egal was ich sende (also mit Bitvoicer) kommt nichts in meinen Bauteilen an.

mal wieder Ratlos :oops:

Re: Haussteuerung per Spracherkennung

Verfasst: Freitag 10. März 2017, 08:24
von tmm
Hi,

zeig doch mal, wie die eingelesenen Daten in hterm aussehen.

Gruß MM

Re: Haussteuerung per Spracherkennung

Verfasst: Freitag 10. März 2017, 08:35
von Joshi
OK,

Muss ich von zuhause aus machen, bin leider auf der Arbeit. Ich melde mich heute Abend mal

mfg

Re: Haussteuerung per Spracherkennung

Verfasst: Sonntag 12. März 2017, 18:55
von Joshi
Hallo Leute,

Also jetzt mit etwas verspätung bin ich mal wieder da.
Hab leider viel um die Ohren momentan,

Das was Bitvoicer sendet sieht für mich aus wie Hyroglyphen.
Wenn ich von Profilab aus sende und an einen anderen COM Port empfange, klappt es ja auch.

Was mir aufgefallen ist, ist das Bitvoicer anscheinend auch daten zugesendet werden müssen. Also so stehts in der Bitvoicer Manual.

Ich versuche die Tabelle und die Werte mal aufzulisten. Leider ist alles in Englisch:

Re: Haussteuerung per Spracherkennung

Verfasst: Sonntag 12. März 2017, 19:07
von Joshi
Das Bitvoicer Protocol schreibt vor:

The BitVoicer Protocol consists of a set of formatting parameters that must be implemented in order to exchange information between BitVoicer and the microcontrollers. This protocol must be used in both communication directions: BitVoicer  microcontroller and microcontroller  BitVoicer.

The table below describes the format of the datagrams sent and received by BitVoicer:

Name Byte Position Value Description
Start of Transmission 1 1 Start of Transmission mark

Data Type 2 1 = Char
2 = Int
3 = Byte Indicates the data type
4 = String carried by the datagram
254 = Command
255 = Status

Data Length 3 X Length of the data field in bytes

Data 4 a n X Contains the data itself
n = 3 + Data Length


End of Transmission n + 1 4 End of Transmission mark

Although commands are wrapped according to these parameters, in essence, all exchanged data is a sequence of bytes whose length will vary depending on the data type and the amount of data exchanged.

The first byte in a datagram always must have the value 1 (0x01). This byte marks the beginning of a datagram. The second byte, whose value can be any of those in the Value column of the table above, specifies the data type contained within the Data field. The third byte indicates the length, in bytes, of the Data field. Because the Data Length field is only one byte long, the longest length for the Data field is 255 (the biggest number in only one byte). The fourth field contains the data itself, and its length is the one specified in the third byte. The fifth field must have the value 4 (0x04), and it marks the end of the datagram. This field can be used to check if a complete datagram was received.

Also sorry. auch wenn ich das Ganze übersetze reichen meine Kenntnisse nicht aus um zu wissen, auf welchen Befehl Bitvoicer von mir wartet um einen Befehl zu senden.

Please Help me

Re: Haussteuerung per Spracherkennung

Verfasst: Montag 13. März 2017, 15:52
von IKT
OK:

datagram = kommando (vollständig)

kürzeste Version 4 Byte lang (0 byte Data, z.B. Status)
längste Ver. 4 + 255 = 259 Byte lang

1. (UBYTE) = 1 (immer, Startbyte)
2. (UBYTE) = Data Typ Definition (1, 2, 3, 4, 254, 255)
3. (UBYTE) = Data Länge (in bytes) = 0 bis 255 (0x00 - 0xFF)
--- DATA --- (wenn vorhanden, siehe oben)
letztes (UBYTE) = 4 (immer, Endbyte; position = 3 + Data-Länge + 1)

Das war's schon, recht einfach das Ganze ...

Re: Haussteuerung per Spracherkennung

Verfasst: Dienstag 14. März 2017, 03:02
von Joshi
Hallo,

Ok, also wenn ich dich richtig verstehe muss ich dem bitvoicer den Befehl in bytes über den comport senden. So wie das empfangsbereit machen oder?

Re: Haussteuerung per Spracherkennung

Verfasst: Dienstag 14. März 2017, 16:19
von IKT
Naja, wenn alles, was Du bisher geschrieben hast, korrekt ist, schon.

Aber: Du hast das Handbuch, Programm etc. (ich nicht!).

TIP: ersetze Microcontroller mit PL-E, wenn Du "Bit Voicer" Manual liest ...
Es ist eine Zwei-Wege Kommunikation, hin --> und zurück <--.

Daraus folgt: PL-E muss "Bit Voicer"-Protokoll:
A) "verstehen" (und danach, umsetzen können) -- und --
B) "senden" können (was wiederum, von "Bit Voicer" verstanden werden muss!)

Re: Haussteuerung per Spracherkennung

Verfasst: Dienstag 14. März 2017, 17:31
von tmm
Hallo,

da muss ich jetzt mal nachfragen:

"Das was Bitvoicer sendet sieht für mich aus wie Hyroglyphen."

Kommen die Hyrogyphen automatisch in hterm an - oder wie machst du das ?

Gruß MM

Re: Haussteuerung per Spracherkennung

Verfasst: Dienstag 14. März 2017, 20:30
von wb77
ich habe bitvoicer so eingestellt das er über com port einen String schickt
die Hyroglyphen sind nur Trennzeichen, hterm mitgelesen gesendet von bitvoicer xabc angekommen <1><4><4>xabc<4>
also bei PLE comport string empfang Trennzeichen <4> Rest $trim und schon sieht man auch im PLE xabc
Als virtuellen com port emulator nehme ich eterlogic.com

Für die Umsetzung als Haussteuerung sende ich Zahlen die ich dann ganz einfach mit Vergleichern auswerte.
z.B.: bitvoicer sende die Zahl 2001 für Küche Licht on an PLE >>>
in PLE geht die Zahl an alle Vergleicher und der mit der richtigen Nummer (a=b) schaltet dann den Ausgang.

gruß
Bernhard