Sida 6 av 8

Re: Arduino - Anropa hemsida

Postat: 18 april 2018, 20:55:30
av GeekJoan
Ett problem som jag upptäckte idag när jag körde min sida på pajen. Klockan, den första av dom går två timmar fel, men om jag provar hemma på datorn så går båda rätt.
lcd.jpg
Krockar dessa två kodsnuttar med varandra?

HTML

Kod: Markera allt

<head>
 <script type="text/javascript" src="date_time2.js"></script>
</head>

<span id="date_time"></span><script type="text/javascript">window.onload = date_time('date_time');</script>
JS kod:

Kod: Markera allt

function date_time(id)
{
        date = new Date;
        year = date.getFullYear();
        month = date.getMonth();
        months = new Array('Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec');
        d = date.getDate();
        day = date.getDay();
        days = new Array('Söndag -', 'Måndag -', 'Tisdag -', 'Onsdag -', 'Torsdag -', 'Fredag -', 'Lördag -');
        h = date.getHours();
        if(h<10)
        {
                h = "0"+h;
        }
        m = date.getMinutes();
        if(m<10)
        {
                m = "0"+m;
        }
        s = date.getSeconds();
        if(s<10)
        {
                s = "0"+s;
        }
        result = ''+days[day]+' '+d+' '+months[month]+' '+year+' - '+h+':'+m+':'+s;
        document.getElementById(id).innerHTML = result;
        setTimeout('date_time("'+id+'");','1000');
        return true;
}

För klockan som är statisk så använder jag:

Kod: Markera allt

<?php
date_default_timezone_set('Europe/Stockholm');
$timestamp = time();
$date_time = date("H:i:s", $timestamp);
?>

<?php echo "- Sidan uppdaterades $date_time - ";?>

Re: Arduino - Anropa hemsida

Postat: 18 april 2018, 21:13:42
av johano
Du sätter tidszonen till "Europe/Stockholm" för den "statiska tiden" men inte för den andra. Kan vara det?
Edit: glöm det - svamlade bara...

Men att det har med tidszoner är nog helt klart. Kan vara så att new Date() inte bryr sig om default tidszonen
som time() gör...när det kör i browsern du har på pajen?
/j

Re: Arduino - Anropa hemsida

Postat: 19 april 2018, 00:02:23
av GeekJoan
Finns det något bättre sätt att få en klocka som uppdaterar sig där den typ tar tiden från servern och sen snurrar på från det den laddas?

Det klockskriptet jag kör nu hittade jag på någon sida. Har ingen aning om dess "funktion".

Re: Arduino - Anropa hemsida

Postat: 19 april 2018, 06:20:50
av Mickecarlsson
Javascript körs på den lokala dator som du visar sidan på, och tar tidszonen från den.
PHP-koden körs på din Pi och sätter tidszonen i koden innan den visar tiden.
Din Pi har helt enkelt fel tidszon i grunden, den står nog på UTC.

Re: Arduino - Anropa hemsida

Postat: 19 april 2018, 20:30:13
av GeekJoan
OK... Då ska vi se om jag inte kan ändra det på något sätt.

Re: Arduino - Anropa hemsida

Postat: 19 april 2018, 21:14:31
av Mickecarlsson
sudo dpkg-reconfigure tzdata
Svara på en massa frågor, sen är du klar :D

Re: Arduino - Anropa hemsida

Postat: 19 april 2018, 23:10:30
av GeekJoan
Jag har ju dratt in ett "OS" som man styr via en hemsida (lokalt) där man kan lägga upp sidor som ska visas på en skärm. Typ att ha i butiker eller liknande, så jag kommer inte åt någon promt. Eller det kanske jag gör om jag kopplar in ett tangentbord och gör något vid uppstart. Men jag kommer plocka ur minneskortet och editera:
/etc/rc.conf
lägga till: TIMEZONE="Europe/Stockholm"
och hoppas på det bästa. ?

Re: Arduino - Anropa hemsida

Postat: 20 april 2018, 06:18:21
av Mickecarlsson
Vad är det för OS? Har du länk till en websida där man kan hitta info om den?
Du borde kunna köra Putty (SSH) mot IP-adressen och logga in på pajen.

Re: Arduino - Anropa hemsida

