- ioBroker Community Home
- Deutsch
- Skripten / Logik
- Blockly
- Blocky schiesst Homematic ab
Blocky schiesst Homematic ab
-
Mal eine Frage an die Profis,
das script fragt die Einspeisung als Trigger (PV9) ab.
der Wert ändert sich natürlich sekündlich.
PV1= Mindestwert das Anlage Einspeisung positiv ist und PV4 = 1,5 KW Leistung Heizpatrone 1
damit will ich sicherstellen das ich zum Heizen nicht aus dem Netz ziehe.
Die zweite Heizpatrone wird geschalten Patrone1 "wahr" ist & PV4 "wahr" ist.
Das läuft ja so...aber nach einer Weile steigt der Schaltaktor von der Homematic aus
Der Dutycycle geht auf 99% und das war es dann.
Gibt es eine Möglichkeit das anders zu lösen ?
-
Mal eine Frage an die Profis,
das script fragt die Einspeisung als Trigger (PV9) ab.
der Wert ändert sich natürlich sekündlich.
PV1= Mindestwert das Anlage Einspeisung positiv ist und PV4 = 1,5 KW Leistung Heizpatrone 1
damit will ich sicherstellen das ich zum Heizen nicht aus dem Netz ziehe.
Die zweite Heizpatrone wird geschalten Patrone1 "wahr" ist & PV4 "wahr" ist.
Das läuft ja so...aber nach einer Weile steigt der Schaltaktor von der Homematic aus
Der Dutycycle geht auf 99% und das war es dann.
Gibt es eine Möglichkeit das anders zu lösen ?
@syber sagte: fragt die Einspeisung als Trigger (PV9) ab.
?? Der Wert wird innerhalb der Callback-Funktion nirgends ausgewertet.
@syber sagte in Blocky schiesst Homematic ab:
Gibt es eine Möglichkeit das anders zu lösen ?
Vorschlag:

Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs -
@syber sagte: fragt die Einspeisung als Trigger (PV9) ab.
?? Der Wert wird innerhalb der Callback-Funktion nirgends ausgewertet.
@syber sagte in Blocky schiesst Homematic ab:
Gibt es eine Möglichkeit das anders zu lösen ?
Vorschlag:

-
@paul53
Danke für die schnelle Antwort
aber ich bin totaler Anfänger
bis ich das mit der Variable "setze Grenzwert" erstellen geschnallt habe :(
Jetzt hänge ich an der nächste Zeile.
Wo finde "Wert" -
@paul53
Danke dir..das hat geklappt :)

aber jetzt hängt es wieder bei den Timeouts
Stop und Verzögerung ab ich gefunden aber wie bekommt man das delayOn da rein

könntest du das ganze Script mal posten
und ich versuche es dann mal nachzubauen
Danke für deine Mühe -
@paul53
Danke dir..das hat geklappt :)

aber jetzt hängt es wieder bei den Timeouts
Stop und Verzögerung ab ich gefunden aber wie bekommt man das delayOn da rein

