Navigation

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search

    Buchungen in den Resourcen steuert unsere Heizung (API/KNX/EIB)

    ChurchTools Schnittstellen
    7
    13
    795
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Achim Fuchs
      Achim Fuchs last edited by Achim Fuchs

      Hallo,
      in unserer Gemeinde wird die gesamte Haussteuerung auf KNX/EIB umgestellt bzw. eingerichtet. Von Licht, Rollo und Heizung können wir sogar die Eingangstüren (automatische Antriebe) steuern.
      Ich selbst bin Softwareentwickler und habe ein Programm erstellt, dass sich bei CT einloggt, über die API-Schnittstelle die Buchungen für den Raum holt und entsprechend die Heizung schaltet.
      Auch wenn für die Räume eine Veranstaltung gebucht ist, wird die Eingangstüre aufgesperrt bzw. am Ende zugesperrt.
      Für die KNX-Steuerung wird lediglich ein Framework installiert und ein KNX/IP-Router muss vorhanden sein.
      Das Programm muss ständig laufen und versendet Status-Emails. In unserem Fall läuft das Programm auf einem virtuellen Windows-Server, der per OpenVPN-Verbindung sich ins interne Netz einwählt und alles steuert.

      Wer also mehr wissen möchte kann mich hier anschreiben.
      Gesegnete Grüße
      Achim

      1 Reply Last reply Reply Quote 9
      • hbuerger
        hbuerger ChurchToolsMitarbeiter last edited by

        Das ist ja cool. Ich weiß von einem anderem Kunden, der die Heizung mit ChurchTools steuert, aber dass ihr das noch mit dem Schließsystem verknüpft habt finde ich richtig stark.

        Mich freut das immer sehr, wenn ihr eure Ideen hier im Forum vorstellt. Wir arbeiten ja gerade an der neuen API und umso mehr Endpoints wir haben um so mehr coole Dinge kann man damit machen. Ich bin so gespannt, was euch noch so einfällt.

        1 Reply Last reply Reply Quote 0
        • philipptrenz
          philipptrenz last edited by

          Hi @Achim-Fuchs, danke für deinen Bericht!

          Sobald die REST API ausreichend Funktionalität hat werde ich das Thema wohl auch angehen. Zumindest die Kosten für unsere Parkplatzbeleuchtung könnten so relativ unkompliziert reduziert werden. Und für das Heizungssystem ist mittelfristig auch eine Umrüstung auf eine intelligente Steuerung geplant. Ich hoffe also die Arbeiten an der neuen API gehe zügig voran.

          1 Reply Last reply Reply Quote 0
          • aschild
            aschild last edited by

            @Achim-Fuchs Hallo Achim, ich versuche gerade via "altem" API alle Buchungen für einen bestimmten Zeitraum zu ermitteln.

            Im Calender Modul geht das mit getCalendarEvents(from/to in Anzahl Tagen relativ zu heute).
            https://api.church.tools/class-CTChurchCalModule.html#_getCalendarEvents

            Im Resourcenmodul helfen die from/to Parameter nicht, es kommen immer alle Buchungen zurück...
            https://api.church.tools/class-CTChurchResourceModule.html#_getBookings

            Im Code sehe ich, dass allfällige Parameter nicht an die Methode weitergegeben werden...

            class CTChurchResourceModule extends CTAbstractModule {
            
              public function getBookings($params) {
                return getBookings();
              }
              .....
            }
            

            https://api.church.tools/function-getBookings.html hätte die Parameter, aber eben...
            Hast du mir da einen Tipp?

            Achim Fuchs 1 Reply Last reply Reply Quote 0
            • Achim Fuchs
              Achim Fuchs @aschild last edited by

              @aschild Hallo Aschild, über "https://xyz.church.tools/?q=churchresource/ajax&func=getBookings" bekommst du immer alle Buchungen. In meinem Programm lese ich alle diese ein und fülle und filtere diese dann. Die dokumentierten Parameter stehen noch auf "TODO" (https://api.church.tools/function-getBookings.html).
              Aber alleine diese Liste ist nicht aussagekräftig.
              Je nach Wiederholungsart (repeat_id), ausgeschlossenen Terminen (exceptions) bzw. eingeschlossene Termine (additions) mit den jeweiligen Wiederholungen bestimmen dann deinen Buchungstermin.
              Die repeat_id Zuornung erhälst du über die "....?q=churchresource/ajax&func=getMasterData".

              Ich hoffe ich konnte dir weiterhelfen.
              Grüße
              Achim

              U 1 Reply Last reply Reply Quote 0
              • aschild
                aschild last edited by

                @Achim-Fuchs Danke für die Erklärungen.
                Ja, das hatte ich befürchtet.

                Hast allenfalls php code den du mir zusenden könntest? (Oder wenn es eine andere Sprache ist, dann wäre der Teil zum Auflösen der Wiederholungen + Ausnahmen interessant)
                Ich würde ihn dann in diese Projekte hier integrieren und veröffentlichen.

                https://github.com/vineyardkoeln/churchtools-api und https://github.com/a-schild/churchtools-pdfcalendar

                1 Reply Last reply Reply Quote 0
                • U
                  uschau @Achim Fuchs last edited by

                  @achim-fuchs
                  Hallo Achim,
                  Du schreibst, dass man je nach Wiederholungsart, ausgeschlossenen Terminen etc. die Buchungstermine bestimmen kann.
                  Gibt es dafür eine Funktion, die man nutzen kann oder muss man sich das selbst herleiten, wie das geht? Ich bin ziemlich irritiert, wie ich die Daten zu interpretieren habe und total verloren, wie ich die Buchungstermine für heute und morgen finde, wenn es von Serienterminen mit Exceptions in unserem Kalender nur so wimmelt.
                  Kannst Du mir da mit irgendeiner Vorlage helfen, wie man das programmieren kann (idealerweise in Python ;-). Vielen Dank im Voraus,
                  Viele Grüße
                  Uwe

                  davidschilling Achim Fuchs 2 Replies Last reply Reply Quote 0
                  • davidschilling
                    davidschilling ChurchToolsMitarbeiter @uschau last edited by

                    @uschau Es gibt mittlerweile eine neue Api für Buchungen die schon alle Serientermine ausgerechnet zurück liefert. (/api/bookings) Details findest du in der Api Dokumentation unter /api.

                    Damit sollte das deutlich einfacher gehen.

                    U 1 Reply Last reply Reply Quote 0
                    • Achim Fuchs
                      Achim Fuchs @uschau last edited by

                      @uschau Von der Grundfunktion basiert meine Programmierung auf die alte API. Hier habe ich die Termine, die ausgeschossen wurden, dann wieder entfernt. Wie genau ich das mache, muss ich erst im Code nachsehen. Wenn du hier diese Info brauchst, dann melde dich nochmal. Andernfalls verwende doch die neue API :-).

                      1 Reply Last reply Reply Quote 0
                      • U
                        uschau @davidschilling last edited by

                        @davidschilling
                        Hallo David, Danke für Deine schnelle Reaktion. Ich bin leider etwas verwirrt, weil ich dachte, ich nutze schon die neue API.
                        Mein Aufruf sieht wie folgt aus:
                        efg-blabla.church.tools/?q=churchresource/ajax&func=getBookings&login_token=Rb1....K5I&from=0&to=1&resource_id=3&status_id_in="0,2"
                        Bin ich damit noch auf dem alten Strang unterwegs?
                        Wie komme ich auf die neuen API's? Gibt es da eine andere URL, die man aufrufen kann?
                        Sorry, wenn die Rückfrage etwas blöd klingt, aber ich starte gerade erst mit dem Thema.
                        VG
                        Uwe

                        jziegeler 1 Reply Last reply Reply Quote 0
                        • jziegeler
                          jziegeler ChurchToolsMitarbeiter @uschau last edited by

                          @uschau ja, das ist die alte API.

                          die Dokumentation für die neue REST-API findest du unter https://meineGemeinde.church.tools/api

                          U 1 Reply Last reply Reply Quote 0
                          • U
                            uschau @jziegeler last edited by uschau

                            @jziegeler Vielen Dank! Der Hinweis hat schon mal geholfen.
                            Ich bekomme nun die Wiederholungstermine unter "calculated" ausgewiesen.
                            Allerdings glaube ich, werden Ausnahmen nicht korrekt berücksichtigt.
                            Auf der Weboberfläche erscheint für den heutigen Tag keine Reservierung, da ich die Serie für den heutigen Abend unterbrochen habe, aber in der API-Antwort tauchen gleich 2 Einträge zum heutigen Datum auf. Ist das ein Fehler oder muss ich da etwas besonderes beachten?
                            Wenn es hilft, kann ich auch gerne den Effekt direkt in unserer Instanz demonstrieren. Anbei ein paar Screenshots, das JSON-Ergebnis könnte ich noch per email nachsenden, falls gewünscht.
                            Bildschirmfoto 2022-06-22 um 22.36.26.png
                            Bildschirmfoto 2022-06-22 um 22.51.13.png
                            Bildschirmfoto 2022-06-22 um 22.47.46.png
                            Bildschirmfoto 2022-06-22 um 22.57.52.png
                            Bildschirmfoto 2022-06-22 um 22.58.26.png

                            davidschilling 1 Reply Last reply Reply Quote 0
                            • davidschilling
                              davidschilling ChurchToolsMitarbeiter @uschau last edited by

                              @uschau wenn du denkst hier liegt ein Bug vor, dann melde dich bitte bei support@churchtools.de und wir schauen uns das an. Wenn das wirklich ein Bug ist wird der gefixt. Am besten schreibst du uns gleich dass wir Zugriff auf die DB bekommen, dann können wir uns das gleich bei euch anschauen.

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post