Ankündigung

Einklappen
Keine Ankündigung bisher.

Logic

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

    [callidomus] Logic

    Hi,

    wie hängt den der node name einer Logic mit der Logic selber zusammen. Die Onlinehilfe sagt mir dazu recht wenig.

    Viele Grüsse
    Jürgen

    #2
    Hi Jürgen,

    der Node-Name einer Logik muss nichts mit der Logik zu tun haben, Ich benenne aber FileName und NodeName immer gleich (ohne die Endung .py). Hilft meiner Meinung nach, die Übersicht zu wahren.

    Ansonsten teilt sich der Node-Name den Namensraum mit Items und Plugins (bei Items effektiv nur die Root-Ebene), da darf es also nicht zu Kollisionen kommen.

    Gruß, Waldemar
    OpenKNX www.openknx.de

    Kommentar


      #3
      okay ich habe gestern ein hängendes Callidomus gehabt. Ich habe was an der logik für den Kalender geändert und mich gefragt was ich tun muss damit diese Änderung erkannt wird. Ich habe gedacht das ich nix tun muss aber da sich im UI nix getan hat habe ich core restartet. Der Restart hat aber ein hänger gehabt. Ich bin nicht mal auf die Konsole drauf gekommen. Nachdem sich 10min nix getan hat habe ich das System hart mittels "reboot" Kommando restartet. Hat aber nix geholfen. Zum glück kein Datenverlust gehabt.

      Keine Ahnung an was gelegen hat. Aber ich habe ein Item kalender und ein logick mit Nodename kalender vielleicht hat es daran gelegen....

      Das mit dem Nodename von der Logik nicht gleich sein darf wie der Wurzelknoten hat das mit der DB Stucktur zu tun Waldemar?

      Viele Grüsse
      Jürgen

      Kommentar


        #4
        Zitat von heckmannju Beitrag anzeigen
        Das mit dem Nodename von der Logik nicht gleich sein darf wie der Wurzelknoten hat das mit der DB Stucktur zu tun Waldemar?
        Ja, genau.

        Bis bald

        Marcus

        Kommentar


          #5
          Hi,
          Wie kann ich nach dem ändern einer Logik vom UI aus anstarten das sie wieder geladen wird? (den weg mit der CLI hat mir Mumpf schon gezeigt)
          Viele Grüsse
          Jürgen

          Kommentar


            #6
            Hi Jürgen, der einzige mir bekannte Weg ist, den Core neu zu starten.
            Ich hatte Marcus auch schon vorgeschlagen, eine einzelne Logik aus den ui aus starten zu können. Mit dem CLI geht das aber sehr gut...
            Gruß Waldemar
            OpenKNX www.openknx.de

            Kommentar


              #7
              Hi,
              ich habe eine neue logick angelegt. Callidomus.core restartet. Callidomus restart.

              Es hilft nix die wird nicht erkannt.

              Woran kann das liegen? dwd und ical logic wird ausgeführt. Was könnte noch fehlen? Eigentlich sollte die logick alle 10s ausgeführt werden.

              VG
              Jürgen

              Capture.PNG


              Kommentar


                #8
                Hi Jürgen,

                kannst Du im cli mit ll die Logik sehen? Wenn nein, würde ich den Logik-Node (also nicht das .py-File, sondern nur den Node in callidomus) löschen und unter einem anderen Namen neu anlegen mit dem selben .py-File.

                Gruß, Waldemar
                OpenKNX www.openknx.de

                Kommentar


                  #9
                  Nein sobald ich irgend etwas mit Logic im cli mache geht die cli sofort wieder zu.

                  Kommentar


                    #10
                    Hallo,

                    das mit dem cli habe ich in stable/testing gefixt.

                    Code:
                    callidomus.core update
                    callidomus.core restart
                    @heckmannju: schicken mir doch bitte mal das komplette Logfile unter /var/callidomus/log/core an support@

                    Steht das sonst keine Warning oder Error drin? Hast Du da mal reingesehen?

                    Bis bald

                    Marcus

                    Kommentar


                      #11
                      Hi,

                      jetzt ja.

                      phyton hat wohl ein Problem mit ANSI gehabt nachdem ich das file mit UTF-8 gespeichert habe geht es.

                      Viele Grüsse
                      Jürgen

                      Kommentar


                        #12
                        Hi Jürgen,

                        mutig - eine Logik schreiben ohne ins Logfile zu schauen . Jetzt weißt Du vielleicht, warum ich bei unseren Versuchen mit dem dwd immer zuerst callidomus.log gestartet habe und dann erst die Logik getestet...

                        Ich habe oben gelesen, dass die Logik alle 10s getriggert wird. Musst Du wirklich die baudisch pollen? Schickt sie Dir kein Signal, auf das man hören kann?

                        Ich freue mich, dass es erstmal klappt und Gute Nacht,
                        Waldemar
                        OpenKNX www.openknx.de

                        Kommentar


                          #13
                          Hi,
                          meiner Meinung nach sollte ich solche Fehler schon im ui zu sehen sein. Beim Save könnte man das prüfen.

                          Nee zyklische aufrufen mach ich nur das ich was im logfile sehe...eigentlich will ich die Logick nur aufrufen wenn ich meine Tür aufmache da geht ein Wert von 0 auf 1. Zur Zeit wird die logick immer aufgerufen wenn sich das item ändert also auch bei 1 auf 0.

                          Frage 1: Kann man da was mache?

                          Frage 2: wie kann man einen Wert zwischen zwei logickaufrufen speichern? Zur Zeit mach ich das mit einem Item welches Zwischenspeichert. Das finde ich aber nicht elegant. Gbit es auch eine bessere möglichkeit?

                          VG
                          Jürgen

                          Kommentar


                            #14
                            Hi Marcus,

                            beim Speichern einer logik ist auch noch ein kleiner bug drin. Ich habe eine logik angelegt mit Zyklischer ausführung wenn ich nun diese Zyklische ausführung wieder wegnehme und speichere läuft diese Munter weiter auf auf der cli hat ein relaod der logick nix geholfen.

                            Erst nach dem restart von core war ruhe.

                            Viele Grüsse
                            Jürgen

                            Kommentar


                              #15
                              Guten Morgen Jürgen,

                              Zitat von heckmannju Beitrag anzeigen
                              Nee zyklische aufrufen mach ich nur das ich was im logfile sehe...
                              eine Logik kann man im cli ganz einfach mit tr <Logikname> triggern. Dabei ist wieder der Knoten-Name der Logik gemeint.

                              Zitat von heckmannju Beitrag anzeigen
                              eigentlich will ich die Logick nur aufrufen wenn ich meine Tür aufmache da geht ein Wert von 0 auf 1. Zur Zeit wird die logick immer aufgerufen wenn sich das item ändert also auch bei 1 auf 0.

                              Frage 1: Kann man da was mache?
                              Du kannst nicht ändern, dass sie auch bei einer 0 aufgerufen wird, aber Du kannst am Anfang einer Logik ein
                              Code:
                              if trigger.value == 1:
                              setzen.

                              Zitat von heckmannju Beitrag anzeigen
                              Frage 2: wie kann man einen Wert zwischen zwei logickaufrufen speichern? Zur Zeit mach ich das mit einem Item welches Zwischenspeichert. Das finde ich aber nicht elegant. Gbit es auch eine bessere möglichkeit?
                              Ich finde Items genau das Richtige, dafür sind die ja da! Die speichern die Zustände des Hauses. Alternativ würde mir sonst noch ein File einfallen und ich glaube es geht auch am Logik-Objekt selbst, aber das hab ich noch nie genutzt, insofern kann ich auch nicht schreiben, wie es geht. Ich würde beim Item bleiben.

                              beim Speichern einer logik ist auch noch ein kleiner bug drin. Ich habe eine logik angelegt mit Zyklischer ausführung wenn ich nun diese Zyklische ausführung wieder wegnehme und speichere läuft diese Munter weiter auf auf der cli hat ein relaod der logick nix geholfen.

                              Erst nach dem restart von core war ruhe.
                              Das ist kein Bug sondern ein Feature. Alles was Du in der GUI machst, hat erstmal keine Auswirkung! Items, Logiken und Plugins werden vom core verwaltet, Visualisierung von der visu. Du musst immer den jeweiligen Generator (core oder visu) anstarten, damit Änderungen publiziert werden. Das ist sowohl beim Anlegen neuer Nodes wie auch beim Ändern von bestehenden so.

                              Das kann man auch sehr einfach begründen: Damit alles möglichst schnell geht, hält Marcus möglichst viel im Speicher. Die Items, Logiken und Plugins bilden aber mit ihren Triggern ein komplexes Netzwerk ab, dass Du zur Laufzeit nicht seiteneffektfrei ändern kannst. Stell Dir vor, Du hast 3 Nodes, die existentiell voneinander abhängen. Konsistente Änderungen sind immer nur an allen 3 gleichzeitig möglich. Wenn Marcus jetzt nach jeder Änderung direkt die Knoten austauchen würde, hättest Du zwischendurch ein nicht funktionierendes callidomus. Das ist auch blöd.
                              Das ist schon gut so, wie es ist...

                              Gruß, Waldemar

                              OpenKNX www.openknx.de

                              Kommentar

                              Lädt...
                              X