Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Einlesen von Email-Adressen aus iCal-Adapter

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

Einlesen von Email-Adressen aus iCal-Adapter

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
6 Beiträge 4 Kommentatoren 390 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T Offline
    T Offline
    tobsch72
    schrieb am zuletzt editiert von
    #1

    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.D haus-automatisierungH 3 Antworten Letzte Antwort
    0
    • T tobsch72

      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 Offline
      T Offline
      TT-Tom
      schrieb am zuletzt editiert von TT-Tom
      #2

      @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?

      Gruß Tom
      https://github.com/tt-tom17
      Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

      NSPanel Script Wiki
      https://github.com/joBr99/nspanel-lovelace-ui/wiki

      NSPanel Adapter Wiki
      https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

      1 Antwort Letzte Antwort
      0
      • T tobsch72

        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

        David G.D Offline
        David G.D Offline
        David G.
        schrieb am zuletzt editiert von David G.
        #3

        @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.

        Zeigt eure Lovelace-Visualisierung klick
        (Auch ideal um sich Anregungen zu holen)

        Meine Tabellen für eure Visualisierung klick

        T 1 Antwort Letzte Antwort
        0
        • David G.D 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 Offline
          T Offline
          tobsch72
          schrieb am zuletzt editiert von tobsch72
          #4

          @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 Antwort Letzte Antwort
          0
          • T tobsch72

            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

            haus-automatisierungH Offline
            haus-automatisierungH Offline
            haus-automatisierung
            Developer Most Active
            schrieb am zuletzt editiert von
            #5

            @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.

            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
            📚 Meine inoffizielle ioBroker Dokumentation

            haus-automatisierungH 1 Antwort Letzte Antwort
            0
            • haus-automatisierungH haus-automatisierung

              @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-automatisierungH Offline
              haus-automatisierungH Offline
              haus-automatisierung
              Developer Most Active
              schrieb am zuletzt editiert von
              #6

              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>
              

              🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
              🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
              📚 Meine inoffizielle ioBroker Dokumentation

              1 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

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

              756

              Online

              32.5k

              Benutzer

              81.6k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Home
              • Aktuell
              • Tags
              • Ungelesen 0
              • Kategorien
              • Unreplied
              • Beliebt
              • GitHub
              • Docu
              • Hilfe