Tips: NexaHome - Raspbian wheezy - TellStick - RaZberry

Moderators: hekj, Telldus

hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Tips: NexaHome - Raspbian wheezy

Post by hekj »

liverpoolarn wrote:Har suttit o testat 3.0.0 nu men jag får inte till det där med utläsningen av tellstick.conf
När jag browsar in på adressen så blir bara sidan helt vit och det visas ingenting. Har testat att surfa in från både Pien och från en annan Windows-dator. Några idéer på vad som kan vara galet?
Testa denna version.
http://nexahome.se/NexaHome_3.0.1.jar
liverpoolarn
Posts: 65
Joined: Fri Mar 17, 2023 9:45 am

Re: Tips: NexaHome - Raspbian wheezy

Post by liverpoolarn »

hekj wrote:
liverpoolarn wrote:Har suttit o testat 3.0.0 nu men jag får inte till det där med utläsningen av tellstick.conf
När jag browsar in på adressen så blir bara sidan helt vit och det visas ingenting. Har testat att surfa in från både Pien och från en annan Windows-dator. Några idéer på vad som kan vara galet?
Testa denna version.
http://nexahome.se/NexaHome_3.0.1.jar
3.0.1 funkade klart bättre. Alla brytare kom med! =)
Men inte mina sensorer. Finns det möjlighet att utöka med dem oxå? :clap:

EDIT: Vet inte om det är för att mina brytare har id 2-10 och mina sensorer har id 71-78 som gör att det "glappet" inte klaras av, eller om det bara är så att sensorerna inte exporteras ut?
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Tips: NexaHome - Raspbian wheezy

Post by hekj »

liverpoolarn wrote:3.0.1 funkade klart bättre. Alla brytare kom med! =)
Men inte mina sensorer. Finns det möjlighet att utöka med dem oxå? :clap:

EDIT: Vet inte om det är för att mina brytare har id 2-10 och mina sensorer har id 71-78 som gör att det "glappet" inte klaras av, eller om det bara är så att sensorerna inte exporteras ut?
Min "tellstick=conf" kod klarar numera av ett glapp på 3 enheter (både i början och senare).

Har inte kollat upp hur sensorer är definierade i TelldusCenter, NexaHome använder sin egen definition i Parameters fältet, du blir tyvärr tvungen att lägga in dom på egen hand.
liverpoolarn
Posts: 65
Joined: Fri Mar 17, 2023 9:45 am

Re: Tips: NexaHome - Raspbian wheezy

Post by liverpoolarn »

Ok, men då går det ju att komma runt problemet med lite hackihacking. Tack för hjälpen ändå. :)
Snoopy
Posts: 253
Joined: Fri Mar 17, 2023 9:45 am
Location: Kalmar
Contact:

Re: Tips: NexaHome - Raspbian wheezy

Post by Snoopy »

När jag lagt in fyra enheter i layouten fungerar allt ok, men efter den femte
blev det trögt, mycket trögt. Jag testade att öka hastigheten på Pi:en genom det
tips som finns på tråden. Det gick inte snabbare. Tog jag bort femt enheten var
resultatet lika illa. Något måste ha trasslat till sig. Vet inte vad.
Har detta drabbat någon annan?
EDIT;
Som vanligt beror mina problem på småsaker som t.ex. felaktiga tecken. :banghead:
NexaHome är känsligt för sådant har jag märkt.
Allt flyter på som (förmodligen) det är tänkt.
Nu håller jag på att lägga in trådlösa termometrar bl.a. Då kommer ett annat bekymmer:
Hur lägger jag till ny sensor bland enheterna? V3.0.0. kom ju med två sensorer men
kankse man vill ha fler eller använda Rh-värdet från samma givare (Clas O).
... världen är full av tappade sugar, några är mina....
HA 3.1.1 i en Raspberry Pi 2 + Tellstick Duo
owfs i annan Raspberry B+ + Tellstick och en Tellstick Net som backup
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Tips: NexaHome - Raspbian wheezy

Post by hekj »

Nu finns funktionalitet för att läsa ut TellStick- samt TelldusCenter-konfigurationen ur en windowsdator:

1) hämta och starta v3.0.2
http://nexahome.se/NexaHome_3.0.2.jar

2) surfa till NH v3.0.2 på din windowsdator från din hallondators webläsare.

Code: Select all

