[ 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

Für diejenigen die es interessiert wie die weitere Entwicklung voran schreitet.
Folgendes wurde ja wie bereits erwähnt erweitert. Beim ersten anlegen eines Gerätes wird automatisch eine Instanz Namens AMADCommBridge angelegt.
Diese Bridge gibt nun die Möglichkeit zur Kommunikation ausgehend vom Androidgerät zu FHEM.
Der eigentliche Anlass war das ich die Metadaten beim Wechsel eines Musikstückes übertragen wollte. Das klappt nun super und läuft bereits bei mir produktiv.
Hierzu habe ich in der neusten Version zwei Readings für das CommBridge Device welche mit set gesetzt werden können/müssen. Müssen muß die fhemServerIP. Die ist ganz wichtig sonst klappt keinerlei Kommunikation. Und einmal einen expertMode für diejenigen die Wissen was sie tun und weniger auf Sicherheit wert legen.

Der expertMode gibt die Möglichkeit ganz Befehlsketten zu verarbeiten, und zwar direkt und ohne Reading in Verbindung mit einem Notify. Auch die Begrenzung nur auf den set Befehl wurde verworfen. Also ganz so als würde man telnet ansprechen nur ohne Passwort.

Desweiteren gibt es auch die Möglichkeit einen set Befehl an FHEM zu senden, welcher dann als (EIN) Reading (danke an Ronny RoBra81, er  hatte die bessere Idee) in der Bridge erscheint und über ein Notify ausgewertet werden kann.

Das alles läuft bereits sehr zufriedenstellend. Auch das Anstoßen eines statusRequest nach dem absetzen einiger set Befehle um fest zu stellen ob der set geklappt hat wird nun über die Bridge getätigt. Im nächsten Schritt werden nun die 3 Userwünsche noch eingebaut welche noch offen stehen.



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

cotecmania

Hi,

ich benutze nun als Ersatz für WVC auf meinem WandTablet AMAD mit Chrome und Floorplan.
Leider werden z.B. Wetter oder Müllabfuhr nicht per Longpoll aktualisiert.
Gibt es hierfür eine Lösung ? Oder kann man Chrome mit Automagic dazu bringen, die aktuelle Seite neu zu laden ?

Gruss
Joe
FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

CoolTux

Hallo Joe

Ein veranlassen des neuladens über AMAD ist leider nicht möglich. Ich gehe davon aus das dies ein Floorplan Problem in Verbindung mit Chrome ist. TabletUI z.B geht super mit Longpoll. Konntest Du mal mit Firefox testen?


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

Hallo und einen schönen Abend,

Ich möchte Euch heute eine erste Vorabversion von AMAD 0.8 zum testen bereitstellen. Ich würde mich über Feedback sehr freuen. Bei mir läuft die Version seit 3 Wochen stabil .
Kurz ein paar Anmerkungen und Hilfen. Leider ist die Doku noch nicht so weit.


Löscht Eure alten AMAD Flows oder benennt sie um. Installiert dann die aktuellen 0.7.7 Flows aus dem GitHub.
Danach kopiert ihr die Moduldatei ins FHEM Verzeichnis und es ist sehr wichtig das ihr dann ein "shutdown restart" macht. Diesmal reicht kein "reload" aus.

Was nun passiert ist das beim initialisieren vorhandener AMAD Instanzen automatisch die AMADCommBridge angelegt wird mit der Raumzuordnung AMAD. Nach dem Neustart geht ihr in den Raum AMAD und in die AMADCommBridge.
Als erstes müsst ihr, und das ist die Voraussetzung für eine Funktion der Bridge, ein Reading setzen. "set fhemServerIP IP-ADRESSE".

Danach kann eine Kommunikation über die Bridge statt finden. Teile der aktuellen Flows verwenden bereits die Bridge als Komminikationsweg. Wenn Ihr noch das Reading expertMode auf 1 setzt könnt ihr auch direkte fhem Befehle über einen Flow ausführen lassen. mit expertMode 0 oder kein Reading werden die fhem Befehle als Reading in die Bridge geschrieben. Es werden dann auch nur set Befehle akzeptiert und können mittels eines notify ausgewertet werden.

weitere neue Funktionen sind


  • Bluetooth ein aus schalten
  • kontrollieren ob eine bestimmte App im Vordergrund aktiv ist, hierfür müss der App Name mittels Attribut checkActiveTask hinterlegt werden. Es muss der korrekte Packagename genommen werden. z.B. com.android.chrome für Chrome. Das Reading checkActivTask wird dann mit 0 oder 1 gefüllt. 0 nicht aktiv oder nicht im Vordergrund aktiv. 1 akktiv im Vordergrund.
  • Als Reading gibt es für Bluetooth nun die BT MAC Adresse
  • Es kann nun mitels "set notifySndFile MEDIAFILE" eine Mediadatei auf dem Androidgerät abgespielt werden. Folgende Voraussetzungen müssen erfüllt sein.
    Die aufzurufende Mediadatei muß sich im Ordner /storage/emulated/0/Notifications/ befinden. Als Anwendungsbeispiel wird bei mir jede Stunde die Datei BigBen.mp3 aufgerufen
Noch etwas zur Bridge. Selbstverständlich könnt ihr den Raumnamen ändern oder eine Gruppe vergeben, aber es ist ganz ganz wichtig das ihr niemals den namen "AMADCommBridge", also den Instanznamen ändert.
Die Bridge wird automatisch beim ersten anlegen eines AMAD Gerätes angelegt und automatisch beim löschen des letzten AMAD Gerätes mit gelöscht.

Und nun viel Spaß. Wenn Fragen sind einfach mal fragen   ;D

Die Version zum testen findet ihr hier.
https://github.com/LeonGaultier/fhem-AMAD/tree/devel
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

Rince

Ich hätte noch einen Wunsch (habe aber den Thread noch nicht durchgelesen):

Mein Smartphone liegt i.d.R. immer im Auto. Und eigentlich schaue ich da auch selten drauf. Daher verpasse ich immer SMS :)
Könnte man evtl eine Funktion einbauen, die wenn das Handy wieder  in WLAN Reichweite kommt, ungelesene SMS an fhem weiterschickt und diese SMS dann am Handy als gelesen markiert?

