Lautstärke während einer Sprachausgabe

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Snatsch
Beiträge: 343
Registriert: 9. Jan 2021 22:55

Lautstärke während einer Sprachausgabe

Beitrag von Snatsch »

Hallo,
könnte mal wieder etwas Hilfe gebrauchen :)
Ich habe folgende Rule mit eurer Hilfe am laufen.

Code: Alles auswählen

rule "send Message"
when
    Item Meldung received update
then
    GoogleHomeMinni_Lautstarke.sendCommand(100)
    if(Meldung.state == NULL || Meldung.state.toString == "") {
        logWarn("message","Item Meldung erhielt Update auf {}, keine Ausgabe möglich!",Meldung.state)
        return;
    }
    val String strMessage = Meldung.state.toString
    val urlmessage = java.net.URLEncoder::encode(strMessage, 'UTF-8')
    val telegramAction = getActions("telegram","telegram:telegramBot:XXXXXXX")
    telegramAction.sendTelegram(strMessage)
    say(strMessage,null)
    sendHttpGetRequest("https://api.callmebot.com/whatsapp.php?source=openHAB&phone=+XXXXXX&apikey=XXXXXX&text=" + urlmessage)
    GoogleHomeMinni_Lautstarke.sendCommand(50)
end
jetzt ist es so das die Lautstärke zwar vor der Sprachausgabe hoch geht aber während der Ausgabe wieder runter :(
könnte man da mit einem Timmer arbeiten ? Also das die Lautstärke nach 30 Sekunden oder so wieder runter geht

MfG Snatsch
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Lautstärke während einer Sprachausgabe

Beitrag von udo1toni »

Vor allem setzt Du die Lautstärke schon hoch, bevor Du weißt, ob Du überhaupt einen Ton ausgeben kannst ;) wenn also die Warnmeldung ausgegeben wird, bleibt die Lautstärke auf 100 %.
Leider gibt es keine Rückmeldung von der say() Action für das Ende der Ausgabe, weshalb tatsächlich ein Timer das Mittel der Wahl sein dürfte.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Snatsch
Beiträge: 343
Registriert: 9. Jan 2021 22:55

Re: Lautstärke während einer Sprachausgabe

Beitrag von Snatsch »

ich habe es jetzt so gemacht und es scheint auch zu funktionieren

Code: Alles auswählen

var Timer mVolume = null
rule "send Message"
when
    Item Meldung received update
then
    GoogleHomeMinni_Lautstarke.sendCommand(80)
    if(Meldung.state == NULL || Meldung.state.toString == "") {
        logWarn("message","Item Meldung erhielt Update auf {}, keine Ausgabe möglich!",Meldung.state)
        return;
    }
    val String strMessage = Meldung.state.toString
    val urlmessage = java.net.URLEncoder::encode(strMessage, 'UTF-8')
    val telegramAction = getActions("telegram","telegram:telegramBot:xxxxxxx")
    telegramAction.sendTelegram(strMessage)
    say(strMessage,null)
    sendHttpGetRequest("https://api.callmebot.com/whatsapp.php?source=openHAB&phone=xxxxxxxxx&apikey=xxxxxxx&text=" + urlmessage)
    
    mVolume = createTimer(now.plusSeconds(10), [|
    GoogleHomeMinni_Lautstarke.sendCommand(50)
    ])
    
end
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Lautstärke während einer Sprachausgabe

Beitrag von udo1toni »

Ja, aber wie erwähnt... oder vielleicht etwas anders formuliert: Du solltest die Lautstärke erst nach der Prüfung auf eine gültige Meldung auf 80 setzen, also die Zeile

Code: Alles auswählen

GoogleHomeMinni_Lautstarke.sendCommand(80)
hinter den if-Block verschieben.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Snatsch
Beiträge: 343
Registriert: 9. Jan 2021 22:55

Re: Lautstärke während einer Sprachausgabe

Beitrag von Snatsch »

Also so hier ?

Code: Alles auswählen

var Timer mVolume = null
rule "send Message"
when
    Item Meldung received update
then
    
    if(Meldung.state == NULL || Meldung.state.toString == "") {
        logWarn("message","Item Meldung erhielt Update auf {}, keine Ausgabe möglich!",Meldung.state)
        return;
    }
    GoogleHomeMinni_Lautstarke.sendCommand(80)
    val String strMessage = Meldung.state.toString
    val urlmessage = java.net.URLEncoder::encode(strMessage, 'UTF-8')
    val telegramAction = getActions("telegram","telegram:telegramBot:xxxxxxx")
    telegramAction.sendTelegram(strMessage)
    say(strMessage,null)
    sendHttpGetRequest("https://api.callmebot.com/whatsapp.php?source=openHAB&phone=+xxxxxxxx&apikey=xxxxxxx&text=" + urlmessage)
    
    mVolume = createTimer(now.plusSeconds(10), [|
    GoogleHomeMinni_Lautstarke.sendCommand(50)
    ])
    
end
openhab4.1.1 auf Pi 4 im Docker Portainer /Grafana&InfluxDB auf Pi 3 in Docker Portainer

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Lautstärke während einer Sprachausgabe

Beitrag von udo1toni »

Genau :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten