Temperatuur PAL! (weer-PAL)

Voor vragen over Playlist Automation Language.
Gebruikersavatar
Eagle 1974
****
Berichten: 82
Lid geworden op: 02 okt 2011, 08:34
SAM-versie: 4.2.2.*
Database: MySQL 5.0
Windows: 7 64-bits
Locatie: Delft

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door Eagle 1974 » 16 feb 2012, 16:39

zit nog klein foutje in de temperatuur pal
het is nu warmer dan de 5 graden wintertemp en kouder dan de 20 graden zomertemp,
maar er wordt tot een zomer geselecteerd voor de queue,
ik kom er iig niet zo snel achter wat er verkeerd gaat in deze pal.

Code: Selecteer alles

    PAL.Loop := True ;
        var S, woonplaats, uur, winter_woord_1, winter_woord_2, winter_woord_3, zomer_woord_1, zomer_woord_2, zomer_woord_3, winter_temp, zomer_temp  : String ;
        var starts, ends : Integer;
        var Song : TSongInfo ;
        var Q : TDataSet;
        Song := TSongInfo.Create ;
        //*******CONFIG*******
        //********************
BEGIN    //toeVeogd
  IF (Encoders[0].Status='Encoding') THEN      //toeVeogd
    Begin     //toeVeogd
        woonplaats := 'Delft' ;
        winter_temp := '5' ;
        winter_woord_1 := '%winter%' ;
        winter_woord_2 := 'ice%' ;
        winter_woord_3 := '%cold%' ;
        zomer_temp := '20' ;
        zomer_woord_1 := '%zomer%' ;
        zomer_woord_2 := '%summer%' ;
        zomer_woord_3 := '%hot%' ;
        uur := '3' ;   // alleen platen pakken die al 3 uur niet zijn geweest
        //********************
        //*****END*CONFIG*****
        // Hier haalt ie de temperatuur mee op
        S := WebToStr( 'http://www.google.com/ig/api?weather='+URLencode(woonplaats) ) ;
        PAL.WaitForTime('+00:00:05');
        starts := Pos('<temp_c data',S);
        if starts > 0 then
            Begin
                Delete(S, 1, starts + 13);
                ends := Pos('"/>', S);
                if ends > 0 then
                    Begin
                        Delete(S, ends, 1000);
                    End;
            End;
        // Hier laat ie bij output zien de temperatuur
        WriteLn(s) ;
        // artiest wordt aantal graden, het was niet anders ;)
        Song['artist'] := S ;
        // als het kouder is dan x graden dan de map winter
        if  Song['artist'] <= winter_temp then
            Begin
                WriteLn('Brrr weer') ;
                Q := Query('SELECT * FROM songlist where date_played <= DATE_SUB( NOW( ), INTERVAL :uur HOUR ) and  (title like :1 or title like :2 or title like :3) and (genre != "Kerst") LIMIT 1',[uur, winter_woord_1, winter_woord_2, winter_woord_3],False);
                Q.First;
                while not Q.EOF do
                    begin
                        Queue.Addfile(Q['filename'],IpTop);
                        Q.Next;
                    end;
                Q.Free;
            End
        // als het warmer wordt dan x graden dan map zomer
        else if  Song['artist'] >= zomer_temp then
            Begin
                WriteLn('blote billen weer :)') ;
                Q := Query('SELECT * FROM songlist where date_played <= DATE_SUB( NOW( ), INTERVAL :uur HOUR ) and (title like :1 or title like :2 or title like :3) LIMIT 1',[uur, zomer_woord_1, zomer_woord_2, zomer_woord_3],False);
                Q.First;
                while not Q.EOF do
                    begin
                        Queue.Addfile(Q['filename'],IpTop);
                        Q.Next;
                    end;
                Q.Free;
            End ;
        // geheugen schoonmaken
        Song.Free ;
        // en hier wacht ie steeds een half uurtje
        PAL.WaitForTime(T['NEXT30']) ;
    // Wout Franken & inspiratie dankzij Evertje , Broadcasterforum.nl
    // 3 juli 2011, 2 Februari 2012, 4 Februari 2012
    END:   //toeVeogd
