[ VERSION 1.2.0 ] 74_AMAD.pm zur Steuerung eines Androidgerätes

Begonnen von CoolTux, 07 August 2015, 09:39:01

Vorheriges Thema - Nächstes Thema

CoolTux

Hallo Ihr Beiden,

Genau dafür wurde das ganze Konstrukt mit Bridge und VoiceControl ja entwickelt.
In meinem Kopf habe ich bereits die Idee einer AMAD Familie. Bestehend aus dem AMAD Modul für die Androidgeräte, einem Bridge Modul für die Kommunikation mit FHEM und einem VoiceControl Modul für Sprachsteuerung. Die Auswertung der Sprache erfolgt dann im Modul. Ähnlich Sirie und der Homebridge.
Ein fertiges Spracherkennungsmodul für FHEM wenn man so will. Aber das ist noch Theorie und wird noch locker ein Jahr dauern.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Invers

Das liest sich toll, bin begeistert. Ich hoffe, dass alles so klappt, wie du es dir vorstellst. Je weniger Probleme, desto schneller ist die Zukunftsversion da. Weitet sich ja langsam zu einer Lebensaufgabe für dich aus. :-)

Siehst du auch eine Möglichkeit zur Lösung des ersten Teils meiner Frage  (Akkustand Uhr)?

Danke im Voraus.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

pernodjaegermeister

Zitat von: Timmy.m am 28 Februar 2016, 14:43:50
Hallo Invers,

genau so arbeite ich auch... nutze die Schlüsselwörter wie ("Licht" und "Küche") und ("an" oder"ein"), um die DOIF Bedingung zu schalten, so ist es egal, ob man den Befehl "Schalte das Licht in der Küche ein" sagt oder "Mache das Licht in der Küche an" oder "Licht in der Küche einschalten". Diese offene Befehlskette ist einfacher, da man sich nicht an feste Befehle gewöhnen muss.

Praktisch sind auch Befehle, die man mit einem Sprachbefehle zusammenlegen kann. Zum Beispiel, "Mach die Rollläden in der Küche runter und das Licht an". Bei triggern dann zwei DOIF Befehle, der für das Licht und der für die Rollläden.

Hallo,
könntest du deinen Code dafür posten?
Mich interessiert das Thema Sprachsteuerung auch.
Danke
Sascha

CoolTux

Zitat von: Invers am 28 Februar 2016, 16:16:45
Siehst du auch eine Möglichkeit zur Lösung des ersten Teils meiner Frage  (Akkustand Uhr)?

Danke im Voraus.

Ach ja, da hatte ich auch mal angefangen, leider habe ich dann meine Uhr zurück gesendet. Mir fehlte noch der Mehrwert.

Nun zur Beantwortung Deiner Frage. Flow mit trigger Akkuladestand Android Wear. Dann eine Abfrage ob Dein FHEM Server WLan vorhanden ist und dann als Aktion http Request mit Inhalt siehe Anhang.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

powerLevel und powerPlugged bitte ändern in irgendwas was für Deine Uhr spricht. Du kannst für die Uhr auch einen Dummy anlegen und änderst das fhemdevice: in DummyName



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Invers

Für mich liegt der Mehrwert auf der Hand.
Ich kann schlecht sehen und da die Uhr leuchtet, erkenne ich nun immer die Zeit.
Ansonsten hätte ich mir die Uhr auch nicht gekauft.

Vielen Dank für die Erklärung. Probiere ich aus und hoffe, ich bin nicht zu doof dazu. LOL.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

CoolTux

Ansonsten einfach noch mal fragen dann machen wir das zusammen.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Invers

Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Timmy.m

Zitat von: pernodjaegermeister am 28 Februar 2016, 16:25:52
Hallo,
könntest du deinen Code dafür posten?
Mich interessiert das Thema Sprachsteuerung auch.
Danke
Sascha

Hallo Sascha.

Klar, gerne.


define di_SIRI01 DOIF (([AMADCommBridge:receiveVoiceCommand] =~ "Küche") and ([AMADCommBridge:receiveVoiceCommand] =~ "ein") and ([AMADCommBridge:receiveVoiceCommand] =~ "Licht")) (set Pollin_10011_A on) DOELSEIF (([AMADCommBridge:receiveVoiceCommand] =~ "Küche") and ([AMADCommBridge:receiveVoiceCommand] =~ "aus") and ([AMADCommBridge:receiveVoiceCommand] =~ "Licht")) (set Pollin_10011_A off) DOELSEIF (([AMADCommBridge:receiveVoiceCommand] =~ "Küche") and ([AMADCommBridge:receiveVoiceCommand] =~ "an") and ([AMADCommBridge:receiveVoiceCommand] =~ "Licht")) (set Pollin_10011_A on)
attr di_SIRI01 do always
attr di_SIRI01 room AMAD

