NEWS
IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox
-
Vermutlich wird hier der Adapter nicht mehr weiterentwickelt ... Schade.
Habe leider seit längerem dieses Problem.Vielleicht hat ja einer noch ne Idee
asterisk.0 2022-03-16 21:23:49.937 error Error while dialing (1). Error: {"response":"Error","actionid":"b3ad18bd-394a-8c86-42b4-5f90be7e758b","message":"Originate failed"}, Result: {"parameter":{"callerid":"**622","telnr":"+4916099733398","text":"Ich bin ein Test","extension":"19900808","audiofile":"/tmp/audio_1647462066793","delete":"delete"},"options":{"action":"originate","channel":"SIP/19900808/4916099733398","context":"ael-ansage","exten":"4916099733398","priority":1,"timeout":60000,"variable":{"repeat":5,"file":"/tmp/audio_1647462066793","del":"delete"},"callerid":"**622"},"guid":"b3ad18bd-394a-8c86-42b4-5f90be7e758b","result":{"response":"Error","actionid":"b3ad18bd-394a-8c86-42b4-5f90be7e758b","message":"Originate failed"}}
-
@knallix sagte in IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox:
0
Geht mir genauso: Originate failed.
Hast Du es mittlerweile irgendwie hinbekommen? Ich musste iobroker nach einem SD-Kartenfehler neu installieren. Seitdem gehen weder die Benachrichtigung per Signal noch die Anrufe mit Asterisk.
Verbindung zum Manager steht, .gsm-Files werden erzeugt, alles eingerichtet gem. Anleitung, Rechte eingestellt, aber bei der Fritzbox scheint nichts anzukommen. Blöd. -
Meine TK Anlage kann nur einen Sip Proxa also muss ich en Port eingeben nach der IP
Geht das irgendwie auch ?
-
@stuebi
Hi, habe den Asterisk Adapter erfolgreich zum laufen gebracht. Ich kann vom ioBroker ein externes Telefon anrufen und ich kann auch den ioBroker anrufen.Mein eigentliches Ziel ist es nun, den Anruf auf Telegram weiter zu reichen. Also ein interner Anruf klingelt auf mehreren Telefonen (an der Fritzbox angeschlossen). Der Telegram Anruf wird also parallel zu den internen Telefonen klingeln. Wenn einer abnimmt, wird das interne Gespräch geführt und die anderen Telefone hören auf zu klingeln.
Hättest eine Idee wie das geht?
Natürlich geht die Frage auch an alle anderen Profis
Danke vorab -
@mika-0 Was hast du für ein System am laufen ? Hatte es mal am laufen und bekomme es leider nicht mehr hin -.-
Habe nochmal alles neu installiert :D. Jetzt läuft es erstmal wieder
-
Moin Moin
die Einträge hier sind ja schon ziemlich "alt"....
Wird das noch weiter verfolgt oder "geholfen"?
Ich will das soweit für eine Alarmmeldung nutzen. Ausgelöst wird das Ganze durch ein potentialfreies Relais an einem GPIO... funktioniert soweit auch super, jedoch kriege ich es nicht gepeilt, dass die ganze Mimik nur einmal anruft, da der Alarmkontakt längere Zeit geschlossen ist
Habe schon ein paar unterschiedliche Versuche gestartet, aber kriege den Knoten nicht aus dem Kopf. -
@ewc sagte in IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox:
Ich will das soweit für eine Alarmmeldung nutzen. Ausgelöst wird das Ganze durch ein potentialfreies Relais an einem GPIO... funktioniert soweit auch super, jedoch kriege ich es nicht gepeilt, dass die ganze Mimik nur einmal anruft, da der Alarmkontakt längere Zeit geschlossen ist
Jedem, der fragt, sollte geholfen werden ...
Allerdings muss für die Antwort noch etwas klar sein.
Wie sieht dien Script oder was du benutzt aus,Also Blocky oder Script kann auf Änderungen reagieren. Wenn du den Eingang immer auf ein hast, ruft er erst wieder an, wenn der zwischendurch einmal zurückschaltet. Man kann aber auch immer auf on reagieren (refresh), dann hängt es aber vom Adapter ab, ob er das Objekt zyklisch neu setzt ...
Poste mal, wie du es verbunden hast ...
Ertl hilft hier ein Timer. Benutzt die Blocky oder Script?Es sollte so einen ablauf haben:
- Ereignis On Change (True & False):
- lösche Intervall
- wenn auslösen (True):
- Erzeuge Intervall
- Bei Intervall anrufen - anrufen
- Erzeuge Intervall
- Ereignis On Change (True & False):
-
@plchome-0
Servus... vielen Dank für deinen Beitraglass mich vorne anfangen, da Du es mit mir mit einem DAU zu tun hast.
Von Scripten habe ich ungefähr so viel "Plan", wie von Raketentechnik!
Ich "versuche" mich ausschließlich in blocklyDer gedachte Ablauf ist/soll folgender sein:
GPIO x1 Eingang -closed- "Alarm scharf/unscharf
wenn -closed- "scharf" warte 5 Minuten
wenn "nach 5 Minuten" und GPIO x1 "closed"
und GPIO x2 Eingang closed (Alarmtrigger über NVR)
warte 3 Minuten
danach starte Anruf über Asterisk (und ggfls. noch einen Shelly) wenn GPIO x1 noch closedDanke vorab
-
@ewc
Hier folgend mal mein Blockly welches bis heute hervorragend funktioniert...... hab ich irgendwann mal wo gefunden und für mich angepasst......
Wenn ein Wert, zb Alarm auf True geht, dann führt er den Anruf über Asterisk durch, und sendet noch paar Bilder per Telegram.
Die Wartefunktion musst halt noch einbauen, sollte aber problemlos laufen.....<block xmlns="https://developers.google.com/blockly/xml" type="comment" id="Ut.{Z@QTB%(!/ykysQ=k" x="-1379.9985809326172" y="-2917"> <field name="COMMENT">The initialisation (or: input definition)</field> <next> <block type="variables_set" id="!!_]N!)5+R2ZsWOQ{|hm" disabled="true"> <field name="VAR" id=",R)~|vEe|Hk1^bExwyKm">text</field> <value name="VALUE"> <block type="text" id="EGujT.Wq67[ty-_j_w+#"> <field name="TEXT">Hello World. This is your programmers night ending waking call.</field> </block> </value> <next> <block type="variables_set" id="nhn^T8oU%$*5(W!n?_`z"> <field name="VAR" id=",R)~|vEe|Hk1^bExwyKm">text</field> <value name="VALUE"> <block type="text" id="gJXmjUnpYe3hKiH`c2%%"> <field name="TEXT">EINBRUCH </field> </block> </value> <next> <block type="variables_set" id="KkB5t9h=$B;|zW,Qz#Ta"> <field name="VAR" id="6]OTkZnB2nWeMqZ[:Bgt">number1</field> <value name="VALUE"> <block type="text" id="h|yX`%[FaPO#,y#;.%6a"> <field name="TEXT">0123456789</field> </block> </value> <next> <block type="variables_set" id="I%a6as[-[DywWeu.%*Zy"> <field name="VAR" id="RlYVjB#b`Cq%nNI$a%nh">callerid</field> <value name="VALUE"> <block type="text" id="ac?TQv@ROH2b;6$E%^bf"> <field name="TEXT">040-123456789</field> </block> </value> <next> <block type="variables_set" id=",mfupJ?X,=|L%4%?:Eo{"> <field name="VAR" id="Zneb2#O,oT6=1a1GO,S(">repeat</field> <value name="VALUE"> <block type="math_number" id="oq+XnD,B``zqO?l`M@V%"> <field name="NUM">5</field> </block> </value> <next> <block type="variables_set" id="])FZ.rNCAY1^tlv_f=*C"> <field name="VAR" id="h{aZlv.AZH(yGq#J%uJr">priority</field> <value name="VALUE"> <block type="math_number" id="?aafiD|=f*JyTDr.1vlP"> <field name="NUM">1</field> </block> </value> <next> <block type="variables_set" id="-@f5[3E-6PBhwch+=g@p"> <field name="VAR" id=";tv}Hj%EQ[8=cFac/:}f">timeout</field> <value name="VALUE"> <block type="math_number" id="-.=TYm)/P|UL*d[l3:Bt"> <field name="NUM">30000</field> </block> </value> <next> <block type="variables_set" id="xNBfE[or`]AY%sn^tz_)"> <field name="VAR" id="-aH},}FLLO(hwwOl0Y$T">language</field> <value name="VALUE"> <block type="text" id="eRUx,@uW0d}YNVXH!,Ov"> <field name="TEXT">de</field> </block> </value> <next> <block type="variables_set" id="rjWYJA?5VWlh6]#3L,Q}"> <field name="VAR" id="}uHNc}pP|cgYM`{o,w!2">async</field> <value name="VALUE"> <block type="logic_boolean" id="}^=!YrAycFCbv8NU`^AP"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="variables_set" id="|O*4Q$M5IiK9Q38`@b1;"> <field name="VAR" id="d.dOhyf%X]|(.dOO7x7q">audiofile</field> <value name="VALUE"> <block type="text" id="L*!WI@tG7D6eJQuyb7U9"> <field name="TEXT"></field> </block> </value> <next> <block type="comment" id="~U9DpylPw%E#E+fvtOq`"> <field name="COMMENT">...some code...</field> <next> <block type="comment" id="zoDD)%PO_-iHJg:*Sr[m"> <field name="COMMENT">The output:</field> <next> <block type="sendto_custom" id="yS]K]uIl{ve`#tJZJ=cz"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="text,telnr,callerid,repeat,priority,timeout,language,async,audiofile" with_statement="true"></mutation> <field name="INSTANCE">asterisk.0</field> <field name="COMMAND">dial</field> <field name="LOG"></field> <field name="WITH_STATEMENT">TRUE</field> <value name="ARG0"> <shadow type="text" id="!|C9r_9heWOhSQSUuLrI"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="CU$W({!8Xu;jg(YhcIn$"> <field name="VAR" id=",R)~|vEe|Hk1^bExwyKm">text</field> </block> </value> <value name="ARG1"> <shadow type="text" id="/UT;.u_OkYwbIvCfGCoC"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="CqVXW%}92.O79}(?$2BB"> <field name="VAR" id="6]OTkZnB2nWeMqZ[:Bgt">number1</field> </block> </value> <value name="ARG2"> <shadow type="text" id="#L;BDr}L|lvVvuV[fc1e"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="$Mhz;(yceco5-GtTr7mT"> <field name="VAR" id="RlYVjB#b`Cq%nNI$a%nh">callerid</field> </block> </value> <value name="ARG3"> <shadow type="text" id="qVb@`/0H[%B5t,/;pFMf"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="}7#LR8O~o}zx^[Lpuhu0"> <field name="VAR" id="Zneb2#O,oT6=1a1GO,S(">repeat</field> </block> </value> <value name="ARG4"> <shadow type="text" id="uyGU[Rj2bq30KI$9WH`:"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="R@tT7FIJU`Yy~p*x7-;+"> <field name="VAR" id="h{aZlv.AZH(yGq#J%uJr">priority</field> </block> </value> <value name="ARG5"> <shadow type="text" id="H1/.a.TkTjTQD](3c#@("> <field name="TEXT"></field> </shadow> <block type="variables_get" id="t**ccGKtujxJp)~50^=8"> <field name="VAR" id=";tv}Hj%EQ[8=cFac/:}f">timeout</field> </block> </value> <value name="ARG6"> <shadow type="text" id="x04;LWX0}VOI{NtyaW4W"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="9Tu3ezt:.!(_fSgv}m}|"> <field name="VAR" id="-aH},}FLLO(hwwOl0Y$T">language</field> </block> </value> <value name="ARG7"> <shadow type="text" id="vgsWw8c1]jcT(@1AMV{p"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="pkrx47{^lV/G%d|*Q:C$"> <field name="VAR" id="}uHNc}pP|cgYM`{o,w!2">async</field> </block> </value> <value name="ARG8"> <shadow type="text" id="]le)JE#!lwFa8hxX;B1`"> <field name="TEXT"></field> </shadow> <block type="variables_get" id="(F?eaC-NNN,B}#jh_/P."> <field name="VAR" id="d.dOhyf%X]|(.dOO7x7q">audiofile</field> </block> </value> <statement name="STATEMENT"> <block type="comment" id="|[;A,9NdXQHIS#BE4@6,"> <field name="COMMENT">The feedback:</field> <next> <block type="comment" id="#42*u}dU=,ouS{H$GoPZ"> <field name="COMMENT"> V1: (embedded function)</field> <next> <block type="debug" id=":jEb,=ar{`y|c1jsND=("> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="vI3Fl$aB3ZF0|Kn3XccV"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="Nw,XS77H9lL^~glq/=X/"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="[BF3O|{`lV9WPGMO~wnV"> <field name="TEXT">Result V1:</field> </block> </value> <value name="ADD1"> <block type="convert_object2json" id="Iy[)42:y2FnCKa6AEfde"> <field name="PRETTIFY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="rLnhEslI%Sxp=p}5:M_("> <field name="VAR" id="}^hTHFA%kq_OI$ULIw:?">result</field> </block> </value> </block> </value> </block> </value> <next> <block type="comment" id="bmSQI^i8?6UsgR6XehPj"> <field name="COMMENT"> V2:(local function /w ability for modification)</field> <next> <block type="debug" id="Lc/vkyTV^eNv{*{9k|xA"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id=".3e%EDoC7l8L:}PJ1mK#"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="%i-UVXVf]8Hke-*!vtG?"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="^8gZ=)4Th,9$}IHg_mIX"> <field name="TEXT">Result V2:</field> </block> </value> <value name="ADD1"> <block type="procedures_callcustomreturn" id="jd@IAvxBBdQVsg43G[,|"> <mutation name="fl_stringifyWoJoin"> <arg name="inp"></arg> </mutation> <value name="ARG0"> <block type="variables_get" id="%sdhN;-K`%b3ZfC.6~kR"> <field name="VAR" id="}^hTHFA%kq_OI$ULIw:?">result</field> </block> </value> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="telegram" id="B`J1j~[59+jNJ8PUT=b~" disabled="true"> <field name="INSTANCE">.0</field> <field name="LOG">log</field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="Ey`9S7*6N2o()_|g[5YS"> <field name="TEXT">ALARM</field> </shadow> </value> <next> <block type="control" id="QniwpBIa9yq7Oyz_ERhw" disabled="true"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">synology.0.SurveillanceStation.getSnapshotCamera</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="e,d,=}^u|hr0ONyG|:#P"> <field name="TEXT">1</field> </block> </value> <next> <block type="timeouts_wait" id="F|Bd80~d}dKb#E!W^z-%"> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <next> <block type="control" id="hXq4PDckjN1*L$W!R`iF" disabled="true"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">synology.0.SurveillanceStation.getSnapshotCamera</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="Mu%BJFNsogIkgBtx.BBz"> <field name="TEXT">3</field> </block> </value> <next> <block type="timeouts_wait" id="S]R?XvZjnRFrBJ8$%P6O"> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <next> <block type="control" id="c*7$P~+xvSsCm[]jqFBt" disabled="true"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">synology.0.SurveillanceStation.getSnapshotCamera</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="n:ZsHl(5^MSuAw7fyg[!"> <field name="TEXT">5</field> </block> </value> <next> <block type="timeouts_wait" id="9RF86{s^S$O^*Tz.`u5*"> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <next> <block type="control" id=";xcmKej6u@fpTRQHm#yY" disabled="true"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">synology.0.SurveillanceStation.getSnapshotCamera</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="-rb?ZyCai@_o@0^oq)bZ"> <field name="TEXT">6</field> </block> </value> <next> <block type="timeouts_wait" id="w|KmqpztqWq7sd)Y/3fY"> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <next> <block type="control" id="yReaw(Ed5pJz2bbggrVl" disabled="true"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">synology.0.SurveillanceStation.getSnapshotCamera</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="n|1le(mfJFPs_JVgsaMW"> <field name="TEXT">7</field> </block> </value> <next> <block type="timeouts_wait" id="2-`/G$1Hmf`u{?GW}qh1"> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <next> <block type="control" id="+mC|J}+9^q1ph2%a6MiL" disabled="true"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">synology.0.SurveillanceStation.getSnapshotCamera</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="9lC_iL(,+;eF:@0wa6;N"> <field name="TEXT">9</field> </block> </value> <next> <block type="timeouts_wait" id="KNg]FZ2,4hYK{3KncY4r"> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <next> <block type="timeouts_settimeout" id=",O|+TWAl|r*hP$k(Cm7." disabled="true"> <field name="NAME">timeout4</field> <field name="DELAY">2</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="telegram" id="/6_vFXeCrGp_}UBKIl%]"> <field name="INSTANCE">.0</field> <field name="LOG">log</field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="N0CU0BsQ{`3x~p1o-n(G"> <field name="TEXT">/opt/iobroker/iobroker-data/synology_0/snapshotCam_1.jpg</field> </shadow> </value> <next> <block type="timeouts_wait" id="}2dfS*,I$u@BJ;FEjhhr"> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <next> <block type="telegram" id="AqsBjPyg-x5,YKSExV=}"> <field name="INSTANCE">.0</field> <field name="LOG">log</field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="au8E0*mV|WrPmiNw+Bu#"> <field name="TEXT">/opt/iobroker/iobroker-data/synology_0/snapshotCam_3.jpg</field> </shadow> </value> <next> <block type="timeouts_wait" id="nZg{|lx^Z)]Z[OosBLgH"> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <next> <block type="telegram" id="TcTOu:bNR47$rzqEU|a7"> <field name="INSTANCE">.0</field> <field name="LOG">log</field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="Ts0PSJ}./$2RQkxPW3!G"> <field name="TEXT">/opt/iobroker/iobroker-data/synology_0/snapshotCam_5.jpg</field> </shadow> </value> <next> <block type="timeouts_wait" id=")p?h`)|_;gowC1.F%/S6"> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <next> <block type="telegram" id="mE:f*}Ku.Fs?czR4{%X("> <field name="INSTANCE">.0</field> <field name="LOG">log</field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="b1P($i|[u5m#9MCetf%5"> <field name="TEXT">/opt/iobroker/iobroker-data/synology_0/snapshotCam_6.jpg</field> </shadow> </value> <next> <block type="timeouts_wait" id="QpXJ6iH.;!Pg*@?k}ix6"> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <next> <block type="telegram" id="hEqJRy,ug@C1Mm3BL@A$"> <field name="INSTANCE">.0</field> <field name="LOG">log</field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="X=#zLt6HE}2feRXFd*c@"> <field name="TEXT">/opt/iobroker/iobroker-data/synology_0/snapshotCam_7.jpg</field> </shadow> </value> <next> <block type="timeouts_wait" id="Afbx3qNSnH}#ZL,K^./)"> <field name="DELAY">1000</field> <field name="UNIT">ms</field> <next> <block type="telegram" id="Y`5;BR(3GK5~2*=bH_z]"> <field name="INSTANCE">.0</field> <field name="LOG">log</field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="_X]q.|IE9ZnL}bK9F4;("> <field name="TEXT">/opt/iobroker/iobroker-data/synology_0/snapshotCam_9.jpg</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block>
Wenn fragen sind dann halt melden.
Grüße
Sunny -
@ewc sagte in IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox:
Der gedachte Ablauf ist/soll folgender sein:
GPIO x1 Eingang -closed- "Alarm scharf/unscharf
wenn -closed- "scharf" warte 5 Minuten
wenn "nach 5 Minuten" und GPIO x1 "closed"
und GPIO x2 Eingang closed (Alarmtrigger über NVR)
warte 3 Minuten
danach starte Anruf über Asterisk (und ggfls. noch einen Shelly) wenn GPIO x1 noch closedHi, sorry, ich hab leider Informatik und nicht Kunst studiert.
Das Problem ist, dass der X2 beim Schalten und nach 5min geprüft werden sollte, daher hab ich ihn mal in eine Funktion ausgelagert.
Ach, die Timer müssen auf Minuten gestellt werden.<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="qyH7wq!-AOqe;Qn?*$Gv">5Min</variable> <variable id="c)53FM(#B:Y8tLluj7R$">value_x2</variable> <variable type="timeout" id="Timer2">Timer2</variable> <variable type="timeout" id="Timer1">Timer1</variable> </variables> <block type="variables_set" id="oQOKs5dy#o7YDnO3|y8(" x="38" y="-162"> <field name="VAR" id="qyH7wq!-AOqe;Qn?*$Gv">5Min</field> <value name="VALUE"> <block type="logic_boolean" id="^8ec%``[UR5J?TyvP9(]"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="on_ext" id="2gvtvw$D1+B:Z@R[%DF_"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="nJ$?z|g=p*]H^;.KG=^d"> <field name="oid">0_userdata.0.test.x1</field> </shadow> </value> <statement name="STATEMENT"> <block type="debug" id="$o38w*m;c1XZxq5V1`B4"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="uA0v_VPCj:mQ-0a;qNig"> <field name="TEXT">X2 Wurde geschltet auf </field> </shadow> <block type="text_join" id="g6XE|gOKiPN:7}MU(cuc"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="/_jmk]!$*S!5kRvAsc2G"> <field name="TEXT">X1 auf </field> </block> </value> <value name="ADD1"> <block type="on_source" id="_J#ZG%TUaWB?ovCRfv1M"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <next> <block type="variables_set" id="YY_aE0gJG2}tkTWXn9U_"> <field name="VAR" id="qyH7wq!-AOqe;Qn?*$Gv">5Min</field> <value name="VALUE"> <block type="logic_boolean" id="R8UDaE+rD%`FdX-B]h({"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="mR.h{lWQ*@vbf?cKPc|B"> <field name="NAME">Timer1</field> <next> <block type="controls_if" id="jdZ#9-?#2,uM|0rOZ.f["> <value name="IF0"> <block type="logic_compare" id="kCw4.M:y@Va*xw7G`|+;"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="1E,MF]#w+WD|*6H!JPRc"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="logic_boolean" id="vHPo`yGUH}=u]EG%++P#"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_settimeout" id="oo/O`w1ZsesGO]icT}AR"> <field name="NAME">Timer1</field> <field name="DELAY">5</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="variables_set" id="i~$Fw}}{Nul/|Y4r|^]f"> <field name="VAR" id="qyH7wq!-AOqe;Qn?*$Gv">5Min</field> <value name="VALUE"> <block type="logic_boolean" id="(_kkv=vlk^kTZh~Id``1"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="procedures_callnoreturn" id="v5#2OA-d8k6RqoKQz:y`"> <mutation name="pruefex2"> <arg name="value_x2"></arg> </mutation> <value name="ARG0"> <block type="get_value" id="KGEORwpvzoO4.j12dPJT"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.test.x2</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> <next> <block type="on_ext" id="wai*:bt|e9q(lAxJM`a_"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="=/!kt2t]ElWK9maLUztN"> <field name="oid">0_userdata.0.test.x2</field> </shadow> </value> <statement name="STATEMENT"> <block type="procedures_callnoreturn" id="21@Y/BL:gABG4mapP/)G"> <mutation name="pruefex2"> <arg name="value_x2"></arg> </mutation> <value name="ARG0"> <block type="on_source" id="?7(5#`WG{#YXB%WaU74e"> <field name="ATTR">state.val</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> <block type="procedures_defnoreturn" id="*W|1t#%2V5b_nS=#HxJ9" x="488" y="-162"> <mutation> <arg name="value_x2" varid="c)53FM(#B:Y8tLluj7R$"></arg> </mutation> <field name="NAME">pruefex2</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="debug" id="WDygLdRg|(8i;BQWvUvR"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="uA0v_VPCj:mQ-0a;qNig"> <field name="TEXT">X2 Wurde geschltet auf </field> </shadow> <block type="text_join" id="QX9Iwnb{`k!b))9!2dPu"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="0KUyAetb|p,kj_7Hccc+"> <field name="TEXT">X2 auf </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="8xz=_N*rz/Y+kZ%v~Y?F"> <field name="VAR" id="c)53FM(#B:Y8tLluj7R$">value_x2</field> </block> </value> </block> </value> <next> <block type="timeouts_cleartimeout" id="5zO];g+_5U`2h(I@2ncl"> <field name="NAME">Timer2</field> <next> <block type="controls_if" id="H7_oemVk_S+G]SXrjC|B"> <value name="IF0"> <block type="logic_operation" id="JM%+9${v_@7J^a$_7NMH"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="*Bp!z}c68`wx=prHp{)M"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="rFZyNB6uz9Ht]MOjK/r4"> <field name="VAR" id="c)53FM(#B:Y8tLluj7R$">value_x2</field> </block> </value> <value name="B"> <block type="logic_boolean" id="c]f9FE`a2KN#CW2hlfk;"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="[7a~rI3zgMIU]Xt%9NW;"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="/^s{NjlA?et)bx`?|zF1"> <field name="VAR" id="qyH7wq!-AOqe;Qn?*$Gv">5Min</field> </block> </value> <value name="B"> <block type="logic_boolean" id="3}~2dDE=Kn9?t+TQ(@gy"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_settimeout" id="qmcn.*U%kAOcz,WRN91,"> <field name="NAME">Timer2</field> <field name="DELAY">3</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="debug" id="Z14OvO~D^,Mqz-8B%;ir"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="]T6$/aN1yu0Ht.RQ(UE{"> <field name="TEXT">Jetzt Anruf</field> </shadow> </value> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </xml>
Ich hab es noch mal überarbeitet, hatte nicht gelesen, das X2 aus sein soll.
Ich hab nur in der Funktion die Abfrage value_x2= von true auf false geändert.
Jetzt hats du ja zwei beispiele, viel Spaß. -
@plchome-0
Vielen Dank für deine Mühen.Ich habe da noch einen Wurm drin, ich pfusche mal ein wenig rum…
-
@ewc Mach mal
-
@plchome-0
Servus....
Also, ich bekomme das Script ums Verrecken nicht zum Laufen.
Erste Konfiguration war ein Pi4-8GB, "Buster", interne Pullups auf GPIO16 und 26... kein Anruf, schlechte/unzureichende GPIO Umschaltung true/false visaverse.
Externe PullUps (10k) das gleiche Schauspiel.
Anderen Pi, auch 4 und 8GB genommen, keine Änderung.
Gestern neues OS aufgesetzt (Bookworm), da scheitert es dann mit der Installation von Asterisk. (haha)Meine Frau fragt mich schon, wie weit ich bin, worauf ich antworte: ich bin nahe der Verzweiflung
ich setze nochmal Buster auf -(
-
@ewc sagte in IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox:
Servus....
Also, ich bekomme das Script ums Verrecken nicht zum Laufen.
Erste Konfiguration war ein Pi4-8GB, "Buster", interne Pullups auf GPIO16 und 26... kein Anruf, schlechte/unzureichende GPIO Umschaltung true/false visaverse.
Externe PullUps (10k) das gleiche Schauspiel.
Anderen Pi, auch 4 und 8GB genommen, keine Änderung.
Gestern neues OS aufgesetzt (Bookworm), da scheitert es dann mit der Installation von Asterisk. (haha)Uff, jetzt bin ich verwirrt.
Am besten fangen wir mal vorne an.
Kannst du den Status in den Objekten sehen?
Kannst du den Anruf über die Objekte ohne Script absetzen? -
Moin
Vorab nochmals herzlichen Dank für deine Unterstützung!!!über Objekte Anrufe abzusetzen ging problemlos.
Auch über einen GPIO den Anruf auszulösen ging halbwegs erfolgreich.
Das Script von Dir habe ich gar nicht zum Laufen gebracht.
Da die beiden GPIO´s auch nicht zuverlässig "gearbeitet" haben, habe ich einen Versuch über externe PullUp´s versucht. Ging auch nicht zufriedenstellend. Der Austausch des Raspi Boards brachte keine Besserung.
Der Ratschlag von vorne anzufangen ist daher nicht schlecht.
Was meinst Du, welches OS ich nutzen sollte.
Buster habe ich noch beide Versionen (lite und desktop), damit würde auch die Asterisk Installation wie hier im Thread aufgezeigt funktionieren. Bei Bookworm müsste die Installation über die tar.gz gehen.
Blöde Frage: welches OS würdest Du mir empfehlen?
Dann setze ich neu auf und wir sehen weiter -
@ewc sagte in IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox:
Blöde Frage: welches OS würdest Du mir empfehlen?
Oh sorry, da bin ich der Falsche...
Ich hab einen NUC mit Debian und dadrauf 14 Docker Container ... Einer davon hat den Namen ioBroker
Davor hatte ich einen PI4 mit Raspian und einen Docker Container mit Raspian ...
Mit Gipos hab ich noch nie was gemacht, da ich eine SPS habe. Sorry -
Ich teste mal mit Bookworm und schaue als erstes aufs GPIO Verhalten im ioBroker
wenn das anständig funtioniert nehme ich mal die aktuelle Asterisk Version.
Vielleicht kriege ich es ja noch gebacken -
Moin Moin...
sodele, nach unzähligen Installationen unterschiedlichster OS Versionen und weiteren "Versuchen" ein einwandfrei lauffähiges Asterisk auf die Platine zu bekommen, bin ich nun weiter.
Sowohl GPIO´s, als auch Asterisk machen dann endlich, was sie sollen.
Dein Script ist klasse, wobei ich einen Knoten im Kopf habe, worüber darin der Anruf ausgelöst wird!? -
@ewc Das fehlt da ... Das musst du selber dazu dichten. Die Stelle ist aber ersichtlich, da wird jetzt Anruf in das Log geschrieben.
Für den Anruf musst den Text un, Telefonnummer setzen und das Objekt mit true beschreiben.
Am besten kann man das dirket in den Objekten testen. -
@plchome-0
Moin Moin... ich habs mittlerweile "gepeilt" und bin auf dem Durchbruch zur Raketentechnik^^Alarmierung, Gartenbeleuchtung und auch externe Abschaltung durch die vis (z.B. Alarmanlage vom Haus scharf, aber Gärtner im Garten) funzt nun einwandrei. Ein Manko ist noch die zeitliche Verzögerung (Timer) für die Alarmauslösung, für die ich mir noch eine intelligentere Logik einfallen lassen muss.
Aktuell versuche ich mich mit DTMF zur Anrufquittierung, sodass ich eine Schleife auf mehrere Nummern stoppen kann