Ankündigung

Einklappen
Keine Ankündigung bisher.

Baustein-Programmierer gesucht

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

    Baustein-Programmierer gesucht

    Hallo,
    diesmal suche ich nicht einen Baustein - sondern jemand der mir einen Baustein hilft :-)
    Ich habe damals beim HS den "Helligkeitswert Tag/Nacht" Baustein programmiert - und will den nun auf EDOMI umsetzten.
    Der HS-Baustein liegt hier: https://service.knx-user-forum.de/?c...nload&id=13687

    Der Baustein wird logisch zwischen Schalter und Dimmer geschaltet - und schaltet das Licht Tagsüber auf "Wert Tag" und nachts auf "Wert Nacht"... dadurch werde ich im Flur / Bad / etc. nachts nicht automatisch geblendet.

    Das hier ist mein ungetesteter Draft (ohne Doku zu lesen / ohne das wirklich Programmieren kann...):

    Code:
    ###[DEF]###
    [name        =Helligkeitswert Tag/Nacht]
    
    [e#1        =Tag(0)/Nacht(1)        ]
    [e#2        =Wert Tag                ]
    [e#3        =Wert Nacht                ]
    [e#4        =Schalten Licht            ]
    [e#5        =Licht RM                ]
    [e#6        =Licht RM Wert            ]
    [e#7        =Bei Tag aktiv            ]
    [e#8        =EIN/AUS                ]
    
    [a#1        =Helligkeitswert in %    ]
    
    [v#1        =0                         ]
    [v#2        =100                    ]
    [v#3        =30                        ]
    [v#4        =0                        ]
    [v#5        =0                        ]
    [v#6        =100                    ]
    [v#7        =1                        ]
    [v#8        =1                        ]
    
    ###[/DEF]###
    
    
    ###[HELP]###
    Helligkeitswert Tag/Nacht
    E1: Baustein im Tag=(0) oder Nacht(1)-Modus
    E2: Helligkeitswert bei Tag
    E3: Helligkeitswert bei Nacht
    E4: Schalten des Objekts
    E5: Rückmeldeobjekt des Objekts (an/aus)
    E6: Rückmeldeobjekt des Objekts (Wert 0-100%)
    E7: LBS bei Tag aktiv
    E8: LBS aktiv/deaktiviert
    
    Der Baustein dimmt Tagsüber nur runter - Nachts nur hoch!
    
    A1: Helligkeitswert des Objekts
    ###[/HELP]###
    
    
    ###[LBS]###
    <?
    function LB_LBSID($id) {
        if ($E=logic_getInputs($id)) {
    
            // E8=0 - Baustein ist ausgeschaltet
            if ($E[8]['refresh']==1 && $E[1]['value']==0) {    // 0-Telegram an E8 ...
                logic_setState($id,0);                        // LBS beenden
            }
    
            // bei Auschalten: Wert 0 senden und abbruch
            if ($E[4]['refresh']==1 && $E[1]['value']==0) {    // 0-Telegram an E4  ...
                logic_setOutput($id,1,0);                    // 0-Telegram auf A1
                logic_setState($id,0);                        // LBS beenden
            }
    
            // Wenn änderung Tag/Nacht (E1) und RM Wert=1 (E6) und EN1=Tag (E1) und bei Tag aktiv=1 (E8) senden von Tagwert (E2)
            if ($E[1]['refresh']==1 && $E[6]['value']==1) && $E[1]['value']==1) && $E[8]['value']==1) {    
                logic_setOutput($id,1,$E[2]['value']);                    // E2-Telegram auf A1
                logic_setState($id,0);                                    // LBS beenden
            }
    
            // Wenn änderung Tag/Nacht (E1) und RM Wert=1 (E6) und EN1=Nacht (E1) senden von Nachtwert (E3)
            if ($E[1]['refresh']==1 && $E[6]['value']==1) && $E[1]['value']==0)  {    
                logic_setOutput($id,1,$E[3]['value']);                    // E3-Telegram auf A1
                logic_setState($id,0);                                    // LBS beenden
            }
    
            // Wenn neuer Tagwert (E2) und RM Wert=1 (E6) und E1=Tag (E1) und bei Tag aktiv=1 (E8) und RM Wert [E6] > Tagwert [E2] ==> Tagwert senden (E2)
            if ($E[2]['refresh']==1 && $E[6]['value']==1) && $E[1]['value']==1) && $E[8]['value']==1) && $E[6] >= $E[2] {    
                logic_setOutput($id,1,$E[2]['value']);                    // E2-Telegram auf A1
                logic_setState($id,0);                                    // LBS beenden
            }
    
            // # Wenn änderung Tag/Nacht [E1] und RM Wert=1 [E6] und EN1=Tag und bei Tag aktiv=0==> Abbruch
            if ($E[1]['refresh']==1 && $E[6]['value']==1) && $E[1]['value']==1) && $E[8]['value']==0) {    
                logic_setState($id,0);                                    // LBS beenden
            }
    
            // Wenn Schalten UND Schalten=1 und EN1=Tag und bei Tag aktiv=1 ==> Tagwert senden
            if ($E[4]['refresh']==1 && $E[4]['value']==1) && $E[1]['value']==1) && $E[8]['value']==1) {    
                logic_setOutput($id,2,$E[2]['value']);                    // E2-Telegram auf A1
                logic_setState($id,0);                                    // LBS beenden
            }
    
            //# Wenn Schalten UND Schalten=1 und EN1=Tag und bei Tag aktiv=0 ==> Abbruch
            if ($E[4]['refresh']==1 && $E[4]['value']==1) && $E[1]['value']==1) && $E[8]['value']==0) {    
                logic_setState($id,0);                                    // LBS beenden
            }
    
            //#Wenn neuer Nachtwert und RM Wert=1 [E6] und EN1=Nacht und RM Wert < Nachtwert ==> Nachtwert senden (E3)
            if ($E[3]['refresh']==1 && $E[6]['value']==1) && $E[1]['value']==0) && $E[6] =< $E[3] {    
                logic_setOutput($id,1,$E[3]['value']);                    // E2-Telegram auf A1
                logic_setState($id,0);                                    // LBS beenden
            }
    
            //#Wenn schalten und Schalten=1 und EN1=Nacht ==> Nachtwert senden (E3)
            if ($E[4]['refresh']==1 && $E[4]['value']==1) && $E[1]['value']==0) {    
                logic_setOutput($id,2,$E[3]['value']);                    // E3-Telegram auf A1
                logic_setState($id,0);                                    // LBS beenden
            }
        }
    }
    ?>
    ###[/LBS]###
    
    
    ###[EXEC]###
    <?
    
    ?>
    ###[/EXEC]###

    Wie kriege ich nun eine Bausteinnummer?
    Und kann man jemand drüberschauen ob ich da grobe schnitzer eingebaut habe (mit ein/ausgängen).
    Testen / Weitermachen kann ich erst heute abend... gerade ist Besuch gekommen.

    Gruß
    Thorsten

    #2
    Mal kurz überflogen...:

    logic_setState() brauchst Du nicht, da der LBS nicht zyklisch irgendwas macht. Im Grunde sind's doch nur simple IF-THEN-Geschichten - oder verstehe ich da was nicht?!
    EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

    Kommentar


      #3
      Yep - der macht nur IF-THEN-Geschichten.
      Ich dachte ("als copy&paste programmierer") das logic_setState() beendet den baustein... da lag ich wohl falsch?

      Wie kriege ich eigentlich eine "sinnvolle" Bausteinnummer?
      Über die Anmeldung im Upload-Bereich?

      Gruß
      Thorsten
      Zuletzt geändert von ThorstenGehrig; 24.06.2017, 20:28.

      Kommentar


        #4
        Ja, hier Registrieren: https://edomi.knx-user-forum.de/index.php
        Wenn du Freigeschalten bist, kannst dir die Nummern generieren und den Baustein hochladen.

        Kommentar


          #5
          Du brauchst den LBS nicht zu beenden, da Du ihn nirgends startest (also einen zyklischen Aufruf erzeugst). Der LBS wird über die Eingänge getriggert - dann wird der Code ausgeführt. Wenn Du z.B. innerhalb eines IF-Blocks die Abarbeitung beenden möchtest, genügt ein "return" - denn der LBS ist ja nichts weiter als eine Funktion.
          EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

          Kommentar


            #6
            So. Registriert... ID Erzeugt... und
            => Baustein mit einer falschen ID bei mir (lokal, EDOMI) geladen...
            Wie kriege ich den wieder raus aus EDOMI?
            Und wo kann ich sehen welche Fehlermeldung er ausspuckt (ich habe "1 Fehler") - und in den Verwaltung->Logdateien finde ich keinen Hinweiß.

            Gruß
            Thorsten

            Kommentar


              #7
              Ich bin schon seit ein paar Tagen an sowas ähnlichem dran. Der könnte deinen Zweck erfüllen.
              Aktuell fehlen noch zwei Funktionen, wird aber noch 2-3 Tage dauern weil ich nur Abend en bisl Zeit habe.

              Kommentar


                #8
                Hi
                @hx5: danke. Ich habe meine Logik ja eigentlich fertig (da 1:1 copy from HS)... jetzt muss ich nur den Baustein zum laufen bekmmen.
                Den falschen Import habe ich mittlerweile aus /usr/local/edomi/www/admin/lbs gelöscht.
                Den Baustein habe ich mittlerweile Fehlerfrei importiert (ich hatte ein paar fehlende/falsche Klammern bei den IF-Bedingungen) - und jetzt muss ich testen :-)

                Gruß
                Thorsten

                Kommentar


                  #9
                  Tata.... mein erster Baustein ist Fertig und im Downloadbereich:

                  Helligkeitswert Tag/Nacht (19001140)

                  Dieser Baustein ist gedacht um Ihn paralell zur Kommunikation zwischen Schalter/PM und Aktor zu hängen.
                  Dies stellt sicher das bei Ausfall der Logik weiterhin das direkte Schalten des Lichts funktioniert.
                  Im "normalen" Betrieb erkennt Edomi wenn das Licht geschaltet wird - und sended einen Dimm-Wert hinterher - so das Tagsüber der die Tages-Helligkeit angefahren wird - nachts aber nur die Nacht-Beleuchtung angefahren wird.
                  Dazu muss der Dimmer so parametrisiert werden das er nicht sofort auf die Zielhelligkeit geht - sondern erst nach ca. 1 Sekunde.

                  Der Baustein dimmt Tagsüber nur runter - Nachts nur hoch!

                  E1: Baustein im Tag=(0) oder Nacht(1)-Modus
                  E2: Helligkeitswert bei Tag
                  E3: Helligkeitswert bei Nacht
                  E4: Schalten des Objekts
                  E5: Rückmeldeobjekt des Objekts (an/aus)
                  E6: Rückmeldeobjekt des Objekts (Wert 0-100%)
                  E7: LBS bei Tag aktiv
                  E8: LBS aktiv/deaktiviert

                  A1: Helligkeitswert des Objekts


                  Feedback gerne erwünscht :-)
                  Gruß
                  Thorsten

                  Kommentar


                    #10
                    ThorstenGehrig Kennst Du diesen Thread? https://knx-user-forum.de/forum/proj...und-changelogs

                    Kommentar


                      #11
                      Yep... wollte nur nicht gleich da reinposten :-)
                      (bin halt zurückhaltend...). Okay - poste da :-)

                      Kommentar


                        #12
                        vento66
                        Hallo Micha, macht dieser Baustein nicht dasselbe wie die Logik unten, halt ohne den Helligkeitswert am Eingang zu nutzen (wenn man keinen hat) ?

                        Bildschirmfoto 2017-06-25 um 11.48.43.png
                        Danke und LG, Dariusz
                        GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                        Kommentar


                          #13
                          Hi Coliflower,
                          er macht schon ein bisschen mehr:
                          um einen regelt er Tag und nacht (also beim Tag wird auch eine Tageshelligkeit gesendet)
                          Es werden dedizierte Werte angekommen (mache ich z.T. dynamisch von anderen Abhängigkeiten)
                          Zugegebenermaßen führt dein Weg auch zu einem ähnlichen Ziel.
                          Gruß
                          Thorsten

                          Kommentar


                            #14
                            Danke Thorsten,

                            d.h., wenn ich keine Helligkeitswerte aufgrund nicht vorhandener Sensoren habe, dann kann ich deinen LBS nicht verwenden, korrekt ?

                            Gruß,
                            Dariusz
                            Danke und LG, Dariusz
                            GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                            Kommentar


                              #15
                              Nee... das hast du falsch Verstanden. Die Werte sind die "eingestellte Helligkeit bei Tag oder bei Nacht".
                              Also bei mir nach = 10%, Tags = 100%
                              Bein einem einfachen "an" fährt der Dimmer "langsam" auf 60% - so das die 10% bei nacht schnell genug kommen damit er nicht übersteuert.
                              Fall der EDOMI mal ausfallen sollte gehen die lampen also trotzdem auf 60% - mit Edomi eben 10% im Schlafmodus und 100% im Tagmodus.
                              Gruß
                              Thorsten

                              Kommentar

                              Lädt...
                              X