diff --git a/fhem/FHEM/10_RESIDENTS.pm b/fhem/FHEM/10_RESIDENTS.pm index e827ac7bd..0263bc2c7 100644 --- a/fhem/FHEM/10_RESIDENTS.pm +++ b/fhem/FHEM/10_RESIDENTS.pm @@ -1656,4 +1656,25 @@ sub RESIDENTS_UpdateReadings (@) { =end html_DE +=for :application/json;q=META.json 10_RESIDENTS.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ], + "keywords": [ + "Attendence", + "Family", + "People", + "Presence", + "RESIDENTS" + ] +} +=end :application/json;q=META.json + =cut diff --git a/fhem/FHEM/20_GUEST.pm b/fhem/FHEM/20_GUEST.pm index 6a5903c99..9acf60994 100644 --- a/fhem/FHEM/20_GUEST.pm +++ b/fhem/FHEM/20_GUEST.pm @@ -639,4 +639,25 @@ sub GUEST_Initialize($) { =end html_DE +=for :application/json;q=META.json 20_GUEST.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ], + "keywords": [ + "Attendence", + "Family", + "People", + "Presence", + "RESIDENTS" + ] +} +=end :application/json;q=META.json + =cut diff --git a/fhem/FHEM/20_ROOMMATE.pm b/fhem/FHEM/20_ROOMMATE.pm index bcd57e165..69d487419 100644 --- a/fhem/FHEM/20_ROOMMATE.pm +++ b/fhem/FHEM/20_ROOMMATE.pm @@ -641,4 +641,25 @@ sub ROOMMATE_Initialize($) { =end html_DE +=for :application/json;q=META.json 20_ROOMMATE.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ], + "keywords": [ + "Attendence", + "Family", + "People", + "Presence", + "RESIDENTS" + ] +} +=end :application/json;q=META.json + =cut diff --git a/fhem/FHEM/42_npmjs.pm b/fhem/FHEM/42_npmjs.pm index 54f0038da..e3bebc4d0 100644 --- a/fhem/FHEM/42_npmjs.pm +++ b/fhem/FHEM/42_npmjs.pm @@ -1776,6 +1776,11 @@ sub ToDay() { "x_fhem_maintainer_github": [ "jpawlowski" ], + "keywords": [ + "nodejs", + "setup", + "update" + ], "prereqs": { "runtime": { "requires": { diff --git a/fhem/FHEM/50_HP1000.pm b/fhem/FHEM/50_HP1000.pm index 8da9468db..a9a67baad 100755 --- a/fhem/FHEM/50_HP1000.pm +++ b/fhem/FHEM/50_HP1000.pm @@ -1716,4 +1716,18 @@ sub HP1000_HistoryDb($$;$$$) { =end html_DE +=for :application/json;q=META.json 50_HP1000.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ] +} +=end :application/json;q=META.json + =cut diff --git a/fhem/FHEM/59_Wunderground.pm b/fhem/FHEM/59_Wunderground.pm index e553b1ca1..0cc51e0e9 100644 --- a/fhem/FHEM/59_Wunderground.pm +++ b/fhem/FHEM/59_Wunderground.pm @@ -1176,4 +1176,18 @@ sub Wunderground_Hash2Readings($$;$) { =end html_DE +=for :application/json;q=META.json 59_Wunderground.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ] +} +=end :application/json;q=META.json + =cut diff --git a/fhem/FHEM/70_ENIGMA2.pm b/fhem/FHEM/70_ENIGMA2.pm index fcaf3a02c..5775e9ef6 100644 --- a/fhem/FHEM/70_ENIGMA2.pm +++ b/fhem/FHEM/70_ENIGMA2.pm @@ -3309,4 +3309,33 @@ sub ENIGMA2_RClayout_VUplusDuo2() { =end html_DE +=for :application/json;q=META.json 70_ENIGMA2.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ], + "keywords": [ + "Axas", + "Dreambox", + "GigaBlue", + "Protek", + "Telestar", + "VU+", + "VUplus", + "DVB-C", + "DVB-S", + "DVB-T", + "SAT Receiver", + "Set-top box", + "TV" + ] +} +=end :application/json;q=META.json + =cut diff --git a/fhem/FHEM/70_LaMetric2.pm b/fhem/FHEM/70_LaMetric2.pm index e159dcf27..e609283ea 100644 --- a/fhem/FHEM/70_LaMetric2.pm +++ b/fhem/FHEM/70_LaMetric2.pm @@ -2706,23 +2706,12 @@ Leider keine deutsche Dokumentation vorhanden. Die englische Version gibt es hie "x_fhem_maintainer_github": [ "jpawlowski" ], - "resources": { - "license": [ - "https://fhem.de/#License" - ], - "homepage": "https://fhem.de/", - "bugtracker": { - "web": "https://forum.fhem.de/index.php/board,53.0.html", - "x_web_title": "Multimedia" - }, - "repository": { - "type": "svn", - "url": "https://svn.fhem.de/fhem/", - "x_branch_master": "trunk", - "x_branch_dev": "trunk", - "web": "https://svn.fhem.de/" - } - } + "keywords": [ + "Clock", + "Display", + "Time", + "Watch" + ] } =end :application/json;q=META.json diff --git a/fhem/FHEM/70_PHTV.pm b/fhem/FHEM/70_PHTV.pm index b0b5a5132..7db814559 100644 --- a/fhem/FHEM/70_PHTV.pm +++ b/fhem/FHEM/70_PHTV.pm @@ -3747,4 +3747,22 @@ Die englische Version ist hier zu finden: =end html_DE +=for :application/json;q=META.json 70_PHTV.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ], + "keywords": [ + "Philips", + "TV" + ] +} +=end :application/json;q=META.json + =cut diff --git a/fhem/FHEM/70_Pushover.pm b/fhem/FHEM/70_Pushover.pm index 5a51e6a8d..6a2924b6f 100644 --- a/fhem/FHEM/70_Pushover.pm +++ b/fhem/FHEM/70_Pushover.pm @@ -1843,4 +1843,24 @@ sub Pushover_HttpUri ($$;$) { =end html_DE + +=for :application/json;q=META.json 70_Pushover.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ], + "keywords": [ + "messaging", + "messenger", + "push" + ] +} +=end :application/json;q=META.json + =cut diff --git a/fhem/FHEM/74_THINKINGCLEANER.pm b/fhem/FHEM/74_THINKINGCLEANER.pm index 56a138665..836883b0f 100644 --- a/fhem/FHEM/74_THINKINGCLEANER.pm +++ b/fhem/FHEM/74_THINKINGCLEANER.pm @@ -1859,4 +1859,25 @@ sub THINKINGCLEANER_sec2time($) { =end html_DE +=for :application/json;q=META.json 74_THINKINGCLEANER.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ], + "keywords": [ + "hoover", + "iRobot", + "Robot", + "Roomba", + "vacuum" + ] +} +=end :application/json;q=META.json + =cut diff --git a/fhem/FHEM/75_MSG.pm b/fhem/FHEM/75_MSG.pm index 7c1a2cec6..b222911b6 100755 --- a/fhem/FHEM/75_MSG.pm +++ b/fhem/FHEM/75_MSG.pm @@ -2492,4 +2492,26 @@ m/^(absent|disappeared|unauthorized|disconnected|unreachable)$/i =end html_DE + +=for :application/json;q=META.json 75_MSG.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ], + "keywords": [ + "audio router", + "email", + "messaging", + "messenger", + "push" + ] +} +=end :application/json;q=META.json + =cut diff --git a/fhem/FHEM/75_msgConfig.pm b/fhem/FHEM/75_msgConfig.pm index 0359d5174..565c887f9 100755 --- a/fhem/FHEM/75_msgConfig.pm +++ b/fhem/FHEM/75_msgConfig.pm @@ -889,4 +889,23 @@ This next step is basically to set attribute msgResidentsDevice to refer to this =end html_DE +=for :application/json;q=META.json 75_msgConfig.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ], + "keywords": [ + "configure", + "messaging", + "messenger" + ] +} +=end :application/json;q=META.json + =cut diff --git a/fhem/FHEM/98_GEOFANCY.pm b/fhem/FHEM/98_GEOFANCY.pm index da5c638f5..3db379530 100755 --- a/fhem/FHEM/98_GEOFANCY.pm +++ b/fhem/FHEM/98_GEOFANCY.pm @@ -866,4 +866,27 @@ sub GEOFANCY_ISO8601UTCtoLocal ($) { =end html_DE +=for :application/json;q=META.json 98_GEOFANCY.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ], + "keywords": [ + "Geofencing", + "Geofency", + "Locative", + "EgiGeoZone", + "Location", + "Presence", + "Tracking" + ] +} +=end :application/json;q=META.json + =cut diff --git a/fhem/FHEM/98_Installer.pm b/fhem/FHEM/98_Installer.pm index 8c202f38b..087bed0ea 100644 --- a/fhem/FHEM/98_Installer.pm +++ b/fhem/FHEM/98_Installer.pm @@ -2826,6 +2826,11 @@ sub __aUniq { "x_fhem_maintainer_github": [ "jpawlowski" ], + "keywords": [ + "Dependencies", + "Prerequisites", + "Setup" + ], "prereqs": { "runtime": { "requires": { diff --git a/fhem/FHEM/HOMESTATEtk.pm b/fhem/FHEM/HOMESTATEtk.pm index 7cd799c78..5a2f6267b 100644 --- a/fhem/FHEM/HOMESTATEtk.pm +++ b/fhem/FHEM/HOMESTATEtk.pm @@ -1312,3 +1312,19 @@ sub HOMESTATEtk_UpdateReadings (@) { 1; +=for :application/json;q=META.json HOMESTATEtk.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ], + "keywords": [ + "RESIDENTS" + ] +} +=end :application/json;q=META.json diff --git a/fhem/FHEM/Meta.pm b/fhem/FHEM/Meta.pm index 4efc03346..a669c06aa 100644 --- a/fhem/FHEM/Meta.pm +++ b/fhem/FHEM/Meta.pm @@ -3136,9 +3136,6 @@ sub __SetXVersion { "suggests": { } } - }, - "resources": { - "homepage": "https://fhem.de/" } } =end :application/json;q=META.json diff --git a/fhem/FHEM/RESIDENTStk.pm b/fhem/FHEM/RESIDENTStk.pm index 2157154cc..27bd889d2 100644 --- a/fhem/FHEM/RESIDENTStk.pm +++ b/fhem/FHEM/RESIDENTStk.pm @@ -3790,3 +3790,20 @@ sub RESIDENTStk_DoInitDev(@) { } 1; + +=for :application/json;q=META.json RESIDENTStk.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ], + "keywords": [ + "RESIDENTS" + ] +} +=end :application/json;q=META.json diff --git a/fhem/FHEM/UConv.pm b/fhem/FHEM/UConv.pm index e7adc4cf8..f727cc173 100644 --- a/fhem/FHEM/UConv.pm +++ b/fhem/FHEM/UConv.pm @@ -8,7 +8,6 @@ use Scalar::Util qw(looks_like_number); use POSIX qw(strftime); use Data::Dumper; - #################### # Translations @@ -339,6 +338,146 @@ our %dateformatss = ( de => '%mday%. %mon_long%', ); +# https://www.luftfeuchtigkeit-raumklima.de/tabelle.php +our %ideal_clima = ( + bathroom => { + c => { + '−273.15' => 0, + '6' => 1, + '16' => 2, + '20' => 3, + '23' => 4, + '27' => 5, + }, + h => { + '0' => 0, + '40' => 1, + '50' => 2, + '70' => 3, + '80' => 4, + }, + }, + living => { + c => { + '−273.15' => 0, + '6' => 1, + '16' => 2, + '20' => 3, + '23' => 4, + '27' => 5, + }, + h => { + '0' => 0, + '30' => 1, + '40' => 2, + '60' => 3, + '70' => 4, + }, + }, + kitchen => { + c => { + '−273.15' => 0, + '6' => 1, + '16' => 2, + '18' => 3, + '20' => 4, + '27' => 5, + }, + h => { + '0' => 0, + '40' => 1, + '50' => 2, + '60' => 3, + '70' => 4, + }, + }, + bedroom => { + c => { + '−273.15' => 0, + '6' => 1, + '12' => 2, + '17' => 3, + '20' => 4, + '23' => 5, + }, + h => { + '0' => 0, + '30' => 1, + '40' => 2, + '60' => 3, + '70' => 4, + }, + }, + hallway => { + c => { + '−273.15' => 0, + '6' => 1, + '12' => 2, + '15' => 3, + '18' => 4, + '23' => 5, + }, + h => { + '0' => 0, + '30' => 1, + '40' => 2, + '60' => 3, + '70' => 4, + }, + }, + cellar => { + c => { + '−273.15' => 0, + '6' => 1, + '7' => 2, + '10' => 3, + '15' => 4, + '20' => 5, + }, + h => { + '0' => 0, + '40' => 1, + '50' => 2, + '60' => 3, + '70' => 4, + }, + }, + outdoor => { + c => { + '−273.15' => 0, + '2.5' => 1, + '5' => 2, + '14' => 3, + '30' => 4, + '35' => 5, + }, + h => { + '0' => 0, + '40' => 1, + '50' => 2, + '70' => 3, + '80' => 4, + }, + }, +); + +our %clima_rgb = ( + c => [ "0055BB", "0066CC", "009999", "4C9329", "E7652B", "C72A23" ], + h => [ "C72A23", "E7652B", "4C9329", "009999", "0066CC" ], +); + +our %clima_names = ( + c => { + en => [ "freeze", "cold", "low", "ideal", "high", "hot" ], + de => [ "frostig", "kalt", "niedrig", "optimal", "hoch", "heiß" ], + + }, + h => { + en => [ "dry", "low", "ideal", "high", "wet" ], + de => [ "trocken", "niedrig", "optimal", "hoch", "nass" ], + } +); + ################################# ### Inner metric conversions ### @@ -878,35 +1017,29 @@ sub humanReadable($;$) { # } # Condition: convert temperature (Celsius) to temperature condition -sub c2condition($;$) { - my ( $data, $indoor ) = @_; - my $val = "freeze"; - my $rgb = "0055BB"; +sub c2condition($;$$) { + my ( $data, $roomType, $lang ) = @_; + my $val = "?"; + my $rgb = "FFFFFF"; + $lang = "en" if ( !$lang ); - if ($indoor) { - $data -= 5 if ( $data < 22.5 ); - $data += 5 if ( $data > 25 ); + if ($roomType) { + $roomType = "living" + if ( looks_like_number($roomType) ); + } + else { + $roomType = "outdoor"; } - if ( $data >= 35 ) { - $val = "hot"; - $rgb = "C72A23"; - } - elsif ( $data >= 30 ) { - $val = "high"; - $rgb = "E7652B"; - } - elsif ( $data >= 14 ) { - $val = "ideal"; - $rgb = "4C9329"; - } - elsif ( $data >= 5 ) { - $val = "low"; - $rgb = "009999"; - } - elsif ( $data >= 2.5 || $indoor ) { - $val = "cold"; - $rgb = "0066CC"; + if ( defined( $ideal_clima{$roomType} ) ) { + foreach my $th ( reverse sort keys %{ $ideal_clima{$roomType} } ) { + if ( $data >= $th ) { + my $i = $ideal_clima{$roomType}{$th}; + $val = $clima_names{c}{$lang}[$i]; + $rgb = $clima_rgb{c}[$i]; + last; + } + } } return ( $val, $rgb ) if (wantarray); @@ -1902,3 +2035,21 @@ sub _ReplaceStringByHashKey($$;$) { } 1; + +=for :application/json;q=META.json UConv.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ], + "keywords": [ + "RType", + "Unit" + ] +} +=end :application/json;q=META.json diff --git a/fhem/FHEM/Unit.pm b/fhem/FHEM/Unit.pm index 2de1cfee5..a79a22ec9 100644 --- a/fhem/FHEM/Unit.pm +++ b/fhem/FHEM/Unit.pm @@ -4656,3 +4656,21 @@ sub CommandDeleteReadingDesc($@) { } 1; + +=for :application/json;q=META.json Unit.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ], + "keywords": [ + "RType", + "Unit" + ] +} +=end :application/json;q=META.json diff --git a/fhem/FHEM/msgSchema.pm b/fhem/FHEM/msgSchema.pm index 715d4ab66..0f2e582dd 100755 --- a/fhem/FHEM/msgSchema.pm +++ b/fhem/FHEM/msgSchema.pm @@ -449,3 +449,20 @@ sub get { } 1; + +=for :application/json;q=META.json msgSchema.pm +{ + "author": [ + "Julian Pawlowski " + ], + "x_fhem_maintainer": [ + "loredo" + ], + "x_fhem_maintainer_github": [ + "jpawlowski" + ], + "keywords": [ + "messaging" + ] +} +=end :application/json;q=META.json