FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Marekh am 22 Februar 2017, 11:01:17

Titel: Wecker vom Android Handy abfragen, ohne AMAD?
Beitrag von: Marekh am 22 Februar 2017, 11:01:17
Hallo,

ich würde gern den aktuellen Wecker von meinem Handy abfragen, zur Zeit benutze ich dafür AMAD, aber das ist eigentlich etwas übertrieben und saugt mir ständig den Akku leer.
Gibt es noch eine Möglichkeit?

Danke
Marek
Titel: Antw:Wecker vom Android Handy abfragen, ohne AMAD?
Beitrag von: rabehd am 22 Februar 2017, 14:02:00
Ich gehe umgekehrt vor.
Der Tasker auf dem Handy prüft auf neue Weckzeiten und setzt dann einen Dummy bei fhem.
Das geht nicht mit allen Weck-apps, bei mir geht es mit Alarmdroid.
Am Akku merke ich da nichts.
Titel: Antw:Wecker vom Android Handy abfragen, ohne AMAD?
Beitrag von: Marekh am 22 Februar 2017, 22:35:26
Danke, würdest Du bitte eine kleine Anleitung dazu schreiben?

Danke
Marek
Titel: Antw:Wecker vom Android Handy abfragen, ohne AMAD?
Beitrag von: rabehd am 23 Februar 2017, 08:51:36
Gerne.  :)

Voraussetzungen:
Android
die App "Tasker"
als Wecker die App "alarmdroid" als wecker
das Plugin für den Tasker "autoalarm"
die App "AndFHEM"
ein taskerprofil, welches regelmäßig den Wecker abfragt

ein Dummy in fhem, welcher den Weckzeitpunkt in Form von YYYYMMDDHHmmW erhält. (Bei Änderung wird ein notify gestartet, welches alles weitere regelt. z.B. Heizung, Beleuchtung)