END;    //toeVeogd
 
iemand een idee ? ? ?

Gebruikersavatar
Wout
Moderator
Berichten: 3227
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: SAM 2018.10
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door Wout » 18 feb 2012, 09:13

Klopt inderdaad, zal een oplossing zoeken.
Afbeelding

Robert
****
Berichten: 92
Lid geworden op: 19 dec 2008, 11:29
SAM-versie: SAM 2014.5
Database: MySQL 5.0
Windows: 7 64-bits
Locatie: Loon op Zand

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door Robert » 26 feb 2012, 19:14

Al enig idee Wout ?
Ik ben ook al van alles aan het proberen maar nog geen oplossing.................

Gebruikersavatar
Wout
Moderator
Berichten: 3227
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: SAM 2018.10
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door Wout » 27 feb 2012, 19:10

Kudos voor Evertje. [smilie=good.gif]

Code: Selecteer alles

Pal.Loop := True ;

    var Tmp, Place, w1, w2, w3, z1, z2, z3 : String;
    var Hours, wTemp, zTemp, Starts, Ends : Integer;
    var Q : TDataSet;

    Hours := 3;
    Place := 'Bergen op Zoom';
    // Winter
    wTemp := 5;
        w1 := '%winter%';
        w2 := 'ice%';
        w3 := '%cold%';
    // Zomer
    zTemp := 20;
        z1 := '%zomer%';
        z2 := '%summer%';
        z3 := 'hot%';

    Tmp := WebToStr('http://www.google.com/ig/api?weather=' + URLencode(Place));

    Pal.WaitForTime('+00:00:05');
        Starts := Pos('<temp_c data="',Tmp);
        if Starts > 0 then
            Begin
                Delete(Tmp, 1, Starts+13);
                Ends := Pos('"/>', Tmp);
                if Ends > 0 then
                    Begin
                        Delete(Tmp, Ends, 10000);
                    End;
            End;
        WriteLn(Tmp);
        StrToInt(Tmp);

        if StrToInt(Tmp) <= wTemp then
            Begin
                WriteLn('Winter!!');
                Q := Query('SELECT * FROM songlist WHERE date_played <= DATE_SUB(NOW(), INTERVAL :hours HOUR) AND  (title like :1 OR title like :2 OR title like :3) LIMIT 1',[Hours, w1, w2, w3], False);
                Q.First;
                While not Q.EOF do
                    Begin
                        Queue.Addfile(Q['filename'], IpTop);
                        Q.Next;
                    End;
                Q.Free;
            End
        else if StrToInt(Tmp) >= zTemp then
            Begin
                WriteLn('Zomer!!');
                Q := Query('SELECT * FROM songlist WHERE date_played <= DATE_SUB(NOW(), INTERVAL :hours HOUR) AND (title like :1 OR title like :2 OR title like :3) LIMIT 1',[Hours, z1, z2, z3], False);
                Q.First;
                While not Q.EOF do
                    Begin
                        Queue.Addfile(Q['filename'], IpTop);
                        Q.Next;
                    End;
                Q.Free;
            End;
    Pal.WaitForTime(T['NEXT30']);

// Wout Franken, Broadcasterforum.nl, 26 Februari 2012
// Thanks Evertje
 
Afbeelding

Gebruikersavatar
Eagle 1974
****
Berichten: 82
Lid geworden op: 02 okt 2011, 08:34
SAM-versie: 4.2.2.*
Database: MySQL 5.0
Windows: 7 64-bits
Locatie: Delft

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door Eagle 1974 » 28 feb 2012, 23:44

bedankt wout,
hij werkt nu goed.

