Ankündigung

Einklappen
Keine Ankündigung bisher.

Hilfe bei WOL

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

    Hilfe bei WOL

    Hallo,

    habe am WE das WOL Makro getestet. Einmal über Button in der Visu und einmal über eine GA.
    Hat beides auf Anhieb funktioniert und die Freude war groß.

    Der anfänglichen Euphorie folgte aber dann die Ernüchterung.
    Über die Visu funktioniert es jedes mal 100-prozentig. Über die GA funktioniert es genau einmal und dann nicht wieder.

    So als ob der EIB PC die GA sperrt. Nach Neustart geht's dann wieder genau einmal und dann ist wieder die "Handbremse" drin.

    Hat das Phänomen noch jemand? Aber wahrscheinlich gibt's dafür 'ne ganz einfache Lösung.

    Bin für jede Anregung dankbar.

    Gruß Frank

    #2
    Zitat von frankthegreat Beitrag anzeigen
    Über die GA funktioniert es genau einmal und dann nicht wieder.
    Poste doch mal den genauen Code hier. Wahrscheinlich passt hier etwas mit der IF-Abfrage der GA nicht. Ich vermute mal, dass du den Wert der GA abfrägst und sich dieser Wert nach dem ersten Senden der GA nicht mehr ändert und die IF-Abfrage daher nicht mehr invalid wird. Besser wäre es des Eintreffen des Telegramms mittels event-Funktion abzufragen, also statt

    if "GA-1/1/0" == EIN then ...

    if eventwrite("GA-1/1/0") then ...
    bzw.
    if eventwrite("GA-1/1/0") and "GA-1/1/0" == EIN then ...

    zu verwenden.

    Kommentar


      #3
      Mein Code sieht im Prinzip so aus:

      1. //Mit einem Taster kann man den Empfänger "aufwecken"
      2. if "Taster-0/2/5" then Wakeup = EIN else Wakeup = AUS endif

      Kommentar


        #4
        Dann stimmt ja die Vermutung von Klaus.
        Mach das "event" rein, und es wird (mehr als 1 mal) funktionieren.

        Kommentar


          #5
          Danke,
          werde heute abend testen.

          Kommentar


            #6
            Hmm, habe das jetzt mit Event ein paar mal getestet.
            Leider ohne Erfolg. Das gleiche wie vorher. Einmal starten geht, dann nicht mehr.
            Sonst noch jemand 'ne Idee, an was es liegen könnte?
            Frank

            Kommentar


              #7
              zeig doch mal noch mehr von Deinem Code.

              Vermutlich hast Du das Problem nur von "Taster-0/2/5" auf "Wakeup" verschoben.

              Was passiert denn, wenn Du manuell auf 0/2/5 eine "AUS" schickst und dann wieder über die Visu aktivierst? Geht es dann ein zweites mal?
              Dann liegt es an der nicht korrekt berücksichtigten Validierung. Eine Variable die schon auf EIN steht löst beim erneuten Setzen auf EIN erst mal keinerlei Aktion aus.
              ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

              Kommentar


                #8
                Das ist alles was WOL betrifft:

                ServerStart=AUS

                if eventwrite("WOL Server-9/0/0")and "WOL Server-9/0/0"==EIN then ServerStart=EIN endif

                WOL(ServerStart,MAC-Adresse)

                Kommentar


                  #9
                  Das ist ja die Krux. Über die Visu geht es immer.
                  Eine 0 habe ich auch schon hinterher geschickt. Hat nix gebracht.

                  Kommentar


                    #10
                    Zitat von frankthegreat Beitrag anzeigen
                    if eventwrite("WOL Server-9/0/0")and "WOL Server-9/0/0"==EIN then ServerStart=EIN endif

                    WOL(ServerStart,MAC-Adresse)
                    Wie bereits erwähnt hast du das Problem hier nur auf die ServerStart-Variable verschoben. Diese Variable wird bei deinem Code nie wieder AUS. Die WOL-Anweisung wird allerdings nur invalid und dadurch ausgeführt, wenn sich der Wert von ServerStart ändert.

                    Ich würde das ganze direkt (ohne Hilfsvariable) so codieren:

                    WOL(eventwrite("WOL Server-9/0/0") and "WOL Server-9/0/0"==EIN, MAC-Adresse)

                    oder wenn du deinen Code so lassen willst, dann ändere die IF-Abfrage auf:

                    if eventwrite("WOL Server-9/0/0") and "WOL Server-9/0/0" == EIN then ServerStart = EIN else ServerStart = AUS endif

                    Kommentar


                      #11
                      Jepp! Genau so!
                      ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                      Kommentar


                        #12
                        Ich würde das ganze direkt (ohne Hilfsvariable) so codieren:

                        WOL(eventwrite("WOL Server-9/0/0") and "WOL Server-9/0/0"==EIN, MAC-Adresse)
                        Yo, und läuft!!! Das ist die Lösung.

                        Bei der zweiten Sache mit dem else Zweig meckert der Compiler, aber egal; Abend gerettet.

                        Es ist immer wieder erstaunlich zu sehen, wie etwas funktioniert, wenn man es nur richtig macht.

                        Danke an alle und schönen Abend noch.

                        Frank

                        Kommentar


                          #13
                          Zitat von frankthegreat Beitrag anzeigen
                          Bei der zweiten Sache mit dem else Zweig meckert der Compiler, aber egal; Abend gerettet.
                          Stimmt. Event und Else dürfen nicht zusammen sein. Müsste man in zwei Ifs trennen und die Bedingungen umdrehen. Aber egal, die erste Variante ist eh einfacher.
                          ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                          Kommentar


                            #14
                            Was ist denn der Unterschied zwischen:
                            [highlight=epc]
                            if eventwrite("WOL Server-9/0/0") and "WOL Server-9/0/0" == EIN then ServerStart = EIN else ServerStart = AUS endif
                            [/highlight]

                            und

                            [highlight=epc]
                            if event("WOL Server-9/0/0") and "WOL Server-9/0/0" == EIN then ServerStart = EIN else ServerStart = AUS endif[/highlight]

                            genauer zwischen

                            [highlight=epc]
                            eventwrite()[/highlight]

                            und

                            [highlight=epc]
                            event()[/highlight]

                            (abgesehen davon, dass die Beschreibung von eventwrite() inhaltlich und grammatikalisch eher dürftig ist)?
                            BR
                            Marc

                            Kommentar


                              #15
                              Zitat von saft6luck Beitrag anzeigen
                              Was ist denn der Unterschied zwischen:
                              eventwrite() und event()
                              eventwrite() geht nur bei Schreib-Telegrammen auf EIN, event() bei jedem beliebigen Event (Write, Read und Response)

                              Wenn du event() verwenden würdest und ein Gerät oder die ETS frägt den Status der GA ab, dann würde die WOL-Funktion ebenfalls aktiv werden, was im konkreten Fall aber nicht gewünscht ist.

                              Kommentar

                              Lädt...
                              X