Kodin automaatioratkaisut

Keskustelu osiossa 'Kodin suunnittelunurkka' , aloittajana säätäjä, 21.01.2010.

  1. bj40

    bj40 Uusi jäsen

    Liittynyt:
    06.10.2008
    Viestejä:
    111
    Saadut tykkäykset:
    2
    kiertotienä meinasin että serveri (eri kuin raspi) tallentaa lämpötilat txt filuun joka on nfs jaossa josta raspi käy lukemassa tuolla perls skriptillä ja lähettää itselleen udp 8005 porttiin lukeman.
    my $sensordata = `cat /home/pi/lt.txt 2>&1`;
    lt.txt on symbolinen linkki siihen tiedostoon. pyörii parhaillaan, raporttia kun on tulosta...

    edit txt tiedostoon kanssa kikkailu antaa 0.0 lukemaksi.
    tiedostossa vain luku 30.89 jota vaihtelin aina välillä jos kerran keskiarvoa mittaa...

    edit2: nyt sinne nethomeserverin puolelle ja logiin tuli lukemia, mutta pyöristys 30.89 -> 31 eli ei se vika ainakaan siellä serverin lähettävässä päässä ole koska raspi itse tekee samaa.
     
    Viimeksi muokattu: 06.03.2014
  2. Nasty76

    Nasty76 Guest Guest

    Liittynyt:
    17.10.2013
    Viestejä:
    194
    Saadut tykkäykset:
    0
    Tää on suuri mysteeri. eli logissa 30.89 ja nethome kirjottaa sen 31 ei desimaaleja? tuossa lähetys scriptissä on pakko olla joku bugi tutkin tuon kerran vierä.
    kokeile tällä mitä se sanoo https://www.dropbox.com/s/8dec8owm5vp6dhh/udpsent.pl
    muuten eli jos lähetit nethomeen tällä event,UPM_Message,Direction,In,UPM.DeviceCode,3,UP M.HouseCode,3,UPM.Primary,375,UPM.Secondary,122,UP M.SequenceNumber,0,
    riviä oliko desimaalit silloin oikein?
    Btw mitä käytistä ajat raspissa?
    PS. tuolla udpsent.pl pitäis kai toimi ds1820 temp perusasetuksilla eli se jakaja 1000
    laitatko mulle tuon lt.txt filun niin deguggaan sitä omassa systeemissä. sillä tavalla saan sen varmaan korjattua helpoiten.
    tai edes sisältö tuosta it.txt filusta
     
    Viimeksi muokattu: 06.03.2014
  3. bj40

    bj40 Uusi jäsen

    Liittynyt:
    06.10.2008
    Viestejä:
    111
    Saadut tykkäykset:
    2
    ei vaan molemmissa logissa ja nethomessa oli pyöristettynä 31.
    Mutta tämä ei enää ole mysteeri ! :D

    kokeeksi enabloin tuon alun print "$sensordata"; ja loppuun print "$ret";
    tulos oli eri, $sensordata 30.89 ja $ret 31.
    kävin rivi riviltä läpi ja googlailin mitä ne $ret aiheiset rivit. ja tämä sprintf löytyi heti ekalla hitillä
    http://perldoc.perl.org/functions/sprintf.html
    vaihdoin rivin:
    $ret = sprintf("%.0f", $ret);
    tähän
    $ret = sprintf("%.2f", $ret);

    tuon jälkeen molemmat $sensordata ja $ret näyttivät 30.89
    nyt odotellaan taas hetki...

    tässä vielä koko skripti
    Koodi:
    #!/usr/bin/perl
    use strict;
    use warnings;
    use IO::Socket;
    
    
    # ulko LT
    my $sensordata = `cat /mnt/1wire/10.BE6A01020800/temperature 2>&1`; 
    # print "Read: $sensordata";
    
    
    #fix for negative temps from http://habrahabr.ru/post/163575/
    $sensordata =~ /t=(\D*\d+)/i;
    #$sensor_temp =~ /t=(\d+)/i;
    $sensordata = $sensordata / 1000;
    my $ret = $sensordata *1000;
    #sent tcp packet nethome
    my $sock = IO::Socket::INET->new(
    Proto => 'udp',
    PeerPort => 8005,
    PeerAddr => '192.168.1.40',
    ) or die "Could not create socket: $!\n";
    $ret = sprintf("%.2f", $ret);
    print $sock "event,UPM_Message,Direction,In,UPM.DeviceCode,11,UPM.HouseCode,1,UPM.Primary,$ret,UPM.Secondary,122,UPM.SequenceNumber,0\n" or die "Sent failed : $!";
    #print "$ret";
    
    
     
  4. Nasty76

    Nasty76 Guest Guest

    Liittynyt:
    17.10.2013
    Viestejä:
    194
    Saadut tykkäykset:
    0
    aargh eli joo sry sinne oli jääny kirjotus virhe aloin juuri epäilee samaa että siinä sprint rivissä on pakko olla bugi :D $ret = sprintf("%.2f", $ret); tää on oikein jos tuo on 0 niin sielä ei desimaaleja ole, jostain syystä jääny kumma virhe tuohon.
    tossa tänään linkitetyssä filussa tuokin on oikein:
    #!/usr/bin/perl
    use strict; use warnings; use IO::Socket;
    # my $sensordata = " 12.8734";
    my $sensordata = `owread /28.CDCCDC030000/temperature; echo 2>&1`;
    $sensordata = sprintf("%.3f", $sensordata);
    $sensordata =~ /t=(\D*\d+)/i;
    $sensordata = $sensordata *1000;

    print "$sensordata\n";



    my $sock = new IO::Socket::INET ( PeerAddr => '127.0.0.1', PeerPort =>
    '8005', Proto => 'tcp', ); die "Error: $!\n" unless $sock; print $sock
    "event,UPM_Message,Direction,In,UPM.DeviceCode,1,UPM.HouseCode,1,UPM.Primary,$sensordata,UPM.Secondary,122,UPM.SequenceNumber,0\n";
    close($sock);
    sielä kyllä on 3 mut samapa kai jos se toimii :D
     
    Viimeksi muokattu: 06.03.2014
  5. bj40

    bj40 Uusi jäsen

    Liittynyt:
    06.10.2008
    Viestejä:
    111
    Saadut tykkäykset:
    2
    kyllä koettelee nyt se lähettää ja udp portissa näkyy mittaukset mutta nethomeen tulee 0.0 ja logiin ei tule mitään..
    se ei herjaa mitään mutta jos ajan käsin siitä telnet istunnosta ni antaakin nyt tällaisen virheen:
    event,UPM_Message,Direction,In,UPM.DeviceCode,11,UPM.HouseCode,1,UPM.Primary,20.6,UPM.Secondary,122,UPM.SequenceNumber,0,Value,
    error,10,No attribute value for Event attribute: Value
    vaihdoin mittauksen yhden desimaali tarkkuuten. samaa antaa vaikka lähetän Primary,2060

    raspissa on asennettuna rasbian.
    unohdetaan se raspissa pyörivä lähetys kun se melkein pelaa jo tuolta serveristä.
    en tuota owreadiä ole edes asentanut kun se lämpötilan luku pelaa cat:lla, taisin itseasiassa aikanaan asentaa serveriin pelkän owfsn kun sitä ei vielä 6.0 stableen ollut saatavan pakettihallinnasta, nythän se olisi mutta ei toinna korjata toimivaa :)
     
  6. bj40

    bj40 Uusi jäsen

    Liittynyt:
    06.10.2008
    Viestejä:
    111
    Saadut tykkäykset:
    2
    kokeilenpa vielä tuolla upsendillä.
     
  7. bj40

    bj40 Uusi jäsen

    Liittynyt:
    06.10.2008
    Viestejä:
    111
    Saadut tykkäykset:
    2
    haa nyt se pelaa kuten pitää! tuolla upsent.pl skriptillä, olitkin vaihtanut tcp puolelle ajettavaksi..
    luvut "lentää" tuhannella kerrottuna ja nethomessa on M = 1000.0
     
  8. Nasty76

    Nasty76 Guest Guest

    Liittynyt:
    17.10.2013
    Viestejä:
    194
    Saadut tykkäykset:
    0
    aaargh pirun flunssa. se tcp puoli saattaa crashaaa jossain vaiheessa joten vaihda vaan siita udp lahetys jutusta se $sensordata = sprintf("%.3f", $sensordata); tahan riviin niin sen pitas toimia myos
    se tcp alkaa jossain vaiheessa antaa herjaa tcp packet fail ja raspi menee totaali jumiin. jos et onnistu korjata sita udp sent moodia niin parsin sulle oikean

    Koodi:
    #!/usr/bin/perl
    use strict;
    use warnings;
    use IO::Socket;
    
    
    # ulko LT
    my $sensordata = `cat /mnt/1wire/10.BE6A01020800/temperature 2>&1`; 
    # print "Read: $sensordata";
    
    
    #fix for negative temps from http://habrahabr.ru/post/163575/
    $sensordata =~ /t=(\D*\d+)/i;
    my $ret = $sensordata *1000;
    #sent tcp packet nethome
    my $sock = IO::Socket::INET->new(
    Proto => 'udp',
    PeerPort => 8005,
    PeerAddr => '192.168.1.40',
    ) or die "Could not create socket: $!\n";
    $ret = sprintf("%.3f", $ret);
    print $sock "event,UPM_Message,Direction,In,UPM.DeviceCode,11,UPM.HouseCode,1,UPM.Primary,$ret,UPM.Secondary,122,UPM.SequenceNumber,0\n" or die "Sent failed : $!";
    #print "$ret";
    kokeile talla pitas nyt toimii ja udpeena
     
    Viimeksi muokattu: 06.03.2014
  9. bj40

    bj40 Uusi jäsen

    Liittynyt:
    06.10.2008
    Viestejä:
    111
    Saadut tykkäykset:
    2
  10. bj40

    bj40 Uusi jäsen

    Liittynyt:
    06.10.2008
    Viestejä:
    111
    Saadut tykkäykset:
    2
  11. Nasty76

    Nasty76 Guest Guest

    Liittynyt:
    17.10.2013
    Viestejä:
    194
    Saadut tykkäykset:
    0
    Oho tarkottaakohan tuo että nexan uutuudet tulee , Niitä odotellessa, jos ne 2-suunta moduulit saapuu niin sitten taitaa mennä koko systeemi uusiks. Tosin oma lähemmäs 30 moduulin järjestelmä juttelee suht luotettavasti ja vika tiloja ei synny , joten ehkä pari kriittistä korvais alkuun uusilla.
     
  12. Detrox

    Detrox Guest Guest

    Liittynyt:
    03.04.2005
    Viestejä:
    54
    Saadut tykkäykset:
    0
    Kaksisuuntaista odotellessa, vallankin kun Z-wave on aika pitkälti hyytynyt ainakin kotimaisilla markkinoilla. Moduulien hinnat käytännössä korkeampia, mitä useampi vuosi sitten olivat.

    Onko noista 2-suuntaisista missään mitään tietoa?
     
  13. Nasty76

    Nasty76 Guest Guest

    Liittynyt:
    17.10.2013
    Viestejä:
    194
    Saadut tykkäykset:
    0
    Ei valitettavasti ole vielä tietoa. vuoden 2014 aikana nexa support kertoi että kotiautomaatio rakentajilla on herran päivät.
     
  14. bj40

    bj40 Uusi jäsen

    Liittynyt:
    06.10.2008
    Viestejä:
    111
    Saadut tykkäykset:
    2
    mikähän lienee kun nethome lopetti viikon jälkeen ajastamasta valoja, buutilla korjaantui.
    taidan ajastaa rebootin kerran viikkoon..
     
  15. Don MC

    Don MC Käyttäjä

    Liittynyt:
    19.05.2005
    Viestejä:
    1 188
    Saadut tykkäykset:
    39
    Mulla Raspberry jumitti useita kertoja päivässä huonon SD-kortin takia. Vaihto Samsungin korttiin auttoi jumeihin. SSH:lla sai yhteyden, mutta esimerkiksi Java ei toiminut. Saattoi myös buuttailla ittekseen milloin sattui.

    Tarkkailisin myös lämpötilaa hieman. Raspberryn tunkeminen liian tiiviiseen koteloon voi olla pahasta.

    Ja virtalähteen laatuun kannattaa myös panostaa.
     
  16. bj40

    bj40 Uusi jäsen

    Liittynyt:
    06.10.2008
    Viestejä:
    111
    Saadut tykkäykset:
    2
    virtalähde ja lämmöt luulisi olevan pois suljettuja, käytin xbmcnä pitkään tuota ennen nethomeen siirtymistä. raspissa on pikku siilit jopa liimattuna.
    sd korttikin taisi tulla mukana tai ainakin samaa merkkiä mitä myivät.
    täytyy seurailla vielä miten käy.
    oli tarkoitus jättää talviloma reissun ajaksi pihavaloja sytyttelemään mutta jää laittamatta.
     
  17. Nasty76

    Nasty76 Guest Guest

    Liittynyt:
    17.10.2013
    Viestejä:
    194
    Saadut tykkäykset:
    0
    katso logista oisko siellä mitään sehän taitaa oletuksen tallentaa login /home/pi kansioon.
    Jos sulla onewire lämpötilamittausta joku scripti saattoi mystisesti satunaisesti kaatua.
    lämpö ja virtalähde voi aiheutta ongelmia itellä 1,5A poweri ja kaatuilut hävisi 1A powerilla silloin tällöin jumisi.
     
  18. bj40

    bj40 Uusi jäsen

    Liittynyt:
    06.10.2008
    Viestejä:
    111
    Saadut tykkäykset:
    2
    logista en saanut irti mitään kun se ei logittanu mitään noiden päivien välissä.
    siivosin nyt kaikki logit mäkeen sekä poistin lämpötilamittaukset. josko se auttaisi..
    virtalähde on RS elektronicsin 1.2A malli.

    pitäisikö muuten noiden kaikkien toimintojen logittua johonkin ?
     
    Viimeksi muokattu: 14.03.2014
  19. Nasty76

    Nasty76 Guest Guest

    Liittynyt:
    17.10.2013
    Viestejä:
    194
    Saadut tykkäykset:
    0
    se logittaa vaan vika tilat ja esim telnet yhteyden avauksen ja sulun, ja langattomien pariston vähyyden varoitukset. jos se lämpötila kaatuu niin sen kyllä pitäs netistä vastata hitaasti ja satunnaisia valohjauksiakin mennä perille, itse siis joka kerta pääsin www sivulle sisään ja näin että logi oli täynnä erroria. kokeile vielä tätä scriptiä joka on viestissä https://www.dvdplaza.fi/forums/showthread.php/79819-Kodin-automaatioratkaisut?p=1575857#post1575857
    se pitäisi olla bugiton.
     
  20. bj40

    bj40 Uusi jäsen

    Liittynyt:
    06.10.2008
    Viestejä:
    111
    Saadut tykkäykset:
    2
    ok. saisi tuossa joku debuggaus olla mistä näkisi juuri nuo mitä se touhuilee eli ajaako nethome komennot kuten pitääkin..
    pitää testailla tuota skriptiä lomien jälkeen, käytössähän tosiaan oli se dropboxista löytynyt versio vain protokolla muutettuna.
    varmuuden vuoksi laitoin kuitenkin ajastinkellon perään valot :)