könntest du das ganze Script mal posten
und ich versuche es dann mal nachzubauen
Danke für deine Mühe@syber sagte: wie bekommt man das delayOn
Bei "Ausführen timeout" eintippen anstelle von timeout. Bei den anderen beiden dann auswählen.
@syber sagte in Blocky schiesst Homematic ab:
Script mal posten
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</variable> <variable id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</variable> <variable type="timeout" id="delayOn">delayOn</variable> <variable type="timeout" id="delayOff">delayOff</variable> </variables> <block type="variables_set" id="zo);,rK_T+=a,mP%]Wg." x="12" y="-62"> <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field> <value name="VALUE"> <block type="math_number" id="7%K@1T{#I/I|Lk};-m.l"> <field name="NUM">1900</field> </block> </value> <next> <block type="variables_set" id="I7I-F_#:#J)(O0wL4Aih"> <field name="VAR" id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</field> <value name="VALUE"> <block type="math_arithmetic" id="d=rJR%ogfy#lFSNUW#06"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="b+alG`6e;V6Rycn#})9|"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="YHi/ucvd~zJOaY27ffQX"> <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field> </block> </value> <value name="B"> <shadow type="math_number" id="BrB|~i^$qYCE5dc,z}(J"> <field name="NUM">1800</field> </shadow> </value> </block> </value> <next> <block type="on_ext" id="^=k13pGi`kMjtE||vY.J"> <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="n:wY~I3GQO$7,0:+.oY="> <field name="oid">0_userdata.0.Blockly.PV_Ueberschuss</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="?{[99~rn+X@-!776Gil$"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="d%IZlzT50i(a7nefKk6]"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="f=2?mi+jttya*Yya7dG."> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="q{]f~,LPED4*s[Rqru9L"> <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="|#WysqWLOkMz:?pQ*-CZ"> <field name="NAME">delayOn</field> </block> </statement> <value name="IF1"> <block type="logic_negate" id="dch2(fx(/ykyn#X-R`9x"> <value name="BOOL"> <block type="timeouts_gettimeout" id="xJVx:Mi5[U_(t*bw(Yq$"> <field name="NAME">delayOn</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="=EI:`22NaF],y?uV^b1B"> <field name="NAME">delayOn</field> <field name="DELAY">10</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="i.:l;5vs?$}^L}N-R(^T"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_negate" id="R(_3jAG`Md_w[,(|^wr/"> <value name="BOOL"> <block type="get_value" id="NG3*!?gfl8{k3cP;uW1`"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Blockly.Switch1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="qYesRpdij9z`93JQ2~w%"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Blockly.Switch1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ndh[{X~M{gFV,0p.u?49"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_negate" id="r:ak[AbR=(fM06(!MiNq"> <value name="BOOL"> <block type="get_value" id="Wk#V-l{Fi[!?`_6`Qj_b"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Blockly.Switch2</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="S(zYFzv^}$AcCYB-`Q`e"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Blockly.Switch2</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="r_?O8H8QBzI#o|3X!Q%#"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF2"> <block type="logic_negate" id="jM5~.3jyY`N/(9mGWI:O"> <value name="BOOL"> <block type="get_value" id="*guxu@lyFFjMcgr}bL4V"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Blockly.Switch3</field> </block> </value> </block> </value> <statement name="DO2"> <block type="control" id="XXUi|!^XGmi4z|s+a-/j"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Blockly.Switch3</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="J{N8i(G2CBr~GS95U1P5"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <next> <block type="timeouts_wait" id="6xiZ%Mi^9lNm4OO$#|4N"> <field name="DELAY">10</field> <field name="UNIT">sec</field> <next> <block type="timeouts_cleartimeout" id="WJ?t^mxt0H|jM5A2zX=v"> <field name="NAME">delayOn</field> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="controls_if" id="U^YFuAk{|bn.*b{Ep;B="> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="GddE`U/xj*}WZ:OC-j_5"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="7p.M-{Jv;0@=Z(ul53Sv"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="-t@cJFEI+*?5ME9yFOuZ"> <field name="VAR" id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="_N.QOqsujv5EzF,e1:^`"> <field name="NAME">delayOff</field> </block> </statement> <value name="IF1"> <block type="logic_negate" id="0(6[M7amQ.RY*S4wPkX3"> <value name="BOOL"> <block type="timeouts_gettimeout" id="pTQJfLPne.dmqq!4K#Q."> <field name="NAME">delayOff</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="b(4T]c7c@_xcR0^(IJQ#"> <field name="NAME">delayOff</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="?qIetfb=Y~enZP|MFl{L"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="get_value" id="Gfj4~P(NGH1)wmLG*_5i"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Blockly.Switch3</field> </block> </value> <statement name="DO0"> <block type="control" id="+}7@V!ZV,:MdpdXzwfQM"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Blockly.Switch3</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="7]gwCTD%n]L)8L{d}UV;"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="get_value" id="c5)cE;gpnkQiW1,[Z~lq"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Blockly.Switch2</field> </block> </value> <statement name="DO1"> <block type="control" id="mz4KPZXji[VtQd%D^Q)G"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Blockly.Switch2</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="aHm,f%vDaSf!ndb?Gy^;"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <value name="IF2"> <block type="get_value" id="qiL4rv;pF_`rhwPjnuos"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Blockly.Switch1</field> </block> </value> <statement name="DO2"> <block type="control" id="1)T#:T-4fP9.161U$Ox!"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Blockly.Switch1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="EpsV1@;P~LvEiJ]XiL]D"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="timeouts_wait" id="L_G?=s-{iS/.+04Ro9ln"> <field name="DELAY">10</field> <field name="UNIT">sec</field> <next> <block type="timeouts_cleartimeout" id="NWZqJ:pmXfkR7B(bD,.L"> <field name="NAME">delayOff</field> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> <block type="comment" id="spM3p{6_@o=i-MLZZk$3" x="388" y="-62"> <field name="COMMENT">3 mal 1,5 kW</field> </block> </xml>Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs -
@syber sagte: wie bekommt man das delayOn
Bei "Ausführen timeout" eintippen anstelle von timeout. Bei den anderen beiden dann auswählen.
@syber sagte in Blocky schiesst Homematic ab:
Script mal posten
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</variable> <variable id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</variable> <variable type="timeout" id="delayOn">delayOn</variable> <variable type="timeout" id="delayOff">delayOff</variable> </variables> <block type="variables_set" id="zo);,rK_T+=a,mP%]Wg." x="12" y="-62"> <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field> <value name="VALUE"> <block type="math_number" id="7%K@1T{#I/I|Lk};-m.l"> <field name="NUM">1900</field> </block> </value> <next> <block type="variables_set" id="I7I-F_#:#J)(O0wL4Aih"> <field name="VAR" id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</field> <value name="VALUE"> <block type="math_arithmetic" id="d=rJR%ogfy#lFSNUW#06"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="b+alG`6e;V6Rycn#})9|"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="YHi/ucvd~zJOaY27ffQX"> <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field> </block> </value> <value name="B"> <shadow type="math_number" id="BrB|~i^$qYCE5dc,z}(J"> <field name="NUM">1800</field> </shadow> </value> </block> </value> <next> <block type="on_ext" id="^=k13pGi`kMjtE||vY.J"> <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="n:wY~I3GQO$7,0:+.oY="> <field name="oid">0_userdata.0.Blockly.PV_Ueberschuss</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="?{[99~rn+X@-!776Gil$"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="d%IZlzT50i(a7nefKk6]"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="f=2?mi+jttya*Yya7dG."> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="q{]f~,LPED4*s[Rqru9L"> <field name="VAR" id="0yCRj*O9QX1#dhgtI-o5">grenzwertEin</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="|#WysqWLOkMz:?pQ*-CZ"> <field name="NAME">delayOn</field> </block> </statement> <value name="IF1"> <block type="logic_negate" id="dch2(fx(/ykyn#X-R`9x"> <value name="BOOL"> <block type="timeouts_gettimeout" id="xJVx:Mi5[U_(t*bw(Yq$"> <field name="NAME">delayOn</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="=EI:`22NaF],y?uV^b1B"> <field name="NAME">delayOn</field> <field name="DELAY">10</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="i.:l;5vs?$}^L}N-R(^T"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="logic_negate" id="R(_3jAG`Md_w[,(|^wr/"> <value name="BOOL"> <block type="get_value" id="NG3*!?gfl8{k3cP;uW1`"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Blockly.Switch1</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="qYesRpdij9z`93JQ2~w%"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Blockly.Switch1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="ndh[{X~M{gFV,0p.u?49"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_negate" id="r:ak[AbR=(fM06(!MiNq"> <value name="BOOL"> <block type="get_value" id="Wk#V-l{Fi[!?`_6`Qj_b"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Blockly.Switch2</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="S(zYFzv^}$AcCYB-`Q`e"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Blockly.Switch2</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="r_?O8H8QBzI#o|3X!Q%#"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF2"> <block type="logic_negate" id="jM5~.3jyY`N/(9mGWI:O"> <value name="BOOL"> <block type="get_value" id="*guxu@lyFFjMcgr}bL4V"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Blockly.Switch3</field> </block> </value> </block> </value> <statement name="DO2"> <block type="control" id="XXUi|!^XGmi4z|s+a-/j"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Blockly.Switch3</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="J{N8i(G2CBr~GS95U1P5"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <next> <block type="timeouts_wait" id="6xiZ%Mi^9lNm4OO$#|4N"> <field name="DELAY">10</field> <field name="UNIT">sec</field> <next> <block type="timeouts_cleartimeout" id="WJ?t^mxt0H|jM5A2zX=v"> <field name="NAME">delayOn</field> </block> </next> </block> </next> </block> </statement> </block> </statement> <next> <block type="controls_if" id="U^YFuAk{|bn.*b{Ep;B="> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="GddE`U/xj*}WZ:OC-j_5"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="7p.M-{Jv;0@=Z(ul53Sv"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="variables_get" id="-t@cJFEI+*?5ME9yFOuZ"> <field name="VAR" id="k5G]U.qWO4-lc^#fGv0R">grenzwertAus</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="_N.QOqsujv5EzF,e1:^`"> <field name="NAME">delayOff</field> </block> </statement> <value name="IF1"> <block type="logic_negate" id="0(6[M7amQ.RY*S4wPkX3"> <value name="BOOL"> <block type="timeouts_gettimeout" id="pTQJfLPne.dmqq!4K#Q."> <field name="NAME">delayOff</field> </block> </value> </block> </value> <statement name="DO1"> <block type="timeouts_settimeout" id="b(4T]c7c@_xcR0^(IJQ#"> <field name="NAME">delayOff</field> <field name="DELAY">5</field> <field name="UNIT">min</field> <statement name="STATEMENT"> <block type="controls_if" id="?qIetfb=Y~enZP|MFl{L"> <mutation elseif="2"></mutation> <value name="IF0"> <block type="get_value" id="Gfj4~P(NGH1)wmLG*_5i"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Blockly.Switch3</field> </block> </value> <statement name="DO0"> <block type="control" id="+}7@V!ZV,:MdpdXzwfQM"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Blockly.Switch3</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="7]gwCTD%n]L)8L{d}UV;"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="get_value" id="c5)cE;gpnkQiW1,[Z~lq"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Blockly.Switch2</field> </block> </value> <statement name="DO1"> <block type="control" id="mz4KPZXji[VtQd%D^Q)G"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Blockly.Switch2</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="aHm,f%vDaSf!ndb?Gy^;"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <value name="IF2"> <block type="get_value" id="qiL4rv;pF_`rhwPjnuos"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Blockly.Switch1</field> </block> </value> <statement name="DO2"> <block type="control" id="1)T#:T-4fP9.161U$Ox!"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Blockly.Switch1</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="EpsV1@;P~LvEiJ]XiL]D"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="timeouts_wait" id="L_G?=s-{iS/.+04Ro9ln"> <field name="DELAY">10</field> <field name="UNIT">sec</field> <next> <block type="timeouts_cleartimeout" id="NWZqJ:pmXfkR7B(bD,.L"> <field name="NAME">delayOff</field> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </statement> </block> </next> </block> </next> </block> <block type="comment" id="spM3p{6_@o=i-MLZZk$3" x="388" y="-62"> <field name="COMMENT">3 mal 1,5 kW</field> </block> </xml>
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login