Gebruikersavatar
Wout
Moderator
Berichten: 3227
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: SAM 2018.10
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door Wout » 20 aug 2012, 12:22

Nog wat foutjes weggewerkt.

Nu heb je 2 mappen/categorieën nodig.
1 met zomer (met daarin zomer-platen) & 1 met winter (met daarin winter-platen).

Code: Selecteer alles

Pal.Loop := True ;
    while ((Now >= T['07:00:00']) and (Now <= T['22:00:00'])) do
    begin
        var Tmp, Place : String;
        var wTemp, zTemp, Starts, Ends : Integer;
        var Q : TDataSet;

        Place := 'Bergen op Zoom';
        // Winter
        wTemp := 5;

        // Zomer
        zTemp := 20;

        Tmp := WebToStr('http://www.google.com/ig/api?weather=' + URLencode(Place));

        Pal.WaitForTime('+00:00:05');
        Starts := Pos('<temp_c data="',Tmp);

        if Starts > 0 then
        Begin
            Delete(Tmp, 1, Starts+13);
            Ends := Pos('"/>', Tmp);
            if Ends > 0 then
            Begin
                Delete(Tmp, Ends, 10000);
            End;
        End;
        WriteLn(Tmp);
        StrToInt(Tmp);

        if StrToInt(Tmp) <= wTemp then
        Begin
            Cat['winter'].QueueTop(smRandom, EnforceRules);
        End
        else if StrToInt(Tmp) >= zTemp then
        Begin
            WriteLn('Zomer!!');
            Cat['zomer'].QueueTop(smRandom, EnforceRules);
        End;
        Pal.WaitForTime(T['XX:35:00']);
    end;
// Wout Franken, Broadcasterforum.nl, 26 Februari 2012
// Thanks Evertje   
Afbeelding

Gebruikersavatar
pergo
VIP
Berichten: 437
Lid geworden op: 11 mei 2009, 19:47
SAM-versie: 4.9.1.*
Database: MySQL 5.5
Windows: 7 32-bits
Locatie: kopstad
Contacteer:

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door pergo » 20 aug 2012, 17:52

nu ook zomerse plaatjes op Radio Foxtrot FM
thnx Wout :-D :-D :-D

qradio
****
Berichten: 98
Lid geworden op: 18 dec 2009, 21:07
SAM-versie: SAM 2013.6
Database: MySQL 5.5
Windows: 8.1

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door qradio » 04 sep 2012, 15:48

