Ankündigung

Einklappen
Keine Ankündigung bisher.

Read Request

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Da ich auch in einem Fall einen getriggerten GA requester brauchte, machte ich mir einen LBS.
    So sieht der EXEC code aus.

    Code:
    ###[HELP]###
    Dieser Baustein leitet den anliegen Wert einer Gruppenadresse E2 an A1 weiter, wenn der Trigger E1=1 ist.
    
    E1: Trigger
    E2: Gruppenadresse
    A1: Wenn E1=1 ist, wird A1=E2 gesetzt.
    ###[/HELP]###
    
    ###[LBS]###
    <?
    function LB_LBSID($id) {
        if ($E=logic_getInputs($id)) {
            if ($E[1]['refresh']==1) {
                if ($E[1]['value']==1) {
                    logic_setOutput($id,1,$E[2]['value']);
                }
            }
        }
    }
    ?>
    ###[/LBS]###
    Die Logik sieht auch viel lesbarer aus,...

    Kommentar


      #17
      hallo gaert,

      dachte ich mir bereits, aber das ist schade, denn das würde mir extrem viel Zeit sparen.
      Wenn ich Kopien von mehr oder weniger komplexen Logiken mache, dann muss ich in der Visu immer alle GAs in allen Kopien ändern. Es wäre wesentlich simpler z.B. nur eine einzige GA anzugeben und den Rest per php zu erledigen (mit relativen Adressen mit bekannten offsets).

      Kommentar


        #18
        Zitat von eriche Beitrag anzeigen
        Da ich auch in einem Fall einen getriggerten GA requester brauchte, machte ich mir einen LBS.
        Hmm. Interessanter Ansatz. Ich glaube das löst so halbwegs meine Anforderung.
        Danke.
        Noch cooler wärs, wenn ich man das direkt in php machen könnte.

        Kommentar


          #19
          Stehe auf der Leitung..
          auf a#1 krieg ich dann die GA, aber was muss ich machen, dass dann auf dieser GA ein read-request gemacht wird?
          In einer Ausgangsbox kann ich ja keine Variablen verwenden?!
          Bahnhof..

          Kommentar


            #20
            Der Baustein sieht dann so aus

            Edomi_GA_Requester.jpg
            Trifft eine 1 am Triggern ein, dann frage ich die GA ab und leite den Wert auf den Ausgang.

            Kommentar


              #21
              N'abend,

              welchen Wert Du in A1 bekommst, ist uninteressant. Du musst in einer Ausgangsbox "Eintrag hinzufügen" wählen, dort dann "KO: Abfragen (Read-Request)" und da dann die gewünschte GA eintragen. Mit einem Trigger auf die Ausgangsbox löst Du also den Read-Request aus. Die gewählte GA muss dann natürlich irgendwo noch als Eingang verdrahtet werden, um auf den daraufhin kommenden Wert zu reagieren.
              Kind regards,
              Yves

              Kommentar


                #22
                Zitat von starwarsfan Beitrag anzeigen
                N'abend,

                welchen Wert Du in A1 bekommst, ist uninteressant. Du musst in einer Ausgangsbox "Eintrag hinzufügen" wählen, dort dann "KO: Abfragen (Read-Request)" und da dann die gewünschte GA eintragen. Mit einem Trigger auf die Ausgangsbox löst Du also den Read-Request aus. Die gewählte GA muss dann natürlich irgendwo noch als Eingang verdrahtet werden, um auf den daraufhin kommenden Wert zu reagieren.
                Das ist aber dann der gewöhnliche read-request. Genau den will ich ja vermeiden!

                Kommentar


                  #23
                  Zitat von eriche Beitrag anzeigen
                  Der Baustein sieht dann so aus

                  Edomi_GA_Requester.jpg
                  Trifft eine 1 am Triggern ein, dann frage ich die GA ab und leite den Wert auf den Ausgang.
                  Verstehe ich leider immer nicht. Nach meinem Verständnis wird doch beim Trigger auf E1 nur der String (die GA) von E2 auf A1 kopiert. Wer macht dabei den read-request am KNX bus?

                  Kommentar


                    #24
                    Zitat von WWebber Beitrag anzeigen

                    Das ist aber dann der gewöhnliche read-request. Genau den will ich ja vermeiden!
                    Hm, dann habe ich Dich missverstanden, Sry.
                    Kind regards,
                    Yves

                    Kommentar


                      #25
                      Vielleicht solltest einfach mal erklären, wofür du das genau brauchst. Wie gaert ja schon geschrieben hat, ist das derzeit nicht vorgesehen.
                      Ggf. gibt es auch einen Workaround, den man nutzen könnte, wenn man den Zusammenhang besser kennt.

                      Kommentar


                        #26
                        Zitat von jonofe Beitrag anzeigen
                        Vielleicht solltest einfach mal erklären, wofür du das genau brauchst. Wie gaert ja schon geschrieben hat, ist das derzeit nicht vorgesehen.
                        Ggf. gibt es auch einen Workaround, den man nutzen könnte, wenn man den Zusammenhang besser kennt.
                        Als du geschrieben hast, dachte ich, dass du eventuell einen workaround hast. Ich will per php einen read-request absetzen - aber so, dass ich extern keine GA angeben oder einen Ausgangsbox Befehl absetzen muss. Ich kenne im php schon die interne edomi-ID von der GA. Schreiben geht ja per php - siehe LBS 12000100.

                        Kommentar


                          #27
                          Ich sag's gerne nochmal: Natürlich ginge ein Read-Request etc. per PHP - EDOMI ist schließlich in PHP programmiert...

                          Aber: Die entsprechenden Funktionen sind *nicht* für User-LBS gedacht, da diese tief in die Logik-Struktur eingreifen und ohnehin vermutlich noch verändert werden in Zukunft. Logiken erstellt man mit dem Logikeditor! Eigene LBS sind auf die in der Hilfe aufgeführten (EDOMI-)Funktionen beschränkt und sollten dies auch bleiben.

                          Einen Read-Request per eigenem LBS abzusetzen macht eigentlich keinen Sinn, da dieser ja asynchron ausgeführt wird (d.h. die Antwort auf den Request kommt "irgendwann"). In einer typischer Weise sequentiellen Abarbeitung eines PHP-Scripts im LBS-Kontext ist ein Read-Request also eher Schwachsinn...
                          EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                          Kommentar


                            #28
                            Zitat von gaert Beitrag anzeigen
                            Einen Read-Request per eigenem LBS abzusetzen macht eigentlich keinen Sinn, da dieser ja asynchron ausgeführt wird (d.h. die Antwort auf den Request kommt "irgendwann"). In einer typischer Weise sequentiellen Abarbeitung eines PHP-Scripts im LBS-Kontext ist ein Read-Request also eher Schwachsinn...
                            fACK... ich dachte bisher ich haette den TE flasch verstanden, aber irgendwie macht das alles gar keinen wirklichen Sinn (fuer mich zumindest nicht)

                            Kommentar


                              #29
                              Zitat von wintermute Beitrag anzeigen
                              irgendwie macht das alles gar keinen wirklichen Sinn (fuer mich zumindest nicht)
                              +1

                              und da der TE immer nur sagt was er machen will und nicht warum, wird der Sinn vermutlich auch verborgen bleiben.

                              Kommentar


                                #30
                                Zitat von gaert Beitrag anzeigen
                                Einen Read-Request per eigenem LBS abzusetzen macht eigentlich keinen Sinn, da dieser ja asynchron ausgeführt wird (d.h. die Antwort auf den Request kommt "irgendwann"). In einer typischer Weise sequentiellen Abarbeitung eines PHP-Scripts im LBS-Kontext ist ein Read-Request also eher Schwachsinn...
                                Wenn ich mehrere LBSen in EINE zusammenfassen will, dann macht es wieder Sinn. Denn die komplette Logik bleibt ja erhalten, nur die State-Machine verschiebe ich halt auch noch in meine LBS.

                                Ich vermute es macht deshalb für Euch keinen Sinn, weil es eher eine klassische Messaufgabe ist.
                                Ich habe A/D Wandler und diese will ich semi-zyklisch (on demand) abfragen. Die haben aber weder einen Enable-Eingang um das zu aktivieren, noch können die im Sekundentakt zyklisch was schicken. Daher mache ich zyklische read-requests. Nachdem ich etliche solche Aktoren habe, wollte ich die Rundherum-Logik pro A/D Wandler in ein eigenes LBS verschieben, ohne dass ich aber für jeden einzelnen Kanal alle GAs angeben muss.

                                Wie auch immer, wenn in der Ausgangsbox der Read-Request mit dem E1 die GA zum Abfragen übernehmen würde, dann wäre mein "Problemchen" auch gelöst. Zzt. kann man dort aber meines Wissens nur eine hardcoded GA angeben.

                                Kommentar

                                Lädt...
                                X