Zitat von: DS_Starter am 06 April 2026, 23:32:31Bis dahin ist wichtig, dass ihr ein wenig darauf achtet ob die Aktivierung des Consumers mit "evid" gut funktioniert.
Zitat von: rudolfkoenig am 06 April 2026, 12:02:47Wieso oeffnet das gezeigte Code-Stueck das Micro wieder?Der Code wirft jetzt "nur" einen "bin fertig mit sprechen" Event, damit man auf der FHEM-Seite den Zeitpunkt kennt, ab wann man das Mikro wieder aufmachen kann, WENN man weitere Infos vom Sprecher haben möchte.
ZitatUnd warum will man das ueberhaupt?Das scheine ich nicht gut erklärt zu haben. "Man" will das nicht zwangsläufig immer, sondern nur in gewissen Fällen. Wenn es auf der js-Seite sicher klappen würde, hätte ich dementsprechend versucht, das mit der Übergabe eines weiteren Parameters zu steuern, ob danach das Mikro wieder aktiviert werden soll![]()
. ZitatPush ist seit 28.3 in f18.js eingebaut (siehe https://forum.fhem.de/index.php?topic=143778.msg1360637#msg1360637),Mit den Neuerungen bzgl. push und additionalInform muss ich mich erst mal befassen, wie das in dem Zusammenhang zweckmäßigerweise einzubauen ist.
Zitatund fuer TTS siehe meinen Beitrag hier von vorgestern.Wenn ich das richtig verstanden habe, geht es pah nicht darum, die TTS-Fähigeit des Endgeräts direkt zu nutzen, sondern "Jeannie" (?) sprechen zu lassen, damit die Sprachausgabe aus FHEM auf allen Endgeräten gleich klingt.
Internals:
BUSY 0
DEF https://www.penny-del.org/spiele 18060
FUUID 69c92e07-f33f-7706-0d6e-fa5ceffc3a8a1ca5
FVERSION 98_HTTPMOD.pm:0.291590/2024-09-23
Interval 18060
MainURL https://www.penny-del.org/spiele
ModuleVersion 4.2.0 - 11.8.2023
NAME hockey_playoff
NOTIFYDEV global
NR 578
NTFY_ORDER 50-hockey_playoff
STATE Kölner Haie
TYPE HTTPMOD
eventCount 8
value
CompiledRegexes:
HttpUtils:
NAME
addr https://www.penny-del.org:443
auth 0
buf
code 200
compress 1
conn
data
displayurl https://www.penny-del.org/spiele
header
host www.penny-del.org
httpheader HTTP/1.1 200 OK
date: Mon, 06 Apr 2026 22:17:04 GMT
server: Apache/2.4.52 (Ubuntu)
content-language: de-DE
cache-control: max-age=0
expires: Mon, 06 Apr 2026 22:17:04 GMT
vary: Accept-Encoding
content-encoding: gzip
x-ua-compatible: IE=edge
x-content-type-options: nosniff
content-length: 8955
keep-alive: timeout=5, max=100
content-type: text/html; charset=utf-8
connection: close
httpversion 1.0
hu_blocking 0
hu_filecount 1
hu_port 443
hu_portSfx
ignoreredirects 1
loglevel 4
path /spiele
protocol https
redirects 0
timeout 30
url https://www.penny-del.org/spiele
sslargs:
QUEUE:
READINGS:
2026-04-07 00:17:04 name-1 Kölner Haie
2026-04-07 00:17:04 name-10 Eisbären Berlin
2026-04-07 00:17:04 name-11 EHC Red Bull München
2026-04-07 00:17:04 name-12 ERC Ingolstadt
2026-04-07 00:17:04 name-13 Pinguins Bremerhaven
2026-04-07 00:17:04 name-14 Nürnberg Ice Tigers
2026-04-07 00:17:04 name-15 Grizzlys Wolfsburg
2026-04-07 00:17:04 name-16 Schwenninger Wild Wings
2026-04-07 00:17:04 name-2 Eisbären Berlin
2026-04-07 00:17:04 name-3 Adler Mannheim
2026-04-07 00:17:04 name-4 EHC Red Bull München
2026-04-07 00:17:04 name-5 Kölner Haie
2026-04-07 00:17:04 name-6 Schwenninger Wild Wings
2026-04-07 00:17:04 name-7 Adler Mannheim
2026-04-07 00:17:04 name-8 Pinguins Bremerhaven
2026-04-07 00:17:04 name-9 Straubing Tigers
2026-04-07 00:17:04 nameHF-1 Kölner Haie
2026-04-07 00:17:04 nameHF-2 Eisbären Berlin
2026-04-07 00:17:04 nameHF-3 Adler Mannheim
2026-04-07 00:17:04 nameHF-4 EHC Red Bull München
2026-04-07 00:17:04 nameHF-5 Viertelfinale
2026-04-07 00:17:04 namePPO-1 Pinguins Bremerhaven
2026-04-07 00:17:04 namePPO-2 Nürnberg Ice Tigers
2026-04-07 00:17:04 namePPO-3 Grizzlys Wolfsburg
2026-04-07 00:17:04 namePPO-4 Schwenninger Wild Wings
2026-04-07 00:17:04 nameVF-1 Kölner Haie
2026-04-07 00:17:04 nameVF-2 Schwenninger Wild Wings
2026-04-07 00:17:04 nameVF-3 Adler Mannheim
2026-04-07 00:17:04 nameVF-4 Pinguins Bremerhaven
2026-04-07 00:17:04 nameVF-5 Straubing Tigers
2026-04-07 00:17:04 nameVF-6 Eisbären Berlin
2026-04-07 00:17:04 nameVF-7 EHC Red Bull München
2026-04-07 00:17:04 nameVF-8 ERC Ingolstadt
2026-04-07 00:17:04 seriesF-1 0
2026-04-07 00:17:04 seriesHF-1 0
2026-04-07 00:17:04 seriesHF-2 0
2026-04-07 00:17:04 seriesPPO-1 1
2026-04-07 00:17:04 seriesPPO-2 2
2026-04-07 00:17:04 seriesVF-1 1
2026-04-07 00:17:04 seriesVF-2 1
2026-04-07 00:17:04 seriesVF-3 2
2026-04-07 00:17:04 seriesVF-4 1
2026-04-07 00:17:04 standing-1 0:0
2026-04-07 00:17:04 standing-2 0:0
2026-04-07 00:17:04 standing-3 4:0
2026-04-07 00:17:04 standing-4 4:1
2026-04-07 00:17:04 standing-5 2:4
2026-04-07 00:17:04 standing-6 4:2
2026-04-07 00:17:04 standing-7 2:0
2026-04-07 00:17:04 standing-8 1:2
2026-04-07 00:17:04 standingHF-1 0:0
2026-04-07 00:17:04 standingHF-2 0:0
2026-04-07 00:17:04 standingPPO-1 2:0
2026-04-07 00:17:04 standingPPO-2 1:2
2026-04-07 00:17:04 standingVF-1 4:0
2026-04-07 00:17:04 standingVF-2 4:1
2026-04-07 00:17:04 standingVF-3 2:4
2026-04-07 00:17:04 standingVF-4 4:2
2026-04-07 00:17:04 winnerF-1 0
2026-04-07 00:17:04 winnerHF-1 0
2026-04-07 00:17:04 winnerHF-2 0
2026-04-07 00:17:04 winnerPPO-1 1
2026-04-07 00:17:04 winnerPPO-2 2
2026-04-07 00:17:04 winnerVF-1 1
2026-04-07 00:17:04 winnerVF-2 1
2026-04-07 00:17:04 winnerVF-3 2
2026-04-07 00:17:04 winnerVF-4 1
REQUEST:
context reading
data
header
ignoreredirects 0
num unknown
retryCount 0
type update
url https://www.penny-del.org/spiele
defptr:
readingBase:
name-1 reading
name-10 reading
name-11 reading
name-12 reading
name-13 reading
name-14 reading
name-15 reading
name-16 reading
name-2 reading
name-3 reading
name-4 reading
name-5 reading
name-6 reading
name-7 reading
name-8 reading
name-9 reading
nameHF-1 reading
nameHF-2 reading
nameHF-3 reading
nameHF-4 reading
nameHF-5 reading
namePPO-1 reading
namePPO-2 reading
namePPO-3 reading
namePPO-4 reading
nameVF-1 reading
nameVF-2 reading
nameVF-3 reading
nameVF-4 reading
nameVF-5 reading
nameVF-6 reading
nameVF-7 reading
nameVF-8 reading
standing-1 reading
standing-2 reading
standing-3 reading
standing-4 reading
standing-5 reading
standing-6 reading
standing-7 reading
standing-8 reading
standingHF-1 reading
standingHF-2 reading
standingPPO-1 reading
standingPPO-2 reading
standingVF-1 reading
standingVF-2 reading
standingVF-3 reading
standingVF-4 reading
readingNum:
name-1 01
name-10 01
name-11 01
name-12 01
name-13 01
name-14 01
name-15 01
name-16 01
name-2 01
name-3 01
name-4 01
name-5 01
name-6 01
name-7 01
name-8 01
name-9 01
nameHF-1 07
nameHF-2 07
nameHF-3 07
nameHF-4 07
nameHF-5 07
namePPO-1 03
namePPO-2 03
namePPO-3 03
namePPO-4 03
nameVF-1 05
nameVF-2 05
nameVF-3 05
nameVF-4 05
nameVF-5 05
nameVF-6 05
nameVF-7 05
nameVF-8 05
standing-1 02
standing-2 02
standing-3 02
standing-4 02
standing-5 02
standing-6 02
standing-7 02
standing-8 02
standingHF-1 08
standingHF-2 08
standingPPO-1 04
standingPPO-2 04
standingVF-1 06
standingVF-2 06
standingVF-3 06
standingVF-4 06
readingOutdated:
readingSubNum:
name-1 -1
name-10 -10
name-11 -11
name-12 -12
name-13 -13
name-14 -14
name-15 -15
name-16 -16
name-2 -2
name-3 -3
name-4 -4
name-5 -5
name-6 -6
name-7 -7
name-8 -8
name-9 -9
nameHF-1 -1
nameHF-2 -2
nameHF-3 -3
nameHF-4 -4
nameHF-5 -5
namePPO-1 -1
namePPO-2 -2
namePPO-3 -3
namePPO-4 -4
nameVF-1 -1
nameVF-2 -2
nameVF-3 -3
nameVF-4 -4
nameVF-5 -5
nameVF-6 -6
nameVF-7 -7
nameVF-8 -8
standing-1 -1
standing-2 -2
standing-3 -3
standing-4 -4
standing-5 -5
standing-6 -6
standing-7 -7
standing-8 -8
standingHF-1 -1
standingHF-2 -2
standingPPO-1 -1
standingPPO-2 -2
standingVF-1 -1
standingVF-2 -2
standingVF-3 -3
standingVF-4 -4
requestReadings:
update:
name-1 reading 01-1
name-10 reading 01-10
name-11 reading 01-11
name-12 reading 01-12
name-13 reading 01-13
name-14 reading 01-14
name-15 reading 01-15
name-16 reading 01-16
name-2 reading 01-2
name-3 reading 01-3
name-4 reading 01-4
name-5 reading 01-5
name-6 reading 01-6
name-7 reading 01-7
name-8 reading 01-8
name-9 reading 01-9
nameHF-1 reading 07-1
nameHF-2 reading 07-2
nameHF-3 reading 07-3
nameHF-4 reading 07-4
nameHF-5 reading 07-5
namePPO-1 reading 03-1
namePPO-2 reading 03-2
namePPO-3 reading 03-3
namePPO-4 reading 03-4
nameVF-1 reading 05-1
nameVF-2 reading 05-2
nameVF-3 reading 05-3
nameVF-4 reading 05-4
nameVF-5 reading 05-5
nameVF-6 reading 05-6
nameVF-7 reading 05-7
nameVF-8 reading 05-8
standing-1 reading 02-1
standing-2 reading 02-2
standing-3 reading 02-3
standing-4 reading 02-4
standing-5 reading 02-5
standing-6 reading 02-6
standing-7 reading 02-7
standing-8 reading 02-8
standingHF-1 reading 08-1
standingHF-2 reading 08-2
standingPPO-1 reading 04-1
standingPPO-2 reading 04-2
standingVF-1 reading 06-1
standingVF-2 reading 06-2
standingVF-3 reading 06-3
standingVF-4 reading 06-4
Attributes:
alias DEL Play-Off's
enableControlSet 1
group Eishockey
icon Wunderlist
reading01Name name
reading01RegOpt g
reading01Regex <\/div>\s*([\w+öäüÖÄÜ][ \wöäüÖÄÜ]+)\s*<\/div>
reading02Decode utf-8
reading02Name standing
reading02RegOpt g
reading02Regex <h3>(.*)<\/h3>
reading03Name namePPO
reading03RegOpt g
reading03Regex (?:1. Playoff-Runde|(?!\A)\G)[\s\S]*?alt="([^"]+)"(?=[\s\S]*?footer)
reading04Name standingPPO
reading04RegOpt g
reading04Regex (?:1. Playoff-Runde|(?!\A)\G)[\s\S]*?<h3>(.*)<\/h3>(?=[\s\S]*?footer)
reading05Name nameVF
reading05RegOpt g
reading05Regex (?:alt="Viertelfinale"|(?!\A)\G)[\s\S]*?alt="([^"]+)"(?=[\s\S]*?1. Playoff-Runde)
reading06Name standingVF
reading06RegOpt g
reading06Regex (?:Viertelfinale|(?!\A)\G)[\s\S]*?<h3>(.*)<\/h3>(?=[\s\S]*?1. Playoff-Runde)
reading07Name nameHF
reading07RegOpt g
reading07Regex (?:Halbfinale|(?!\A)\G)[\s\S]*?alt="([^"]+)"(?=[\s\S]*?Viertelfinale)
reading08Name standingHF
reading08RegOpt g
reading08Regex (?:Halbfinale|(?!\A)\G)[\s\S]*?<h3>(.*)<\/h3>(?=[\s\S]*?Viertelfinale)
reading09Name nameF
reading09RegOpt g
reading09Regex (?:Finale|(?!\A)\G)[\s\S]*?alt="([^"]+)"(?=[\s\S]*?Halbfinale)
reading10Name standingF
reading10RegOpt g
reading10Regex (?:Finale|(?!\A)\G)[\s\S]*?<h3>(.*)<\/h3>(?=[\s\S]*?Halbfinale)
room Information->Sport
stateFormat name-1
timeout 30
userReadings winnerPPO-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingPPO-1","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 2 && $val2 < 2); return ($val1 > $val2) ? "1" : "2"; }, winnerPPO-2 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingPPO-2","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 2 && $val2 < 2); return ($val1 > $val2) ? "1" : "2"; }, winnerVF-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-1","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 4 && $val2 < 4); return ($val1 > $val2) ? "1" : "2"; }, winnerVF-2 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-2","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 4 && $val2 < 4); return ($val1 > $val2) ? "1" : "2"; }, winnerVF-3 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-3","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 4 && $val2 < 4); return ($val1 > $val2) ? "1" : "2"; }, winnerVF-4 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-4","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 4 && $val2 < 4); return ($val1 > $val2) ? "1" : "2"; }, winnerHF-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingHF-1","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 4 && $val2 < 4); return ($val1 > $val2) ? "1" : "2"; }, winnerHF-2 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingHF-2","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 4 && $val2 < 4); return ($val1 > $val2) ? "1" : "2"; }, winnerF-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingF-1","0:0")); return "0" if ($val1 == $val2); return "0" if ($val1 < 4 && $val2 < 4); return ($val1 > $val2) ? "1" : "2"; }, seriesPPO-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingPPO-1","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; }, seriesPPO-2 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingPPO-2","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; }, seriesVF-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-1","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; }, seriesVF-2 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-2","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; }, seriesVF-3 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-3","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; }, seriesVF-4 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingVF-4","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; }, seriesHF-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingHF-1","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; }, seriesHF-2 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingHF-2","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; }, seriesF-1 { my ($val1, $val2) = split(":", ReadingsVal($name,"standingF-1","0:0")); return "0" if ($val1 == $val2); return ($val1 > $val2) ? "1" : "2"; },
userattr .*
verbose 3aiConProfile=common,pv,bev,hp,[active],...
) verfügbar.