Umfrage
Frage:
Läuft TEERKO auf deinem System stabil? (Beta 1.2)
Antwort 1: Ja. Kein Problem.
Stimmen: 2
Antwort 2: Ja, hat aber Einfluß auf die Performance
Stimmen: 0
Antwort 3: Nein, es gibt unregelmäßige Abstürze
Stimmen: 0
Antwort 4: Nein, direkter Absturz
Stimmen: 0
Hallo zusammen,
Ich versuche mein bestes bei dem Modul
TEERKO -> TExt ERkennung und KOntrolle
Download TEERKO Beta 1.2 (https://gitlab.com/tiroso/fhem-TEERKO/repository/beta_1.2.9/archive.zip)
Das Modul hieß vorher 98_TEERKO.pmWer das Modul unter 98_TEERKO.pm runtergeladen haben sollte, bitte ich das Modul zu löschen und unter 39_TEERKO.pm abzuspeichern.
TEERKO -> TExt ERkennung und KOntrolleDie Alpha Version brachte mir zu viele Fehler und brachte mein FHEM zum Absturz. Ich habe deswegen auch Stabilität gesetzt und einige Funktionen rausgenommen.Was kann das Modul?
- Geräte schalten
- Farben schalten
- Zeitverzögertes schalten
- Status abfragen
- Plural Erkennung für schalten gleichnamiger Devices.
- Gleichzeitiges Steurern meherer Devices in Unterschiedlichen Räumen.
- MultiRoom Attribut für mehrere Räume für ein Device (Haus,Erdgeschoss,Wohnzimmer)
- MultiAlias Attribut für mehrere Device Bezeichnungen (Lampe,Deckenlampe,Licht)
- Alias und Room Favoriten definieren für die Antwortsätze
- Sehr flexible Benutzerdefinierte Befehle
- Batteriemeldungen
- Ausgabe auf nahezu allen externen Devices
- Prozentualer Abgleich aller Namen.
- Anpassen der default Befehlssätze und Abfrage Readings
- Kein einhalten fester Muster nötig (Schalte das Licht im Wohnzimmer an == Das Licht im Wohnzimmer einschalten
- Verwenden bestehender Attribute wie alias,room,alexaname,alexaroom.
Somit muss nicht zwingend die TEERKO eigenen Attribute verwendet werden
So sind folgende Befehle möglich:
Schalte die Deckenlampe einDimme die Stehlampe im Wohnzimmer auf 30%Färbe die Effektbeleuchtung rotNicht nur schalten bzw das kontrollieren eines Devices ist möglich sondern auch das Abfragen:
Wie ist der Zustand der HaustürSage mir den Status der DeckenlampeWie könnt ihr das Modul einbinden?
Ladet euch die 39_TEERKO.pm runter und kopiert es zu den anderen Modulen in FHEM.
und dann...
Definedefine <name> TEERKO
Definiert das TEERKO Device für die Textkontrolle
Set
- TextCommand
- ExternalResponse
- ReadUserFile
- AMADAnswer
- UpdateLists
set <TEERKODevice> TextCommand <command>
Lässt ein Kommando direkt am Teerko Device zu. Dieses wird ausgewertet und die Antwort angezeigt
set <TEERKODevice> ReadUserFile [file]
Lese Datei ein mit benutzerdefinierten Kommandos
set <TEERKODevice> AMADAnswer [-msg-|-tts-|eigenedevices]
Ist TEERKO mit einem AMAD Device verbunden so kann hier die Antwort gewählt werden. Wenn von AMAD gefragt wird können ebenfalls externe Geräte angegeben werden.
set <TEERKODevice> TelegramAnswer [-msg-|-tts-|eigenedevices]
Wenn von Telegram gefragt wird können ebenfalls externe Geräte angegeben werden.
set <TEERKODevice> OwnAnswer [-msg-|-tts-|eigenedevices]
Wenn von dem eigenen TEERKO Device gefragt wird können ebenfalls externe Geräte angegeben werden.
TEERKO spezifische Attr
- TEERKOTelegramDevice
- TEERKOTelegramPeerId
- TEERKOAMADDevice
- TEERKOHotword
- TEERKOUserDefFile
- TEERKOExpert
attr <TEERKODevice> TEERKOTelegramDevice <TelegramBotDevice>
Wenn du über Telegram mit TEERKO kommunizieren willst dann setze hier das TelegramBot Device ein
attr <TEERKODevice> TEERKOTelegramPeerId <TelegramBotDevice>
Wähle hier alle PEERIds über die du mit TEERKO kommunizieren willst
attr <TEERKODevice> TEERKOAMADDevice <AMADDevice>
Wenn du ein AMAD ebenfalls nutzen möchtest wird das Device hier ausgewählt.
Bitte in der AMADCommBridge das Attribut fhemControlMode auf thirdControl setzen.
attr <TEERKODevice> TEERKOHotword [hotword]
Hier können Kommagetrennte Hotwords hinterlegt werden. Sollte keines der Hotwords auf den kompletten Satz passen dann wird TEERKO den Befehl nicht analysieren und auswerten. Wenn das Attr nicht gesetzt ist wertet TEERKO alle Befehle aus.
attr <TEERKODevice> TEERKOFeatures [hotword]
Auswahl der Features von TEERKO. Wähle -Alles- um alles nutzen zu können
attr <TEERKODevice> TEERKOAllowedToControl [hotword]
Alle Geräte auswählen die von diesem TEERKO Device bedient werden dürfen. Oder -Alle- auswählen
attr <TEERKODevice> TEERKOUserDefFile[1|0]
Setzt den StandartPfad für die Userdefinierten Befehle Datei. Wenn dieses Attr gesetzt ist muss keine mehr beim einlesen angegeben werden.
attr TEERKOExpert <expertcommands>
Mit den "Expertenkommandos" kann das verhalten stark beeinflusst werden.
Es gibt derzeit 2 Arten von Expertenkommandos:
- Search and Replace
- Sonstige
- Search and Replace:
Aufbau:
Erklärung
Beim auslesen, z.b. beim Aktionstypen getstate, werden meist englische Werte ausgegeben oder solche die nicht "toll" aussehen. Mit dem sar Wert kann ein solches Reading ersetzt werden.
- Sonstige:
AllRestrictedMapping
Der Befehl begrenzt alle Möglichkeiten alle Devices zu steuern oder abzufragen auf solche die als Mapping Befehle angelegt sind. Die Mapping Befehle müssen mindestens als Typ 1 im Attribut TEERKOExpert im jeweiligen Device vorhanden sein.
Device spezifische Attr
- TEERKOAlias
- TEERKORoom
- TEERKOExpert
[/list][/list]
attr <OtherDevice> TEERKOAlias <aliase>
Zusätzlich zum normalen Alias können hier weitere eingetragen werden. Einen Favorisierten Namen für einen Device mit "!" angeben.
Bsp.
attr <OtherDevice> TEERKOAlias Lampe,Licht,!Deckenlampeattr <OtherDevice> TEERKORoom <rooms>
Zusätzlich zum normalen Room können hier weitere eingetragen werden. Einen Favorisierten Namen für einen Room mit "!" angeben.
Bsp.
attr <OtherDevice> TEERKORoom Haus,Erdgeschoss,!Wohnzimmerattr <OtherDevice> TEERKOExpert <expertcommands>
Mit den "Expertenkommandos" kann das verhalten stark beeinflusst werden.
Es gibt derzeit 3 Arten von Expertenkommandos:
- Mapping
- Search and Replace
- Sonstige
- Mapping:
Aufbau:
- Typ 1 map:<type>
- Typ 2 map:<type>=<cmd>
- Typ 3 map:<type>!<ignorestate>!
- Typ 4 map:<type>=<cmd>!<ignorestate>!
Erklärung:
Jede Aktion die ausgeführt wird hat einen Aktionstypen. Mit dem Mapping Kommando kann man die Aktion beeinflussen. <type> gibt diesen Aktionstypen an. Mit <cmd> überschreibt man die default Aktionen die in TEERKO hinterlegt sind. Mit <ignorestate> wird ein Kommando ignoriert wenn das Device diesen Status schon hat.
Folgende Aktionstypen sind derzeit verfügbar:
- seton
- setoff
- setup
- setdown
- setopen
- setclose
- setstart
- setstop
- setpct
- setcolor
- getstate
Beispiele:
map:seton=pct 100!on!
Das Gerät führt zum Beispiel bei dem Befehl Schalte die Stehlampe im Wohnzimmer an den FHEM Befehl set <device> pct 100 aus. Aber auch nur wenn der aktuelle Status nicht on ist
map:getstate=reading
Das Gerät gibt zum Beispiel bei dem Befehl Wie ist der Status der Haustür nicht das Reading state zurück sondern das des angegeben readings
Zusätzlich dazu gibt es Aktionsbezogene Platzhalter:
- setpct:%INT%
Beispiel für Angabe mit dem Befehl Stelle die Stehlampe auf 30% und das betroffene Device "versteht" nicht pct
map:setpct=dim %INT% - setcolor:%CHEX% %CRGB% %CHSV% %CRGB1% %CRGB2% %CRGB3% %CHSV1% %CHSV2% %CHSV3%
Beispiel für Angabe mit dem Befehl Färbe die Effektbeleuchtung blau und das betroffene Device "versteht" nicht direkt die Angabe von einem hex Wert
map:setcolor=rgb %CRGB%
- Search and Replace:
Aufbau:
Erklärung
Beim auslesen, z.b. beim Aktionstypen getstate, werden meist englische Werte ausgegeben oder solche die nicht "toll" aussehen. Mit dem sar Wert kann ein solches Reading ersetzt werden.
- Sonstige:
AllRestrictedMapping
Der Befehl begrenzt alle Möglichkeiten ein Device zu steuern oder abzufragen auf solche die als Mapping Befehle angelegt sind. Die Mapping Befehle müssen mindestens als Typ 1 im Attribut TEERKOExpert vorhanden sein.
Z.b sorgt attr <device> TEERKOExpert map:seton,map:setoff,map:getstate,AllRestrictedMapping
dafür das das Gerät ausschließlich ein- ausgeschaltet und der Status abgefragt werden darf.
- shortresponse
Alle erfolgreich Erkannten Befehle werden nicht mit Angabe des Devices oder Room beantwortet, sondern nur mit "Ok. "
User definierte Befehle - DateiEs ist möglich eigene Befehle in einer externen Datei abzulegen.
Die Datei muss folgenden Aufbau haben
[command]
in=lichtszenario.*(gemütlich|aus|an|party).*wohnzimmer
out=Ich stelle im Wohnzimmer das Lichtszenario %0% ein.
fhem=set lightscene scene %0%
[command]
in=ich.*zuhause
out=Hallo. Schön das du da bist.
fhem=set light1 on;sleep 3;set coffemaker on;set livingroomlight pct 50
[command]
in=wie.*wetter
out=Die Temperatur beträgt %weatherdevice%. Die Feuchtigkeit beträgt
%weatherdevice:humidity% Prozent.
Das Wetter ist %weatherdevice:icon:rainy=regnerisch,cloudy=wolkig,stormy=So richtig mies%
[command]
in=...
out=...
fhem=...
...
Parts eines neuen Kommandos
- in=
(Pflichtangabe) Der Satz (RegExpr erlaubt) wird mit dem eingegebenen Befehl abgeglichen. Sollte es zu einer Übereinstimmung kommen wird TEERKO keinen internen Abgleich mehr machen sondern den benutzerdefinierten Befehl akzeptieren. - out=
(Optionale Angabe) Die Antwort die TEERKO auf den Befehl geben soll. Wird keine Antwort angegeben antwortet TEERKO mit "Ok." - fhem=
(Optionale Angabe) FHEM Kommandos die nach erkennen des Befehls ausgeführt werden sollen. Kein Perl Code.
RegExp Captures
Sollten in dem in= Part durch RegExp Captures auftreten können diese unter Angabe der gefundenen Platzierung in out= und fhem= wiederverwendet werden. Siehe Aufbau Bsp. 1
Readings in out=
Es können in der Ausgabe auch Readings eingebunden werden. Siehe Aufbau Bsp. 3. Diese Readings können auch durch andere Werte ersetzt werden.
- %weatherdevice%
Liest das Reading state aus dem Device weatherdevice - %weatherdevice:humidity%
Liest das Reading humidity aus dem Device weatherdevice - %weatherdevice:icon:rainy=regnerisch,cloudy=wolkig%
Liest das Reading icon aus dem Device weatherdevice und ersetzt ein mögliches vorkommen von "rainy" durch "regnerisch" und "cloudy" durch "wolkig" und "stormy" durch "so richtig mies"
Ich habe versucht viele Anwenungsfälle abzudecken.
Die Basis Befehle können ebenfalls mit einer Zeitangabe erfolgen:
schalte die Deckenlampe im Wohnzimmer in 5 Minuten und 3 Sekunden anMultiErkennungTeerko unterstützt das Auswerten für Geräte die den gleichen Alias haben
Beispiel:
define dummy01 dummy;
attr dummy01 TEERKORoom Haus,Erdgeschoss,!Wohnzimmer
attr dummy01 TEERKOAlias Lampe,Licht,!Deckenlampe
define dummy02 dummy;
attr dummy02 TEERKORoom Haus,Erdgeschoss,!Küche
attr dummy02 TEERKOAlias Lampe,Licht,!Deckenlampe
Somit lässt sich über
Schalte alle Lampen im Haus aus beide Lampen ausschalten.
Schalte die Deckenlampe aus sorgt aber dafür das die Rückmeldung kommt das es mehrere Geräte mit dem Namen gibt.
Schalte die Deckenlampe im Wohnzimmer aus schaltet dagegen nur dummy01.
Erkannte FarbenTeerko ist in der Lage folgende Farben zu erkennen:
- gelb
- weiß
- orange
- magenta
- rot
- violett
- blau
- türkis
- grün
- schwarz
- grau
- braun
- rosa
- pink
Bitte versucht so natürlich wie nur möglich die Befehle in Teerko einzugeben. Ich versuche mich in Natural Text Processing und dazu gehört auch natürlich das man korrekt mit dem Modul redet.
Ich weiß leider nicht wie ich das Modul näher beschreiben soll, ich will eigentlich auch keine Befehle vorgeben sondern eher den Versuch starten ob das Modul wirklich in der Lage ist deinen Befehl so zu verstehen wie er kommt.
Das Modul befindet sich im Beta Status. Also bitte vorher eure Konfiguration speichern
Gruß
Ach ja.
Wenn ihr AMAD nutzen solltet sorgt dafür das der Flow den String nicht bei und teilt sondern in gänze überträgt
Mit alexa wahrscheinlich nicht nutzbar, oder?
Gesendet von dem teuren ding in meiner hand
Ne das nicht.
Habe das aufgesetzt um extra kein alexa zu nutzen. ;) ich hoffe iwann Matrix Voice zu implementieren.
D. H. Sprachsteuerung über amad?
Was ist matrix voice?
Gesendet von dem teuren ding in meiner hand
Ja Sprachsteuerung über AMAD und Textsteuerung über TelegramBot oder direkt am device.
Matrix Voice ist ein Open Source Projekt.
https://www.indiegogo.com/projects/matrix-voice-open-source-voice-platform-for-all#/
Sieht aus, als ob das von alexa bzw. Dot/Echo abgekupfert ist.
Wegen alexa fragte ich, da ich die ha.bridge dazwischen habe.
Aber ich glaubt Zeit kann man da keine Sensoren abfragen bzw Status von Geräten
Gesendet von dem teuren ding in meiner hand
Ja ich versuche natürlich in gewisser Art und Weise die Funktionen zu übernehmen. Allerdings in meiner eigenen Logik. Wie alexa den string analysiert weiß ich nicht.
Ich möchte auch on Zukunft mehr funktionen integrieren. Das man fragen kann wie warm ein Device ist...oder wie warm ein Raum ist und als Antwort die durchschnittstemperatur zurückgegeben wird.
Finde die Idee ganz lustig und habe eben mal kurz reingeschaut...
1.) Ich würde die ganzen Hashes irgendwie auslagern in einer separaten Datei falls das irgendwie möglich ist (keine Ahnung ob das irgendwie realisierbar ist). Dann können die getrennt vom Modul ergänzt/übersetzt usw. werden. Oder man legt im Modul ein Standardset bei und lädt aber eine Userdatei nach und erweitert damit die Hashes.
2.) Vielleicht bekommt man es hin, das man mit einem Eintrag eine gewisse Unschärfe der Befehle abfangen kann und dafür nicht mehrere Einträge in den Hashes benötigt z.B. Teil|Teile in Teile? (regexp) umwandeln.
Hallo tiroso,
die Idee ist sehr gut.
Ich steure mein FHEM teilweise per XMPP und habe daher die Frage ob diese Option evtl. auch noch hinzugefügt werden könnte, neben der Telegramm Anbindung.
Zur Zeit muss ich für jeden Befehl der angenommen werden soll eine eigene kleine Routine in die myUtils aufnehmen. Mit deinem Modul wäre das natürlich obsolet und alles sehr viel bequemer.
Gruß, Thomas
Kann ich gerne mal nachsehen. Als workaround kannst du natürlich ein notify einrichten welcher den Befehl an das TEERKO device überträgt. Quasi mit set TextCommand.
@mumpitzstuff:
Das gabe ich versucht, bringt aber noch zu viel quatsch wenn User ihre eigenen befehle einbringen. Es sind sehr viele Einträge aber mit denen ist eine gewisse Unschärfe erlaubt. Aber ich werde da nochmal dran bleiben
Hallo tiroso,
anbei ein paar Fragen/Anregungen/Feststellungen meinerseits.
Ich habe ein wenig mit deinem Modul gespielt, dabei ist mir direkt beim ersten einrichten eine Frage/Idee gekommen:
- Kannst du für das attr TEERKOAlias mehrere Namen zulassen, welche man mit Komma oder so trennt?
eine Kleinigkeit:
- Wäre es möglich das mir "Das verstehe ich nicht. die Lichterkette im Schlafzimmer einzuschalten war kein Problem." ausgegeben wird. (siehe list)
Internals:
CFGFN
NAME TEERKO
NR 32386
NTFY_ORDER 50-TEERKO
STATE Das verstehe ich nicht. die Lichterkette Schlafzimmer einzuschalten war kein Problem.
TYPE TEERKO
name TEERKO
Readings:
2017-06-04 05:07:34 Answer Das verstehe ich nicht. die Lichterkette Schlafzimmer einzuschalten war kein Problem.
2017-06-04 05:07:34 command fahre das Rollo IM schlafzimmer nach oben und schalte die lichterkette ein
2017-06-04 05:07:34 countdevices 2
2017-06-04 05:07:34 countsubstrings 2
2017-06-04 05:07:34 countwords 12
2017-06-04 05:07:34 lastCommand fahre das Rollo IM schlafzimmer nach oben und schalte die lichterkette ein
2017-06-04 05:07:34 lastDevices TEERKO_Rollo_Schlafzimmer,TEERKO_Lichterkette_Schlafzimmer
2017-06-04 05:07:34 state Das verstehe ich nicht. die Lichterkette Schlafzimmer einzuschalten war kein Problem.
Attributes:
TEERKOStructure own
room 4.29_TEERKO
Wie man an dem list von oben sieht, habe ich gesagt "fahre das Rollo IM schlafzimmer nach oben..."
- Wäre es hier möglich, zusätzlich noch die Worte:
für Hoch
rauf
hinauf
nach oben
auf
für Runter
hinab
ab
zu
nach unten
einzubauen?
Da kommen mir bestimmt noch weitere Ideen/Anregungen/Fragen. 8)
##### EDIT
Kann man das loggen abschalten, dein Modul müllt mir meinen LOG voll ? Verbose steht auf 0
Folgende Meldungen kommen beim Neustart:
2017.06.04 05:45:23.713 1: PERL WARNING: Smartmatch is experimental at ./FHEM/98_TEERKO.pm line 1170, <$fh> line 13090.
2017.06.04 05:45:23.713 1: PERL WARNING: Smartmatch is experimental at ./FHEM/98_TEERKO.pm line 1174, <$fh> line 13090.
2017.06.04 05:45:23.713 1: PERL WARNING: Smartmatch is experimental at ./FHEM/98_TEERKO.pm line 1205, <$fh> line 13090.
2017.06.04 05:45:23.714 1: PERL WARNING: Smartmatch is experimental at ./FHEM/98_TEERKO.pm line 1209, <$fh> line 13090.
2017.06.04 05:45:23.715 1: PERL WARNING: Smartmatch is experimental at ./FHEM/98_TEERKO.pm line 1278, <$fh> line 13090.
2017.06.04 05:45:23.716 1: PERL WARNING: Smartmatch is experimental at ./FHEM/98_TEERKO.pm line 1290, <$fh> line 13090.
2017.06.04 05:45:23.717 1: PERL WARNING: Smartmatch is experimental at ./FHEM/98_TEERKO.pm line 1357, <$fh> line 13090.
2017.06.04 05:45:23.721 1: PERL WARNING: main::TEERKO_CheckCommand() called too early to check prototype at ./FHEM/98_TEERKO.pm line 1282, <$fh> line 13090.
Zitat von: Ma_Bo am 04 Juni 2017, 05:47:11
Folgende Meldungen kommen beim Neustart:
2017.06.04 05:45:23.713 1: PERL WARNING: Smartmatch is experimental at ./FHEM/98_TEERKO.pm line 1170, <$fh> line 13090.
2017.06.04 05:45:23.713 1: PERL WARNING: Smartmatch is experimental at ./FHEM/98_TEERKO.pm line 1174, <$fh> line 13090.
2017.06.04 05:45:23.713 1: PERL WARNING: Smartmatch is experimental at ./FHEM/98_TEERKO.pm line 1205, <$fh> line 13090.
2017.06.04 05:45:23.714 1: PERL WARNING: Smartmatch is experimental at ./FHEM/98_TEERKO.pm line 1209, <$fh> line 13090.
2017.06.04 05:45:23.715 1: PERL WARNING: Smartmatch is experimental at ./FHEM/98_TEERKO.pm line 1278, <$fh> line 13090.
2017.06.04 05:45:23.716 1: PERL WARNING: Smartmatch is experimental at ./FHEM/98_TEERKO.pm line 1290, <$fh> line 13090.
2017.06.04 05:45:23.717 1: PERL WARNING: Smartmatch is experimental at ./FHEM/98_TEERKO.pm line 1357, <$fh> line 13090.
2017.06.04 05:45:23.721 1: PERL WARNING: main::TEERKO_CheckCommand() called too early to check prototype at ./FHEM/98_TEERKO.pm line 1282, <$fh> line 13090.
Anstelle von Smartmatch kann man grep verwerden. Aus
$roomstringtemp_score=$roomstringtemp_score+1000 if($_ ~~ @sub_qgram);
wird dann
$roomstringtemp_score=$roomstringtemp_score+1000 if(grep(/\b$_\b/, @sub_qgram));
Ggen das "called too early to check prototype" hilft es die sub am Anfang einfach einmal zu definieren. Ich mache das immer nach der Initialize sub
sub TEERKO_CheckCommand ($$$);
Wichtig ist, das die angegebenen Argumente mit denen der echten Sub übereinstimmen.
Noch zwei Anmerkungen von mir:
Die ganzen Listen am Anfang sollten meiner Meinung nach auch mit TEERKO_ anfangen. Dann kann es nicht passieren, dass sich das mit selbstgebastelten Lösungen überschneidet. Die Variablennamen sind nicht so spieziell, als das nicht irgendwer die schon mal vergeben haben könnte.
Ich würde das Modul glaube ich unter 39_ einsortieren, da es da auch schon die alexa und siri Module gibt.
Zitat von: igami am 04 Juni 2017, 06:25:13
Anstelle von Smartmatch kann man grep verwerden. Aus
$roomstringtemp_score=$roomstringtemp_score+1000 if($_ ~~ @sub_qgram);
wird dann
$roomstringtemp_score=$roomstringtemp_score+1000 if(grep(/\b$_\b/, @sub_qgram));
Ggen das "called too early to check prototype" hilft es die sub am Anfang einfach einmal zu definieren. Ich mache das immer nach der Initialize sub
sub TEERKO_CheckCommand ($$$);
Wichtig ist, das die angegebenen Argumente mit denen der echten Sub übereinstimmen.
Noch zwei Anmerkungen von mir:
Die ganzen Listen am Anfang sollten meiner Meinung nach auch mit TEERKO_ anfangen. Dann kann es nicht passieren, dass sich das mit selbstgebastelten Lösungen überschneidet. Die Variablennamen sind nicht so spieziell, als das nicht irgendwer die schon mal vergeben haben könnte.
Ich würde das Modul glaube ich unter 39_ einsortieren, da es da auch schon die alexa und siri Module gibt.
Danke igami :
Da ich in Perl nicht deeeer Überfliegen bin hilft mir sowas weiter. Die von dir genannten Dinge werde ich umsetzen !!!
@igami:
Ich habe die Sachen soweit umgesetzt...Allerdings habe ich ein paar Fragen:
Dein Vorschlag smartmatch zu entfernen bin ich nachgekommen. Allerdings funktioniert deine Lösung nicht wie gedacht. Wenn ich das eins zu eins bei mir einsetze wird einfach alles gematcht ... selbst wenn es gar nicht im array enthalten ist. Ich habe etwas herumexperimentiert und habe mich dann dafür entschlossen eine kleine Funktion zu schreiben die mir einfach zurück liefert wenn ein Wert in dem Array vorhanden ist oder nicht
sub TEERKO_ValueInArray{
my ($value, @array) = @_;
foreach (@array) {
return 1 if ($_ eq $value);
}
return 0;
}
Ist das genauso effizient? Ich will möglichst das verwenden was am wenigsten Ressourcen verwendet.
Das die Listen am besten umbenannt werden leuchtet mir ein. Auch hier habe ich Abhilfe geschaffen.
Was mir noch nicht ganz einleuchtet sind die Namensbezeichnungen...
Ist es mittlerweile nicht egal welche Nummerierung man vor die Module setzt solange es nicht (historisch bedingt) 99_* ist? Oder versuchen die Modulschreiber trotzdem einer gewissen Nummerierung zu folgen? Ansonsten muss ich dir Recht geben, es wäre bei 39_* besser aufgehoben, aber wodurch ist die 39 entstanden?
Danke für den Tipp die Funktion CheckCommand am Anfang zu definieren. Jetzt hatte ich nur ein Problem. Ich dachte es wäre "sauberer" wenn ich alle subs am Anfang definiere. Wenn ich das mache werden die aber nicht mehr Korrekt aufgerufen und das Matching mit der Funktion TEERKO_ValueInArray funktioniert nicht mehr(weder Fehlermeldung noch Warnung). Hast du einen Tip woran das liegen könnte?
Danke für die Ratschläge
Hallo Tiroso,
wie versprochen habe ich das Modul mal eingebunden. Ich finde die Idee charmant, gezielt Geräte für die Sprachsteuerung zuzulassen. Das ist zwar erst mal etwas aufwändig, weil man alle Devices noch mal anfassen muss, ein Sicherheitsaspekt ist es aber auf alle Fälle.
Derzeit vermiss ich noch die Heizungssteuerung, nach der Lichtsteuerung ja die wohl am meisten genutzte SmartHome-Funktion.
Das Thema mit dem "Zumüllen" der log kann ich bestätigen, dein Modul ist noch ziemlich "chatty".
Auch das Thema "Hashes" würde ich gern noch mal aufgreifen - ich denke, um die Sprache von den Devices zu trennen würde sich rivescript sehr gut eignen, das Modul 42_TALKTOME.pm nutzt dieses Sprachscript ja auch, und durch seine einfache Erlernbarkeit kann man Dein Modul hier in meinen Augen massiv aufwerten. Bezüglich Struktur in Rive sind wir hier im Forum ja schon dran, ich hoffe, dass wir hier eine sinnvolle Struktur aufgebaut bekommen, dass man dadurch einfacher Texteingaben nach eigenem Bedürfnis abändern und/oder ergänzen kann.
Noch etwas wird aus der (momentanen) Dokumentation nicht klar: Was muss getan werden, um TEERKO via AMAD zu steuern? Braucht es einen eigenen Flow in Autovoice? Lässt sich das Flow von CoolTux als Grundlage nehmen und wo hin muss der erkannte Text dann gehen?
Liebe Grüße,
der mit den vielen Buchstaben ;)
Es bedarf keinen direkten eigenen Flow. Alles was ausgelöst werden muss ist der Flow VoiceControl der gestartet wird wenn man set AMADEVICE activatVoiceInput macht. Zum jetzigen Zeitpunkt muss der Flow VoiceControl aber noch angepasst werden. Die Schleife für das "und" muss raus.
Ich habe in der Version 4 ein Attribut für die Bridge drin. fhemControlMode zulässig ist trigger,setControl und thirdPartControl.
In Fall von Teerko wäre es dann thirdPartControl.
Zitat von: tiroso am 04 Juni 2017, 13:37:52
Dein Vorschlag smartmatch zu entfernen bin ich nachgekommen. Allerdings funktioniert deine Lösung nicht wie gedacht. Wenn ich das eins zu eins bei mir einsetze wird einfach alles gematcht ... selbst wenn es gar nicht im array enthalten ist.
Hmm, ich habe es mit folgendem Code eben noch mal getestet. Einfach in die FHEM Kommandozeile kopieren und enter drücken.
{my @array = (1, 2, 3, 4, 56);;
my @test = (1, 3, 42);;
my $msg;;
foreach my $i (@test){
if(grep(/\b$i\b/, @array)){
$msg .= "$i ist im Array enthalten\n";;
}
else{
$msg .= "$i ist NICHT im Array enthalten\n";;
}
}
return $msg;;
}
Bei mir kommt dann folgendes raus:
1 ist im Array enthalten
3 ist im Array enthalten
42 ist NICHT im Array enthalten
Zitat von: tiroso am 04 Juni 2017, 13:37:52
Was mir noch nicht ganz einleuchtet sind die Namensbezeichnungen...
Ist es mittlerweile nicht egal welche Nummerierung man vor die Module setzt solange es nicht (historisch bedingt) 99_* ist? Oder versuchen die Modulschreiber trotzdem einer gewissen Nummerierung zu folgen? Ansonsten muss ich dir Recht geben, es wäre bei 39_* besser aufgehoben, aber wodurch ist die 39 entstanden?
Es hat keine Relevanz mehr, aber im Wiki (https://wiki.fhem.de/wiki/DevelopmentModuleIntro#Dateiname) steht folgendes:
Zitat
Die allgemeine Empfehlung ist hierbei eine Schlüsselnummer eines Moduls zu verwenden, welches eine ähnliche Funktionalität bietet.
Zitat von: tiroso am 04 Juni 2017, 13:37:52
Danke für den Tipp die Funktion CheckCommand am Anfang zu definieren. Jetzt hatte ich nur ein Problem. Ich dachte es wäre "sauberer" wenn ich alle subs am Anfang definiere. Wenn ich das mache werden die aber nicht mehr Korrekt aufgerufen und das Matching mit der Funktion TEERKO_ValueInArray funktioniert nicht mehr(weder Fehlermeldung noch Warnung). Hast du einen Tip woran das liegen könnte?
Da kann ich dir leider nicht weiterhelfen, ich baue das bei meinen Modulen überalle so ein, ohne das es Probleme gibt. Vielleicht einfach mal Stückchenweise probieren um den Fehler einzugrenzen ;)
@Tiroso
Lese Dir mal bitte den Teil "AmmadCommBridge" unter "neue Funktionen/Feature (https://forum.fhem.de/index.php/topic,72373.msg640116.html#msg640116)" durch.
Für alle Anderen welche das Modul gerne mit AMAD verwenden möchten, empfehle ich ein Update auf AMAD 4.0 (AMADNG) zu machen. Dort wird dieses Modul bereits unterstützt.
Bitte beachtet die entsprechende Attribut Einstellung in der Bridge.
Ihr habt vollkommen Recht ich habe vergessen die harten LOG Einträge rauszunehmen. Das ist natürlich ein absolutes NoGo.
Ich habe die korrigierte Version angehangen. Da sind wenigstens die ganzen Einträge weg.
Echt schrecklich, da muss ich euch Recht geben.
@Ma_Bo:
Ich werde natürlich in Zukunft weitere Keywords integrieren.
@yrwyddfa:
Ich habe vor mit dem Modul wirklich ein eigenes "Frontend" zusammenzubauen. Natürlich müssen dann noch weitere Funktionalitäten folgen. Das wird natürlich aufgrund der vielen Geräte die man mit FHEM steuern kann eine Weile dauern. Ich werde mit HM Stellvetilen anfangen und dann mal weiter machen. Streng genommen ist es bis jetzt nicht nur eine Lichtsteuerung. Durch das flexible anpassen der Befehle kannst du auch einer Structur sagen Sie soll ausschalten. Du kannst eigentlich alle Geräte ein oder ausschalten oder hoch runter fahren usw. Natürlich fehlen dann die benötigten Keywords (Ma_Bo) um das ganze abzurunden. Als nächstes steht auf meiner Agenda das Abfragen von Temperaturen (Geräte oder Raumbezogen)
Um TEERKO via AMAD zu steuern muss das Attr AMADDevice in dem TEERKO Device setzen.
Ich werde die UserdefiniertenBefehle noch überarbeiten. Das ist alles noch was ...strange...
@CoolTux: Danke dir herzlichst... :) Das macht es was leichter. Aber das Reading in der AMADCommBridge bleibt doch das gleiche oder?
Zitat von: tiroso am 07 Juni 2017, 13:36:38
@CoolTux: Danke dir herzlichst... :) Das macht es was leichter. Aber das Reading in der AMADCommBridge bleibt doch das gleiche oder?
Selbstverständlich. Steht auch so im verlinkten Post. Bleibt alles soweit gleich. Ist zwar bisschen doof weil auch die Einstellung trigger die selben Readings füllt, aber ich denke mal das ich es gut platzieren werde in der Commandref.
Grüße
Zitat von: Ma_Bo am 04 Juni 2017, 05:18:23
- Kannst du für das attr TEERKOAlias mehrere Namen zulassen, welche man mit Komma oder so trennt?
- Wäre es möglich das mir "Das verstehe ich nicht. die Lichterkette im Schlafzimmer einzuschalten war kein Problem." ausgegeben wird.
Wie man an dem list von oben sieht, habe ich gesagt "fahre das Rollo IM schlafzimmer nach oben..."
- Wäre es hier möglich, zusätzlich noch die Worte:
für Hoch
rauf
hinauf
nach oben
auf
für Runter
hinab
ab
zu
nach unten
einzubauen?
Kann man das loggen abschalten, dein Modul müllt mir meinen LOG voll ? Verbose steht auf 0
Ma_Bo:
Die Keywords sind hinzugefügt.
Präpositionen und Artikel werden gefiltert und der Antwort korrekt hinzugefügt. In deinem Fall:
Die Licherkette
im Schalfzimmer einzuschalten war kein Problem.
Es besteht die Möglichkeit mehrere TEERKOAliase oder TEERKORäume in einem Device zu setzen. (
Komma getrennt). Somit kann ein zb ehemaliges TEERKOAlias "
Deckenlampe" nun auch "
Deckenlampe,Beleuchtung,Zimmer Lampe, ..." heißen. Natürlich wird auch das passende Alias in der Antwort verwendet
Log ist derzeit stark minimiert...Ich muss da noch an den richtigen stellen nachbessern damit man auch damit abeiten kann. Also gibts jetzt gerade keinen ^^
Sehr cool, werde ich die Tage testen...
Jetzt muss ich nur noch schauen, wie ich die Antwort aus deinem Modul in eine sub bekomme... ich brauche diese sub um Alexa antworten zu lassen, bzw. mit der sub wird der Text, welcher von Alexa kommt, in ein Reading eines dummys geschrieben und damit dein Modul gefüttert...
Gesendet von iPhone mit Tapatalk
Hi,
hab es eben getestet, klappt prima. Bisher hab ich aber auch nur eine Lampe hinzugefügt :-)
Ein "kleiner" Wunsch, bisher nutzen meine Frau und ich schon Telegram zur Steuerung, im Hintergrund ist ein Mega-DOIF, welche die ankommenden Nachrichten auf bestimmte Wörter, z.B. PC an etc abgleicht, das DOIF kann den Chat meiner Frau und meinen händeln, selbst die Nachbarin die ab und an den Trockner nutzt hängt mit drin :-)
Lange Rede kurzer Sinn, würden mehr als eine PeerId gehen oder mach ich da lieber 2 Teerkos?
Grüße
Achim
Ich habe pro TEERKO nur eine PeerId oder ein Amad device. Damit am Schluss auch jeder seine eigenen benutzerdefierten Befehle hat (der Part muss von mir noch stark überarbeitet werden)
Auch Für zukünftige Features hatte ich mir vorgenormen immer nur ein Peer zu haben.
Zitat von: Ma_Bo am 09 Juni 2017, 16:12:08
Sehr cool, werde ich die Tage testen...
Jetzt muss ich nur noch schauen, wie ich die Antwort aus deinem Modul in eine sub bekomme... ich brauche diese sub um Alexa antworten zu lassen, bzw. mit der sub wird der Text, welcher von Alexa kommt, in ein Reading eines dummys geschrieben und damit dein Modul gefüttert...
Gesendet von iPhone mit Tapatalk
Mit Alexa kenne ich mich leider so gaaaaar nicht aus. Sollte es aber möglich sein die commands anzugreifen ohne das amazon irgendwas schaltet und waltet uuuuund die tts auf dem dot zu realisieren wäre das natürlich seeeeehr interessant.
Hi,
hat problemlos mit zwei TEERKO Device geklappt, die Telegram anbindung habe ich aber wieder rausgenommen, TV an geht halt schneller als schalte den TV im Schlafzimmer an ;-) ich denke das Modul macht mit Sprache mehr Sinn, wenn es nur nicht so "umständlich" wäre diese von Anddoid zu FHEM zu bringen :-)
Grüße
Achim
Wenn TV das einzige Device ist was du so genannt hast kannst du es auch ohne Raum sagen...
Der Raum wird halt sinnvoll wenn du mehrere Geräte hast die so heißen.
Wenn du einen im Schlafzimmer und Wohnzimmer hast die auch genau gleich heißen, dann musst du noch "im Schlafzimmer" oder "im Wohnzimmer" sagen
Es wäre dann in deinem Fall gekürzt "Schalte TV ein" ;)
Aber du hast schon Recht. Es wird kürzer wenn man seine FHEM Geräte kennt und so auch dann anpasst.
Ich hatte mal eine Testversion in der konnte das Modul Sprachnachrichten von Telegram über Google umsetzen....da musste man seinem Bot nur ne Sprachmessage schicken. Aber leider war mir das zu instabil...Vielleicht kommt es irgendwann wieder rein
Jetzt auch mit Temperaturabfrage...
Entweder für ein Gerät oder einen Raum.
Sollte das abzufragende Gerät eine Structure sein, wird in jedem Gerät innerhalb der Structure nach Temperaturen gesucht.
Sollte man nur für einen Raum die Temperatur abgefragt werden, so wird entweder die Temperatur eines Gerätes innerhalb des Raumes zurückgegeben oder ein durchschnittswert wenn mehrere Geräte gefunden werden.
Beispiel1:
"Wie warm ist es im Wohnzimmer"
oder
"Wie kalt ist es im Wohnzimmer"
oder
"Wie ist die Temperatur im Wohnzimmer"
(Es müssen Geräte mit einem Temperatur Reading das Attr TEERKORoom Wohnzimmer gesetzt haben)
Rückgabe:
Die Temperatur im Wohnzimmer beträgt xx,xx Grad
Beispiel2:
"Wie warm ist der Temperatursensor im Wohnzimmer"
oder
"Wie kalt ist der Temperatursensor im Wohnzimmer"
oder
"Wie ist die Temperatur des Temperatursensors im Wohnzimmer"
(Es muss ein Gerät mit einem Temperatur Reading das Attr TEERKOAlias Temperatursensor TEERKORoom Wohnzimmer gesetzt haben)
Rückgabe:
Die Temperatur des Temperatursensors im Wohnzimmer beträgt xx,xx Grad
Achtung:
User Konfigurationen gehen vor. Das Keyword Temperatur, warm oder kalt gelten in TEERKO als Spezialkeywords...Sollte ein Device den Namen Temperatur, warm oder kalt haben funktioniert dieser Spezialbefehl nicht mehr
Hallo,
Die User Definierten Befehle waren vorher seeehr umständlich. Ich habe den Part nun geändert.
Benutzerdefinierte Befehle werden in einer externen Datei festgelegt. Somit kann man diese auch im nachhinein ändern.
User definierte Befehle - Datei
Es ist möglich eigene Befehle in einer externen Datei abzulegen.
Die Datei muss folgenden Aufbau haben
[command]
in=wie geht es dir (heute|jetzt)
out=gut
fhem=set testdummy on
[command]
in=was geht jetzt
out=Keine Ahnung
fhem=set testdummy2 off
activ=0
[command]
in=ich.*arbeit
out=viel spass
fhem=set anwesenheit work
Wenn der Befehl mit "in" matched dann wird "out" zurückgegeben und "fhem" ausgeführt. "fhem" muss nicht mit angegeben werden. Wird "out" nicht mit angegeben wird standart "ok" zurückgegeben. Mit dem Parameter "activ" kann man einen Befehl aktivieren oder deaktivieren.
Sollte ein Benutzerdefinierter Befehl auf den Befehl passen wird dieser nicht mehr mit den internen Schaltungen abgeglichen
Die benutzerdefinierte Datei wird eingelesen per
set <TEERKO Device> ReadUserFile <file>
Wenn in "out" Readings stehen sollen werden diese folgendermaßen dargestellt:
Reine "state" Angabe:
out=Der Status der Lampe ist %device%
bestimmtes Reading:
out=Die Temperatur beträgt %device:temperature%
bestimmtes Reading in der Angaben ersetzt werden sollen:
out=Die Haustür ist %device:state:opened=geöffnet&closed=geschlossen%
Um nicht immer wieder den Pfad angeben zu müssen kann man diesen unter dem Attr UserDefFile speichern. Danach kann man das ReadUserFile ohne Pfadangabe ausführen.
Durch die User Befehle könnt ihr euxh ggf viele Notifys sparen...
Feedback gewünscht ^^
Sorry Leute.
Die User definierte Datei war noch von mir Hardcoded. ..
Jetzt nicht mehr. Bitte nochmals herunterladen
Bin gerade am testen.Super Sache :). Kann man den Speicherort irgendwo fest hinterlegen?
Oh ja klar. Hatte ich vergessen zu hinterlegen.
attr <TEERKO Device> UserDefFile /opt/fhem....
Somit brauchst du "nur" noch ReadUserFile ohne Pfadangabe
Hallo tiroso,
wäre es möglich, hier auch rive-Dateien anzugeben/zu integrieren? Die lassen sich ja sehr intuitiv schreiben.
LG
Yw
Hey.
Dafür habe ich mich mit RS zu wenig auseinander gesetzt. Sprich ich habe es nicht drin und es erstmal auch nicht vor. Mein Modul soll keine richtigen Dialoge aufbauen.
Auf ein Befehl soll maximal eine Antwort folgen gepaart mit ggf Fhem commands.
Kannst du mir mal eine RS datei zur Verfügung stellen? Vllt kann ich da ja was machen.
Gruß
Gern! Kommt, wenn ich wieder an meinem Rechner bin :)
So, sorry for me took so long. Hier sind ein paar Beispieldateien, eine Kombination aus Spielerei und fhem-Abfragen, allerdings alles noch ziemlich alpha-Status. Wenn Du Fragen hast, immer zu, ansonsten gibt es bezüglich Rivescript ein super Tutorial hier:
https://www.rivescript.com/docs/tutorial
Kein Problem...
Habe mich aber doch verschluckt. :D Das sieht interessant aus, werde ich aber so nicht übernehmen können.
Ich muss zugeben das ich mit dem Modul etwas eigenes versucht habe zu konstruieren. Und so wie ich es umsetze, funktioniert es komplett anders als RS.
Ich hatte jetzt aber nur das Script für Statusabfrage geöffnet. Was mir aber auch aufgefallen ist...Du musst dort wieder jeden einzelnen Raum bzw Reading angeben. Ich versuche mein Modul möglichst flexibel zu gestalten. Mein Modul nimmt bei einer Temperatur abfrage für einen Raum alle Temperatur Readings die er in dem Raum finden kann, und bildet einen Mittelwert
Tut mir Leid aber das wird nichts. Ich weiß leider auch nicht wie ich mein Modul in Richtung mehrfachen Dialog gestalten soll...Vielleicht irgendwann, da würde ich dann nochmal Bescheid geben.
Aber ein paar Befehle kannst du auch in meinem Benutzerdefinierten Part einbauen. Damit könnte es gehen.....
Vielleicht baue ich das auch nochmal um oder erweiter es das zumindest Teile eines RS erkannt werden....
Ich werde mir mal mehr Gedanken drum machen ^^
Gruß und schönen Abend
Danke dir fürs drüberschauen!
Ich denke, so unterschiedlich ist deine user defined file zu rivescript, lediglich die Syntax variiert ein wenig. Dein .* entspricht in rs zum Beispiel dem
[*]
Statt "in" wird als trigger + verwendet, statt out das -
Der fhemaufruf wird über ein <call>fhem ... </call> realisiert, welcher bei dir in der fhem= Zeile steht,
Spannend an rivescript ist, dass du Bedingungen angeben kannst, also zb. Antwort a) nur gegeben wird, wenn der bot gute Laune hat, ansonsten würde Antwort b) gegeben.
Die Option, dass Antworten unterschiedlich ausfallen können ist indess ein echter Mehrwert, da auf die selbe Aktion nicht immer eine identische Bestätigung kommt (kommen muss).
Eventuell lässt sich ja auch eine Kombilösung finden? Ich helf gern, wenn ich kann!
Edith hat die Syntax verbessert.
Neue Funktion: Abfrage der Räume und Devices
Hallo Leute,
Noch keine Erweiterung der Befehlserkennung, da komme ich im Moment was schleppender voran.
Aber eine Erweiterung für die Übersichtlichkeit in FHEM
get <TEERKO Device> Information all|rooms|devices
Abfrage über die Devices die mit dem Modul TEERKO in Kontakt kommen. Entweder Räume und Devices oder jeweils einzeln
Diese können auch fest in Fhem eingebunden werden:
define TeerkoDevices weblink htmlCode { TEERKO_HtmlDevices() }
define TeerkoRooms weblink htmlCode { TEERKO_HtmlRooms() }
Ich hoffe ich komme dazu in den nächsten Tagen weitere Befehlssätze aufzunehmen
Neue Funktion: Steuern von Sonos BoxenMan hat nun die Möglichkeit SonosBoxen zu integrieren.
durch setzen des Attributs
SonosIntegration am TEERKODevice und TEERKOControl an den Sonos Boxen kann man Sonos Boxen ansteuern.
Sofern kein passendes Device gefunden wird aber die Keywords im Satz enthalten sind, geht das TEERKO Device davon aus das Sonos Boxen gesteuert werden sollen. Es wird nach einem Raum in dem Satzteil gesucht. Sollte kein Raum vorhanden sein, wird der für die Sonos Boxen zu letzt verwendete benutzt. Sollten mehrere Rooms genutzt werden wollen können diese noch über TEERKORoom gesetzt werden. Diese werden dann auch berücksichtigt.Beispiel:
Schalte Sonos im Wohnzimmer einIst einmal ein Raum gegannt worden wird dieser für zukünftige Befehle gespeichert
Schalte Sonos aus,
Sonos aus,
Stop SonosErst nach nennen eines anderen Raumes wird der Standartplayer geändert.
Derzeit werden nur für Sonos Geräte folgende Befehle unterstützt:
- Schalte Sonos (aus|ein)
- (Stoppe|Stop|Starte|Pausiere) Sonos
- Stelle die Sonos Lautstärke (lautlos|ohne Ton)
- Stelle die Sonos Lautstärke auf 15
- Sonos nächstes Lied
- Sonos vorheriges Lied
Ich arbeite weiter an Playlist..Radio..Lied weiter, zurück..etc...aber somit ist eine einfache Steuerung gegeben
Super neues Modul! Danke! Lies sich völlig problemlos installieren und die Steuerung per Telegram hat auf Anhieb funktioniert.
Licht an/aus funktioniert problemlos. Aber mit Markise und Garagentor habe ich noch Probleme. Das Modul versteht mich entweder nicht oder sagt, dass es keine Berechtigung habe, obwohl im Device auf 1 gesetzt (siehe ScreenShot). Was kann ich ändern oder testen?
Leicht irritieren tun mich die Leerzeichen vor den TEERKO-Raumnamen; kommt wohl dadurch, dass ich bei der Definition in der Liste nach dem Komma ein Leerzeichen gemacht habe. Kannst Du das im Modul abfangen oder soll ich es bei der Definition ändern?
PS: ich habe noch ein paar Tippfehler gefunden, die das Modul in der Kommunikation von sich gibt. Soll ich Dir eine Liste zusammenstellen?
Hey.
Danke.
Ja lass mir mal eine Liste zukommen. Im Moment sind viele Texte noch die, die ich von Anfang an drin habe. (Tippfehler und RechtschreibFehler inklusive; ))
Ja es liegt definitiv an den Leerzeichen. Im Moment fange ich das noch nicht im Modul ab. Ich kann später aber mal nachsehen das ich das behebe.
In der Zeit würde ich dir raten die TEERKOALias und TEERKORoom zwar mit Komma zu trennen aber ohne führende oder endende Leerzeichen.
Garagentor,Tor
Westbalkon,Balkon Wohnzimmer,Wohnzimmerbalkon
Dann sollte es eigentlich wieder klappen.
[EDIT]Ich sehe mir das gerade nochmal an....Den Befehl Öffne und Schließe habe ich nicht in meinem Befehlssatz. Danke das werde ich auch mit aufnehmen.
FYI:
Du kannst Befehle wiederholen (Wiederhole den Befehl, Mach das nochmal)
Du kannst das letzte Device auch mit Gerät,Aktor nochmals ansprechen (Fahre das Gerät auf 50%, Schalte den Aktor aus)
Gruß
Achja. Um HueDevice8 ansteuern zu können braucht das Device noch ein TEERKOAlias. Deckenlampe oder Beleuchtung oder wie es auch heissen mag
Für das Device HueDevice8 komme ich auch ohne TERRKOAlias aus, der normale fhem-Alias tut es auch. Die Raum-Aliase habe ich nun ohne Leerzeichen eingegeben, sieht besser aus, aber funktioniert dennoch nicht.
Ich kann die Markise nicht bewegen. Egal was ich mache, es kommt immer "Gerät gibt es nicht". Habe den TERRKO-Alias auch geändert, aber keine Änderung.
Hier ein List des Gerätes:
Internals:
CFGFN ./FHEM/homematic.cfg
DEF 455259
HMLAN1_MSGCNT 2
HMLAN1_RAWMSG R03AC9F6F,0001,2F8BCB84,FF,FFBD,7FA410455259200DB80601000042
HMLAN1_RSSI -67
HMLAN1_TIME 2017-07-02 16:20:31
IODev HMLAN1
LASTInputDev HMLAN1
MSGCNT 2
NAME Markise.Wohnzimmerbalkon
NOTIFYDEV global
NR 788
NTFY_ORDER 50-Markise.Wohnzimmerbalkon
STATE hoch
TYPE CUL_HM
lastMsg No:7F - t:10 s:455259 d:200DB8 0601000042
protLastRcv 2017-07-02 16:20:31
protSnd 2 last_at:2017-07-02 16:20:31
protState CMDs_done
rssi_HMLAN1 avg:-66 lst:-66 cnt:1 max:-66 min:-66
rssi_at_HMLAN1 avg:-67 max:-67 cnt:2 min:-67 lst:-67
Readings:
2017-05-10 09:01:25 CommandAccepted yes
2016-11-19 15:30:07 D-firmware 2.8
2016-11-19 15:30:07 D-serialNr NEQ0112032
2016-12-22 11:27:31 PairedTo 0x200DB8
2016-11-19 15:31:19 R-driveDown 28 s
2016-11-19 15:31:19 R-driveTurn 0.5 s
2016-11-19 15:31:19 R-driveUp 30 s
2016-11-19 15:31:18 R-pairCentral 0x200DB8
2016-11-19 15:31:19 R-sign off
2016-12-22 11:27:31 RegL_00. 02:01 0A:20 0B:0D 0C:B8 15:FF 18:00 00:00
2016-12-22 11:27:35 RegL_01. 08:00 09:00 0A:00 0B:01 0C:18 0D:01 0E:2C 0F:05 10:00 30:06 57:24 56:00 00:00
2017-07-02 16:20:31 deviceMsg off (to VCCU)
2017-07-02 16:20:31 level 0
2017-07-02 16:20:31 motor stop:off
2017-07-02 16:20:31 pct 0
2016-12-22 11:26:55 powerOn 2016-12-22 11:26:55
2017-07-02 16:20:31 recentStateType info
2017-07-02 16:20:31 state off
2017-07-02 16:20:31 timedOn off
Helper:
HM_CMDNR 127
cSnd ,01200DB8455259010E
mId 0005
rxType 1
supp_Pair_Rep 0
Dir:
cur stop
Expert:
def 1
det 0
raw 1
tpl 0
Io:
newChn +455259,00,00,00
nextSend 1499005231.3744
rxt 0
vccu VCCU
p:
455259
00
00
00
prefIO:
HMLAN1
Mrssi:
mNo 7F
Io:
HMLAN1 -65
Prt:
bErr 0
sProc 0
Rspwait:
Q:
qReqConf
qReqStat
Role:
chn 1
dev 1
prs 1
Rpt:
IO HMLAN1
flg A
ts 1499005231.21555
ack:
HASH(0x53xxxx)
7Fxxxx
Rssi:
Hmlan1:
avg -66
cnt 1
lst -66
max -66
min -66
At_hmlan1:
avg -67
cnt 2
lst -67
max -67
min -67
Tmpl:
Attributes:
IODev HMLAN1
IOgrp VCCU:HMLAN1
TEERKOAlias xyz
TEERKOControl 1
TEERKORoom Wohnzimmerbalkon,Westbalkon,Balkon Wohnzimmer
autoReadReg 4_reqStatus
devStateIcon hoch:fts_sunblind_0@green runter:fts_sunblind_100@red 9\d.*:fts_sunblind_90@black 8\d.*:fts_sunblind_80@black 7\d.*:fts_sunblind_70@black 6\d.*:fts_sunblind_60@black 5\d.*:fts_sunblind_50@black 4\d.*:fts_sunblind_40@black 3\d.*:fts_sunblind_30@black 2\d.*:fts_sunblind_20@black 1\d.*:fts_sunblind_10@black 0\d.*:fts_sunblind_100
eventMap on:runter off:hoch
expert 2_raw
firmware 2.8
group Markise
model HM-LC-BL1-FM
peerIDs 00000000,
room 41_Balkone,Homematic,Markise
serialNr NEQxxxxx
subType blindActuator
webCmd hoch:runter:pct
Hmm...wenn es das normale Fhem alias tut ist das noch ein Fehler meinerseits.
Es sollte so sein das entweder FHEM Alias/FHEM Room oder TEERKO Alias/TEERKO Room funktionieren.
Also sollte in dem TEERKO Device das Attribut TEERKOStructure entweder nicht gesetzt oder auf own stehen.
In dem zu steuernden Device sollte TEERKOAlias auf Markise stehen, TEERKOControl auf 1 und TEERKORoom auf Wohnzimmerbalkon,Westbalkon,Balkon Wohnzimmer
Setze mal in dem TEERKO Device verbose auf 5.
Und dann probiere mal folgendes:
Schalte die Markise aus
Schalte die Markise an
Schalte die Markise auf dem Westbalkon aus
Schalte die Markise auf dem Westbalkon an
Und dann sage mir mal was passiert und was im Log steht
Aha! entweder - oder! Ich dachte, dass der TERRKOStructure-Wert "fhem" neben den TERRKO Aliase die fhem-Aliase zusätzlich verfügbar macht. Ich hatte es auf "fhem" stehen. Daher haben die gesetzten TERRKO-Aliase nicht funktioniert. Jetzt habe ich den Wert auf "own" gesetzt und schon bewegt sich die Markise. Fährt rein und raus und lies sich auf 50% fahren. Werde morgen weiter testen. Danke für Deinen entscheidenden Hinweis! Und die HUE-Lampe wird nun korrekterweise unter ihrem fhem-Alias nicht mehr gefunden.
Das Garagentor ist etwas anders, das kennt open, close und stop als Befehle. Die Übersetzung muss ich TERRKO wohl morgen beibringen.
Neuer Punkt: Ich bekomme öfters den Hinweis "Eine Batterie ist nicht mehr ok. Betroffenes Gerät: hue_switch_1". Aber das Device sagt: Battery 100%. Hier ein list
Internals:
CFGFN ./FHEM/hue.cfg
DEF sensor 3 1 IODev=huebridge1
ID S3
INTERVAL 1
IODev huebridge1
NAME hue_switch_1
NR 953
STATE unknown
TYPE HUEDevice
lastupdated 2017-07-02 23:38:30
manufacturername Philips
modelid RWL021
name Dimmer Flur
on 1
reachable 1
swversion 5.45.1.16265
type ZLLSwitch
uniqueid 00:17:88:01:10:32:d5:a0-02-fc00
Readings:
2017-07-01 11:11:16 Taste dim_up
2017-07-02 23:38:30 battery 100
2017-07-02 23:38:30 reachable true
2017-07-02 23:38:30 state 3003
Helper:
devtype S
reachable 0
update_timeout 1
Setlist:
Attributes:
IODev huebridge1
alias HUE Dimmer Flur
comment 3003: lang anhaltender Tastendruck dim_down
Die Tasten haben folgende Funktionen: erste Betätigung kurz, nachfolgende Betätigungen kurz, lang anhaltende Betätigung
eventMap 1002:on 2002:dim_up 3002:dim_down 4002:off
group Taster_HUE
icon hue_filled_hds
room Fernbedienung,HUEDevice
stateFormat Taste
subType switch
userReadings Taste
Sehr gut...Ich habe auch auf meiner ToDo die Anleitung zu überarbeiten und verständlicher zu schreiben.
Wie gesagt, Öffnen und Schließen habe ich noch nicht in dem Befehlssatz drin. Als Workaround kann ich nur folgendes empfehlen:
Du kannst sagen: Fahre das Garagentor hoch oder Fahre das Garagentor runter
In dem Device Garagentor setzt du dann die Attribute TEERKOUp open und TEERKODown close...Dann kannst du das Garagentor wenigstens so erstmal steuern.
Mit der Batterie. Sofern das Attribut informlowbatterie gesetzt ist greife ich alle Events auf die mit Batterie zu tun haben und informiere sobald diese ungleich "ok" sind...das trifft ja in deinem Fall zu, ist aber natürlich nicht korrekt.
Das muss ich auch überarbeiten...Vllt alles was kleiner 20 ist
Hallo zusammen,
das Modul ist genau das was ich gesucht habe, kann mir jemand erklären oder wonach ich suchen muß?
Wie verknüpfe ich das Mico bez. Lautsprecher mit dem Modul?
Danke
Mikro oder Lautsprecher von was?
Wie kommt den meine Sprache ins Modul? Über ein Mikro welches ich an meinen Banana anschließen muß,oder?
gruß
Ich weiß erstmal persönlich nur das Du AMAD nehmen kannst. Also ein Androidgerät für VoiceInput. Sprachausgabe kommen dann wohl auch darüber.
Hey.
Es geht in dem Modul nur um Text Processing. Für die Sprache bzw Texte bediene ich mich an den Readings anderer Module ( Wie z.b. AMAD NG von CoolTux oder TelegramBot) Ausserdem gibt es die Möglichkeit selber Text an dem Modul einzugeben. Was dir die Möglichkeit gibt auch aus anderen Modulen / Scripten deinen Text auswerten zu lassen.
Jetzt wo du es ansprichst werde ich noch das TTS Modul zur Ausgabe mit reinnehmen.
Ich hoffe du findest einen guten Weg bzw das es dir reicht.
Zitat von: hartenthaler am 03 Juli 2017, 00:30:28
Neuer Punkt: Ich bekomme öfters den Hinweis "Eine Batterie ist nicht mehr ok. Betroffenes Gerät: hue_switch_1". Aber das Device sagt: Battery 100%.
Hey.
Ich habe das jetzt behoben. Ich weiß im Moment geht es was schleppend, habe viel um die Ohren.
Gemeldet werden Batterien die nicht mehr Ok sind oder unter 10 fallen. Die Meldung wird dann nur einmalig generiert...Selbst wenn das Event öfters auftreten sollte.
Ich hoffe ich konnte dir helfen.
Zitat von: hartenthaler am 03 Juli 2017, 00:30:28
Das Garagentor ist etwas anders, das kennt open, close und stop als Befehle. Die Übersetzung muss ich TERRKO wohl morgen beibringen.
Teerko versteht nun auch Öffnen und Schließen (Ebenfalls kann man in dem Device wieder Benutzerdefinierte befehle hinterlegen. Standard sind Öffnen:open und Schließen:close)
Beispiel:
Öffe das Garagentor
Schließe das Garagentor
Mach das Garagtentor auf
Mach das Garagentor zu
So ich teste im Moment doch sehr viel mit meinem Modul und wie ich es am effizientesten aufbaue. Im Moment klappt das zeitlich nicht so in den Rahmen sonst würde ich eine TimeLine aufstellen und mehr an dem Modul arbeiten.
Ich habe eine kleine Funktion erweitert. Vielleicht kann die jemand gebrauchen und noch besser erstmal testen und mir Feedback geben.
Erweiterung und einen sehr simplen Timer
Alle gesprochenen Befehle (ausser die Benutzer definierten) können nun mit einem Timer in die Zukunft gesetzt werden.
Beispiel:
Schalte die Stehlampe im Wohnzimmer in 30 Sekunden aus
Fahre das Garagentor in 5 Minuten runter
Dimme in 60 Minuten die Stehlampe auf 30%
Wichtig:
Es muss die zeitliche präposition "in" vorkommen
Es geht nur eine Zeitangabe (kein 5 Minuten und 30 Sekunden)
Hallo,
ich benötige mal wieder Hilfe.. wie bekomme ich die Verbindung von AMAD auf das Modul TEERKO??
Meine sprach befehle kommen in AMAD an aber gehen nicht weiter.
Und wenn ich in TEERKO TextCommand nutze geht auch das Licht an.
Was fehlt mir??
Gruß
Zitat von: buchner51 am 24 Juli 2017, 16:22:47
Hallo,
ich benötige mal wieder Hilfe.. wie bekomme ich die Verbindung von AMAD auf das Modul TEERKO??
Meine sprach befehle kommen in AMAD an aber gehen nicht weiter.
Und wenn ich in TEERKO TextCommand nutze geht auch das Licht an.
Was fehlt mir??
Gruß
Was bedeutet bei Dir das sie ankommen? Werden die Readings in der Bridge entsprechend gesetzt?
Mach mal bitte ein
list AMADCommBridge
Grüße
In dem TEERKO device gibt es ein Attribut das nennt sich AMADDevice. Trag da mal dein Amad Device ein.
Btw:
Ich hatte iwie in meinem nächtlichen Leichtsinn gedacht das die Präposition immer zeitlich ist wenn kein Artikel folgt...also wenn du im Moment Räume hast mit Eigennamen (bsp. Lisas Zimmer) dann funktioniert die Raumangabe nicht. Muss ich noch fixen.
Hallo,
hier meine List Ansicht:
Internals:
BRIDGE 1
CONNECTS 994
FD 16
NAME AMADCommBridge
NR 185
PORT 8090
STATE opened
TYPE AMAD
VERSIONFLOWSET 2.6.12
VERSIONMODUL 2.6.13
READINGS:
2017-07-24 16:07:21 expertMode 1
2017-07-07 17:58:05 fhemServerIP 192.168.55.8
2017-07-24 16:16:48 receiveVoiceCommand schalte das licht im esszimmer ein
2017-07-24 16:16:48 receiveVoiceDevice HegsiSprach
2017-07-24 15:47:34 state opened
2017-07-15 14:34:20 transmitterERROR AMADCommBridge_192.168.55.25_38793 has no device name sends
Attributes:
room System
Dann mach nochmal ein List von dem TEERKO Device
Mach mal den expertMode auf 0
Also die Readings werden entsprechend gesetzt. Jetzt weiß ich allerdings nicht wie das Modul da nun weiter macht. Musst Du noch ein Notify erstellen oder klinkt sich das Modul direkt an. Was sagt die Beschreibung?
Die Beschreibung sagt leider das ich in der Richtung noch viel zu tun habe. (Also wenig)
Vieles was eigentlich zwingend erforderlich ist. Bin zu anfang was unkontrolliert an die Sache rangegangen.
Von der Theorie reicht es aber das benötigte Amad Device (nicht die Bridge) in dem Attribut AMADDevice in dem Teerko einzutragen
Ah, OK. Aber auslesen tut er dann entsprechend das Bridge Device, oder? Anders geht es ja auch nicht.
Ab Morgen wird im übrigen nur noch AMADNG ausgeliefert per Update.
Danke tiroso,
das war der entscheidende Hinweis.
Darf man jeden Alias nur einmal verenden?
Ich hab ausversehen licht Küche gesagt statt Küche Esszimmer, aber im Esszimmer ging das licht an.
Küche hab ich noch keine Device angelegt.
Gruß
Ich habe es so eingerichtet das, im Moment noch fest, eine Abweichung von maximimal 25% möglich ist (Aufgrund der Missverständnisse STT oder Tippfehler)
Schick mir mal ein List von dem zu schaltenden device und welche zwei Sätze du genau gesagt hast bzw was bei AMAD angekommen ist.
@buchner51:
Ich habe mir deinen Beitrag nochmal angesehen. Eine raumangabe muss immer mit Präposition erfolgen.
Ich weiss es ist etwas gewöhnungsbedürftig aber ich habe noch keinen weg gefunden herauszufinden ob jetzt wirklich die suche auf einen Raum begrenzt werden soll oder nicht.
In deinem Fall gibt es wahrscheinlich ein Device mit dem Namen Licht im dem Raum Esszimmer.
Korrekt wäre es zu sagen: Schalte das Licht im Esszimmer aus
Dann würde nach einem Device Licht im Raum Esszimmer gesucht werden.
Schalte das Esszimmer Licht an
Es wird nach einem Device Esszimmer Licht gesucht. Und am Nächsten kommt dem dein Device Licht. Das wird zu 100% in dem Text gefunden. Da ist es Egal ob du sagst Küchen Licht / Esszimmer Licht oder komisches Licht.
Dann musst du im Moment das Device Esszimmer Licht nennen oder diePräposition mit reinnehmen (Licht im Esszimmer)
Ich hoffe das war verständlich und ich konnte damit die Funktion erklären.
Gruß
Verbesserung der Abgleiche mit potentiellen Devices oder Rooms
Fixed:
Zeitangabe ist mit Präposition "in" möglich
Raumangabe ist ebenfalls mit "in" möglich
New in Sonos Integration:
Starten einer Playlist/Radio/Favouriten
Hallo,
ein tolles Modul.
Weitere Vorschläge zur Raumerkennung:
bei | an | neben
(Das Licht BEI der Rampe einschalten, Licht AN der Rampe einschalten, NEBEN der Rampe...)
Wie ich gerade teste, geht bereits: Das Licht IM Beet einschalten.
Dank und Gruß
Stefan
Zitat von: tiroso am 25 Juli 2017, 22:37:25
Verbesserung der Abgleiche mit potentiellen Devices oder Rooms
Fixed:
Zeitangabe ist mit Präposition "in" möglich
Raumangabe ist ebenfalls mit "in" möglich
...
Zitat von: tiroso am 23 Juli 2017, 00:38:49
Wichtig:
Es muss die zeitliche präposition "in" vorkommen
Es geht nur eine Zeitangabe (kein 5 Minuten und 30 Sekunden)
ich würde mich auf das "in" für die Zeit nicht zu sehr versteifen. Bei meinem Skript habe ich die Zeiterkennung auf sekunde/sekunden/minute/minuten/stunde/stunden/uhr festgesetzt. Meistens erfolgt dann die Angabe der Zeit genau ein Wort vor diesen. Ich habe bei mir die Zeiten dann stumpf zusammengeführt ("2 minuten und 144 sekunden" --> at +00:04:24). Das "in" und "für" braucht man dann nur noch um zu differenzieren, ob 2 Aktionen ausgeführt werden sollen oder nur eine... und das "in" / "für" sollten dann 2 Wörter vor der ersten Zeiteinheit bzw 4 Wörter vor der ersten Zeiteinheit erfolgen (2 Wörter > "in 2 minuten"; 4 Wörter > "in 2 komma 5 minuten").
in --> "färbe Wohnzimmer in 2 minten blau" --> eine Aktion "
define at_xyz at +00:02:00 set HUEDevice7|HUEDevice3 rgb 0000ff"
für --> "färbe Wohnzimmer in 2 minten blau" --> zwei Aktionen (ABER Definitionssache) "
set HUEDevice7|HUEDevice3 rgb 0000ff" und "
define at_xyz at +00:02:00 set HUEDevice7|HUEDevice3 off"
<nichts angegeben> --> "farbe Wohnzimmer 2 minuten blau" --> "für"
Ich bin noch an einem neuen Algorithmus dran aber ich werde das mit aufnehmen.
@oggy...das Problem bei für x minuten einschalten. Ich habe noch kein Umgang fpr die Negation. Da muss ich noch nachsehen ob ich eine default negation einsetze wie off...und alles andere kann der Benutzer dann entscheiden.
@bsl02..
Danke dir. Rein aus Neugier. Wie nutzt du das Modul? Mit AMAD; Telegram oder hast du dir das auf eigene Art und Weise eingebunden?
Habe seit heute auch mal TEERKO installiert und getestet.
Funktioniert schon ganz nett und könnte meine selbstgebastelten und mittlerweile doch recht unübersichtlichen Taskerprofile ersetzen. :)
ZitatErweiterung und einen sehr simplen Timer
Funktioniert bei fürs ausschalten, jedoch nicht fürs einschalten. Ist das so korrekt?
Und ich bekomme direkt das Feddback dass das Licht ausgeschaltet wurde, obwohl es korrekterweise erst nach 30 Sekunden aus geht, wie ich es befohlen habe.
Ist aber schon ein super Modul. In Verbindung mit AMAD macht es schon echt Spaß. :)
VG, Thomas
Danke dir.
Eigentlich sollte es sich mit einschalten klappen. Dauert noch ein bisschen dann habe ich auch eine doch stark überarbeitete Version. :)
Zitat von: tiroso am 01 Juni 2017, 08:23:51
attr <TEERKODevice> TEERKOStructure [own,fhem]
Default: own
Wenn das Attr auf own gesetzt ist (defaultwert) TEERKO kann mit allen Geräte interagieren in denen TEERKOAlias gesetzt ist.
Wenn du das ganz auf fhem umstellst kannst du mit allen Geräten interagieren in denen das hauseigene alias gesetzt ist
Da es momentan noch unklar ist ob es mal einheitliche Sprach Attribut für die verschiedenen Sprachmodule gibt:
https://forum.fhem.de/index.php/topic,75785.msg676139.html#msg676139 (https://forum.fhem.de/index.php/topic,75785.msg676139.html#msg676139)
Wäre es möglich das "TEERKOStructure" Attribut um "alexa" zu erweitern damit TEERKO auch das "alexaName" Attribut verwenden kann?
uij, schon wieder ein geiles modul - thx dafür!
ich hätte da aber gleich 2 fragen:
1) könnte man räume etwas flexibler gestalten? "im terrasse" kommt so blöd *g*
oder gibts da eh schon ne lösung, die ich wieder nur übersehen hab?
2) kann ich auch von winconnect ( https://forum.fhem.de/index.php/topic,59251.0.html ) aus befehle versenden?
das wäre ja quasi das amad von windows ...
In der nächsten Version, Dauert leider noch etwas, kannst du sämtliche Präpositionen verwenden( im, in, auf der, neben der, etc.) Das sollte dann für die Terrasse reichen.
An Winconnect hatte ich noch gar nicht gedacht. Ist ja eig passend. Da muss ich dann nur noch sehen in welchem Reading der Sprachbefehl dann steht.
Als übergangslösung kannst du ein Notify/doif auf dein WinConnect reagieren lassen und schreibst das Reading mit dem Sprachbefehl in das Teerko Device. Dann kann man wenigstens direkt damit was machen. Die Antwort an dem Teerko Device kannst du ja wieder an WinConnect schicken
ach du, ich hab zeit - bin ja froh, das du sowas überhaupt bastelst *g* ist ne echte erleichterung gegen meine ehemaligen spielereien mit tasker.
ich verwend zwar winnconnect, weiß aber noch nicht mal ob der cortana abfangen kann. der autor is aber auch verdammt umgänglich und flott, sollte man ideen vorbringen.
btw - gleich noch ne freche frage:
ich wollte immer schon eine art indirektes intercom.
das könnte ja mit den selber erstellten befehlen gehen, nur dafür fehlt mir derzeit noch die idee ...
müsste wohl sowas sein wie: "sage <username/androiddevice/winconnectdevice>: blaa blubb blaa", oder "durchsage na alle: blaa blubb blaa"
blaa blubb blaa wird dann einfach per ttsmsg an das/die device(s) gesendet.
Hey tiroso,
es wäre noch super wenn man irgendwo eine Genus-Definition hätte.
Wenn ich folgendes Frage: Wie ist der Status des Fensters im Arbeitszimmer?
dann kommt als Antwort: Der Fenster im Arbeitszimmer ist closed.
Das klingt irgendwie bisschen doof.^^
Wie man in der Antwort erkennen kann, funktioniert das Attribut bei mir aktuell auch nicht
attr Teerko sarReading opened:geöffnet,closed:geschlossen
VG, Thomas
Da habe ich ewig drüber nachgedacht weiss aber nicht wie ich das einbinden soll. Sieht aber wirklich nicht schön aus da gebe ich dir recht.
Wieso das sarReading nicht klappt...hmm...hast du noch was geduld bis zurnächsten Version?
ZitatWieso das sarReading nicht klappt...hmm...hast du noch was geduld bis zurnächsten Version?
Ja klar. Das Modul ist ja für mich nicht überlebenswichtig.^^ Ich warte einfach ab und teste dann wenn du soweit bist. :)
VG, Thomas
Guten Morgen,
ich finde diese Vorgehensweise für User die kein Alexa und Co. nutzen wollen, sehr interessant.
Eventuell hab ich es überlesen, aber gibt es schon brauchbare Hardware die man als Micro nutzen kann ?
Weil grundsätzlich finde ich dieses Modul vom Ansatz super. Aber der Mega krasse Vorteil von Alexa, bzw. von den Dots sind die Micros. Die hören wirklich ziemlich gut zu.
Gibt es irgendwelche Hardware, die man für dieses Modul einsetzen kann um eine ähnliche Qualität zu bekommen ?
Grüße,
Visionsurfer
gehts nur mir so? hab probleme bei %
jeder befehl, der % enthällt, wird zwar erkannt, aber falsch ausgeführt z.b. set_0 anstelle 50% oder auch mal gar nix (stellantrieb knackst, passieren tut nix)
übrigens gehts um homematc, sofern das relevant is.
2017.09.04 11:10:42 1: Logfile gelöscht
2017.09.04 11:11:05 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/39_TEERKO.pm line 2822.
2017.09.04 11:11:05 1: stacktrace:
2017.09.04 11:11:05 1: main::__ANON__ called by ./FHEM/39_TEERKO.pm (2822)
2017.09.04 11:11:05 1: main::TEERKO_CheckCommand called by ./FHEM/39_TEERKO.pm (1581)
2017.09.04 11:11:05 1: main::TEERKO_Notify called by fhem.pl (3451)
2017.09.04 11:11:05 1: main::CallFn called by fhem.pl (3372)
2017.09.04 11:11:05 1: main::DoTrigger called by fhem.pl (4344)
2017.09.04 11:11:05 1: main::readingsEndUpdate called by ./FHEM/73_AMADCommBridge.pm (831)
2017.09.04 11:11:05 1: main::AMADCommBridge_ResponseProcessing called by ./FHEM/73_AMADCommBridge.pm (695)
2017.09.04 11:11:05 1: main::AMADCommBridge_ProcessRead called by ./FHEM/73_AMADCommBridge.pm (618)
2017.09.04 11:11:05 1: main::AMADCommBridge_Read called by fhem.pl (3451)
2017.09.04 11:11:05 1: main::CallFn called by fhem.pl (697)
2017.09.04 11:11:21 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/39_TEERKO.pm line 2829.
2017.09.04 11:11:21 1: stacktrace:
2017.09.04 11:11:21 1: main::__ANON__ called by ./FHEM/39_TEERKO.pm (2829)
2017.09.04 11:11:21 1: main::TEERKO_CheckCommand called by ./FHEM/39_TEERKO.pm (1581)
2017.09.04 11:11:21 1: main::TEERKO_Notify called by fhem.pl (3451)
2017.09.04 11:11:21 1: main::CallFn called by fhem.pl (3372)
2017.09.04 11:11:21 1: main::DoTrigger called by fhem.pl (4344)
2017.09.04 11:11:21 1: main::readingsEndUpdate called by ./FHEM/73_AMADCommBridge.pm (831)
2017.09.04 11:11:21 1: main::AMADCommBridge_ResponseProcessing called by ./FHEM/73_AMADCommBridge.pm (695)
2017.09.04 11:11:21 1: main::AMADCommBridge_ProcessRead called by ./FHEM/73_AMADCommBridge.pm (618)
2017.09.04 11:11:21 1: main::AMADCommBridge_Read called by fhem.pl (3451)
2017.09.04 11:11:21 1: main::CallFn called by fhem.pl (697)
2017.09.04 11:11:34 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/39_TEERKO.pm line 2829.
2017.09.04 11:11:34 1: stacktrace:
2017.09.04 11:11:34 1: main::__ANON__ called by ./FHEM/39_TEERKO.pm (2829)
2017.09.04 11:11:34 1: main::TEERKO_CheckCommand called by ./FHEM/39_TEERKO.pm (1581)
2017.09.04 11:11:34 1: main::TEERKO_Notify called by fhem.pl (3451)
2017.09.04 11:11:34 1: main::CallFn called by fhem.pl (3372)
2017.09.04 11:11:34 1: main::DoTrigger called by fhem.pl (4344)
2017.09.04 11:11:34 1: main::readingsEndUpdate called by ./FHEM/73_AMADCommBridge.pm (831)
2017.09.04 11:11:34 1: main::AMADCommBridge_ResponseProcessing called by ./FHEM/73_AMADCommBridge.pm (695)
2017.09.04 11:11:34 1: main::AMADCommBridge_ProcessRead called by ./FHEM/73_AMADCommBridge.pm (618)
2017.09.04 11:11:34 1: main::AMADCommBridge_Read called by fhem.pl (3451)
2017.09.04 11:11:34 1: main::CallFn called by fhem.pl (697)
2017.09.04 11:11:34 1: PERL WARNING: Use of uninitialized value $insertint in substitution (s///) at ./FHEM/39_TEERKO.pm line 2904.
2017.09.04 11:11:34 1: stacktrace:
2017.09.04 11:11:34 1: main::__ANON__ called by ./FHEM/39_TEERKO.pm (2904)
2017.09.04 11:11:34 1: main::TEERKO_CheckCommand called by ./FHEM/39_TEERKO.pm (1581)
2017.09.04 11:11:34 1: main::TEERKO_Notify called by fhem.pl (3451)
2017.09.04 11:11:34 1: main::CallFn called by fhem.pl (3372)
2017.09.04 11:11:34 1: main::DoTrigger called by fhem.pl (4344)
2017.09.04 11:11:34 1: main::readingsEndUpdate called by ./FHEM/73_AMADCommBridge.pm (831)
2017.09.04 11:11:34 1: main::AMADCommBridge_ResponseProcessing called by ./FHEM/73_AMADCommBridge.pm (695)
2017.09.04 11:11:34 1: main::AMADCommBridge_ProcessRead called by ./FHEM/73_AMADCommBridge.pm (618)
2017.09.04 11:11:34 1: main::AMADCommBridge_Read called by fhem.pl (3451)
2017.09.04 11:11:34 1: main::CallFn called by fhem.pl (697)
in der combridge kommts richtig anreceiveVoiceCommand
stelle das rollo im straße auf 50%
2017-09-04 11:11:33
receiveVoiceDevice
MiniMe_AMAD
2017-09-04 11:11:33
btw.: ists absicht, das runter und rauf nur 10% macht? ich hätte da eig. on und off erwartet?
dumme sätze wie "schalte das rollo im strasse ein/aus" funzen dann aber sogar mit 100% und 0% als ergebnis.
Super Modul! Vielen Dank!
Ich hatte einige Tests mit den UserFile´s gemacht. Dabei habe ich bemerkt dass die Reihenfolge der Befehle in der Datei eine Rolle spielt:
hier greift: steffi geht schlafen mit musik (und die Varianten)
[command]
in=(steffi|stefanie).*(schlafen|bett).*musik
out=Steffi geht schlafen mit Einschlafmusik
fhem=set sz_generell scene SchlafenMusik
activ=1
[command]
in=(steffi|stefanie).*(schlafen|bett)
out=Steffi geht schlafen
fhem=set sz_generell scene SchlafenGehen
activ=1
hier greift: steffi geht schlafen mit musik (und die Varianten) nicht mehr
[command]
in=(steffi|stefanie).*(schlafen|bett)
out=Steffi geht schlafen
fhem=set sz_generell scene SchlafenGehen
activ=1
[command]
in=(steffi|stefanie).*(schlafen|bett).*musik
out=Steffi geht schlafen mit Einschlafmusik
fhem=set sz_generell scene SchlafenMusik
activ=1
Meine Frage, ist das so gewollt, oder sollten sämtliche Befehle vorher geprüft/ausgwertet und dann gemached werden?
Gibt es noch andere "Schreibweisen" der Befehle, bzw. andere Möglichkeiten zu differenzieren?
Hey Minias,
Danke dir.
Es ist tatsächlich so das der erste Match auch zählt. Es wird nicht mehr "gecheckt" welcher am besten passen würde. Das einzige was ich dir empfehlen kann, ist im zweiten teil anzugeben das musik nicht vorkommen darf.
Ungefähr so:
Anstatt
(steffi|stefanie).*(schlafen|bett)
dann
(steffi|stefanie).*(schlafen|bett)(?!.*musik)
Alles was du mit RegEx matchen kannst sollte möglich sein
Funktioniert :)
Vielen Dank! Ich werde mir noch verschiedene RegEx Möglichkeiten ansehen.
Jetzt habe ich gleich noch eine Frage.
Hier gebe ich die AMADDevice an. Funktioniert wunderbar! Der Befehl wird ausgeführt und bekomme eine Rückmeldung über das AMAD TTS (Attribute in AMADCommBridge : fhemControlMode thirdPartControl setzen!)
attr <name> AMADDevice <AMADDevice>
Wenn ich jetzt mehrere Android Geräte habe, wüsste TEERKO nicht an welchem den Befehl abholen und bei welchem rück-melden, oder habe ich einen Denkfehler?
In der AMADCommBridge wären beide Readings (receiveVoiceCommand,receiveVoiceDevice) vorhanden:
BRIDGE 1
CONNECTS 6284
FD 32
NAME AMADCommBridge
NR 235
PORT 8090
STATE opened
TYPE AMADCommBridge
VERSIONFLOWSET 4.0.7
VERSIONMODUL 4.0.5
READINGS:
2017-09-07 12:42:24 fhemServerIP 192.168.1.130
[b] 2017-09-08 14:54:15 receiveVoiceCommand alles aus
2017-09-08 14:54:15 receiveVoiceDevice g_tablet_android_amad [/b]
2017-09-08 10:04:51 state opened
Attributes:
fhemControlMode thirdPartControl
group Module,System/Sonstige
icon audio_repeat
room Mobile,System
Wie könnte ich über mehrere AMAD-Devices Sprachbefehle absetzen?
Ich habe pro TEERKO Device nur ein zugeordnetes Gerät vorgesehen.
Für jedes Amad Device also ein weiteres TEERKO
Man könnte überlegen
receiveVoiceDevice
aus zu werten. So für spätere Versionen :)
Derzeit lasse ich ja receiveVoiceDevice auswerten ;) Deswegen ja auch das Attr da.
Hey tiroso, wird das Modul noch weiterentwickelt? :)
Gibt es mittlerweile schon eine Beta?
VG, Thomas
Hey.
Ja ich arbeite noch daran :-\
Geht leider sehr schleppend voran.
Allerdings werden ein paar Attribute dann anders aussehen.
Derzeitiger Stand sind normale Basis Schaltungen (an,aus,pct,hoch,runter,color)
Es dauert so lange da ich die komplette Struktur und die Auswertung umgestellt habe.
Leider fehlen im Moment noch die Funktionen Sonos,Statusabfrage,Temperaturabfrage.
Die würde ich gerne noch hinzufügen bevor ich es rausgebe.
Okay, dann warte ich einfach noch ein bisschen ab. ;)
In der Alpha hatte ich einige Probleme. Die kommende Beta wird stabiler laufen aber noch nicht mit dem gleichen Umfang.
Trotzdem interesse? Auch wenn Sonos noch nicht funktioniert...oder Temperaturabfrage...oder in Zeit x schalten? ;)
Dann würde ich es vorher schon online stellen
Gibt es denn eine grobe Timeline bis wann du die Beta fertig haben möchtest? ;)
ich würd eher nach beta-testern fragen ... die freuen sich und du sparst dir 10 mio. dumme fragen, wanns den fertig is und warum was nicht geht *g*
ich werde mich jetzt die Tage mal hinsetzen und eine Beta draus machen. Wem die Funktionen fehlen kann ja noch meine alpha verwenden. ;).
Ich melde mich montag denke ich
Hi tiroso,
kann man die neue Version schon irgendwo herunterladen um sie zu testen? :)
VG, Thomas
Hallo zusammen,
mein Google Home und ich würden uns gerne als BETA-Tester zur Verfügung stellen :)
Ich habe das Modul von der Startseite geladen und installiert, soweit funktioniert es auch. Mich wundert allerdings das anscheinend sehr viele Funktionen wie zB "ReadUserFile" fehlen. Gibt es einen weiteren Download-Link den ich übersehen habe?
Würde mich sehr freuen wenn die Entwicklung weiter gehen würde, ich finde die ersten Ansätze und Möglichkeiten klasse. Gibt es eine Spenden Adresse?
Gruß,
Maik
Huhu
Also wenn wir unseren Umzug überstanden haben und uns ein wenig eingelebt haben (mit anderen worten alle kartons etc mal ausgepackt sind) würde ich bzw wir uns mit unserem Google Home auch als Betatester melden :)
klingt sehr vielversprechend und sicher besser als ifttt :)
grüße Legu
Hallo tiroso,
bekomme beim starten von FHEM folgende Perl Warnung ins Log geschrieben:
PERL WARNING: "my" variable @climainformation masks earlier declaration in same scope at ./FHEM/39_TEERKO.pm line 2968, <$fh> line 2574.
Könntest du das bitte mal checken?
Beste Grüße Schlimbo
Hallo,
zusammen ich bräuchte mal etwas Hilfe.
Ich würde gerne eine Art ALEXA aufbauen mit dieser Erweiterung, die Sprachausgabe hab ich mit MyTTS realisiert.
Die Spracheingabe würde ich gerne mit einem Mikrofon machen, vielleicht testweise mit dem auf dem PI und später mit einem USB.
Aber wie bekomme ich das hin.
Kann ich MY TTS auch direkt als Sprachausgebe verbinden oder muss ich über amad gehen?
Ich bin etwas weiter gekommen für die jenigen denen es ähnlich geht:
In TEERKO muss folgendes eingestellt werden:
Set AMADAnswer text2speech
und
Set AMADText2Speech MyTTS
In fhem muss AMAD eingerichtet werden, als erstes die AMADCommBridge:
define myAmadBridge AMADCommBridge
danach das Android Gerät nach AMAD Wiki vorbereiten und dem Flow Assistenten folgen, wichtig ist das der autocreate Device aktiviert ist.
Der Assistent richtet das Device in Fhem ein.
Das Modul Tex2Speech muss auch eingericht werden.
...weiteres folgt, wenn es jemand interessiert?
gruß
Thomas
Hallo Zusammen,
wie es aussieht, ist das Modul wohl gestorben. :(
Schade eigentlich, der Ansatz war echt gut.
Jetzt die Frage: Kann ich es irgendwie deinstallieren? Also so dass auch die globalen Attribute wieder verschwinden?
VG, Thomas
Oh, das wäre sehr schade!
Habe es eben erst in Betrieb genommen und es funktioniert prima!
Deinstallieren musst du vermutlich manuell durchführen...
...also Define aus der fhem.cfg -> delete This Device
und dann eben bei global im Attribut userattr alle Einträge löschen, also auf das userattr klicken und entsprechend "bereinigen"...
Aber so wie ich das gesehen habe heißen ja praktisch alle TEERKOirgendwas...
Gruß, Joachim
is das auch sicher, dass das modul nicht mehr entwickelt wird?
der entwickler wollt doch alles neu machen, wenn ich mich recht erinner?
wenn doch: wäre echt schade, auch ich hab da viel hoffnung in verbindung mit dieser matrix-irgendwas microfon-array gesteckt ghabt.
Siehe hier.
https://forum.fhem.de/index.php/topic,81737.msg738020.html#msg738020
LG
pah
*tief verbeug*, herr prof.
Hallo zusammen,
Ich war privat die letzten Monate was "ausgenockt". Sorry dafür...
Ich habe mich allerdings wieder dran gesetzt und habe auch vor das in Zukunft weiter zu machen.
Aufgrund von Stabilität habe ich eine Beta erstellt ohne Sonos Steuerung...
Im Moment werden die nur die Basis Befehle unterstützt (Farbe, ein-ausschalten,hoch-runterfahren,dimme,prozent,auf-zu,start-stop).
Im Device global Attr userattr könnt ihr alle Einträge mit TEERKO ausser TEERKOAlias,TEERKORoom und TEERKOExpert entfernen. Dann wird es etwas aufgeräumter.
Bitte testen und bei Fragen Fragen !!!! :)
Zitat von: tiroso am 05 Januar 2018, 18:27:21
Hallo zusammen,
Ich war privat die letzten Monate was "ausgenockt". Sorry dafür...
Hoffentlich nichts Schlimmes!
Welcome back! :)
Zitat von: tiroso am 05 Januar 2018, 18:27:21
Ich habe mich allerdings wieder dran gesetzt und habe auch vor das in Zukunft weiter zu machen.
Und schön, dass es weitergeht! :)
Zitat von: tiroso am 05 Januar 2018, 18:27:21
Aufgrund von Stabilität habe ich eine Beta erstellt ohne Sonos Steuerung...
Im Moment werden die nur die Basis Befehle unterstützt (Farbe, ein-ausschalten,hoch-runterfahren,dimme,prozent,auf-zu,start-stop).
Im Device global Attr userattr könnt ihr alle Einträge mit TEERKO ausser TEERKOAlias,TEERKORoom und TEERKOExpert entfernen. Dann wird es etwas aufgeräumter.
Gut das mit SONOS trifft mich nicht, habe keine...
Die Einträge werde ich dann mal raus nehmen...
...gibt es sonst noch etwas zu beachten?
Einfach Modul "überkopieren", reload/restart und gut?
UserCommands gehen aber noch!?
Arbeite (aktuell) hauptsächlich (noch) damit...
Zitat von: tiroso am 05 Januar 2018, 18:27:21
Bitte testen und bei Fragen Fragen !!!! :)
Testen folgt (wenn ich wieder Zeit hab) und gefragt hab ich ja schon ;)
Danke, Joachim
Danke.
Ja Usercommands gibt es noch. Die wurden verbessert und ermöglichen bessere Szenarien.
Genau...einfach drüber kopieren.
Es kommt dann wahrscheinlich erstmal zu einer Fehlermeldung da sich die Parameter einzelner subs verändert haben. Also kann man die Meldung ignorieren sollte aber ein shutdown restart durchführen damit 39_TEERKO.pm korrekt eingelesen wird
Achja...da ich dem User die Möglichkeit geben will selber zu entscheiden was Teerko machen soll setzt du am besten unter TEEERKOFeatures BasicControl und UserDefinedCommands
Zitat von: tiroso am 05 Januar 2018, 19:26:20
Danke.
Ja Usercommands gibt es noch. Die wurden verbessert und ermöglichen bessere Szenarien.
Genau...einfach drüber kopieren.
Es kommt dann wahrscheinlich erstmal zu einer Fehlermeldung da sich die Parameter einzelner subs verändert haben. Also kann man die Meldung ignorieren sollte aber ein shutdown restart durchführen damit 39_TEERKO.pm korrekt eingelesen wird
Super!
Ok, mach ich so...
...Fehlermeldungen sind kein Problem (ist aktuell ja noch/"nur" auf meinem Testsystem), solange es danach dann geht... ;)
...wird aber wohl morgen Abend oder verm. eher So werden.
Aber dann :)
Bin ja immer noch unschlüssig, ob es nun Alexa, Google Home oder ganz was anderes (wobei da wird die Luft schon dünn, weil für "selbstbau und noch ne Baustelle" hab ich [aktuell] keine Zeit)...
Bei Alexa habe ich alexa-fhem im Einsatz (ha-bridge weil einfacher bei meiner Freundin, die drückt immer noch lieber Schalter ;) und da reicht das dann)...
...bzgl. Google Home teste ich grad, ein Kandidat (momentan mein Favorit) ist TEERKO...
Zitat von: tiroso am 05 Januar 2018, 19:26:20
Achja...da ich dem User die Möglichkeit geben will selber zu entscheiden was Teerko machen soll setzt du am besten unter TEEERKOFeatures BasicControl und UserDefinedCommands
Jep mache ich...
Gruß, Joachim
Hast du gerade den Link parat zu der Umsetzung mit Google Home?
Welchen Link meinst du?
Ich habe IFTTT eingerichtet und schreibe den Text in einen Dummy (momentan noch, da ich dann von dort per Notify verteilen kann wo ich es grad brauche ;) )...
Ich glaube das sind die Threads wo ich das meiste (an Ideen) her hab:
https://forum.fhem.de/index.php/topic,81557.0.html
https://forum.fhem.de/index.php/topic,74371.msg660929.html#msg660929
Gruß, Joachim
link ;) (https://wiki.fhem.de/wiki/Modul_Talk2Fhem#Google_Home_Ger.C3.A4te)
Achja...Für jene die mein Modul schon vorher genutzt haben
Es war vorher möglich mehrere Geräte in einer structure zu steuern.
Das entfällt und es können die structure devices die extra dafür angelegt worden sind gelöscht werden
Sollten mehrere Geräte mit einem Befehl gesteuert werden bitte TEERKOAlias und TEERKORoom verwenden. TEERKO ist in der Lage PLural bestimmungen zu erkennen und dementsprechend auch mehrere Geräte zu steuern (Auszug aus dem ersten Eintrag):
define dummy01 dummy;
attr dummy01 TEERKORoom Haus,Erdgeschoss,!Wohnzimmer
attr dummy01 TEERKOAlias Lampe,Licht,!Deckenlampe
define dummy02 dummy;
attr dummy02 TEERKORoom Haus,Erdgeschoss,!Küche
attr dummy02 TEERKOAlias Lampe,Licht,!Deckenlampe
Somit lässt sich über Schalte alle Lampen im Haus aus beide Lampen ausschalten. Schalte die Deckenlampe aus sorgt aber dafür das die Rückmeldung kommt das es mehrere Geräte mit dem Namen gibt. Schalte die Deckenlampe im Wohnzimmer aus schaltet dagegen nur dummy01.
Also sollten z.B alle Lampen Lichter im TEERKOAlias Lampe,Licht mit drin stehen haben...und natürlich dann auch mehrere Räume in TEERKORoom. Die Zuordnung und Auswertung übernimmt TEERKO
Also ich hab's dann doch schon mal "wenigstens" eingespielt...
...also die Beta-Version...
LÄUFT! :)
Zumindest laufen erste Tests wie zuvor, hab ja noch nicht soo viel umgesetzt bislang...
...und wie gesagt das Meiste mit UserDefinedCommands...
(zum Glück hab ich meine alte fhem.cfg gesichert, da stand der Pfad drin. Der war ja erst mal weg ;) )
Gruß, Joachim
Das freut mich :)
Tut mir Leid. Ich wollte FHEM nicht mit noch mehrAttributen vollknallen. Und da es so viele gibt wo keiner mehr weiss wozu die gehören habe ich meine alle mit TERRKO versehen. Dann weiss jeder wer der Bösewicht ist ;)
Zu den Userdefined Commands. Ich empfehle die im internen Editor zu bearbeiten. Da kannst du dann als SaveAs z.b userdefinedcommands.ini abspeichern. Den Pfad dahin kann man sich gut merken. /opt/fhem/FHEM/userdefinedcommands.ini
Habe bei mir auch direkt ins linke Menü den Link reingesetzt für das bearbeiten mit dem internen Editor
War nicht soooo ernst gemeint ;)
Und ja, habe die Datei auch dort abgelegt, allerdings als "teerko.cfg", dann erscheint sie automatisch unter "Edit Files" ;)
So, nun habe ich auch ein wenig rumgespielt damit, v.a. mit dem Antworten.
Da ich das von alexa-fhem gewohnt bin selber Antworten zurück geben zu können :)
Und da bin ich jetzt (fast) verzweifelt.
Idee: ich triggere auf "Answer" und gebe das dann über mein GOOGLECAST-Modul per "GoogleTranslate" zurück:
sub my_SendAnswerToGoogleHome()
{
# my ($Answer) = @_;
my $Answer = ReadingsVal("teerko", "Answer", "ich habe es nicht gefunden");
my $encodedAnswer = urlEncode($Answer);
my $PreAnswer = "http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=";
Log3(undef, 3, "my_SendAnswerToGoogleHome Answer: $Answer encodedAnswer: $encodedAnswer sent to myGoogleCast.");
fhem("set myGoogleCast play $PreAnswer$encodedAnswer");
}
Wie man sieht war die erste Idee $EVENT im Notify auszugeben...
...aber irgendwie hat der Notify nur immer das erste Mal nach dem Anlegen funktioniert...
Auch verschiedene Varianten gingen nicht, selbst nicht das was der EventMonitor "kreiert" hat...
Zuletzt war ich schon bei
define nAnswerGoogle notify .*Answer.* {Log3(undef, 3, "Das ist ein Test")}
zum Testen...
Aber selbst das ging nicht...
(also immer nur nach dem neu Anlegen)
Ich habe fast Stunden damit zugebracht aber irgendwie keine Lösung gefunden.
Ich habe sogar in 39_TEERKO.pm von readingsSingleUpdate auf readingsBulkUpdate "umgebaut", zumindest mal dort wo die Answer geupdatet wird.
(so fern ich das richtig gefunden/verstanden hab)
Aber half auch nicht...
Dann habe ich zuletzt umgestellt und triggere nun auf:
define nAnswerGoogle teerko:New.Command.done {my_SendAnswerToGoogleHome()}
und jetzt geht es! :)
Aber irgendwie verstehe ich das mit dem Notify auf Answer nicht...
...Event kommt im EventMonitor aber das Notify triggert nicht (zuverlässig)...
Nur so als Info, da ich ja jetzt umgestellt habe.
Gruß, Joachim
Hey.
Ich muss mal nachsehen ob ich Answer als event rausgeben lasse. Ich hatte es mal früher ausgeschaltet da ich es nicht für sinnvoll gehalten hatte.
Ich werde mir mal googlecast ansehen. Kannst fu mir ein list davon geben? Dann kann ich das als ExternalDevice mit angeben. Dann brauchst du kein Notify und der spielt direkt darauf ab
So wie ich das verstehe (Zeile 2586):
readingsSingleUpdate( $defs{$teerkobuild{hashdata}{NAME}}, "Answer", $resonding, 1 );
Sollte das auch ein Event erzeugen.
Im EventMonitor kommt es auch zuverlässig...
2018-01-06 00:47:16 TEERKO teerko command: command: wie sehen die notify aus
2018-01-06 00:47:16 TEERKO teerko Answer: Ich konnte kein Gerät in deinem Befehl erkennen.
2018-01-06 00:47:16 TEERKO teerko New Command done
Immer diese Abfolge mit wandelndem "Inhalt" vom Answer Event...
Aber ein .*Answer.* sollte immer "matchen"...
Egal, mit Trigger auf "New Command done" geht auch.
(Solange du das nicht änderst ;) )
Hier ein list des GOOGLECAST:
Internals:
CCNAME myGoogleCast
DEF myGoogleCast
NAME myGoogleCast
NR 356
STATE online
TYPE GOOGLECAST
READINGS:
2018-01-06 00:47:00 appId 12345678
2018-01-06 00:47:00 appName Default Media Receiver
2017-12-28 23:56:07 castType audio
2017-12-28 23:56:07 idle 1
2018-01-06 00:47:01 mediaContentId http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=%0aIch%20konnte%20kein%20Ger%c3%a4t%20in%20deinem%20Befehl%20erkennen%2e%20%0a
2018-01-06 00:48:31 mediaCurrentPosition 0
2018-01-06 00:47:01 mediaDuration 3.528
2018-01-06 00:48:31 mediaPlayerState IDLE
2018-01-06 00:47:01 mediaStreamType BUFFERED
2017-12-28 23:56:07 model Google Home
2017-12-28 23:56:07 name myGoogleCast
2018-01-06 00:07:41 presence online
2018-01-06 00:48:31 state online
2017-12-28 23:56:07 uuid meineUUIDxxxx-xxxxxxxx-xxxxxxx
2017-12-29 01:52:25 volume 40
helper:
Attributes:
room IFTTT
Abgespielt wird das dann wie folgt:
set myGoogleCast play http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=%0aIch%20konnte%20kein%20Ger%c3%a4t%20in%20deinem%20Befehl%20erkennen%2e%20%0a
EDIT: jetzt muss ich nur noch eine Möglichkeit finden, herauszubekommen, von welchem Google Home / Mini die Anfrage stammte, damit möglichst auch die Antwort dort raus kommt... ;)
Gruß, Joachim
Da habe ich leider keine Antwort drauf...
Aber ich kann dein Googlecast mit als Ausgabe aufnehmen ;)
Zitat von: tiroso am 06 Januar 2018, 09:15:40
Da habe ich leider keine Antwort drauf...
War jetzt auch mehr als "ToDo" für mich gedacht...
Geht halt bei Alexa "automatisch"...
...dafür halt (noch) nicht gezielt...
Zitat von: tiroso am 06 Januar 2018, 09:15:40
Aber ich kann dein Googlecast mit als Ausgabe aufnehmen ;)
Danke!
Wäre nur die Frage wie man dann beeinflussen kann welches GoogleCast-Gerät jeweils antworten soll...
...sollte ich/man (jemals) rauskriegen welches sich nun um die Anfrage "gekümmert" hat... ;-)
Gruß, Joachim
Hast du für jedes Google Home einen eigenen ifttt Account zugewiesen? Dann würde es gehen.
Ansonsten, hast du Mal geschaut ob das GoogleCast Modul ein Event triggert wenn der googlehome im zuhörmodus ist?
So wie Lautstärken Änderung oder eine Statusänderung?
Zitat von: Phill am 06 Januar 2018, 09:52:00
Hast du für jedes Google Home einen eigenen ifttt Account zugewiesen? Dann würde es gehen.
Ansonsten, hast du Mal geschaut ob das GoogleCast Modul ein Event triggert wenn der googlehome im zuhörmodus ist?
So wie Lautstärken Änderung oder eine Statusänderung?
Event konnte ich noch keinen beobachten...
Das mit den Accounts hab ich auch schon gesehen/gelesen...
Wäre aber eher meine Notlösung...
In jedem Raum ein Google Home/Mini wären mir dann doch zu viele Accounts etc.
Bei Alexa geht das einfach...
Mal sehen, noch ist ja nicht raus wer (bei mir) "gewinnt"... ;-)
Gruß, Joachim
Zitat von: MadMax-FHEM am 06 Januar 2018, 00:54:14
Abgespielt wird das dann wie folgt:
set myGoogleCast play http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=%0aIch%20konnte%20kein%20Ger%c3%a4t%20in%20deinem%20Befehl%20erkennen%2e%20%0a
Hey MadMax und alle anderen die gerne eine Antwort auf einem anderen Device haben wollen...
Ich habe die "set" Befehle "AMADAnswer", "TelegramAnswer", "OwnAnswer" etwas modifiziert.
Eine Antwort kommt auf jeden Fall auf das Anfrage Device auch ohne Angaben. Sprich auf eine TelegramNachricht wird auch per Text geantwortet. Oder per default wird auf ein AMAD Device per Screen Message geantwortet.
Allerdings kann man nun nahezu
jedes Device als Antwort mit angeben. Somit lege ich nicht fest welche Geräte als Antwort genutzt werden können.
Ich nehme als Beispiel MadMax der eine Antwort gerne auf seinem cast haben will.
Er gibt eine Frage über Amad ins System und will nun die Antwort auch auf seinem GoogleCast haben:
set teerko AMADAnswer -tts-,(nbr;nsp;uen)myGoogleCast play http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=
Weiteres Beispiel für Ausgabe auf Sonos
set teerko AMADAnswer -tts-,(nbr)sonosbox Speak 20 DE
Erklärung: Man kann kommasepariert seine Devices angeben. Wenn ein Device zusatzparameter braucht gibt man die mit an.
Es gibt noch kleine "Optionen" die man mit Angeben kann in klammern und Semikolon getrennt.
Folgende Optionen sind möglich:
- nbr - Alle Breaks werden aus der Antwort entfernt
- nsp - Die Antwort wird ohne Leerzeichen an das Gerät gesendet
- uen - Die Antwort wird url encoded
- qu - Antwortsatz wird mit einfachen Quotes eingerahmt
- dqu - Antwortsatz wird mit doppel Quotes eingerahmt
Somit ist es Leicht auf jedem Device eine Antwort ausgeben zu lassen.
@MadMax Ich habe kein GoogleCast habe es aber an einem Testdevice probiert. Kannst du mir sagen ob es so geklappt hat?
Zitat von: tiroso am 07 Januar 2018, 15:02:57
Hey MadMax und alle anderen die gerne eine Antwort auf einem anderen Device haben wollen...
Hi tiroso,
vielen Dank!
Zitat von: tiroso am 07 Januar 2018, 15:02:57
@MadMax Ich habe kein GoogleCast habe es aber an einem Testdevice probiert. Kannst du mir sagen ob es so geklappt hat?
Klar sage ich es dir: hat geklappt! :)
Habe es mal unter "OwnAnswer" eingetragen und bis ich raus hab woher ich mitbekomme woher die Anfrage kommt lasse ich mal beide antworten:
set teerko OwnAnswer (nbr;nsp;uen)myGoogleCast1 play http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=,(nbr;nsp;uen)myGoogleCast2 play http://translate.google.com/translate_tts?tl=de&client=tw-ob&q=
Stellt sich aber nat. gleich die Frage: was tue ich, wenn ich dann mal raus habe woher die Anfrage kommt. Also wie würde ich dann umstellen können, dass mal der eine GoogleCast und mal der andere GoogleCast antwortet?
Ja, klar neuer set-Befehl aber dann müsste der ja auf jeden Fall VOR dem Ausgeben der Antwort passiert sein...
...könnte kniffelig werden.
Jaja, kaum werden "Wünsche" erfüllt ist der geneigte Anwender unzufrieden und kommt mit neuen Dingen um die Ecke ;)
(Wobei ich das ja gleich schon angemerkt hatte)
Gruß, Joachim
Hi nochmal,
übrigens gibt es jetzt (dann bald offiziell [hoffe ich]) ein "speak Kommando" für GoogleCast:
https://forum.fhem.de/index.php/topic,45505.msg743604.html#msg743604
Daher lässt es sich jetzt so konfigurieren:
set teerko OwnAnswer (dqu)myGoogleCast speak
Antworten geht so auch schneller als mit Translate bzw. wurde glaube ich an dem Umsetzen von urls generell was im GOOGLECAST-Modul optimiert...
So, jetzt "muss" ich aber wieder "spielen" ;)
Gruß, Joachim
Du könntest dir mehrere Teerkos anlegen...und jedem eine andere Ausgabe zuweisen ;)
Nutzt du denn auch die internen Kommandos oder nur die Benutzerdefinierten?
Zitat von: tiroso am 07 Januar 2018, 19:47:46
Du könntest dir mehrere Teerkos anlegen...und jedem eine andere Ausgabe zuweisen ;)
Man könnte so viel, wenn mehr Zeit wäre ;)
EDIT: aber die Idee ist (bei nochmaligem Nachdenken) gut! Danke!
Habe ja bereits "von Beginn an" Alexa per alexa-fhem (und ha-bridge testweise, weil einfach) eingebunden...
...als dann endlich auch Google um die Ecke kam hat es mich natürlich "gejuckt" zu sehen was "besser" ist...
Daher bin ich gerade am Testen wie ich Google Home einbinden kann und welche (von den leider vielen Möglichkeiten) mir am ehesten passt.
Aktueller Favorit: IFTTT mit TEERKO ;)
Es gibt aber ja (wie erwähnt) weitere Möglichkeiten, die alle Zeit brauchen...
Zitat von: tiroso am 07 Januar 2018, 19:47:46
Nutzt du denn auch die internen Kommandos oder nur die Benutzerdefinierten?
Aktuell hauptsächlich mit benutzerdefinierten Kommandos, hatte/habe aber zu beginn auch mal ein oder zwei "interne Kommandos"...
Bin grad dabei einige der Möglichkeiten die Alexa bereits bietet "nachzubauen" (und da habe ich für einiges halt Subs in myUtils und die rufe ich halt nun mit benutzerdefinierten Kommandos auf) um eben vergleichen zu können...
Da reichen mir einige Dinge...
Werde dann noch andere "Wege" testen, mit den gleichen Kommandos/Möglichkeiten und dann entscheiden:
1. Alexa oder Google Home (oder gemischt je nach Anwendung das oder das)
2. Wenn Google Home: welche Art der Integration...
Gruß, Joachim
Neu:
Nicht nur Plural Angaben sondern auch mehrere Devices können in unterschiedlichen Räumen genannt werden
Beispiel Konfiguration
define dummy01 dummy
attr dummy01 TEERKOAlias !Stehlampe,Lampe,Licht
attr dummy01 TEERKORoom Erdgeschoss,Haus,!Wohnzimmer
define dummy02 dummy
attr dummy02 TEERKOAlias !Deckenlampe,Lampe,Licht
attr dummy02 TEERKORoom Erdgeschoss,Haus,!Wohnzimmer
define dummy03 dummy
attr dummy03 TEERKOAlias !Deckenlampe,Lampe,Licht
attr dummy03 TEERKORoom Erdgeschoss,Haus,!Küche
Beispiel Befehle:
"Schalte alle Lampen aus" -> Ergebnis: set dummy01 off;set dummy02 off;set dummy03 off
"Schalte alle Lampen im Wohnzimmer aus" -> Ergebnis: set dummy01 off;set dummy02 off
"Schalte alle Deckenlampen im Haus aus" -> Ergebnis: set dummy02 off;set dummy03 off
"Schalte die Deckenlampe im Wohnzimmer und in der Küche aus" -> Ergebnis: set dummy02 off;set dummy03 off
"Schalte die Deckenlampe und die Stehlampe im Wohnzimmer und in der Küche aus" -> Ergebnis: set dummy01 off;set dummy02 off;set dummy03 off -> Warnung: Stehlampe in Küche nicht verfügbar
Hallo tiroso,
gibt es einen Grund warum das "set tiroso OwnAnswer (dqu)myGoogleCast speak" per set und dann in einem Reading landet?
Wäre es nicht besser als Attribut?
Mir ist nur eben (wohl) mein Testsystem "abgeschmiert" bevor fhem (vermutlich) das Reading in der fhem.save abgespeichert hatte...
...da war nat. das Reading nach dem Start weg.
Nach einem "geordneten" shutdown restart war es (nat.) kein Problem...
Hab mich dann nur gewundert, dass nicht mehr "geantwortet" wird...
Bei einem Attribut mache ich normalerweise nach einer Änderung "save config" und somit ist es gesichert...
Wie gesagt: kein Problem (wenn man es weiß) und nur eine Frage...
Gruß, Joachim
Gedacht habe ich mir schon was dabei.
Die Attribute verstehe ich als feste Werte. Somit wird sich für ein TEERKO das AMADDevice auch nicht mehr ändern.
Allerdings bin ich davon ausgegangen das der User zur Laufzeit auch mal die Ausgabe ändern möchte.
Deswegen das ganze per set...
Beispiel:
User lässt sich die Antwort auf einem Sonos Device ausgeben. Das kann man mit Lautstärke angeben. Ich denke nicht das der User sich auch um 22:27 Uhr mit Lautstärke 30 Die Antwort an den Kopf knallen lassen will. Vielleicht sogar nicht per TTS auf seinem AMAD da die Kinder schlafen. Also ändert er die Lautstärke und ändert die Ausgabe auf dem AMAD zu -msg- und setzt das wieder in das TEERKO Device. Soviel zu meinen Gedanken ^^
Genauso zu OwnAnswer.
Vielleicht will man ab 20 Uhr keine akkustische Ausgabe also löscht man einfach das Reading.
Und dann kommt auch nicht immer die Warnung wegen save..
Allerdings werden die Readings bei einem save auch mit abgespeichert. Nur Internals nicht...
Ok, macht so nat. Sinn...
Zitat von: tiroso am 07 Januar 2018, 21:05:32
Allerdings werden die Readings bei einem save auch mit abgespeichert. Nur Internals nicht...
Ja, nur normalerweise mache ich nach einem "set" kein "save"...
...nach der Änderung eines Attributes halt schon, schon alleine wegen des "Fragezeichens" ;)
Gruß, Joachim
Neu:
Erkennen und Merken von Artikeln oder Präpositionen und wiederverwenden in Antwortsätzen.
Teerko sucht sich auch Artikel/Präposition für den TEERKOAlias/TEERKORoom der als Favorit angegeben ist wenn über einen anderen Alias angefragt wird.
Beispiel:
"Schalte Deckenlampe im Wohnzimmer an"
Teerko kann keinen Artikel für Deckenlampe finden, "lernt" ihn also auch nicht. Allerdings kann er sich die Präposition für Wohnzimmer merken.
Die Antwort wird sein:
"Ich habe Deckenlampe im Wohnzimmer eingeschaltet"
"Schalte die Deckenlampe im Wohnzimmer an"
Teerko merkt sich nun auch den Artikel für Deckenlampe und kann diesen auch in Zukunft für andere Devices mit gleichem Alias abrufen.
Antwort:
"Ich habe die Deckenlampe im Wohnzimmer eingeschaltet"
Damit ich eine Übersicht bekomme würde ich euch bitten die Umfrage zu beantworten.
Ich glaube ich werde die Möglichkeit häufiger nutzen um mal zu sehen wie es bei euch läuft
Hallo Tiroso,
habe dein Modul gerade upgedatet.
Leider kann ich jetzt meine Lichter nicht mehr schalten.
hier ein Liste von TEERKO:
Internals:
CFGFN
MODE_own___ 0
NAME myTEERKO
NR 2969
NTFY_ORDER 50-myTEERKO
STATE ???
TYPE TEERKO
READINGS:
2018-01-08 18:55:07 Answer Ich konnte lichtnicht im Raum Wohnzimmerfinden.
2018-01-08 15:39:32 MAX_Tuerschloss_battery ok
2018-01-08 16:51:40 Wohnzimmer_Hzg_oben_battery ok
2018-01-08 18:55:05 command receiveVoiceCommand: schalte das wohnzimmer licht aus
Attributes:
TEERKOFeatures -Alle-
room Global
verbose 5
Der Befehl: "schalte das wohnzimmer licht aus" wurde richtig übergeben.
Die Antwort sieht schon etwas seltsam aus: "Ich konnte lichtnicht im Raum Wohnzimmerfinden" (Hier fehlen zwei Leerzeichen).
Hier ein List vom Licht, dass ich schalten möchte:
Internals:
CHANGED
DEF group 1 IODev=hueBridge1
ID G1
INTERVAL
IODev hueBridge1
NAME HUEWohnzimmer
NR 537
STATE on
TYPE HUEDevice
desired 1
lights 1,2,3
name Wohnzimmer Group
type LightGroup
READINGS:
2018-01-08 14:51:45 alert none
2018-01-08 16:06:36 all_on 1
2018-01-08 16:06:36 any_on 1
2018-01-08 17:31:38 bri 11
2018-01-08 14:51:45 colormode xy
2018-01-08 14:51:45 ct 467 (2141K)
2018-01-08 14:51:45 effect none
2018-01-08 14:51:45 hue 13123
2018-01-08 16:06:36 onoff 1
2018-01-08 17:31:38 pct 5
2018-01-08 14:51:45 sat 212
2018-01-08 14:51:45 xy 0.5125,0.4149
helper:
alert none
bri 11
colormode xy
ct 467 (2141K)
devtype G
effect none
hue 13123
onoff 1
pct 5
sat 212
update_timeout 1
xy 0.5125,0.4149
Attributes:
IODev hueBridge1
alexaName Licht
alexaRoom wohnzimmer
alias Wohnzimmer Licht
color-icons 2
createActionReadings 1
delayedUpdate 1
devStateIcon {(HUEDevice_devStateIcon($name),"toggle")}
event-on-change-reading .*
genericDeviceType light
group HUEGroup
room HUEDevice,alexa
stateFormat {(ReadingsVal($name, 'all_on', '0') == 1)?"on":"off"}
Da im ersten Post steht:
ZitatVerwenden bestehender Attribute wie alias,room,alexaname,alexaroom. Somit muss nicht zwingend die TEERKO eigenen Attribute verwendet werden
habe ich die TEERKO Attribute nicht gesetzt, da ja schon ALEXA Attribute vorhanden sind.
Im Anhang noch das komplette Logfile mit Verbose 5.
Habe ich hier noch etwas falsch konfiguriert, oder stimmt im Modul noch etwas nicht?
Gruß Schlimbo
Danke dir.
Ich werde heute abend noch reinsehen.
Vielleicht lese ich nur alexaName nicht richtig ein.
Aber auf die schnelle (auf dem Handy)ist mir aufgefallen das du receiveVoiceCommand mit in das TeerkoDevice eingebracht hast. Hat jetzt nichts mit dem Fehler zu tun. Aber das muss nicht mit darein.
EDIT:
Kannst du mir einen Gefallen tun und folgende Teerko einspielen?
Das ist die beta 1.2 mit einem zusätzlichen Dump.
Nach einspielen Fhem neustarten(shutdown restart) und genau den gleichen Befehl nochmal eingeben...und nochmal den Log Part einstellen.
Stimmt da war mein Notify nicht ganz korrekt.
Danke für den Hinweis hab's geändert.
Kannst du mir einen Gefallen tun und folgende Teerko einspielen?
Das ist die beta 1.2 mit einem zusätzlichen Dump.
Nach einspielen Fhem neustarten(shutdown restart) und genau den gleichen Befehl nochmal eingeben...und nochmal den Log Part einstellen.
Klar, gerne.
Hier das List:
Internals:
MODE_own___ 0
NAME myTEERKO
NR 676
NTFY_ORDER 50-myTEERKO
STATE ???
TYPE TEERKO
globalinit 1
READINGS:
2018-01-08 20:49:57 Answer Das Gerät licht scheint es in dem von dir gewünschten Raum nicht zu geben. Das Gerät licht scheint es in dem von dir gewünschten Raum nicht zu geben.
2018-01-08 20:49:55 command schalte das wohnzimmer licht aus
Attributes:
TEERKOFeatures BasicControl,UserDefinedCommands
room Global
verbose 5
Und im Anhang das Log.
Ich glaube ich habe den Fehler gefunden.
Es lag daran das ich immer mit Favoriten Rooms arbeite. und wenn keiner vorhanden ist wird auch nicht abgeglichen... "BlaBla über Modul..." Zusammengefasst sollte es klappen ^^
Geht leider immer noch nicht.
Kannst du die Datei noch mal checken, hat nämlich noch die gleiche Uhrzeit wie die vorherige Datei (20:26:14)
Ich hoffe das ich das diesmal richtig gemacht habe.
Ich habe versucht genau das gleich device als dummy abzubilden. Mit den gleichen Attributen. Bei mir scheint es zu klappen.
Ich würde noch einmal gerne das log nachdem du das eingespielt hast...
Und falls das nicht klappt...ja dann muss ich nochmal genauer nachdenken. :-\
2018-01-08 22:14:01 Answer Das Gerät Licht darf ich nicht kontrollieren. Kontrolliere das Attribute TEERKOAllowedToControl ob das Gerät dort vorhanden ist.
Jetzt kommen wir der Sache näher. Nach setzten von TEERKOAllowedToControl kann ich das Licht auch steuern. :)
Vielen Dank.
Super!!!
Das freut mich. Denk dran verbose wieder auf 3 zu setzen. Teerko "schreibt" sonst unglaublich viel
Wie ist bei den ganzen Aliasse (Alias,AlexaName,TEERKOName) eigentlich die Rangfolge?
Was passiert zum Beispiel, wenn diese an einem Device alle mit unterschiedlichen Namen gesetzt sind?
Werden dann alle ausgewertet oder nur TEERKOName?
Es gibt keine Reihenfolge. Es werden alle Aliase abgeglichen.
Wenn du ein Device hast was im alexaNamen Stehlampe, im alias Deckenlampe und im TEERKOAlias Tischlampe stehen hat dann kannst du das Device über jeden Namen ansprechen. Deswegen gebe ich auch die Möglichkeit unter TEERKOAlias kommasepariert alle aliase anzugeben.
Den einzigen Vorteil den es hat TEERKOAlias zu nehmen ist das du Favoriten anlegen kannst.
attr teerko TEERKORoom Haus,Erdgeschoss,!Wohnzimmer
attr teerko TEERKOAlias Lampe,Licht,!Deckenlampe
Befehl: Schalte die Lampe im Erdgeschoss an
Anwtort: Ich habe die Deckenlampe im Wohnzimmer eingeschaltet
Und wenn ein anderes Device die gleichen Namen und den gleichen Raum hat...dann musst du eben alle Ansprechen ;)
Schalte alle Lampen im Erdgeschoss aus z.B.
EDIT:
Achja...Der Devicealias Wohnzimmer Lampe ist ungünstig gewählt. Wohnzimmerlampe eher.
Wohnzimmer seperat wird als Örtlichkeit erkannt. Wohnzimmerlampe als Alias. Das habe ich so in der Logik drin. Sprich bei dir wird das alias Wohnzimmer Lampe niemals matchen.
Zitat von: tiroso am 08 Januar 2018, 23:19:53
Achja...Der Devicealias Wohnzimmer Lampe ist ungünstig gewählt. Wohnzimmerlampe eher.
Wohnzimmer seperat wird als Örtlichkeit erkannt. Wohnzimmerlampe als Alias. Das habe ich so in der Logik drin. Sprich bei dir wird das alias Wohnzimmer Lampe niemals matchen.
Das Alias ist bei mir nur für die bessere Lesbarkeit im Webinterface gesetzt, deswegen ist hier auch immer Örtlichkeit und Name enthalten, aus diesem Grund ist es dann auch nicht schlimm, wenn das nie matched.
Ist es eigentlich auch möglich dem TEERKO Device einen default Raum zuzuordnen, um hierdurch bei einer nicht vorhandenen Ortsangabe im Befehlssatz, den im Device hinterlegten Raum zu verwenden.
So könnte man für jeden Raum ein TEERKO Device anlegen und dann beim ansprechen eines Gerätes, im selben Raum, die Ortsangabe weglassen.
z.B: "Schalte das Licht an".
Ich habe vor...allerdings dauert es noch was...Das man Teerko sagen kann das er sich einen Raum merken soll oder man diesen Raum manuell setzen kann (notify/bewegungsmelder/o.ä.).
Dann müsste man den ersten Befehl mit Ortsangabe starten (Schalte das Licht im Wohnzimmer an). Teerko merkt sich Wohnzimmer und sucht dann (Schalte das Licht aus) erstmal in den gemerkten Räumen bevor die normale Suche weitergeht.
Soweit der Plan
Hallo tiroso,
wäre es noch möglich für das Attribut "TEERKOAMADDevice" die Option -Alle- mit aufzunehmen, somit müsste das Attribut beim anlegen oder löschen eines AMADDevice's nicht mehr angepasst werden.
Mir ist gerade noch aufgefallen, dass wenn ich das Attribut "TEERKOAMADDevice" setze das Reading "Answer" nicht mehr aktualisiert wird:
Internals:
MODE_amad_HTC_M8__ 0
NAME myTEERKO
NR 676
NTFY_ORDER 50-myTEERKO
STATE ???
TYPE TEERKO
globalinit 1
READINGS:
2018-01-09 08:42:44 Answer Ich habe das Licht wohnzimmer ausgeschaltet.
2018-01-09 09:01:38 command schalte das wohnzimmer licht an
Attributes:
TEERKOAMADDevice HTC_M8
TEERKOAllowedToControl -Alle-
TEERKOFeatures BasicControl,UserDefinedCommands
room Global
-Alle- kann ich mit reinnehmen. Kein Problem.
Das mit der Antwort...da hast du Recht. Das muss ich noch mit reinnehmen. Im Moment wird das Reading nur beschrieben wenn der Befehl am Modul direkt eingetragen.
Probier es bitte mit der Version
Ich werde wenn die Umfrage gelaufen ist eine stable version rausbringen die die Sachen die du angesprochen hast beinhaltet. Sind bis auf "-Alle-" in AMADDevices ja alles Fixes und keine neuen Features
Danke, funktioniert. :)
Auch das Reading "Answer" wird jetzt aktualisiert.
Habe gerade noch ein paar Status Abfrage probiert, das klappt noch nicht so ganz:
2018-01-09 14:46:12 Answer Das Gerät heizung scheint es in dem von dir gewünschten Raum nicht zu geben. Der Status der Heizung im Wohnzimmer ist 12.0 °C.
2018-01-09 14:46:11 command wie ist der status der heizung im wohnzimmer
2018-01-09 14:50:24 Answer Ich konnte kein Gerät in deinem Befehl erkennen.
2018-01-09 14:50:23 command wie ist der status vom licht im wohnzimmer
Schön ware es noch, wenn man bei Geräten wie Heizung/Thermostat auch einfach fragen könnte:
Wie warm ist es im Wohnzimmer?
Wie viel Grad ist es im Wohnzimmer?
Und noch eine bitte, könntest du für die Farbwahl von Lampen auch noch warmweiß und kaltweiß aufnehmen?
Wie machst du das mit dem setzen der Farbwerte? Welchen Befehl ein Gerät akzeptiert kann ja von Gerät zu Gerät unterschiedlich sein.
Habe z.B. das Problem, dass ich HYPERION Geräte nicht steuern kann.
set Hyperion rgb 255,0,0 : Value of rgb has to be in RGB hex format like ffffff or 3F7D90
Erster Part dürfte behoben sein
zweiter auch
Heizungssteuerung steht auf meiner Roadmap
attr Hyperion TEERKOExpert map:setcolor=rgb %CHEX%
Wow du bist ja schnell :)
Status klappt jetzt, danke auch für das TEERKOExpert Beispiel --> funktioniert damit jetzt auch.
Ist das mit %CHEX% irgendwo beschrieben? Welche Variablen gibt es hier noch?
Warmweiß|Kaltweiß geht noch nicht.
kann man warmweiß/kaltweiß mit hex/rgb abbilden? Ich denke nicht. was kommt dem denn am nächsten?
Spricht etwas dagegen das direkt in kelvin zu steuern?
Ich habe meine Farbtabelle mit hex codes angegeben. Ich nutze dann die internen Color::hex2rgb oder hex2hsv um umzurechnen.
Welchen hex könnte man für die beiden Sachen nehmen?
Kelvin gebe ich z.Zt. gar nicht raus.
Habe mich vllt zu wenig mit der materie auseinandergesetzt
Kenne mich damit leider auch nicht gut genug aus, evtl. kannst du dir da ja was bei dem Alexa Modul abschauen.
Probier mal bitte
Klappt leider nicht.
Befehl wird zwar angenommen, aber meine HUE Lampen werden auf Rosa gestellt.
Denke nicht dass wir hier über RGB zum Ziel kommen.
Ich habe leider keine Hue Lampe. Welche Werte kann man denn da setzen? Hex? HSV? Nur einen Wert von 0 - 100?
Guten morgen tiroso,
Aus HUEDEVICE commandref:
Zitatset <name> ct <value> [<ramp-time>]
set colortemperature to <value> in mireds (range is 154-500) or kelvin (range is 2000-6493).
Warmweiß: ct 454 (2202K)
Kaltweiß:ct 154 (6493K)
Gruß schlimbo
Auf commandref hätte ich auch mal kommen können.
Ich werde (nicht mehr in beta 1.2) die Funktion hex2hsb mit reinnehmen. Dann kannst du die Farbe mit hsb angeben.
Hallo tiroso,
----- OFF -----
angesichts von Diskussionen in anderen Threads und da ich (aktuell) nicht mal Zeit hab die sehr umfangreiche Funktionaliät von TEERKO ausgiebig zu testen, werde ich wohl keine weiteren Module (zumidest erst mal) mehr in betracht ziehen.
TEERKO scheint mir auch ohne weitere Vergleichstests als sehr mächtig und (für meine Belange) mehr als ausreichend...
----- ENDOFF -----
Hab's geschrieben und widerspreche mir gleich ;)
Ich hatte wieder etwas Zeit und wie du weißt nutze ich aktuell hautpsächlich/meist/ausschließlich (historisch bedingt wegen Vergleich von Alexa-Einbindung vs. Google Home-Einbindung) "userdefinedcommands"... ;)
Funktioniert prima! :)
Hmmm, aber: besteht irgendwie die Möglichkeit eine in einer perl-Sub generierte Antwort zurückzugeben und das dann als TEERKO-Antwort weiter zu verarbeiten?
Wie gesagt vielleicht sehr speziell aber ich nenne mal ein Beispiel:
Ich habe eine Sub für "gute Nacht".
Die wird über Alexa (alexa-fhem Custom Skill) gerufen und dort wird dann der Return-Wert (return Antwortstring) per Alexa ausgegeben, kann also auch beliebig in der Sub "zusammengebastelt" werden...
Ich kann ja bei userdefinedcommands eben genau auch diese Sub aufrufen (tue ich bereits abwechselnd, will ja vergleichen ;) ).
Als Antwort kann ich ja mehr oder weniger "nur" fixe Dinge vorgeben...
Bzw. nur über beispielsweise einen Dummy oder ein "selbstdefiniertes Reading" die Antwort zurückgeben...
Wobei habe ich gerade getestet: geht leider (auch) nicht.
Also Idee war: in der Sub ein "setreading" mit der Antwort und dann als "out" im userdefinedcommand %Device:reading% geht zwar aber leider ist die Antwort schneller draußen als das setreading abgearbeitet wird ;)
D.h. ich bekomme immer die "letzte" Antwort, also von dem Aufruf davor ;)
Jaja, immer die Anwender mit den Sonderlocken! ;)
Aber hier traue ich mich noch nach solchen Sonderlocken zu fragen ;)
Drum musst du nun damit leben ;)
Ups schon wieder eiegentlich "OFF"...
Aber nachdem ich wohl der einzige Anwender (ohne Probleme) bin, zumindest laut Umfrage, kann ich schon mit "Sonderbehandlung" rechen, oder? ;)
Gruß und danke für das Modul, Joachim
Ich lass das mal einfach so stehen ;) Ich muss ja nicht noch mehr darin rumrühren.
Zu deinem Wunsch. Der ist nachvollziehbar. Hatte ich mir vor ein paar Tagen auch gedacht.
Ich habe es mir aufgeschrieben und werde mich vllt nächste Woche mal dran begeben das umzusetzen... ;)
Sonderbehandlungen bekommt keiner ;D . Aber da du der einzige bist der das wirklich testet habe ich auch nur die Wünsche weiter oben ^^
Jaja ;)
Ah, ok, wenn du auch schon drüber nachgedacht hast...
Vielen Dank schon mal!
Eilt nicht, bin ab übernächster Woche eh erst mal für 2-3 Wochen dienstl. im Ausland...
...komme daher wohl erst Mitte Feb. wieder zum Testen... :-|
Gruß, Joachim
Hallo,
ich habe jetzt auch mal angefangen, ein bisschen mit TEERKO zu spielen und finde es bislang recht interessant. Ich habe aber mal eine Frage zur MultiAlias-Funktion: TEERKO erkennt alle Geräte mit Alias Lampe, wenn ich im sage, er solle alle Lampen schalten. Wenn ich ihm allerdings auftrage, alle Lichter zu schalten, findet er die Geräte mit Alias Licht nicht. Kann ich ihm das irgendwie beibringen oder wäre es eher dein Part?
EDIT: Schön wäre auch, wenn er mit das Licht ebenfalls alle Geräte mit Alias Licht schalten würde (z.B. Schalte das Licht in der Küche aus)...
Vielen Dank
Ronny
Moin...
Schön das ein weiterer das testet ;)
Lad dir nochmal das Modul aus dem ersten Post, ich habs gefixt.
Schalte das Licht in der Küche aus hätte aber eigentlich funktionieren sollen...oder meinst du mit das Licht sollen mehrere Devices gesteuert werden? Das wäre nicht so wie ich es geplant hatte. Schalte alle Lichter in der Küche aus klappt ja jetzt
Gruß
Vielen Dank für die Anpassung, ich werde gleich mal weiter testen. Ich habe als Proof of concept mit dem "kompliziertesten" Raum begonnen und versuche nun den für mich besten Weg zu finden (vielleicht kannst du deinen Senf dazu geben :-)):
In meiner Küche habe ich fünf schaltbare Lampen:
OG.ku.LI.Besenschrank
OG.ku.LI.Kuechenschrank
OG.ku.LI.Kuechenzeile
OG.ku.LI.Kuehlschrank
OG.ku.LI.Theke
Denen habe ich in einem ersten Versuch den Room Haus, Wohnung, Obergeschoss, !Küche, ![Name] und den Alias Lampe, Licht, ![Name] (z.B. Besenschrank) gegeben. Folgende Befehle funktionieren:
Schalte den Besenschrank ein.
Schalte alle Lampen in der Küche ein.
Durch das Hinzufügen des Namens auch zum Room funktionieren auch diese Befehle:
Schalte das Licht im Besenschrank ein. (dies wird allerdings mit Ich habe das Besenschrank in der Küche eingeschaltet. beantwortet)
Schalte das Licht an der Theke ein. (ähnliche Antwort)
Natürlichsprachlich würde ich mit
Schalte das Licht in der Küche aus.
von der angesprochenen Person erwarten, dass sie alle Lichter in der Küche ausschaltet - sprich, das Licht in/im ohne konkrete Instanz meint alle vorhandenen Instanzen des Raumes...
Ich werde weiter Testen...
Ronny
Moin,
es ist nicht so das ihr alleine seit. Ich lese auch schon eine ganze Weile mit und habe dein Modul mit AMADNG und Telegram zu laufen.
Dein Modul ist für mich,der kein Programmierer ist, einfach zu handhaben. Läuft soweit sehr gut.
Eins ist mir jetzt bei der Beta aufgefallen.
Ich habe in der Küche 2 Lampen. Alias Licht und Tresen, sage ich nun
"Schalte das Licht aus und den Tresen an"
antwortet die nette Dame
"Ich habe das Licht eingeschaltet.Ich habe den Tresen eingeschaltet"
und alles geht an.Sobald ein "an" im Input genannt ist wird das "aus" ignoriert.
Das wäre mir nicht so aufgefallen wenn es in der Alpha Version richtig funktioniert hätte.
tiroso es ist schön, das du an dem Modul weiter arbeitest.
Gruß holger
Nabend.
@Ronny:
Die Antwort kann ich relativ leicht erklären. Du hast den Alias im TEERKOAlias mit einem Favoriten versehen. Da das Licht in der Besenkammer kein Favorit ist wird Teerko einen Favoriten für dich raussuchen. Und das ist in dem Fall dann halt der [Name]. Eine Lösung wäre den alias Licht auch als Favoriten zu Kennzeichen. Wenn der alias den du sagst kein Favorit ist sucht Teerko der Reihe nach die aliase durch bis er einen Favoriten gefunden hat. Wenn es keinen gibt wird der alias im Antwortsatz benannt den du auch verwendet hast. Ansonsten finde ich es gut wie du es testest. Benenne wie du willst und ich hoffe das das Modul zufriedenstellend arbeitet. Ich weiß nur nicht ob ich alle Fehler mit meinem Wissen aus der Welt schaffen kann.
Ich würde mir nicht anmaßen bei meinem Wissensstand von Natural Language Processing zu sprechen. Klar ich versuche mein bestes aber da habe ich keine Ahnung wie ich das in einer Satzsemantik umsetzen soll den Bezug von das Licht auf alle "Lichter" eines Raumes einzugehen. Als Workaround würde ich vorschlagen mit einer structure oder einer lightscene zu arbeiten...Ich weiß irgendwie unbefriedigend aber da muss ich gestehen habe ich keine Ahnung.
Wo wir schon beim Thema Satzsemantik sind @holger:
Du hast Recht das war in der Alpha Version mit drin. Aaaaaaber...das Schema wie ich die Sätze auswerte ließ mich in der ersten Version an meine Grenzen kommen. Ich kann Perl nicht gut genug um die Sätze richtig auszuwerten. Ich bin in der ersten Version nach dem Wort "und" vorgegangen. Das war aber mitunter einer der Gründe wieso das Modul so instabil war. Was passierte z.b. bei Schalte das Licht in 2 Minuten und 3 Sekunden an....In der ersten Version wurde im ersten Part nichts erkannt und im zweiten das etwas Zeitverzögert angeschaltet werden sollte, aber es wurde kein Device erkannt....
Es gibt auch das Problem z.B. bei dem Satz, Schalte die Deckenlampe in der Küche an und im Wohnzimmer die Stehlampe aus und wie ist der Status aller Lampen im Erdgeschoss. Welches Device gehört zu welchem Raum? Welches Device in welchem Raum wird entweder ein oder ausgeschaltet. Und die Status Abfrage hat dann alles durcheinander gebracht.
Ich wollte mit dem Modul eine Basis schaffen um Text halbwegs vernünftig auszuwerten. Dafür musste ich erstmal auf einige Funktionen verzichten. Unter anderem das erkennen und Filtern von verschieden Aktionen zu mehreren Devices in unterschiedlichen Räumen.
Aber dein Post hat mir ein Fehler aufgezeigt den ich jetzt gefixt habe.
Teerko bildet Prioritäten über den eingegebenen Befehl. Dabei erlangt "schalte aus" eine höhere Priorität als "schalte ein". Dementsprechend sollte Teerko jetzt IMMER ausschalten bei dem Satz "Schalte das Licht aus und den Tresen an".
Ich habe trotzdem wieder eine Satztrennung mit drin. Die funktioniert allerdings nicht so wie vorher. Das Satzzeichen wo ich sicher sein kann das ein neuer Satz anfängt ist der .(Punkt). Demenstprechen könnte dein Befehl folgendermaßen funktionieren "Schalte das Licht aus. Schalte den Tresen an". Auch nicht sooooo dolle aber es klappt. Keine Sorge Google über AMAD versteht das auch. Es klingt nur unglaublich komisch und du bekommst erstmal das Gelächter deiner Frau zu hören. "Schalte das Licht aus PUNKT Schalte den Tresen an".
Wenn ich weiß wie man die Satzsemantik logisch umsetzen kann ohne auf Google zurückzugreifen dann kann ich das gerne wieder reinnnehmen ^^
Zitat von: tiroso am 15 Januar 2018, 23:37:17
Als Workaround würde ich vorschlagen mit einer structure oder einer lightscene zu arbeiten...Ich weiß irgendwie unbefriedigend aber da muss ich gestehen habe ich keine Ahnung.
Das wäre für mich nicht wirklich ein Workaround, da ich eigentlich keine Lust habe, zusätzliche Devices hierfür anzulegen...
Zitat von: tiroso am 15 Januar 2018, 23:37:17
... ich keine Ahnung wie ich das in einer Satzsemantik umsetzen soll den Bezug von das Licht auf alle "Lichter" eines Raumes einzugehen.
Ich hätte selbst keine Idee, wie ich überhaupt eine so umfangreiche Spracherkennung umsetzen würde und verstehe, dass sicherlich eine ganze Menge Arbeit und Hirnschmalz in diesem Modul steckt. Von daher nehme ich alles, was ich bekomme ;-) und kann nur meine (vermutlich viel zu einfach gedachten) Ideen äußern: Wenn ich Teerko bei meinem Setup (ich habe die Favoriten mal rausgenommen) sage
Schalte das Licht in der Küche ein
erhalte ich als Antwort
Ich finde zuviele Geräte die den Namen Licht haben obwohl du nur eins ansteuern möchtest. Nimm alle oder nenn mir einen Raum dazu. Licht gibt es häufiger. Sei genauer wenn du Licht schalten möchtest.
Teerko findet also alle Geräte, vermutet aber, dass ich nur eines schalten möchte (dem ist ja nicht so). Vielleicht kann man ihm (generell, über Attribut am Teerko-Device (DoMultiCmd) oder aber über Teerko-Attribut am jeweiligen zu schaltenden Gerät (InkludeInMultiCmd oder so)) sagen, dass er in diesem Fall nicht davon ausgehen soll, nur eines zu schalten, sondern einfach alle Schalten soll. Ähnliches würde ja bei einer Statusabfrage auch funktionieren (Statusabfragen habe ich allerdings generell noch nicht ausprobiert, daher rein hypothetisch):
Frage: Wie warm ist es im Wohnzimmer?
Antwort: Der Temperatursensor LinkeWand melde 23°C. Der Temperatursensor RechteWand meldet 24°C. (oder die Durchschnittstemperatur aller Sensoren im Wohnzimmer)
Ronny
EDIT: Das mit der Durchschnittsttemperatur hatte ich irgendwo anders gelesen, aber vielleicht wäre es trotzdem interessant, sich das Modul mal anzusehen: https://forum.fhem.de/index.php/topic,80960.0.html (ich habe es allerdings auch noch nicht probiert - scheint mir etwas mächtiger, aber schwerer konfigurierbar zu sein als deines)
Hey, wie ich sehe, geht's wieder ordentlich voran mit dem Modul :)
Leider konnte ich die Beta noch nicht testen. Ich suche aktuell noch nach einer Lösung die Spracheingabe überhaupt zu verarbeiten. Hatte es bisher mit Autovoice und Tasker gelöst.
Problem ist nur dass bei "Autovoice Continues" die ganze Zeit die Nebengeräusche des Mikros zu hören sind, welches immer das Bing als Bestätigung zurück gibt.
Wie habt ihr das denn gelöst?
PS: Warum Autovoice? Weil Autovoice auch offline funktioniert und ich nicht alles was ich spreche, an die Google oder Amazon - Cloud übertragen muss.
VG, Thomas
@Ronny:
Ich werde mal sehen ob und wie ich das umsetze mit der Angabe das Licht auf mehrere Lichter bezogen. Steht jetzt aber nicht an erster Stelle ;) Aber deine Idee wie man es umsetzen könnte nehme ich mit rein.
Ich hatte in der ersten Version eine Temperaturabfrage drin. Das würde ich auch gerne wieder reinnehmen, steht also definitv auf meiner Liste.
@Thomas:
Ich habe das ganze mit AMAD von Leon hauptsächlich umgesetzt. Der Vorteil ist natürlich das ich die Antwort darauf bekomme.
Wieso machst du das nicht auch so? AutoVoice kannst du als Plugin auch in Automagic als Trigger nutzen. Wenn du den Flow von AMAD etwas modifizierst kannst du den Befehl doch super in FHEM einbringen. Und dann natürlich auch mit TEERKo auswerten.
Was Autovoice Continues betrifft habe ich leider keine Erfahrung. Aber vom Prozedere dürfte es doch das gleiche sein wie die Auswertung über Google selber?
Zitat von: tiroso am 16 Januar 2018, 21:11:58
Ich hatte in der ersten Version eine Temperaturabfrage drin. Das würde ich auch gerne wieder reinnehmen, steht also definitv auf meiner Liste.
Das würde ich dann über ein userdefinedcommand lösen (wollen), wenn die zurückgegebene Antwort aus der aufgerufenen Sub dann als Antwort in TEERKO landet und auch "angesagt" wird ;)
Und noch einige weitere Abfragen... :)
Aber aktuell muss ich erst mal weitere Dinge die es schon gibt umsetzen (du weißt: Vergleich Alexa/Google Home) und dann berufsbedingt eine kleine Pause einlegen :-|
Gruß, Joachim
ZitatIch habe das ganze mit AMAD von Leon hauptsächlich umgesetzt. Der Vorteil ist natürlich das ich die Antwort darauf bekomme.
Wie genau hast du das gelöst dass dein System auf ein Triggerword hört und dann die Befehle ausführt?
VG, Thomas
Moin,
tiroso,
(Ich weiß das gehört vielleicht nicht hierher) ;)
würdest du uns verraten wie du den Flow von AMAD im Automagic modifiziert hast.
Auf meinem TabletUI habe ich ein Button mit dem ich
"set AMADDevice activateVoiceInput "
schalte.
Im receiveVoiceCommand von der AmadBridge kommt dann das gesprochene an.
Ich muß halt immer diesen Button drücken.
Mache ich es mit Google Assistant wo Autovoice mithört kommt nichts bei AmadBridge an.
Gruß holger
@Joachim: ich werde mich bemühen ^^
@Thomas: Du kannst in Teerko Triggerwords anlegen, oder......siehe Antwort an Holger
@Holger: Da habe ich das Gefühl das du dir Automagic nur wegen AMAD installiert hast kann das sein ;)
Also...Automagic führt die Flows entweder so aus das man einen Flow manuell ausführt, in einem anderen Flow aufruft (Das ist im Moment deine Variante. Durch setzen im AMAD mit activateVoiceInput ruft Leon den Flow Voice Control auf) oder wenn du die Trigger in dem Flow modifizierst (So verwende ich den Flow)
Das erste "Kästchen" im Flow Voice Control beinhaltet die Trigger die diesen Flow auslösen. Ich habe mir einen Shortcut angelegt. Somit kann ich den Flow direkt vom Homescreen aufrufen ohne in eine TabletUi, Fhem Instance zu gehen.
Des weiteren kannst du aber als Trigger auch ein Plugin (In dem Fall Autovoice) angeben. Sobald Autovoice ein Sprachbefehl erkannt hat wird dieser Flow aufgerufen und die Variablen aus Autovoice werden mit übergeben. Soweit so gut....In dem Flow wird sofort die Spracheingabe aufgerufen...Was wir ja nicht brauchen...also kannst du das ganze mit einer Bedingung umgehen. Wenn der Trigger auslöst prüfst du ob die Variablen gesetzt worden sind. Sollte dem nicht so sein wird die Spracheingabe aufgerufen...wenn allerdings schon etwas übergeben wurde kann man den Schritt auch überspringen.
Nun kommen wir noch zur Performance...Da jeder Sprachbefehl an Fhem dann übertragen wird (Zumindest mit Autovoice Continues Mode) wird Teerko auf jeden Befehl reagieren. Es wird wahrscheinlich nicht großartig ins Gewicht fallen aber in dem Modus wird wahrscheinlich alle paar Sekunden ein Voice Kommando übertragen. Wenn du die Hotkeys im Teerko einträgst wird er auch nicht drauf reagieren. Aber du kannst genauso gut in Automagic im Trigger für das Plugin weitere Einstellungen vornehmen. Ich empfehle da schon das Keyword/Keywords einzutragen. Damit sondiert schon Autovoice ob das Voice Kommando übertragen werden soll oder nicht. Zusätzlich würde ich den Parameter Precision auf 1 setzen (Default ist 5). Damit wird nur der Befehl übertragen der die größte Übereinstimmung hat. Sonst werden 5 Varianten als Array übertragen...Was in dem Fall eher kontra produktiv ist.
Ich hoffe das war verständlich...Ich habe aber zur veranschaulichung noch ein paar Screenshots...Ein hoch auf Leons AMAD ^^
Aber dann bleiben wir bei Teerko, hmm ;)
Danke tiroso,
Du hast Recht Automagic habe ich auf dem Tablet nur wegen AMAD zu laufen. Sonst läuft auf dem Handy Tasker.
Leon arbeitet ja gerade daran das AMAD auch mit Tasker funktioniert.
Super Anleitung. Ich muß mich aber erstmal durch arbeiten.
Gruß holger
Hey tiroso,
das ist eine ziemlich coole Anleitung. Aber es löst leider noch nicht mein akustisches Feedback-Problem von Autovoice. ;)
Weißt du ob man das irgendwie deaktivieren kann? Ich finde dazu nichts in Autovoice.
Wenn ich die Lautstärke des Tablets auf 0 stelle, ist es zwar weg, aber dann bekomme ich ja logischerweise auch keine Ansagen mehr zu hören.
VG, Thomas
Hallo tiroso,
bekomme beim Start von FHEM folgende Meldungen:
PERL WARNING: Use of uninitialized value in hash element at ./FHEM/39_TEERKO.pm line 2626, <$fh> line 2916
Kannst du dir das bitte noch mal ansehen?
Hallo Zusammen,
ich weiß zwar nicht, ob hier noch jemand mitließt, da dies aber das einzige Thema zu Teerko ist, stelle ich meine frage hier...
Ich benutze Teerko in die aktuellsten Version, die ich gefunden habe (Sprich 1.2.9)
Das Schalten sämtliche Geräte funktioniert sehr gut! Auch das Schalten nach Räumen (das licht im Schlafzimmer an, etc)
Was ich nur absolut nicht hinbekomme ist das abfragen von Temperaturen.
Ich habe in fast jedem Raum einen Sensor mit einem "Temperaure"-Reading.
Die Geräte haben alle ein Room Attribut und ich habe auch alle möglichen Konstellationen von Teerko Alias, Teerko Room, etc probiert
Wenn ich nun frage: "Wie ist die Temperatur im Schlafzimmer?"
- bekomme ich immer eine Fehlermeldung
da hier im Forum nur von einem Temperatur-Reading die Rede war, habe ich einem Sensor über setreading auch mal ein Temperatur-Reading verpasst (- also auf deutsch, statt englisch) auch ohne Erfolg.
könnte mir jemand einen Tipp geben???
wird an diesem Modul in Zukunft noch weiter entwickelt?
Ich fände es ausgesprochen schade, wenn es eingestellt würde und denke auch, es ist der vielversprechendste Ansatz - gerade wegen der intuitiven Bedienung.
Letztlich habe ich es nur kurz installiert und konnte auf Anhieb meine sämtlichen Geräte schalten!
vielen Dank schon mal im Voraus !
Hallo,
ich habe auch eine Frage zu TEERKO: gibt es eine Möglichkeit - z.B. über ein Reading das den Wert "ok" oder "error" hat (ähnlich wie bei Talk2Fhem) - heraus zu finden, wenn der Befehl nicht "verstanden" wurde. Es wird zwar ein Text im Readings "Answer" wie z.B. "Ich konnte kein Gerät in deinem Befehl erkennen." oder "Die Kombination an Wörtern verstehe ich nicht." ausgegeben, aber das kann man nicht gut maschinell auswerten.
Hintergrund: für meinen fhem-skill (https://forum.fhem.de/index.php/topic,89780.0.html) zum Sprachassisten Mycroft.ai (https://mycroft.ai/) könnte man TEERKO als Fallback-Device benutzen, an das Mycroft eine Anfrage weiterleitet die er selbst nicht verstanden hat. Da es bei Mycroft mehrere fallback-fähige Skills gibt, kann ich nicht einfach die Antwort von TEERKO in jedem Fall durchreichen, da dann Mycroft "denkt", dass die Anfrage beantwortet wurde und die anderen Fallbacks ggfs. nicht mehr aktiviert werden...
Viele Grüße
Dominik