http://server.ip.adress:portnummer/nexahome?tellstick=conf
http://server.ip.adress:portnummer/nexahome?tellduscenter=conf
Det tar en stund att få fram sidan med TellStick-konfigurationen men om allt går vägen ska den visa innehållet som ska skrivas till /etc/tellstick.conf

TelldusCenter-konfigurationen ska skrivas till filen ~/.config/Telldus/TelldusCenter.conf

Observera att man för att bibehålla kopplingen till dom förkonfigurerade websidorna måste flytta sina fem första fjärrströmbrytare till slutet av filen samt korrigera dess id, lägg sedan in fjärrmottagarna från den ursprungliga tellstick.conf filen ("min") på plats 1-5. Jag hoppas att alla förstår hur jag menar :roll:

Det var patrikg som önskade att även TelldusCenter-konfigurationen kan läsas ut samt passade på att tipsa om en webläsarinställning som måste göras för att kunna registrera ett live konto hos telldus på raspberryn.
Kör dessa kommandon, så att midori blir standard webläsaren.

pi@raspberrypi ~ $ sudo update-alternatives --config x-www-browser
Det finns 2 val för alternativet x-www-browser (som tillhandahåller /usr/bin/x-www-browser).

Val Sökväg Prioritet Status
------------------------------------------------------------
* 0 /usr/bin/dillo 50 automatiskt läge
1 /usr/bin/dillo 50 manuellt läge
2 /usr/bin/midori 50 manuellt läge

Tryck Enter för att behålla standardvärdet[*], eller ange nummer på önskat val: 2
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Tips: NexaHome - Raspbian wheezy

Post by hekj »

Snoopy wrote:Nu håller jag på att lägga in trådlösa termometrar bl.a. Då kommer ett annat bekymmer:
Hur lägger jag till ny sensor bland enheterna? V3.0.0. kom ju med två sensorer men
kanske man vill ha fler eller använda Rh-värdet från samma givare (Clas O).
För att lägga in en ny sensor gör man så här:

1) aktivera visning i NexaHome konsolfönster av det som sensorn skickar (temperatur/fuktighet) genom att välja menyalternativ
View --> Raw Sensor Data (Console)

Exempel:
class:sensor;protocol:mandolyn;id:12;model:temperaturehumidity;temp:3.7;humidity:14;
2) a. klicka på knappen Devices/Groups 'Add'
b. välj 'Add Group' och namnge den nya sensorn
c. markera alternativet 'SENSOR'

3) beroende på om man vill hämta temperatur eller fuktighet skriver man in en av följande textsträngar i Parameters fältet

Exempel:

Code: Select all

id:12;model:temperaturehumidity;value:temp

Code: Select all

id:12;model:temperaturehumidity;value:humidity
4) lägg in exakt samma textsträng i Parameters fältet för alla Device som du vill ska använda sensorvärdet

Du kan genom att lägga in två SENSOR rader i NH hämta både temperatur och fuktighet från din clasohlson givare.
Snoopy
Posts: 253
Joined: Fri Mar 17, 2023 9:45 am
Location: Kalmar
Contact:

Re: Tips: NexaHome - Raspbian wheezy

Post by Snoopy »

Det blev ju bra! :wave:
Men här kommer mer. Tidigare har ju lite script beskrivits som kan göra mycket,
t.ex. kollar om det finns mail. Det scriptet använder start.bsh, en timer
för att kolla brevlådan med jämna mellanrum. Som Android-användare har det
plötsligt blivit aktuellt att hålla koll på gmail-kontot.
I RPi-versionen finns ännu en timer med samma namn för att skriva temp.
Man kunde ju använda samma timer om man vill kompromissa när det
gäller intervallen. Det får ju bli samma för bägge funktionerna i så fall.
Kan man komma runt detta?
Apropå temp, hur kommer man åt grafen? Har inte riktigt fattat det... än.
... världen är full av tappade sugar, några är mina....
HA 3.1.1 i en Raspberry Pi 2 + Tellstick Duo
owfs i annan Raspberry B+ + Tellstick och en Tellstick Net som backup
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Tips: NexaHome - Raspbian wheezy

Post by hekj »

Snoopy wrote:Apropå temp, hur kommer man åt grafen? Har inte riktigt fattat det... än.
Om du kör min image finns färdiga bokmärken i webläsaren Midori.
Snoopy
Posts: 253
Joined: Fri Mar 17, 2023 9:45 am
Location: Kalmar
Contact:

Re: Tips: NexaHome - Raspbian wheezy

Post by Snoopy »

Jag har kört NH på RPi med Tellstick Duo utan konfigurerade enheter parallellt med HA
som skött allt hittills. Men sedan NH har stått på dygnet runt några dagar har jag problem med
motorvärmaren. Jag vet inte vilket program som gjort vad, men när jag kommer hem från jobbet
har motorvärmaruttaget fortfarande varit igång. Jag har konstaterat att HA släckt
motorvärmaruttaget och NH också visar släckt uttag. Men det har visat sig att NH gör
tvärtemot. Först trodde jag att jag förväxlat symbolerna i hemsidan .html men så var
det inte. Jag har alltså en klickbar symbol på huvudsidan förutom den speciella car.html.
Duon registrerar vad HA och övriga fjärrkontroller gör och visar aktuell status. Så när jag
släcker motorvärmaruttaget med fjärrkontrollen så tänds symbolen i NH som visar att
uttaget är igång.
Car.html har jag inte pillat med, bara ändrat lösenord.
Vad händer :?:
kanske ska säga att det bara är motorvärmaren som strulat.
EDIT;
Sedan jag skrev ovanstående så har jag ändrat symbolen på huvudsidan till en länk till car.html.
Tänkte att den länken kanske rör till saker och ting. Man får ju gissa vilt när man inte vet säket.
Detta tilltag gjorde ingen skillnad. Bilen är gul, loggen visar TILL men motorvärmaren är släckt,
både i verkigheten och i HA.
EDIT;
Upptäckte just att motorvärmaren var satt som codeswitch:nexa i tellstick.conf.
I verkligheten är det Waveman. :banghead:
Ska se vad som händer nu.
EDIT;
Jo, nu är motorvärmaren också på spåret. :oops:
... världen är full av tappade sugar, några är mina....
HA 3.1.1 i en Raspberry Pi 2 + Tellstick Duo
owfs i annan Raspberry B+ + Tellstick och en Tellstick Net som backup
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Tips: NexaHome - Raspbian wheezy

Post by hekj »

Snoopy wrote:Nu håller jag på att lägga in trådlösa termometrar bl.a.
Kan tipsa om något jag har skrivit i någon annan tråd, om termometrarna inte ger exakt samma värde trots att dom ligger intill varandra kan man i NH justera det avlästa värdet.

Exempel (minus 0.4 grader):

Code: Select all

id:12;model:temperaturehumidity;value:temp;adjust:-0.4
Exempel (plus 0.6 grader):

Code: Select all

id:12;model:temperaturehumidity;value:temp;adjust:0.6
Denna justeringen ska endast göras i Parameters fältet på rader där det står SENSOR i 'Members/Type' fältet .
kornflakez
Posts: 6
Joined: Fri Mar 17, 2023 9:45 am

Re: Tips: NexaHome - Raspbian wheezy

Post by kornflakez »

Hej,

Det var ett tag sen jag hade tid att sitta ner med min Raspberry Pi och Tellstick.
Men nu har jag fått tummarna loss och jag börjar göra lite framsteg.
Webbgränssnittet har jag utvecklat på en stationär dator och sedan flyttat över till Raspberry Pi (Pi:n är ju inget prestandamonster) :)
Men i samband med att jag flyttade över allt till min Raspberry Pi så fick jag lite problem..

Är det något man ska ställa in för att få Å, Ä och Ö att fungera när man kör webserver i Raspberry Pi?
Det fungerade perfekt i min stationära dator (Windows 7), men den ersätter Å, Ä och Ö med frågetecken i Pi:n.

En annan sak som jag tänkte passa på att fråga. Nu har jag köpt en temperaturgivare från Teknikmagasinet, och den fungerar bra, och loggning fungerar också. Men jag får inte visning att fungera i Pi (det fungerar i windows). Har någon möjlighet att kopiera en fungerande "mypage.bsh" kod för pi?
(Det är sökvägarna som jag måste ha ngt fel i, och det skulle spara en del felsökningstid). :)

Ha det gott!
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Tips: NexaHome - Raspbian wheezy

Post by hekj »

kornflakez wrote:Det var ett tag sen jag hade tid att sitta ner med min Raspberry Pi och Tellstick.
Men nu har jag fått tummarna loss och jag börjar göra lite framsteg.
Webbgränssnittet har jag utvecklat på en stationär dator och sedan flyttat över till Raspberry Pi (Pi:n är ju inget prestandamonster) :)
Men i samband med att jag flyttade över allt till min Raspberry Pi så fick jag lite problem..

