Dokumentation angepasst und vervollständigt, diverse Rechtschreibfehler korrigiert, leere Einträge in den SetCommands abgefabgen - kein Absturz mehr von FHEM.
This commit is contained in:
parent
2457ba4c08
commit
0dc01beffe
143
74_AMAD.pm
143
74_AMAD.pm
@ -22,7 +22,7 @@
|
||||
#
|
||||
################################################################
|
||||
|
||||
###### Version 0.3.0 ############
|
||||
###### Version 0.3.6 ############
|
||||
|
||||
|
||||
|
||||
@ -173,18 +173,10 @@ sub AMAD_Set($$@)
|
||||
|| lc $cmd eq 'openurl'
|
||||
|| lc $cmd eq 'nextalarmtime') {
|
||||
|
||||
Log3 $name, 4, "AMAD ($name) - set $name $cmd ".join(" ", @val);
|
||||
return AMAD_SelectSetCmd ($hash, $cmd, @val);
|
||||
Log3 $name, 5, "AMAD ($name) - set $name $cmd ".join(" ", @val);
|
||||
return AMAD_SelectSetCmd ($hash, $cmd, @val) if (@val);
|
||||
}
|
||||
|
||||
# elsif (lc $cmd eq 'devicestate') {
|
||||
# Log3 $name, 4, "AMAD ($name) - set $name $cmd ".join(" ", @val) if (defined(@val));
|
||||
# my $v = join(" ", @val);
|
||||
#
|
||||
# readingsSingleUpdate ($hash,$cmd,$v,1);
|
||||
#
|
||||
# return undef;
|
||||
|
||||
return "Unknown argument $cmd, bearword as argument or wrong parameter(s), choose one of $list";
|
||||
}
|
||||
|
||||
@ -219,13 +211,13 @@ sub AMAD_RetrieveAutomagicInfoFinished($$$)
|
||||
my $name = $hash->{NAME};
|
||||
my $host = $hash->{HOST};
|
||||
|
||||
Log3 $name, 3, "AMAD ($name) - AMAD_RetrieveAutomagicInfoFinished: calling Host: $host";
|
||||
Log3 $name, 4, "AMAD ($name) - AMAD_RetrieveAutomagicInfoFinished: calling Host: $host";
|
||||
|
||||
if (defined($err)) {
|
||||
if ($err ne "")
|
||||
{
|
||||
$hash->{STATE} = "error" if ($hash->{STATE} ne "initialized");
|
||||
Log3 $name, 4, "AMAD ($name) - AMAD_RetrieveAutomagicInfoFinished: error while requesting AutomagicInfo: $err";
|
||||
Log3 $name, 5, "AMAD ($name) - AMAD_RetrieveAutomagicInfoFinished: error while requesting AutomagicInfo: $err";
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -233,7 +225,7 @@ sub AMAD_RetrieveAutomagicInfoFinished($$$)
|
||||
if($data eq "" and exists($param->{code}))
|
||||
{
|
||||
$hash->{STATE} = "error" if ($hash->{STATE} ne "initialized");
|
||||
Log3 $name, 4, "AMAD ($name) - AMAD_RetrieveAutomagicInfoFinished: received http code ".$param->{code}." without any data after requesting AMAD AutomagicInfo";
|
||||
Log3 $name, 5, "AMAD ($name) - AMAD_RetrieveAutomagicInfoFinished: received http code ".$param->{code}." without any data after requesting AMAD AutomagicInfo";
|
||||
return;
|
||||
}
|
||||
|
||||
@ -268,12 +260,12 @@ sub AMAD_HTTP_POST($$)
|
||||
|
||||
if ($hash->{STATE} eq "initialized")
|
||||
{
|
||||
Log3 $name, 4, "AMAD ($name) - AMAD_HTTP_POST: set command only works if STATE active, please wait next interval run";
|
||||
Log3 $name, 3, "AMAD ($name) - AMAD_HTTP_POST: set command only works if STATE active, please wait next interval run";
|
||||
return "set command only works if STATE active, please wait next interval run";
|
||||
}
|
||||
if ($hash->{STATE} eq "error")
|
||||
{
|
||||
Log3 $name, 4, "AMAD ($name) - AMAD_HTTP_POST: error while send Set command. Please check IP or PORT";
|
||||
Log3 $name, 3, "AMAD ($name) - AMAD_HTTP_POST: error while send Set command. Please check IP or PORT";
|
||||
return "error while send Set command. Please check IP or PORT";
|
||||
}
|
||||
|
||||
@ -398,27 +390,120 @@ sub AMAD_SelectSetCmd($$@)
|
||||
<h3>AMAD - Automagic Android Device</h3>
|
||||
<ul>
|
||||
Dieses Modul liefert, <b><u>in Verbindung mit der Android APP Automagic</u></b>, diverse Informationen von Android Geräten.
|
||||
Weiterhin gibt es Dir die Möglichkeit diese zu steuern. Bis jetzt ist das ändern der Medialautstärke möglich,
|
||||
sowie Play, Stop, Titel-Next, Titel-Back eines im Automagic-Flow ausgesuchten Players.<br>
|
||||
An Informationen können alle wiedergegeben werden, welche von Automagic als Action in Form einer Variable gesammelt und als
|
||||
HTTP Respons Text zurück gegeben werden.
|
||||
Für all diese Informationen/Aktionen ist ein sogenannter Flow in Automagic auf dem entsprechenden Android Gerät nöt.
|
||||
Als Trigger im Flow wird immer ein HTTP Request mit einem selbst vergebenen Port und einer angepassten URL verwendet. Dieser Port
|
||||
muß der selbe sein welcher beim anölegen des Devices vergeben wurde!!
|
||||
Die AndroidAPP Automagic (welche nicht von mir stammt und 2.90Euro kostet) funktioniert wie Tasker, ist aber bei weitem User freundlicher.
|
||||
Im Auslieferiungszustand werden folgende Zustände dargestellt:
|
||||
<ul>
|
||||
<br>
|
||||
<li>Standardlautstärke</li>
|
||||
<li>Status des Androidgerätes - Online/Offline</li>
|
||||
<li>nächste Alarmzeit</li>
|
||||
<li>nächster Alarmtag</li>
|
||||
<li>Ladestatus - Netztei angeschlossen / nicht angeschlossen</li>
|
||||
<li>Batteriestatus in %</li>
|
||||
<li>Bildschirmhelligkeit</li>
|
||||
<li>Media Lautstärke des Lautsprechers am Gerät</li>
|
||||
<li>Media Lautstärke des Bluetooth Lautsprechers</li>
|
||||
</ul>
|
||||
<br><br>
|
||||
Als Extra können noch aktueller Titel, Interpret und Album des verwendeten Mediaplayers angezeigt werden.
|
||||
<br>
|
||||
Mit etwas Einarbeitung können jegliche Informationen welche Automagic bereit stellt in FHEM angezeigt werden. Hierzu bedarf es lediglich
|
||||
einer kleinen Anpassung des "Information" Flows
|
||||
<br>
|
||||
<br>
|
||||
Das Modul gibt Dir auch die Möglichkeit Deine Androidgeräte zu steuern. So können folgende Aktionen durchgeführt werden.
|
||||
<ul>
|
||||
<br>
|
||||
<li>Medienlautstärke regeln</li>
|
||||
<li>nächste Alarmzeit setzen</li>
|
||||
<li>Bildschirmhelligkeit einstellen</li>
|
||||
<li>Bildschirm An/Aus machen</li>
|
||||
<li>Mediaplayer steuern (Play, Stop, nächster Titel, vorheriger Titel)</li>
|
||||
<li>eine URL im Browser öffnen</li>
|
||||
<li>eine Nachricht senden welche am Bildschirm angezeigt wird</li>
|
||||
<li>eine Nachricht senden welche <b>angesagt</b> wird (TTS)</li>
|
||||
</ul>
|
||||
<br><br>
|
||||
Für all diese Aktionen und Informationen wird auf dem Androidgerät Automagic und ein so genannter Flow benötigt. Die App müst
|
||||
Ihr Euch besorgen, die Flows bekommt Ihr von mir zusammen mit dem AMAD Modul.
|
||||
<br><br>
|
||||
<b>Wie genau verwendet man nun AMAD?</b>
|
||||
<ul>
|
||||
<br>
|
||||
<li>Installiert Euch die App "Automagic Premium" aus dem App Store oder die Testversion von <a href="https://automagic4android.com/de/testversion">hier</a></li>
|
||||
<li>ladet Euch das AMAD Modul und die Flowfiles von <a href="https://github.com/LeonGaultier/fhem-AMAD">GitHub</a> runter</li>
|
||||
<li>installiert die zwei Flows und aktiviert erstmal nur den "Information" Flow, eventuell bei den <a href="https://github.com/LeonGaultier/fhem-AMAD/tree/master/Flow_Updates">
|
||||
FlowUpdates</a> mal schauen ob es was neueres gibt und den entsprechenden Flow updaten oder den alten löschen und den neuen einzelnen installieren</li>
|
||||
<li>kopiert die Moduldatei 74_AMAD.pm nach $FHEMPATH/FHEM. Geht auf die FHEM Frontendseite und gebt dort in der Kommandozeile <i>reload 74_AMAD.pm</i> ein</li>
|
||||
</ul>
|
||||
<br><br>
|
||||
Nun müsst Ihr nur noch ein Device in FHEM anlegen.
|
||||
<br><br>
|
||||
<a name="AMADdefine"></a>
|
||||
<b>Define</b>
|
||||
<ul>
|
||||
<code>define <name> AMAD <IP-ADRESSE> <PORT> <interval></code>
|
||||
<ul><br>
|
||||
<code>define <name> AMAD <IP-ADRESSE> <PORT> <INTERVAL></code>
|
||||
<br><br>
|
||||
Beispiel:
|
||||
<ul>
|
||||
<code>define Nexus10Wohnzimmer AMAD 192.168.0.23 8080 180</code><br>
|
||||
<ul><br>
|
||||
<code>define WandTabletWohnzimmer AMAD 192.168.0.23 8090 180</code><br>
|
||||
</ul>
|
||||
<br>
|
||||
Diese Anweisung erstellt ein neues AMAD-Device. Die Parameter IP-ADRESSE und PORT legen die IP Adresse des Android Ger&aaml;tes
|
||||
sowie den unter Automagic im Trigger HTTP Request angegebenen Port fest.<br>
|
||||
Diese Anweisung erstellt ein neues AMAD-Device. Die Parameter IP-ADRESSE und PORT legen die IP Adresse des Android Gerätes
|
||||
sowie den, in den Flows des Trigger HTTP Request, angegebenen Port fest.<br>INTERVAL ist der Zeitabstand in dem ein erneuter Informationsabruf stattfinden soll. Alle x Sekunden.
|
||||
Bei mir hat sich 180 gut bewährt, also alle 3 Minuten<br>
|
||||
<u><b>Bitte gebt für sofortige Erfolge als Port 8090 ein, das ist der Port der in den mitgelieferten Automagic Flows als Trigger Port eingetragen ist.<br>
|
||||
Dieser kann später mit Erfahrung auch geädert werden</b></u>
|
||||
</ul>
|
||||
<br><br>
|
||||
Fertig! Nach anlegen des Devices sollten bereits die ersten Readings reinkommen.
|
||||
<br><br>
|
||||
<a name="AMADreadings"></a>
|
||||
<b>Readings</b>
|
||||
<ul><br>
|
||||
<li>defaultVolume - Lautstärkewert welcher über "set defaultVolume" gesetzt wurde.</li>
|
||||
<li>deviceState - Status des Androidgerätes, muss selbst mit setreading gesetzt werden z.B. über die Anwesenheitskontrolle.<br>
|
||||
Ist Offline gesetzt, wird der Intervall zum Informationsabruf aus gesetzt.</li>
|
||||
<li>nextAlarmDay - aktiver Alarmtag</li>
|
||||
<li>nextAlarmTime - aktive Alarmzeit</li>
|
||||
<li>powerLevel - Status der Batterie in %</li>
|
||||
<li>powerPlugged - Netzteil angeschlossen? 0=NEIN, 2=JA</li>
|
||||
<li>screenBrightness - Bildschirmhelligkeit von 0-255</li>
|
||||
<li>volumeMusikBluetooth - Media Lautstärke von angeschlossenden Bluetooth Lautsprechern</li>
|
||||
<li>volumeMusikSpeaker - Media Lautstärke der internen Lautsprecher</li>
|
||||
<br>
|
||||
Die Readings volumeMusikBluetooth und volumeMusikSpeaker spiegeln die jeweilige Medialautstärke der angeschlossenden Bluetoothlautsprechern oder der internen Lautsprecher.<br>
|
||||
Sofern man die jeweiligen Lautstärken ausschließlich über den Set Befehl setzt, wird eine der beiden immer mit dem defaultVolume Reading über ein stimmen.
|
||||
</ul>
|
||||
<br><br>
|
||||
<a name="AMADset"></a>
|
||||
<b>Set</b>
|
||||
<ul><br>
|
||||
<li>defaultVolume - setzt die Medialautstärke. Entweder die internen Lautsprecher oder sofern angeschlossen die Bluetoothlautsprecher</li>
|
||||
<li>deviceState - setzt den Device Status Online/Offline. Siehe Readings</li>
|
||||
<li>mediaPlayer - steuert den Standard Mediaplayer. play, stop, Titel zürück, Titel vor.</li>
|
||||
<li>nextAlarmTime - setzt die Alarmzeit. Geht aber nur innerhalb der nächsten 24Std.</li>
|
||||
<li>openURL - öffnet eine URL im Standardbrowser</li>
|
||||
<li>screen - setzt den Bildschirm auf AN oder AUS mit Sperre</li>
|
||||
<li>screenBrightness - setzt die Bildschirmhelligkeit, von 0-255</li>
|
||||
<li>screenMsg - versendet eine Bildschirmnachricht</li>
|
||||
<li>ttsMsg - versendet eine Nachricht welche als Sprachnachricht ausgegeben wird</li>
|
||||
</ul>
|
||||
<br><br><br>
|
||||
<u><b>Anwendungsbeispiele:</b></u>
|
||||
<ul><br>
|
||||
Ich habe die Ladegeräte für meine Androidgeräte an Funkschaltsteckdosen. ein DOIF schaltet bei unter 30% die Steckdose ein und bei über 90% wieder aus. Morgens lasse ich mich
|
||||
über mein Tablet im Schlafzimmer mit Musik wecken. Verwendet wird hierzu der wakeuptimer des RESIDENTS Modules. Das abspielen stoppe ich dann von Hand. Danach erfolgt noch eine
|
||||
Ansage wie das Wetter gerade ist und wird.<br>
|
||||
Mein 10" Tablet im Wohnzimmer ist Mediaplayer für das Wohnzimmer mit Bluetoothlautsprechern. Die Lautstärke wird automatisch runter gesetzt wenn die Fritzbox einen Anruf auf das
|
||||
Wohnzimmer Handgerät signalisiert.
|
||||
</ul>
|
||||
<br><br><br>
|
||||
<b><u>Und zu guter letzt möchte ich mich noch bedanken.</u><br>
|
||||
Der größte Dank geht an meinen Mentor Andre (justme1968), er hat mir mit hilfreichen Tips geholfen Perlcode zu verstehen und Spaß am programmieren zu haben.<br>
|
||||
Auch möchte ich mich bei Jens bedanken (jensb) welcher mir ebenfalls mit hilfreichen Tips bei meinen aller ersten Gehversuchen beim Perlcode schreiben unterstützt hat.<br>
|
||||
So und nun noch ein besonderer Dank an pah (Prof. Dr. Peter Henning ), ohne seine Aussage "Keine Ahnung hatten wir alle mal, das ist keine Ausrede" hätte ich bestimmt nicht angefangen Interesse an
|
||||
Modulentwicklung zu zeigen :-)</b>
|
||||
</ul>
|
||||
=end html_DE
|
||||
=cut
|
Loading…
x
Reference in New Issue
Block a user