define di_SIRI02 DOIF (([AMADCommBridge:receiveVoiceCommand] =~ "Spülmaschine") and ([AMADCommBridge:receiveVoiceCommand] =~ "ein")) (set CUL_HM_HM_ES_PMSw1_Pl_1F124A_Sw on) DOELSEIF (([AMADCommBridge:receiveVoiceCommand] =~ "Spülmaschine") and ([AMADCommBridge:receiveVoiceCommand] =~ "aus")) (set CUL_HM_HM_ES_PMSw1_Pl_1F124A_Sw off) DOELSEIF (([AMADCommBridge:receiveVoiceCommand] =~ "Spülmaschine") and ([AMADCommBridge:receiveVoiceCommand] =~ "an")) (set CUL_HM_HM_ES_PMSw1_Pl_1F124A_Sw on)
attr di_SIRI02 do always
attr di_SIRI02 room AMAD

define di_SIRI03 DOIF ((([AMADCommBridge:receiveVoiceCommand] =~ "Rolläden") or ([AMADCommBridge:receiveVoiceCommand] =~ "Rollläden")) and (([AMADCommBridge:receiveVoiceCommand] =~ "rauf") or ([AMADCommBridge:receiveVoiceCommand] =~ "hoch")) and ([AMADCommBridge:receiveVoiceCommand] =~ "Wohnzimmer") and ([CUL_FHTTK_A944d1:state] eq "Closed")) (set RolloWz rauf) DOELSEIF ((([AMADCommBridge:receiveVoiceCommand] =~ "Rollläden")or ([AMADCommBridge:receiveVoiceCommand] =~ "Rolläden")) and (([AMADCommBridge:receiveVoiceCommand] =~ "runter")or ([AMADCommBridge:receiveVoiceCommand] =~ "schließen")) and ([AMADCommBridge:receiveVoiceCommand] =~ "Wohnzimmer") and ([CUL_FHTTK_A944d1:state] eq "Closed")) (set RolloWz runter)
attr di_SIRI03 do always
attr di_SIRI03 room AMAD

define di_SIRI04 DOIF ((([AMADCommBridge:receiveVoiceCommand] =~ "Haustür") or ([AMADCommBridge:receiveVoiceCommand] =~ "Eingang")) and (([AMADCommBridge:receiveVoiceCommand] =~ "ein") or ([AMADCommBridge:receiveVoiceCommand] =~ "an"))and ([AMADCommBridge:receiveVoiceCommand] =~ "Licht")) (set TuerLicht on;;set TuerLicht on;;set TuerLicht on) DOELSEIF ((([AMADCommBridge:receiveVoiceCommand] =~ "Haustür") or ([AMADCommBridge:receiveVoiceCommand] =~ "Eingang"))and ([AMADCommBridge:receiveVoiceCommand] =~ "aus") and ([AMADCommBridge:receiveVoiceCommand] =~ "Licht")) (set TuerLicht off)
attr di_SIRI04 do always
attr di_SIRI04 room AMAD

define di_SIRI05 DOIF (([AMADCommBridge:receiveVoiceCommand] =~ "gute Nacht")) (set Pollin_10011_A on;;set HandyTM volume 15;; set HandyTM ttsMsg Gute Nacht und schlaf gut;; sleep 60;;set Pollin_10011_A off;;set Pollin_10011_A off)
attr di_SIRI05 do always
attr di_SIRI05 room AMAD


Grüße Tim
FHEM5.9@RaspPi.3B|HMLAN|CUL868V3|1Wire|HUE|FritzBox|BotVacDconnected|3xKindleDisplay|
FHEM2FHEM|
FHEM5.9@RaspPi.2B|nanoCul868|TCM310|JeeLinkClone|RFXTRX433E|ZWave|Zigbee|xiaomi
RaspberryMatic@RaspPi.3B+ in Planung

Invers

Ich habe alles in ein einziges DOIF geknallt. Das läuft prima und kann auch leicht geändert und erweitert werden.

([AMADCommBridge:receiveVoiceCommand] =~ "Schreibtisch an|Schreibtisch ein|Schreibtisch 1") (set Schreibtisch on)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "Computer an|Computer ein|Computer 1") (set PC on)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "Farbe|bunt") (set DU_links_bunt on)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "Fernseher aus") (set rc1 POWEROFF)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "gute Nacht") (set DU_DI_gute_Nacht_Trigger on)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "links an|links ein|links 1") (set Links on)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "links aus") (set Links off)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "rechts an|rechts ein|rechts 1") (set Rechts on)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "rechts aus") (set Rechts off)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "Schreibtisch aus") (set Schreibtisch off)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "Trockner an|Trockner ein|Trockner 1") (set Trockner on)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "TV Licht an|TV Licht ein|TV Licht 1") (set TVLICHT_vorne on, set TVLICHT_hinten on)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "TV Licht aus") (set TVLICHT_vorne off, set TVLICHT_hinten off)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "TV Licht hinten an|TV Licht hinten ein|TV Licht hinten 1") (set TVLICHT_hinten on)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "TV Licht hinten aus") (set TVLICHT_hinten off)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "TV Licht vorne an|TV Licht vorne ein|TV Licht vorne 1") (set TVLICHT_vorne on)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "TV Licht vorne aus") (set TVLICHT_vorne off)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "Uhr an|Uhr ein|Uhr 1") (set Uhr on)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "Wand an|Wan Tan|Wand ein|Wand 1") (set Wand on)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "Wand aus") (set Wand off)
DOELSEIF ([AMADCommBridge:receiveVoiceCommand] =~ "Wetterbericht") (set DU_DI_Temperaturansage_Trigger on)
DOELSE (say Ich habe nicht verstanden)




