Pages: [1] 2   Go Down
Author Topic: Need info on X10.h library  (Read 2449 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have an Adruino Uno and I just got a PL513. I downloaded the X10.h library but I can't find the syntax of all the commands or list of commands (i.e. x10.beginTransmission, x10.write, x10.endTransmission, etc).

Since no one else has asked this question I assume I just must be missing something simple. So please tell me where I can find this. Thanks.
Logged

Topsham, Vermont USA
Offline Offline
Edison Member
*
Karma: 32
Posts: 1866
... in The Woods In Vermont
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
(You DID read this, right?) : http://arduino.cc/en/Tutorial/x10

There doesn't seem to be a standard or guideline for this issue. (Anyone have pointers?)

Many nicely done libraries have an information page or if on GitHub etc, a WIKI that starts with How-To.

But many times all you can do is read the .H file in wordpad etc. and look for stuff like:

CommandCode { cmdOn, cmdOff, cmdBright, cmdDim }; Telling you the possible commands.

More gory is to read the .cpp files and figure out by the coding what the author meant to do.
« Last Edit: January 18, 2013, 05:03:56 pm by terryking228 » Logged

Regards, Terry King terry@yourduino.com  - Check great prices, devices and Arduino-related boards at http://YourDuino.com
HOW-TO: http://ArduinoInfo.Info

Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I found this example in a book but it doesn't work, I get a "X10 does not name a type" error. I don't know enough about instances and libraries and the like to figure it out but I will keep looking at examples and I am sure I will figure it out.

Code:
// x10 pl513 controller

#include <x10.h>
#include <x10constants.h>

#define rxPin 7
#define zcPin 9
#define dataPin 8
#define repeatTimes 1

 
x10 myHouse = x10.begin(rxPin, dataPin, zcPin); // line with error

 void setup() {

  myHouse.write(C, ALL_UNITS_OFF, repeatTimes);
}

void loop()  {

  myHouse.write(C,UNIT_1, repeatTimes);
  myHouse.write(C, ON, repeatTimes);
  delay(2000);
  myHouse.write(C,UNIT_1, repeatTimes);
  myHouse.write(C, OFF, repeatTimes);
}
Logged

New Jersey
Offline Offline
Faraday Member
**
Karma: 65
Posts: 3638
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Where did you put the library? It may simply be that the IDE can't find it.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I got the X10 library from here...    http://arduino.cc/en/Tutorial/x10

Here is another example code I found on this site and supposedly works. But I get the same error - "X10' does not name a type". Could it be something wrong with my PC? I am using the 1.0.2 ver of the IDE.

Code:
#include <x10constants.h>
#include <x10.h>

#define ZCROSS_PIN        2        // BLK or Yel pin 1 of TW523
#define RCVE_PIN        4       // GRN or RED  pin 3 of TW523
#define TRANS_PIN        5       // YEL or BLK pin 4 of TW523
#define LED_PIN        13       // state pin for testing

x10 SX10= x10(ZCROSS_PIN,TRANS_PIN,RCVE_PIN,LED_PIN);//error flagged here

void setup(){
  Serial.begin(9600);
}

void loop(){
 
  myHouse.write(A, UNIT_1, 3);
  myHouse.write(A, OFF, 3);
  myHouse.write(B, UNIT_1, 3);
  myHouse.write(B, OFF, 3);
  myHouse.write(C, UNIT_1, 3);
  myHouse.write(C, OFF, 3);
     
}
Logged

Topsham, Vermont USA
Offline Offline
Edison Member
*
Karma: 32
Posts: 1866
... in The Woods In Vermont
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
But I get the same error - "X10' does not name a type". Could it be something wrong with my PC? I am using the 1.0.2 ver of the IDE.

MeToo on 0023 and 1.03
Logged

Regards, Terry King terry@yourduino.com  - Check great prices, devices and Arduino-related boards at http://YourDuino.com
HOW-TO: http://ArduinoInfo.Info

Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This link may shed some light on this. All the examples I have found are old. Seems like in 2012 when 1.0.1 came out it broke the x10 library. Still looking into this. I found an x10ex library, maybe I can use that.


http://arduino.cc/forum/index.php?topic=108325.0
Logged

Topsham, Vermont USA
Offline Offline
Edison Member
*
Karma: 32
Posts: 1866
... in The Woods In Vermont
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

OK,the library and examples here:
http://code.google.com/p/arduino-x10/downloads/list

compile OK for me on 1.03. Have not tested functionality...
Logged

Regards, Terry King terry@yourduino.com  - Check great prices, devices and Arduino-related boards at http://YourDuino.com
HOW-TO: http://ArduinoInfo.Info

Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks, that is the one I found. I will try it when I get home. Not sure if it works the same as x10.h or if it works with my PL513. We'll see.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Cant get the x10ex library to work, maybe because I am using the PL513. So I sent an email to Tom I. who wrote the x10.h lib to see what he says about the error with x10.h.
Logged

New York, NY, USA
Offline Offline
Newbie
*
Karma: 0
Posts: 40
Howdy. I don't check PMs often, so email me!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

For what it's worth, I've tested my version of the X10 library on everything from 1.0 through 1.0.3 and it works fine. I get occasional mails about it, and most of the problems seem to center on a few issues:

1) libraries installed incorrectly. For this, check that you have libraries installed correctly. That's usually the answer to 99% of the mails I get.

