Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Einlesen von Email-Adressen aus iCal-Adapter

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Einlesen von Email-Adressen aus iCal-Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      tobsch72 last edited by

      Hallo,

      ich suche eine Möglichkeit einen String aus einem Google-Kalender in einen eigenen Datenpunkt zu schreiben.

      Folgendes Anwendungsszenario besteht: Ich konfiguriere hier einen ioBroker für meinen Onkel, der Zimmer/Whg zeitweise vermietet. Im Googlekalender würde dann als ganztägiger Termin eine Email-Adresse des Gastes stehen. Diese Email-Adresse bräuchte ich für die weitere Verwendung im ioBroker (soll später mit dem Email-Adapter verwendet werden) zu Abrechnungszwecken.

      Jetzt habe ich mir den iCal-Adapter soweit mal angeschaut, da kommen aber alle Einträge nur als html o.ä., jedenfalls stehen deutlich mehr Infos in dem html als nur die reine Email-Adresse. Der Termin ist so angelegt, dass der Titel rein die Email-Adresse ist.

      Kann ich die irgendwie da raus bekommen? Oder denk ich zu kompliziert und es gibt eine viel einfachere Lösung dafür?

      Viele Grüße
      Tobias

      T David G. haus-automatisierung 3 Replies Last reply Reply Quote 0
      • T
        TT-Tom @tobsch72 last edited by TT-Tom

        @tobsch72

        iCal liefert auch eine JSON. Die könntest du mit einem Script zerlegen und dann in den Datenpunkt schreiben.

        wie baust du die Struktur der Datenpunkte auf. Wenn im Kalender mehrere Termine mit Emailadressen vorhanden sind. Müssen die Adressen zwischen gespeichert werden, wegen Termin/zimmerwechsel?

        1 Reply Last reply Reply Quote 0
        • David G.
          David G. @tobsch72 last edited by David G.

          @tobsch72 sagte in Einlesen von Email-Adressen aus iCal-Adapter:

          ... zu Abrechnungszwecken.

          Falls zu Abrechnungszwecken auch das Erstellen einer Rechnung gehört, was ja durchaus machbar ist im ioBroker, bedenke die gesetzlichen Regelungen.

          Da wird es mit dem ioBroker schwierig. Zumindest jenachdem wie groß das Gewerbe ist.

          T 1 Reply Last reply Reply Quote 0
          • T
            tobsch72 @David G. last edited by tobsch72

            @david-g said in Einlesen von Email-Adressen aus iCal-Adapter:

            Falls zu Abrechnungszwecken auch das Erstellen einer Rechnung gehört, was ja durchaus machbar ist im ioBroker, bedenke die gesetzlichen Regelungen.
            Da wird es mit dem ioBroker schwierig. Zumindest jenachdem wie groß das Gewerbe ist.

            Nein, die grundsätzliche Rechnungsstellung erfolgt nicht darüber.

            Der Hintergrund ist folgender: In diesem Haus ist eine Ferienwohnung und eine private Wohnung. Am Haus ist kürzlich eine Wallbox montiert worden, die privat und für die Wohnung genutzt werden soll. Hier müssen natürlich die Zählerdaten auseinander sortiert werden.
            Meine Idee ist nun, dass ich per RFID-Reader einen Shelly 1 ansteuere, der wiederum ein Schütz schaltet und somit die Wallbox frei gibt. Je nach verwendeter RFID-Karte soll entweder privat gebucht werden oder eben Ferienwohnung. Die jeweiligen Start- und Endzählerstände sollen am Ende per Email an den jeweiligen Mieter der Ferienwohnung und an den Vermieter gesendet werden. Dafür brauch ich die Email-Adresse des Mieters für jeden gebuchten Tag. Daher auch mein Gedanke mit dem iCal-Adapter. Die wird bei der Buchung sowie abgefragt, ist dadurch bekannt, und müsste nur im jeweiligen Zeitraum in den Kalender eingetragen werden.

            Vielleicht hat jemand ja eine noch bessere Idee??

            Mit dem zerlegen von JSON kenn ich mich leider gar nicht aus.

            1 Reply Last reply Reply Quote 0
            • haus-automatisierung
              haus-automatisierung Developer Most Active @tobsch72 last edited by

              @tobsch72 sagte in Einlesen von Email-Adressen aus iCal-Adapter:

              Im Googlekalender würde dann als ganztägiger Termin eine Email-Adresse des Gastes stehen.

              Es klingt ja so, als ob es mehrere Wohnungen gibt? Also müsste man die Adresse pro Wohnung extrahieren. Oder gibt es pro Wohnung einen eigenen Kalender?
              In welchem Feld steht die Adresse denn? Kannst Du da mal Dummy-Daten liefern?

              @tobsch72 sagte in Einlesen von Email-Adressen aus iCal-Adapter:

              Hier müssen natürlich die Zählerdaten auseinander sortiert werden.

              In welchem Format liegen Dir die Zählerdaten denn vor? Es könnte ja sein, dass dein Onkel (oder jemand anders) im vermieteten Zeitraum mit einem eigenen RFID-Tag lädt, oder?

              Ich würde das so machen:

              • iCal so konfigurieren, dass auch vergangene Tage angezeigt werden (1)
              • Jeden Morgen (z.b. um 6:00) ein Script starten, welches die abgelaufenen Termine sucht (aus ical.0.data.table). Vergangen = new Date(obj._end).getTime() < new Date().getTime(). So wird sichergestellt, dass jeder Termin nur 1x abgearbeitet wird.
              • Aus dem Eintrag die Mailadresse extrahieren
              • Dann rausfinden, welche Lade-Einträge der Wallbox zur Vermietung passen und summieren / aufbereiten
              • Diese Informationen mit dem Mail-Adapter an die jeweilige Adresse und den Vermieter schicken

              Ich habe für jemanden mal ein Script geschrieben, welches CSV-Einträge per Mail verschickt. Eventuell hilft Dir das ja Stückweise: https://github.com/haus-automation/iobroker-script-examples/blob/main/logging/history-as-mail-csv.md

              Mit Blockly könnte das ganze etwas komplizierter werden. Dafür müsste ich die Ausgangslage besser kennen.

              haus-automatisierung 1 Reply Last reply Reply Quote 0
              • haus-automatisierung
                haus-automatisierung Developer Most Active @haus-automatisierung last edited by

                Hier ein Denkanstoß:

                Screenshot 2022-09-15 at 14.46.31.png

                <xml xmlns="https://developers.google.com/blockly/xml">
                  <variables>
                    <variable id="m)|oUe[sqTP=8b)u2jk5">entryList</variable>
                    <variable id="4pIH7/s#%Wo9zbOUX*$@">entry</variable>
                    <variable id="oICjxGGUcG3zv?}h#t4X">eventName</variable>
                    <variable id="I~`9RRDqU=H/w68%c/qz">startDate</variable>
                    <variable id=":1PbqQeKYUbO(n/BRO^N">endDate</variable>
                  </variables>
                  <block type="schedule" id="(u5@NT3Tz9IO|X~i*8mV" x="13" y="63">
                    <field name="SCHEDULE">0 6 * * *</field>
                    <statement name="STATEMENT">
                      <block type="variables_set" id="77h?.-G/:4J@e}sFSxs(">
                        <field name="VAR" id="m)|oUe[sqTP=8b)u2jk5">entryList</field>
                        <value name="VALUE">
                          <block type="get_value" id="zW}Zry1U}(Wf;{gQA1L3">
                            <field name="ATTR">val</field>
                            <field name="OID">ical.0.data.table</field>
                          </block>
                        </value>
                        <next>
                          <block type="controls_forEach" id="jytdrpeTmOs;n`8;`H+(">
                            <field name="VAR" id="4pIH7/s#%Wo9zbOUX*$@">entry</field>
                            <value name="LIST">
                              <block type="variables_get" id="d*Z0x_|UFP8t*%bP:xAM">
                                <field name="VAR" id="m)|oUe[sqTP=8b)u2jk5">entryList</field>
                              </block>
                            </value>
                            <statement name="DO">
                              <block type="variables_set" id="ocPJ#uDq5eSx@,MnV!GS">
                                <field name="VAR" id="oICjxGGUcG3zv?}h#t4X">eventName</field>
                                <value name="VALUE">
                                  <block type="get_attr" id="+N|T8w$6;WT6^Pm`GO]8">
                                    <value name="PATH">
                                      <shadow type="text" id="WSh68r$0#wJV/LH,{dkT">
                                        <field name="TEXT">event</field>
                                      </shadow>
                                    </value>
                                    <value name="OBJECT">
                                      <block type="variables_get" id="S+ZzQYJ#s~l?G9^^O,b?">
                                        <field name="VAR" id="4pIH7/s#%Wo9zbOUX*$@">entry</field>
                                      </block>
                                    </value>
                                  </block>
                                </value>
                                <next>
                                  <block type="variables_set" id="17F#-T3B=)yaa.81gv:_">
                                    <field name="VAR" id="I~`9RRDqU=H/w68%c/qz">startDate</field>
                                    <value name="VALUE">
                                      <block type="convert_from_date" id="E1-MSgEmzxU1|2)(iYO.">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                        <field name="OPTION">object</field>
                                        <value name="VALUE">
                                          <block type="get_attr" id="u]/:3?#z@NFY=|QM#CW4">
                                            <value name="PATH">
                                              <shadow type="text" id="2Xfsu5T#%=zQxfetO*],">
                                                <field name="TEXT">_date</field>
                                              </shadow>
                                            </value>
                                            <value name="OBJECT">
                                              <block type="variables_get" id="nox26:oNjh]V3Nn^f5:,">
                                                <field name="VAR" id="4pIH7/s#%Wo9zbOUX*$@">entry</field>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="variables_set" id="N$WqvSKoG2zh3tWTWqec">
                                        <field name="VAR" id=":1PbqQeKYUbO(n/BRO^N">endDate</field>
                                        <value name="VALUE">
                                          <block type="convert_from_date" id="|iT1uzYqC#,z#CR^fu_p">
                                            <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                            <field name="OPTION">object</field>
                                            <value name="VALUE">
                                              <block type="get_attr" id="0lSUp7x}wDJK#Yi8@leW">
                                                <value name="PATH">
                                                  <shadow type="text" id="]TA)7wTUdI/8;b$HV0_i">
                                                    <field name="TEXT">_end</field>
                                                  </shadow>
                                                </value>
                                                <value name="OBJECT">
                                                  <block type="variables_get" id="E@wy3sEUn[{.$W}4GIFk">
                                                    <field name="VAR" id="4pIH7/s#%Wo9zbOUX*$@">entry</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="controls_if" id="=T2imHf)nyUHnJ)%%a;=">
                                            <value name="IF0">
                                              <block type="logic_compare" id="!geuopHC=7rn9OKwbe:B">
                                                <field name="OP">LT</field>
                                                <value name="A">
                                                  <block type="variables_get" id=",Yfj:zixJvY5$3K;G(iL">
                                                    <field name="VAR" id=":1PbqQeKYUbO(n/BRO^N">endDate</field>
                                                  </block>
                                                </value>
                                                <value name="B">
                                                  <block type="time_get" id="QfGEIzD.Waf,|P)qAa2v">
                                                    <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                    <field name="OPTION">object</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <statement name="DO0">
                                              <block type="debug" id="-M0|/!*@$xxK:4RQ]2!/">
                                                <field name="Severity">log</field>
                                                <value name="TEXT">
                                                  <shadow type="text" id="3HUh/JJuMQd`ZWH~~|,$">
                                                    <field name="TEXT">test</field>
                                                  </shadow>
                                                  <block type="text_join" id="kwckHL#3Ms5?mdb}yT8]">
                                                    <mutation items="6"></mutation>
                                                    <value name="ADD0">
                                                      <block type="text" id="/M}qTasAo@VmF|-PrkMc">
                                                        <field name="TEXT">Vermietung beendet: </field>
                                                      </block>
                                                    </value>
                                                    <value name="ADD1">
                                                      <block type="variables_get" id="eUqG%))(Y{;q3Vz57dVA">
                                                        <field name="VAR" id="oICjxGGUcG3zv?}h#t4X">eventName</field>
                                                      </block>
                                                    </value>
                                                    <value name="ADD2">
                                                      <block type="text" id="=,kZ(8,4|q.IZikCk`ZL">
                                                        <field name="TEXT"> - Vermietet </field>
                                                      </block>
                                                    </value>
                                                    <value name="ADD3">
                                                      <block type="convert_from_date" id="^81T.Oz8Cu^3(8hs)`,5">
                                                        <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation>
                                                        <field name="OPTION">custom</field>
                                                        <field name="FORMAT">TT.MM.JJJJ SS:mm</field>
                                                        <value name="VALUE">
                                                          <block type="variables_get" id="^2h}V?f]G~+chVyEwsnx">
                                                            <field name="VAR" id="I~`9RRDqU=H/w68%c/qz">startDate</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                    <value name="ADD4">
                                                      <block type="text" id="*/O~,IA=HIMf-MxvxelL">
                                                        <field name="TEXT"> bis </field>
                                                      </block>
                                                    </value>
                                                    <value name="ADD5">
                                                      <block type="convert_from_date" id="ZqQD0O`-R*4d-))f)#B,">
                                                        <mutation xmlns="http://www.w3.org/1999/xhtml" format="true" language="false"></mutation>
                                                        <field name="OPTION">custom</field>
                                                        <field name="FORMAT">TT.MM.JJJJ SS:mm</field>
                                                        <value name="VALUE">
                                                          <block type="variables_get" id="-JP`bfgZVEZAzKDC/DsQ">
                                                            <field name="VAR" id=":1PbqQeKYUbO(n/BRO^N">endDate</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                  </block>
                                                </value>
                                                <next>
                                                  <block type="comment" id="L47vBG=1Iz.|MfWa1pF+">
                                                    <field name="COMMENT">... Lade-Stände im Zeitraum ermitteln und Mail versenden</field>
                                                  </block>
                                                </next>
                                              </block>
                                            </statement>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </statement>
                          </block>
                        </next>
                      </block>
                    </statement>
                  </block>
                </xml>
                
                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate
                FAQ Cloud / IOT
                HowTo: Node.js-Update
                HowTo: Backup/Restore
                Downloads
                BLOG

                691
                Online

                31.9k
                Users

                80.1k
                Topics

                1.3m
                Posts

                4
                6
                301
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo