[AMADNG] AMAD 4.2 The Next Generation of AMAD with Tasker Support

Begonnen von CoolTux, 25 Mai 2017, 18:24:49

Vorheriges Thema - Nächstes Thema

CoolTux

Hallo Thomas,

Flow Download ließe sich eventuell machen. Aber nicht heute oder morgen.
Audio PlayUri geht meines Wissens nicht.



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

ToM_ToM

ZitatFlow Download ließe sich eventuell machen. Aber nicht heute oder morgen.
Audio PlayUri geht meines Wissens nicht.

Ja, mach dir keinen Stress deswegen. Wäre nur nice to have. :)
Wegen des PlayURI habe ich schon mal ein wenig nach Broadcasts gegooglet, aber noch nichts so richtig gefunden.
Sobald ich da was habe um nen Flow zu basteln, poste ich das und dann sollte die AMAD Integration für dich ja kein Problem sein.
Das Hauptproblem liegt ja, denke ich, eher daran dass Automagic standardmäßig keine Action dafür anbietet.

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

CoolTux

Korrekt. Im Grunde ist es so, alles was Automagic kann, kann auch mit AMAD umgesetzt werden. Enn Du da also was findest bekommen wir das zusammen bestimmt hin.
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

doman75

Hallo zusammen,

ich möchte das früh auf dem Tablet als Wecker Sunshine Live spielt, ich hatte das mal früher so aufgerufen:

set LenovoTablet2 sendIntent org.smblott.intentradio.PLAY url http://www.radiotop40.de/m3u/radiotop40.m3u name Top40

Das geht aber schon eine Weile nicht mehr, hat jemand eine Idee wie ich das auf einfache Weise realisieren kann, mit den ganzen Apps wie TuneIn und so weiter muss ja auf alle Fälle die App laufen und im Pause Modus sein, damit früh das Play funktioniert oder mache ich hier prinzipell was falsch.

Vielen Dank für eure Hilfe

CoolTux

Sollte aber gehen. Es sei denn die URL geht nicht mehr.


set (TabletWohnzimmer|HandyBadezimmer) sendIntent org.smblott.intentradio.PLAY url http://stream.rs2.de/rs2/mp3-128/internetradio/ name rs2Radio

Spielt jeden Morgen
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

Esjay

Nabend Cooltux,
siehst du evtl eine Möglichkeit, ein Reading zur Verfügung zu stellen, welches die Uhrzeit des Momentanen Weckalarms beinhaltet.
Ich versuche es mal zu verdeutlichen.Stelle ich einen Wecker, welcher um 21:39 Uhr klingelt, sehe ich folgendes im Event Monitor


2017-09-05 21:39:02 AMADDevice TabStNt nextAlarmDay: Mi
2017-09-05 21:39:02 AMADDevice TabStNt nextAlarmTime: 06:00
2017-09-05 21:39:02 AMADDevice TabStNt nextAlarmState: alert


"alert" zeigt mir in dem Fall, dass es eine Aktion gab.

Ich möchte morgens mein Echo im Badezimmer anschmeißen, wenn mein Wecker klingelt. Wenn ich jetzt auf "alert" gehe, spielt das Echo die Musik ab. Stehe ich dann auf, gehe ins Bad und fahre 20 Minuten später zur Arbeit, habe ich ja in der zwischenzeit das Echo Stumm geschaltet. Wenn ich jetzt aber vergessen habe den Wecker welcher zur Sicherheit eingerichtet ist auszuschalten, würde das Echo beim nächsten Alarm wieder anspringen. Meiner besseren Hälfte dazu zu motivieren auf die andrere Seite des Bettes zu langen um den Wecker auszustellen ist die eine Sache, wenn jetzt noch das Echo hinzu kommt, wird es schon schwierig.

Vll brauche ich auch nur nen Denkanstoß in die richtige Richtung. Sei es drum.

Grüße

CoolTux

Hallo,

Muss gestehen so ganz komme ich nicht mit. Die Zeit des nächsten Alarms steht doch im Reading nextAlarmTime drin. Wenn Du täglich Deinen Wecker um 6 Uhr klingeln lässt, und er weckt Dich Mittwoch um 6 Uhr und Du stellst das klingeln ab, dann geht der Wecker erst wieder am Donnerstag um 6 Uhr los und so sollte es dann auch im Reading stehen.

Aber mal davon ab. Kannst Du mir verraten welche Version Du von AMAD und Flowset verwendest und welche Wecker App? Denn Du scheinst im Moment der einzige zu sein bei dem nextAlarmState noch geht.



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

Esjay

Zitat von: CoolTux am 05 September 2017, 22:16:49
Hallo,