Wenn in einem Reading eine SMS stünde, könnte man sich die von fhem später vorlesen lassen.

###

Und einen zweiten Wunsch:
Ob es möglich wäre, einen einfachen Sync-Client zu  implementieren?

Mir persönlich würde ein One-Way Sync (fhem => Android) ausreichen, aber da mag es andere Wünsche auch geben.

Ich stelle mir ein fest eingestelltes Verzeichnis vor, dessen Inhalt immer auf die gleiche Stelle ans Handy übertragen wird (was da bereits drin ist, darf gerne gelöscht werden)

=> dann könnte ich mir in aller Ruhe am PC ein Verzeichnis mit Musik und Hörbüchern erstellen, fhem überträgt das Graffel auf´s Telefon und wenn ich morgens ins Auto steige, ist der Musikordner neu befüllt :)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

CoolTux

#335
Hallo Rince,

Zitat
Wenn in einem Reading eine SMS stünde, könnte man sich die von fhem später vorlesen lassen.
Alles was ich hierzu gefunden habe ist das Du eine Condition auf Benachrichtigungen in der Statusbar passend zu Deiner SMS App machen kannst und Dir dann diverse Variablen zur Verfügung stehen. Unter anderem {notification_text_big} wo sicherlich der meiste Inhalt der SMS stehen sollte. Den kannst Du dann als Reading in FHEM eintragen lassen.
Am einfachsten kannst Du so ein User-Reading oder passender OwnReading mit Hilfe von Ronnys(RoBra81) OwnReadings machen. Die Implementierung hierfür steht bereits fertig in der aktuellen Developer Version zur Verfügung. Hiermit ist es möglich Informationen aus anderen selbsterstellten Flows an das passende FHEMDevice über den Information Flow zu senden.
Ronny wird in den nächsten Tagen hierfür ein Wikieintrag unter AMAD ins FEHM Wiki schreiben.

Hier mal eine Vorabversion der Hilfe die mir Ronny zu OwnReadings gesendet hat, eventuell hilft es Dir

Eigene Readings im AMAD-Device erstellen
Es ist möglich, aus beliebigen eigenen Automagic-Flows eigene Readings im AMAD-Device zu erstellen und zu füllen. Die Übertragung zum FHEM AMAD-Device erfolgt umgehend über die AMADCommBridge - daher sollte auf eine zu häufige Aktualisierung verzichtet werden.
Die Vorgehensweise in Automagic hierfür ist folgende:
- zunächst erstellt man sich, soweit nicht bereits geschehen, einen Automagic-Flow der die Information, die in ein Reading übernommen werden sol zur Verfügung stellt
- diese Information speichert man nun mittels Automagic Action Script in eine globale Variable namens global_reading_<Readingname> (beim <Readingname> auf Groß- und Kleinschreibung achten):
   Beispiel: Das Reading Touch soll den Wert "ja" erhalten
   Action Script: global_reading_Touch="ja"
