
sub BOSEST_speak($$$$$) {
my ($hash, $text, $volume, $lang, $stopAfterSpeak) = @_;
$lang = AttrVal($hash->{NAME}, "ttsLanguage", "en") if($lang eq "");
$volume = AttrVal($hash->{NAME}, "ttsVolume", ReadingsVal($hash->{NAME}, "volume", 20)) if($volume eq "");
if(length($text) < 100) {
my $uri_text = uri_escape($text);
my $translateUrl = "http://translate.google.com/translate_tts?ie=UTF-8&tl=$lang&client=tw-ob&q=$uri_text";
$translateUrl =~ s/\&/\&\;/g;
if(substr($volume, 0, 1) eq "+" or
substr($volume, 0, 1) eq "-") {
$volume = ReadingsVal($hash->{NAME}, "volume", 0) + $volume;
}
my $postXml = '<play_info><app_key>Ml7YGAI9JWjFhU7D348e86JPXtisddBa</app_key><url>'.$translateUrl.'</url><service>'.$text.'</service><volume>'.$volume.'</volume></play_info>';
if(BOSEST_HTTPPOST($hash, '/speaker', $postXml)) {
}
if(defined($stopAfterSpeak) && $stopAfterSpeak eq "1") {
$hash->{helper}{stateCheck}{enabled} = 1;
#after play the speaker changes contentItemItemName
$hash->{helper}{stateCheck}{actionContentItemItemName} = "";
$hash->{helper}{stateCheck}{function} = \&BOSEST_off;
}
return undef;
}
my $ttsDir = AttrVal($hash->{NAME}, "ttsDirectory", "");
my $sox = qx(which sox);
chomp $sox;
if(!-x $sox) {
BOSEST_playGoogleTTS($hash, $ttsDir, $BOSEST_READ_CMDREF_TEXT, $volume, $BOSEST_READ_CMDREF_LANG, $stopAfterSpeak);
return undef;
}
#download file and play
BOSEST_playGoogleTTS($hash, $ttsDir, $text, $volume, $lang, $stopAfterSpeak);
return undef;
}Zitat von: betateilchen am 29 Mai 2026, 21:07:44
- Die nicht funktionierende Instanz hat das globale Attribut useInet6 gesetzt, die andere Instanz nicht.
2026.05.29 21:09:31 4: fheminfo send (nonblocking): {...}
2026.05.29 21:09:31 4: IP: fhem.de -> 188.40.131.57
2026.05.29 21:09:32 4: https://fhem.de/stats/statistics2.cgi: HTTP response code 200
2026.05.29 21:09:32 4: fheminfo send: Server RESPONSE: ==> ok
udo@fhem-sip:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eth0@if17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether bc:24:11:ba:0b:06 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 192.168.123.219/24 brd 192.168.123.255 scope global dynamic eth0
valid_lft 79650sec preferred_lft 79650sec
inet6 fddc:7b04:1a06:0:be24:11ff:feba:b06/64 scope global dynamic mngtmpaddr proto kernel_ra
valid_lft 7200sec preferred_lft 3600sec
inet6 2002:5510:9940:0:be24:11ff:feba:b06/64 scope global dynamic mngtmpaddr proto kernel_ra
valid_lft 7199sec preferred_lft 3599sec
inet6 fe80::be24:11ff:feba:b06/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
udo@fhem:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: eth0@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether bc:24:11:46:b6:a4 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 192.168.123.111/24 brd 192.168.123.255 scope global dynamic eth0
valid_lft 75883sec preferred_lft 75883sec
inet6 fddc:7b04:1a06:0:be24:11ff:fe46:b6a4/64 scope global dynamic mngtmpaddr proto kernel_ra
valid_lft 6643sec preferred_lft 3043sec
inet6 2002:5510:9940:0:be24:11ff:fe46:b6a4/64 scope global dynamic mngtmpaddr proto kernel_ra
valid_lft 6642sec preferred_lft 3042sec
inet6 fe80::be24:11ff:fe46:b6a4/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
2026.05.29 20:39:17 4: fheminfo send (nonblocking): {...}
2026.05.29 20:39:17 4: IP: fhem.de -> [2a01:4f8:221:1b5a::b2]
2026.05.29 20:39:21 1: fheminfo send: Server ERROR: connect to https://fhem.de:443 timed out
2026.05.29 16:18:30.998 4: fheminfo send (nonblocking): {...}
2026.05.29 16:18:30.999 4: IP: fhem.de -> 188.40.131.57
2026.05.29 16:18:31.510 4: https://fhem.de/stats/statistics2.cgi: HTTP response code 200
2026.05.29 16:18:31.510 4: fheminfo send: Server RESPONSE: ==> ok
Zitat von: betateilchen am 27 Mai 2026, 21:07:49Primäre Aufgabenstellung:
my $body = <<"BODY";
k=$key
a=message
c=$command
o=$color
l=$label
n=**55
BODY
snomled snom 48 on orange Button 48