Postat: 20 april 2018, 09:26:45
av GeekJoan

Re: Arduino - Anropa hemsida

Postat: 20 april 2018, 10:02:13
av GeekJoan
Tror jag löste det. Körde SSH och sudo dpkg-reconfigure tzdata.
:tumupp:

Re: Arduino - Anropa hemsida

Postat: 20 april 2018, 18:19:42
av Mickecarlsson
:tumupp:

Re: Arduino - Anropa hemsida

Postat: 21 april 2018, 05:36:19
av GeekJoan
Förut när jag velat plocka ut lite info från en hemsida så har jag använt mig av denna kod:

Kod: Markera allt

<?php
$content = file_get_contents('http://www.svt.se/svttext/web/pages/230.html');

preg_match('#britt pund(.*)</span>#', $content, $match);
preg_match('#US-dollar(.*)</span>#', $content, $match2);
preg_match('#1 euro(.*)</span>#', $content, $match3);

$GBP = $match[1];
$USD = $match2[1];
$EUR = $match3[1];

$GBP =  substr($GBP, -8);
$USD =  substr($USD, -8);
$EUR =  substr($EUR, -8);

echo "USD: $USD<br>EUR: $EUR<br>GBP: $GBP";
?>
Nu tänkte jag göra detta på denna sidan: https://www.svt.se/svttext/web/pages/404.html
Så för att skippa alla taggar, för det är många på den sidan så använde jag:

Kod: Markera allt

$content = strip_tags(file_get_contents('http://www.svt.se/svttext/web/pages/404.html'));
istället.

Så nått åt det här hållet:

Kod: Markera allt

<?php
$content = strip_tags(file_get_contents('http://www.svt.se/svttext/web/pages/404.html'));
preg_match('#Varmast(.*)Uppdateras#', $content, $match);
$GBP = $match[1];
echo $GBP;
?>
Men det funkar inte alls. Antar att det är för mycket text?

Re: Arduino - Anropa hemsida

Postat: 21 april 2018, 21:52:34
av Mickecarlsson
Inte snyggt, och öppet för massor av fel, men gör vad du vill.
Som vanligt, jag kodar i CLI, du får html-fixa till koden 8)

Kod: Markera allt

<?php
// Hämta sidan 404 från SVT text-tv
$content = strip_tags(file_get_contents('http://www.svt.se/svttext/web/pages/404.html'));
// Gör om strängen till en array
$new_content = explode("\n", $content);
// Ta bort remark på nästa rad för att dumpa arrayn för att se radnummer
// var_dump($new_content);
// Skriv ut de rader som innehåller rubrik och temperatur
// OBS Förustätter att rad 4 - 10 och 12-18 alltid är densamma
echo trim($new_content[4]) . "\n";
echo trim($new_content[5]) . "\n";;
echo trim($new_content[6]) . "\n";;
echo trim($new_content[7]) . "\n";;
echo trim($new_content[8]) . "\n";;
echo trim($new_content[9]) . "\n";;
echo trim($new_content[10]) . "\n";;

echo trim($new_content[12]) . "\n";;
echo trim($new_content[13]) . "\n";;
echo trim($new_content[14]) . "\n";;
echo trim($new_content[15]) . "\n";;
echo trim($new_content[16]) . "\n";;
echo trim($new_content[17]) . "\n";;
echo trim($new_content[18]) . "\n";;
?>

Re: Arduino - Anropa hemsida

Postat: 22 april 2018, 03:21:55
av GeekJoan
:tumupp:

Re: Arduino - Anropa hemsida

Postat: 22 april 2018, 20:42:23
av GeekJoan
Nu har jag stött på patrull igen. Försöker plocka ett värde från en sida och sen multiplicera med X (5 i detta fall). Men trots att jag använder float så får jag inte med decimalerna?
Plockar ut:
Senast
12,90

Kod: Markera allt

<?php
$content = file_get_contents('https://www.avanza.se/aktier/om-aktien.html/574898/spectracure');
preg_match('#title="Senast uppdaterad:(.*)</span>#', $content, $match);
$GBP = $match[1];
$GBP =  substr($GBP, 11);

echo $GBP;
$GBPCal = (float)$GBP*5;
echo "<BR>";
echo $GBPCal;
?>
Är det för att det är , och inte . ?