Är det något man ska ställa in för att få Å, Ä och Ö att fungera när man kör webserver i Raspberry Pi?
Det fungerade perfekt i min stationära dator (Windows 7), men den ersätter Å, Ä och Ö med frågetecken i Pi:n.

En annan sak som jag tänkte passa på att fråga. Nu har jag köpt en temperaturgivare från Teknikmagasinet, och den fungerar bra, och loggning fungerar också. Men jag får inte visning att fungera i Pi (det fungerar i windows). Har någon möjlighet att kopiera en fungerande "mypage.bsh" kod för pi?
(Det är sökvägarna som jag måste ha ngt fel i, och det skulle spara en del felsökningstid). :)
Det är nog lätt fixat, redigera filen med Leafpad editorn (ersätt ? med rätt tecken).

mypage.bsh

Code: Select all

car_check_device = "5";
car = false;
car_on = null;
car_minutes = null;
path = "/home/pi/nexahome/";
temp = false;
temp2 = false;
params = getData("mypage.params_");
//echo(params);
var len = Integer.parseInt(params);
for (int ndx = 1; ndx <= len; ndx++) {
   param = getData("mypage.param" + ndx + "_");
//   echo(param);
   if (param.equals("mypage=temp")) {
      temp = true;
   } else if (param.equals("mypage=temp2")) {
      temp2 = true;
   } else if (param.equals("mypage=car")) {
      car = true;
   } else if (param.startsWith("on=")) {
      car_on = param.substring("on=".length());
   } else if (param.startsWith("minutes=")) {
      car_minutes = param.substring("minutes=".length());
   }
}
if (car && car_on != null) {
   setData("car_on", car_on);
   setData("car_minutes", (car_minutes != null ? car_minutes : ""));
   deviceOn(car_check_device);
}
if (temp || temp2) {

   import java.awt.Color;
   import java.io.BufferedReader;
   import java.io.File;
   import java.io.FileReader;
   import java.io.IOException;
   import java.text.ParsePosition;
   import java.text.SimpleDateFormat;
   import java.util.Calendar;
   import java.util.Date;
   import java.util.StringTokenizer;

   addClassPath(path + "jcommon-1.0.17.jar");
   addClassPath(path + "jfreechart-1.0.14.jar");
   addClassPath(path + ".");

   String[] temp_labels = { "In", "Out" };
   String[] temp_colors = { "black", "blue" };

   String[] temp2_labels = { "Sensor1", "Sensor2", "Sensor3" };
   String[] temp2_colors = { "black", "blue", "yellow" };

   int length = 640;
   int height = 480;
   String title = null;
   String output= null;
   String[] labels = null;
   String[] colors = null;
   special_name = null;

   if (temp) {
      title = "Temperature";
      labels = temp_labels;
      colors = temp_colors;
      special_name = "temp";
   } else if (temp2) {
      title = "Temperature 2";
      labels = temp2_labels;
      colors = temp2_colors;
      special_name = "temp2";
   }

   output = path + "mySensorChart_" + special_name + ".png";

   SensorChart.initGraph(labels.length, 1);
   for (int gNdx = 0; gNdx < labels.length; gNdx++) {
      txt = colors[gNdx].toLowerCase();
      if ("white".equals(txt)) {
         color = Color.white;
      } else if ("lightgray".equals(txt)) {
         color = Color.lightGray;
      } else if ("gray".equals(txt)) {
         color = Color.gray;
      } else if ("darkgray".equals(txt)) {
         color = Color.darkGray;
      } else if ("black".equals(txt)) {
         color = Color.black;
      } else if ("red".equals(txt)) {
         color = Color.red;
      } else if ("pink".equals(txt)) {
         color = Color.pink;
      } else if ("orange".equals(txt)) {
         color = Color.orange;
      } else if ("yellow".equals(txt)) {
         color = Color.yellow;
      } else if ("green".equals(txt)) {
         color = Color.green;
      } else if ("magenta".equals(txt)) {
         color = Color.magenta;
      } else if ("cyan".equals(txt)) {
         color = Color.cyan;
      } else{
         color = Color.blue;
      }
      SensorChart.initSeries(gNdx, labels[gNdx], color);
   }

   Calendar cal = Calendar.getInstance();
   int back = 1;
   cal.add(Calendar.DAY_OF_YEAR, -back);
   for (int dNdx = 0; dNdx <= back; dNdx++) {
      StringBuffer buf = new StringBuffer();
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      File f = new File(path + special_name + "_" + sdf.format(cal.getTime()) + ".txt");
      if (f.exists()) {
         BufferedReader br = null;
         try {
            br = new BufferedReader(new FileReader(f));
            String line = null;
            do {
               line = br.readLine();
               if (line != null) {
                  buf.append(line);
                  buf.append("\n");
               }
            } while(line != null);
         } catch (IOException e) {
            e.printStackTrace();
         } finally {
            try {
               if (br != null) {
                  br.close();
               }
            } catch (IOException e) {
               e.printStackTrace();
            }
         }
         sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
         StringTokenizer st1 = new StringTokenizer(buf.toString(), "\n");
         while (st1.hasMoreTokens()) {
            StringTokenizer st2 = new StringTokenizer(st1.nextToken().replaceAll("\t\t", "\t?\t"), "\t");
            if (st2.hasMoreTokens()) {
               String timestamp = st2.nextToken();
               Date date = sdf.parse(timestamp, new ParsePosition(0));
               if (date != null) {
                  cal.setTime(date);
                  int year = cal.get(Calendar.YEAR);
                  int month = cal.get(Calendar.MONTH) + 1;
                  int day = cal.get(Calendar.DAY_OF_MONTH);
                  int hour = cal.get(Calendar.HOUR_OF_DAY);
                  int minute = cal.get(Calendar.MINUTE);
                  int gNdx = 0;
                  while (st2.hasMoreTokens() && gNdx < labels.length) {
                     String value = st2.nextToken().replace(',', '.');
                     if (!value.equals("?")) {
                        try {
                           double d = Double.parseDouble(value);
                           SensorChart.addValue(gNdx, year, month, day, hour, minute, d);
                           dataAdded = true;
                        } catch(NumberFormatException nfe) {
                           // ignore
                        }
                     }
                     gNdx = gNdx + 1;
                  }
               }
            }
         }
      }
      cal.add(Calendar.DAY_OF_YEAR, 1);
   }

   if (dataAdded) {
      SensorChart.process("", title, length, height, output);
   } else {
      echo("No data added to graph!");
   }
}
kornflakez
Posts: 6
Joined: Fri Mar 17, 2023 9:45 am

