Ankündigung

Einklappen
Keine Ankündigung bisher.

Anzeige Geburtstag / Online

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

    Anzeige Geburtstag / Online

    bezugnehmend auf den letzten beitrag von hier möchte ich mal den bei mir eingebauten code posten.
    ich glaube er könnte gerade im "startverhalten" noch etwas verbesserungsbedürftig sein.


    Code:
    [WebServer]
    pbutton(GeburtstagID)[DATE]$Geburtstag$
    [EibPC]
    GeburtstagID=20 *irgend eine freie ID halt*
    // ----------------------------
    //
    // Geburtstag
    //
    // ----------------------------
    Geburtstag=AUS
    AnzeigeGeb=$ $c14
    // Hier beliebige Geburtstage eintragen
    if month(04,01) then AnzeigeGeb=$ Person x $c14;Geburtstag=EIN endif
    if month(10,01) then AnzeigeGeb=$ Person y. $c14;Geburtstag=EIN endif
    if month(15,01) then AnzeigeGeb=$ Person z $c14;Geburtstag=EIN endif
     
    // Rücksetzen kurz vom Umschalten
    if htime(23,59,59) then Geburtstag=AUS endif
     
    if change(AnzeigeOnline) and !Geburtstag then {
          pdisplay(GeburtstagID,convert(AnzeigeOnline,$$c14), DATE, INACTIVE,GREEN,Page_EsszimmerID) 
    } endif
    if after(systemstart(),1u64) then pdisplay(GeburtstagID,convert(AnzeigeOnline,$$c14), DATE, INACTIVE,GREEN,Page_EsszimmerID) endif
    // Geburtstagsanzeige
    if Geburtstag then {
          pdisplay(GeburtstagID,AnzeigeGeb,DATE,ACTIVE,BLINKRED,Page_EsszimmerID)
    } endif
    [Macros]
    Online()

    #2
    Hi,

    hab irgendwie ein Problem.. will mir mit deinem Code die Müllabholzeiten anzeigen lassen.. Geburtstag funtkioniert super.. das gleich mit Müll leider nicht:

    hab schon etwas variiert hat leider alles nicht so funktioniert.. aktueller stand:

    [highlight=epc]
    //Tägliches Infofeld
    gebheute=AUS
    gebmorgen=AUS
    AnzeigeGeb=$$
    AnzeigeGebmorgen=$$

    infoheute=0u08
    infomorgen=0u08
    AnzeigeInfo=$$
    AnzeigeInfomorgen=$$

    // Rücksetzen kurz vom Umschalten
    if htime(23,59,59) or systemstart() then gebheute=AUS endif
    if htime(23,59,59) or systemstart() then gebmorgen=AUS endif
    if htime(23,59,59) or systemstart() then infoheute=0u08 endif
    if htime(23,59,59) or systemstart() then infomorgen=0u08 endif

    //Papier
    if month(24,01) xor month(21,02) xor month(20,03)xor month(17,04)xor month(15,05)xor month(12,06)xor month(10,07)xor month(07,08) \\
    xor month(04,09) xor month(02,10)xor month(30,10)xor month(27,11)xor month(24,12)then infoheute=1u08 endif

    if month(23,01) xor month(20,02)xor month(19,03)xor month(16,04)xor month(14,05)xor month(11,06)xor month(9,07)xor month(6,08)xor month(3,09) \\
    xor month(1,10) xor month(29,10)xor month(26,11)xor month(23,12)then infomorgen=1u08 endif

    //Gelber Sack
    if month(04,01) xor month(18,01)xor month(01,02)xor month(15,02)xor month(29,02)xor month(14,03)xor month(28,03)xor month(12,04) xor month(25,04) \\
    xor month(09,05)xor month(23,05)xor month(06,06)xor month(20,06)xor month(04,07)xor month(18,07)xor month(01,08)xor month(16,08) xor month(29,08) \\
    xor month(12,09)xor month(26,09)xor month(10,10)xor month(24,10)xor month(07,11)xor month(21,11)xor month(05,12)xor month(19,12) then infoheute=2u08 endif

    if month(03,01) xor month(17,01)xor month(31,01)xor month(14,02)xor month(28,02)xor month(13,03)xor month(27,03)xor month(11,04) xor month(24,04) \\
    xor month(08,05)xor month(22,05)xor month(05,06)xor month(19,06)xor month(03,07)xor month(17,07)xor month(30,07)xor month(15,08) xor month(28,08) \\
    xor month(11,09)xor month(25,09)xor month(09,10)xor month(23,10)xor month(06,11)xor month(20,11)xor month(04,12)xor month(18,12) then infomorgen=2u08 endif

    //Hausmüll
    if month(03,01) xor month(17,01) xor month(31,01) xor month(14,02) xor month(28,02) xor month(13,03) xor month(27,03) xor month(11,04) xor month(24,04) \\
    xor month(08,05)xor month(22,05) xor month(05,06) xor month(19,06) xor month(03,07) xor month(17,07) xor month(31,07) xor month(14,08) xor month(28,08) \\
    xor month(11,09)xor month(25,09) xor month(09,10) xor month(23,10) xor month(06,11) xor month(20,11) xor month(04,12) xor month(18,12) then infoheute=3u08 endif

    if month(02,01) xor month(16,01) xor month(30,01) xor month(13,02) xor month(27,02) xor month(12,03) xor month(26,03) xor month(10,04) xor month(23,04) \\
    xor month(07,05) xor month(21,05) xor month(04,06) xor month(18,06) xor month(02,07) xor month(16,07) xor month(30,07) xor month(13,08) xor month(27,08) \\
    xor month(10,09) xor month(24,09) xor month(08,10) xor month(22,10) xor month(05,11) xor month(19,11) xor month(03,12) xor month(17,12) then infomorgen=3u08 endif

    if systemstart() and infoheute==0u08 then pdisplay(23,$keine Infos$, DATE,INACTIVE,GREY,InfoPageID)endif
    if systemstart() and infoheute==1u08 then pdisplay(23,$Papiertonne$,DATE,ACTIVE,GREEN,InfoPa geID)endif
    if systemstart() and infoheute==2u08 then pdisplay(23,$gelber Sack$,DATE,ACTIVE,GREEN,InfoPageID)endif
    if systemstart() and infoheute==3u08 then pdisplay(23,$Hausmüll$,DATE,ACTIVE,GREEN,InfoPageI D)endif

    if systemstart() and infomorgen==0u08 then pdisplay(24,$keine Infos$, DATE,INACTIVE,GREY,InfoPageID)endif
    if systemstart() and infomorgen==1u08 then pdisplay(24,$morgen Papier$,DATE,ACTIVE,GREEN,InfoPageID)endif
    if systemstart() and infomorgen==2u08 then pdisplay(24,$morgen gelber Sack$,DATE,ACTIVE,GREEN,InfoPageID)endif
    if systemstart() and infomorgen==3u08 then pdisplay(24,$morgen Hausmüll$,DATE,ACTIVE,GREEN,InfoPageID)endif


    [/highlight]

    hatte zuerst nur "or" Verknüpfungen .. das hat genauso nicht funktioniert..
    er zeigt mir (wenn ich "infoheute" bzw. "infomorgen" Anzeigen lasse) immer
    eine 3u08 an... hab dann mal "Hausmüll" auskommentiert.. dann wurde 2u08 angezeigt...

    ich vesteh eigentlich nicht warum er mir immer Fall 3u08 anzeigt..

    seht ihr den Fehler ??

    Gruß Martin
    Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

    Kommentar


      #3
      Hallo Martin,
      so wie ich das sehe hängt es daran, daß die months der Vergangenheit ja alle ein wahr melden, dadurch sticht m.E. der letzte Wert (3).
      Was meine ich damit?: Annahme: Datumsumsprung am 21.2. Dann ist m.E. Papier wahr wegen 24.1. und 21.2., aber
      Gelber Sack ist auch mit 4.1., 18.1., 1.2., 15.2 wahr,
      Hausmüll wahr mit 3.1.,17.1.,31.1.,14.2.

      Habe selbst noch nicht damit gearbeitet, aber sonst würde m.E. das Bsp. Sommer aus dem Handbuch keinen Sinn machen.

      Wie gesagt, hab es noch nicht benutzt und auch nix getestet.
      VG, Oliver

      Kommentar


        #4
        meinst du ??

        ich dachte month(x,y) ist nur an dem Tag x,y wahr ?!?!

        aber hab grad ins Handbuch geschaut... verdammt... du hast recht:
        Wirkung
        ● Der Ausgang ist 1b01, wenn das Datum erreicht oder bereits verstrichen ist.

        beim Geburtstag funktionierts, weil da ja nur nach einem month() abgefragt wird...

        so.. was mach ich jetzt.. werd mal ins Handbuch schaun..

        Merci für den Tipp !!

        EDIT: hmm.. find irgendwie nix passendes im Handbuch... hab aber keine Lust alle Mülltermine wie Geb. Termine zu schreiben..
        des wär eine endlos lange Liste !!!

        Andere Ideen ???
        Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

        Kommentar


          #5
          Hi Martin,
          ich habe das Thema auch noch auf meiner Tasklist stehen, Du bist nur schneller.
          Ich suche gerade nach einer Möglichkeit das aktuelle Datum, sprich Tag und Monat abzufragen, dann könntest Du einfach dagegen prüfen, sozusagen if 'aktueller Tag'=x and 'aktueller Monat=y' or ....

          Ich schau mal parallel...
          P.S.: Bin auch erst gestern abend über etwas ähnliches gestossen...chtime...

          Kommentar


            #6
            Vielleicht durch die Brust ins Auge (vielleicht hat Michael ja noch ne bessere Idee): setdate-Ergebnis zerlegen (mit split) und dann wie vorhin von mir beschrieben prüfen?

            Kommentar


              #7
              Zitat von Sandman60 Beitrag anzeigen
              Vielleicht durch die Brust ins Auge (vielleicht hat Michael ja noch ne bessere Idee): setdate-Ergebnis zerlegen (mit split) und dann wie vorhin von mir beschrieben prüfen?
              das hab ich jetzt mal gemacht:
              [highlight=epc]
              Jahr= split( convert(setdate(),$$), 6u16, 9u16)
              Monat= split( convert(setdate(),$$), 3u16, 4u16)
              Tag= split( convert(setdate(),$$), 0u16, 1u16)
              [/highlight]
              damit kannst du dir ein Datum zusammenbauen und dagegen prüfen...
              (Jahr braucht man dann natürlich nicht unbedingt.. habs aber der vollständigkeithalber noch gemacht)

              werd da vielleicht heut abend nochmal weiter basteln..

              was ich auch noch nicht vernünftig hinbekommen hab, ist, das er mir die Daten
              gleich beim Systemstart anzeigt... (funktioniert bei mir erst ab dem nächsten Tag)... vielleicht fällt dir dazu ja was ein..

              Gruß Martin
              Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

              Kommentar


                #8
                Also ungetestet nach Theorie sollte es durch Ergänzung/Änderung so klappen:
                ATag=split(convert(setdate(),$$),1u16,2u16)
                AMon=split(convert(setdate(),$$),4u16,5u16)

                Dann ersetzen Deiner Zeilen nach folgendem Muster:
                //Papier
                if (ATag==24 and AMon==01) or (ATag==21 and AMon==02) ... then infoheute=1u08 endif

                Kann das aktuell leider nicht testen, da ich nicht an meinen EIBPC rankomme...
                VG, Oliver

                Kommentar


                  #9
                  nur so nebenbei (so tief bin ich noch nicht ins Programmieren eingedrungen):
                  kann man die gewünschten Daten (1 Datum, mehrere Daten) nicht irgendwo im Netz ablegen (a'la Schaltpunktliste beim HS) wo man einfach die Daten und Geburtstage als csv definiert und sich so die langen Listendefinierungen im EIBPC erspart?
                  EPIX
                  ...und möge der Saft mit euch sein...
                  Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                  Kommentar


                    #10
                    So, parallele Gedankengleichheit bzgl. Zerlegung...

                    Wegen dem Startproblem mit dem nächsten Tag: Ich denke das Thema entfällt mit der Zerlegung, ist ein "Month-Problem". Ich hatte ähnliches bei HTIME, nur dort gibt es eben CHTIME, gibt es bei Month nicht, würde uns ja aber auch nix bringen wegen dem Vergangenheitswahr!

                    Kommentar


                      #11
                      Zitat von EPIX Beitrag anzeigen
                      kann man die gewünschten Daten (1 Datum, mehrere Daten) nicht irgendwo im Netz ablegen (a'la Schaltpunktliste beim HS)
                      Hallo Erich, naja, ablegen schon, aber nicht einlesen
                      Scherz beiseite: Durch die Brust ins Auge mag da was gehen, aber m.W. nach nix out of the box, und schon gar nicht was, damit man die Daten aktiv einholt!
                      Bernd (BMX) hat da schon was mit FTP vorbereitet, allerdings hängt das Thema noch nach meinem letzten Stand daran, dass Michael da noch was am EIBPC (irgendwas mit Nullen am Ende) anpassen/fixen muß....
                      Dadurch die "statische Programmierung"!
                      VG, Oliver

                      Kommentar


                        #12
                        hab jetzt noch ein :
                        [highlight=epc]
                        Infodat=convert(Tag,$$c14)+$.$c14+convert(Monat,$$ c14)
                        [/highlight]

                        gemacht.. dann brauch ich nur noch:

                        [highlight=epc]
                        if Infodat==$04.01$ or Infodat==$09.01$....
                        [/highlight]

                        das mit einer externen Liste wär natürlich super.. wenn das mal geht..
                        so muss man ja immer das Programm neu einspielen, wenn man mal einen
                        Kontakt hinzu fügt...

                        Gruß Martin
                        Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                        Kommentar


                          #13
                          oder GA anlegen, in die man die Werte schreibt...
                          ist natürlich von der Anzahl etwas begrenzt.
                          ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

                          Kommentar


                            #14
                            also das scheint so als würde das so funktionieren...

                            sieh anbei...

                            is halt a saumäßige schreiberei...

                            Gruß Martin
                            Angehängte Dateien
                            Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                            Kommentar


                              #15
                              Bernd (BMX) hat da schon was mit FTP vorbereitet, allerdings hängt das Thema noch nach meinem letzten Stand daran, dass Michael da noch was am EIBPC (irgendwas mit Nullen am Ende) anpassen/fixen muß.
                              vlt. ist das ja mit dem nächten Release behoben...
                              EPIX
                              ...und möge der Saft mit euch sein...
                              Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                              Kommentar

                              Lädt...
                              X