Muss gestehen so ganz komme ich nicht mit. Die Zeit des nächsten Alarms steht doch im Reading nextAlarmTime drin. Wenn Du täglich Deinen Wecker um 6 Uhr klingeln lässt, und er weckt Dich Mittwoch um 6 Uhr und Du stellst das klingeln ab, dann geht der Wecker erst wieder am Donnerstag um 6 Uhr los und so sollte es dann auch im Reading stehen.

Aber mal davon ab. Kannst Du mir verraten welche Version Du von AMAD und Flowset verwendest und welche Wecker App? Denn Du scheinst im Moment der einzige zu sein bei dem nextAlarmState noch geht.



Grüße

Es wird doch nur ein "nutzbares" Event erzeugt, wenn der Wecker um 06.00 Uhr klingelt. In dem Fall
AMADDevice TabStNt nextAlarmState: alert
Das selbe Event wird allerdings auch erzeugt, wenn der Wecker um 6.10 Uhr klingelt. Heißt ich habe in dem Fall kein Alleinstellungsmerkmal, und die Routine wird bei jedem Alarm gestartet.
Wenn ich jetzt ein Reading hätte, welches mir beispielsweise folgendes Event erzeugt:
AMADDevice TabStNt nextAlarmState: alert um 06:00
wäre ich bei einem Alleinstellungsmerkmal, wo ich drauf reagieren könnte, und sicherstellen kann, dass mein Echo nicht wieder losgeht, wenn der nächste Wecker wieder klingelt.

Fire Tab 7 mit internem Wecker. Versionsflowset 4.0.5 Versionmodul 4.0.6

Grüße

CoolTux

Zitat von: Esjay am 06 September 2017, 07:41:46
Es wird doch nur ein "nutzbares" Event erzeugt, wenn der Wecker um 06.00 Uhr klingelt. In dem Fall
AMADDevice TabStNt nextAlarmState: alert
Das selbe Event wird allerdings auch erzeugt, wenn der Wecker um 6.10 Uhr klingelt. Heißt ich habe in dem Fall kein Alleinstellungsmerkmal, und die Routine wird bei jedem Alarm gestartet.
Wenn ich jetzt ein Reading hätte, welches mir beispielsweise folgendes Event erzeugt:
AMADDevice TabStNt nextAlarmState: alert um 06:00
wäre ich bei einem Alleinstellungsmerkmal, wo ich drauf reagieren könnte, und sicherstellen kann, dass mein Echo nicht wieder losgeht, wenn der nächste Wecker wieder klingelt.

Fire Tab 7 mit internem Wecker. Versionsflowset 4.0.5 Versionmodul 4.0.6

Grüße

Ah ok, ich verstehe. Deine Frau und Du Ihr verwendet den selben Wecker. Wahrscheinlich mit zwei Weckzeiten. Bei Dir soll Sonos an gehen bei Deiner Frau nicht. Kann an das so stehen lassen?
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

Esjay

Zitat von: CoolTux am 06 September 2017, 07:51:44
Ah ok, ich verstehe. Deine Frau und Du Ihr verwendet den selben Wecker. Wahrscheinlich mit zwei Weckzeiten. Bei Dir soll Sonos an gehen bei Deiner Frau nicht. Kann an das so stehen lassen?

Vom Prinzip richtig. Wenn du jetzt Sonos durch Echo ersetzt wird ein Schuh draus.

CoolTux

Wie wäre es so
Bleibt die Weckzeit als Reading erhalten kannst Du diese vor abspielen des Echos abfragen.

ansonsten muss ich gestehen wüsste ich jetzt auch nichts besseres. Gerade im Bereich Wecker kann man leider wenig machen.
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

Depechem

Hallöle, vielen Dank an Leon für die Neuauflage von AMAD.

Gibt es eine Möglichkeit den set Befehl "ttsMsg" zu modifizieren?
Also zu der Sprachnachricht gleich ein "volume" nur für diese Nachricht mitzusenden.

Warum:
Meine Tablet im Bad spielt Musik ab, wenn nun eine wichtige "ttsMsg" eintrudelt wird die Musik ausgeblendet und die Sprachnachricht in gleicher Lautstärke wie die Musik ausgegeben. Und dies ist sehr leise - zu leise.

Daher wäre es optimal wenn man (nur für die jeweilige "ttsMsg") sein Volume mitsenden kann.

Ist dies irgendwie umsetzbar?
Gruß Thomas
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

CoolTux


set Tablet volume 8; sleep 1; set Tablet ttsMsg Kleiner Test; sleep 1; set Tablet volume 3


Ich habe mir für meine myUtils eine allgemeine Routine geschrieben. In diesem Kontext mache ich dann meine Durchsagen.