Mit dem | kann man auch die vielen or einsparen "rechts an|rechts ein|rechts 1".
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Bootscreen

Hallo,

ich hab mir das ganze grad mal angeschaut und wollte es bei mir mal testweise einrichten. Da ich nicht zuhause bin hab ich mein Handy über VPN ins Netz gebracht. Es ist soweit auch erreichbar über die IP. Aber scheinbar hab ich noch was falsch gemacht denn FHEM/AMAD sagt mir im state Reading: read from to http://192.168.66.252:8090 timed out und wenn ich die URL aufrufe bekomme ich auch "Error 404 - Page Not Found". Es sieht für mich so aus als hätte ich Automagic falsch eingerichtet. Weiß einer rat?
Version ist 1.2.0
Gruß
Oliver

FHEM 5.7 Hardware:
Raspberry PI B+ | HomeMatic USB 2 | 433Mhz Sender (pilight) | nanoCUL (433Mhz)

CoolTux

Zitat von: Bootscreen am 29 Februar 2016, 11:21:52
Hallo,

ich hab mir das ganze grad mal angeschaut und wollte es bei mir mal testweise einrichten. Da ich nicht zuhause bin hab ich mein Handy über VPN ins Netz gebracht. Es ist soweit auch erreichbar über die IP. Aber scheinbar hab ich noch was falsch gemacht denn FHEM/AMAD sagt mir im state Reading: read from to http://192.168.66.252:8090 timed out und wenn ich die URL aufrufe bekomme ich auch "Error 404 - Page Not Found". Es sieht für mich so aus als hätte ich Automagic falsch eingerichtet. Weiß einer rat?
Version ist 1.2.0

Man kann Automagic nicht falsch einrichten, wenn man der Anleitung folgt. Alles was man auf Seiten von Automagic machen muss ist das Flowset zu installieren. Und Automagic sollte in der Vollversion vorhanden sein.
Welche Flows siehst Du denn in Dein Automagic und welche hast Du aktiviert?





Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Bootscreen

Die Vollversion ist vorhanden.
Ich sehe:
AMAD FHEM / OwnReadings Ex...
|- Meldung Display An
|- Meldung Display Aus
|- Meldung kein Touch
|- Meldung Touch
FHEM Info / Steuerung über AM...
|- Informations
|- SetCommands
|- VoiceControl
Ungruppiert
|- SMS Standort Abfrage
|- Standort basiert WLAN ein/aus
|- Wöchentliches Flow / Widget Backup

Aktiviert hab ich nur über den Schieberegler
FHEM Info / Steuerung über AM...
|- Informations
Gruß
Oliver

FHEM 5.7 Hardware:
Raspberry PI B+ | HomeMatic USB 2 | 433Mhz Sender (pilight) | nanoCUL (433Mhz)

CoolTux

Gut Möglich das es über VPN nicht geht. Es gibt da wohl einige Einschränkungen je nach Mobilfunkanbieter.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Bootscreen

#1094
ok, es scheint wirklich ein VPN problem zu sein. hab mir grad mal die Automagic XML angeschaut und einiges getestet.
Geht nicht: http://<IP>:8090/fhem-amad/deviceInfo/
Geht: http://localhost:8090/fhem-amad/deviceInfo/

Naja dann muss ich mal schauen

//Nachtrag:
@CoolTux: es scheint doch kein VPN problem zu sein. Ich habe noch etwas rumgetestet und in einem eigenem Flow mit HHTP Request und Response bekomme ich eine Antwort. Also scheint die Kommunikation zwischen Client Browser und meinem Handy zu gehen.
Ich teste noch weiter, mal sehn ob ich finde wo das Problem ist

//Zweiter Nachtrag:
Ich habe jetzt nach beim testen des Informations Flow folgendes gemacht:
Ich hab den letzten Response mal so geändert das er mir nur nen kurzen Text ausgibt, also Antwort im Browser bekomme ich aber folgendes:

   # Hello, it is 13:46:32
   # Hello, it is 13:46:32
   # Hello, it is 13:46:32
   # Hello, it is 13:46:32
   # Hello, it is 13:46:32
   # Hello, it is 13:46:32
   # Hello, it is 13:46:32
   # Hello, it is 13:46:32
   # Hello, it is 13:46:32
   # Hello, it is 13:46:32
   # Hello, it is 13:46:32
   # Hello, it is 13:46:32
   # Hello, it is 13:46:32
   # Hello, it is 13:46:32
   # Hello, it is 13:46:32


demnach wird die letzte Action 15x ausgeführt und das erzeugt logischerweise eine "relativ" große Menge Daten, zumindest bei einer langsamen VPN Verbindung.
Gruß
Oliver

FHEM 5.7 Hardware:
Raspberry PI B+ | HomeMatic USB 2 | 433Mhz Sender (pilight) | nanoCUL (433Mhz)