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í
×
včera 00:22 | Pozvánky

Richard Stallman, zakladatel hnutí svobodného softwaru, projektu GNU a Free Software Foundation, vystoupí 6. června od 17:30 v Brně v kině Scala se svou přednáškou Free Software Movement and GNU/Linux Operating System. Přednášku organizuje Ústav práva a technologií Masarykovy univerzity.

Ladislav Hagara | Komentářů: 31
17.5. 21:11 | IT novinky

Hewlett Packard Enterprise (NYSE:HPE) kupuje společnost Cray Inc. (Nasdaq:CRAY) za přibližně 1,3 miliardy dolarů. Výrobce superpočítačů Cray má v seznamu 500 nejvýkonnějších superpočítačů na světě TOP500 aktuálně 52 superpočítačů. S Intelem staví další superpočítač Aurora. S AMD staví superpočítač za 600 milionů dolarů s názvem Frontier. Ten by měl v roce 2021 převzít vedení v TOP500.

Ladislav Hagara | Komentářů: 3
17.5. 19:44 | Zajímavý projekt

Ondřej Kokešpodcastu Dataři představuje projekt Česká otevřená data. Jedná se o sadu skriptů, které stahují především finanční data poskytovaná státními institucemi. V rozhovoru vysvětluje, že ke správné interpretaci dat jsou potřeba doménové znalosti, a popisuje zkušenosti, jak získat dokumentaci, která u datových sad často chybí.

Fluttershy, yay! | Komentářů: 0
17.5. 10:11 | Zajímavý projekt

Nadace XPRIZE vyhlásila před pěti lety soutěž Global Learning XPRIZE o nejlepší open source výukový program nebo inovativní způsob výuky, který umožní dětem v rozvojových zemích samostatně se naučit číst, psát a počítat. Tento týden byly vyhlášeny výsledky (YouTube). O první místo a 10 milionů dolarů se podělili Kitkit School a onebillion. Pět vítězných výukových programů bylo zveřejněno na GitHubu.

Ladislav Hagara | Komentářů: 19
17.5. 06:00 | Komunita

Dalších šest produktů od společnosti ThinkPenguin získalo certifikaci RYF (Respects Your Freedom, Respektuje vaši svobodu) udělovanou Nadací pro svobodný software (FSF). Certifikaci RYF má nově například také převodník z USB na paralelní port (LPT). Certifikace RYF byla představena v říjnu 2012.

Ladislav Hagara | Komentářů: 9
16.5. 23:11 | Pozvánky

Dnes je Světový den přístupnosti, anglicky Global Accessibility Awareness Day (GAAD, Wikipedie). Světový den přístupnosti vznikl v roce 2012. Jeho smyslem je šířit osvětu v této oblasti mezi širokou veřejností a motivovat ji k diskusím, přemýšlení a chuti dozvědět se o tématice přístupnosti webu, dokumentů, software, mobilních aplikací, asistivních technologiích či potřebách lidí s nejrůznějším postižením něco nového. O víkendu

… více »
Ladislav Hagara | Komentářů: 0
16.5. 19:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 164. brněnský sraz, který proběhne v pátek 17. května od 18:00 v restauraci Přístav u Vodů u Brněnské přehrady aneb v hantecu u Prýglu.

Ladislav Hagara | Komentářů: 2
16.5. 07:00 | Nová verze

Byla vydána nová major verze 9.0 svobodného systému pro řízení přístupu k síti (NAC) PacketFence (Wikipedie). Přehled novinek v oznámení o vydání. Pro uživatele předchozích verzí jsou k dispozici poznámky k aktualizaci.

Ladislav Hagara | Komentářů: 2
16.5. 06:00 | Bezpečnostní upozornění

K názvům Microarchitectural Data Sampling (MDS) a ZombieLoad Attack aktuálních bezpečnostních chyb v procesorech Intel přibyly nové názvy RIDL a Fallout. Na stránce RIDL and Fallout: MDS attacks jsou k dispozici další videoukázky, technické informace nebo i nástroj pro otestování, zda je konkrétní systém zranitelný. Ke stránkám ZombieLoad Attack, RIDL a Fallout lze přistupovat ze stránky CPU.fail.

Ladislav Hagara | Komentářů: 17
15.5. 18:22 | Zajímavý článek

V Edici CZ.NIC vyšla kniha Porty, bajty, osmibity od Martina Malého. Koupit ji lze tištěnou nebo zdarma stáhnout ve formátech PDF (3,6 MB), EPUB (10,8 MB ) a MOBI (28,7 MB). Jedná se o volné pokračování knihy Hradla, volty, jednočipy. Další informace ke knihám, odkazy na zdrojové kódy nebo errata na webových stránkách Porty, bajty, osmibity a Hradla, volty, jednočipy.

Ladislav Hagara | Komentářů: 25
GPU kterého výrobce aktuálně preferujete pro provoz Linuxu?
 (48%)
 (25%)
 (25%)
 (2%)
Celkem 298 hlasů
 Komentářů: 26, poslední dnes 08:36
Rozcestník

Dotaz: Domoticz

22.4. 17:53 Hafajs | skóre: 11
Domoticz
Přečteno: 939×
Ahoj všichni. Mám domoticz na RPI. Loguji se mi do nej data z různých čidel... jedno z nich je mereni tlaku vody ve studni. Měřím i atmosfericky tlak. Potřeboval bych tyto hodnoty od sebe odečíst. Získat tak po přepočtu jen výšku vodního sloupce. Mohl bych to dělat přímo na cidle (je to realizováno ESPckem), ale veškeré zpracování bych měl raději "pod jednou střechou". Dá se něco podobného zařídit v comoticz, případně jak? Díky

Odpovědi