- abschließend muss noch die Übertragung des Wertes initiiert werden. Dies erfolgt, indem der Wert der Variable global_own_reading auf den Wert <Zeitstempel>_<Readingname> gesetzt wird (auch hier auf Groß- und Kleinschreibung achten):
   Beispiel: Das Reading Touch soll übertragen werden
   Action Script: global_own_reading="{getDate()}_Touch"
   Hinweis: man kann auch beide Aktionen in ein Script packen:
      global_reading_Touch="ja";global_own_reading="{getDate()}_Touch"

Wie gesagt Du benötigst hierfür die neuste Devel Version inklusive Flowpacket von AMAD. Danach fhem neustarten und Du solltest einen neuen Raum Namens AMAD sehen in der die Bridge drinn steht. In der Bridge bitte mittels set AMADCommBridge fhemServerIP IP-ADRESSE die FHEM IP als Reading eintragen. Danach sollte OwnReadings ohne Probleme klappen.


Ein SyncClient wird es nicht geben, hierfür ist AMAD nicht geschaffen worden. Ich empfehle Dir hier GoogleDrive zu verwenden. Das ist bei weitem einfacher und ohne Mehraufwand zu realisieren.





Grüße
Leon
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

RoBra81

Hallo,

Zitat von: CoolTux am 13 Oktober 2015, 13:24:37
Ronny wird in den nächsten Tagen hierfür ein Wikieintrag unter AMAD ins FEHM Wiki schreiben.

die OwnReadings-Geschichte ist im Wiki beschrieben, eine englische Übersetzung für die commandref schicke ich Leon bei Gelegenheit. Außerdem werde ich (voraussichtlich heute Abend) mal meinen Flow für die Touch-Erkennung zur Verfügung stellen - muss nur mal sehen, wie/wo ich die Datei anhängen kann.

Ronny

CoolTux

Zitat von: RoBra81 am 13 Oktober 2015, 14:49:19
Hallo,

die OwnReadings-Geschichte ist im Wiki beschrieben, eine englische Übersetzung für die commandref schicke ich Leon bei Gelegenheit. Außerdem werde ich (voraussichtlich heute Abend) mal meinen Flow für die Touch-Erkennung zur Verfügung stellen - muss nur mal sehen, wie/wo ich die Datei anhängen kann.

Ronny
Wenn es das ist was Du mri gesendet hast dann stelle ich ihn die Tage ins Git. Anderfalls sende mir noch mal eine aktuelle Version und die stelle ich dann ins Git   ;D


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

RoBra81

Zitat von: CoolTux am 13 Oktober 2015, 14:51:08
Wenn es das ist was Du mri gesendet hast dann stelle ich ihn die Tage ins Git. Anderfalls sende mir noch mal eine aktuelle Version und die stelle ich dann ins Git   ;D


Grüße

Ich schicke dir heute eine neue Version - ich habe ein bisschen gebastelt, sodass der Flow nicht manuell gestartet werden muss und den Touch-Status auch automatisch wieder zurücksetzt...

Ronny

CoolTux

Alles klar. Muß ich in AMAD oder im Informationflow dafür noch irgendwas machen. Oder kann ich die Implementierung so lassen?
Dann stelle ich heute Abend Deinen Flow über Github zur Verfügung.



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

RoBra81

Ich nutze komplett die OwnReadings-Schnittstelle, sodass keine Anpassungen am AMAD erforderlich sind.

CoolTux

In Ordnung. Aber das was ich im Information Flow implementiert habe wird noch benötigt?
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

RoBra81

Zitat von: CoolTux am 13 Oktober 2015, 15:01:52
In Ordnung. Aber das was ich im Information Flow implementiert habe wird noch benötigt?

Wenn du den OwnReading-Zweig aus dem von mir angepassten Flow meinst, dann ja :)

Rince

Mercy :)
Da ich es bis jetzt noch nicht benutzt hatte, steige ich einfach bei der Developer Version ein und versuche mich durchzuarbeiten.

Bezüglich Sync:
Google Drive wird es wohl nicht, da fehlt mir schlicht die Bandbreite alles ins Netz zu jagen und wieder raus zu fischen. Aber vermutlich gibt es dafür bereits drölfzig unterschiedliche Lösungen ;)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

CoolTux

Hallo Rince

Ich freue mich das Du AMAD testen möchtest. Dafür ein Danke. Wenn Du irgendein Problem hast dann einfach hier schreiben. Gerade die Developer ist noch nicht so gut oder gar nicht Dokumentiert. Daher ruhig fragen.


Grüße
Leon
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