Uutiset:

20.08.2025
FinWX:n sivuston toimintahäiriöinen serveri korvataan uudella

Työt serverin korvaamiseksi uudella serverillä ovat aloitettu.

Lue korvaustyöstä lisää täältä.
FinWX:n ylläpito pahoittelee sivuston toimintahäiriöstä aiheutunutta haittaa.

Main Menu

Tuoreimmat viestit

#31
Sivustojen koodaaminen (HTML, PHP, MySQL, jne.) / Vs: parsia
Viimeisin viesti käyttäjältä iccb - keskiviikko, 14.05.2025, 17:47
Kurkkaa tästä ketjusta olisiko apuja:
https://community.home-assistant.io/t/collect-inverter-data-from-solarman-api/328760/232

Löytyykö valmistajan sivuilta jotain ohjetta tms?
#32
Sivustojen koodaaminen (HTML, PHP, MySQL, jne.) / Vs: parsia
Viimeisin viesti käyttäjältä ARu - tiistai, 13.05.2025, 08:45
Täytin kohdat omilla tiedoilla ja sivu antaa vastaukseksi:
Failed to retrieve valid data from Solarman API.

Joo sarjanumero ja token (pitkä numerosarja) pitäis olla myös mukana.
#33
Sivustojen koodaaminen (HTML, PHP, MySQL, jne.) / Vs: parsia
Viimeisin viesti käyttäjältä khyron - maanantai, 12.05.2025, 22:49
Huvikseen piti vielä kysyä osaisko co-pilot tehdä suoraan sopivan scriptin, ei ihan menny putkeen kun melkeen tiesi että jonkunlainen laitteen sarjanumero pitäs olla pyynnössä, mutta ei lopuksikaan osannu laittaa sitä oikein:) Boldasin promptit että on edes suunnilleen selkee.

LainaaCan you give me a php script that fetches data from solarman api and print Hz and kWh values from the reply?
Certainly! Below is a PHP script that fetches data from the Solarman API and extracts Hz (frequency) and kWh (energy production) values from the response.

php
<?php
// Solarman API URL
$apiUrl = "https://api.solarmanpv.com/v1/device/data"; // Replace with the correct endpoint

// API Key and Device Information (Modify accordingly)
$apiKey = "YOUR_API_KEY"; // Replace with your Solarman API key
$deviceId = "YOUR_DEVICE_ID"; // Replace with your actual device ID

// Initialize cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Content-Type: application/json",
    "Authorization: Bearer $apiKey"
]);

// Execute request and get response
$response = curl_exec($ch);
curl_close($ch);

// Decode JSON response
$data = json_decode($response, true);

// Check if data is valid
if (isset($data["dataList"])) {
    $hzValue = null;
    $kwhValue = null;

    // Iterate through the data list and extract relevant values
    foreach ($data["dataList"] as $item) {
        if ($item["key"] === "A_Fo1") {
            $hzValue = $item["value"];
        } elseif ($item["key"] === "Etdy_ge1") {
            $kwhValue = $item["value"];
        }
    }

    // Print results
    echo "AC Output Frequency: " . ($hzValue ? $hzValue . " Hz" : "Not found") . "\n";
    echo "Daily Production: " . ($kwhValue ? $kwhValue . " kWh" : "Not found") . "\n";
} else {
    echo "Failed to retrieve valid data from Solarman API.\n";
}
?>
Explanation:
cURL is used to make a request to the Solarman API.

API key and device ID need to be replaced with your own credentials.

The script parses the JSON response to extract A_Fo1 (frequency in Hz) and Etdy_ge1 (daily production in kWh).

Results are printed in a readable format.

Let me know if you need further improvements or adjustments! 😊

Where is variable $deviceId used?
You're right to question that—the $deviceId variable isn't actually used in the script!

While it's declared, there's no reference to it in the API request. If the Solarman API requires the deviceId, you'd need to append it to the request URL or include it in the request payload.

For example, if the API URL expects a query parameter:

php
$apiUrl = "https://api.solarmanpv.com/v1/device/data?deviceId=" . $deviceId;
Or if it's required in the JSON request body:

php
$payload = json_encode(["deviceId" => $deviceId]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
Good catch! If deviceId is necessary, be sure to include it properly. Let me know if you need help refining the request!
#34
Sivustojen koodaaminen (HTML, PHP, MySQL, jne.) / Vs: parsia
Viimeisin viesti käyttäjältä khyron - maanantai, 12.05.2025, 22:26
Huvikseni kysyin co-pilotilta koska en php:tä varsinaisesti osaa.

// Decode JSON into an associative array
$data = json_decode($json, true);

// Initialize variables to store extracted values
$aFo1 = null;
$etdyGe1 = null;

// Loop through the dataList to find the desired keys
foreach ($data["dataList"] as $item) {
    if ($item["key"] === "A_Fo1") {
        $aFo1 = $item["value"];
    } elseif ($item["key"] === "Etdy_ge1") {
        $etdyGe1 = $item["value"];
    }
}

// Output results
echo "A_Fo1: " . $aFo1 . " Hz\n";
echo "Etdy_ge1: " . $etdyGe1 . " kWh\n";

Tossa toki tehdään oletus että kyse olis solarman apin tuloksesta ja löytämäni dokumentin esimerkki on vielä validi.
#35
Sivustojen koodaaminen (HTML, PHP, MySQL, jne.) / Vs: parsia
Viimeisin viesti käyttäjältä iccb - lauantai, 10.05.2025, 21:58
Pitäisi kyllä nähdä se kohdesivun koko rakenne. Äkkiseltään näyttäisi xml tai json koodilta toi kuva?
Kannattaa kysellä chatgpl:tä vinkkejä myöskin.
#36
Sivustojen koodaaminen (HTML, PHP, MySQL, jne.) / Vs: parsia
Viimeisin viesti käyttäjältä ARu - tiistai, 06.05.2025, 17:59
Tällaisella koodilla haettu noi edellisen kuvan tiedot.

Voisko sen parsia jo tässävaiheessa kun hakee tietoja?
#37
Sivustojen koodaaminen (HTML, PHP, MySQL, jne.) / parsia
Viimeisin viesti käyttäjältä ARu - tiistai, 06.05.2025, 17:17
Tälläinen php sivu , joka hakee kyselyllä tiedot.



pv.PNG


Miten saan parsittua ainoastaan noi punaisella merkityt kohdat toiselle sivulle?

Ei oikein toi koodaustaito riitä.
#38
Kurikka-30 / Sademittaus otettu taas käyttö...
Viimeisin viesti käyttäjältä Ecu - torstai, 17.04.2025, 21:21
Sademittarin päältä on poistettu suoja ja samalla on suoritettu perushuoltoa.
#39
Kysymykset ja vapaa keskustelu sääasemaohjelmista / Vs: weatherwizz-ohjelmistoon u...
Viimeisin viesti käyttäjältä einari - keskiviikko, 09.04.2025, 07:12

Selvisihän kysymällä asiat :-)

Hei Duncan,

Tutustuin uuteen versioon hieman, siinä on paljon uusia hyviä asioita, kuten ne mobiilimallit, suurin osa verkkosivustoni kävijöistä käyttää puhelimen selainta.

On muutamia asioita, jotka aiheuttavat päänsärkyä, erityisesti virtuaaliset anturit. En oikein ymmärtänyt räätälöityä kaavaa, tarvitsisin parempia ohjeita sen käyttöön (anteeksi maalaisuuteni), esimerkiksi kuinka saada kuukausittaiset ja vuosittaiset kertymät sekä korkeimmat ja alimmat arvot vuosi- ja kuukausitasolla. Vanhassa versiossa on nuo virtuaaliset valmiina ja lisäsit joitain pyynnöstäni.

Myös tiedot sisäisistä antureista puuttuvat.

Lisäksi nuo vilkkuvat vaihtoehdot tekevät yleisilmeestä hieman huolestuttavan, eikö vaihtoehdoissa voisi olla vanhan version värivaihtoehtoja?

Jatketaan harjoittelua :-)


Hei Vesa,

Kiitos paljon palautteestasi. Olen todella iloinen kuullessani, että pidät uusista mobiilimalleista, varsinkin kun suurin osa vierailijoistasi käyttää puhelimen selaimia.

Mitä tulee mukautettuihin kaavoihin, ei tarvitse pyytää anteeksi ollenkaan. Ne on suunniteltu reaaliaikaisiin laskelmiin historiallisten tietojen sijaan. Esimerkiksi kuukausittaisille tai vuosittaisille kokonaismäärille tai suurimmille ja pienimmille arvoille etsit mukautettua anturiominaisuutta. Se on vielä kehitteillä, mutta versio siitä on pian saatavilla, ja sen pitäisi kattaa juuri se, mitä tarvitset.

Arvostan myös huomautustasi sisäisistä antureista ja vilkkuvista visuaalisista vaihtoehdoista. Lisää tehosteita ja tyylivaihtoehtoja lisätään ajan myötä, mutta olen huomauttanut, että haluat mieluummin rauhallisempia, hienovaraisempia vaihtoehtoja, kuten vanhassa versiossa.

Parhain terveisin

Duncan
WeatherWizz

#40
Kysymykset ja vapaa keskustelu sääasemaohjelmista / Vs: weatherwizz-ohjelmistoon u...
Viimeisin viesti käyttäjältä einari - sunnuntai, 06.04.2025, 10:14
Tuo testisivu odottaa niitä virtuaaliserverin arvoja, teen sitten valmiiksi kun saan ne, riittänee että laittaa viestiä melbournen suunnalle.

Tein puhelinversion (alustavan) joka löytyy tästä https://mystation.weatherwizz.com/viewer/2031
Pitää avata puhelimella tai kirjoittaa tuon puhelimen selaimeen, sitten kun lisää aloitusnäyttöön niin pääsee suoraan. tietsikalla näkyy isona..