22.4. 21:18 NN
Rozbalit Rozbalit vše Re: Domoticz
Domoticz ma neco jako 'dummy hardware' a 'virtualni senzor' + moznost zpracovavat vlastni Lua skripty. Vydal bych se timto smerem..
23.4. 07:55 Hafajs | skóre: 11
Rozbalit Rozbalit vše Re: Domoticz
jj diky, vydal jsem se, jen se vyhybam Lua jazyku a doufal jsem, ze se bez nej obejdu i tady. V Blockly zakladni matematicke operace chybi :( Ccko to asi neumi :(. Ale pri patrani jsem nekde zahledl zasuvne moduly pro Domoticz. Dnes se k tomu zkusim vratit, jestli treba nepribude neco v tomto ohledu.
23.4. 08:49 TechnikTom
Rozbalit Rozbalit vše Re: Domoticz
Přívětivější než klasické LUA jsou v Domoticz skripty DzVents. V dokumentaci jsou pro každý typ senzoru popsány dostupné atributy a metody. Pro vážnější práci se bez toho neobejdete, tak doporučuji věnovat trochu času a nastudovat. Já teď dělal čidlo objemu vody v nádrži. Do Domoticz posílám jen vzdálenost hladiny od čidla a stav baterie. Pak jsem vytvořil virtualni čítače příteklé a spotřebované vody ( ze změny hladin, resp. objemu ), ukazatel aktuálního objemu a procentního naplnění nádrže. Využívám i možnost definovat si v Domoticz vlastní uživatelské proměnné pro ukládání časových "mezidat". Má to jen jednu chybu - zatím nepršelo, tak mám otestovány jen věci okolo aktuálního objemu.
23.4. 19:44 Hafajs | skóre: 11
Rozbalit Rozbalit vše Re: Domoticz
Díky, podívám se na to. Koukal jsem, ze umi i Python, tak jsem snad zachráněn. Na DzVens jsem zvědavý.
24.4. 13:08 Hafajs | skóre: 11
Rozbalit Rozbalit vše Re: Domoticz
Tak jsem zkusil vsechno a nechodi mi ani examplove skripty. :( budu to muset realizovat mimo, na ESPcku a v domoticz jen zobrazovat data.
24.4. 20:20 TechnikTom
Rozbalit Rozbalit vše Re: Domoticz
Naházejte flintu do žita :o)

On je DZVents už v několikáté verzi a oproti příkladům se změnila hlavně sekce "triger" a ta z příkladů většinou nefunguje.

Dám sem na ukázku skript, který používám u své nádrže já. Taky nejsem žádný programátor a znalec LUA, je to slepené tak jak jsem vypozoroval, že to používají ostatní. Kvůli kontrole a vizualizaci při ladění tam dost používám uživatelské proměnné samotného Domoticzu - určitě by šlo nahradit nějakými perzistentními proměnnými samotného DZVents.

Tady je popis současné verze DzVents:

https://www.domoticz.com/wiki/DzVents:_next_generation_LUA_scripting

Důležitá je zejména Device object API, protože každý senzor má jiný způsob vyčítání a nastavení hodnot.

Třeba nastavení přírůstku objemu pro čidlo typu "incremental counter" je:

domoticz.devices('Nadrz_objem_m3').updateCustomSensor(actual_volume)

Pro čidlo "procenta" zas:

domoticz.devices('Nadrz_objem_procenta').updatePercentage(actual_percent)

Aktuální hodnotu čidla vzdálenosti zas získáte voláním:

domoticz.devices('Nadrz_vzdalenost').distance

Můj skript je zde ( není tam to přítoku a odtoku ):
-- Check the wiki at
-- http://www.domoticz.com/wiki/%27dzVents%27:_next_generation_LUA_scripting
return {

	-- 'active' controls if this entire script is considered or not
	active = true, -- set to false to disable this script

	-- trigger

	on = {
		timer = {
			-- timer triggers.. if one matches with the current time then the script is executed
			'every 5 minutes',
		}	
	},

	-- actual event code
	-- in case of a timer event or security event, device == nil
	execute = function(domoticz)
	
		
		local max_level = 5  -- sensos value for max level in tank
		local min_level = 110  -- sensor value for min level in tank
		local actual_volume = 0 -- actual volume in m3
		local actual_percent = 0   -- actual volume in percent
		
		local delta_volume = 22.8245   -- volume for 1cm in tank in litres
		local DIST_READED = domoticz.devices('Nadrz_vzdalenost')    --aktual distance from sensor
		local D1 = domoticz.variables('distance_1')                 -- most oldest distance reading
        local D2 = domoticz.variables('distance_2')                 -- middle distance reading
        local D3 = domoticz.variables('distance_3')                 -- last distance reading
        local DIST_LAST = domoticz.variables('last_distance')       -- previous distance calculated
        local DIST_ACTUAL = domoticz.variables('actual_distance')    -- actual calculated distance - - average from distance_1 to distance_3
        local DELTA = domoticz.variables('delta') 
        local d2 = D2.value
        local d3 = D3.value
        local d1 = D1.value
        local distance = DIST_READED.distance
        local distance_prev = DIST_LAST.value
        local pom_pritok = 0
        local pom_spotreba = 0
        local VOLUME = domoticz.variables('volume')
        local VOLUME_PROC = domoticz.variables('volume_proc')
        local OBJEM = domoticz.devices('Nadrz_objem_m3')
        local OBJEM_PROC = domoticz.devices('Nadrz_objem_procenta')
        
        D1.set(d2)                                            -- swap values
        D2.set(d3)
        D3.set(distance)     -- last readings to D3
        
        local distance_actual = math.floor((d2 + d3 + distance ) / 3)
        
		
		DIST_ACTUAL.set(distance_actual)             -- smoothing function fro last 3 readings
		
		
		
		local delta = distance_actual - distance_prev          -- priustek ( zaporny ) , ubytek ( kladny ) v nadrzi
		DELTA.set(delta)
		
		if delta ~= 0 then
		    if delta > 0 then   -- pritelka voda
		        pom_spotreba = delta * delta_volume       -- pritok v litrech
		        
		    else
		        
		        pom_pritok = -1 * ( delta * delta_volume )    -- spotreba v litrech
		        
		    end
		  
		  DIST_LAST.set(DIST_ACTUAL)     -- actual calculated distance to previous distance calculated
		  

        end
    
          actual_volume = delta_volume * (min_level - distance_actual) / 1000
		  actual_percent = (actual_volume * 1000 / (( min_level - max_level ) * delta_volume )) * 100
		  
		  VOLUME.set( actual_volume )
		  VOLUME_PROC.set( actual_percent )
		  
		  OBJEM.updateCustomSensor(actual_volume)
		  OBJEM_PROC.updatePercentage(actual_percent)
		  
       
	end
}

Použitá čidla a Domoticz proměnné zde:

24.4. 20:29 TechnikTom
Rozbalit Rozbalit vše Re: Domoticz
Příloha:
A tady máte skript, který se naopak spustí při změně hodnoty čidla.

Konkrétně v mém případě posílá při změně nastavení prvku "setpoint" pro termostat jeho hodnotu jako event do ESPEASY.
-- Check the wiki at
-- http://www.domoticz.com/wiki/%27dzVents%27:_next_generation_LUA_scripting
return {

	-- 'active' controls if this entire script is considered or not
	active = true, -- set to false to disable this script

	-- trigger
	-- can be a combination:
	on = {
		devices = {
			-- timer triggers.. if one matches with the current time then the script is executed
			'Koupelna_Setpoint'
		}
	},

	-- actual event code
	-- in case of a timer event or security event, device == nil
	execute = function(domoticz, device)
		
            local url= 'http://192.168.1.107/control?cmd=event,HeatSetpoint='..(device.state)..''
            print(url)
            domoticz.openURL(url)
      
        
	end
}
26.4. 12:16 Hafajs | skóre: 11
Rozbalit Rozbalit vše Re: Domoticz
Diky moc za snahu i slova podpory :). Na tech strankach jsem byl, ale nevenoval jsem potrebnou pozornost verzi kterou mam 2.4.6. Jeste jeden dotaz bych mel. Jak, pripadne kde bych nasel, jak se priradi promenne hodnota z tlakoveho cidla? Zda se, ze vycteni hodnot se lisi podle typu veliciny (cidla). Snad vsechny priklady jsou o prepinacich. Diky
26.4. 19:59 TechnikTom
Rozbalit Rozbalit vše Re: Domoticz
Tlakové čidlo nepoužívám, tak vlastní zkušenosti nemám, ale zmiňovaný odkaz praví:
Barometer sensor

    barometer. Number. Barometric pressure.
    forecast: Number.
    forecastString: String.
    updateBarometer(pressure, forecast): Function. Update barometric pressure. Forecast can be domoticz.BARO_STABLE, BARO_SUNNY, BARO_CLOUDY, BARO_UNSTABLE, BARO_THUNDERSTORM.
Já bych tedy použil:

local hodnota_cidla = domoticz.devices('Moje_cidlo_tlaku').barometer

Nebo použít univerzální API pro všechny typy sensorů:
Device attributes and methods for all devices

    active: Boolean. Is true for some common states like 'On' or 'Open' or 'Motion'. Same as bState.
    batteryLevel: Number If applicable for that device then it will be from 0-100.
    bState: Boolean. Is true for some common states like 'On' or 'Open' or 'Motion'. Better to use active.
    changed: Boolean. True if the device was changed
    description: String. Description of the device.
    deviceId: String. Another identifier of devices in Domoticz. dzVents uses the id(x) attribute. See device list in Domoticz' settings table.
    deviceSubType: String. See Domoticz devices table in Domoticz GUI.
    deviceType: String. See Domoticz devices table in Domoticz GUI.
    dump(): Function. Dump all attributes to the Domoticz log. This ignores the log level setting.
    hardwareName: String. See Domoticz devices table in Domoticz GUI.
    hardwareId: Number. See Domoticz devices table in Domoticz GUI.
    hardwareType: String. See Domoticz devices table in Domoticz GUI.
    hardwareTypeValue: Number. See Domoticz devices table in Domoticz GUI.
    icon: String. Name of the icon in Domoticz GUI.
    id: Number. Index of the device. You can find the index in the device list (idx column) in Domoticz settings. It's not truly an index but is unique enough for dzVents to be treated as an id.
    idx: Number. Same as id: index of the device
    lastUpdate: Time Object: Time when the device was updated.
    name: String. Name of the device.
    nValue: Number. Numerical representation of the state.
    rawData: Table: All values are String types and hold the raw data received from Domoticz.
    setDescription(description): Function. 2.4.16 Generic method to update the description for all devices, groups and scenes. E.g.: device.setDescription(device.description .. '/nChanged by '.. item.trigger .. 'at ' .. domoticz.time.raw). Supports command options.
    setIcon(iconNumber): Function. 2.4.17 method to update the icon for devices. Supports command options.
    setState(newState): Function. Generic update method for switch-like devices. E.g.: device.setState('On'). Supports command options.
    setValues(nValue,[ sValue1, sValue2, ...]): Function. 2.4.17 Generic alternative method to update device nValue, sValue. Uses domoticz JSON API to force subsequent events like pushing to influxdb. nValue required but when set to nil it will use current nValue. sValue parms are optional and can be many.
    state: String. For switches, holds the state like 'On' or 'Off'. For dimmers that are on, it is also 'On' but there is a level attribute holding the dimming level. For selector switches (Dummy switch) the state holds the name of the currently selected level. The corresponding numeric level of this state can be found in the rawData attribute: device.rawData[1].
    signalLevel: Number If applicable for that device then it will be from 0-100.
    switchType: String. See Domoticz devices table in Domoticz GUI (Switches tab). E.g. 'On/Off', 'Door Contact', 'Motion Sensor' or 'Blinds'
    switchTypeValue: Number. See Domoticz devices table in Domoticz GUI.
    timedOut: Boolean. Is true when the device couldn't be reached.
    unit: Number. Device unit. See device list in Domoticz' settings for the unit.
    update(< params >): Function. Generic update method. Accepts any number of parameters that will be sent back to Domoticz. There is no need to pass the device.id here. It will be passed for you. Example to update a temperature: device.update(0,12). This will eventually result in a commandArray entry 
local hodnota_cidla = domoticz.devices('Moje_cidlo_tlaku').nValue

27.4. 08:49 TechnikTom
Rozbalit Rozbalit vše Re: Domoticz
Mozná popužíváte čidlo typu Pressure, tak pak by to bylo:
Pressure

    pressure: Number.
    updatePressure(pressure): Function.
local hodnota_cidla = domoticz.devices('Moje_cidlo_tlaku').pressure
28.4. 09:00 Hafajs | skóre: 11
Rozbalit Rozbalit vše Re: Domoticz
Díky za podporu. Teď jsem mimo náš krásný stát, ale koncem týdne se do toho pustím.
30.4. 12:28 reb
Rozbalit Rozbalit vše Re: Domoticz
Čistě pro zajímavost, jaké čidlo používáte a jak ho máte zapojené/připojené?
13.5. 13:22 Hafajs | skóre: 11
Rozbalit Rozbalit vše Re: Domoticz
Je to BME280 na I2C sbernici.
14.5. 16:17 TechnikTom
Rozbalit Rozbalit vše Re: Domoticz
Jak máte hlubokou nádrž?

Dnešní dny je tlak vzduchu 1030 hPa

BME280 má měřící rozsah 300 - 1100 hPa

Takže v tyto dny naměříte max. rozdíl 70 hPa což činí jen 70cm.

Pokud tedy uvažuji správně.

Nebo musíte počítat s nižší přesností čidla v rozsahu 1100 - 1250 hPa
16.5. 15:10 Hafajs | skóre: 11
Rozbalit Rozbalit vše Re: Domoticz
Spravne. Studna je hluboka od okraje skruze 6m, vodni sloupec je po zime 3m. Cidlo je 1m pod hladinou prave proto, abych se nedostal mimo rozsah a pri intenzivnim mnohahodinovem cerpani je prubeh poklesu zhruba takovy, ze za 45 min klesne o 50cm (pak se drzi na stejne hodnote, stiha dotekat) a po ukonceni cerpani se skoro stejne dlouho vraci do normalu. Jen to nechci prepocitavat "rucne" na cm. Da se nekde dohledat, jak se oznacuji cidla a jejich hodnoty v LUA v domoticz? Taky jsem dohledal diskusi, kde resi pridani matematiky do blockly, ale zda se, ze to nikomu nefunguje :D :(
včera 20:06 TechnikTom
Rozbalit Rozbalit vše Re: Domoticz
Vše ohledně označení čidel a jejich hodnot je v tom odkazu co jsem uváděl výše.

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.