2) doesn't work with pre-1.0. I didn't make it backwards-compatible, sorry.

3) doesn't work with all X10 units. I don't own anything but the ones I tested it with. So I can't say.

4) doesn't do read. I have not had time or need to implement read, but others have. I recommend searching out some of the other X10 libs if you need read.

I check with each version of Arduino to make sure the code is intact, and that it compiles and works with my units, but I haven't actually implemented a new X10 project since 2010. It's not a protocol I use much anymore. X10's always been a bit flaky for me, even when the library's been working perfectly, So I haven't had time to improve this library. If I were doing home automation projects right now, I'd look into other alternatives. I find the Philips Hue, the Wemo, and the PowerSwitchTail to be more useful for things around the house, for me.  They don't have the main limitation that X10 does, not being able to send data across different circuits in my home. Every time I've used X10, I've had to ensure that the devices are on the same circuit breaker.

Hope that's helpful in some way.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks Tom for your reply. But unfortunately, that was not the problem. I completely deleted all the Arduino software and downloaded and installed 1.0.3 and re-downloaded the X10h zip file and re-installed it. But I still get the same error as before. Running your X10Blink programs compiles OK but does not run. It hangs on the x10.write command. I am about to give up on the x10 library.

Logged

New York, NY, USA
Offline Offline
Newbie
*
Karma: 0
Posts: 40
Howdy. I don't check PMs often, so email me!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

If you got it to compile, you're at the same state as me today. I don't have any X10 gear at home, so I can't test further.

I have some notes in "Making Things Talk" as to the hardware hiccups you're likely to hit beyond the library. In summary, they amount to:

* Make sure your modem and devices are on the same AC circuit. X10 won't get past the circuit breaker
* Once you've uploaded working code, unplug the modems and reset the Arduino. The modems are sensitive to timing disruptions. I found I can seldom get code to run without re-plugging while I'm developing, but once I have stable code, I can reset everything and it'll run reasonably well, as long as they're all on the same circuit
* Check your house codes, etc. to make sure you're sending to the right device and right group
* Make sure your code sends infrequently. Sending every time through the main loop will make a horrible mess, as the modem's only sending 120 bits a second, on the zero crossing, or 100 bits a second in Europe

Honestly, leaving X10 behind is probably not a bad idea. As I said, I have always found X10 to be troublesome. I wanted to delete it from the last version of "Making Things Talk" but there had been enough to keep it that I did, and updated the library. I've never intended that library to be a final version, and many others have made their own.  Check out  John Giametti or Doug Clinton's work for more, sorry I don't have their latest links but they are google-able.

If you want a more flexible home automation system, look into more modern alternatives like WeMo, Power line interfaces (I saw some from NetGear in the BestBuy store earlier today), or build your own with XBees and PowerSwitchTails, or your own relays.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

SUCCESS!!!!!!!!!!!!!!!!

Thanks Tom!!!!! I did a search on Doug's library and downloaded it. I did not get the compile error. But it still didn't work. As a last resort I switch the zc and data pins around and it worked. I know I had the plug wired correctly between the PL513 and the Arduino. All I can think of is inside the phone cable I am using they switch 2 wires around. Anyway I am very happy now.

Regarding what you said about the X10, I have been using X10 for 25 years and my whole house is using it. I got alot of spare modules around and it works good for me. Many years ago I installed the X10 capactior which coupled both phases of my 220 in my house so I have no problem sending a signal from one socket to any other in ther house.

My next step is my ultimate goal, to control the X10 from the net using the Arduino. That is a piece of cake compared to getting the X10 to be controled by the Arduino. 8-)

Joe
Logged

Seattle
Offline Offline
Newbie
*
Karma: 0
Posts: 46
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

hi All -
Joe -
Doug is hosting a version of my library (based on Tom's and Brohogan's code) at
https://github.com/DougC/arduino-x10

We're discussing more permanent hosting options, but for now, this version is stable on the current Arduino version.

Despite much investment in time and materials, whole house couplers, repeater/amplifiers, I was never able to make the original X10 reliable (enough) in my house and have set it aside.  My opinion is that it's era is over.  If/when I reengage it will be with a more modern standard.  I'm impressed you've made it reliable!

--creatrope

Logged

Pages: [1] 2   Go Up
Jump to: