Beiträge von gmt94

    Also wir haben nur Androiden Zuhause.

    Ich habe über den folgenden Adapter gelöst. Geht aber nur mit nee fritte. Dort kann man dann einfach die IP-Adresse eintragen und die Verbindung zur fritte herstellen.

    IMG_20210710_152333.jpg

    Die erste Variante die ich hatte funzte auch nicht...dort wurde einfach auch nur die IP abgefragt... Weiß aber gar nicht mehr wie ich das gemacht hatte

    Du meinst per Actions?

    Ich will ihn gerade ja nicht permanent im any haben, da er ja sonst auch tagsüber Bewegungen erkennt aber logischerweise kein Licht anmacht. Das geht ja unnötig auf den Akku.

    Beide Varianten, also deine und meine sind eigentlich komplett unnötige workarounds für den Motion.

    Problemstellung:

    Vor ein paar Tagen habe ich den Motion bekommen und musste ihn natürlich gleich auf Herz und Nieren prüfen. Zunächst habe ich ihn provisorisch im EG Flur installiert. Hier bekommt er somit die meisten Bewegungen im ganzen Haus mit. Da ich soviel wie möglich akku sparen wollte habe ich operation modus auf "dark" gestellt und die Luxschwelle auf 10 Lux gesetzt. So nun kommt wie es kommen musste. Es wurde dunkel und ich gehe in den Flur und zack licht geht an. Cool dachte ich mir, das funzt ja wirklich gut. Die Blindtime steht auf 60s. Also habe ich mich länger als 60s im Flur aufgehalten und auf einmal geht das licht aus. Was soll das dachte ich mir noch und zückte das Handy und wählte mich auf den shelly per browser. Also nochmal in den Flur und siehe da, trotz Bewegung zählt der counter runter und licht geht aus. Da durch das Licht der Lampen, der Luxwert meiner Darkschwelle überschritten wird erkennt der shelly keinerlei Bewegung mehr. Ich frage mich echt, wer bei shelly auf so eine bekloppte logik gekommen ist....

    Lösung:

    Ich habe ein kleines Blockly geschrieben, auf dem die Variable des Motions getriggert wird. Wird nun eine Bewegung im modus dark erkannt, wird wie gewünscht das licht eingeschaltet. Mit einem kurzen Zeitversatz von 1s wird zusätzlich ein http request an den motion gesendet. Hierbei schalte ich vom Modus dark auf den modus any um. Nun wird wie gewünscht alle bewegungen erkannt und dementsprechend die Laufzeit verlängert.

    Folgt keine Bewegung mehr, schaltet das Script das LIcht wieder aus und 1s später wird per request wieder auf modus dark umgeschalten.


    Ihr könnt natürlich jede andere Kombination der einzelnen Modi wählen. Einfach nur im Text beim request die letzte Zahl anpassen.

    0 = Any

    1 = Dark

    2 = Twilight

    3 = Bright

    Natürlich muss euere IP-Adresse des Shellys angepasst werden.


    pasted-from-clipboard.png

    Zielsetzung:

    Dieses Blockly liefert eigentlich einem weiteren Blockly nur die Werte. Ich habe hinter meinen Garagentoren eine Lichtschranke installiert die über die gesamte breite geht, somit beide tore erfassen kann. Über die Durchfahrtszeit durch die Lichtschranke kann ich somit relativ genau sagen ob, ein Fahrzeug gerade ein oder ausparkt. Lange Zeiten deuten auf ein Einparken hin und kurze auf ein ausparken. Ganz kurze Zeiten von kleiner als 1,5s werden nicht berücksichtigt, da diese meist nur ein durchlaufen einer Person der schranke darstellen.

    Wozu brauche ich die Information?

    Hiermit steuere ich das gesamte Lichtverhalten beim nachhause kommen oder verlassen, nicht nur in der Garage sondern auch noch in der Hofeinfahrt. Anfangs hatte ich immer die gleiche Zeit für alles eingestellt, was natürlich nicht wirklich optimal ist.

    Was wird benötigt:

    An jedem Tormotor (Hörmann Promatic 3) hängt ein Shelly 1, der mir die Endlage Tor geschlossen meldet/erkennt.

    Ein Shelly (bei mir RGBW2) an der Lichtschranke - Wird die Schranke unterbrochen, wird der Switch des Shellys aktiviert.


    pasted-from-clipboard.png

    pasted-from-clipboard.png

    [BLOCKLY] - Comming und Leaving Home Fahrzeuge in der Garage.txt

    Eigentlich gibt es zwei Ziele dieses kleine Blocklys.

    1. Meine Dunstabzugshaube (Umluft) hat jetzt über die Zeit ein eigenleben entwickelt. Soll heißen, dass ding geht einfach irgendwann ohne ersichtlichen grund von alleine an, fährt alle Luftungsstufen durch und bleibt dann auf volle pulle stehen. dann hilft nur noch stecker ziehen. Daher wird nach Benutzung (5min) die Spannung gekappt.

    Dazu ist hinter der Abzugshaube ein Shelly Plug S installiert.

    2. Meine zentrale Lüftungsanlage verfügt über externe Schließereingänge mit denen ich bestimmte Lüftungsstufen ansteuern kann. Dort hängt ein Shelly 1 dran.

    Wird jetzt die Abzugshaube eingeschalten wird die maximale Stufe der Lüftungsanlage aktiviert und läuft noch 15min nach abschalten der Abzugshaube nach.


    pasted-from-clipboard.png

    Blockly Export

    <xml xmlns="http://www.w3.org/1999/xhtml">

    <block type="on" id="qyU3pETUy!*jVdW/3/oJ" x="62" y="-112">

    <field name="OID">shelly.0.SHPLG-S#DE6886#1.Relay0.Power</field>

    <field name="CONDITION">ne</field>

    <field name="ACK_CONDITION"></field>

    <statement name="STATEMENT">

    <block type="controls_if" id=",REJ[m1ptmJ([@E~:^^[">

    <value name="IF0">

    <block type="logic_compare" id="252.*}PCa-B8mQ0fYfL)">

    <field name="OP">GT</field>

    <value name="A">

    <block type="get_value" id="]cf@2dB0Zpk:5|mT[4}9">

    <field name="ATTR">val</field>

    <field name="OID">shelly.0.SHPLG-S#DE6886#1.Relay0.Power</field>

    </block>

    </value>

    <value name="B">

    <block type="math_number" id="uYR)2[on,r`MFy,8j4hc">

    <field name="NUM">10</field>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="control" id="P|k*)n67V1I.f7Z$GG@G">

    <mutation delay_input="false"></mutation>

    <field name="OID">shelly.0.SHSW-1#10E560#1.Relay0.Switch</field>

    <field name="WITH_DELAY">FALSE</field>

    <value name="VALUE">

    <block type="logic_boolean" id="*dvC6hzP%`3#3uRPbsSk">

    <field name="BOOL">TRUE</field>

    </block>

    </value>

    </block>

    </statement>

    </block>

    </statement>

    <next>

    <block type="on" id="yI11Ai#8nv)e,#]Ng5oe">

    <field name="OID">shelly.0.SHPLG-S#DE6886#1.Relay0.Power</field>

    <field name="CONDITION">ne</field>

    <field name="ACK_CONDITION"></field>

    <statement name="STATEMENT">

    <block type="controls_if" id="kcHHvPdhGj%XN]`$A,wF">

    <value name="IF0">

    <block type="logic_compare" id="yY-`bjJbvbqc5m@FC.;S">

    <field name="OP">LTE</field>

    <value name="A">

    <block type="get_value" id="ZntCT-$TeJ~csJkWVa+F">

    <field name="ATTR">val</field>

    <field name="OID">shelly.0.SHPLG-S#DE6886#1.Relay0.Power</field>

    </block>

    </value>

    <value name="B">

    <block type="math_number" id="r9s(z2M#hs59oAj90)Vq">

    <field name="NUM">0</field>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="control" id=";bIT32=EMBt?3vpW,B50">

    <mutation delay_input="true"></mutation>

    <field name="OID">shelly.0.SHPLG-S#DE6886#1.Relay0.Switch</field>

    <field name="WITH_DELAY">TRUE</field>

    <field name="DELAY_MS">5</field>

    <field name="UNIT">min</field>

    <field name="CLEAR_RUNNING">FALSE</field>

    <value name="VALUE">

    <block type="logic_boolean" id="SX=Z-ahk{8(zFYyM.?6t">

    <field name="BOOL">FALSE</field>

    </block>

    </value>

    <next>

    <block type="control" id="m]h_@QTx)u2JCt5l{?p-">

    <mutation delay_input="true"></mutation>

    <field name="OID">shelly.0.SHSW-1#10E560#1.Relay0.Switch</field>

    <field name="WITH_DELAY">TRUE</field>

    <field name="DELAY_MS">15</field>

    <field name="UNIT">min</field>

    <field name="CLEAR_RUNNING">FALSE</field>

    <value name="VALUE">

    <block type="logic_boolean" id="3+kUpp%+,t-nJoZP(Nls">

    <field name="BOOL">FALSE</field>

    </block>

    </value>

    </block>

    </next>

    </block>

    </statement>

    </block>

    </statement>

    </block>

    </next>

    </block>

    </xml>

    Benötigt wird ein Shelly 1PM oder ein anderer Shelly der die Leistung messen kann. Dieser muss natürlich vor dem Geschirrspüler installiert sein.

    Des Weiteren wird noch eine Systemvariable benötigt, die Anfangs auf die noch vorhanden Tabs manuell beschrieben werden muss. Die benötigten Leistungswerte müssen dann noch von euren Geräte ermittelt werden. Ich empfehle die Schwelle mit den 50W für den Start zu lassen, sonst kann es passieren, dass man den Geschirrspüler einschaltet ohne aber ein Programm laufen zu lassen und ihn anschließend wieder ausschaltet, dass er iorbroker denkt, dass das gerät lief. Wird eine neue Packung gekauft, muss die Variable wieder von Hand beschrieben werden.

    Als Abschluss gibt es noch ein Telegramm aufs Handy, dass der Geschirrspüler fertig ist.

    Ich arbeite noch nicht lange mit dem Iobroker, daher geht bestimmt manchen deutlich einfacher oder schlanker....


    pasted-from-clipboard.png

    Blockly Export

    <xml xmlns="http://www.w3.org/1999/xhtml">

    <variables>

    <variable type="" id="lpH;YI/T(sC6n[fhfta1">P_Geschirrspueler_akt</variable>

    <variable type="" id="Rqm%uv,~8MnTQRm!L@0?">B_Geschirrspueler_an</variable>

    <variable type="" id="uqiq+JcQK,U:^VRd{i(C">Var_Counter_Tabs</variable>

    </variables>

    <block type="on" id="/V`vmsry1Aqt(d/t/.r!" x="113" y="13">

    <field name="OID">shelly.0.SHSW-PM#BA50C2#1.Relay0.Power</field>

    <field name="CONDITION">ne</field>

    <field name="ACK_CONDITION"></field>

    <statement name="STATEMENT">

    <block type="variables_set" id="zo-jMQZP3.JQqlc]EFq(">

    <field name="VAR" id="lpH;YI/T(sC6n[fhfta1" variabletype="">P_Geschirrspueler_akt</field>

    <value name="VALUE">

    <block type="get_value" id="6g~(aRrL/awh`;q/WESW">

    <field name="ATTR">val</field>

    <field name="OID">shelly.0.SHSW-PM#BA50C2#1.Relay0.Power</field>

    </block>

    </value>

    <next>

    <block type="controls_if" id="Nu*qu-T=mmS7]-6Uf!.f">

    <value name="IF0">

    <block type="logic_compare" id="JBUvFrLT|R!fu0Zh002i">

    <field name="OP">GTE</field>

    <value name="A">

    <block type="variables_get" id="r-oBggDM_:6L?~E!TqGb">

    <field name="VAR" id="lpH;YI/T(sC6n[fhfta1" variabletype="">P_Geschirrspueler_akt</field>

    </block>

    </value>

    <value name="B">

    <block type="math_number" id="7(L1]#ap}yTEM)r,bnk)">

    <field name="NUM">50</field>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="variables_set" id="6W^3.g_t5WC]eySp`iTu">

    <field name="VAR" id="Rqm%uv,~8MnTQRm!L@0?" variabletype="">B_Geschirrspueler_an</field>

    <value name="VALUE">

    <block type="logic_boolean" id="hu+MhSy[3IHk[BQw}PMi">

    <field name="BOOL">TRUE</field>

    </block>

    </value>

    </block>

    </statement>

    </block>

    </next>

    </block>

    </statement>

    <next>

    <block type="on_ext" id="AoXtR]Z=[0B28K2K-_hz">

    <mutation items="1"></mutation>

    <field name="CONDITION">ne</field>

    <field name="ACK_CONDITION"></field>

    <value name="OID0">

    <shadow type="field_oid" id="um43%0(OapU0nqyrtj/y">

    <field name="oid">shelly.0.SHSW-PM#BA50C2#1.Relay0.Power</field>

    </shadow>

    </value>

    <statement name="STATEMENT">

    <block type="variables_set" id="aVT)x),;Blig#[Ko(@nM">

    <field name="VAR" id="lpH;YI/T(sC6n[fhfta1" variabletype="">P_Geschirrspueler_akt</field>

    <value name="VALUE">

    <block type="get_value" id="oY3N,:*KwP7K#r=OM*.N">

    <field name="ATTR">val</field>

    <field name="OID">shelly.0.SHSW-PM#BA50C2#1.Relay0.Power</field>

    </block>

    </value>

    <next>

    <block type="controls_if" id="_;y-;Q}e_@NGee5IRx#P">

    <value name="IF0">

    <block type="logic_operation" id="=M)nQRR(Tmj+aH^$R$G?" inline="false">

    <field name="OP">AND</field>

    <value name="A">

    <block type="logic_compare" id="/[h+^L5`[QN0|9w*KG:4">

    <field name="OP">LT</field>

    <value name="A">

    <block type="variables_get" id="U{dz#*Bp*MFlVo%8w%Sl">

    <field name="VAR" id="lpH;YI/T(sC6n[fhfta1" variabletype="">P_Geschirrspueler_akt</field>

    </block>

    </value>

    <value name="B">

    <block type="math_number" id="xAIT__(4qq(2;cjG*~s(">

    <field name="NUM">2.8</field>

    </block>

    </value>

    </block>

    </value>

    <value name="B">

    <block type="logic_compare" id="}^x2HcWDJ7r+)dNi)H*m">

    <field name="OP">EQ</field>

    <value name="A">

    <block type="variables_get" id="NI,8@Ot)FtexlVJ(hnSl">

    <field name="VAR" id="Rqm%uv,~8MnTQRm!L@0?" variabletype="">B_Geschirrspueler_an</field>

    </block>

    </value>

    <value name="B">

    <block type="logic_boolean" id="H{cDSUwG8^N%oJ9eT~+x">

    <field name="BOOL">TRUE</field>

    </block>

    </value>

    </block>

    </value>

    </block>

    </value>

    <statement name="DO0">

    <block type="variables_set" id="DnO9cYAw@^d+UBGQayoN">

    <field name="VAR" id="Rqm%uv,~8MnTQRm!L@0?" variabletype="">B_Geschirrspueler_an</field>

    <value name="VALUE">

    <block type="logic_boolean" id="7U4$=^3uIy/dhFtU5aPN">

    <field name="BOOL">FALSE</field>

    </block>

    </value>

    <next>

    <block type="variables_set" id="Bmo#B(,a:1/3T@Ddp}?}">

    <field name="VAR" id="uqiq+JcQK,U:^VRd{i(C" variabletype="">Var_Counter_Tabs</field>

    <value name="VALUE">

    <block type="get_value" id="ZOf=8v$t=rm$Id49!Qwx">

    <field name="ATTR">val</field>

    <field name="OID">0_userdata.0.Var_Counter_Geschirrspültabs</field>

    </block>

    </value>

    <next>

    <block type="variables_set" id="k#{Ue6(;8h%p~|*~4[`*">

    <field name="VAR" id="uqiq+JcQK,U:^VRd{i(C" variabletype="">Var_Counter_Tabs</field>

    <value name="VALUE">

    <block type="math_arithmetic" id="Udx3xVl_C*ewI|Tn$yvn">

    <field name="OP">MINUS</field>

    <value name="A">

    <shadow type="math_number" id="/Zp;#,IV=/M$8xty(?7I">

    <field name="NUM">1</field>

    </shadow>

    <block type="variables_get" id="QW6NXtovxSn$!#y`ij2,">

    <field name="VAR" id="uqiq+JcQK,U:^VRd{i(C" variabletype="">Var_Counter_Tabs</field>

    </block>

    </value>

    <value name="B">

    <shadow type="math_number" id="ChE%hhlOm|MYdKvg2v.Z">

    <field name="NUM">1</field>

    </shadow>

    </value>

    </block>

    </value>

    <next>

    <block type="control" id="@b0h/uwOL]!?[4h3wqvl">

    <mutation delay_input="false"></mutation>

    <field name="OID">0_userdata.0.Var_Counter_Geschirrspültabs</field>

    <field name="WITH_DELAY">FALSE</field>

    <value name="VALUE">

    <block type="variables_get" id="S]dI*DjhY2pE;[3.r~oS">

    <field name="VAR" id="uqiq+JcQK,U:^VRd{i(C" variabletype="">Var_Counter_Tabs</field>

    </block>

    </value>

    <next>

    <block type="telegram" id="dbgFBvJ$phy$X[P^I#5K">

    <field name="INSTANCE"></field>

    <field name="LOG"></field>

    <field name="SILENT">FALSE</field>

    <field name="PARSEMODE">default</field>

    <value name="MESSAGE">

    <shadow type="text" id="M7AC{j?J._{Jky|~)+!B">

    <field name="TEXT">Geschirrspüler fertig</field>

    </shadow>

    </value>

    </block>

    </next>

    </block>

    </next>

    </block>

    </next>

    </block>

    </next>

    </block>

    </statement>

    </block>

    </next>

    </block>

    </statement>

    </block>

    </next>

    </block>

    </xml>

    Also so ganz genau kann ich dir das nicht sagen.

    Wenn du dich noch etwas gedulden kannst wird dir 66er sicher hier bald antworten und etwas Lichts ins Dunkeln bringen.

    Wusste ich bis eben auch nicht. Fakt ist jedoch ohne cuxd Installation auf der Ccu geht es ohne Original Software der shellys nicht.