Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. FoodFighter

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Profile
    • Following 0
    • Followers 0
    • Topics 9
    • Posts 93
    • Best 2
    • Groups 1

    FoodFighter

    @FoodFighter

    Starter

    2
    Reputation
    43
    Profile views
    93
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    FoodFighter Follow
    Starter

    Best posts made by FoodFighter

    • RE: [Adapter] Shelly Adapter mit MQTT

      Hallo,
      ich muss jetzt mal nachfragen, weil mir einiges nicht ganz klar ist.
      Zum Setup: ich nutze iobroker in einem Docker-Container (Bridge-Mode) , daher kommt mir die MQTT-Einstellung des Adapters sehr gelegen.
      Weiterhin nutze ich einen Moquitto MQTT Broker in einem weiterem Container auf Port 1883 (Standart). Über diesen laufen auch diverse andere MQTT-Geräte.

      Wenn ich nun alles richtig verstehe, macht der Shelly-Adapter einen eigenen MQTT-Server auf, sobald man MQTT aktiviert (default auf Port 1882).

      Es ist also nicht möglich die Shellies alle an einen bestehenden Broker senden zu lassen (in meinem falle Mosquitto) und gleichzeitig den Shelly-Adapter mit der MQTT Funktion zu nutzen - sehe ich das richtig?

      Ich möchte die Shellys weiterhin an Mosquitto senden lassen, da diese Daten u.U. noch von anderen Containern außer ioBroker verwendet werden sollen.
      Wenn ich dem Shelly-Adapter nun einfach Port 1883 zuweise und ihm das gleichen MQTT-User+Pwd zuweise, kommen keine Ergebnisse an. (Vermutlich weil der Port 1883 schon dem Mosquitto-Container zugewiesen ist).

      Ist es denn nicht möglich, dass sich dieser Shelly-Adapter die Daten einfach aus dem mqtt-client-Adapter raus zieht, welcher die Daten ja erfolgreich beim MQTT-Broker abholt? (Falls nein, wieso nicht?)

      [Edit]
      Bzw. wäre es machbar die Einstellungen derart zu erweitern, dass man den Shelly-Adapter zwischen MQTT-Server und Client umschalten könnte, für diejenigen, die den mqtt-client ohnehin schon für andere Geräte nutzen?
      [/Edit]

      COAP fällt in meinem Falle flach, wegen der Bridge-Einstellung, die ich so auch gerne beibehalten würde.

      Den Shelly-Adapter würde ich jedoch gerne zusätzlich zum bestehenden Mosquitto nutzen, da dieser Adapter doch einige Funktionen bietet, die das Arbeiten mit den Shellys in iobroker deutlich vereinfachen.

      [Edit]
      Was mir auch noch unklar scheint -> wenn man die Shellys per MQTT auf den Shelly-Adapter senden lässt, wird scheinbar die custom-MQTT-Prefix, die man im Shelly hinterlegt, ignoriert - ist das gewollt?

      Für Dumme steht es sogar in der github-repo, dass die Präfix nicht angepackt werden darf...

      posted in ioBroker Allgemein
      FoodFighter
      FoodFighter
    • RE: [gelöst] Telegram ChatID+MsgID von Bot-Empfängern speichern

      @mcu
      Jawoll....manchmal sieht man den Wald wirklich nicht mehr 🤦‍♂️

      Mir kam die gleiche Idee auch gerade.

      So funktioniert alles:
      Screenshot 2021-03-15 18.31.08.png

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="l/Hhs}-OqimAs![DYo.E">callbackquerytext</variable>
          <variable id="@Ge$`9Uzwc7wh3bOp,|s">ChatID_Markus</variable>
          <variable id="UjOxi^;`~CUn-}-P3@b,">ChatID_Johanna</variable>
          <variable type="timeout" id="timeout">timeout</variable>
          <variable type="timeout" id="timeout2">timeout2</variable>
          <variable id="tSZlb72TXQF59Ip}bblm">last_sender_name</variable>
          <variable id="/z$M|cJ8NyfG~@5RN0hr">last_received_request</variable>
        </variables>
        <block type="procedures_defcustomnoreturn" id="`qTJ-;y={AJ[sVdW~f1/" x="288" y="-738">
          <mutation statements="false">
            <arg name="callbackquerytext" varid="l/Hhs}-OqimAs![DYo.E"></arg>
          </mutation>
          <field name="NAME">answercallbackquerymittext</field>
          <field name="SCRIPT">c2VuZFRvKCd0ZWxlZ3JhbS4wJywgew0KICAgIC8vY2hhdElkIGZ1bmt0aW9uaWVydCBuaWNodCAtIHN0YW5kIDAzLzIwMjENCiAgICAvL2NoYXRJZDogZ2V0U3RhdGUoInRlbGVncmFtLjEuY29tbXVuaWNhdGUucmVxdWVzdENoYXRJZCIpLnZhbCwNCiAgICB1c2VyOiBsYXN0X3NlbmRlcl9uYW1lLA0KICAgIGFuc3dlckNhbGxiYWNrUXVlcnk6IHsNCiAgICAgICAgdGV4dDogY2FsbGJhY2txdWVyeXRleHQsDQogICAgICAgIHNob3dBbGVydDogdHJ1ZSAvLyBPcHRpb25hbCBwYXJhbWV0ZXINCiAgICB9DQp9KTs=</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        </block>
        <block type="comment" id="l.5HJmvKSgDhA/k(8Nd#" x="913" y="-763">
          <field name="COMMENT">Sende Nachricht bei Script-Start</field>
          <next>
            <block type="variables_set" id="@t{pxlyH:czXCd;~Z`Ma">
              <field name="VAR" id="@Ge$`9Uzwc7wh3bOp,|s">ChatID_Markus</field>
              <value name="VALUE">
                <block type="math_number" id="v|y]y2EGL1KnMvxYcwB8">
                  <field name="NUM">***4560</field>
                </block>
              </value>
              <next>
                <block type="variables_set" id="iN3z`25~U}EWqDOTM-}6">
                  <field name="VAR" id="UjOxi^;`~CUn-}-P3@b,">ChatID_Johanna</field>
                  <value name="VALUE">
                    <block type="math_number" id="_,;VGj8otq$H!F2-P|~F">
                      <field name="NUM">***5521</field>
                    </block>
                  </value>
                  <next>
                    <block type="procedures_callcustomnoreturn" id="8~%wcY?B-a.zVb4v[S!%">
                      <mutation name="Telegram_Abfrage_Markus_Wäsche_aufgehängt"></mutation>
                      <next>
                        <block type="timeouts_settimeout" id="o2AbY~WZhS3ZyRMoUL_6">
                          <field name="NAME">timeout</field>
                          <field name="DELAY">500</field>
                          <field name="UNIT">ms</field>
                          <statement name="STATEMENT">
                            <block type="control" id="%B8Tr6lvVk|Y:v4)}iix">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">0_userdata.0.Waschmaschine.WäscheAufgehängtLastBotSendMsgIDToMarkus</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="get_value" id="+s?KL2_-miQG9S$/}~`d">
                                  <field name="ATTR">val</field>
                                  <field name="OID">telegram.0.communicate.botSendMessageId</field>
                                </block>
                              </value>
                              <next>
                                <block type="procedures_callcustomnoreturn" id="{yX1vaY/(n;ylP$w*H-p">
                                  <mutation name="Telegram_Abfrage_Johanna_Wäsche_aufgehängt"></mutation>
                                  <next>
                                    <block type="timeouts_settimeout" id="im$4/bNRAHOBfbF|*9EB">
                                      <field name="NAME">timeout2</field>
                                      <field name="DELAY">500</field>
                                      <field name="UNIT">ms</field>
                                      <statement name="STATEMENT">
                                        <block type="control" id="3yPljD9h5,J/7jDzhwFq">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                          <field name="OID">0_userdata.0.Waschmaschine.WäscheAufgehängtLastBotSendMsgIDToJohanna</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE">
                                            <block type="get_value" id="X18Sgs0-%F[dbOh@mxyt">
                                              <field name="ATTR">val</field>
                                              <field name="OID">telegram.0.communicate.botSendMessageId</field>
                                            </block>
                                          </value>
                                        </block>
                                      </statement>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </statement>
                          <next>
                            <block type="comment" id="|]aZ}%yY]V}BYG3N1v~p">
                              <field name="COMMENT">Abarbeitung der Telegram-Requests</field>
                              <next>
                                <block type="on_ext" id="(v7Rvt%da+1+}1OIu5U;">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                  <field name="CONDITION">any</field>
                                  <field name="ACK_CONDITION"></field>
                                  <value name="OID0">
                                    <shadow type="field_oid" id="blC:9%UTQ2jY@Z#lx{@~">
                                      <field name="oid">telegram.0.communicate.request</field>
                                    </shadow>
                                  </value>
                                  <statement name="STATEMENT">
                                    <block type="comment" id="%Q7KMMnYYJxR(xO1cFuZ">
                                      <field name="COMMENT">Variablen verarbeiten</field>
                                      <next>
                                        <block type="variables_set" id="@05QF)c1s~CvvQSRNtAI" collapsed="true">
                                          <field name="VAR" id="tSZlb72TXQF59Ip}bblm">last_sender_name</field>
                                          <value name="VALUE">
                                            <block type="text_getSubstring" id="JP^UEo5`~=)JxXGC+#w)" inline="false">
                                              <mutation at1="true" at2="true"></mutation>
                                              <field name="WHERE1">FROM_START</field>
                                              <field name="WHERE2">FROM_START</field>
                                              <value name="STRING">
                                                <block type="on_source" id="byETLC8e~w]`;mXmqna!">
                                                  <field name="ATTR">state.val</field>
                                                </block>
                                              </value>
                                              <value name="AT1">
                                                <block type="math_number" id="}?Msw=(W[QvfHPSPXW![">
                                                  <field name="NUM">2</field>
                                                </block>
                                              </value>
                                              <value name="AT2">
                                                <block type="math_arithmetic" id="2Z8KU~r:/AnJS]Yes,td" inline="false">
                                                  <field name="OP">MINUS</field>
                                                  <value name="A">
                                                    <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number">
                                                      <field name="NUM">1</field>
                                                    </shadow>
                                                    <block type="text_indexOf" id="wCMjeY!P]5e%(C1sV:Ep">
                                                      <field name="END">FIRST</field>
                                                      <value name="VALUE">
                                                        <block type="on_source" id="WI2G7cig)r*D_0V|`E_b">
                                                          <field name="ATTR">state.val</field>
                                                        </block>
                                                      </value>
                                                      <value name="FIND">
                                                        <shadow xmlns="http://www.w3.org/1999/xhtml" type="text">
                                                          <field name="TEXT">abc</field>
                                                        </shadow>
                                                        <block type="text" id="2CQjCKzN5$pjdtvq]T7^">
                                                          <field name="TEXT">]</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                  <value name="B">
                                                    <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number">
                                                      <field name="NUM">1</field>
                                                    </shadow>
                                                    <block type="math_number" id="Re)p[9LE1hB?vJTO]YEU">
                                                      <field name="NUM">1</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="debug" id="_B6dl|IVt|VYXH(Mm=Zg" inline="true" collapsed="true">
                                              <field name="Severity">log</field>
                                              <value name="TEXT">
                                                <shadow type="text">
                                                  <field name="TEXT">test</field>
                                                </shadow>
                                                <block type="text_join" id="EpwR$`2%0-`V4;m~{zPe" inline="true">
                                                  <mutation items="2"></mutation>
                                                  <value name="ADD0">
                                                    <block type="text" id="JMg%*Mp!M]5k|_;e=?U$">
                                                      <field name="TEXT">***last_sender_name: </field>
                                                    </block>
                                                  </value>
                                                  <value name="ADD1">
                                                    <block type="variables_get" id="l2%%t/#%DGqz(,1dJRF5">
                                                      <field name="VAR" id="tSZlb72TXQF59Ip}bblm">last_sender_name</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                              <next>
                                                <block type="variables_set" id="gVCtKgem;;f?9/.3!!7(" collapsed="true">
                                                  <field name="VAR" id="/z$M|cJ8NyfG~@5RN0hr">last_received_request</field>
                                                  <value name="VALUE">
                                                    <block type="text_getSubstring" id="i5eWSB[+aMfC#$e8Poh;" inline="false">
                                                      <mutation at1="true" at2="false"></mutation>
                                                      <field name="WHERE1">FROM_START</field>
                                                      <field name="WHERE2">LAST</field>
                                                      <value name="STRING">
                                                        <block type="on_source" id="x.S63u%:c%zb?9VXZK7l">
                                                          <field name="ATTR">state.val</field>
                                                        </block>
                                                      </value>
                                                      <value name="AT1">
                                                        <block type="math_arithmetic" id="AJ~SAHp@;WP!9x2Ec)bp" inline="false">
                                                          <field name="OP">ADD</field>
                                                          <value name="A">
                                                            <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number">
                                                              <field name="NUM">1</field>
                                                            </shadow>
                                                            <block type="text_indexOf" id="d},vOvJ?$skVE@SaxrEp" inline="false">
                                                              <field name="END">FIRST</field>
                                                              <value name="VALUE">
                                                                <block type="on_source" id="G1:,tnL1Me^FpPM,DRj{">
                                                                  <field name="ATTR">state.val</field>
                                                                </block>
                                                              </value>
                                                              <value name="FIND">
                                                                <shadow xmlns="http://www.w3.org/1999/xhtml" type="text">
                                                                  <field name="TEXT">abc</field>
                                                                </shadow>
                                                                <block type="text" id="ok)Zh69Ds4XsXpm:7!{!">
                                                                  <field name="TEXT">]</field>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                          <value name="B">
                                                            <shadow xmlns="http://www.w3.org/1999/xhtml" type="math_number">
                                                              <field name="NUM">1</field>
                                                            </shadow>
                                                            <block type="math_number" id="UOLiY%(e5NVj3-CkuqFY">
                                                              <field name="NUM">1</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="debug" id="GJOcG8p0H9LEzoMU{A07" inline="true" collapsed="true">
                                                      <field name="Severity">log</field>
                                                      <value name="TEXT">
                                                        <shadow type="text">
                                                          <field name="TEXT">test</field>
                                                        </shadow>
                                                        <block type="text_join" id="x3v??K^S*u{.EXX|Ea9r" inline="true">
                                                          <mutation items="2"></mutation>
                                                          <value name="ADD0">
                                                            <block type="text" id="6%E~Mfe`m)UvGXwj2CQ{">
                                                              <field name="TEXT">***last_received_request: </field>
                                                            </block>
                                                          </value>
                                                          <value name="ADD1">
                                                            <block type="variables_get" id="AmX#Ajim8sF`e/wKxgYF">
                                                              <field name="VAR" id="/z$M|cJ8NyfG~@5RN0hr">last_received_request</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <next>
                                                        <block type="comment" id=";;/H{UC!K`AccYBLrbaV">
                                                          <field name="COMMENT">### Verarbeitung ###</field>
                                                          <next>
                                                            <block type="controls_if" id="`W9kjvMAvYe2l1lH4;}7">
                                                              <mutation elseif="1"></mutation>
                                                              <value name="IF0">
                                                                <block type="logic_compare" id="/e$G{#tEL7c42?zJMfC)">
                                                                  <field name="OP">EQ</field>
                                                                  <value name="A">
                                                                    <block type="variables_get" id="K;___=jmMpr.Z|F7svO|">
                                                                      <field name="VAR" id="/z$M|cJ8NyfG~@5RN0hr">last_received_request</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="text" id="UEIRsAWNKBn~d^a3wi=|">
                                                                      <field name="TEXT">Wäsche_Wurde_AufgehängtJa</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <statement name="DO0">
                                                                <block type="procedures_callcustomnoreturn" id="V0fEr,CAW0xVJ7-%9UbQ">
                                                                  <mutation name="Telegram_Antwort_Wäsche_aufgehängt"></mutation>
                                                                  <next>
                                                                    <block type="procedures_callcustomnoreturn" id="iA;,Ns.DTMU*_GPnh]N+">
                                                                      <mutation name="answercallbackquerymittext">
                                                                        <arg name="callbackquerytext"></arg>
                                                                      </mutation>
                                                                      <value name="ARG0">
                                                                        <block type="text" id="d983t4(7APF?R}0Qah4b">
                                                                          <field name="TEXT">Sehr schön! 😊</field>
                                                                        </block>
                                                                      </value>
                                                                    </block>
                                                                  </next>
                                                                </block>
                                                              </statement>
                                                              <value name="IF1">
                                                                <block type="logic_compare" id="y#x@)wrX,@?KxjQ7b.-N">
                                                                  <field name="OP">EQ</field>
                                                                  <value name="A">
                                                                    <block type="variables_get" id="{g;.+Nn=2wZyLb#vZn_p">
                                                                      <field name="VAR" id="/z$M|cJ8NyfG~@5RN0hr">last_received_request</field>
                                                                    </block>
                                                                  </value>
                                                                  <value name="B">
                                                                    <block type="text" id="IUO~}-[q/yo^R0HDz(|,">
                                                                      <field name="TEXT">Wäsche_Wurde_AufgehängtNein</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </value>
                                                              <statement name="DO1">
                                                                <block type="procedures_callcustomnoreturn" id="=+Vc/kRL{O*qs/Bd_f@z">
                                                                  <mutation name="answercallbackquerymittext">
                                                                    <arg name="callbackquerytext"></arg>
                                                                  </mutation>
                                                                  <value name="ARG0">
                                                                    <block type="text" id="`C2fGg|`dMvK)G98%`WC">
                                                                      <field name="TEXT">Tjoar..dann eben nicht 🤷</field>
                                                                    </block>
                                                                  </value>
                                                                </block>
                                                              </statement>
                                                            </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>
        <block type="procedures_defcustomnoreturn" id="m()l~;8~p9[=w2(I|U|k" x="288" y="-687">
          <mutation statements="false"></mutation>
          <field name="NAME">Telegram_Abfrage_Markus_Wäsche_aufgehängt</field>
          <field name="SCRIPT">Ly8gU2VuZGV0IGVpbiBCdXR0b24tTWVuw7wgw7xiZXIgZGVuIFRlbGVncmFtLUJvdA0KY29uc29sZS5sb2coJyoqKlRlbGVncmFtOiBXdXJkZSBkaWUgV8Okc2NoZSBhdWZnZWjDpG5ndD8nKTsNCnNlbmRUbygndGVsZWdyYW0uMCcsIHsNCiAgICBjaGF0SWQ6IENoYXRJRF9NYXJrdXMsDQogICAgdGV4dDogIld1cmRlIGRpZSBXw6RzY2hlIGF1ZmdlaMOkbmd0PyIsDQogICAgcmVwbHlfbWFya3VwOiB7DQogICAgICAgIGlubGluZV9rZXlib2FyZDogWw0KICAgICAgICAgICAgW3sgdGV4dDogJ0phJywgY2FsbGJhY2tfZGF0YTogJ1fDpHNjaGVfV3VyZGVfQXVmZ2Vow6RuZ3RKYScgfSx7IHRleHQ6ICdOZWluJywgY2FsbGJhY2tfZGF0YTogJ1fDpHNjaGVfV3VyZGVfQXVmZ2Vow6RuZ3ROZWluJyB9XSwNCiAgICAgICAgXQ0KICAgIH0NCn0pOw==</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        </block>
        <block type="procedures_defcustomnoreturn" id="D)k`HZIn/HRvQ/*G(4_~" x="288" y="-663">
          <mutation statements="false"></mutation>
          <field name="NAME">Telegram_Abfrage_Johanna_Wäsche_aufgehängt</field>
          <field name="SCRIPT">Ly8gU2VuZGV0IGVpbiBCdXR0b24tTWVuw7wgw7xiZXIgZGVuIFRlbGVncmFtLUJvdA0KY29uc29sZS5sb2coJyoqKlRlbGVncmFtOiBXdXJkZSBkaWUgV8Okc2NoZSBhdWZnZWjDpG5ndD8nKTsNCnNlbmRUbygndGVsZWdyYW0uMCcsIHsNCiAgICBjaGF0SWQ6IENoYXRJRF9Kb2hhbm5hLA0KICAgIHRleHQ6ICJXdXJkZSBkaWUgV8Okc2NoZSBhdWZnZWjDpG5ndD8iLA0KICAgIHJlcGx5X21hcmt1cDogew0KICAgICAgICBpbmxpbmVfa2V5Ym9hcmQ6IFsNCiAgICAgICAgICAgIFt7IHRleHQ6ICdKYScsIGNhbGxiYWNrX2RhdGE6ICdXw6RzY2hlX1d1cmRlX0F1ZmdlaMOkbmd0SmEnIH0seyB0ZXh0OiAnTmVpbicsIGNhbGxiYWNrX2RhdGE6ICdXw6RzY2hlX1d1cmRlX0F1ZmdlaMOkbmd0TmVpbicgfV0sDQogICAgICAgIF0NCiAgICB9DQp9KTs=</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        </block>
        <block type="procedures_defcustomnoreturn" id="Qt[{0Ir(rV]7ah:NrW=S" x="288" y="-613">
          <mutation statements="false"></mutation>
          <field name="NAME">Telegram_Antwort_Wäsche_aufgehängt</field>
          <field name="SCRIPT">Ly8gTMO2c2NoZSBkaWUgQnV0dG9ucyBiZWkgYWxsZW4gVXNlcm4NCmNvbnNvbGUubG9nKCcqKipUZWxlZ3JhbTogRGllIFfDpHNjaGUgd3VyZGUgYXVmZ2Vow6RuZ3QhJyk7DQoNCi8vIFp1ZXJzdCBiZWkgTWFya3VzDQpzZW5kVG8oJ3RlbGVncmFtLjAnLCB7DQogICAgdGV4dDogJ0RpZSBXw6RzY2hlIHd1cmRlIGF1ZmdlaMOkbmd0IScsDQogICAgZWRpdE1lc3NhZ2VUZXh0OiB7DQogICAgICAgIG9wdGlvbnM6IHsNCiAgICAgICAgICAgIGNoYXRfaWQ6IENoYXRJRF9NYXJrdXMsDQogICAgICAgICAgICBtZXNzYWdlX2lkOiBnZXRTdGF0ZSgiMF91c2VyZGF0YS4wLldhc2NobWFzY2hpbmUuV8Okc2NoZUF1ZmdlaMOkbmd0TGFzdEJvdFNlbmRNc2dJRFRvTWFya3VzIikudmFsDQogICAgICAgIH0NCiAgICB9DQp9KTsNCg0KLy8gRGFubiBiZWkgSm9oYW5uYQ0Kc2VuZFRvKCd0ZWxlZ3JhbS4wJywgew0KICAgIHRleHQ6ICdEaWUgV8Okc2NoZSB3dXJkZSBhdWZnZWjDpG5ndCEnLA0KICAgIGVkaXRNZXNzYWdlVGV4dDogew0KICAgICAgICBvcHRpb25zOiB7DQogICAgICAgICAgICBjaGF0X2lkOiBDaGF0SURfSm9oYW5uYSwNCiAgICAgICAgICAgIG1lc3NhZ2VfaWQ6IGdldFN0YXRlKCIwX3VzZXJkYXRhLjAuV2FzY2htYXNjaGluZS5Xw6RzY2hlQXVmZ2Vow6RuZ3RMYXN0Qm90U2VuZE1zZ0lEVG9Kb2hhbm5hIikudmFsDQogICAgICAgIH0NCiAgICB9DQp9KTsNCg==</field>
          <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
        </block>
      </xml>
      

      Nicht sonderlich "schön" gelöst, aber funktioniert.

      Vielen Dank für eure Hilfe!

      posted in Skripten / Logik
      FoodFighter
      FoodFighter

    Latest posts made by FoodFighter

    • RE: [gelöst]vis-Materialdesign Icon List-Rahmen einzelner Button

      Von hinten durch die Brust...aber funktioniert:

      Als CSS-Klasse im Widget hinterlegt:

      {v:0_userdata.0.Test_BOOL;v=="true" ? "FoFi_VacControl_I2gn" : "FoFi_VacControl"}
      

      Im CSS:

      .FoFi_VacControl .materialdesign-icon-list-item,
      .FoFi_VacControl_I2gn .materialdesign-icon-list-item{
          height: 40px !important;
      }
      
      .FoFi_VacControl_I2gn #icon-list-item2 .materialdesign-button{
          border: 3px solid #4CAF50 !important;
      }
      

      Wirkt etwas unelegant auf mich...aber sei's drum.
      Falls jemand einen "schöneren" weg kennt als die ganze CSS-Klasse umzuschalten - gerne mitteilen 🙂

      posted in Visualisierung
      FoodFighter
      FoodFighter
    • RE: [gelöst]vis-Materialdesign Icon List-Rahmen einzelner Button

      @foodfighter

      Okay...ich denke ich bin durch Zufall doch weiter gekommen.
      (War mehr "raten" als "verstehen" und hat nen Tag gedauert - mea culpa)

      Das Widget hat die CSS-Klasse "FoFi_VacControl" bekommen.
      mit folgendem CSS-Code klappt es den Elementen eine feste Höhe von 60px zuzuweisen und einen einzelnen Rahmen (den vom Item 2 = unten links) einzufärben

      .FoFi_VacControl .materialdesign-icon-list-item{
          height: 60px !important;
      }
      .FoFi_VacControl #icon-list-item2 .materialdesign-button{
          border: 5px solid #00ff00 !important;
      }
      

      Nun bleibt nur noch die Frage, wie ich den zweiten Teil abhängig von einer Objekt-Variable machen könnte
      Der Rahmen soll erst dann 5px breit und grün werden, wenn der Robo auch in der Ladestation steht.

      Innerhalb der Widget-Eingabefelder kann man das über

      {v:0_userdata.0.Test_BOOL;v=="true" ? "00ff00" : "#000000"}
      

      lösen - doch wie baut man diesen String in eine CSS ein (geht das überhaupt)?

      posted in Visualisierung
      FoodFighter
      FoodFighter
    • RE: Material Design Widgets: IconList Widget

      @dos1973
      du könntest unter "CSS-Allgemein > width" die Breite der Widget-Tabelle festlegen.
      Hast du das schon probiert?

      posted in Visualisierung
      FoodFighter
      FoodFighter
    • [gelöst]vis-Materialdesign Icon List-Rahmen einzelner Button

      Ich stoße wieder an die Grenzen meiner "CSS-Skills" - vielleicht hat hier jemand eine fixe Idee für mich:

      Wie kann man den Rahmen eines einzelnen Buttons der materialdesign Icon List farblich ändern?

      Konkret:
      Ich habe hier als Notlösung das Home-Symbol eingefärbt, sobald der Staubsauger in der Ladestation steht.
      10c17971-ccfc-4c4e-8dc7-05981439b04e-image.png

      Lieber wär's mir allerdings, wenn um den Home-Button ein grüner Rahmen mit entsprechender Pixelbreite erscheinen würde, sobald der entsprechende State gesetzt ist.
      Wie stellt man das am besten an?🤔

      Und weiterhin: wie/wo legt man die Höhe der Buttons fest?
      Die Höhe aller Buttons in einer Zeile ändert sich, wenn man z.B. eine "Beschriftung" oder einen "zweiten Text" in den Button packt.
      Wenn nun die anderen Buttons (ohne Text) in einer anderen Zeile die gleiche Höhe haben sollen, müsste man die irgendwie/irgendwo fest definieren.
      Das geht gewiss auch per CSS -> nur wie?

      Danke vorweg.

      posted in Visualisierung
      FoodFighter
      FoodFighter
    • RE: Backitup GoogleDrive Sicherungspfad falsch

      @simatec
      Das ist korrekt und funktioniert auch inkl. Unterordner.
      (Siehe Versuch 6, 7 und 9)

      Das Problem bleibt aber weiterhin, dass es nirgends anders im kompletten GDrive einen Unterordner geben darf, der den gleichen Namen trägt, wie der erste Ordner in der Pfadangabe des Adapters.

      Ich habe es nun mit sauberen Instanzen und einem frischen Google-Konto reproduziert.
      Default ist hier "/backupDir" eingetragen.
      Das der Name per se macht aber überhaupt keinen Unterschied.
      Wenn ich nun im Google-Konto einen Ordner "TESTmichMal/backupDir/" anlege, landen die Backups dort zukünftig, nicht mehr unter "/backupDir", obwohl diese Einstellung im Adapter unangetastet bleibt)

      Weiterhin habe ich mal versucht das Phänomen mit einer anderen App, bei der man den Pfad festlegen kann, zu reproduzieren:
      (Android - Autosync for Google Drive)

      Folgendes getan:

      1. einen Sync-Ordner auf dem Android-gerät angelegt
      2. den Sync-Ordner "~root~/DriveSyncFiles" im GDrive angelegt
      3. Sync mit einer Datei gestartet
      4. -> diese landet korrekt unter
      ~root~/DriveSyncFiles
      
      1. einen neuen Ordner im GDrive erstellt, der einen gleichnamigen Unterordner zum Vorgänger enthält:
      ~root~/TEST000/DriveSyncFiles
      
      1. eine neue Datei über die App synchronisiert
      2. diese landet wieder korrekt unter
      ~root~/DriveSyncFiles
      

      NICHT unter

      ~root~/TEST000/DriveSyncFiles
      

      und genau hierbei unterscheidet sich das Verhalten dieser App und des BackItUp-Adapters.

      ...das ist natürlich wenig aussagekräftig, da ich weder weiß wie die "Autosync for Google Drive"-App ihren Upload zu GoogleDrive ausführt, noch habe ich den Quelltext des Backitup-Adapters studiert
      ...was ich damit aber aufzeigen möchte ist, dass es scheinbar anders geht...bzw. andere Applikationen dieses Phänomen nicht hervorrufen (und es damit wohl nicht ausschließlich an Google liegen kann).

      Ich meine das auch gar nicht bös...ICH komme auch mit dem Workaround klar einen eindeutigen Ordnerpfad für das iobroker-Backup zu vergeben, der nirgends anders in einer Unterstruktur meines Google Drives auftaucht...langfristig ist man als Entwickler aber doch m.A.n. daran interessiert solche (wenn auch maginalen) Fehlerchen auszumerzen.

      posted in ioBroker Allgemein
      FoodFighter
      FoodFighter
    • RE: Backitup GoogleDrive Sicherungspfad falsch

      FYI
      Ich kann das Phänomen mit einer zweiten (komplett neuen) Backitup-Instanz und einem komplett frischen, zweiten Test-Google-Konto reproduzieren.

      Ich habe den issue bei github mal gemeldet, scheinbar liegt's wohl an Google (wie erwartet)
      https://github.com/simatec/ioBroker.backitup/issues/742

      Bodengriller created this issue in simatec/ioBroker.backitup

      closed Google Drive backup ends up in the wrong subfolder #742

      posted in ioBroker Allgemein
      FoodFighter
      FoodFighter
    • RE: Backitup GoogleDrive Sicherungspfad falsch

      Siehe oben:

      In der Tasker-App kann man übrigens keinen Pfad einstellen, hier gibt's nur die Möglichkeit auszuwählen, ob ein Backup gemacht werden soll oder nicht. ... das nur zur Info - hat hier nichts verloren.
      Screenshot_20220822-094524_Tasker.jpg
      Screenshot_20220822-094503_Tasker.jpg

      Ich habe das Taskerbackup nun testweise komplett deaktiviert, die Freigabe entfernt und den Ordner "Tasker" temporär gesichert und im Google-Drive gelöscht.
      -.--------------------------------------------------------------
      Versuch 10:
      Einstellung im Adapter wieder auf

      /Backups/iobroker
      

      geändert

      Das Backup landet wieder korrekt im Google-Drive bei

      ~root~/Backups/iobroker
      

      -.--------------------------------------------------------------

      Das brachte mich auf folgende Idee:

      Versuch 11:
      Manuell neuen Ordner "~root~/TEST/backups" in GDrive angelegt
      Versuch 10 wiederholt
      -> siehe da...nun landet das Backup mit der Einstellung

      /Backups/iobroker
      

      im GoogleDrive unter

      ~root~/TEST/backups/iobroker
      

      31d73f30-0ca2-4e08-970d-6aea577332bb-image.png

      Und das scheint das ganze Geheimnis zu sein. 😲

      Sobald ein Ordner existiert (und vermutlich neuer ist), der einen Unterordner "backups" oder "Backups" enthält, wird das BackItUp-Backup darein geworfen.
      Also muss der erste Ordner der Pfadangabe im Adapter eindeutig sein bzw. folgender Teil darf nirgends anders im GDrive als Unterordner existieren:
      4455fbaa-0403-4f4d-85cd-455cb1134e80-image.png

      Versuch 11 könnte ja mal jemand wiederholen und Rückmeldung geben, ob das Verhalten bei ihm identisch ist (natürlich mit dem entsprechendem Unterordner, der bei ihm im Adapter als "Hauptordner" hinterlegt ist)

      posted in ioBroker Allgemein
      FoodFighter
      FoodFighter
    • RE: Backitup GoogleDrive Sicherungspfad falsch

      @djmarc75
      Prinzipiell nachvollziehbar, allerdings stehe ich doch als Eigentümer in den Dateien auf dem GoogleDrive
      4e5846dc-f8a9-4b42-867f-5f2b854af86e-image.png

      Daher sollte der Adapter doch gar nicht auslesen können, was von ihm kommt und was von mir manuell hinzugefügt wurde?!

      Speichert sich der Adapter selbst nochmal (lokal) die von ihm upgeloadeten Filenames irgendwo ab für den Vergleich der letzten X Backups?

      (Das ist nichts, was mich grundlegend stört....ganz im Gegenteil)

      Ändert aber nichts daran, dass (bei mir jedenfalls) irgendwas mit dem Upload-Ziel nicht richtig funktioniert.
      Vermutlich liegts wirklich weniger am Adapter selbst als an irgend ner verkorksten Google-Schnittstelle

      posted in ioBroker Allgemein
      FoodFighter
      FoodFighter
    • RE: Backitup GoogleDrive Sicherungspfad falsch

      Ich habe nun mit den Einstellungen im BackItUp-Adapter gespielt und komme zu folgendem Ergebnis:

      Ausgangssituation:
      Einstellung:

      /Backups/iobroker
      

      Landet im Google-Drive (falsch) unter

      ~root~/Tasker/data/backups/iobroker
      

      -.--------------------------------------------------------------
      Einstellungsänderung 1:

      ./Backups/iobroker
      

      Landet im Google-Drive (korrekt) unter

      ~root~/./Backups/iobroker
      

      -.--------------------------------------------------------------
      Einstellungsänderung 2:

      Backups/iobroker
      

      Landet im Google-Drive (wieder falsch) unter

      ~root~/./Backups/iobroker
      

      -.--------------------------------------------------------------
      Einstellungsänderung 3 (quasi wieder die Ausgangssituation):

      /Backups/iobroker
      

      Landet im Google-Drive (auch wieder falsch) unter

      ~root~/./Backups/iobroker
      

      -.--------------------------------------------------------------
      Versuch 4: Den Ordner "Backups" im Google-Drive-Rootverzeichnis umbenannt in "BackupsAlt", Versuch 3 wiederholt:
      Landet im Google-Drive (auch wieder falsch) unter

      ~root~/./Backups/iobroker
      

      -.--------------------------------------------------------------
      Einstellungsänderung 5:

      /backups/iobroker
      

      Landet im Google-Drive (auch wieder falsch) unter

      ~root~/./Backups/iobroker
      

      -.--------------------------------------------------------------
      Einstellungsänderung 6:

      /BackupsNeu/iobroker
      

      Landet im Google-Drive (prinzipiell richtig) unter

      ~root~/BackupsNeu/iobroker
      

      -.--------------------------------------------------------------
      Versuch 7:
      "BackupsNeu" im GoogleDrive zu "Backups" umbenannt
      Einstellung 7 (unverändert zu Versuch 6):

      /BackupsNeu/iobroker
      

      Landet im Google-Drive unter ("BackupsNeu" wird wieder neu erstellt)

      ~root~/BackupsNeu/iobroker
      

      -.--------------------------------------------------------------
      Versuch 8:
      "Backups" (ehemals "BackupsNeu") in Google-Drive gelöscht
      Einstellungsänderung 8 (quasi Ausgangssituation):

      /Backups/iobroker
      

      Landet im Google-Drive (wieder falsch) unter

      ~root~/./Backups/iobroker
      

      (Erwartet hätte ich hier den Pfad ~root~/BackupsNeu/iobroker)
      -.--------------------------------------------------------------
      Versuch 9:
      Die temporären Ordner "BackupsNeu" und "." gelöscht
      Einstellungsänderung 9:

      /0_Backups/iobroker
      

      Landet im Google-Drive (korrekt) unter

      ~root~/0_Backups/iobroker
      

      -.--------------------------------------------------------------

      Dabei bleibe ich nun.
      Ich verschiebe einfach alles aus dem alten Ordner ~root~/Backups nach ~root~/0_Backups

      Das ist zwar auch nur ein Workaround, aber damit kann ich erstmal leben.

      Hier gibt's noch eine interessante Beobachtung:
      Der Adapter realisiert scheinbar die alten Backups nicht als solche und löscht sie daher nicht:
      4f041854-3a65-44ac-a80c-5142f11528a7-image.png
      eb8713d7-a433-47a1-8999-35d3ed3a9cc1-image.png
      Aufheben sollte der Adapter nur die letzten 7 Backups....allerdings bleiben hier die ganzen alten Backups (die ich manuell im Google-Drive vom alten "Backups"-Ordner in diesen "0_Backups" kopiert habe bis zum 22.06. generell erhalten.)

      M.E. ist hier irgendwas im Busch 🤔
      Vielleicht ist's einfach vielen noch nicht aufgefallen....oder ist bei mir irgendwas komplett faul?

      posted in ioBroker Allgemein
      FoodFighter
      FoodFighter
    • RE: Backitup GoogleDrive Sicherungspfad falsch

      @meister-mopper
      Könnte auch ein Hinweis sein...
      Wäre aber ein komischer Zufall...bei mir passt das Verhalten definitiv zur Aktivierung des Tasker-Backups bzw. die Google-Freigabe für die App.

      mich wundert es mehr, dass ich plötzlich in

      ~root~/Tasker/data/backups/iobroker
      

      lande, obwohl es nach

      ~root~/Backups/iobroker
      

      soll.

      in der Backitup-Einstellung hinterlegt man den Ordner auch mit

      /Backups/iobroker
      

      fehlt hier vielleicht einfach der Verweis aufs Root-Verzeichnis?

      ./Backups/iobroker
      

      bzw. befindet sich der Pointer nach Anmeldung bei Google vielleicht einfach im letzten angesprungenen Verzeichnis und müsste zurück gesetzt werden?

      was würde mit

      ../../Backups/iobroker
      

      in der Backitup-Einstellung passieren?

      (Ich möchte es zwecks evtl. dienlicher Logs gerade nicht testen)

      posted in ioBroker Allgemein
      FoodFighter
      FoodFighter
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo