abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 11:44 | Zajímavý projekt

Na Indiegogo byla spuštěna kampaň na podporu herní mini konzole a multimediálního centra RetroEngine Sigma od Doyodo. Předobjednat ji lze již od 49 dolarů. Požadovaná částka 20 000 dolarů byla překonána již 6 krát. Majitelé mini konzole si budou moci zahrát hry pro Atari VCS 2600, Sega Genesis nebo NES. Předinstalováno bude multimediální centrum Kodi.

Ladislav Hagara | Komentářů: 0
dnes 00:10 | Nová verze

Byla vydána verze 4.7 redakčního systému WordPress. Kódové označením Vaughan bylo vybráno na počest americké jazzové zpěvačky Sarah "Sassy" Vaughan. Z novinek lze zmínit například novou výchozí šablonu Twenty Seventeen, náhledy pdf souborů nebo WordPress REST API.

Ladislav Hagara | Komentářů: 0
včera 12:00 | Zajímavý projekt

Projekt Termbox umožňuje vyzkoušet si linuxové distribuce Ubuntu, Debian, Fedora, CentOS a Arch Linux ve webovém prohlížeči. Řešení je postaveno na projektu HyperContainer. Podrobnosti v často kladených dotazech (FAQ). Zdrojové kódy jsou k dispozici na GitHubu [reddit].

Ladislav Hagara | Komentářů: 20
včera 11:00 | Bezpečnostní upozornění

Byly zveřejněny informace o bezpečnostní chybě CVE-2016-8655 v Linuxu zneužitelné k lokální eskalaci práv. Chyba se dostala do linuxového jádra v srpnu 2011. V upstreamu byla opravena minulý týden [Hacker News].

Ladislav Hagara | Komentářů: 2
5.12. 22:00 | Komunita

Přibližně před měsícem bylo oznámeno, že linuxová distribuce SUSE Linux Enterprise Server (SLES) běží nově také Raspberry Pi 3 (dokumentace). Obraz verze 12 SP2 pro Raspberry Pi 3 je ke stažení zdarma. Pro registrované jsou po dobu jednoho roku zdarma také aktualizace. Dnes bylo oznámeno, že pro Raspberry Pi 3 je k dispozici také nové openSUSE Leap 42.2 (zprávička). K dispozici je hned několik obrazů.

Ladislav Hagara | Komentářů: 6
5.12. 06:00 | Zajímavý software

OMG! Ubuntu! představuje emulátor terminálu Hyper (GitHub) postavený na webových technologiích (HTML, CSS a JavaScript). V diskusi k článku je zmíněn podobný emulátor terminálu Black Screen. Hyper i Black Screen používají framework Electron, stejně jako editor Atom nebo vývojové prostředí Visual Studio Code.

Ladislav Hagara | Komentářů: 50
5.12. 06:00 | Zajímavý článek

I letos vychází řada ajťáckých adventních kalendářů. QEMU Advent Calendar 2016 přináší každý den nový obraz disku pro QEMU. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2016. Kalendáře Perl Advent Calendar 2016 a Perl 6 Advent Calendar přinášejí každý den zajímavé informace o programovacím jazyce Perl. Stranou nezůstává ani programovací jazyk Go.

Ladislav Hagara | Komentářů: 10
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 17
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 26
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (8%)
 (5%)
 (3%)
Celkem 781 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Meteostanice(open2300) - posílání dat do databáze mysql (+struktura databáze)

Indiánský lotr avatar 21.3.2011 19:54 Indiánský lotr | skóre: 23 | blog: ucim_sa | Nový Jičín
Meteostanice(open2300) - posílání dat do databáze mysql (+struktura databáze)
Přečteno: 791×

Dobrý večer, meteostanice poběží na Routeru WL500gPv2(oleg firmware) s programem open2300, Otázka zní, jakým způsobem nahrávat v intervalech data na databázový server?

Nabízí se 3 možnosti.

1. Přeposlat data pomoci skriptu z mysql2300 do oficiální databáze.

na routeru je MySQL: 4.1.22-3

Bude potřeba změnit jména tabulek a zaslat jen zvolené hodnoty.

2. Upravit funkci open2300.c jenž zasílá hodnoty do mysql2300 databáze

Možná nejideálnější, ale nutnost kompilace na routeru + obtížné na mé znalosti.

3. Vytvořit skript jenž bude hodnoty sbírat z log2300 a dále posílat do databáze (jine nazvy hodnot)

--dosavadní skript bych raději vynechal, jelikož je nutno jej spouštět přes php a využil nový s voláním mysql

Vypis z log2300:

Popis:    Timestamp Date Time Temp_indoor Temp_outdoor Dewpoint Rel_humidity_indoor Rel_humidity_outdoor Wind_speed Wind_direction-degrees Wind_direction_text Wind_chill Rain_1h Rain_24h Rain_total Rel_pressure Tendency Forecast
Příklad:  20051014081004 2005-Oct-14 08:10:04 27.6 10.2 7.2 35 82 0.0 90.0 E 10.2 0.00 0.00 125.35 1024.600 Falling Cloudy

 

Ofic databázový server:

MySQL: 5.1.49

dosavadní php script pro upload do databáze ze souboru: aktual-hodnoty

-- Struktura dosavadni mysql tabulky `hodnoty`
--

CREATE TABLE IF NOT EXISTS `hodnoty` (
  `cas` datetime DEFAULT NULL,
  `teplota` float DEFAULT NULL,
  `tlak` float DEFAULT NULL,
  `vlhkost` tinyint(4) DEFAULT NULL,
  `rychlost` float DEFAULT NULL,
  `smer` float DEFAULT NULL,
  KEY `cas` (`cas`),
  KEY `cas_2` (`cas`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Vypisuji data pro tabulku `hodnoty`
--

INSERT INTO `hodnoty` (`cas`, `teplota`, `tlak`, `vlhkost`, `rychlost`, `smer`) VALUES
('2009-06-21 18:49:12', 21.2, 1004.4, 51, 0, 337.5),

Dále přibudou proměnné srážky v cyklu 1hodina a 24hodin.

 

S databázemi nemám v podstatě žádné zkušenosti, navíc skript není má práce, ale chci meteostanici přemístit a tak bych byl rád kdybyste mi dali nějakou radu :-) a především jaký způsob bude nejjednodužší. Děkuji Indiánský lotr


Řešení dotazu:


Odpovědi

Indiánský lotr avatar 21.3.2011 20:17 Indiánský lotr | skóre: 23 | blog: ucim_sa | Nový Jičín
Rozbalit Rozbalit vše Re: Meteostanice(open2300) - posílání dat do databáze mysql (+struktura databáze)

Oprava: na routeru je Mysql 5.0.88-1, navíc uvedený script je pro starší řešení s open2300 ho nevyužiji.

Pavel Stárek avatar 21.3.2011 20:23 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: Meteostanice(open2300) - posílání dat do databáze mysql (+struktura databáze)
Však ten prográmek open2300 má nejspíš nějaký konfigurační soubor (nejspíš se jmenuje open2300.conf) a v něm si nastav MySQL server tak jak potřebuješ. Nemyslím si, že pokud je na tom OpenWRT verze 4.x, tak že by to nešlo spojit s verzí 5.x. Dokonce existuje SQL soubor, který vyrobí tabulku ve "správném" tvaru. Čili upravit si konfigurační soubor, aby se open2300 připojil na "správný" db server.
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
Indiánský lotr avatar 21.3.2011 20:26 Indiánský lotr | skóre: 23 | blog: ucim_sa | Nový Jičín
Rozbalit Rozbalit vše Re: Meteostanice(open2300) - posílání dat do databáze mysql (+struktura databáze)

Ano toho jsem si věděm, ovšem nejsem si jist jak udělat abych požadované hodnoty cas,teplota,tlak,vlhkost,rychlost,smer,srazky24h uložil na ofic databazovy server.

Pavel Stárek avatar 21.3.2011 20:27 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: Meteostanice(open2300) - posílání dat do databáze mysql (+struktura databáze)
No a pak si vybereš data něčím, co pro tebe nebude problém použít, buď PHP nebo Python, ale už na počítači, kde je ta "jiná" MySQL databáze (tedy ne na OpenWRT), a nebudeš muset kompilovat prográmek open2300 pro OpenWRT.
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
Indiánský lotr avatar 21.3.2011 20:31 Indiánský lotr | skóre: 23 | blog: ucim_sa | Nový Jičín
Rozbalit Rozbalit vše Re: Meteostanice(open2300) - posílání dat do databáze mysql (+struktura databáze)

Jo díky teď už to chápu :) akorát bych potřeboval vědět jakým scriptem aktualizuji poslední zapsané hodnoty do databáze

Pavel Stárek avatar 21.3.2011 20:44 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: Meteostanice(open2300) - posílání dat do databáze mysql (+struktura databáze)
Nejsem si jistý, zdali MySQL umí takovou funkci (nebo parametr příkazu SELECT), která by vracela pouze poslední vložené záznamy (dejme tomu od doby posledního vykonaného příkazu SELECT). Já bych to udělal asi tak: nejdřív SELECT * FROM weather... a pří zpracování jednotlivých řádků výsledku SELECTu bych na konci udělal DELETE * FROM weather WHERE timestamp=timestamp. Čímž v dalším kole tam budou jen ty nové. A hlavně, protože to pojede asynchroně (mezitím co se bude zpracovávat, tak open2300 tam mezitím klidně zapíše další data) si nesmažeš to, co nechceš.
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
Pavel Stárek avatar 21.3.2011 20:53 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: Meteostanice(open2300) - posílání dat do databáze mysql (+struktura databáze)
Takový pseudoprogram s pythonovkou syntaxí:
while True:
  recordset = cursor.execute("SELECT * FROM weather")
  while not recordset.EOF:
    mujtimestamp = recordset("timestamp")
    mojeteplota = recordset("temp_out")
    ...
    ...
    cursor.execute("INSERT INTO mojetabulka () ....")
    cursor.execute("DELETE FROM weather WHERE timestamp=mujtimestamp")
  sleep(30) #treba ve vterinach
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
Pavel Stárek avatar 21.3.2011 20:33 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: Meteostanice(open2300) - posílání dat do databáze mysql (+struktura databáze)
Prostě bych ho (OpenWRT) to nechal ukládat rovnou na oficiální db do patřičné tabulky (ten prográmek open2300 dělá jen bohapustý INSERT) a něčím druhým bych si to z této tabulky dával do jiné tabulky (ty teploty atd.). A nebo upravit to něco, aby si to bralo data rovnou z té tabulky, do které to ukládá OpenWRT.
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
Indiánský lotr avatar 29.3.2011 23:25 Indiánský lotr | skóre: 23 | blog: ucim_sa | Nový Jičín
Rozbalit Rozbalit vše Re: Meteostanice(open2300) - posílání dat do databáze mysql (+struktura databáze)

Po dlouhém týdnu se mi podařilo zprovoznit mysql5. Rád bych vytvořil .sql script jenž by buď přečetl log2300 a poslal hodnoty do mistni + vzdalene databaze. Nebo druhým způsobem s použitím mysql2300 a následné vytažení dat z databáze a poslání na server. Za jakékoliv nasměrování budu vděčný.

Dosavadní php script:

 < php

$file = FOpen("file:////tmp/open2300current.log", "r");
$aktualni_hodnoty = FRead($file, filesize("file:////tmp/open2300current.log"));
FClose($file);

$data = explode(" ", $aktualni_hodnoty);
$datum = explode("-", $data[1]);

$rok	  = "$datum[0]";
$mesic    = "$datum[1]";
$den      = "$datum[2]";
$aktualnicas = "$data[2]";
if ($mesic == 'Jan')
{ $mesic = "01"; }
elseif ($mesic == 'Feb')
{ $mesic = "02"; }
elseif ($mesic == 'Mar')
{ $mesic = "03"; }
elseif ($mesic == 'Apr')
{ $mesic = "04"; }
elseif ($mesic == 'May')
{ $mesic = "05"; }
elseif ($mesic == 'Jun')
{ $mesic = "06"; }
elseif ($mesic == 'Jul')
{ $mesic = "07"; }
elseif ($mesic == 'Aug')
{ $mesic = "08"; }
elseif ($mesic == 'Sep')
{ $mesic = "09"; }
elseif ($mesic == 'Oct')
{ $mesic = "10"; }
elseif ($mesic == 'Nov')
{ $mesic = "11"; }
elseif ($mesic == 'Dec')
{ $mesic = "12"; }
$datum = "$rok-$mesic-$den $aktualnicas";

$teplota = "$data[4]";
$tlak = $data[15];
$vlhkost = $data[7];
$rychlost = $data[8];
$smer = $data[9];
$srazky = $data[12];

// ulozi nova data
$sql = ("insert into hodnoty set cas='$datum',
          teplota=$teplota,
          tlak=$tlak,
          vlhkost=$vlhkost,
          rychlost=$rychlost,
          smer=$smer,
          srazky=$srazky");

$spojeni = mysql_connect('nejakyserver.cz', 'meteo', '');
MySQL_DB_Query('meteo_hodnoty', $sql, $spojeni);

mysql_Close();

$spojeni = mysql_connect('localhost', 'meteo', '');
MySQL_DB_Query('meteo_hodnoty', $sql, $spojeni);

mysql_Close();
? >
Indiánský lotr avatar 30.3.2011 09:49 Indiánský lotr | skóre: 23 | blog: ucim_sa | Nový Jičín
Rozbalit Rozbalit vše Re: Meteostanice(open2300) - posílání dat do databáze mysql (+struktura databáze)
Vyřešeno! :-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.