FULLY: maintainer change + commandref update

git-svn-id: https://svn.fhem.de/fhem/trunk@30558 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
Beta-User
2025-11-26 21:33:54 +00:00
parent bfbb104025
commit 7c7985fe24
2 changed files with 883 additions and 858 deletions

View File

@@ -7,10 +7,22 @@
# Control Fully browser on Android tablets from FHEM. # Control Fully browser on Android tablets from FHEM.
# Requires Fully App Plus license! # Requires Fully App Plus license!
# #
# This program free software; you can redistribute it and/or modify # This file is part of fhem.
# it under the terms of the GNU General Public License V2.
# #
# (c) 2022 by zap (zap01 <at> t-online <dot> de) # Fhem is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# Fhem is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with fhem. If not, see <http://www.gnu.org/licenses/>.
#
# (c) 2022-2025 by original autor zap
# #
############################################################################## ##############################################################################
@@ -22,28 +34,6 @@ use HttpUtils;
use JSON; use JSON;
use SetExtensions; use SetExtensions;
# Declare functions
sub FULLY_Initialize ($);
sub FULLY_Define ($$);
sub FULLY_Undef ($$);
sub FULLY_Shutdown ($);
sub FULLY_Set ($@);
sub FULLY_Get ($@);
sub FULLY_Attr ($@);
sub FULLY_Detail ($@);
sub FULLY_Notify ($$);
sub FULLY_UpdateDeviceInfo ($);
sub FULLY_Execute ($$$$);
sub FULLY_ExecuteNB ($$$$);
sub FULLY_ExecuteCB ($$$);
sub FULLY_ScreenOff ($);
sub FULLY_GetDeviceInfo ($);
sub FULLY_UpdateReadings ($$);
sub FULLY_Encrypt ($);
sub FULLY_Decrypt ($);
sub FULLY_Ping ($$);
sub FULLY_SetPolling ($$;$);
my $FULLY_VERSION = '2.3'; my $FULLY_VERSION = '2.3';
# Timeout for Fully requests # Timeout for Fully requests
@@ -972,13 +962,14 @@ sub FULLY_Ping ($$)
1; 1;
__END__
=pod =pod
=item device =item device
=item summary FULLY Browser Integration =item summary FULLY Browser Integration
=begin html =begin html
<a name="FULLY"></a> <a id="FULLY"></a>
<h3>FULLY</h3> <h3>FULLY</h3>
<ul> <ul>
Module for controlling of Fully browser on Android tablets. Requires a Plus license Module for controlling of Fully browser on Android tablets. Requires a Plus license
@@ -986,7 +977,7 @@ sub FULLY_Ping ($$)
must be enabled in Fully app. Requires Fully app version 1.27 or later. must be enabled in Fully app. Requires Fully app version 1.27 or later.
</br></br> </br></br>
<a name="FULLYdefine"></a> <a id="FULLY-define"></a>
<b>Define</b><br/><br/> <b>Define</b><br/><br/>
<ul> <ul>
<code>define &lt;name&gt; FULLY [&lt;Protocol&gt;://]&lt;HostOrIP&gt;[:&lt;Port&gt;] [&lt;password&gt;] [&lt;poll-interval&gt;]</code> <code>define &lt;name&gt; FULLY [&lt;Protocol&gt;://]&lt;HostOrIP&gt;[:&lt;Port&gt;] [&lt;password&gt;] [&lt;poll-interval&gt;]</code>
@@ -999,106 +990,137 @@ sub FULLY_Ping ($$)
</ul> </ul>
<br/> <br/>
<a name="FULLYset"></a> <a id="FULLY-set"></a>
<b>Set</b><br/><br/> <b>Set</b><br/><br/>
<ul> <ul>
<a id="FULLY-set-authentication"></a>
<li><b>set &lt;name&gt; authentication [&lt;password&gt;]</b><br/> <li><b>set &lt;name&gt; authentication [&lt;password&gt;]</b><br/>
Set Fully password. This password is used for each Fully opteration. Set Fully password. This password is used for each Fully opteration.
If no password is specified, the current password is deleted. If no password is specified, the current password is deleted.
</li><br/> </li><br/>
<a id="FULLY-set-brightness"></a>
<li><b>set &lt;name&gt; brightness 0-255</b><br/> <li><b>set &lt;name&gt; brightness 0-255</b><br/>
Adjust screen brightness. Adjust screen brightness.
</li><br/> </li><br/>
<a id="FULLY-set-clearCache"></a>
<li><b>set &lt;name&gt; clearCache</b><br/> <li><b>set &lt;name&gt; clearCache</b><br/>
Clear browser cache. Clear browser cache.
</li><br/> </li><br/>
<a id="FULLY-set-clearCookies"></a>
<li><b>set &lt;name&gt; clearCookies</b><br/> <li><b>set &lt;name&gt; clearCookies</b><br/>
Clear cookies. Clear cookies.
</li><br/> </li><br/>
<a id="FULLY-set-clearWebstorage"></a>
<li><b>set &lt;name&gt; clearWebstorage</b><br/> <li><b>set &lt;name&gt; clearWebstorage</b><br/>
Clear web storage. Clear web storage.
</li><br/> </li><br/>
<a id="FULLY-set-exit"></a>
<li><b>set &lt;name&gt; exit</b><br/> <li><b>set &lt;name&gt; exit</b><br/>
Terminate Fully. Terminate Fully.
</li><br/> </li><br/>
<a id="FULLY-set-foreground"></a>
<li><b>set &lt;name&gt; foreground</b><br/> <li><b>set &lt;name&gt; foreground</b><br/>
Bring fully app to foreground. Bring fully app to foreground.
</li><br/> </li><br/>
<a id="FULLY-set-lockKiosk"></a>
<li><b>set &lt;name&gt; lockKiosk</b><br/> <li><b>set &lt;name&gt; lockKiosk</b><br/>
Lock kiosk mode. Lock kiosk mode.
</li><br/> </li><br/>
<a id="FULLY-set-motionDetection"></a>
<li><b>set &lt;name&gt; motionDetection { on | off }</b><br/> <li><b>set &lt;name&gt; motionDetection { on | off }</b><br/>
Turn motion detection by camera on or off. Turn motion detection by camera on or off.
</li><br/> </li><br/>
<a id="FULLY-set-lock" data-pattern=".*lock"></a>
<li><b>set &lt;name&gt; { lock | unlock }</b><br/> <li><b>set &lt;name&gt; { lock | unlock }</b><br/>
Lock or unlock display. Lock or unlock display.
</li><br/> </li><br/>
<a id="FULLY-set-on" data-pattern="o[nf]+"></a>
<li><b>set &lt;name&gt; { on | off }</b><br/> <li><b>set &lt;name&gt; { on | off }</b><br/>
Turn tablet display on or off. Turn tablet display on or off.
</li><br/> </li><br/>
<a id="FULLY-set-on-for-timer"></a>
<li><b>set &lt;name&gt; on-for-timer [{ &lt;Seconds&gt; | <u>forever</u> | off }]</b><br/> <li><b>set &lt;name&gt; on-for-timer [{ &lt;Seconds&gt; | <u>forever</u> | off }]</b><br/>
Set timer for display. Default is forever. Set timer for display. Default is forever.
</li><br/> </li><br/>
<a id="FULLY-set-overlayMessage"></a>
<li><b>set &lt;name&gt; overlayMessage { text }</b><br/> <li><b>set &lt;name&gt; overlayMessage { text }</b><br/>
Show overlay message. Placeholders in format [device:reading] are supported and will Show overlay message. Placeholders in format [device:reading] are supported and will
be substituted by the corresponding reading value. be substituted by the corresponding reading value.
</li><br/> </li><br/>
<a id="FULLY-set-photo"></a>
<li><b>set &lt;name&gt; photo</b><br/> <li><b>set &lt;name&gt; photo</b><br/>
Take a picture with device cam. Setting motion detection must be enabled. Picture Take a picture with device cam. Setting motion detection must be enabled. Picture
can be viewed in remote admin interface under device info. can be viewed in remote admin interface under device info.
</li><br/> </li><br/>
<a id="FULLY-set-playSound"></a>
<li><b>set &lt;name&gt; playSound &lt;url&gt; [loop]</b><br/> <li><b>set &lt;name&gt; playSound &lt;url&gt; [loop]</b><br/>
Play sound from URL. Play sound from URL.
</li><br/> </li><br/>
<a id="FULLY-set-playVideo"></a>
<li><b>set &lt;name&gt; playVideo &lt;url&gt; [loop] [showControls] [exitOnTouch] [exitOnCompletion]</b><br/> <li><b>set &lt;name&gt; playVideo &lt;url&gt; [loop] [showControls] [exitOnTouch] [exitOnCompletion]</b><br/>
Play video from URL. Play video from URL.
</li><br/> </li><br/>
<a id="FULLY-set-restart"></a>
<li><b>set &lt;name&gt; restart</b><br/> <li><b>set &lt;name&gt; restart</b><br/>
Restart Fully. Restart Fully.
</li><br/> </li><br/>
<a id="FULLY-set-screenOffTimer"></a>
<li><b>set &lt;name&gt; screenOffTimer &lt;seconds&gt;</b><br/> <li><b>set &lt;name&gt; screenOffTimer &lt;seconds&gt;</b><br/>
Turn screen off after some idle seconds, set to 0 to disable timer. Turn screen off after some idle seconds, set to 0 to disable timer.
</li><br/> </li><br/>
<a id="FULLY-set-screenSaver"></a>
<li><b>set &lt;name&gt; screenSaver { start | stop }</b><br/> <li><b>set &lt;name&gt; screenSaver { start | stop }</b><br/>
Start or stop screen saver. Screen saver URL can be set with command <b>set screenSaverURL</b>. Start or stop screen saver. Screen saver URL can be set with command <b>set screenSaverURL</b>.
</li><br/> </li><br/>
<a id="FULLY-set-screenSaverTimer"></a>
<li><b>set &lt;name&gt; screenSaverTimer &lt;seconds&gt;</b><br/> <li><b>set &lt;name&gt; screenSaverTimer &lt;seconds&gt;</b><br/>
Show screen saver URL after some idle seconds, set to 0 to disable timer. Show screen saver URL after some idle seconds, set to 0 to disable timer.
</li><br/> </li><br/>
<a id="FULLY-set-screenSaverURL"></a>
<li><b>set &lt;name&gt; screenSaverURL &lt;URL&gt;</b><br/> <li><b>set &lt;name&gt; screenSaverURL &lt;URL&gt;</b><br/>
Show this URL when screensaver starts, set daydream: for Android daydream or dim: for black.<br/> Show this URL when screensaver starts, set daydream: for Android daydream or dim: for black.<br/>
</li><br/> </li><br/>
<a id="FULLY-set-setBooleanSetting"></a>
<li><b>set &lt;name&gt; setBooleanSetting &lt;Key&gt; &lt;Value&gt;</b><br/> <li><b>set &lt;name&gt; setBooleanSetting &lt;Key&gt; &lt;Value&gt;</b><br/>
Set boolean value in Fully app. Command is ony available if attribute expert is 1. Set boolean value in Fully app. Command is ony available if attribute expert is 1.
Valid keys can be found in Fully remote admin interface. Valid keys can be found in Fully remote admin interface.
</li><br/> </li><br/>
<a id="FULLY-set-setStringSetting"></a>
<li><b>set &lt;name&gt; setStringSetting &lt;Key&gt; &lt;Value&gt;</b><br/> <li><b>set &lt;name&gt; setStringSetting &lt;Key&gt; &lt;Value&gt;</b><br/>
Set string value in Fully app. Command is ony available if attribute expert is 1. Set string value in Fully app. Command is ony available if attribute expert is 1.
Valid keys can be found in Fully remote admin interface. Valid keys can be found in Fully remote admin interface.
</li><br/> </li><br/>
<a id="FULLY-set-speak"></a>
<li><b>set &lt;name&gt; speak &lt;text&gt;</b><br/> <li><b>set &lt;name&gt; speak &lt;text&gt;</b><br/>
Audio output of <i>text</i>. If <i>text</i> contains blanks it must be enclosed Audio output of <i>text</i>. If <i>text</i> contains blanks it must be enclosed
in double quotes. The text can contain device readings in format [device:reading]. in double quotes. The text can contain device readings in format [device:reading].
</li><br/> </li><br/>
<a id="FULLY-set-startApp"></a>
<li><b>set &lt;name&gt; startApp &lt;PackageName&gt;</b><br/> <li><b>set &lt;name&gt; startApp &lt;PackageName&gt;</b><br/>
Start an app. App must be installed on the tablet and package name (not appname!) Start an app. App must be installed on the tablet and package name (not appname!)
must be specified. must be specified.
</li><br/> </li><br/>
<a id="FULLY-set-startURL"></a>
<li><b>set &lt;name&gt; startURL &lt;URL&gt;</b><br/> <li><b>set &lt;name&gt; startURL &lt;URL&gt;</b><br/>
Show this URL when FULLY starts.<br/> Show this URL when FULLY starts.<br/>
</li><br/> </li><br/>
<a id="FULLY-set-stopSound"></a>
<li><b>set &lt;name&gt; stopSound</b><br/> <li><b>set &lt;name&gt; stopSound</b><br/>
Stop playback of sound if playback has been started with option <i>loop</i>. Stop playback of sound if playback has been started with option <i>loop</i>.
</li><br/> </li><br/>
<a id="FULLY-set-stopVideo"></a>
<li><b>set &lt;name&gt; stopVideo</b><br/> <li><b>set &lt;name&gt; stopVideo</b><br/>
Stop playback of video if playback has been started with option <i>loop</i>. Stop playback of video if playback has been started with option <i>loop</i>.
</li><br/> </li><br/>
<a id="FULLY-set-unlockKiosk"></a>
<li><b>set &lt;name&gt; unlockKiosk</b><br/> <li><b>set &lt;name&gt; unlockKiosk</b><br/>
Unlock kiosk mode. Unlock kiosk mode.
</li><br/> </li><br/>
<a id="FULLY-set-url"></a>
<li><b>set &lt;name&gt; url [&lt;URL&gt;]</b><br/> <li><b>set &lt;name&gt; url [&lt;URL&gt;]</b><br/>
Navigate to <i>URL</i>. If no URL is specified navigate to start URL. Navigate to <i>URL</i>. If no URL is specified navigate to start URL.
</li><br/> </li><br/>
<a id="FULLY-set-volume"></a>
<li><b>set &lt;name&gt; volume &lt;level&gt; &lt;stream&gt;</b><br/> <li><b>set &lt;name&gt; volume &lt;level&gt; &lt;stream&gt;</b><br/>
Set audio volume. Range of parameter <i>level</i> is 0-100, range of parameter Set audio volume. Range of parameter <i>level</i> is 0-100, range of parameter
<i>stream</i> is 1-10. <i>stream</i> is 1-10.
@@ -1106,59 +1128,62 @@ sub FULLY_Ping ($$)
</ul> </ul>
<br/> <br/>
<a name="FULLYget"></a> <a id="FULLY-get"></a>
<b>Get</b><br/><br/> <b>Get</b><br/><br/>
<ul> <ul>
<a id="FULLY-get-info"></a>
<li><b>get &lt;name&gt; info</b><br/> <li><b>get &lt;name&gt; info</b><br/>
Display Fully information. This is command blocks FHEM until completion. Display Fully information. This is command blocks FHEM until completion.
</li><br/> </li><br/>
<a id="FULLY-get-stats"></a>
<li><b>get &lt;name&gt; stats</b><br/> <li><b>get &lt;name&gt; stats</b><br/>
Show Fully statistics. Will be implemented later. Show Fully statistics. Will be implemented later.
</li><br/> </li><br/>
<a id="FULLY-get-update"></a>
<li><b>get &lt;name&gt; update</b><br/> <li><b>get &lt;name&gt; update</b><br/>
Update readings. Update readings.
</li><br/> </li><br/>
</ul> </ul>
<br/> <br/>
<a name="FULLYattr"></a> <a id="FULLY-attr"></a>
<b>Attributes</b><br/> <b>Attributes</b><br/>
<br/> <br/>
<ul> <ul>
<a name="disable"></a> <a id="FULLY-attr-disable"></a>
<li><b>disable &lt;0 | 1&gt;</b><br/> <li><b>disable &lt;0 | 1&gt;</b><br/>
Disable device and automatic polling. Disable device and automatic polling.
</li><br/> </li><br/>
<a name="expert"></a> <a id="FULLY-attr-expert"></a>
<li><b>expert &lt;0 | 1&gt;</b><br/> <li><b>expert &lt;0 | 1&gt;</b><br/>
Activate expert mode. Activate expert mode.
</li><br/> </li><br/>
<a name="pingBeforeCmd"></a> <a id="FULLY-attr-pingBeforeCmd"></a>
<li><b>pingBeforeCmd &lt;Count&gt;</b><br/> <li><b>pingBeforeCmd &lt;Count&gt;</b><br/>
Send <i>Count</i> ping request to tablet before executing commands. Valid values Send <i>Count</i> ping request to tablet before executing commands. Valid values
for <i>Count</i> are 0,1,2. Default is 0 (do not send ping request). for <i>Count</i> are 0,1,2. Default is 0 (do not send ping request).
</li><br/> </li><br/>
<a name="pollInterval"></a> <a id="FULLY-attr-pollInterval"></a>
<li><b>pollInterval &lt;seconds&gt;</b><br/> <li><b>pollInterval &lt;seconds&gt;</b><br/>
Set polling interval for FULLY device information. Set polling interval for FULLY device information.
If <i>seconds</i> is 0 polling is turned off. Valid values are from 10 to If <i>seconds</i> is 0 polling is turned off. Valid values are from 10 to
86400 seconds. 86400 seconds.
</li><br/> </li><br/>
<a name="repeatCommand"></a> <a id="FULLY-attr-repeatCommand"></a>
<li><b>repeatCommand &lt;Count&gt;</b><br/> <li><b>repeatCommand &lt;Count&gt;</b><br/>
Repeat fully command on failure. Valid values for <i>Count</i> are 0,1,2. Default Repeat fully command on failure. Valid values for <i>Count</i> are 0,1,2. Default
is 0 (do not repeat commands). is 0 (do not repeat commands).
</li><br/> </li><br/>
<a name="requestTimeout"></a> <a id="FULLY-attr-requestTimeout"></a>
<li><b>requestTimeout &lt;seconds&gt;</b><br/> <li><b>requestTimeout &lt;seconds&gt;</b><br/>
Set timeout for http requests. Default is 5 seconds. Increase this value if commands Set timeout for http requests. Default is 5 seconds. Increase this value if commands
are failing with a timeout error. are failing with a timeout error.
</li><br/> </li><br/>
<a name="updateAfterCommand"></a> <a id="FULLY-attr-updateAfterCommand"></a>
<li><b>updateAfterCommand &lt;0 | 1&gt;</b><br/> <li><b>updateAfterCommand &lt;0 | 1&gt;</b><br/>
When set to 1 update readings after a set command. Default is 0. When set to 1 update readings after a set command. Default is 0.
</li><br/> </li><br/>
<a name="waitAfterPing"></a> <a id="FULLY-attr-waitAfterPing"></a>
<li><b>waitAfterPing &lt;Seconds&gt;</b><br/> <li><b>waitAfterPing &lt;Seconds&gt;</b><br/>
Wait specified amount of time after sending ping request to tablet device. Valid Wait specified amount of time after sending ping request to tablet device. Valid
values for <i>Seconds</i> are 0,1,2. Default is 0 (do not wait). Only used if values for <i>Seconds</i> are 0,1,2. Default is 0 (do not wait). Only used if

View File

@@ -455,7 +455,7 @@ FHEM/88_xs1Dev.pm HomeAuto_User Sonstige Systeme (Link als PM
FHEM/89_AndroidDB.pm zap Multimedia FHEM/89_AndroidDB.pm zap Multimedia
FHEM/89_AndroidDBHost.pm zap Multimedia FHEM/89_AndroidDBHost.pm zap Multimedia
FHEM/89_ESPEInk.pm eki Sonstige Systeme FHEM/89_ESPEInk.pm eki Sonstige Systeme
FHEM/89_FULLY.pm zap Frontends FHEM/89_FULLY.pm Beta-User Frontends https://forum.fhem.de/index.php?topic=143143.0
FHEM/89_HEATRONIC.pm heikoranft Sonstige Systeme FHEM/89_HEATRONIC.pm heikoranft Sonstige Systeme
FHEM/89_VCLIENT.pm andies Heizungssteuerung/Raumklima FHEM/89_VCLIENT.pm andies Heizungssteuerung/Raumklima
FHEM/89_VCONTROL.pm adamwit Heizungssteuerung/Raumklima FHEM/89_VCONTROL.pm adamwit Heizungssteuerung/Raumklima