Och dit is nou jammer :(

Krijg deze melding te zien nu de temperatuur boven de 25 graden komt vandaag. [smilie=beach.gif]


We're sorry...

... but your computer or network may be sending automated queries. To protect our users, we can't process your request right now.

In de output van de Pal komt de melding: forbidden :(

Gebruikersavatar
Wout
Moderator
Berichten: 3227
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: SAM 2018.10
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door Wout » 04 sep 2012, 19:44

Daar kan ik niks aan doen.
Google zie jouw als een automatische robot.

Misschien heb je in het verleden/heden de PAL zonder wachttijd laten lopen.
Of te veel laten oproepen in 1 uur.
Afbeelding

qradio
****
Berichten: 98
Lid geworden op: 18 dec 2009, 21:07
SAM-versie: SAM 2013.6
Database: MySQL 5.5
Windows: 8.1

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door qradio » 04 sep 2012, 20:06

Dat begrijp ik Wout.

Ieder uur kijkt hij naar de temperatuur.
Ook na 22:00 uur tot de volgende ochtend tot 7:00 uur staat het stil, precies zoals in het script.

Helaas heb ik de pech dat dit script op mijn pc wordt geblocked :(

Bedankt voor je reactie [smilie=wink3.gif]

Gebruikersavatar
Wout
Moderator
Berichten: 3227
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: SAM 2018.10
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door Wout » 04 sep 2012, 20:09

Als ik wat tijd over heb, zal ik eens kijken voor een andere aanbieder van het weer.
Afbeelding

Gebruikersavatar
pergo
VIP
Berichten: 437
Lid geworden op: 11 mei 2009, 19:47
SAM-versie: 4.9.1.*
Database: MySQL 5.5
Windows: 7 32-bits
Locatie: kopstad
Contacteer:

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door pergo » 05 sep 2012, 15:44

bij mij zegt hij forbidden ???

hitradioliberty
****
Berichten: 94
Lid geworden op: 21 apr 2010, 19:30
SAM-versie: SAM 2014.5
Database: MySQL 5.4
Windows: 7 64-bits

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door hitradioliberty » 07 sep 2012, 22:02

Hier dezelfde mededeling, heeft eerder wel een lange tijd goed gedraaid.
Jammer.

Gebruikersavatar
Wout
Moderator
Berichten: 3227
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: SAM 2018.10
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door Wout » 08 sep 2012, 19:54

Heb nu de informatie van buienradar.

Hij staat nu op Weer-Station Woensdrecht.
Als je ga kijken in de xml.buienradar.nl naar je dichtbij zijnde weer-station dan kan je dat invullen.

Tevens zit er een "i`m not a robot" in.
De PAL gaat nu willekeurig beginnen in een uur.
Daarmee voorkomen we dat me massaal inloggen in de xml, waardoor men denkt dat we robot`s zijn.
En we eraf worden geknikkerd. :(

Code: Selecteer alles

Pal.Loop := True ;
    while ((Now >= T['07:00:00']) and (Now <= T['22:00:00'])) do
    begin
        var Tmp : String;
        var wTemp, zTemp, Starts, Ends, min : Integer;
        var Q : TDataSet;

        min := RandomInt(55);
        // Winter
        wTemp := 5;

        // Zomer
        zTemp := 20;

        Tmp := WebToStr('xml.buienradar.nl');

        Pal.WaitForTime('+00:00:05');
        
        Starts := Pos('<stationnaam regio="Woensdrecht">',Tmp);
        Delete(Tmp, 1, Starts+14);
        
        if Starts > 0 then
        Begin
            Starts := Pos('<temperatuurGC>',Tmp);
            Delete(Tmp, 1, Starts+14);
            Ends := Pos('</temperatuurGC>', Tmp);
            if Ends > 0 then
            Begin
                Delete(Tmp, Ends, 1000000);
            End;
        End;
        WriteLn(Tmp);
        StrToInt(Tmp);

        if StrToInt(Tmp) <= wTemp then
        Begin
            Cat['winter'].QueueTop(smRandom, EnforceRules);
        End
        else if StrToInt(Tmp) >= zTemp then
        Begin
            WriteLn('Zomer!!');
            Cat['zomer'].QueueTop(smRandom, EnforceRules);
        End;
        
        Pal.WaitForTime(T['XX:'+IntToStr(min)+':00']);
    end;
    
// Wout Franken, Broadcasterforum.nl, 26 Februari 2012
// Thanks Evertje
// Aanpassing gemaakt op 8 September 2012     
Afbeelding

hitradioliberty
****
Berichten: 94
Lid geworden op: 21 apr 2010, 19:30
SAM-versie: SAM 2014.5
Database: MySQL 5.4
Windows: 7 64-bits

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door hitradioliberty » 08 sep 2012, 20:12

Beste Wout,

Bedankt ik ga deze nu gebruiken.

Groeten Ron

qradio
****
Berichten: 98
Lid geworden op: 18 dec 2009, 21:07
SAM-versie: SAM 2013.6
Database: MySQL 5.5
Windows: 8.1

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door qradio » 09 sep 2012, 12:18

Super bedankt Wout.

Gelukkig was ik niet de enige en neem jij wederom de moeite om iets nieuws te bedenken.

Helaas ... ik heb met deze nieuwe pal toch nog een error.
De temperatuur word tot achter de komma gemeten, dus bijvoorbeeld 26.6 graden.
In de pal leidt dit tot een error: Error: '26.6' is not a valid integer value.

Gezien mijn kennis over pal, ahum! lijkt het alsof die de nauwkeurige meting achter de komma niet kan verwerken?

Gebruikersavatar
Wout
Moderator
Berichten: 3227
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: SAM 2018.10
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door Wout » 09 sep 2012, 19:32

Error inderdaad bevestigd.
En ook een oplossing voor gezocht. [smilie=yahoo.gif]

Code: Selecteer alles

Pal.Loop := True ;
    while ((Now >= T['07:00:00']) and (Now <= T['22:00:00'])) do
    begin
        var Tmp, Place : String ;
        var WinterTemp, ZomerTemp, Starts, Ends, min : Integer ;
        var Temp : Float ;

        // Vul hier je dichtbijzijnde woonplaats in die vind je in de xml.buienradar.nl 
        Place := 'Woensdrecht' ;
        
        // willekeurig een nummer vanaf 0 tot en met 55 voor een random minuut
        min := RandomInt(55);

        // Winter temperatuur is kouder dan
        WinterTemp := 5;

        // Zomer temperatuur is warmer dan
        ZomerTemp := 20;

        Tmp := WebToStr('xml.buienradar.nl');

        Pal.WaitForTime('+00:00:05');

        Starts := Pos(Place,Tmp);
        Delete(Tmp, 1, Starts+14);

        if Starts > 0 then
        Begin
            Starts := Pos('<temperatuurGC>',Tmp);
            Delete(Tmp, 1, Starts+14);
            Ends := Pos('</temperatuurGC>', Tmp);
            if Ends > 0 then
            Begin
                Delete(Tmp, Ends, 1000000);
            End;
        End;

        Tmp := StringReplace(Tmp, '.',',', True);
        Temp :=  StrToFloat(Tmp) ;

        WriteLn(Temp);

        if Temp <= WinterTemp then
        Begin
            WriteLn('Winter!!');
            Cat['winter'].QueueTop(smRandom, EnforceRules);
        End
        else if Temp >= ZomerTemp then
        Begin
            WriteLn('Zomer!!');
            Cat['zomer'].QueueTop(smRandom, EnforceRules);
        End;

        Pal.WaitForTime(T['XX:'+IntToStr(min)+':00']);
    end;

// Wout, Broadcasterforum.nl, 26 Februari 2012
// Thanks Evertje
// Aanpassing gemaakt op 9 September 2012  
Afbeelding

qradio
****
Berichten: 98
Lid geworden op: 18 dec 2009, 21:07
SAM-versie: SAM 2013.6
Database: MySQL 5.5
Windows: 8.1

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door qradio » 09 sep 2012, 20:23

Had ik al gezegt: your are the master? [smilie=good2.gif]

Morgen weer genieten van deze leuke pal [smilie=beach.gif]

Bedankt Wout [smilie=good.gif]

hitradioliberty
****
Berichten: 94
Lid geworden op: 21 apr 2010, 19:30
SAM-versie: SAM 2014.5
Database: MySQL 5.4
Windows: 7 64-bits

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door hitradioliberty » 10 sep 2012, 11:38

Wout is inderdaad de master, deze werkt perfect.

Super bedankt, we gaan weer zomerse platen draaien.

Gebruikersavatar
Wout
Moderator
Berichten: 3227
Lid geworden op: 03 dec 2007, 14:17
SAM-versie: SAM 2018.10
Database: MySQL 8.0
Windows: Windows 10
Locatie: Bergen op Zoom
Contacteer:

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door Wout » 10 sep 2012, 11:57

Denk dat we moeten wachten met de zomerse platen, de zomer is voorbij.:(
Maar daar in tegen kan de winter niet vroeg genoeg beginnen, voor de winter-platen. ;)
Afbeelding

Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht