Hur koppla ihop WBT-912 och Tellstick Duo

Moderator: Telldus

Post Reply
foobar
Posts: 5
Joined: Fri Mar 17, 2023 9:45 am

Hur koppla ihop WBT-912 och Tellstick Duo

Post by foobar »

Hej,

Försöker få ihop en WBT-912 och Tellstick Duo (På en Raspberry Pi 3. Har ett par andra enheter som fungerar utan problem.

Har uppdaterat /etc/tellstick.conf med

Code: Select all

device {
  id=9
  name="Brytare"
  protocol = "arctech"
  model = "selflearning-switch"
  parameters {
    house = "98806"
    unit = "4"
  }
}
Sedan startat om

Code: Select all

$ sudo systemctl restart telldusd.service
Försöker sedan lära in koden (här tror jag att jag kanske gör fel...)

Code: Select all

$ tdtool --learn 9
Learning device: 9 Brytare - Success
(Detta samtidigt som jag sluter två kablar jag kopplat till S1. Ser att lampan lyser men inget mer)

Code: Select all

$ tdtool -l
...
9	Brytare	OFF
...
Någon som vet mer?
  • - Har jag fel konfiguration?
    - Gör jag fel när jag försöker sätta WBT:n i självlärningsläge?
Tack på förhand!
etompau
Posts: 2405
Joined: Fri Mar 17, 2023 9:45 am
Location: Skåne

Re: Hur koppla ihop WBT-912 och Tellstick Duo

Post by etompau »

Du kan inte sätta en WBT-912 i självlärningsläge då det är en sändare och inte en mottagare. Huskoden i WBT-912 ligger fast i minnet från fabrik.
Har inte själv kombinationen Pi/Duo men du måste ta reda på vilken kod som WBT-912 skickar innan du kan nyttja den i Duon.
foobar
Posts: 5
Joined: Fri Mar 17, 2023 9:45 am

Re: Hur koppla ihop WBT-912 och Tellstick Duo

Post by foobar »

Ah, då blir det ju lite svårare. Har du något tips?

Jag har en Arduino jag skulle kunna koppla på en 433 MHz mottagare och lyssna av min WBT!? Har testat att lyssna av mina fjärrkontroller innan så jag vet att jag borde få ut något iaf. Med det sagt inte säkert jag lyckas konvertera den data till huskod...

Tack förresten :D
svartöra
Posts: 31
Joined: Fri Mar 17, 2023 9:45 am

Re: Hur koppla ihop WBT-912 och Tellstick Duo

Post by svartöra »

Egentligen lite lustigt att tdtool inte listar sändare/knappar. Men informationen är tillgänglig via apiet. Jag har ett enklare c-program som listar vad som händer. Typ så här:

Code: Select all

2017-05-22 00:32:54: class:command;protocol:arctech;model:selflearning;house:4562346;unit:3;group:0;method:turnoff;
2017-05-22 00:32:54: class:command;protocol:sartano;model:codeswitch;code:1011111010;method:turnon;
2017-05-22 00:32:55: class:command;protocol:arctech;model:selflearning;house:4562346;unit:3;group:0;method:turnoff;
2017-05-22 00:32:55: class:command;protocol:sartano;model:codeswitch;code:1011111010;method:turnon;
2017-05-22 00:33:03: class:sensor;protocol:fineoffset;id:113;model:temperature;temp:20.6;
2017-05-22 00:33:04: class:sensor;protocol:mandolyn;id:112;model:temperaturehumidity;temp:21.3;humidity:50;
2017-05-22 00:33:04: class:sensor;protocol:mandolyn;id:112;model:temperaturehumidity;temp:21.3;humidity:50;
Tänkte skriva om det till python endera veckan och skicka ut datat via mqtt, men det finns kanske bättre tips.
foobar
Posts: 5
Joined: Fri Mar 17, 2023 9:45 am

Re: Hur koppla ihop WBT-912 och Tellstick Duo

Post by foobar »

Är det kod du vill dela med dig av svartöra?

Jag har gjort test med min Arduino nu. Får följande:

Code: Select all

01010101110110101010011010000001
Lite dokumentation jag hittat:
* The actual message is 32 bits of data (64 wire bits):
* bits 0-25: the group code - a 26bit number assigned to controllers.
* bit 26: group flag
* bit 27: on/off flag
* bits 28-31: the device code - a 4bit number.

Ger då:

Code: Select all

0-25: 	01010101110110101010011010 -> 22506138
26: 	0 -> 0
27:		0 -> 0
28-31: 	0001 -> 1
Men med

Code: Select all

device {
  id=9
  name="Brytare"
  protocol = "arctech"
  model = "selflearning-switch"
  parameters {
    house = "22506138"
    unit = "1"
  }
}
Får jag det ändå inte att funka.

Ser som sagt att min Duo blinkar fint i blått när jag sluter kablarna så den får ju in signalerna iaf. Övriga enheter styr jag utan problem också. "Måste" vara konfigurationen som är fel - eller hur?
foobar
Posts: 5
Joined: Fri Mar 17, 2023 9:45 am

Re: Hur koppla ihop WBT-912 och Tellstick Duo

Post by foobar »

Ser att min Arduino verkar läsa av mina världen rätt eftersom den ser ut att läsa on/off korrekt.

Ovan var för "off" - här kommer "on" (dvs ledarna slutna)

Code: Select all

On ger:
-------
01010101110110101010011010010001

0-25:	01010101110110101010011010 -> 22506138
26: 	0 -> 0
27:		1 -> 1 (=on)
28-31:	0001 -> 1
svartöra
Posts: 31
Joined: Fri Mar 17, 2023 9:45 am

Re: Hur koppla ihop WBT-912 och Tellstick Duo

Post by svartöra »

Koden kommer här, tyvärr (får jag väl säga) för Windows.

Code: Select all

#include <telldus-core.h>
#include <time.h>
#include <stdio.h>
#include "unistd.h"
#include <windows.h>

void WINAPI sensorEvent(const char *protocol, const char *model,
                        int sensorId, int dataType, const char *value,
                        int ts, int callbackId, void *context)
{
  char timeBuf[80];
  time_t timestamp = ts;

  //Print the sensor
  printf("%s,\t%s,\t%i\n", protocol, model, sensorId);

  //Retrieve the values the sensor supports
  if (dataType == TELLSTICK_TEMPERATURE) {
    strftime(timeBuf, sizeof(timeBuf), "%Y-%m-%d %H:%M:%S", localtime(&timestamp));
    printf("Temperature:\t%sº\t(%s)\n", value, timeBuf);

  } else if (dataType == TELLSTICK_HUMIDITY) {
    strftime(timeBuf, sizeof(timeBuf), "%Y-%m-%d %H:%M:%S", localtime(&timestamp));
    printf("Humidity:\t%s%%\t(%s)\n", value, timeBuf);
  }
  printf("\n");
}

void WINAPI RawDeviceEvent(const char *data, int controllerId, int callbackId, void *context)
{
  char timeBuf[80];
  time_t timestamp = time(NULL);
  
  strftime(timeBuf, sizeof(timeBuf), "%Y-%m-%d %H:%M:%S", localtime(&timestamp));
  printf("%s: %s\n", timeBuf, data);
}



int main(void)
{
  int callbackId = 0;

  tdInit();

  //Register for callback
  callbackId = tdRegisterRawDeviceEvent(&RawDeviceEvent, 0 );

  while(1) {
    Sleep(100);
  }

  //Cleanup
  tdUnregisterCallback( callbackId );
  tdClose();

  return 0;
}

foobar
Posts: 5
Joined: Fri Mar 17, 2023 9:45 am

Re: Hur koppla ihop WBT-912 och Tellstick Duo

Post by foobar »

Tack svartöra.

Hann hitta en annan lösning under tiden (men har varit bortrest så inte hunnit svara här). Problemet är alltså löst :-)

Hittade ett python-lib som hjälpte med precis det jag ville göra:

https://github.com/erijo/tellcore-py

ger bland annat ett verktyg tellcore_events som man kan använda för att lyssna av sin device efter den data som behövs.

Code: Select all

$ tellcore_events --raw
[RAW] 1 <- class:command;protocol:arctech;model:selflearning;house:22506138;unit:2;group:0;method:turnon;
Givet denna information var det nu lätt att ange rätt tellstick.conf:

Code: Select all

device {
  id=9
  name="Brytare"
  protocol = "arctech"
  model = "selflearning-switch"
  parameters {
    house = "22506138"
    unit = "2"
  }
}
och sedan starta om med:

Code: Select all

sudo systemctl restart telldusd.service
(Eftersom jag använder Home Assistant sedan tidigare ihop med mina telldus-enheter var det inga problem att sedan automatisera även denna enhet när konfigurationen nu funkade. Funkar väldigt bra för att kontrollera om min gräsklippare är inne eller ute - eller har fastnat för den delen).
Hoppas detta kan hjälpa andra som kanske fastnat :-)
Post Reply