Temperatuur PAL! (weer-PAL)

Voor vragen over Playlist Automation Language.
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, 12:01

Wout schreef: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. ;)

Hallo Wouter, hier in het zuiden schijnt vandaag de zon nog volop en wordt het nog zomerse temperaturen van 26 graden.
Dit zal dan ook de laatste dag zijn helaas. :(

Gebruikersavatar
radiomenneke
Beginnende SAM-gebruiker
Berichten: 8
Lid geworden op: 03 jul 2012, 22:14
SAM-versie: 4.9.2.*
Database: MariaDB
Windows: XP

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door radiomenneke » 21 nov 2012, 21:21

Prachtige PAL, complimenten!

Ik vroeg me af, zou het ook mogelijk zijn om, net als bij een request, een melding achter de plaat te laten verschijnen? Iets als 'Hete zomerplaat' of 'IJskoude winterplaat' oid.

Groeten,
Jeroen

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 » 22 nov 2012, 23:46

Ja hoor geen probleem.
Is gewoon een CAT of FILE (filename) boven de andere CAT plaatsen.
Afbeelding

Gebruikersavatar
radiomenneke
Beginnende SAM-gebruiker
Berichten: 8
Lid geworden op: 03 jul 2012, 22:14
SAM-versie: 4.9.2.*
Database: MariaDB
Windows: XP

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door radiomenneke » 23 nov 2012, 07:56

Haha ok, ik ben niet zo heel erg thuis nog in de wereld van de PAL. Kun je uitleggen wat ik precies moet doen?

vriendelijke groet,

Jeroen

Gebruikersavatar
solutions
*
Berichten: 23
Lid geworden op: 15 mei 2011, 13:45
SAM-versie: SAM 2014.2
Database: MySQL 5.1
Windows: 7 64-bits
Contacteer:

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door solutions » 05 jun 2015, 13:39

Hoi Wout en andere forumbezoekers,

Temperatuurtje vandaag ... 32 graden volgens Buienradar. I

Goed genoeg met dit geweldige script meerdere zomerse platen voorbij te laten komen. Waarvoor dank!!! Ik zou eigenlijk op een dag zoals vandaag 1 zomerplaat op 2 of 3 platen voorbij willen laten komen. Echter haalt het script ergens een variabele vandaan die ervoor zorgt dat het pal script dan weer over 10 minuten, dan weer over 50 minuten voorbij komt. Dat doet hij ook indien ik Pal.WaitForTime(T['XX:'+IntToStr(min)+':00']); vervang door: PAL.WaitForPlayCount(1);

Ik heb diverse waarden in het script lager gemaakt om te zien of dat het gedrag beinvloed, maar dat lijkt niet het geval.

Kunnen jullie aangeven hoe ik het script dien aan te passen of wat ik over het hoofd zie? Alvast bedankt.

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 := 'Eindhoven' ;

        // willekeurig een nummer vanaf 0 tot en met 55 voor een random minuut
        min := RandomInt(1);

        // 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['Summer'].QueueTop(smRandom, EnforceRules);
        End;

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

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

Gebruikersavatar
solutions
*
Berichten: 23
Lid geworden op: 15 mei 2011, 13:45
SAM-versie: SAM 2014.2
Database: MySQL 5.1
Windows: 7 64-bits
Contacteer:

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door solutions » 11 jun 2015, 07:00

Helaas bied min := RandomInt(1) naar min := 1; ook geen wijzing en lijkt het inzetten van zomerplaten nog steeds random te gaan. Iemand nog een idee? Alvast bedankt.

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 » 23 jun 2015, 12:23

Je kan de code veranderen van

Code: Selecteer alles

        Begin
            WriteLn('Zomer!!');
            Cat['Summer'].QueueTop(smRandom, EnforceRules);
        End;
naar

Code: Selecteer alles

        Begin
            WriteLn('Zomer!!');
            Cat['Summer'].QueueTop(smRandom, EnforceRules);
            PAL.WaitForPlayCount(2);
            Cat['Summer'].QueueTop(smRandom, EnforceRules);
        End;
dan hoef de PAL niet steeds opnieuw te connecten naar buienradar,
anders krijg je teveel aanvragen en heb je kans, net als google weather, dat SAM geblockt wordt.

let op, script is nog niet live getest door me maar het zal moeten werken.
Afbeelding

Gebruikersavatar
solutions
*
Berichten: 23
Lid geworden op: 15 mei 2011, 13:45
SAM-versie: SAM 2014.2
Database: MySQL 5.1
Windows: 7 64-bits
Contacteer:

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door solutions » 23 jun 2015, 19:31

Hey Wout,

Dank je. Soms wil ik te moeilijk...
Dit is eigenlijk wel een prima alternatief ;) Nu maar weer wachten op goed weer. [smilie=music.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 » 14 apr 2018, 14:36

Ik dacht laat ik de temperatuur Pal script weer eens aanslingeren, maar helaas het werkt niet meer.
Iemand anders ervaart dit?

Lokatie Eindhoven, resultaat 0 en dat betekent winter plaatje maar zoals jullie weten schijnt hier lekker de zon.

renem
**
Berichten: 28
Lid geworden op: 09 jan 2018, 07:33
SAM-versie: 4.9.0.*
Database: MySQL 5.6
Windows: 7 32-bits

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door renem » 20 mei 2018, 23:54

Het lijkt ermee te maken te hebben dat buienradar van de xml een https pagina heeft gemaakt. En dat werkt niet met PAL. Ik weet zo even geen oplossing maar ik ga me er eens in verdiepen.

renem
**
Berichten: 28
Lid geworden op: 09 jan 2018, 07:33
SAM-versie: 4.9.0.*
Database: MySQL 5.6
Windows: 7 32-bits

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door renem » 21 mei 2018, 23:47

Ik heb het script aangepast, volgens mij is het niet meer mogelijk om buienradar.nl te gebruiken daarom ben ik overgestapt naar weerlive.nl. Daar kun je ten alle tijde het weer van Amsterdam opvragen. Deze heb ik dan ook in het script gezet. Gebruik je toch liever je eigen woonplaats dan kan dat ook maar dan moet je je op deze website registreren en een api key aanvragen. Daarna kun je iedere gewenste woonplaats gebruiken in het script door simpelweg de url aan te passen.

Dit is het nieuwe script:

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 ;

        // 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('weerlive.nl/api/json-data-10min.php?key=demo&locatie=Amsterdam'); //You can use your own city but you have to create an apikey at http://weerlive.nl/api/toegang/index.php , replace demo with your key and Amsterdam with your city

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

        Starts := Pos('"temp":',Tmp);

        if Starts > 0 then
        Begin
            Delete(Tmp, 1, Starts+8);
            Ends := Pos('", "gtemp', 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  

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 » 22 mei 2018, 15:50

Bedankt man! Ik ga hem gelijk invoeren in mijn radiostation.
Afbeelding

renem
**
Berichten: 28
Lid geworden op: 09 jan 2018, 07:33
SAM-versie: 4.9.0.*
Database: MySQL 5.6
Windows: 7 32-bits

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door renem » 22 mei 2018, 18:58

Ik heb het script nog iets aangepast. Als de weer website op de 1 of andere manier niet werkt dan wordt er met deze nieuwe versie niet steeds een winterplaat gedraaid, omdat het script denkt dat het 0 graden is. Als dit mocht gebeuren dan wordt er helemaal geen zomer of winterplaat gedraaid.

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 ;

        // 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('weerlive.nl/api/json-data-10min.php?key=demo&locatie=Amsterdam'); //You can use your own city but you have to create an apikey at http://weerlive.nl/api/toegang/index.php , replace demo with your key and Amsterdam with your city

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

        Starts := Pos('"temp":',Tmp);

        if Starts > 0 then
        Begin
            Delete(Tmp, 1, Starts+8);
            Ends := Pos('", "gtemp', Tmp);
            if Ends > 0 then
            Begin
                Delete(Tmp, Ends, 1000000);
            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;
        End;
        Pal.WaitForTime(T['XX:'+IntToStr(min)+':00']);
    end;

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

renem
**
Berichten: 28
Lid geworden op: 09 jan 2018, 07:33
SAM-versie: 4.9.0.*
Database: MySQL 5.6
Windows: 7 32-bits

Re: Temperatuur PAL! (weer-PAL)

Ongelezen bericht door renem » 31 mei 2018, 17:46

Nog een kleine aanpassing want ik denk dat het huidige script tussen 22.00 uur en 07.00 uur te CPU belastend was. Nu gaat ie om 22.00 uur op pauze tot 7 uur 's morgens ipv dat die iedere seconde het script opnieuw start.

Code: Selecteer alles

Pal.Loop := True ;
var a : Integer = 0;

    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 ;

        // 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('weerlive.nl/api/json-data-10min.php?key=demo&locatie=Amsterdam'); //You can use your own city but you have to create an apikey at http://weerlive.nl/api/toegang/index.php , replace demo with your key and Amsterdam with your city

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

        Starts := Pos('"temp":',Tmp);

        if Starts > 0 then
        Begin
            Delete(Tmp, 1, Starts+8);
            Ends := Pos('", "gtemp', Tmp);
            if Ends > 0 then
            Begin
                Delete(Tmp, Ends, 1000000);
            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;
        End;
        Pal.WaitForTime(T['XX:'+IntToStr(min)+':00']);
    end;

    if ((Now >= T['22:00:00']) and (Now <= T['23:59:59'])) then
     a:=1;
    if ((Now >= T['00:00:00']) and (Now <= T['07:00:00'])) then
     a:=0;

    PAL.WaitForTime(T['07:00:00']+a);


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

Plaats reactie
  • Vergelijkbare Onderwerpen
    Reacties
    Weergaves
    Laatste bericht