Informations Flow, Readingsync bei setzen von diversen Set States verbessert. Fehlerbereinigung - Abstürze von FHEM bei falschen Portangaben oder IP's
This commit is contained in:
parent
27b928f247
commit
ea333b3a75
21
74_AMAD.pm
21
74_AMAD.pm
@ -22,7 +22,7 @@
|
||||
#
|
||||
################################################################
|
||||
|
||||
###### Version 0.2.0 ############
|
||||
###### Version 0.2.1 ############
|
||||
|
||||
|
||||
|
||||
@ -77,7 +77,7 @@ sub AMAD_Define($$) {
|
||||
|
||||
InternalTimer(gettimeofday()+$hash->{INTERVAL}, "AMAD_GetUpdateTimer", $hash, 0);
|
||||
|
||||
$hash->{STATE} = "active";
|
||||
$hash->{STATE} = "initialized";
|
||||
readingsSingleUpdate ($hash,"deviceState","online",0);
|
||||
|
||||
return undef;
|
||||
@ -140,7 +140,7 @@ sub AMAD_GetUpdateTimer($)
|
||||
my ($hash) = @_;
|
||||
my $name = $hash->{NAME};
|
||||
|
||||
AMAD_RetrieveAutomagicInfo($hash) if (ReadingsVal($name,"deviceState","online") eq "online" && $hash->{STATE} eq "active");
|
||||
AMAD_RetrieveAutomagicInfo($hash) if (ReadingsVal($name,"deviceState","online") eq "online" && $hash->{STATE} eq "active" || $hash->{STATE} eq "error" || $hash->{STATE} eq "initialized");
|
||||
|
||||
InternalTimer(gettimeofday()+$hash->{INTERVAL}, "AMAD_GetUpdateTimer", $hash, 1);
|
||||
Log3 $name, 4, "AMAD ($name) - Call AMAD_GetUpdateTimer";
|
||||
@ -239,6 +239,7 @@ sub AMAD_RetrieveAutomagicInfoFinished($$$)
|
||||
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";
|
||||
return;
|
||||
}
|
||||
@ -246,6 +247,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";
|
||||
return;
|
||||
}
|
||||
@ -267,6 +269,8 @@ sub AMAD_RetrieveAutomagicInfoFinished($$$)
|
||||
}
|
||||
readingsEndUpdate($hash, 1);
|
||||
|
||||
$hash->{STATE} = "active" if ($hash->{STATE} eq "error" || $hash->{STATE} eq "initialized");
|
||||
|
||||
return undef;
|
||||
}
|
||||
|
||||
@ -277,6 +281,17 @@ sub AMAD_HTTP_POST($$)
|
||||
|
||||
my $state = $hash->{STATE};
|
||||
|
||||
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";
|
||||
return;
|
||||
}
|
||||
if ($hash->{STATE} eq "error")
|
||||
{
|
||||
Log3 $name, 4, "AMAD ($name) - AMAD_HTTP_POST: error while send Set command. Please check IP or PORT";
|
||||
return;
|
||||
}
|
||||
|
||||
$hash->{STATE} = "Send HTTP POST";
|
||||
|
||||
HttpUtils_NonblockingGet(
|
||||
|
98
Flow_Updates/[Automagic]_Information_Flow_Handy
Normal file
98
Flow_Updates/[Automagic]_Information_Flow_Handy
Normal file
@ -0,0 +1,98 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
|
||||
<data version="1.28.0">
|
||||
<trigger type="http_request">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>HTTP Request: /automagic/deviceInfo, Port 8089</name>
|
||||
<enabled>true</enabled>
|
||||
<path>/automagic/deviceInfo</path>
|
||||
<port>8089</port>
|
||||
<acquireWifiLock>true</acquireWifiLock>
|
||||
</trigger>
|
||||
<condition type="battery_level">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Akku Ladestand: grösser als 0%</name>
|
||||
<levelPercentage>0</levelPercentage>
|
||||
<batteryLevelCondition>HIGHER_THAN</batteryLevelCondition>
|
||||
</condition>
|
||||
<action type="write_http_response_text">
|
||||
<useDefaultName>false</useDefaultName>
|
||||
<name>HTTP Response</name>
|
||||
<text>powerLevel {battery_percentage}@@powerPlugged {battery_plugged}@@volumeMusikSpeaker {volumeMusikSpeaker}@@networkCountryIso {network_country_iso}@@voiceMailNumber {voice_mail_number}@@screenBrightness {screenBrightness}@@nextAlarmDay {next_alarmday}@@nextAlarmTime {next_alarmtime}</text>
|
||||
<replaceVariables>true</replaceVariables>
|
||||
<contentType>text/html</contentType>
|
||||
</action>
|
||||
<action type="init_variable_next_alarm">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Initialisiere Variable Nächster Alarm: Variable next_alarm</name>
|
||||
<variable>next_alarm</variable>
|
||||
</action>
|
||||
<action type="init_variable_system_setting">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Initialisiere Variable Systemeinstellung: System screen_brightness to screenBrightness</name>
|
||||
<settingCategory>SYSTEM</settingCategory>
|
||||
<settingName>screen_brightness</settingName>
|
||||
<variable>screenBrightness</variable>
|
||||
</action>
|
||||
<action type="init_variable_system_setting">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Initialisiere Variable Systemeinstellung: System volume_music_speaker to volumeMusikSpeaker</name>
|
||||
<settingCategory>SYSTEM</settingCategory>
|
||||
<settingName>volume_music_speaker</settingName>
|
||||
<variable>volumeMusikSpeaker</variable>
|
||||
</action>
|
||||
<action type="init_variables_phone_info">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Initialisiere Variablen Telefoninfo: network_country_iso, voice_mail_number</name>
|
||||
<isVariableNetworkCountryIso>true</isVariableNetworkCountryIso>
|
||||
<variableNetworkCountryIso>network_country_iso</variableNetworkCountryIso>
|
||||
<isVariableVoiceMailNumber>true</isVariableVoiceMailNumber>
|
||||
<variableVoiceMailNumber>voice_mail_number</variableVoiceMailNumber>
|
||||
</action>
|
||||
<action type="sleep">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Pause: 2s (Gerät wach halten)</name>
|
||||
<duration>2s</duration>
|
||||
<keepDeviceAwake>true</keepDeviceAwake>
|
||||
</action>
|
||||
<action type="script">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Script: next_alarmday = "{next_alarm,dateformat,c}"</name>
|
||||
<script>next_alarmday = "{next_alarm,dateformat,c}"</script>
|
||||
</action>
|
||||
<action type="script">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}"</name>
|
||||
<script>next_alarmtime = "{next_alarm,dateformat,HH:mm}"</script>
|
||||
</action>
|
||||
<flow type="flow">
|
||||
<name>Informationen</name>
|
||||
<group>FHEM Info / Steuerung über AMAD Modul</group>
|
||||
<enabled>true</enabled>
|
||||
<executionPolicy>PARALLEL</executionPolicy>
|
||||
<conditioncontainer id="t1" x="70.0" y="402.5">Akku Ladestand: grösser als 0%</conditioncontainer>
|
||||
<actioncontainer id="t2" x="525.0" y="647.5">Initialisiere Variable Nächster Alarm: Variable next_alarm</actioncontainer>
|
||||
<actioncontainer id="t3" x="70.0" y="1172.5">HTTP Response</actioncontainer>
|
||||
<actioncontainer id="t4" x="-140.0" y="647.5">Initialisiere Variablen Telefoninfo: network_country_iso, voice_mail_number</actioncontainer>
|
||||
<actioncontainer id="t5" x="70.0" y="647.5">Initialisiere Variable Systemeinstellung: System volume_music_speaker to volumeMusikSpeaker</actioncontainer>
|
||||
<actioncontainer id="t6" x="280.0" y="647.5">Initialisiere Variable Systemeinstellung: System screen_brightness to screenBrightness</actioncontainer>
|
||||
<actioncontainer id="t7" x="420.0" y="857.5">Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}"</actioncontainer>
|
||||
<actioncontainer id="t8" x="630.0" y="857.5">Script: next_alarmday = "{next_alarm,dateformat,c}"</actioncontainer>
|
||||
<actioncontainer id="t9" x="69.999954" y="157.5001">Pause: 2s (Gerät wach halten)</actioncontainer>
|
||||
<triggercontainer id="t10" x="70.00001" y="-87.5">
|
||||
<trigger>HTTP Request: /automagic/deviceInfo, Port 8089</trigger>
|
||||
</triggercontainer>
|
||||
<connection from="t1" to="t5" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t1" to="t4" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t1" to="t6" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t1" to="t2" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t2" to="t7" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t2" to="t8" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t4" to="t3" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t5" to="t3" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t6" to="t3" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t7" to="t3" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t8" to="t3" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t9" to="t1" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t10" to="t9" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
</flow>
|
||||
</data>
|
97
Flow_Updates/[Automagic]_Information_Flow_Tablet
Normal file
97
Flow_Updates/[Automagic]_Information_Flow_Tablet
Normal file
@ -0,0 +1,97 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
|
||||
<data version="1.28.0">
|
||||
<trigger type="http_request">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>HTTP Request: /automagic/deviceInfo, Port 8089</name>
|
||||
<enabled>true</enabled>
|
||||
<path>/automagic/deviceInfo</path>
|
||||
<port>8089</port>
|
||||
<acquireWifiLock>true</acquireWifiLock>
|
||||
</trigger>
|
||||
<condition type="battery_level">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Akku Ladestand: grösser als 0%</name>
|
||||
<levelPercentage>0</levelPercentage>
|
||||
<batteryLevelCondition>HIGHER_THAN</batteryLevelCondition>
|
||||
</condition>
|
||||
<action type="write_http_response_text">
|
||||
<useDefaultName>false</useDefaultName>
|
||||
<name>HTTP Response</name>
|
||||
<text>powerLevel {battery_percentage}@@powerPlugged {battery_plugged}@@volumeMusikBluetooth {volumeMusikBluetooth}@@volumeMusikSpeaker {volumeMusikSpeaker}@@screenBrightness {screenBrightness}@@nextAlarmTime {next_alarmtime}@@nextAlarmDay {next_alarmday}</text>
|
||||
<replaceVariables>true</replaceVariables>
|
||||
<contentType>text/html</contentType>
|
||||
</action>
|
||||
<action type="init_variable_next_alarm">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Initialisiere Variable Nächster Alarm: Variable next_alarm</name>
|
||||
<variable>next_alarm</variable>
|
||||
</action>
|
||||
<action type="init_variable_system_setting">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Initialisiere Variable Systemeinstellung: System screen_brightness to screenBrightness</name>
|
||||
<settingCategory>SYSTEM</settingCategory>
|
||||
<settingName>screen_brightness</settingName>
|
||||
<variable>screenBrightness</variable>
|
||||
</action>
|
||||
<action type="init_variable_system_setting">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Initialisiere Variable Systemeinstellung: System volume_music_bt_a2dp to volumeMusikBluetooth</name>
|
||||
<settingCategory>SYSTEM</settingCategory>
|
||||
<settingName>volume_music_bt_a2dp</settingName>
|
||||
<variable>volumeMusikBluetooth</variable>
|
||||
</action>
|
||||
<action type="init_variable_system_setting">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Initialisiere Variable Systemeinstellung: System volume_music_speaker to volumeMusikSpeaker</name>
|
||||
<settingCategory>SYSTEM</settingCategory>
|
||||
<settingName>volume_music_speaker</settingName>
|
||||
<variable>volumeMusikSpeaker</variable>
|
||||
</action>
|
||||
<action type="sleep">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Pause: 2s (Gerät wach halten)</name>
|
||||
<duration>2s</duration>
|
||||
<keepDeviceAwake>true</keepDeviceAwake>
|
||||
</action>
|
||||
<action type="script">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Script: next_alarmday = "{next_alarm,dateformat,c}"</name>
|
||||
<script>next_alarmday = "{next_alarm,dateformat,c}"</script>
|
||||
</action>
|
||||
<action type="script">
|
||||
<useDefaultName>true</useDefaultName>
|
||||
<name>Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}"</name>
|
||||
<script>next_alarmtime = "{next_alarm,dateformat,HH:mm}"</script>
|
||||
</action>
|
||||
<flow type="flow">
|
||||
<name>Informationen</name>
|
||||
<group>FHEM Info / Steuerung über AMAD Modul</group>
|
||||
<enabled>true</enabled>
|
||||
<executionPolicy>PARALLEL</executionPolicy>
|
||||
<conditioncontainer id="t1" x="70.0" y="437.5">Akku Ladestand: grösser als 0%</conditioncontainer>
|
||||
<actioncontainer id="t2" x="665.0" y="612.5">Initialisiere Variable Nächster Alarm: Variable next_alarm</actioncontainer>
|
||||
<actioncontainer id="t3" x="-175.0" y="612.5">Initialisiere Variable Systemeinstellung: System volume_music_bt_a2dp to volumeMusikBluetooth</actioncontainer>
|
||||
<actioncontainer id="t4" x="70.0" y="612.5">Initialisiere Variable Systemeinstellung: System volume_music_speaker to volumeMusikSpeaker</actioncontainer>
|
||||
<actioncontainer id="t5" x="350.0" y="612.5">Initialisiere Variable Systemeinstellung: System screen_brightness to screenBrightness</actioncontainer>
|
||||
<actioncontainer id="t6" x="560.0" y="857.5">Script: next_alarmtime = "{next_alarm,dateformat,HH:mm}"</actioncontainer>
|
||||
<actioncontainer id="t7" x="770.0" y="857.5">Script: next_alarmday = "{next_alarm,dateformat,c}"</actioncontainer>
|
||||
<actioncontainer id="t8" x="69.99997" y="192.5">Pause: 2s (Gerät wach halten)</actioncontainer>
|
||||
<triggercontainer id="t9" x="70.0" y="-52.5">
|
||||
<trigger>HTTP Request: /automagic/deviceInfo, Port 8089</trigger>
|
||||
</triggercontainer>
|
||||
<actioncontainer id="t10" x="70.0" y="1207.5">HTTP Response</actioncontainer>
|
||||
<connection from="t1" to="t3" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t1" to="t4" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t1" to="t5" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t1" to="t2" type="TRUE" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t2" to="t6" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t2" to="t7" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t3" to="t10" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t4" to="t10" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t5" to="t10" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t6" to="t10" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t7" to="t10" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t8" to="t1" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
<connection from="t9" to="t8" type="NORMAL" sourcePosition="SOUTH" targetPosition="NORTH" />
|
||||
</flow>
|
||||
</data>
|
Loading…
x
Reference in New Issue
Block a user