das Taskerprofil ruft einen Task auf  (sollte per XML in Tasker importierbar sein)<TaskerData sr="" dvi="1" tv="4.9u4m">
<Task sr="task5">
<cdate>1456953424156</cdate>
<edate>1487835359501</edate>
<id>5</id>
<nme>Weckerabfrage</nme>
<pri>100</pri>
<Action sr="act0" ve="7">
<code>620255751</code>
<Bundle sr="arg0">
<Vals sr="val">
<com.twofortyfouram.locale.intent.extra.BLURB>No configuration needed</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED>true</net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED>
<net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED-type>java.lang.Boolean</net.dinglisch.android.tasker.EXTRA_NSR_DEPRECATED-type>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES>&lt;StringArray sr=""&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;%dayname
Name of the day the alarm will go off
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;%dayweek
Day of the Week
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&gt;%shortdayname
Short Name of the day the alarm will go off
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3&gt;%day
Day of the month alarm will go off
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4&gt;%daysc
Cumulative Days to next alarm
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5&gt;%days
Days to next alarm
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES6&gt;%error
Error that might have occurred
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES6&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES7&gt;%hour
Hour alarm will go off
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES7&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES8&gt;%hoursc
Cumulative Hours to next alarm
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES8&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES9&gt;%hours
Hours to next alarm
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES9&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES10&gt;%milis
Miliseconds to next alarm
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES10&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES11&gt;%minute
Minute alarm will go off
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES11&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES12&gt;%minutesc
Cumulative Minutes to next alarm
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES12&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES13&gt;%minutes
Minutes to next alarm
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES13&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES14&gt;%month
Month alarm will go off
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES14&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES15&gt;%raw
Raw next alarm variable gotten from Android
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES15&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES16&gt;%second
Second alarm will go off
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES16&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES17&gt;%secondsc
Cumulative Seconds to next alarm
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES17&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES18&gt;%seconds
Seconds to next alarm
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES18&gt;&lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES19&gt;%year
Year alarm will go off
&lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES19&gt;&lt;/StringArray&gt;</net.dinglisch.android.tasker.RELEVANT_VARIABLES>
<net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>[Ljava.lang.String;</net.dinglisch.android.tasker.RELEVANT_VARIABLES-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>plugininstanceid plugintypeid </net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
<plugininstanceid>7e9b4c86-a728-4b59-8d12-8a28761cf38b</plugininstanceid>
<plugininstanceid-type>java.lang.String</plugininstanceid-type>
<plugintypeid>com.joaomgcd.autoalarm.IntentNextAlarm</plugintypeid>
<plugintypeid-type>java.lang.String</plugintypeid-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">com.joaomgcd.autoalarm</Str>
<Str sr="arg2" ve="3">com.joaomgcd.autoalarm.activity.ActivityConfigAutoAlarm</Str>
<Int sr="arg3" val="5"/>
</Action>
<Action sr="act1" ve="7">
<code>37</code>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%days</lhs>
<op>8</op>
<rhs>0</rhs>
</Condition>
</ConditionList>
</Action>
<Action sr="act10" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%Alarmzeit</Str>
<Str sr="arg1" ve="3">%month</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="1"/>
</Action>
<Action sr="act11" ve="7">
<code>38</code>
</Action>
<Action sr="act12" ve="7">
<code>37</code>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%day</lhs>
<op>6</op>
<rhs>10</rhs>
</Condition>
</ConditionList>
</Action>
<Action sr="act13" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%Alarmzeit</Str>
<Str sr="arg1" ve="3">%hilf%day</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="1"/>
</Action>
<Action sr="act14" ve="7">
<code>43</code>
</Action>
<Action sr="act15" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%Alarmzeit</Str>
<Str sr="arg1" ve="3">%day</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="1"/>
</Action>
<Action sr="act16" ve="7">
<code>38</code>
</Action>
<Action sr="act17" ve="7">
<code>37</code>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%hour</lhs>
<op>6</op>
<rhs>10</rhs>
</Condition>
</ConditionList>
</Action>
<Action sr="act18" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%Alarmzeit</Str>
<Str sr="arg1" ve="3">%hilf%hour</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="1"/>
</Action>
<Action sr="act19" ve="7">
<code>43</code>
</Action>
<Action sr="act2" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%Alarmzeit</Str>
<Str sr="arg1" ve="3">0</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="0"/>
</Action>
<Action sr="act20" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%Alarmzeit</Str>
<Str sr="arg1" ve="3">%hour</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="1"/>
</Action>
<Action sr="act21" ve="7">
<code>38</code>
</Action>
<Action sr="act22" ve="7">
<code>37</code>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%minute</lhs>
<op>6</op>
<rhs>10</rhs>
</Condition>
</ConditionList>
</Action>
<Action sr="act23" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%Alarmzeit</Str>
<Str sr="arg1" ve="3">%hilf%minute</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="1"/>
</Action>
<Action sr="act24" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%Alarmzeit</Str>
<Str sr="arg1" ve="3">%dayweek</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="1"/>
</Action>
<Action sr="act25" ve="7">
<code>43</code>
</Action>
<Action sr="act26" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%Alarmzeit</Str>
<Str sr="arg1" ve="3">%minute</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="1"/>
</Action>
<Action sr="act27" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%Alarmzeit</Str>
<Str sr="arg1" ve="3">%dayweek</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="1"/>
</Action>
<Action sr="act28" ve="7">
<code>38</code>
</Action>
<Action sr="act29" ve="7">
<code>38</code>
</Action>
<Action sr="act3" ve="7">
<code>43</code>
</Action>
<Action sr="act30" ve="7">
<code>37</code>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%aktWeckzeit</lhs>
<op>9</op>
<rhs>%Alarmzeit</rhs>
</Condition>
</ConditionList>
</Action>
<Action sr="act31" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%aktWeckzeit</Str>
<Str sr="arg1" ve="3">%Alarmzeit</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="0"/>
</Action>
<Action sr="act32" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%Weckzähler</Str>
<Str sr="arg1" ve="3">5</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="0"/>
</Action>
<Action sr="act33" ve="7">
<code>38</code>
</Action>
<Action sr="act34" ve="7">
<code>410</code>
<se>false</se>
<Str sr="arg0" ve="3">Documents/Wecker.txt</Str>
<Str sr="arg1" ve="3">%Alarmzeit</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="1"/>
</Action>
<Action sr="act35" ve="7">
<code>37</code>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%Weckzähler</lhs>
<op>7</op>
<rhs>0</rhs>
</Condition>
</ConditionList>
</Action>
<Action sr="act36" ve="7">
<code>890</code>
<Str sr="arg0" ve="3">%Weckzähler</Str>
<Int sr="arg1" val="1"/>
<Int sr="arg2" val="0"/>
</Action>
<Action sr="act37" ve="7">
<code>37</code>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%aktWeckzeit</lhs>
<op>8</op>
<rhs>0</rhs>
</Condition>
</ConditionList>
</Action>
<Action sr="act38" ve="7">
<code>130217556</code>
<Bundle sr="arg0">
<Vals sr="val">
<ACTION>li.klass.fhem.constants.Actions.EXECUTE_COMMAND</ACTION>
<ACTION-type>java.lang.String</ACTION-type>
<COMMAND>set Weckdummy Deaktiviert</COMMAND>
<COMMAND-type>java.lang.String</COMMAND-type>
<CONNECTION_ID>60785fb0-95da-4352-bf4d-516244aae8a9</CONNECTION_ID>
<CONNECTION_ID-type>java.lang.String</CONNECTION_ID-type>
<com.twofortyfouram.locale.intent.extra.BLURB>set Weckdummy Deaktiviert</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>COMMAND</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">li.klass.fhem</Str>
<Str sr="arg2" ve="3">li.klass.fhem.activities.locale.SendCommandLocaleSettingActivity</Str>
<Int sr="arg3" val="0"/>
</Action>
<Action sr="act39" ve="7">
<code>43</code>
</Action>
<Action sr="act4" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%hilf</Str>
<Str sr="arg1" ve="3">0</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="0"/>
</Action>
<Action sr="act40" ve="7">
<code>130217556</code>
<Bundle sr="arg0">
<Vals sr="val">
<ACTION>li.klass.fhem.constants.Actions.EXECUTE_COMMAND</ACTION>
<ACTION-type>java.lang.String</ACTION-type>
<COMMAND>set Weckdummy %aktWeckzeit</COMMAND>
<COMMAND-type>java.lang.String</COMMAND-type>
<CONNECTION_ID>60785fb0-95da-4352-bf4d-516244aae8a9</CONNECTION_ID>
<CONNECTION_ID-type>java.lang.String</CONNECTION_ID-type>
<com.twofortyfouram.locale.intent.extra.BLURB>set Weckdummy %aktWeckzeit</com.twofortyfouram.locale.intent.extra.BLURB>
<com.twofortyfouram.locale.intent.extra.BLURB-type>java.lang.String</com.twofortyfouram.locale.intent.extra.BLURB-type>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>COMMAND</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS>
<net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>java.lang.String</net.dinglisch.android.tasker.extras.VARIABLE_REPLACE_KEYS-type>
<net.dinglisch.android.tasker.subbundled>true</net.dinglisch.android.tasker.subbundled>
<net.dinglisch.android.tasker.subbundled-type>java.lang.Boolean</net.dinglisch.android.tasker.subbundled-type>
</Vals>
</Bundle>
<Str sr="arg1" ve="3">li.klass.fhem</Str>
<Str sr="arg2" ve="3">li.klass.fhem.activities.locale.SendCommandLocaleSettingActivity</Str>
<Int sr="arg3" val="0"/>
</Action>
<Action sr="act41" ve="7">
<code>38</code>
</Action>
<Action sr="act5" ve="7">
<code>890</code>
<Str sr="arg0" ve="3">%dayweek</Str>
<Int sr="arg1" val="1"/>
<Int sr="arg2" val="0"/>
</Action>
<Action sr="act6" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%Alarmzeit</Str>
<Str sr="arg1" ve="3">%year</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="0"/>
</Action>
<Action sr="act7" ve="7">
<code>37</code>
<ConditionList sr="if">
<Condition sr="c0" ve="3">
<lhs>%month</lhs>
<op>6</op>
<rhs>10</rhs>
</Condition>
</ConditionList>
</Action>
<Action sr="act8" ve="7">
<code>547</code>
<Str sr="arg0" ve="3">%Alarmzeit</Str>
<Str sr="arg1" ve="3">%hilf%month</Str>
<Int sr="arg2" val="0"/>
<Int sr="arg3" val="0"/>
<Int sr="arg4" val="1"/>
</Action>
<Action sr="act9" ve="7">
<code>43</code>
</Action>
</Task>
</TaskerData>

Das Ding sendet nur 5 mal, wenn sich die Zeit geändert hat. Es wird auch in eine Textdatei geloggt.