Witaj, Gość
Musisz się zarejestrować przed napisaniem posta.

Użytkownik
  

Hasło
  





Szukaj na forum

(Zaawansowane szukanie)

Statystyki
» Użytkownicy: 3,412
» Najnowszy użytkownik: brigadeeterniablr
» Wątków na forum: 1,256
» Postów na forum: 8,980

Pełne statystyki

Użytkownicy online
Aktualnie jest 126 użytkowników online.
» 0 Użytkownik(ów) | 124 Gość(i)
Bing, Google

Ostatnie wątki
Információforrások sherep...
Forum: LanKontroler V3
Ostatni post: PearceMekaisto
09-14-2025, 01:13 PM
» Odpowiedzi: 0
» Wyświetleń: 22
BMS Li-ion battery via Mo...
Forum: MODBUS Urzadzenia Custom
Ostatni post: 205theost
09-13-2025, 05:28 AM
» Odpowiedzi: 6
» Wyświetleń: 3,127
Czujniki wibracji, ciśnie...
Forum: LanKontroler V4
Ostatni post: begagenda
09-10-2025, 11:10 AM
» Odpowiedzi: 1
» Wyświetleń: 630
mqtt brak banych po aktua...
Forum: LanKontroler V4
Ostatni post: begagenda
09-10-2025, 11:08 AM
» Odpowiedzi: 2
» Wyświetleń: 673
R4DCB08 Kolektor temperat...
Forum: MODBUS Urzadzenia Custom
Ostatni post: KevinFarmer
08-28-2025, 04:36 AM
» Odpowiedzi: 5
» Wyświetleń: 2,654
Boiler controlling via PW...
Forum: LanKontroler V4
Ostatni post: notek
08-26-2025, 01:51 PM
» Odpowiedzi: 4
» Wyświetleń: 1,511
Czujnik jakości powietrza
Forum: LanKontroler - wersje oprogramowania
Ostatni post: batata
08-19-2025, 06:29 AM
» Odpowiedzi: 4
» Wyświetleń: 4,878
Licznik energii RELPOL RL...
Forum: MODBUS Urzadzenia Custom
Ostatni post: KevinFarmer
08-18-2025, 11:19 AM
» Odpowiedzi: 3
» Wyświetleń: 1,054
Czytnik QR
Forum: LanKontroler V4
Ostatni post: Seraphina
08-15-2025, 06:17 AM
» Odpowiedzi: 2
» Wyświetleń: 1,306
LK3.5-NOWY SOFT - KOLEJNE...
Forum: LanKontroler V3.5
Ostatni post: dusanstr
08-09-2025, 05:24 PM
» Odpowiedzi: 627
» Wyświetleń: 586,705

 
  Információforrások sherepe a modern döntéshozatalban
Napisane przez: PearceMekaisto - 09-14-2025, 01:13 PM - Forum: LanKontroler V3 - Brak odpowiedzi

Mindennapi élet során rengeteg helyzet adódik, amikor választanunk kell két vagy több lehetőség közül, legyen szó digitális szolgáltatásokról, kulturális élményekről vagy technológiai megoldásokról. Egyre többször fordulunk online tartalmakhoz, hogy előzetes ismereteket szerezzünk, és értékeléseken keresztül lássuk, melyik alternatíva kínálja a legmegfelelőbb élményt. A felhasználók által létrehozott visszajelzések sokszor nagyobb bizalmat keltenek, mint a hivatalos reklámok. Itt válik hangsúlyossá a kérdés: mennyire megbízhatóak azok a források, amelyek véleményekre és összehasonlításokra építenek?A mindennapi élet során rengeteg helyzet adódik, amikor választanunk kell két vagy több lehetőség közül, legyen szó digitális szolgáltatásokról, kulturális élményekről vagy technológiai megoldásokról. Egyre többször fordulunk online tartalmakhoz, hogy előzetes ismereteket szerezzünk, és értékeléseken keresztül lássuk, melyik alternatíva kínálja a legmegfelelőbb élményt. A felhasználók által létrehozott visszajelzések sokszor nagyobb bizalmat keltenek, mint a hivatalos reklámok. Itt válik hangsúlyossá a kérdés: mennyire megbízhatóak azok a források, amelyek véleményekre és összehasonlításokra építenek?
Az információszés folyamata változatos formákat ölt, és néha olyan területekhez is kapcsolódik, amelyek első ránézésre távol esnek a mindennapi döntésektől. Például a technológiai eszközök működését bemutató írások is segíthetnek abban, hogy jobban értsük a környezetünket. Gondoljunk csak arra, amikor valaki elolvassa a "Як працюють ігрові автомати? Вступ" című bevezetőt, amely ugyan szórakoztató eszközökről szól, de közben betekintést ad abba is, miként épül fel egy complex rendszer, hogyan kapcsolódik össze szoftver és hardver, és milyen matematikai elvek határozzák meg a működését. Ez a fajta tudás segíthet abban, hogy más területeken is kritikusan gondolkodjunk, és ne csak elfogadjuk, hanem meg is értsük az ajánlott lehetőségeket.
Érdemes tehát olyan platformokra támaszkodni, amelyek átfogó képet adnak a különféle választási opciókról. Az interneten található értékelő oldalak célja pontosan az, hogy összegyűjtsék a felhasználói tapasztalatokat, majd azokat rendszerezve, érthető modon mutassák be. Így a látogatók képet alkothatnak arról, hogy egy adott szolgáltatásnak milyen erősségei és hiányosságai vannak. A folyamat emlékeztethet egy átlátható piactérre, ahol mindenki véleményt cserélhet, és ahol a közösségi tapasztalatok egyre inkább felülírják a hagyományos marketingüzeneteket.
Amikor például egy új online szolgáltatást keresünk, gyakran belebotlunk a közösség által írt beszámolókba. Az olyan kifejezések, mint energy kaszinó vélemények, nem pusztán játékos felhanggal bírnak, hanem arra is rámutatnak, hogy a közösségi értékelések mennyire fontos sherepet játszanak a választásban. A név önmagában emlékeztet minket arra, hogy a közösségben megosztott tapasztalat gyakran kulcsfontosságú, amikor döntést kell hoznunk egy számunkra ismeretlen területen.
A kritikai hozzáállás viszont elengedhetetlen. Nem minden értékelés objectív, hiszen egyes írások mögött érdekek is húzódhatnak. Ezért érdemes több forrást párhuzamosan megvizsgálni, összevetni a különböző nézőpontokat, és csak ezek után levonni a következtetéseket. Az összehasonlító felületek éppen ebben segítenekConfusedtrukturáltan jelenítik meg az információt, hogy az olvasó gyorsan felismerje a mintázatokat.
A felhasználók egyre tudatosabban fordulnak ezekhez az oldalakhoz, mivel a rohanó világban nincs idő minden lehetőséget személyesen kiprobálni. A döntés támogatására szolgáló platformok így nem csupán kényelmet biztosítanak, hanem egyfajta közösségi tudást is közvetítenek. Az itt szeett tapasztalatok sokszor túlmutatnak egy-egy konkrét terméken vagy szolgáltatáson: általános szemléletformáló erővel bírnak, hiszen megtanítanak arra, hogyan elemezzünk, hogyan válasszunk, és hogyan értékeljük kritikusan a lehetőségeket.
Végső soron az értékelő oldalak nem csupán listák vagy számszerű pontszámok halmazai, hanem közösségi terekké váltak, amelyekben a kollektív tudás és tapasztalat találkozik. Ebben rejlik igazi értékük: olyan eszközöket adnak a kezünkbe, amelyek segítségével tudatosabb, megalapozottabb döntéseket hozhatunk, legyen szó bármilyen hétköznapi vagy speciális választási helyzetről.

Wydrukuj tę wiadomość

  Firmware do LK 3.5
Napisane przez: marcinb - 08-07-2025, 12:46 PM - Forum: LanKontroler V3.5 - Brak odpowiedzi

Cześć,
Przez przypadek wrzuciłem firmware z LK 3.9 do LK 3.5 Sad

Da się go jakoś uratować ??

Wydrukuj tę wiadomość

  Backup automat php
Napisane przez: stAch - 07-28-2025, 01:00 PM - Forum: LanKontroler - wersje oprogramowania - Brak odpowiedzi

jeden klik i zapisane nawet 100 backupów z LK3 w różnych lokalizacjach - nic prostszego.

Kod PHP:
<?php
error_reporting
(E_ALL);
parse_str($_SERVER['QUERY_STRING']);

if (isset(
$_GET['cron'])) {
    $_POST['backups'] = 1;
    $_SERVER['REQUEST_METHOD'] = 'POST';
}

$folder "backups";
$pattern '/_(\d{4}-\d{2}-\d{2})_setting\.bin$/';
// Usuwanie plików (na podstawie daty z POST)
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['date'])) {
    $dateToDelete $_POST['date'];
    foreach (scandir($folder) as $file) {
        if (preg_match($pattern$file$matches) && $matches[1] === $dateToDelete) {
            unlink($folder DIRECTORY_SEPARATOR $file);
        }
    }
    echo json_encode(['success' => true]);
    exit;
}
// Backup i lista
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['backups'])) {
    $messages "";
    // ? Dane logowania globalne
    $globalUser 'admin';
    $globalPass 'xxxxxxx';
    // ? Lista hostów
    $sources = [
        ['ip' => '192.168.1.20''port' => 97,  'name' => 'SOL'],
        ['ip' => '192.168.1.20''port' => 98,  'name' => 'CWU''user' => 'admin''pass' => 'xxxxxx'],
        ['ip' => '192.168.1.20''port' => 99,  'name' => 'GSM'],
        ['ip' => '192.168.1.20''port' => 100'name' => 'PCO'],
    ];
    $remotePath "/lk3_settings.bin";
    $backupDir __DIR__ '/backups';
    if (!is_dir($backupDir)) {
        mkdir($backupDir0777true);
    }
    $date date("_Y-m-d");
    foreach ($sources as $source) {
        $ip   $source['ip'];
        $port $source['port'];
        $name $source['name'];
        $user $source['user'] ?? $globalUser;
        $pass $source['pass'] ?? $globalPass;
        $url "http://$ip:$port$remotePath";
        $auth base64_encode("$user:$pass");
        $opts = [
            "http" => [
                "method" => "GET",
                "header" => "Authorization: Basic $auth\r\n"
            ]
        ];
        $context stream_context_create($opts);
        $content = @file_get_contents($urlfalse$context);
        if ($content === false) {
            $messages .= "<div>? Błąd pobierania: $url</div>";
            continue;
        }
        $filename "{$name}{$date}_setting.bin";
        $filepath $backupDir '/' $filename;
        if (file_put_contents($filepath$content) !== false) {
            $messages .= "<div>✔ Zapisano: $filename</div>";
        } else {
            $messages .= "<div>? Błąd zapisu: $filename</div>";
        }
    }
    // ? Lista backupów
    ob_start();
    $groups = [];
    foreach (scandir($folder) as $file) {
        if (preg_match($pattern$file$matches)) {
            $date $matches[1];
            $groups[$date][] = $file;
        }
    }
    if (empty($groups)) {
        echo "<p>Brak plików.</p>";
    } else {
        foreach ($groups as $date => $files) {
            echo "<div class='group' data-date='" htmlspecialchars($date) . "'>";
            echo "<button class='delete-btn' onclick='deleteGroup(\"$date\")'>Usuń grupę</button>";
            echo "<h3>" htmlspecialchars($date) . "</h3>";
            foreach ($files as $file) {
                $fileEnc rawurlencode($file);
                echo "<div class='file'>";
                echo htmlspecialchars($file);
                echo " <a class='download' href='backups/$fileEnc' download>Pobierz</a>";
                echo "</div>";
            }
            echo "</div>";
        }
    }
    $html ob_get_clean();
    echo json_encode([
        'success' => true,
        'html' => $html,
        'messages' => $messages
    
]);
    exit;
}
// Pierwsze wczytanie listy
$groups = [];
foreach (
scandir($folder) as $file) {
    if (preg_match($pattern$file$matches)) {
        $date $matches[1];
        $groups[$date][] = $file;
    }
}
?>
<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <title>LK3 Backups</title>
    <style>
        body { font-family: Arial; padding: 20px; }
        .group { border: 1px solid #ccc; padding: 10px; margin-bottom: 20px; border-radius: 5px; }
        .group h3 { margin: 0 0 10px 0; }
        .file { margin-left: 20px; }
        .delete-btn {
            background: #d00;
            color: white;
            border: none;
            padding: 5px 10px;
            float: right;
            cursor: pointer;
        }
        .download {
            background: #4CAF50;
            color: white;
            padding: 3px 8px;
            margin-left: 10px;
            text-decoration: none;
            border-radius: 3px;
        }
        .download:hover {
            background: #45a049;
        }
        .info {
            margin-top: 20px;
            padding: 10px;
            background: #f9f9f9;
            border: 1px dashed #aaa;
            white-space: pre-wrap;
        }
        button.refresh {
            background: #007bff;
            color: white;
            border: none;
            padding: 6px 12px;
            cursor: pointer;
        }
    </style>
</head>
<body>
<h1>Kopie zapasowe LK3 wg. daty</h1>
<div id="backup-list">
<?php if (empty($groups)): ?>
    <p>Brak plików.</p>
<?php else: ?>
    <?php foreach ($groups as $date => $files): ?>
        <div class="group" data-date="<?= htmlspecialchars($date?>">
            <button class="delete-btn" onclick="deleteGroup('<?= $date ?>')">Usuń grupę</button>
            <h3><?= htmlspecialchars($date?></h3>
            <?php foreach ($files as $file): ?>
                <div class="file">
                    <?= htmlspecialchars($file?>
                    <a class="download" href="backups/<?= rawurlencode($file?>" download>Pobierz</a>
                </div>
            <?php endforeach; ?>
        </div>
    <?php endforeach; ?>
<?php 
endif; ?>
</div>
<div class="info">
    <button class="refresh" onclick="getBackups()">? Aktualizuj (pobierz backupy)</button>
</div>
<script>
function deleteGroup(date) {
    if (!confirm(`Czy na pewno chcesz usunąć wszystkie pliki z datą ${date}?`)) return;
    fetch('', {
        method: 'POST',
        headers: {'Content-Type': 'application/x-www-form-urlencoded'},
        body: 'date=' + encodeURIComponent(date)
    })
    .then(res => res.json())
    .then(data => {
        if (data.success) {
            document.querySelector(`.group[data-date="${date}"]`).remove();
        } else {
            alert('Błąd przy usuwaniu.');
        }
    });
}
function getBackups() {
    document.querySelector('.info').innerHTML = '⏳ Trwa pobieranie...';
    fetch('', {
        method: 'POST',
        headers: {'Content-Type': 'application/x-www-form-urlencoded'},
        body: 'backups=1'
    })
    .then(res => res.json())
    .then(data => {
        if (data.success) {
            if (data.html) {
                document.querySelector('#backup-list').innerHTML = data.html;
            }
            if (data.messages) {
                document.querySelector('.info').innerHTML = data.messages;
            } else {
                document.querySelector('.info').innerHTML = '✅ Gotowe.';
            }
        } else {
            document.querySelector('.info').innerHTML = '❌ Błąd przy pobieraniu.';
        }
    })
    .catch(err => {
        console.error('Fetch error:', err);
        document.querySelector('.info').innerHTML = '❌ Wystąpił błąd sieci.';
    });
}
</script>
</body>
</html> 
zapisać na serwerze ...edytować ip i porty do pobrania plików backups oraz globalne hasło i usera czyli fragment kodu poniżej.
Kod:
    // ? Dane logowania globalne
    $globalUser = 'admin';    //globalny user
    $globalPass = 'pass';     //globalne haslo

    // ? Lista hostów
    $sources = [
        ['ip' => '192.168.1.100', 'port' => 80,  'name' => 'SOL'],
        ['ip' => '132.138.3.220', 'port' => 98,  'name' => 'CWU', 'user' => 'user', 'pass' => '1234'],
        ['ip' => '132.138.3.220', 'port' => 99,  'name' => 'GSM'],
        ['ip' => '132.138.3.220', 'port' => 100, 'name' => 'PCO'],
    ];
jeśli wszystkie maja takie samo to nie musicie go podawać dla każdego z osobna wystarczy je podać jako globalne 
skrypt pobiera zarówno z lokal ip:80 jak i po external ip:port można dodać go do crona by sam cyklicznie robił kopie na serwerze.
Kod:
0 2 * * * curl -s "http://twojadomena.pl/backup.php?cron=1" > /dev/null 2>&1


pytania lub problemy chętnie p/odpowiem...

Wydrukuj tę wiadomość

  mqtt brak banych po aktualizacji 1.24
Napisane przez: sl500 - 06-11-2025, 10:30 AM - Forum: LanKontroler V4 - Odpowiedzi (2)

Po aktualizacji do wersji 1.24 połączenie z mqtt zgasło. Nie pomogła próba dodania nowego urządzenia na serwerze i ponowna konfiguracja po stronie lk. Po stronie lk cały czas jest: MQTT DISCONNECTED.

Wróciłem do wersji 1.18a

Wydrukuj tę wiadomość

Bug LK4 błędy w pomiarze energii
Napisane przez: lodomir - 06-01-2025, 10:24 PM - Forum: LanKontroler V4 - Odpowiedzi (3)

Zauważyłem niepoprawne działanie pomiarów energii w LK4 wersja oprogramowania 1.24 (w poprzedniej 1,18a było podobnie).
Błąd polega na tym, że urządzenie zwiększa wskazania liczników nieadekwatnie do przypisanych im wyzwalaczy.

Na przykład jeśli P/E1 jest sterowane przez INPD4 (impulsator gazomierza), P/E5 przez INPD1 a P/E6 przez INPD2, to przy kolejnych impulsach na wejściu INPD1 lub INPD2 zwiększają się adekwatnie wartości P/E5 i P/E6, ale również wartość P/E1. Wygląda na to tak, jakby algorytm mylił wyzwalacze.


   

Wydrukuj tę wiadomość

  Lk 3.8
Napisane przez: syky95 - 04-28-2025, 06:59 PM - Forum: LanKontroler V3.5 - Brak odpowiedzi

Hello, is there any way to factory reset the LK 3.8? After holding the reset button, nothing happens and the relay doesn't click like it used to. Thank you for any advice.

Wydrukuj tę wiadomość

  Wirtualny OLED
Napisane przez: krzychor - 04-26-2025, 08:21 AM - Forum: LanKontroler V3.5 - Brak odpowiedzi

witam,
w funkcjonalności Wirtualny OLED nie działa "obcinacz" dla Power, Energy, Diff co powoduje że wartości sa wyświetlane z dużą ilością cyfr po przecinku
czy da się to jakoś ustawić?
sądzę że to błąd softu, czy twórcy mogli by to poprawić?
pozdrawiam

Wydrukuj tę wiadomość

  tMPC-04 - Licznik impulsów
Napisane przez: rpce - 04-25-2025, 03:13 PM - Forum: LanKontroler V3.5 - Brak odpowiedzi

Czemu w liczniku nie zrobiono jak w tiny ESP podtrzymywania akumulatorkiem. Byłoby super a tak trzeba zawsze coś dłubać.

Wydrukuj tę wiadomość

  MODBUS - niepoprawna obsługa
Napisane przez: xerxes7 - 04-07-2025, 11:43 PM - Forum: LanKontroler V4 - Odpowiedzi (1)

Witam,
Sekcje "Custom" w obsłudze MODBUS zawiera bład.
Próbując czytać R4DCB08 znalazłem problem polegający na nieprawidłowym odczycie temperatury z DS18B20.
Konfiguracja:
{"name":"8xDS_0x0C","bitrate":0,"parityBit":0,"stopBit":1,"delayBetweenReads":1,"readings":[{"index":1,"active":true,"name":"DS1","unit":"C","divisor":10,"address":0,"functionCode":3,"variableType":0,"endian":0},{"index":2,"active":true,"name":"DS2","unit":"C","divisor":10,"address":1,"functionCode":3,"variableType":0,"endian":0},{"index":3,"active":true,"name":"DS3","unit":"C","divisor":10,"address":2,"functionCode":3,"variableType":0,"endian":0},{"index":4,"active":true,"name":"DS4","unit":"C","divisor":10,"address":3,"functionCode":3,"variableType":0,"endian":0},{"index":5,"active":true,"name":"DS5","unit":"C","divisor":10,"address":4,"functionCode":3,"variableType":0,"endian":0},{"index":6,"active":true,"name":"DS6","unit":"C","divisor":10,"address":5,"functionCode":3,"variableType":0,"endian":0},{"index":7,"active":true,"name":"DS7","unit":"C","divisor":10,"address":6,"functionCode":3,"variableType":0,"endian":0},{"index":8,"active":true,"name":"DS8","unit":"C","divisor":10,"address":7,"functionCode":3,"variableType":0,"endian":0}]}

Pomimo dzielnika przez 10 LK4 czyta tylko całkowitą część z pomiaru:
   

Szczęśliwie nie ma już problemów z ujemnymi wartościami, które były problem w LK3.8 i powodem rezygnacji z użytkowania urządzenia.
Dlatego bardzo proszę o poprawę tego błędu albo zaprzestanie mówienia o możliwości konfigurowania "custom modules", bo wygląda to na naciąganie ludzi na wydatki.

Pozdrawiam, licząc na szybką korektę błędu.
J.J.

Wydrukuj tę wiadomość

  LK sterowanie sauną
Napisane przez: marcinb - 02-28-2025, 09:03 AM - Forum: LanKontroler V3.5 - Odpowiedzi (1)

Witajcie,
W najbliższym czasie stanę przed dylematem sterowania sauną.
Czy kupować gotowy produkt czy zaprząc do tego LK3.

Jak Wy to widzicie ??

Wydrukuj tę wiadomość