Re: Tips: NexaHome - Raspbian wheezy

Post by kornflakez »

Hej igen,

Detta blir tredje gången jag svarar på detta inlägget... jag har gjort "preview" men glömt "submit" två dagar i rad :banghead:

Tack för tipset med Å, Ä och Ö, men allting var redan rätt med tecknen i HTML-filen.
En sak som jag däremot inte visste om tidigare var att det är dumt att redigera HTML-filer i Wordpad i windows. Denna sparar tydligen inte filerna som UTF-8 automatiskt.
Så det jag var tvungen att göra var att öppna upp filerna i Notepad i windows och spara som UTF-8 format (detta kunde även ha gjorts i Leafpad).
Efter det så fungerade tecknen direkt i Pi.

Temperaturvisningen har jag tyvärr inte hunnit titta vidare på. Men det jag har sett är att det skapas upp en fil som är 0 byte i storlek.
Men nu när jag har en kod att jämföra med så borde det gå att lösa lite lättare, tack för hjälpen!

Om det är någon som har tips på hur man kan snabba upp laddningen av HTML-sidor med bilder (utan att komprimera bilderna hur mycket som helst) så får ni gärna säga till.
Som det är i nuläget så styr jag via en surfplatta (wifi) till raspberry pi (också wifi), så det kan bli lite segt vid laddning av sidor..

Ha det gott!
patrikg
Posts: 122
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm/Sweden

Re: Tips: NexaHome - Raspbian wheezy

Post by patrikg »

Detta med åäö... då kodar ni inte rätt.
ÅÄÖ kodas.. juh med html... på detta sätt då blir det rätt oavsett vilken.. teckentabell man har i datorn.
iso8859-1 eller utf-8..

Code: Select all

å=&aring;
ä=&auml;
ö=&ouml;
Å=&Aring;
Ä=&Auml;
Ö=&Ouml;

PS... får väl göra en sök ersätt på alla html filer.. till dessa... DS

MVH
Patrik
Post Reply