NEWS
Blockly Script FritzBox Anrufe bei Abwesenheit
-
Hallo zusammen,
ich fange gerade an, mich in Blockly einzuarbeiten. Ich habe eine Frage an euch: Ich möchte ein Skript erstellen, welches mir bei Abwesenheit verpasste Anrufe per Telegram zuschickt. Den FritzBoxAdapter habe ich bereits installiert, An- und Abwesenheit werden per PMDetect auf der Homematic in die entsprechenden Variablen geschrieben, somit komme ich auch an diese Werte.
Ich bin im Moment ein bisschen am testen, weiß jedoch bei dieser einfachen Sache irgendwie nicht weiter.
Das Skript soll ausgeführt werden, wenn niemand zu Hause ist und das Telefon geklingelt hat. Wie verknüpfe ich diese beiden Bedingungen im Blockly?
Ich habe euch meinen aktuellen Test mal einmal mit angehangen - aktuell wird hier ja nur die Meldung ausgegeben, dass das Telefon klingelt allerdings egal ob jemand zu Hause ist oder nicht. Somit scheint das Ganze noch nicht richtig verknüpft zu sein.
Hier soll dann die Nummer geschickt werden, die angerufen hat.
Danke euch!
Gruß surfer
4867_programm.jpg -
Also ehrlich gesagt, mir war es immer egal ob ich nun zuhause bin oder nicht ob ich diese Meldung bekomme..
So mache ich es bei mir:
Sieht dann auf meinem Handy, ich benutze Pushover, so aus:
Du kannst ja jetzt noch mit dem TR64 Adapter einstellen welche Geräte als True oder False angezeigt werden wenn sie nicht im WLAN sind
das müsstest du dann in dem Adapter eben noch einstellen. Der Punkt Fehlt nämlich noch in deinem Script…
-
Ah okay. Wenn ich dein Skript jetzt richtig interpretiere, bekommst du bei jedem Anruf eine Nachricht auf´s Handy, sobald das Telefon klingelt?! Oder gilt das wirklich nur für verpasste Anrufe?
Vielleicht kann sich noch jemand zu der Frage äußern, wie man die Bedingungen im Blockly mit UND verknüpft. Das ist mir noch nicht so ganz klar.
Danke!
-
Ah okay. Wenn ich dein Skript jetzt richtig interpretiere, bekommst du bei jedem Anruf eine Nachricht auf´s Handy, sobald das Telefon klingelt?! Oder gilt das wirklich nur für verpasste Anrufe?
Vielleicht kann sich noch jemand zu der Frage äußern, wie man die Bedingungen im Blockly mit UND verknüpft. Das ist mir noch nicht so ganz klar.
Danke! `
Es gilt für "jeden" Anruf, der auch in meinem FritzBox Telefonbuch vorhanden ist, sobald ein Eintrag nicht vorhanden ist, also eine Nummer anruft die nicht im Telefonbuch vorhanden ist, bekomme ich keine Meldung. Das will ich Eventuell noch ändern, denn so bekomme ich eben nicht mit ob eine Nummer angerufen hat die ich vielleicht kenne, aber nicht in meinem Telefonbuch vorhanden ist.Das ist aber reine Einstellungssache.
Wie verwaltest du denn deine Abwesenheit und deinen Anruf? Mit dem TR 64 Adapter?
Irgendwie triggerst du auch sehr umständlich.
du Brauchst ja erstmal nur den Trigger: "ring activ?" In welchen Adapter ist der Datenpunkt "ring activ?" überhaupt?
Probiere es mal so:
Im Trigger, packst du den Datenpunkt "ring activ?" rein und stellst Ihn auf "ist wahr".
Bei der zweiten Object ID packst du den Datenpunkt "Anwesenheit" rein und stellst ihn auf "unwahr".
bei mache packst du nun noch den telegram Sendto rein und dann sollte es eigentlich gehen.
Trotzdem möchte ich noch wissen: Mit welchen Adapter prüfst du deine Anwesenheit / Abwesenheit?
Edit: Oh, sehe gerade du prüfst deine Abwesenheit mit der CCU? ich würde lieber auf den TR64 Adapter setzen, dort fügst du einfach in dem Adapter dein Gerät hinzu und wenn dein Handy nicht mehr im WLAN ist, wird der Status desen Gerätes auf false gesetzt und wäre somit nicht mehr "Anwesend".
5553_unbenannt.jpg -
Ja genau, meine Anwesenheitsprüfung läuft aktuell noch über die CCU (PMDetect). Das werde ich bei Gelegenheit aber auch noch rüberholen auf den IOBroker. Deine Idee mit der Abwesenheitsprüfung sieht gar nicht so schlecht aus. Das werde ich auf jeden Fall noch probieren! Denn eigentlich würde ich gerne nur Nachrichten bekommen, wenn ich nicht zu Hause bin.
Sag mir bitte mal einmal wo du die Anrufernamen herbekommst. Ich kann bei mir das Objekt "callerName" so wie du es in deinem ersten Skript stehen hast, nicht finden. Ich würde gerne meine Ausgabe noch etwas optimieren, wenn vorhanden soll der Anrufername mit ausgegeben werden. Ansonsten gefällt mir das Ganze schon sehr gut.
Gruß surfer
4867_anrufe.jpg
4867_skript_anrufe.jpg -
Da ich meine Abwesenheit ja nur über den TR64 Adapter prüfe und meine sämtlichen Anrufe ebenfalls habe ich gerade eben auf der Schnelle mein Script überarbeitet.
Sieht nun so aus und ich bekomme auch nur die Meldung wenn meine Handy nicht mehr im WLAN also ich sozusagen nicht Anwesend bin.
"CallerName" ist auch von dem TR64 Adapter:
Ist Unter Inbound, dort wo jetzt Florian Handy steht, das ist der Datenpunkt.
-
Ahh super. Dann muss ich den TR64 Adapter noch installieren. Ich werde das morgen mal entsprechend anpassen.
Danke dir erstmal!
-
Würde ich dir wärmstens empfehlen! Hammer geiles dingen und so viele Möglichkeiten.
Will das nicht mehr missen
-
Du hast mich echt neugierig gemacht aber irgendwie sehen die Objekte anders aus als bei dir… ich finde zum Beispiel den CallerName nicht bei mir.
4867_508e4685-97cd-4389-ab2f-c921be269b6d.jpeg -
Was sagt denn der Log?! Du musst ja einen Benutzernamen und Passwort im Adapter eingeben.
Bei mir hat es bei der ersten Installation auch Probleme gegeben und musste einmal die FritzBox neu starten. Ist das Protokoll auch in der Fritzbox aktiviert?
-
Habe die FB gerade mal neu gestartet und auch den Adapter. Leider ohne Erfolg. Die Einstellungen sind so gesetzt wie auf deinem Screenshot. Er kann auch Daten abrufen, aber die Objektstruktur sieht anders aus als bei dir. Kann es sein, das die 7590 diese Datenpunkte so nicht liefert? Ich weiß nicht, welches Modell du bei dir einsetzt?!
-
Also erstmal: ich habe mir Extra für den TR64 Adapter einen neuen Benutzernamen erstellt.
Ich habe die FritzBox 7490 also dein Vorgängermodell..Es könnte gut möglich sein das sie die Daten anders liefert bzw der Adapter vll noch nicht zu 100% mit der 7590 funktioniert.
Was sagt denn dein Log? Poste mal bitte deinen Log.
-
Der Adapter hat von mir auch einen eigenen Benutzer bekommen. Ich vermute einfach mal, das der Adapter noch nicht zu 100% kompatibel ist mit der 7590.
Log habe ich angehangen. Ich kann da so kein Problem sehen …
4867_19ba6b52-fb00-4118-95a3-388c0954781e.jpeg -
Dann gehe ich leider auch erst davon aus das es momentan noch ein paar Probleme mit der 7590 gibt und sie eventuell andere Datenpunkte erstellt.
Hast du mal aus Jux vll auch mal den Raspberry bzw IoBroker neu gestartet?
-
Das werde ich morgen nochmal versuchen. Ich werde berichten, ob das die Lösung war
-
probieren geht über studieren
Warte auf deinen Bericht
-
jawoll, das hat geholfen!
Jetzt sehen die Datenpunkte auch so aus, wie bei dir. Manchmal hilft ein Neustart
-
na siehste! Viel Spass nun damit!
-
Ein Fehler ist mir heute noch aufgefallen. Angenommen es kommt ein Anruf an, die Nummer steht mit im Telefonbuch auf der FB. Name und Telefonnummer werden im Telegram ausgegeben. 10 Minuten später klingelt erneut das Telefon, diese Nummer ist nicht im Telefonbuch der FB. Jetzt wird der Name des vorherigen Anrufers ausgegeben und die Nummer die gerade anruft. 8-)
An was muss man denn hier noch drehen, damit nicht bei jedem Anruf der falsche Name ausgegeben wird?
Mein aktuelles Skript habe ich nochmal mit angehangen…
4867_skript_anrufe.png -
Das Problem an der Sache ist ja, du triggerst "ring last missed number"
Das heisst du bekommst jedes mal eine Meldung sobald sich "ring last missed number" aktualisiert. Bedeutet also bei jedem neuen verpassten Anruf. Hingegen "callerName" wird durch den Fehlenden Eintrag im Telefonbuch nicht ersetzt bzw aktualisiert aber wird ja durch dein Script trotzdem "ausgegeben". Verstanden?
Mir würde jetzt nur einfallen das du zwei unabhängige Trigger erstellst:
1: In den ersten Trigger packst du beide Object ID's ein, also "ring last missed number" und "callerName".
2: In den zweiten Trigger packst du nur "ring last missed number" und änderst dann für den Trigger noch deine Telegramnachricht.
da musst du dann aber noch die Funktion mit einbringen, das "ring last missed number" nur pusht wenn es aktualisiert wurde aber callerName" nicht.
wo ist überhaupt der Datenpunkt "ring last missed number"?