zeile 15 in der rule mal ändern, das löst den ersten fehler aus ...Ringing muss in anführungszeichen ..... (fboxCallState.state == "RINGING") {.....
dann nochmal auslösen und das [definition='1','0']log[/definition] hier posten.
aus Group ueberall_Alarm mach mal Group:String ueberall_Alarm in deinen items
Beiträge von horschte
-
-
Ich habe 2 Fehler:
ohne deine items und rules machst du es mir schwer zu helfen. einen fehler habe ich schon gesehen.
also poste dein zeug bitte erst mal -
dann finde ich das für dich. item anlegen (channel anpassen)
CodeString Alexa_Buero_Alarm "Alexa Büro Alarm" {channel="amazonechocontrol:echo:account1:echo5:playAlarmSound"}
das sind die strings, die du diesem item oder zu einer gruppe, in der diese items drin sind senden kannst
Code
Alles anzeigenECHO:system_alerts_alarming_03 ECHO:system_alerts_soothing_01 ECHO:system_alerts_soothing_05 ECHO:system_alerts_atonal_02 ECHO:system_alerts_atonal_03 ECHO:system_alerts_melodic_01 ECHO:system_alerts_melodic_02 ECHO:system_alerts_melodic_03 ECHO:system_alerts_melodic_05 ECHO:system_alerts_melodic_06 ECHO:system_alerts_melodic_07 ECHO:system_alerts_musical_02 ECHO:system_alerts_repetitive_01 ECHO:system_alerts_repetitive_04 ECHO:system_alerts_rhythmic_02
http://192.168.2.X:8080/basicui/CMD?Alexa_Buero_Alarm=ECHO:system_alerts_alarming_03 im browser nutzen um schneller deinen favoriten rauszufinden (openhab ip und itemnamen natürlich anpassen)btw...vlt ersetzt du in der großen rule announce durch tts. das dingdong am anfang bei announce brauchst du ja nicht mehr wenn du alarm zusätzlich hast.
-
Was passiert wenn eine nicht eingespeicherte Nummer anruft? Wird dann nur die Nummer angesagt?
keine ahnung, kann das nicht reproduzieren ohne festnetz. lösche doch einfach deine nummer in der fritzbox und rufe dein festnetz an. im [definition='1','0']log[/definition] wirst du ja sehen was angezeigt wird. du hast dafür ja bereits eine loganzeige definiert.
logInfo("Anruf", "Anrufer Name: " + caller_name + " Anrufer Nummer: " + caller_number)Wie kann man die Ansage der Alexa so aufbohren, dass sie das Klingeln ersetzt? Also ein wiederkehrender Alarm so lange das Telefon klingelt.
ahh ich habe es weiter oben gefunden.
.................
genau, so könntest du es umsetzen.
Wäre ja auch nicht schlecht wenn dann nach dem Eingehender Anruf von.... die Alexa klingelt?
das echo binding hat nen alarm channel. den kannst du dafür nutzen: playAlarmSound. da kannst du diverse klingeltöne auswählen. den klingelton sendest du einfach an eine gruppe deiner alexas, die du dir aus diesen items erstellst in deiner Item fboxCallState changed to RINGING rule am anfang mit. die ansage des namens sollte dann am besten mit etwas verzögerung kommen. sonst hört sich das bestimmt komisch an.
Wie kann man die Ansage der Alexa so aufbohren, dass sie das Klingeln ersetzt? Also ein wiederkehrender Alarm so lange das Telefon klingelt.
genau, das ist mit while umsetzbar. 2000ms ist natürlich ein wenig knapp bemessen
hier mal ein beispiel mit alarmsound (die items und eine gruppe daraus musst du dir selbst mit dem echo binding erstellen)
Code
Alles anzeigenrule "Eingehender Anruf" when Item fboxCallState changed to RINGING then var tr064Actions = getActions("tr064","tr064:fritzbox:1234abc") var String caller_number = (fboxIncomingCall.state as StringListType).getValue(1) var String caller_name = tr064Actions.phonebookLookup(caller_number) logInfo("Anruf", "Anrufer Name: " + caller_name + " Anrufer Nummer: " + caller_number) var String msg = "Eingehender Anruf von: "+ caller_name var String msg2 = caller_name val String currentTime = String::format( "%1$tH:%1$tM", new java.util.Date ) val verpassteanrufe = fboxMissedCalls.state as Number Alexa_Alarmgruppe.sendCommand("ECHO:system_alerts_atonal_02") createTimer(now.plusSeconds(3), [| while (fboxCallState.state == RINGING) { Echo_Living_Room_Announcement.sendCommand(msg) Echo_Kitchen_Announcement.sendCommand(msg) Thread::sleep(4000) } ]) createTimer(now.plusSeconds(30), [| val verpassteanrufeneu = fboxMissedCalls.state as Number if(verpassteanrufe != verpassteanrufeneu){ Nummernspeicher.postUpdate(Nummernspeicher.state + currentTime + " Uhr " + msg2 + ", ") } ]) end
- zeile 13 wird ein alarmsound zu deiner später selbst erstellten alarmgruppe gesendet...es gibt mehrere alarme zur auswahl, siehst du im openhab webif
- zeile 14-20 wird ein verzögerungstimer gesetzt, damit anruferansage und klingelkton nicht gleichzeitig starten
- zeile 15-18 erfolgt die anruferansage in einer schleife mit je 4 sekunden pause. somit sollte zwischen den ansagen auch nochmal der klingelton hörbar seinum den alarm zu beenden brauchst du dann eine ganz einfache rule, in der du zu deiner erstellten gruppe einen leeren string sendest.
Coderule "telefon alarm beenden" when Item fboxCallState changed from RINGING to IDLE then Alexa_Alarmgruppe.sendCommand("") end
aber achtung....du solltest vorher prüfen ob und wann das item fboxCallState seinen status zu idle ändert. bei den o.g. rules bin ich davon ausgegangen, dass sich der status zu idle auch sofort nach annehmen eines anrufes ändert. ggf muss das angepasst werden. dafür musst du aber erstmal bei einem anruf rangehen und dieses item beobachten. -
Ich schaue morgen mal. Gehirn ist schon im shutdown Vorgang
-
hier mal ein erweitertes beispiel (inkl anrufzeit + filter für nicht angenommene anrufe + korrekte formatierung der anruferlisten) mit deiner oben genannten rule "Eingehender Anruf".
wenn du die mittlerweile anderweitig bearbeitet hast ist das natürlich hinfällig.Code
Alles anzeigenrule "Eingehender Anruf" when Item fboxCallState changed to RINGING then var tr064Actions = getActions("tr064","tr064:fritzbox:1234abc") var String caller_number = (fboxIncomingCall.state as StringListType).getValue(1) var String caller_name = tr064Actions.phonebookLookup(caller_number) logInfo("Anruf", "Anrufer Name: " + caller_name + " Anrufer Nummer: " + caller_number) var String msg = "Eingehender Anruf von: "+ caller_name var String msg2 = caller_name val String currentTime = String::format( "%1$tH:%1$tM", new java.util.Date ) val verpassteanrufe = fboxMissedCalls.state as Number Echo_Living_Room_Announcement.sendCommand(msg) Echo_Kitchen_Announcement.sendCommand(msg) createTimer(now.plusSeconds(30), [| val verpassteanrufeneu = fboxMissedCalls.state as Number if(verpassteanrufe != verpassteanrufeneu){ Nummernspeicher.postUpdate(Nummernspeicher.state + currentTime + " Uhr " + msg2 + ", ") } ]) end
- in zeile 11 wird die aktuelle uhrzeit ermittelt und formatiert
- in zeile 12 werden die zum zeitpunkt des klingelns verpassten anrufe ermittelt
- in zeile 15-20 wird ein timer erstellt um zu ermitteln, ob sich nach 30sek die anzahl der verpassten anrufe geändert hat
- in zeile 16 wird ein aktualisierter wert der verpassten anrufe erstellt
. in zeile 17 wird der beim start der rule erstellte wert der verpassten anrufe mit dem wert nach 30sek verglichen (wenn ungleich dann zeile 18)
- in zeile 18 wird bei ungleichheit der beiden werte (verpasste anrufe) uhrzeit, der anrufername und ein abschließendes komma ins item geschriebendie o.g. rule zur ansage der verpassten anrufe erweiterst du dann ggf noch um die liste nach abfrage zu löschen (zeile 9)
Code
Alles anzeigenrule "alexa verpasste anrufe" when Item Anrufer_Abfrage received command then val anruferliste = Nummernspeicher.state.toString switch receivedCommand { case receivedCommand == "Anrufe": { Echo_Kitchen_Announcement.sendCommand(anruferliste) Nummernspeicher.postUpdate("") } } end
da ich kein festnetz mehr habe um alles gegenzuprüfen, können sich natürlich fehler einschleichen -
Es hängt zwar noch die "NULL" im Nummernspeicher.state, aber das wird ja gelöscht.
genau. die null wird entfernt, sobald die liste manuell oder per cron gelöscht wird.
when Item Echo_Kitchen_LastVoiceCommand changed to "hat jemand angerufen?"
das wird so nicht funktionieren, da alexa versuchen wird deine eigentliche frage proaktiv zu beantworten. du kannst entweder eine alexa routine anlegen oder mittels openhab ein item als trigger welches ModeController nutzt....bsp
CodeString Anrufer_Abfrage "Verpasste" {alexa="ModeController.mode" [supportedModes= "Anrufe = Anrufe,Nachrichten = Nachrichten" ]}
nach dem anlegen des items noch zu alexa sagen "alexa, finde meine geräte"....wenn sie damit fertig ist, sag zu ihr "Alexa, verpasste Anrufe". es sollte eine antwort "ok" kommen.
den text des items kannst du natürlich ändern. vorne in die anführungszeichen kommt der begriff, der alexa sagt worum es geht (in meinem beispiel "Verpasste"), hinten kommen die möglichen optionen.
den status des items kannst du dann in einer rule verarbeiten....bspw:Code
Alles anzeigenrule "alexa verpasste anrufe" when Item Anrufer_Abfrage received command then val anruferliste = Nummernspeicher.state.toString switch receivedCommand { case receivedCommand == "Anrufe": { Echo_Kitchen_Announcement.sendCommand(anruferliste) } } end
die rule kannst du dann ggf natürlich noch mit einem weiteren case ergänzen. wie im oben im item bereits als beispiel hinterlegt, die anzahl der nachrichten auf dem anrufbeantworter.
-
ich habe bereits im hinterkopf, dass natürlich später nicht jeder anrufername gespeichert werden soll, speziell wenn man rangegangen ist.
das könnte per rule und timer erledigt werden:
- am anfang der rule wert anlegen und missed calls abfragen -> timer- > missed calls nochmals abfragen und anzahl vergleichen
- wenn abfrage 2 != abfrage 1 -> anrufername speichernaber mach erstmal den anderen kram.
-
versuche das mal wie ich oben erklärt habe durchzuführen.
- digibit und tvh soweit laufen lassen das live tv funktioniert
- tv wiedergabe stoppen
- digibit ausschalten
- warten bis in tvh die tuner verschwinden
- tvh neustarten
- digibit neustarten und 1-2 min warten bis die tuner in tvh wieder auftauchen
- live tv starten -
du müsstest alle anrufe in nem string item speichern wenn du die später abrufen willst. der string muss dann bspw per cron 0 uhr gelöscht werden.
brainstorm:
da du sicher namen und keine numern haben möchtest, würde sich die rule zum umwandeln der nummern in namen anbieten. die müsste dann ergänzt werden.
als erstes brauchst du natürlich das string item zum speichern
String Nummernspeicher "[%s]"
dann müsstest du in der o.g. rule ergänzen...bspw so:Code
Alles anzeigenrule "Eingehender Anruf" when Item fboxCallState changed to RINGING then var tr064Actions = getActions("tr064","tr064:fritzbox:1234abc") var String caller_number = (fboxIncomingCall.state as StringListType).getValue(1) var String caller_name = tr064Actions.phonebookLookup(caller_number) logInfo("Anruf", "Anrufer Name: " + caller_name + " Anrufer Nummer: " + caller_number) var String msg = "Eingehender Anruf von: "+ caller_name var String msg2 = caller_name Echo_Living_Room_Announcement.sendCommand(msg) Echo_Kitchen_Announcement.sendCommand(msg) Nummernspeicher.postUpdate(Nummernspeicher.state + msg2) end
- in zeile 8 wird ein neuer wert definiert, nur der anrufername ohne deinen text bei msg
- in zeile 11 aktualisierst du das item mit dem aktuellen status + dem neuen anrufernamen (da muss später natürlich noch formatiert werden, kommasetzung etc)
dann wie gesagt per cron die liste täglich leeren...bspwCoderule "anrufspeicher leeren" when Time cron "0 0 0 * * ?" then Nummernspeicher.postUpdate("") end
optional kann/sollte der speicher natürlich auch nach dem manuellen abfragen geleert werden. dafür einfach nen leeren wert an das item Nummernspeicher senden, genau wie bei der cron rule.
als letztes brauchst du natürlich irgendeinen trigger um die anruferliste abzufragen. mit dem sendest du dann bspw per alexa announce den status des Nummernspeicher items. bspw:
-
Kanu-Tour, Ehering verloren, nicht bezifferbar.
mit frau dran?
-
Dann ist die ganze Logik innerhalb fhem,dass ist dann in Zukunft auch nachvollziehbarer
finde ich persönlich auch immer besser wenn das smarthome system diesen krempel erledigt. das sollte nicht die aufgabe von kodi oder etwas anderem sein. erspart auch beim neu einrichten von kodi clienten ne menge arbeit und verwirrung.
-
ich bzw mein openhab system macht den tvh neustart einfach automatisch nachdem der digibit ausgeschaltet wurde.
damit sind aufnahmen und tv abgedeckt.
das pre command aktiviert bei mir im openhab system einen dummy switch, das post command deaktiviert den switch.
openhab schaltet bei mir dann per rule bei änderung des dummys den digibit ein/aus und macht den tvh neustart....eigentlich ein recht simpler vorgang.wichtig ist nur, dass du in tvh "Extra warming up time (seconds)" definierst. bei mir 120s um zu warten, dass der digibit für die aufnahme bereit ist bzw das die tuner in tvh wieder erkannt worden sind.
-
hier ist die api von tvh recht ausführlich dokumentiert.
https://github.com/dave-p/TVH-API-docs/wikiwichtig ist bei nem zusammenspiel mit digibit, dass tvh (wenn es immer an bleibt) einen neu eingeschalteten digibit o.ä. bzw die tuner wenn sie vorher mal online waren nicht mehr erkennt.
szenario:
digibit und tvh sind an -> digibit wird ausgeschaltet -> tuner in tvh verschwindet -> digibit wird eingeschaltet -> tuner tauchen NICHT mehr in tvh auf
das ganze lässt sich einfach umgehen, in dem tvh, nachdem der digibit ausgeschaltet wurde neu gestartet wird.
tvh startet also ohne das tuner online sind. wenn dann der digibit wieder eingeschaltet wird, erkennt tvh diesen bzw die tuner auch. -
halbwegs aktuell für sat. ich würde das bei bedarf in den ersten post reineditieren. so funktioniert zumindest der download.
edit: erledigt
-
hab einen soundcore motion boom + für 143€ bestellt. fand ich recht passabel den preis.
bin mit soundcore recht zufrieden, inears und overears hab ich schon von denen. -
Hab ne SUB und bin rundum zufrieden. Die Menge reicht mir auch, ich saufe nicht soviel wie ihr .
Die Fässer werden komplett leer, da ist kein Tropfen mehr drin. Nachfüllen ist auch total einfach und geht blitzschnell.
Aus den o.g. Gründen und dem echt guten Craft Angebot bei Beerwulf ist das die ideale Anlage für mich. -
bitte die dazugehörige tasmota logmeldung mal posten.
253 scheint mir ein helligkeitswert zu sein. -
jup
kommentiere mal alles was du da zu dem teil angelegt hast komplett aus (things, items, sitemap). dann folgendes als thing anlegen:CodeThing topic remote1 "Fernbedienung LIDL" @ "ZigBee Test" { Type switch : remote1_OFF "Fernbedienung AUS" [ stateTopic = "tele/bridge/remote1/SENSOR" , transformationPattern="JSONPATH:$.ZbReceived.remote1.Power", commandTopic="cmnd/bridge/ZbSend", formatBeforePublish="{\"device\":\"remote1\",\"send\":{\"Power\":\"%s\"}}", on = "1", off = "0"] }
dazu ein passendes item und einen sitemap eintrag anlegen. dann neustart und schauen ob power off in openhab bei druck auf der fernbedienung registriert wird.
hat die fernbedienung gesonderte ON/OFF taster oder warum heisst einer aus und einer ein? falls ja muss nochwas angepasst werden -
filtern geht m.e. nicht. nur loglevel, was aber nicht das ist was du brauchst.