sub indoorMessage($;$$) {

my ($message,$device,$vol) = @_;
    my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time());
   
    if( Value("AnniKraussStr") ne "absent" and Value("AnniKraussStr") ne "gone" and Value("AnniKraussStr") ne "asleep" ) {
       
        if( !defined($vol) ) {
            if( ReadingsVal("AnniKraussStr", "residentsAsleep", 1) > 0 ) {
                $vol = 5;
            }
           
            elsif( $hour < 10 or $hour > 18 ) {
                $vol = 6;
               
            } else {
                $vol = 7;
            }
        }
       
        if( !defined($device) and ReadingsVal( "AnniKraussStr", "residentsAsleep", 1 ) == 0 ) {

                oldVolume("HandyFlur","safe");
                fhem "set HandyFlur notifySndFile Gong.mp3; sleep 1; set HandyFlur volume $vol; sleep 1; set HandyFlur ttsMsg $message";
                oldVolume("HandyFlur","restore");
        }
       
       
        fhem "set dummyLgTV screenMsg $message" if( Value('dummyLgTV') eq 'on' and !defined($device) );
       
       
        $device = "TabletWohnzimmer" if( !defined($device) and Value('dummyLgTV') ne 'on' );
        if( defined($device) ) {
       
            oldVolume("$device","safe");
            fhem "set $device notifySndFile Gong.mp3; sleep 1; set $device volume $vol; sleep 1; set $device ttsMsg $message";
            oldVolume("$device","restore");
        }
    }
}


Ein ganz normaler Standard Aufruf wäre also

indoorMessage('Dies ist mein Test für die Durchsage')


Wenn ich das nur so aufrufe kommt dieser Test im Wohnzimmer und im Flur an.
Wenn aber eine Person in der Wohnung schläft kommt dieser Text nur im Wohnzimmer an.
Schläft keiner aber der Fernsehr ist an kommt der Text im Flur an und im Wohnzimmer auf dem Fernsehr als Anzeige.
Schläft einer und der Fernsehr läuft kommt nur als Anzeige am Fernsehr an.

Sind noch paar andere Sachen dabei, aber das ist mal so das einfachste.

Nun kann man natürlich noch gezielt einzelne Geräte mit einzelner Lautstärke ansprechen.

So hinzu kommt noch das die alte Lautstärke gespeichert wird und nach abspielen der Durchsage wieder eingestellt wird. Dazu bitte noch folgende Routine dazu nehmen

sub oldVolume($$) {

my ( $name, $cmd ) = @_;
my $hash = $defs{$name};

$hash->{SAFEVOLUME} = ReadingsVal( "$name", "volume", 5 ) if( $cmd eq "safe" );

fhem "sleep 5; set $name volume ".$hash->{SAFEVOLUME} if( $cmd eq "restore" );
}



Wenn Fragen dann Fragen.
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

Depechem

Leon das klingt echt gut, nur ist das gerade ganz schön viel Code für mich  :-[

Kannst du für micht evtl. kurz die "myUtils" so einkürzen das:
die ganze Anwesenheitserkennung dort raus ist und nur noch eine Logik aufgebaut ist die mir die Möglichkeit gibt Nachrichten an alle Tablets mit bestimmter Lautstärke zu senden sowie an jedes Tablet einzeln mit bestimmter Lautstärke. Incl. dem Code fürs Abspeichern der alten Lautstärke
::)
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

CoolTux

Ich war faul. Du bekommst eine Durchsage an alle AMADDevice Geräte mit anheben eines default Volumes. Aber ohne zurücksetzen. Dazu müsste man in einer Schleife alle Gerätenamen erfassen und einzeln an die Routine oldVolume weitergeben. Vielleicht mache ich das später. Gerade keine Lust.
Wenn Du der Routine indoorMessage noch einen Devicenamen mit gibst dann speichert er das alte Volume zwischen und macht nach der durchsage ein Volume restore.



sub indoorMessage($;$$) {

    my ($message,$device,$vol) = @_;
       
    $vol = 6 if( !defined($vol) );
       
    if( !defined($device) ) {

        fhem "set TYPE=AMADDevice volume $vol; sleep 1; set TYPE=AMADDevice ttsMsg $message";
    }

    if( defined($device) ) {

        oldVolume("$device","safe");
        fhem "set $device volume $vol; sleep 1; set $device ttsMsg $message";
        oldVolume("$device","restore");
    }
}


sub oldVolume($$) {

my ( $name, $cmd ) = @_;
my $hash = $defs{$name};

$hash->{SAFEVOLUME} = ReadingsVal( "$name", "volume", 5 ) if( $cmd eq "safe" );

fhem "sleep 5; set $name volume ".$hash->{SAFEVOLUME} if( $cmd eq "restore" );
}
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