Ok, Firstly the "pre built image" is built on a full Raspbian OS and is then put into "read-only" mode to protect the SD card (and your system settings) you can over rule the "read-only" mode at any time using the " rpi-rw " command.
When you first boot up the "pre built image" it is in "read-only" mode by default, therefore the "raspi-config" set-up menu (for keyboard, locale, timezone etc) will not work because it cannot save the new settings. If you exit the menu and once the Pi has booted up, type
rpi-rw
sudo raspi-config
this will allow you to use the menu (but NOT the expanding file-system option) and the settings will be saved.
The "wiki" you linked to is more about the design and technical aspects of the RFM2Pi such as firmware uploads and debugging. It doesn't tell you about the basic install steps which involve changing /boot/cmdline.txt and /etc/inittab to release the serial port from being used by the serial console (default on raspbian)
Firstly edit the inittab file by adding a '#' to the beginning of the last line, so it reads;
# T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
...and edit the cmdline.txt file by changing the single line to;
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
This "conflict" is probably the reason the Pi is not happy to see the RFM2Pi module plugged in, but it could also be due to the limited amount of spare space in the Raspbian image, since you have installed arduino the space must be very low. How much disk space is available if you run " df -h " ?
Paul
NOTE - I have been unable to post this reply to http://openenergymonitor.org/emon/node/10039 so have had to try starting a new thread instaed.
Re: First open energy monitor project (PART 2)
I'll try this method as soon as possible. What do you say about the serial cable?
Re: First open energy monitor project (PART 2)
I have no experience with that cable, it looks like it should work ok, the pinout seems to be the same except for "cts" but that pin is not used on emonTx headers so should be of no consequence.
Paul
Re: First open energy monitor project (PART 2)
Raspberry works good after changing files. Disk space available is 601 M . Now what I have to do for wireless connection?
Re: First open energy monitor project (PART 2)
As I previously commented, most of the time you can just plug it on and it works.
If it's not working you need to give us more detail. Have you configured emonhub.conf? what freq is RFM2Pi? RFM12 or 69? Is the emonTx connected and working ? Does the RFM2Pi led flash? Have you checked emonhub.log? or minicom?
Paul
Re: First open energy monitor project (PART 2)
emonhub.conf is configured . I set the read apikey. RFM12Pi v 2.6 work at 433 MHz group 210 baseid 15 . Is it right with the emontx pre-installed firmware? The led flashes sometimes. The file var/log/emonhub/emonhub.log is empty
Re: First open energy monitor project (PART 2)
"I set the read apikey..." Not the Read & Write APIkey? The Read one is read-only (good for getting the time) but if you want to send data, you're writing.
Re: First open energy monitor project (PART 2)
Also while you are in the conf changing the apikey, if you set loglevel to DEBUG you will get more info in the log.
Paul
Re: First open energy monitor project (PART 2)
Now I wont to visualize data from emontx to raspberry. I'm using the emoncms read apikey. Can I visualize data on screen without emoncms key?
Re: First open energy monitor project (PART 2)
When I start the service it appears:
root@raspberrypi:/home/pi# service emonhub start
[....] Starting OpenEnergyMonitor emonHub: emonhubstart-stop-daemon: unable to start /usr/share/emonhub/emonhub.py (Permission denied)
[ ok been started ok.
And when I try to to see the emonhub.log nothing appears
Re: First open energy monitor project (PART 2)
how did you install emonhub? did you create a user "emonhub"? this is done automatically by the dev-emonhub installer script.
Why are you running as root user? normally as user "pi" you would use "sudo service emonhub start"and the service would be started to run in the background using user "emonhub"
I don't think "root" has full access to "pi" homedir, try changing back to user "pi" and use "sudo" to get the elevated permission to run daemon while retaining access to /home/pi.
Also check emonhub.py permissions
(edit - corrected typo in command)
Re: First open energy monitor project (PART 2)
Before the connection to the server, seems that there is a transmission problem between RFM12pi module, Raspberry and Emontx. The rf expansion is connected to rasperry via gpio, precisely gpio pin 1 to 10 are dedicated to radio module. So I will try to use a python script to test wireless trasmission. Only if the transmission will exist the data can be sent on emoncms server. What are the rules of each rfm pin?
Re: First open energy monitor project (PART 2)
is the green led flashing on Pi to confirm packets are being received? if so you could use minicom
BAUD can be 9600, 57600 or 38400 depending on model of rfm2pi.
emonhub is the python script that passes the data from the rfm2pi to emoncms, checking the emonhub log can also tell you if packets are arriving at Pi but not going to emoncms.
Paul
Re: First open energy monitor project (PART 2)
I really don't know why my raspberry pi do strange things. Today the green led is always on and I didn't touch nothing else. Emontx is connected to 9V AC.
When minicom starts, it appears the welcome and I can use a combination [ctrl+ z] . This combination is not functioning. The resolution is more simple than it appears but it makes me crazy.
"s command not found"
I also tried "chmod 777 " on the python file with the same result when the service try to start
Re: First open energy monitor project (PART 2)
"s command not found" sorry that was a typo (ls not s, corrected now), it should have been
But now you have changed the permissions it won't reveal anything,
The LED should not be "always on", if it is there is something using the serial port or a physical issue with the rfm2pi (which is highly unlikely) do you mean "constantly flashing"?
Since you do not have emonhub running it cannot configure the rfm2pi, so if there is an incorrect setting you can not see or change it, without emonhub or a serial console (eg minicom, picocom etc)
It may be easier to go back to using the sd card image, the reason you stopped using it was because you couldn't get raspi-config to work, now you know it can be used maybe you should try it again.
If you do not want to use to pre-built image you should start again with a fresh new raspian downloaded image on the sd card and just free up the serial port by editing 2 files (use "sudo nano" to do the editing) , /etc/inittab (add # to start of last line) and /boot/cmdline.txt (remove "console=ttyAMA0,115200") then reboot and install emonhub using
git clone https://github.com/emonhub/dev-emonhub.git ~/dev-emonhub && ~/dev-emonhub/install
the default settings should work and you can confirm this by setting loglevel = debug (currently warning) in /etc/emonhub/emonhub.conf and then run tail -f /var/log/emonhub/emonhub.log to display the log messages as they happen. All this is done by user pi not root.
If you still have problems post again without changing anything else as it's easier to resolve when you know what has or has not been done. a log output.would help too.
Paul
Re: First open energy monitor project (PART 2)
Log file result:
2015-02-06 15:34:43,083 INFO Opening hub...
2015-02-06 15:34:43,086 INFO Logging level set to DEBUG
2015-02-06 15:34:43,089 INFO Creating EmonHubEmoncmsReporter 'emonCMS'
2015-02-06 15:34:43,094 INFO Set up reporter 'emonCMS' (buffer: memory | size: 1000)
2015-02-06 15:34:43,099 INFO Setting emonCMS url: http://localhost/emoncms
2015-02-06 15:34:43,102 WARNING Setting emonCMS apikey: invalid format
2015-02-06 15:34:43,105 INFO Creating EmonHubJeeInterfacer 'RFM2Pi'
2015-02-06 15:34:43,110 DEBUG Opening serial port: /dev/ttyAMA0 @ 38400 bits/s
2015-02-06 15:34:45,120 DEBUG Opening serial port: /dev/ttyAMA0 @ 9600 bits/s
2015-02-06 15:34:47,124 ERROR Unable to create 'RFM2Pi' interfacer: Attempting to use a port that is not open
Re: First open energy monitor project (PART 2)
Good, you have emonhub running, I'm guessing you have used the dev-emonhub installer ?
Did you also do the cmdline.txt and inittab edits?
Have you rebooted since those edits? did you "powerdown" or properly with sudo shutdown -r now ?
Is the rfm2pi connected? is the led still "always on"? or does it flash? was it connected before you rebooted ?
Occasionally the first connection after the rfm2pi is powered up fails, try rebooting and rechecking the log.
Assuming all the above is in order and emonhub still isn't able to establish a connection with the rfm2pi, you should try manually setting the com baud speed rather than letting emonhub "auto detect" this is done by adding a com_baud = x line in emonhub.conf to the [[RFM2Pi]] [[[init_settings]]] section, where x = 9600, 38400 or 57600 depending on model of rfm2pi, they were all 9600 until autumn last year, then a handful were 57600 and then 38400 (if you are not sure try each in turn) the log will increase when it is able to communicate.
You could reboot inbetween attempts to be sure the serial buffers get cleared just until you establish a connection.
Some info AS WELL as a log would be useful if you still have problems
Paul
Re: First open energy monitor project (PART 2)
I have used dev emonhub installer as you said via git. I also edited cmdline.txt and inittab. I rebooted the system. LED is still green. Module was connected before rebooted. Log file reports the same results.
Do I add the com baud in emonhub.conf here: ?
# This interfacer manages the RFM2Pi module
[[RFM2Pi]]
Type = EmonHubJeeInterfacer
[[[init_settings]]]
com_port = /dev/ttyAMA0
[[[runtimesettings]]]
group = 210
frequency = 433
baseid = 15
Re: First open energy monitor project (PART 2)
Yes you can add it like this (comment optional)
# This interfacer manages the RFM2Pi module
[[RFM2Pi]]
Type = EmonHubJeeInterfacer
[[[init_settings]]]
com_port = /dev/ttyAMA0
com_baud = 9600
# common com_baud options are 9600 39400 57600
[[[runtimesettings]]]
group = 210
frequency = 433
baseid = 15
However if the led is permanently lit it's unlikely (but not impossible) to be the baud setting, I would still try it but it maybe an issue with the firmware from the attempts to use avrdude while the serial console was active.
Paul
Re: First open energy monitor project (PART 2)
I used all the baud rate with this log report:
tail -f /var/log/emonhub/emonhub.log
2015-02-07 11:02:07,344 INFO Set up reporter 'emonCMS' (buffer: memory | size: 1000)
2015-02-07 11:02:07,349 INFO Setting emonCMS url: http://localhost/emoncms
2015-02-07 11:02:07,351 WARNING Setting emonCMS apikey: invalid format
2015-02-07 11:02:07,361 INFO Creating EmonHubJeeInterfacer 'RFM2Pi'
2015-02-07 11:02:07,366 DEBUG Opening serial port: /dev/ttyAMA0 @ 38400 bits/s
2015-02-07 11:02:09,371 WARNING Device communication error - check settings
2015-02-07 11:02:09,374 INFO Setting RFM2Pi frequency: 433 (4b)
2015-02-07 11:02:10,378 INFO Setting RFM2Pi group: 210 (210g)
2015-02-07 11:02:11,382 INFO Setting RFM2Pi quiet: 1 (1q)
2015-02-07 11:02:12,385 INFO Setting RFM2Pi baseid: 15 (15i)
Re: First open energy monitor project (PART 2)
Were the results EXACTLY the same for each baud?
Did you reboot (without removing power) in between attempts?
Did the LED still remain on throughout all three tests?
Re: First open energy monitor project (PART 2)
Yes, the results are the same. I rebooted without removing power. The rfm led remain.
Re: First open energy monitor project (PART 2)
It suggests the issue is on-board the RFM2Pi, you will need to set up avrdude to proceed
once that's installed try stopping emonhub and getting a response from the RFM2Pi using
The response from this should tell us a bit more about it's current state, if it fails first time try the last line a second time.
Just to confirm 100% the RFM2Pi is definately on the end 10 pins of the Pi's gpio connector and orientated like this picture http://wiki.openenergymonitor.org/index.php?title=File:RFM12PiV2_Pi_small.png correct?
Re: First open energy monitor project (PART 2)
Module is placed as figured
This is the response of the last command:
pi@raspberrypi ~ $ avrdude -v -c arduino -p ATMEGA328P -P /dev/ttyAMA0 -b 38400
avrdude-original: Version 5.11.1, compiled on May 23 2012 at 11:08:25
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "/etc/avrdude.conf"
User configuration file is "/root/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/ttyAMA0
Using Programmer : arduino
Overriding Baud Rate : 38400
avrdude-original: Using autoreset DTR on GPIO 4
AVR Part : ATMEGA328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 20 4 0 no 1024 4 0 3600 3600 0xff 0xff
flash 65 6 128 0 yes 32768<PHONE_NUMBER> 4500 0xff 0xff
lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00
calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Programmer Type : Arduino
Description : Arduino
Hardware Version: 3
Firmware Version: 4.4
Vtarget : 0.3 V
Varef : 0.3 V
Oscillator : 28.800 kHz
SCK period : 3.3 us
avrdude-original: AVR device initialized and ready to accept instructions
Reading | | 0% 0.0Reading | ################################################## | 100% 0.01s
avrdude-original: Device signature = 0x1e950f
avrdude-original: safemode: lfuse reads as 0
avrdude-original: safemode: hfuse reads as 0
avrdude-original: safemode: efuse reads as 0
avrdude-original: safemode: lfuse reads as 0
avrdude-original: safemode: hfuse reads as 0
avrdude-original: safemode: efuse reads as 0
avrdude-original: safemode: Fuses OK
Re: First open energy monitor project (PART 2)
I continue here in a sort of continuity discussion. Sorry about past problem thread.
After following the flash procedure as explained in part 4, emontx and raspberry are in communication. When emontx' red led flashes, rfm green led flashes and the emonhub.log updates.
Here a frame log:
2015-02-08 09:11:27,864 DEBUG 17 Timestamp :<PHONE_NUMBER>.86
2015-02-08 09:11:27,867 DEBUG 17 Node : 10
2015-02-08 09:11:27,870 DEBUG 17 Values : [0, 0, 0, 0, 24022, 0]
2015-02-08 09:11:27,880 DEBUG 17 RSSI : -18
2015-02-08 09:11:27,985 DEBUG 17 Append to 'emonCMS' buffer => time:<PHONE_NUMBER>.86, data: [10, 0, 0, 0, 0, 24022, 0, -18], ref: 17
2015-02-08 09:11:38,611 DEBUG 18 NEW FRAME :<PHONE_NUMBER>.61 OK 10 0 0 0 0 0 0 0 0 177 93 0 0 (-31)
2015-02-08 09:11:38,621 DEBUG 18 Timestamp :<PHONE_NUMBER>.61
2015-02-08 09:11:38,624 DEBUG 18 Node : 10
2015-02-08 09:11:38,635 DEBUG 18 Values : [0, 0, 0, 0, 23985, 0]
2015-02-08 09:11:38,638 DEBUG 18 RSSI : -31
2015-02-08 09:11:38,685 DEBUG 18 Append to 'emonCMS' buffer => time:<PHONE_NUMBER>.61, data: [10, 0, 0, 0, 0, 23985, 0, -31], ref: 18
Can you explain me the meaning of each line? I haven't connected any ct sensors to phase cable.Emontx is connected to 9V AC. Probably the values are referenced to ct4 ct3 ct2 ct1 9v ac and 5v dc ? How do I stop the emonhub log visualization via lxterminal?
Re: First open energy monitor project (PART 2)
First open energy project (Part 3)
First open energy monitor project (part 4)
I think most of the log entries are fairly self explanatory, each "NEW FRAME" of data is prefixed with a unix timestamp and logged as it's received before any processing. It is then processed as "Timestamp", "Node" id, data "Values" and if applicable the rfm69's "RSSI".
The "standard" processing will take each pair of byte values from the input string and create a list of signed int's (hence 0 0 0 0 0 0 0 0 177 93 0 0 becomes [0, 0, 0, 0, 23985, 0]) more complex data stuctures can be handled by matching a sketches typedef struct's payload to a "datacodes" entry in emonhub.conf.
The processed data then gets "Append"ed to a buffer to send on to a local or remote emoncms. A note hear about your apikey not being correct in a earlier log "WARNING Setting emonCMS apikey: invalid format" suggests it's not a 32 character alpha-numeric string, without that corrected emonhub will not attempt to pass data to emoncms.
If you are using the stock emontx v3 sketch the 4 zero's are ct1 to 4 the "23985" is 239.85 Vac and the last zero is temperture.
Use control + c exit "tail emonhub.log"
once you have finished setting up emonhub and emoncms you can change loglevel back to warning in emonhub.conf so only errors get logged.
Re: First open energy monitor project (PART 2)
I use the read write apikey given by emocms after registration. I've inserted it in emonhub.conf.
To see the temperature, do I change the node id to 19? But if I change this id, can I see sensors data and Vac already?
When I connect 5V dc I see the data like this [0, 14, 0, 0, 525, 0]
Re: First open energy monitor project (PART 2)
"I use the read write apikey ........ I've inserted it in emonhub.conf."
Has this changed the "WARNING Setting emonCMS apikey: invalid format" log entry to "INFO Setting emonCMS apikey: obscured" ?
There is both a "read apikey" and a "write apikey" you must use the write api key in emonhub.conf,
"To see the temperature, do I change the node id to 19? But if I change this id, can I see sensors data and Vac already?" I'm sorry but I'm not sure what you are asking here!
"When I connect 5V dc I see the data like this [0, 14, 0, 0, 525, 0]" - I'm guessing a bit here to, do you mean when you power up the emonTx using 5vdc (only) you receive data at the Pi that shows as these "values" in emonhub's log, then good, a step in the right direction the format looks correct the 14 is 14watts on ct2 and the AC voltage is 5.25vac which may just be noise if you dont have a 9vac adapter connected.
But from here I cannot be sure of much as I only have what little info you share with me to help you.
Paul
Re: First open energy monitor project (PART 2)
I read somethnig on the wiki about temperature. When it is read by emonth the group id, for wireless transmission, is 19. My intention is to read temperature values. The answer of the 5 volt is what I would know, so the sensor measure power in this case. Now I don't understand why there is an ac component if I disconnected the 9 v ac.
I'll set the write apikey for emoncms.
Re: First open energy monitor project (PART 2)
Do you have an emonTH as well as a emonTx or are you just trying to get a temperture reading from a emonTx?
I understand you have a emonTx and that is able to read temperture IF you connect a temperture probe to it.
The emonTx default firmware has a standard payload of values ct1 ct2 ct3 ct4 Vac Temp if you want different values you will need to change the firmware (sketch). Although the standard firmware is providing the standard payload the actual values will be dependent on the sensors attached eg if you do not connect ct3 you will not get a ct3 value it will remain 0 same for Vac and Temperture.
However , whilst the firmware actually sets the ct value to 0 if there is no sensor connected it doesn't do this for the Vac, all analog inputs have a little noise (there are several discussions on this currently) you just cannot see it when a ct is not connected as the value is "zeroed", the temperture is digital and won't show a false reading without a sensor.
The default node id for an emonth is 19 (where as a emontx is 10) but either a emontx or a emonth can have any value between 1 and 30 as a node id to give it a unique identifier, it is set in the sketch an serves no purpose other than to identify WHERE the data come from, not what it is or what the values are directly, but by identifying itself you can tell what the data should be eg if you call your emontx node 2 and it is loaded with firmware to give you temperture Vac ct1, then you know any data identified as node 2 will be temperture Vac ct1 because you defined it.
Re: First open energy monitor project (PART 2)
"I read somethnig on the wiki about temperature. When it is read by emonth the group id, for wireless transmission, is 19."
You're misunderstanding the whole system there. It is not the temperature that is 19, it it is the EmonTH Sensor Node that is given the default node ID of 19. Each node that transmits data must have an unique node number, so that the source of the data is known and you can attach a meaningful label to it in emonCMS. We always use the Group ID = 210. Node ID and Group ID are different. Every node on the system must belong to Group 210.
Re: First open energy monitor project (PART 2)
Yes Robert, I know the same thing, I was imprecise. I intended the default node, 19, not temperature. The mistake is group /id. I also have a emonth. Can I read temperature from emontx using node id 10?
Re: First open energy monitor project (PART 2)
The default group id for your whole network is 210 all devices must have this set the same, within your group (network) the default node id for the emonTx is 10, the default node id for the emonTH is 19 and the default node id for the base (ie the Pi and RFM2P) is 15 which is also refered to as the base id.
So you will have 3 nodes (1 base, 1 Tx and 1 TH) each with a unique node id and the same group id.
The emonhub.conf is where you set the base settings (group 210, baseid 15 and frequency 433) and in the firmware for the emonTH or Tx is where the node settings are done (prior to installing the firmware).
In emonhub.conf there is also a nodes section at the bottom for declaring more elaborate data payloads but you are using standard data types so should not define any nodes here. (unless you change the firmwares first)
You can measure temperture using the emonTx IF you attach a temperture sensor to the terminals at the back, you can find more info on this in the wiki. The temperture read by the temperture sensor you fit to the emonTx will be transmited as the 5th value in node 10's payloadeg Values [0, 14, 0, 0, 525, 225] is 22.5 deg C.
The emonTH has a temperture sensor built in and if you just add batteries it should show up in emonhub.logs as node 19.
Paul
Re: First open energy monitor project (PART 2)
Firstly thank you very much for support. I'm lost withouth your help. I can read temperature and humiditiy data in the log file under node 19.
I have another question. I solded an emontx shield v 2.5 and mounted on an Arduino uno. Then I connected Arduino to computer via usb and uploaded the Shield_CT_123_Voltage sketch. But when I open the log file, nothing happens, there is not connection between arduino and raspberry:
2015-02-10 21:57:34,737 INFO Opening hub...
2015-02-10 21:57:34,740 INFO Logging level set to DEBUG
2015-02-10 21:57:34,743 INFO Creating EmonHubEmoncmsReporter 'emonCMS'
2015-02-10 21:57:34,749 INFO Set up reporter 'emonCMS' (buffer: memory | size: 1000)
2015-02-10 21:57:34,753 INFO Setting emonCMS url: http://localhost/emoncms
2015-02-10 21:57:34,756 WARNING Setting emonCMS apikey: invalid format
2015-02-10 21:57:34,759 INFO Creating EmonHubJeeInterfacer 'RFM2Pi'
2015-02-10 21:57:34,765 DEBUG Opening serial port: /dev/ttyAMA0 @ 38400 bits/s
2015-02-10 21:57:36,779 INFO RFM2Pi device firmware version: [RF12demo.12]
2015-02-10 21:57:36,782 INFO RFM2Pi device current settings: O i15 g210 @ 433 MHz q1
^C
Re: First open energy monitor project (PART 2)
Do you have both an emonTx and an emonTx Shield? If you do, you must change the Node ID of one, because as I wrote earlier, every Node ID on your system must be different.
Re: First open energy monitor project (PART 2)
I changed these 2 instructions:
const int nodeID= 9 (originally was 10)
#define RF69_COMPAT 1 (because my raspi has rf69)
Re: First open energy monitor project (PART 2)
This should only be defined if the physically attached rfm transceiver is an rfm 69. If your node has a rfm12 you do not define RF69_COMPAT even if the RFM2Pi is an rfm69.
A rfm12 can communicate with a rfm69 in "COMPAT" mode and the RFM2Pi will already be running in "COMPAT" mode if you are receiving data.
The log is still showing "WARNING Setting emonCMS apikey: invalid format" in emonhub.conf the emoncms apikey must be a 32 character alpha-numeric string, no spaces or symbols.
Re: First open energy monitor project (PART 2)
I sold a rfm69 on emonshield. Do I change something in the sketch?
Re: First open energy monitor project (PART 2)
If you are using a rfm69 on the shield then yes "#define RF69_COMPAT 1 (because my raspi has rf69)" is correct.
Re: First open energy monitor project (PART 2)
when I use the serial sketch, te red led of emontx shield bright, and I can see via serial monitor emontx data. When I upload a rfm sketch, seems that nothing happen, the red led remains off, emonhub don't show data from the node id chosen (9 ). The pi's rfm led don't blink when emontx v3 and emonth are power off and the emonhub.log is the same as previous posted.
Re: First open energy monitor project (PART 2)
This sounds like a problem in the node (arduino or sheild or sketch or rfm69 or jeelib etc) do you get a positive confirmation when you upload a sketch to the shield? What serial output do you see from the arduino? are you sure the rfm on the shield is definitely 69 not 12?
Re: First open energy monitor project (PART 2)
Yes, I get positive confirmation.
some lines from arduino serial monitor with voltage serial only sketch:
emonTX Shield CT123 Voltage Serial Only example
OpenEnergyMonitor.org
63222.62 77283.63 2239.04 64552.96 562.33
25395.62 42898.58 0.29 30085.94 358.24
5516.43 23245.80 0.25 15827.68 166.51
484.48 12005.82 0.12 7560.14 49.91
202.09 5711.47 0.12 3298.06 32.79
109.92 2454.89 0.12 1249.48 24.28
54.82 1109.05 -0.31 508.69 16.82
22.36 471.09 1.67 51.69 11.18
12.48 183.17 0.68 1.03 7.90
3.80 75.57 0.18 0.15 4.54
The rfm "chip" is quite equal to this: http://www.grandtech.lv/shop/popup_image.php?pID=90364 with st8886 1422AR FOYA and CEC 4F 10.000L
And this for shield ct1234 voltage . only one time, not looped or updated:
emonTX Shield CT123 Voltage example
OpenEnergyMonitor.org
Node: 9 Freq: 433Mhz Network: 210
Re: First open energy monitor project (PART 2)
The main part of the Shield works. But you have no voltage and no current - is that correct? What you see there is false numbers generated by the software filters and the numbers get smaller as the filters reach their working point. This is normal.
If you see only this with the radio sketch:
then I think there is a problem with the RFM69CW not responding when it is initialised.
Re: First open energy monitor project (PART 2)
I think you have a new rfm12b with a SMD crystal, the rfm69 has far more smaller SMD's and the layout of your rfm is similar to the "usual" rfm12 with the 2 SMD's on one side, (
I think one cap can be removed to convert from 433 to 868 or vise versaedit wrong part)http://www.tme.eu/pl/details/rfm12b-433s2p/moduly-komunikacyjne-rf/hope-microelectronics/
Maybe try uploading the sketch without COMPAT defined.
Re: First open energy monitor project (PART 2)
The EmonTx V3.4 I have is supposed to have the RFM69CW (it has the wire-ended can crystal but the same IC) but does NOT work with "#define RF69_COMPAT 1" - it needs RF69_COMPAT 0.
[Edit:] (Glyn wrote: [it is] "an emonTx V3.4 with 433Mhz RFM69Pi")
Re: First open energy monitor project (PART 2)
Robert - I wouldn't be surprised if your v3.4 has an rfm12 too! "Glyn wrote: "an emonTx V3.4 with 433Mhz RFM69Pi"" sounds to me like it's 2 devices, a v3.4 with an unspecified rfm device and a RFM69Pi (aka a rfm2pi with a rfm69 fitted and extra IO broken out) I can't be sur but I haven't heard of a rfm69 not in COMPAT mode working, (or at least not on a rfm12 network) as JeeLib is different.
I have however seen rfm12's with either a 16pin DIL SMT chip or the familiar "black blob" with either the usual can or the newer SMT xtal. Of all the rfm69's I have seen (mainly online) they all seem to sport a square SMT chip with the SMT xtal, They also seem to all have "RF69" in a larger typeface on the chip itself as per the link supplied by mike_86.
familiar rfm12b "black blob" and can
rfm12b 16pin DIL SMT and can xtal
rfm12b "black blob" and SMT xtal
rfm12b 16pin DIL SMT and SMT xtal
rfm69 square 28pin SMT and SMT xtal
The shop listing states
"Fully Built Unit: emonTx V3.4, fully assembled with RF module, firmware (DiscreteSampling RFM12B or Discrete Sampling RFM69CW) uploaded and tested."
and
"Firmware uploaded and tested - emonTxV3.4_RFM12B_DiscreteSampling firmware for single phase installations"
and
"The emonTx comes pre-loaded with the Discrete Sampling firmware for RFM12B or Discrete Sampling firmware for RFM69CW"
but doesn't have any method of selection for rfm12 or 69 so I suspect they were rfm12 to begin with and changed in production to rfm69 with a different sketch loaded and only 2 of the 3 mentions got edited to show both, but that's just a guess.
Paul
Re: First open energy monitor project (PART 2)
I uploaded the rfm12b simple sketch, nothing happens. Do I change something or use something special in minicom et similia to test the radio communication between raspberry and emontx shield?
Re: First open energy monitor project (PART 2)
Does the led on the rfm2pi flash? can you link to the "rfm12b simple sketch" I'm not sure what that is so not sure what to expect it to do.
Re: First open energy monitor project (PART 2)
https://github.com/openenergymonitor/RFM12B_Simple
No the led don't flash .
Re: First open energy monitor project (PART 2)
My RFM module is not one of those, but it's close to the "rfm12b 16pin DIL SMT and can xtal"
Re: First open energy monitor project (PART 2)
I would say that's closer than close to an rfm12b, as far as I can tell that is definitely a rfm12b what makes you think otherwise?
Your link goes to a folder containing 4 sketches so I still don't know which you are definitely running, however I didn't see a sketch there specifically for the shield, maybe someone can confirm if those sketches are shield compatible or not.
Re: First open energy monitor project (PART 2)
I thought otherwise because Glyn inferred he'd sent me a V3.4 with an RFM69, but maybe not.
Are you addressing Mike with the question about the sketches? Those are not engineered working sketches - they are purely to illustrate how to send and receive data. At a quick glance, they should work for any emonTx except the V3.2 (aka plain "V3"), for which you change "<JeeLib.h>" into "<RFu_JeeLib.h>". The radio side should work but there is no code in there to measure voltages or currents. The "transmit" sketch just sends an ever incrementing stream of numbers. The receive sketches just listen for those numbers and print to the serial (programmer) output.
Re: First open energy monitor project (PART 2)
Cheers Robert, no I was looking for someone with some sheild knowledge to confirm Mike is using a sketch that will work to test his shield's rf side is working.,
I'm trying to help him get a shield working and can't even determine what sketch and/or settings he should be using. I'm pretty sure that is an rfm12.
I have linked above to all the variants as I know them. Can you see rf69 screen printed on the chip itself? and is it 16pin dil or 28pin square? the fact you said it won't run using rf69 code and it looks like a rfm12 casts doubt. I think you have a rfm12 v3.4 and a rfm69pi, was there a rfm2pi on a orange pcb with the emontx?
Perhaps glyn or someone else in the know could confirm, appearance isn't the best method of identifying electronic circuits.
Paul
Re: First open energy monitor project (PART 2)
This is an image of the Emontx shield on an Arduino UNO. Do I sold correctly? Do I miss something important?
If the sketch transmit data, Raspberry pi would receive and I would visualize numbers in minicom, right? It is not important to see energy values, it's sufficient to be successful in trasmit - send data wirelessly.
Re: First open energy monitor project (PART 2)
Although thats not the board previously shown, It still looks like a rfm12b see these links
http://www.grandtech.lv/shop/product_info.php?manufacturers_id=5&products_id=90364
http://www.tme.eu/en/details/rfm12b-433s2p_sp/rf-communication-modules/hope-microelectronics/rfm12b-433s2p/
Do you have an invoice or email you can check? where did you buy it?
You have tried rfm12 sketch and rfm69 sketch, neither worked. We are not going to be able to move forward until we can be sure of what software to run. it is pointless trying to debug with incompatible software.
looking at your board it looks like the slave select and rfm interrupt links ( red link blocks in the picture below) are missing do you have pins 10 and 2 linked?
I think you need to put those 2 links in place and reload the correct sketch for a rfm12b (COMPAT 0) and it'll work.
PS - It also looks like the 3.5mm sockets are on the wrong side, Robert maybe able to give you some pointers there I think he's seen that before.
Re: First open energy monitor project (PART 2)
You are right about the 3.5 mm sockets - they are WRONG. The outline of the socket printed on the board does show which side they should be on - the side where you have the ac adapter socket, as in the picture immediately above. Your CTs will not work because the tip and ring connections are swapped. If you cannot unsolder the sockets (and I expect you will not be able to), the easy way to rectify the fault is to move the white wire in the plug from the plug tip to the ring. Leave the red wire where it is.
Re: First open energy monitor project (PART 2)
This just tweeted from the shop shows the shield with RFM69 fitted
you can clearly see the difference
Re: First open energy monitor project (PART 2)
I clearly don't have a '69er. Boo! Hiss!
Which probably explains why RF69_COMPAT 1 makes it lock up.
Re: First open energy monitor project (PART 2)
That was primarily directed to Mike, but I'm glad we cleared that little mystery up too :-)
I wouldn't be too worried about the emonTx end currently, until they start receiving control data, depend heavily on ACK's or the COMPAT mode gets dropped for a full blown RFM69 featureset, it's unlikely you will notice the difference.
The main difference from a users perspective (aside from different drivers) is the RFM69 has noticeably better reception rather than transmission and the receiver provides RSSI data which is really handy. So if you use a RFM69 at the emonBase (rfm2pi(69) or rfm69pi) you will get better reception and RSSI data from all your nodes regardless of whether they are 12 or 69.
Re: First open energy monitor project (PART 2)
But raspberrypi needs rf69 firmware, emonhub and minicom don't visualize any data without it. When I go in lab I make other photos, including raspberry. After solved this radio problem, I'll show emonglcd too. I bought the whole system from your own main oem site, section shopping.
I can unsolder ct jackets, removing the tin by aspiring.
Re: First open energy monitor project (PART 2)
Every RFM device currently sold in the shop (and near as damn it, all RFM devices discussed on the forum) are rfm12 or rfm69 running in rfm12 compatibility mode. The define COMPAT's in the sketches are to switch between rfm12 native code and COMPATibility mode to make a rfm69 run as a rfm12, either way the result is a rfm12 compatible result.
So it doesn't matter what is on one end of the radio transmission, the other end can still be either. You can have a mixture of rfm12's and rfm69's on the same network because the current OEM softwares will only run rfm12's or rfm69's in COMPAT mode there is no native rfm69 support yet.
When you see COMPAT read "run this rfm12 code using a rfm69". So "COMPAT 0" is for running rfm12 code on a rfm12 and COMPAT 1 is to run rfm12 code on a rfm69.
Therefore yes the Pi ans all the stuff that works is correct and you do not need to change any software sketches anywhere but on the sheild. You have a rfm12 type network with rfm69 devices in compatibility mode that is working fine and to that you want to add your rfm12 shield. You can do that bt installing the sketch with COMPAT 0 because it doesn't need converting to an rfm12 it is already an rfm12.
The reason your shield didn't communicate first time is because 2 connections were mising as you didn't fit the supplied linking blocks. If you fit fit those it should communicate fine.
As for the sockets, only try and remove them if you are very sure of your (un)soldering skills, you can damage the board very very easily. Robert has given you an alternative route if you are less than sure about removing the sockets.
Before trying the sockets fit the links and load the sketch for rfm12, solve that problem before engaging another.
Re: First open energy monitor project (PART 2)
Fortunately, I've got another emontx shield. I solder it as you written. I can't upload an image now, I'll post it as soon as possible. I solder the slave and interrupts on the pin named 'RFM12B SS' and 'RFM12B IRQ'. Looking at your image previously posted, shields have 'rfm12' and raspberry has 'rfm69'. So I have to upload sketches with COMPAT 0.
I uploaded the Shield_CT1234_Voltage . Previously, The sketch was changed with this: CT1 CT2...Ct4=0 because cts are physically disconnected, nodeID=9, RF_freq RF12_433MHZ , RF69_COMPAT 0.
9V AC is connected but I see via serial 0.00. Radio is ever died.
Unsoldering and removing the ct sockets is very hard (because of twisted contacts), I tried and I give up on unsolder sockets. Other pieces like the serial UART are simpler than sockets, I did it successfully.
Re: First open energy monitor project (PART 2)
Correct, however
Is more accurate and simpler ! you only need to concider the device in hand "Does the device I am loading the sketch to have a rfm69 fitted to it?" and the answer is "No, therefore I do not need to run the COMPAT code to convert to a rfm12". It does not matter what is on the Pi or any other device (as long as they are the same frequency)
Robert - Is it feasible to link the ring and tip pins of the socket on the shield if the ring is open circuit in the ct? as long as he doesn't go shoving a "mono" 3.5mm plug in there at some point that is (no reason he should though) that would save having 2 varieties of ct which is bound to cause further confusion.
Re: First open energy monitor project (PART 2)
This is the 'new' emontx shield:
And this is the raspberry pi:
It's visible the rfm12b expansion with rfm69.
Re: First open energy monitor project (PART 2)
"Robert - Is it feasible to link the ring and tip pins of the socket on the shield if the ring is open circuit in the ct? "
Yes, he could indeed do that. The link needs to be between the "outer" pair of pins belonging to the socket.
Re: First open energy monitor project (PART 2)
Yes the shield looks ok, the links are correct, the sockets are on the right side. That is a rfm12 so load your sketch with "RF69_COMPAT 0".
The Pi looks fine yes its a rfm69 fitted to the RFM2Pi but that doesn't effect what you are doing to the shield.
Robert has confirmed for us that you can "fix" your other shield without removing the sockets. On the opposite side of the board where the pins are soldered you should link the outer most 2 pins together on each socket like this.
Re: First open energy monitor project (PART 2)
I upload the tx_SimpleRFM12B_demo. Here is the code:
//Simple RFM12B wireless demo - transimtter - no ack
//Glyn Hudson openenergymonitor.org GNU GPL V3 7/7/11
//Credit to JCW from Jeelabs.org for RFM12
#define RF69_COMPAT 0 // define this to use the RF69 driver i.s.o. RF12
#include <JeeLib.h> //from jeelabs.org
#define myNodeID 9 //node ID of tx (range 0-30)
#define network 210 //network group (can be in the range 1-250).
#define RF_freq RF12_433MHZ //Freq of RF12B can be RF12_433MHZ, RF12_868MHZ or RF12_915MHZ. Match freq to module
typedef struct { int power1, power2, power3, battery; } PayloadTX; // create structure - a neat way of packaging data for RF comms
PayloadTX emontx;
const int LED = 6; //emonTx V3
void setup() {
rf12_initialize(myNodeID,RF_freq,network); //Initialize RFM12 with settings defined above
Serial.begin(9600);
Serial.println("RFM12B Transmitter - Simple demo");
Serial.print("Node: ");
Serial.print(myNodeID);
Serial.print(" Freq: ");
if (RF_freq == RF12_433MHZ) Serial.print("433Mhz");
if (RF_freq == RF12_868MHZ) Serial.print("868Mhz");
if (RF_freq == RF12_915MHZ) Serial.print("915Mhz");
Serial.print(" Network: ");
Serial.println(network);
pinMode(LED, OUTPUT);
}
void loop() {
emontx.power1=emontx.power1+1;
emontx.power2=emontx.power2+2;
emontx.power3=emontx.power3+3;
emontx.battery=emontx.battery+4;
rf12_sendNow(0, &emontx, sizeof emontx);
rf12_sendWait(2);
Serial.print("power1: "); Serial.println(emontx.power1);
Serial.print("power2: "); Serial.println(emontx.power2);
Serial.print("power3: "); Serial.println(emontx.power3);
Serial.print("battery: "); Serial.println(emontx.battery);
Serial.println(" ");
digitalWrite(LED, HIGH); delay(500); digitalWrite(LED, LOW);
delay(2000);
}
Both emon LED and rasp LED don't blink (then there is not radio transmission). Do I change jeelib files and other? If so, what do I do? I have not written this program files. If I touch randomly , I could damage files and shield.
Re: First open energy monitor project (PART 2)
The first thing I notice is the led pin is wrong, the shield uses pin 9. I'm unsure of any other differences off the top of my head as I'm unfamiliar with the shield.
Do you get any serial output?
Why are you trying to get this sketch working rather than the correct one?
Re: First open energy monitor project (PART 2)
The shield pin is 9, written in shield too. I understood that one pin is probably wrong but I know that Arduino uno has also dedicated pins for its LEDs and functionalities. Surely there is other wrong and I will change it.
The serial output is only 'RFM1'
What is the correct one? I'm trying to transmit data from shield to raspberry.
Re: First open energy monitor project (PART 2)
Some good news: after uploaded "Shield_CT1234" , the red led flashes every 3 seconds. Raspi rfm69 seems to sleep. The led don't flash. I tried to change the baud rate in emonhub.conf. The log set to debug show a warning when the baud rate is changed:Device communication error - check settings
The emontx shield is v2.5 Oct 2013. Do I change the firmware? If so, can I already see data from emontx v3 and emonth?
Re: First open energy monitor project (PART 2)
If the led does not flash on the RFM2Pi indicating receipt of the packet just sent by the shield, ie if the leds don't flash together then there is no point looking at the Pi because the rf packet is not getting there.
The Pi receives from the emonTH and emonTx so assume the Pi is good.
How close is the shield to the Pi?
Did you set the group ID (and Node ID) ?
The default for sketch looks like it is 868MHz did you remove the " # " to uncomment the RF_freq RF12_433MHZ define? taht line should read
If still no joy you will need to hook up a serial programmer to see what serial output you are getting.
Re: First open energy monitor project (PART 2)
But in this case emontx v3 and emonth are not present. I'm only working with emontx shield and raspi. They are nearby, few centimeters. In c language the # has another meaning, when you want a comment you add // for a line comment or /* for multiline comment. The # is used for preprocessing.
Re: First open energy monitor project (PART 2)
Sorry yes you are right about the " # ", I'm spending a lot of time with python and bash,
The point I make about the Pi is you know it works and can receive correctly BECAUSE you have had the emonTx and the emonTH working..
If the led on the RFM2Pi doesn't flash it hasn't received, how can changing anything in the Pi change the fact the RF packet isn't arriving at the RFM2Pi?
If the led was flashing to confirm receipt but you where getting no data that's a different matter, but that is not the case. The RFM2Pi is not receiving from the shield but was recieving from the emonTx and emonTH, so unless you have altered something on the Pi or RFM2Pi to stop it receiving, you can assume it's ok and focus on the shield.
Time to connect the serial programmer and see what is happening there.
Also check your soldering at the RFM12 module and confirm the SS and IRQ links are correctly placed etc
There is no point looking at the Pi until that led flashes on the RFM2Pi.
Re: First open energy monitor project (PART 2)
Now I have no possibilities to use the serial uart ports.
Meanwhile I can do the contrary. Raspberry send data to emontx. Is it possible?
Re: First open energy monitor project (PART 2)
It's certainly possible but not as widely implemented as receiving from a emonTx, OEM is primarily a sensor network and moving into control is a whole different kettle of fish.
You will at the very least need a custom sketch for the emonTx that can accept your transmissions, Then you need something to encode and send the transmisions via the rfm2pi.
emonHub, packetgen, heating controller are terms you can search and catch up with the status of various projects and find some info if you want to do something yourself.
There is no current "easy" solution, but we're working on it.
Re: First open energy monitor project (PART 2)
Nothing impossible. I can do it. I want know if a code already exists. I have to work on this also because the next project step is a control for monitoring. I hope that the rm shield receive without other problems.
Re: First open energy monitor project (PART 2)
I've done what I have to do
I'm returning back some shields, Emontx shields and EmonGLCD so that you can solve directly the problem. They don't work. Can you give me an Address? I'm a Thesist and I have to solve the problems as soon as possible.
Re: First open energy monitor project (PART 2)
I'm glad you've done what you set out to do.
If you have stuff to return to the shop you need to speak to them directly. I'm just a user much like yourself and while Robert is a forum moderator he isn't involved with the shop. The contact details are on this support page
http://shop.openenergymonitor.com/support/
We haven't really established if any are faulty yet and I would guess that any units you have used/modified will not be re-saleable, certainly the one with the sockets on the wrong side isn't. Or do you just have surplus units?
The likelihood that you have more than one faulty unit is highly remote, faulty units are almost non-existent.
Did you try putting a programmer to the shield with a correct sketch loaded?
Re: First open energy monitor project (PART 2)
I'm trying to connect emoncms. Log file shows this lines:
2015-03-02 17:19:07,533 INFO emonCMS sending: http://localhost/emoncms/input/bulk.json?apikey=E-M-O-N-C-M-S-A-P-I-K-E-Y&data=[[1425312792.24,10,10,0,0,0,0,0,-27],[1425312792.47,10,9,0,0,0,0,0,-25],[1425312792.73,10,8,0,0,0,0,0,-25],[1425312792.98,10,7,0,0,0,0,0,-26],[1425312793.23,10,6,0,0,0,0,0,-26],[1425312793.47,10,5,0,0,0,0,0,-25],[1425312793.72,10,4,0,0,0,0,0,-25],[1425312793.97,10,3,0,0,0,0,0,-27],[1425312794.22,10,2,0,0,0,0,0,-31],[1425312794.47,10,1,0,0,0,0,0,-28],[1425312794.73,10,0,0,0,0,0,0,-28],[1425312812.82,10,0,0,0,0,24663,0,-28],
2015-03-02 17:19:07,628 WARNING emonCMS couldn't send to server, URLError: [Errno 97] Address family not supported by protocol
2015-03-02 17:19:07,635 WARNING emonCMS send failure: wanted 'ok' but got ''
Re: First open energy monitor project (PART 2)
Have you tried the dotted IP address assigned by your router, rather than "localhost"? Quite often, "localhost" is only known inside that machine, elsewhere on your network you need the IP address.
Re: First open energy monitor project (PART 2)
I used ip address in emonhub.conf
url=http://<IP_ADDRESS>/emoncms
Result is the same as previosly posted.
Re: First open energy monitor project (PART 2)
Hello everybody, after setting the right apikey and emoncms.org I sent a lot of data to emoncms. Now, when I put in the command line the instruction "make codesend", emonhub don't pick up emontx/th data. The log shows warning device communication error check settings. I tried to re-flash with avrdude, the result is:
pi@raspberrypi ~/RFM2Pi/firmware/RFM69CW_RF_Demo_ATmega328 $ avrdude -v -c arduino -p ATMEGA328P -P /dev/ttyAMA0 -b 38400 -U flash:w:RFM69CW_RF12_Demo_ATmega328.cpp.hex
avrdude-original: Version 5.11.1, compiled on May 23 2012 at 11:08:25
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "/etc/avrdude.conf"
User configuration file is "/root/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/ttyAMA0
Using Programmer : arduino
Overriding Baud Rate : 38400
avrdude-original: Using autoreset DTR on GPIO 4
avrdude-original: stk500_recv(): programmer is not responding
Re: First open energy monitor project (PART 2)
I'm not really sure what you are referring to there.
Did you check the settings ? Is the log entry before this, that states the attempted baud setting, correct?
Have you tried manually setting the baud in the settings to ensure the correct baud is set ?
you have successfully updated the firmware previously, there should be no reason to do it again as it was working ok and you certainly should not try and update the firmware unless you know you can communicate with the board, unless all else fails as you may corrupt it.
Are you able to use minicom or arduino ide etc to access it via serial? Can you confirm the settings by typing "v"? you should get something like
Re: First open energy monitor project (PART 2)
I solved the device communication error: only a reboot was necessary! I did not connect to the forum, so I answer now.
Now, when I connect a current sensor on the neutral wire and an other onthe three fase line, the power value is the same. Is it possible? When data are sent through serial port and seen with python script or minicom, data strange are seen. How can I convert it to real values? And when I try to write a string on /dev/ttyAMA0, no other shields receive this data from raspberry ( Node id 15, group 210, frequency 433 MHz). Shields have rfm12b_recv.ino sketch:
#include <JeeLib.h>
// must match the ID set in the linux driver (either as compile-time option or via ioctl()).
#define GROUP_ID 210
// must match the ID set in the linux driver (either as compile-time option or via ioctl()).
#define BAND_ID RF12_433MHZ
// not relevant for the linux driver, but still...
#define NODE_ID 16
// amount of time in milliseconds the sketch is blocked to let the LED shine
#define LED_DELAY 100
/**************************/
Port leds (1);
static void recvLed(int state)
{
leds.mode(OUTPUT);
leds.digiWrite(state);
}
static void sendLed(int state)
{
leds.mode2(OUTPUT);
leds.digiWrite2(!state);
}
static void printBuffer(byte* buf, int len)
{
for (byte i = 0; i < len; ++i) {
Serial.print(buf[i]);
Serial.print(' ');
}
Serial.println();
}
void setup()
{
Serial.begin(57600);
rf12_initialize(NODE_ID, BAND_ID, GROUP_ID);
}
void loop()
{
if (rf12_recvDone() && rf12_crc == 0) {
recvLed(1);
Serial.print("RECV ");
printBuffer((byte*)rf12_data, rf12_len);
delay(LED_DELAY);
recvLed(0);
}
}
Re: First open energy monitor project (PART 2)
Problem with emonhub on standard Wheezy distro.
In emonhub.log I've got the "ERROR Unable to create 'RFM2Pi' interfacer: Attempting to use a port that is not open" message.
Backgrounds:
I have purchased the devices (emonBase, emonTX, emonTH, pre-installed 4GB SDCard) 2 weeks ago.
I have set up the system, and used the 4GB SDCard successfully, and everything was working perfectly.
Then I wanted to install additional sw components (openHAB, node-red), and I had to realize, that the root partition on the 4GB card is just not enough.
I successfully "expanded" the system to a 32GB SDCard, and everything was working perfectly.
Then (unfortunately :) ) I got the idea, that a "full-functional" emonCMS would fit my needs more, than the current low-write version. So I've just bought a 128GB SDD.
I was hesitating, which way to go:
1. do a full Rasbian Wheezy install, and then install emonCMS+emonHUB
2. "expand" an existing emonSD image.
Somewhere in the forum topics, I have read, that the "upgrade" from low-write to full version is not a good choice, so I have choosen the 1 option.
I installed a "stock" Wheezy on the SDD, and got it working with my Raspi.
I have modified the /boot/cmdline.txt, and the inittab, just as it's recommended here.
Then I have installed the emonCMS and the emonHUB, trying to follow the latest guides.
However, now I'v got the feeling, that maybe I have "mixed" the guides from the github (for example: https://github.com/emoncms/emoncms/blob/9.0/docs/LinuxInstall.md )
and from the forums ( for example: http://openenergymonitor.org/emon/node/11186, http://openenergymonitor.org/emon/node/5986 )
I have spent days and nights with reading, but the "bigdata" on openergymonitor.org, is not user-friendly at all...
Right now, I have a working emonCMS (the<EMAIL_ADDRESS>version: http://openenergymonitor.org/emon/node/11009 )
and emonHUB service is also running, but can't communicate with the radio module.
If the com_baud option is not specified in emonhub.conf, then the error message is:
"ERROR Unable to create 'RFM2Pi' interfacer: Attempting to use a port that is not open"
If I specify 9600 or 38400 or 57600 with com_baud, the message is other:
"WARNING Device communication error - check settings"
I've tried minicom, but that does not do anything. Starts, the screen is blank. I exit without reset, start it again, screen blank.
I exit with reset, and the start again, then the minicom related sentences appear on the screen, but the module does not send anything.
The lower-right corner shows: "Offline"
I hit the keyboard without any response.
CTRL+X exits...
Any toughts, advices?
thanks,
Norbert
Re: First open energy monitor project (PART 2)
Hi Norbert. I can probably see why you found the installation guide location confusing, because there is no clear pathway from OEM's home page with most links pointing to the pre-loaded image.
Having said that, it's not a good start for a new system to dip in and out of different guides, and although your current issue could probably be fixed, it would be good to have the confidence that your system is installed correctly, and prevent any problems further down the road. You may have it installed for a long time!
I suppose I am asking whether you want to fix the issue you have, or start afresh.
If you choose to start afresh, the guide that you should follow is the dedicated Raspberry Pi (Wheezy) guide, which I would follow and install it on your SD card. Once you get to the end of the guide there is a link to run a script to automatically copy and switch your OS root to your external drive.
Wheezy is the OEM 'endorsed' operating system which has been used for some time, therefore most of the anomalies & bugs have been sorted. But there is nothing to stop you installing it on Jessie if you prefer, using this guide. I'm running emoncms on Jessie and it works absolutely fine, but the choice is yours.
If you have any issues it would probably be better to start a new thread, rather than adding to this one.
Paul
Re: First open energy monitor project (PART 2)
Hi Paul,
thank you very much for the rapid and very helpful reply.
I think, at the moment I've got nothing to lose, so I will do a new install.
If I got stucked somewhere, then I will come back :)
thanks for the links,
I'm downloading a Jessie image...
best regards,
Norbert
Re: First open energy monitor project (PART 2)
there is no clear pathway from OEM's home page with most links pointing to the pre-loaded image.
I added installation instruction links to the FAQ page.
Re: First open energy monitor project (PART 2)
I added installation instruction links to the FAQ page.
Got to say, I wouldn't intuitively have gone to the FAQ to look for installation guides. I've just had a look how the two most 'oem quoted' websites deal with installations;
http://nodered.org/
Front and center - 'Getting Started' on home page shows simplistic installation, with a link beneath giving detailed instructions.
http://www.openhab.org/
Again, right from home page - 'Getting Started' which links into detailed instructions.
Hardly an objective analysis, but I think the installation guides do need promoting to make it easier for visitors to get the correct guide.
As a 'user' Norbert, what was your experience?
Paul
Re: First open energy monitor project (PART 2)
>As a 'user' Norbert, what was your experience?
:)
Thanks for the question :)
To tell the truth: I was lost on the site.
I'm an IT guy, with a huge geek-factor, and I like to try out new, interesting things (either devices or softwares). And I do this on a daily basis. I usually try to find user descriptions first, because (in my practise) they are much more up-to-date and detailed, than the "factory-made" guides. Simply because they are really doing the steps, that they write down, whereas the official guides are often only a more-or-less revisited stuffs, from 2 years before...
Maybe that's why I give up searching for the install guide. I do scan the sentences under the FAQ menu, and click on the Getting started link, but I couldn't find anything similar to what I was searching.
However, here I realized, that the the discussions in the forum topics are very useful and detailed enough, but there are simply too many topics, and the forum lacks the most important thing: which is the latest, and exactly what alternatives are there at all. I read at least 60 topics, each was held open on the tabs of my browser, and I tried to "accumulate" the information, and filter to my needs...
I wasn't really sucessful :)
A simple "Installation" menu item would be really useful.
By the way:
I've just ended the fresh install process, and everything seems to work well.
Thank you very much for pointing me to the good guide :)
(I've installed Jessie)
Even the 3relay WIfi thermostat is working now, and emonCMS is recording the data from the DHT sensor :)
I'm very happy, and tomorrow (today) I will start customizing the inputs/feeds/etc.
Thanks again,
and please keep on developing this fantastic product! :)
best regards,
Norbert
Re: First open energy monitor project (PART 2)
Thanks for the feedback Norbert, and I think that you made the wise decision.
I also agree with your comments, I hope that they trigger a change in the oem website structure...
Paul


The Daytrippers
Written and Directed by Greg Mottola
Starring Hope Davis (Eliza D'Amico), Stanley Tucci (Louis D'Amico), Parker Posey (Jo), Liev Schreiber (Carl), Anne Meara (Rita Malone), Pat McNamara (Jim Malone), Campbell Scott (Eddie)
THE DAYTRIPPERS is Greg Mottola's feature debut, and it's a fairly promising one, full of fine performances and well-written scenes. But if you find the memory of it slipping away from you within moments of its denouement, don't be surprised. The film's plot is loosely constructed, and although there is an intriguing interplay of theme and story, Mottola ultimately doesn't have enough control over his material to turn it into anything affecting or memorable. But his little micro-Odyssey is nonetheless a good trip; it's worth going along for the ride.
The story is rather picaresque in structure; our heroes, somewhat hapless suburbanites, take an impromptu trip through the amoral jungles of Manhattan. All this gets rolling when Hope, who appears to have a strong, loving relationship with her husband, Louis, finds a love note in the form of an early modern lyric poem, and doesn't know what to make of it. Encouraged by her domineering and slightly unhinged mother (played with frightening presence by Anne Meara), she decides to head down from Long Island to Louis's Manhattan office to ask him in person. Dad (an underused Pat McNamara) drives; Mom, younger sister Jo (played with casual quirkiness by Parker Posey), and younger sister's beau Carl (Liev Schreiber) tag along for the ride, offering moral support and comic relief, as the mood dictates.
When Louis turns out to have taken the day off from work, the family's suspicions grow, and they spend most of the rest of the film searching around Manhattan for Louis, or for evidence of his infidelity. This quest, such as it is, is the real meat of the film, for as our displaced adventurers roam about town, they bump into all sorts of eccentric urban types whose concerns are, more or less, intertwined with their own. Everyone's life in the city is all about sex, and about family. The dysfunctional troupe meets up with a son who's hiding his child-support-dodging dad from the police; with sisters squabbling over their mother's estate, fighting tooth and nail down to the last codeine pill. Hope meets a spurned lover at a party, while Jo meets a man who might be perfect -- or might be a clever, manipulative schemer. It's just another day in the big city.
But the real theme here is how the thick glaze of a good story gets scraped away by real pain. Most of our little suburban squadron looks at their trip into the city as something of a lark, but for Hope and Louis, it's deadly serious. Mottola has found a great newcomer in Eliza D'Amico; she's able to make her face speak louder than her family's words, and some of the film's most affecting moments come while we watch her face tugging at itself with worry while family glibly froths.
The rest of the cast is also strong. Liev Schreiber gives a convincingly naive performance as a young intellectual without many good ideas; he has some difficulty in scenes that require more emotional intensity, but then, so does his character. And Stanley Tucci, during his brief moments on screen, is utterly, hopelessly, devastatingly convincing in a part that requires him to play a good liar.
At its best, THE DAYTRIPPERS reminds me of recent films that celebrate the bizarre way that human lives are woven together in the modern city -- films like Krzysztof Kieslowski's RED and Wong Kar-wai's CHUNGKING EXPRESS. But here these themes serve more as connective tissue than anything else, holding together a plot that might otherwise -- and sometimes still does -- seem rambling and pointless. In the end, the film's main pleasures are momentary and idiosyncratic -- the leisurely progress of a plot and the pleasantly unpredictable performances of the lead players. These are not pleasures to be sneered at, mind you. Mottola's debut is on the whole a real pleasure to watch, a deft piece of storytelling with some moments of real beauty and passion.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Source
(defmethod rucksack-map-slot ((rucksack standard-rucksack) class slot function
&key min max include-min include-max
(equal nil equal-supplied)
(order :ascending) (include-subclasses t))
(let ((visited-p (make-hash-table)))
(labels ((map-slot (class)
(let ((index (rucksack-slot-index rucksack class slot
:errorp nil)))
(when index
;; The index maps slot values to objects.
(apply #'map-index
index
(lambda (slot-value object)
(declare (ignore slot-value))
(funcall function object))
:min min
:max max
:include-min include-min
:include-max include-max
:order order
(if equal-supplied (list :equal equal) '()))
(setf (gethash class visited-p) t))
(when include-subclasses
(loop for class in (class-direct-subclasses
(if (symbolp class)
(find-class class)
class))
unless (gethash class visited-p)
do (map-slot class))))))
(map-slot (if (symbolp class) (find-class class) class)))))
Source Context


exports: Optionally declare which exports are used. This enables tree-shaking when only few out of many exports are used.


I saw one of these at some point, but couldn’t find it when I needed it again. Pretty simple, the control has a property called selectedDate that returns a date object represented by the selected date and time. You can also feed it a Date and it will adjust to that. It is on a 12 hour clock. It dispatches a change event (Event.CHANGE) as a new date/time is selected.
There is an Inspectable property called minuteIncrement to adjust the increment on the minute stepper. I couldn’t figure out how to have double digits on the 0-9 minutes. If anybody knows how I might achieve that, please let me know.
Brennan charges $1,799 for his masterclass and it is worth every penny. If you are on the fence about the class, or would like to look at the "essence" of the class in 10 pages of lovingly illustrated sketchnotes, click below and they are yours for $9.99 suggested minimum price. It is a steal when you consider how these concepts can boost your revenues as a freelancer or consultant!
"Awesome! I love these." - Brennan Dunn
Get the DRM Free PDF Now!100% satisfaction gurantee. If you aren't happy with these notes, for any reason, just let me know and I will refund your money!
The Flex Date and Time (datetime) Picker Control by Joel Hooks, unless otherwise expressly stated, is licensed under a Creative Commons Attribution 3.0 United States License.
Pingback: Websites tagged "datetime" on Postsaver
Pingback: Composant Flex - Sélection de la Date et de l'Heure (DateTime) - Adobe Flex Tutorial - Tutoriaux Flex Builder, MXML, ActionScript, AS3


Bam
Boom
Explosion
Gasfire
Hitlines
Kaboom
Poison
Poof
Pow
Smoke
Smokepuffs
Stars
Tornado
Zap
Bluefire
Orangefire
Redfire
Lightning
Gasleak
Once
Continuous Loop
Loop and Pause


Path to the kieker jar used as javaagent
for the instrumentation, relative to the workspace
directory. Make sure this file exists at the time of this build step, i.e. by shipping it in your repository.
Note: Only aspectj variants are supported for now. Also make sure the version you're trying to
use is recent enough to have the kieker.monitoring.writer.filesystem.FileWriter
writer.
Leave empty to use the bundled Kieker 1.14-SNAPSHOT-aspectj
.


Mushika:
Uhh, Ma...(coughing)...Marquez sent you?
Um...um... (coughing)... Forgive me, I am so very weak... Please speak with my son Asamah...


Some types of lists
Un-ordered List
Bread
Milk
Ben and Jerries The Full Vermonty Ice-Cream (2ltrs)
Rice
Ordered lists
Learn HTML and CSS
Develop world-famous website
Sell website to Google
Buy private island and retire at 12


Tech By Choice was created as a safe space for protected groups. We welcome and encourage everyone, no matter how you identify or how others perceive you, to participate in our space.
We welcome people of any gender identity or expression, race, ethnicity, size, nationality, sexual orientation, ability level, neurotype, religion, elder status, family structure, culture, subculture, political opinion, identity, and self-identification. We welcome activists, artists, bloggers, crafters, dilettantes, musicians, photographers, readers, writers, ordinary people, extraordinary people, and everyone in between.
We welcome people who want to change the world, people who want to keep in touch with friends, people who want to find a community, people who want to build something great, and people who just need a break after work. We welcome fans, geeks, nerds, frontend devs, backend devs, and project managers. (We welcome Internet beginners who aren't sure what any of those terms refer to.) We welcome you no matter if the Internet was a household word by the time you started secondary school, or whether you were already retired by the time the World Wide Web was invented.
We welcome you. You may wear a baby sling, hijab, a kippah, leather, piercings, a pentacle, a political badge, a rainbow, a rosary, tattoos, or something we can only dream of. You may carry a guitar or knitting needles or a sketchbook. Conservative or liberal, libertarian or socialist — we believe it's possible for people of all viewpoints and persuasions to come together and learn from each other. We believe in the broad spectrum of individual and collective experience and in the inherent dignity of all people. We believe that amazing things come when people from different worlds and worldviews approach each other to create a conversation.
We think accessibility for people with disabilities is a priority, not an afterthought. We think neurodiversity is a feature, not a bug. We believe in being inclusive, welcoming, and supportive of anyone who comes to us with good faith and the desire to build a community.
We have enough experience to know that we won't get any of this perfect on the first try. But we have enough hope, energy, and idealism to want to learn things we don't know now. We may not be able to satisfy everyone, but we can certainly work to avoid offending anyone. And we promise that if we get it wrong, we'll listen carefully and respectfully to you when you point it out to us, and we'll do our best to make good on our promise and fix our mistakes. If you feel we have gotten anything wrong at any point, please feel free to contact us at<EMAIL_ADDRESS>org.
Our community experience is the most important thing to us. We know what goes wrong when organizations say one thing and do another, or when they refuse to say anything at all. We believe that keeping our operations transparent is just as important as keeping our servers stable.
Come as you are.
Adapted from Dreamwidth's Diversity Statement
Have any questions or looking for way to help support our mission? Feel free to contact us any time through any of our social media account below, or through email.
Hope to hear from you soon!


Registration form
Registration info
Address
Select State
State 1
State 2
State 3
Your Hobbies
Music
Cycling
Front End
Girls
How did you hear about us?
Select Please
Google
Friends
Newspapers
Register Profile


---
layout: post
title: High Noon - Thursday December 8, 2005
date: '2005-12-09T21:00:00.000-06:00'
author: Tom Ray
tags:
modified_time: '2005-12-05T00:49:18.780-06:00'
blogger_id: tag:blogger.com,1999:blog-11319466.post-113376531074634557
blogger_orig_url: http://www.lorenzosmusic.com/2005/12/high-noon-thursday-december-8-2005.html
---
Coreweekly & Madison.com presents
Awesome Car Funmaker
Lorenzo's Music
Cococoma
at the High Noon Saloon in Madison
9:00 pm / $no cover
Submit a photo of the band from the show. Send it to<EMAIL_ADDRESS>by email or your cell phone and it will be loaded into our gallery in under 24 hours.


Package Funds.Dialogs
Class EditTransactionDialog
- java.lang.Object
-
- javafx.scene.control.Dialog
-
- Funds.Dialogs.EditTransactionDialog
-
- All Implemented Interfaces:
javafx.event.EventTarget
,javafx.fxml.Initializable
public class EditTransactionDialog extends javafx.scene.control.Dialog implements javafx.fxml.Initializable
The software I used previously was too easy to edit transactions, so I added a step to prevent that happening on accident so often, have to right click and then confirm changes from a separate dialog
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
EditTransactionDialog.ComboBoxItem
list item for combo box so that category labels can be included
-
Constructor Summary
Constructors Constructor Description EditTransactionDialog(Book book, Account account, Transaction original)
The three-arg constructor needs all the information to edit details about a transaction:
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Transaction
edit()
A new Transaction object is created with the values input into the EditTransactionGUI.fxml form, and replaces an old transactionvoid
editTransfer(Account transfer, boolean notNormal, int ledgerID)
Edits details into the other account used to balance the books, if necessary deletes the old balance transfer and creates a new one (i.e.void
initialize(java.net.URL url, java.util.ResourceBundle rb)
I rarely use this, but required in interfacing requirementsvoid
setAccountChoices()
internal method to set up the options in the ComboBox on the GUI-
Methods inherited from class javafx.scene.control.Dialog
buildEventDispatchChain, close, contentTextProperty, dialogPaneProperty, getContentText, getDialogPane, getGraphic, getHeaderText, getHeight, getModality, getOnCloseRequest, getOnHidden, getOnHiding, getOnShowing, getOnShown, getOwner, getResult, getResultConverter, getTitle, getWidth, getX, getY, graphicProperty, headerTextProperty, heightProperty, hide, initModality, initOwner, initStyle, isResizable, isShowing, onCloseRequestProperty, onHiddenProperty, onHidingProperty, onShowingProperty, onShownProperty, resizableProperty, resultConverterProperty, resultProperty, setContentText, setDialogPane, setGraphic, setHeaderText, setHeight, setOnCloseRequest, setOnHidden, setOnHiding, setOnShowing, setOnShown, setResizable, setResult, setResultConverter, setTitle, setWidth, setX, setY, show, showAndWait, showingProperty, titleProperty, widthProperty, xProperty, yProperty
-
-
-
-
Constructor Detail
-
EditTransactionDialog
public EditTransactionDialog(Book book, Account account, Transaction original)
The three-arg constructor needs all the information to edit details about a transaction:- Parameters:
book
- what book it's recorded inaccount
- what account's ledger the edit was called fromoriginal
- what transaction is being edited
-
-
Method Detail
-
setAccountChoices
public void setAccountChoices()
internal method to set up the options in the ComboBox on the GUI
-
edit
public Transaction edit()
A new Transaction object is created with the values input into the EditTransactionGUI.fxml form, and replaces an old transaction- Returns:
- Transaction the updated (edited) transaction details
-
editTransfer
public void editTransfer(Account transfer, boolean notNormal, int ledgerID)
Edits details into the other account used to balance the books, if necessary deletes the old balance transfer and creates a new one (i.e. the transfer column was edited)- Parameters:
transfer
- The account used to balance the books with this transactionnotNormal
- Balance means the values are automatically the opposite of the original transaction's debit/credit statusledgerID
- The background ID the computer uses to track the transactions --different than the human readable transactionID that shows on the ledger
-
initialize
public void initialize(java.net.URL url, java.util.ResourceBundle rb)
I rarely use this, but required in interfacing requirements- Specified by:
initialize
in interfacejavafx.fxml.Initializable
- Parameters:
url
-rb
-
-
-


SMD (1206-8) 10k Ohm (x4) Resistor Array - RA1103
Summary
Name: SMD (1206-8) 10k Ohm (x4) Resistor Array
ID: RESA-1268-X-O103X4-01
Hex ID: RA1103
WebPage: https://github.com/oomlout/oomlout-OOMP/wiki/RESA-1268-X-O103X4-01
Short URL: http://oom.lt/RA1103
Revision History: https://github.com/oomlout/oomlout-OOMP/blob/master/parts/RESA-1268-X-O103X4-01/
| Type |
Size |
Color |
Description |
Index |
RESA Resistor Array |
1268 SMD (1206-8) |
X
|
O103X4 10k Ohm (x4) |
01
|
Images
About
This is a small (1206 size) component that houses 4 10k Ohm resistors. Great for saving space on a project.
Common Uses
This part is commonly used as:
*Used to hold a digital pin high. When you need more than one and would like to save space.
Specifications
| Info |
Value |
| Type |
Resistor Array |
| Size |
SMD (1206-8) |
| Description |
10k Ohm (x4) |
| Width |
1.6 mm |
| Length |
3.2 mm |
| Package Marking |
103 |
| Number of Pins |
8 |
| Tolerance |
5% |
| Power Rating |
62.5 mW |
Extra Details
Spotted a mistake, want to add more? Let us know<EMAIL_ADDRESS>All images and resources are licensed [CC BY-SA] unless otherwise stated (ie. the datasheets)


Second div. Second Div. Second div. Second Div.
Second div. Second Div. Second div. Second Div. Second div. Second Div. Second div. Second Div. Second div. Second Div. Second div. Second Div. Second div. Second Div.
Third div. Third Div. Third div. Third Div. Third div. Third Div. Third div. Third Div. Third div. Third Div. Third div. Third Div. Third div. Third Div. Third div. Third Div. Third div. Third Div. Third div. Third Div.


Welcome, are you an existing user or new user?
Existing User
New User
Login
Register
Oops, something didn't match up.
Oops, that username is taken.
Success, your username is now registered.


The Jini(TM) Event Mailbox Service
Specification
was augmented with additional classes and
interfaces that provide synchronous access to
events (see sections EM.5-EM.7). Mercury was also
updated to implement this new functionality.
The following work still needs to be done:
Implement the timeout functionality for
RemoteEventIterator.next
Make the batching implementation configurable. For example,
configuring the number of events that get returned to the
event mailbox client in a single call. Currently all the available
events are sent.


‘Mañanita’ review: A formidable effort
The film feels more like an audacious attempt to marry glaze and purpose, with the former winning out
by Oggs CruzSubscribe
Email Address
Newsletters
- Glenda Gloria's Take this Tuesday
- Huddle by Miriam Grace Go
- The Newsbreak Agenda by Chay Hofileña
- Sometimes, all you need is video by Lilibeth Frondoso
“Every bottle matters. Help us in collecting and recycling our plastic bottles so they do not end up as waste in our environment. Be part of our journey towards a World Without Waste.”


{% extends "layout.html" %} {% block body %}
{{name}} is a resource of variant level frequency data from cancer germline sequencing studies.
{{name}} Currently contains 1,006 Familial early onset CRC patients from the National Study of Colorectal Cancer Genetics (NSCCG).


A simple 3D AngularJS carousel directive in using 3D transformations based on the work done by https://github.com/desandro/3dtransforms. Meant to be lightweight and flexible for projects where WebGL is not needed. Just thought that the current 3D carousels were to rigid in the way they were built, this directive allows you to create the template you use within the carousel.
Git clone, download the project at https://github.com/FIlburtTurtle/Angular-Carousel3D, or bower install angular-carousel3d. Include angular-carousel3d.css and angular-carousel3d.js as shown below.
When instantiating your angular module include Carousel3D as a dependency to use the directive.
Include a carousel3d element in your project with some of the configuration options.
rotate(positions_to_rotate) :
Exposes the rotate function in the directive to the controller, it takes an integer that will rotate the carousel a number of panels. Eg. -1 will rotate back one and 20 will rotate 20 slides forward
rotateto(position_index) :
Exposes the rotateto function to the controller, takes an integer that rotates to the specified index in the panels array.
toggleAxis :
Exposes the function which rotates the carousel's axis
percentHeight :
determines the height of each individual slide, default if 80% of innerHeight
panels :
the array that you pass to the directive through scope, this panels array is watched by the directive and will change when the panels array changes in the controller
actOnAllPanels(key, value) :
Utility function to alter all of the objects in the panels array. It will set all objects with a key and a value.
Include a ng-template with an id of panel3d.html and it will be included at the template for the carousel.
Want to contribute to the project? Email me at<EMAIL_ADDRESS>with any questions, fork the repo, play around with it, write some tests, and submit a merge request! See the project here https://github.com/FIlburtTurtle/Angular-Carousel3D


Privacy Policy
Effective date: 1 October 2019
Summary
-
I will never share your data with anyone.
-
By using the Service, you agree to the collection and use of information in accordance with this policy.
-
If you have any questions, please email<EMAIL_ADDRESS>The service
Julie Smith ("me", "I") operates the Google Tasks Import ("GTI") and Google Tasks Backup ("GTB") websites at https://import-tasks.appspot.com and https://tasks-backup.appspot.com
-
GTI allows a user to import tasks from a correctly formatted user-uploaded file to the Google Tasks server.
- GTI suppports the GTB "Import/Export" GTBack and CSV file formats.
-
GTB allows a user to retrieve their tasks from the Google Tasks server, and view or export their tasks in a number of different formats.
-
The "Import/Export" GTBack and CSV formats are specifically designed to be used by GTI.
These services are provided free of charge, as they are running as free Google App Engine applications.
Google have generously extended the free quota for GTI and GTB, so that other people can use GTI and GTB.
This privacy policy covers GTI. The privacy policy for GTB is at https://tasks-backup.appspot.com/privacy
Collection and usage of data
In order to provide this service, the user is authenticated with Google, which provides GTI with the following;
- Temporary access to be able to add and delete tasks for the user
- This is required in order to be able to import tasks
- Access to a user's tasks automatically expires, as specified during the Google authentication process
- The user's name and email address
- This is the name and email address associated with the Google account that is used when the user authenticates with Google
- GTI uses the email address to send an email when the import process is complete
- The account name and email address is stored in logs, which may be used by the system administrator to investigate user-reported problems
To use GTI, the user uploads a file containing tasks to be imported into the user's Google Tasks.
-
The uploaded file is temporarily stored by GTI, and then data for each task is read from the uploaded file and a new task is then created for each row of task data.
-
When all tasks have been created, the temporary file is deleted.
Data security
GTI uses standard HTTPS for all communications between the browser and the GTI application.
Server logs
Google App Engine automatically logs information about each request to GTI. This information includes;
- Time of the request
- IP address
- User name
- Browser version
- Operating system
If task creation fails, the details of the task that failed may be stored in the server log, along with the user's email address, to enable debugging and application improvements.
Only system administrators have access to server logs. The user's task details and email address will not be shared with anyone.
Cookies
Cookies are used for two purposes in GTI;
- Google uses cookies to track your authorisation credentials between pages. This ensure that you (and only you) can access your Google account details.
- Google Analytics is used to track usage such as; number of unique visitors, location, browser type, operating system.
Location
Your data is stored and processed on Google servers, on the Google App Engine platform, and using Google APIs, and as such your data may be processed outside the country in which you reside, and may subject to different jurisdiction. Google's privacy policy is at
http://www.google.com/policies/privacy
Disclosure of data
I will only disclose your data if legally required.
Changes
Any changes to the privacy policy will be posted to this page. The effective date of this policy is shown at the top of this page.


{% for tag in tags %} * {{ tag | jsonify }}{% endfor %} === {% for item in site.lessons %} * {{ item.url }}{% endfor %}{%- endif %}
The BIOS2 Education Site contains resources related to our training modules. These resources are aimed primarily at Instructors and Fellows, but are freely available to the community. Each tile below links to education materials.
These resources can be updated by Fellows, Instructors and anyone interested! This will allow us to promote a current, well-maintained, and sustainable educational tool.
Learn more about how you can contribute.
Click individual tiles to learn more and use each resource.


{% extends "base.html" %} {% block title %}Page Not Found{% endblock %} {% block content %}
What you were looking for is just not there.
go somewhere nice


CodeGrabber
A simple way of embedding remote source files.

will be transformed into
Check the GitHub repository to learn ALL the options :)
Built by André König


2 #ifndef FEUP_AEDA_PROJECT_PERSON_EXCEPTIONS_H
3 #define FEUP_AEDA_PROJECT_PERSON_EXCEPTIONS_H
8 #include "model/person/worker/worker.h"
To be thrown when all workers have reached their maximum delivery capacity.
Definition: person_exception.h:60
AllWorkersAreBusy()
Create new AllWorkersAreBusy exception object.
Definition: person_exception.cpp:20
Class relative to the exception of an invalid credential.
Definition: person_exception.h:48
InvalidCredential()
Create new InvalidCredential exception object.
Definition: person_exception.cpp:16
Class relative to the exception of an invalid person position on some list.
Definition: person_exception.h:34
InvalidPersonPosition(unsigned long position, unsigned long size)
Creates a new InvalidPersonPosition exception object.
Definition: person_exception.cpp:12
Class relative to the exception of a nonexistent person.
Definition: person_exception.h:13
PersonDoesNotExist(const std::string &name, unsigned long taxID)
Creates a new PersonDoesNotExist exception object.
Definition: person_exception.cpp:4


public class ActionTagsUtilities
extends java.lang.Object
ActionTagsParser
| Constructor and Description |
|---|
ActionTagsUtilities() |
| Modifier and Type | Method and Description |
|---|---|
static java.lang.String |
getClassDefinitions()
Generate an ECMAScript script that defines the classes and functions referenced by the String returned from the
getScript method.
|
static java.lang.String |
getParseTree(RuleParse ruleParse)
A debug utility to determine the flattened parse tree of a RuleParse instance.
|
static java.lang.String |
getScript(RuleParse ruleParse)
Given a RuleParse, generate an executable ECMAScript script based upon the RuleTags in the RuleParse.
|
static boolean |
isDebugging()
Is debug turned on?
|
static void |
setDebugging(boolean newDebug)
Turn debugging on or off.
|
public static void setDebugging(boolean newDebug)
isDebugging()
public static boolean isDebugging()
setDebugging(boolean)
public static java.lang.String getClassDefinitions()
Note that this does not evaluate the script. It is up to the ActionTags parser to do that.
getScript(javax.speech.recognition.RuleParse)
public static java.lang.String getScript(RuleParse ruleParse)
Note that this does not evaluate the script. It is up to the action tags parser to do that.
ruleParse
- the RuleParse containing RuleTags with embedded ECMAScriptgetClassDefinitions()
public static java.lang.String getParseTree(RuleParse ruleParse)
ruleParse
- the RuleParse containing RuleTags with embedded ECMAScript


{% title=Household %} {# head= #} {# body=
In order to join a group, you must enter the email of a user in the group
Create a household group


Python $template_version reached the end of its life on $template_eol. It's about time to drop support for Python $template_version.
This site shows the top 360 most-downloaded packages on PyPI (source) showing which have dropped support for Python $template_version.
Packages that are backports (for example, enum34) or known to be deprecated are not included (for example, distribute). If your package is incorrectly listed, please create a ticket.
This is not an official website, just a nice visual way to measure progress. To see the authoritative guide on wheels and other aspects of python packaging, see the Python Packaging User Guide.
Remove the Trove classifier from setup.py.
'Programming Language :: Python :: $template_version'
Remove Python $template_version from your CI. For example Travis CI's .travis.yml:
python: - $template_version
And for example from Appveyor's appveyor.yml:
C:\Python${template_major}${template_minor} C:\Python${template_major}${template_minor}-x64
And tox.ini:
envlist=py${template_major}${template_minor}
Remove old Python $template_version-specific code and documentation. Common files to check:
Search your code for stuff like:
if sys.version_info < ($template_major, $template_next_minor): # Python $template_version stuff if platform.python_version == "$template_version": # Python $template_version stuff ver = platform.python_version_tuple() if float('{0}.{1}'.format(*ver[:2])) < $template_next_version: # Python $template_version stuff try: # Python $template_version import something except ImportError: # Python $template_next_version+ import something_else // In C code #if PY_VERSION_HEX < 0x0${template_major}0${template_next_minor}0000 -#endif
Also search for $template_version
and ${template_major}${template_minor}
.
If you test with coverage, look for code which was tested before removing $template_version from your CI.
Finally, consider dropping support for Python 2.6 and 3.3, which reached EOL on 2013-10-29 and 2017-09-29 respectively. $template_new_features
Fantastic, a problem found is a problem fixed. Please create a ticket!
You can also submit a pull request.
Thanks to Python Wheels and Python 3 Wall of Superpowers for the concept and making their code open source.


The criteria would include:
We need to know what would happen in practice, not just what it says in the worker's contract.


Before Change
new = dok_matrix(self.shape, dtype=res_dtype)
new.update(self)
with np.errstate(over="ignore"):
for key in other.keys():
new[key] += other[key]
elif isspmatrix(other):
csc = self.tocsc()
new = csc + other
elif isdense(other):
After Change
new = dok_matrix(self.shape, dtype=res_dtype)
dict.update(new, self)
with np.errstate(over="ignore"):
dict.update(new,
((k, new[k] + other[k]) for k in iterkeys(other)))
elif isspmatrix(other):
csc = self.tocsc()
new = csc + other
elif isdense(other):


Internationalization - i18n
tap-i18n - i18n for Meteor
- Readable Syntax
- Advanced i18n
- All Encompassing
- Transparent Namespacing
- Ready to Scale
Readable Syntax
page.html
{{_ "click"}}
en.i18n.json
{
"click": "Click Here"
}
Result
Click Here
Advanced i18n - sprintf
page.html
{{_ "hello" "Daniel" "2014-05-22"}}
en.i18n.json
{
"hello": "Hello %s, your last visit was on: %s"
}
Result
Hello Daniel, your last visit was on: 2014-05-22
Advanced i18n - Named Variables
page.html
{{_ "hello" "2014-05-22" user_name="Daniel"}}
en.i18n.json
{
"hello": "Hello __user_name__, your last visit was on: %s"
}
Result
Hello Daniel, your last visit was on: 2014-05-22
Advanced i18n - Singular/Plural + Count
page.html
{{_ "inbox_status" "2014-05-22" username="Daniel" count=1}}
{{_ "inbox_status" "2014-05-22" username="Chris" count=4}}
en.i18n.json
{
"inbox_status": "__username__, You have a new message (inbox last checked %s)",
"inbox_status_plural": "__username__, You have __count__ new messages (last checked %s)"
}
Result
Daniel, You have a new message (inbox last checked 2014-05-22)
Chris, You have 4 new messages (last checked 2014-05-22)
Advanced i18n - Context
page.html
{{_ "actors_count" count=1 context="male" }}
{{_ "actors_count" count=2 context="female" }}
en.i18n.json
{
"actors_count": "There is one actor in the movie",
"actors_count_male": "There is one actor in the movie",
"actors_count_female": "There is one actress in the movie",
"actors_count_plural": "There are __count__ actors in the movie",
"actors_count_male_plural": "There are __count__ actors in the movie",
"actors_count_female_plural": "There are __count__ actresses in the movie",
}
Result
There is one actor in the movie
There are 2 actresses in the movie
Advanced i18n - Dialects Support
Auto fallback:
- Language dialect, if specified ("pt-BR")
- Base language ("pt")
- Base English ("en")
All Encompassing
- Projects developers' needs are not the same as package developers'.
- Tap-i18n provides specific tools for project and package developers.
- Total coverage and seamless integration into the Meteor package ecosystem.
Transparent Namespacing
You don't need to worry about domain prefixing or package conflicts when you translate your project or package. Behind the scenes we automatically generate scoped namesapace for you.
Ready to Scale
- Translations are unified into a single JSON file per language that includes both package and project-level translations
- On-demand: translations are loaded only when they are needed
- 3rd Party CDN Support
Meteor Packages
- Meteor's units of reusability
- Simply a directory with a package.js file in it
- Explicitly list all of their source files and load order
- Have their own package namespace: variables used without var available on all the package's files
deps - package.js
Package.on_use(function (api) {
api.export('Deps');
api.add_files('deps.js');
api.add_files('deprecated.js');
});
tap-i18n - package.js
Package.on_use(function (api) {
api.use(["coffeescript", "underscore", "meteor"], ['server', 'client']);
api.use(["http-methods"], 'server');
api.use(["deps", "session", "jquery", "templating"], 'client');
// load and init TAPi18next
api.add_files('lib/tap_i18next/tap_i18next-1.7.3.js', 'client');
api.export("TAPi18next");
api.add_files('lib/tap_i18next/tap_i18next_init.js', 'client');
// load TAPi18n
api.add_files('lib/globals.js', ['client', 'server']);
api.add_files('lib/tap_i18n/tap_i18n-common.coffee', 'server');
// We use the bare option since we need TAPi18n in the package level
// and coffee adds vars to all (so without bare all vars are in the
// file level)
api.add_files('lib/tap_i18n/tap_i18n-common.coffee', 'client',
{bare: true});
api.add_files('lib/tap_i18n/tap_i18n-server.coffee', 'server');
api.add_files('lib/tap_i18n/tap_i18n-client.coffee', 'client',
{bare: true});
api.export("TAPi18n");
});
Meteor Build Plugins
- Allow us to perform special procedures for specific file types
- Allow us to generate js and css that will be part of the project build
Defined in package.js, but they are actually:
- Fully-fledged Meteor programs in their own right
- Have their own namespace, package dependencies, source files and npm requirements
Less Build Plugin
package.js
Package._transitional_registerBuildPlugin({
name: "compileLess",
use: [],
sources: [
'plugin/compile-less.js'
],
npmDependencies: {"less": "1.6.1"}
});
Less Build Plugin
plugin/compile-less.js
Plugin.registerSourceHandler("less", function (compileStep) {
//
// compilation code
//
compileStep.addStylesheet({
path: compileStep.inputPath + ".css",
data: css,
sourceMap: sourceMap
});
});;
// Register import.less files with the dependency watcher, without actually
// processing them. There is a similar rule in the stylus package.
Plugin.registerSourceHandler("import.less", function () {
// Do nothing
});
// Backward compatibility with Meteor 0.7
Plugin.registerSourceHandler("lessimport", function () {});
tap-i18n Build Plugin
package.js
// Register our build plugin
Package._transitional_registerBuildPlugin({
name: "compileI18n",
use: ["coffeescript", "meteor", "simple-schema", "check", "templating"],
sources: [
'lib/globals.js',
'lib/plugin/wrench.js',
'lib/plugin/language_names.js',
'lib/plugin/compile-i18n.coffee'
]
});
tap-i18n Handlers Registration
Plugin.registerSourceHandler "i18n", (compileStep) ->
...
Plugin.registerSourceHandler "package-tap.i18n", (compileStep) ->
...
Plugin.registerSourceHandler "project-tap.i18n", (compileStep) ->
...
Plugin.registerSourceHandler "i18n.json", (compileStep) ->
...
tap-i18n the Build Process
The Template Namespace Challenge
- All the templates in a meteor project are added to the same Template object
- Templates in the Template object don't indicate which package indroduced them
- How do you tell which package a template belongs to?
The Template Namespace Challenge
Package.on_use(function (api) {
api.use(["tap-i18n"], ["client", "server"]);
// You must load your package's package-tap.i18n before you load any
// template
api.add_files("package-tap.i18n", ["client", "server"]);
// Templates loads (if any)
// You must load the languages files after you load your templates -
// otherwise the templates won't have the i18n capabilities (unless
// you'll register them with tap-i18n yourself, see below).
api.add_files([
"i18n/en.i18n.json",
"i18n/fr.i18n.json",
"i18n/pt.i18n.json",
"i18n/pt-br.i18n.json"
], ["client"]);
});
Build Plugins Pitfalls
- If you want to register a plugin for the xxx.a.b extension, you must first register a plugin for xxx.b
- Build plugins must be synchronous
- Clients refresh only if the build content changed
Testing Build Plugins with Configurable Build Options - Live Overview
Fork me on GitHub!
TAPevents/tap-i18n
The development of tap-i18n supported by TAPevents.com
Daniel Chcouri / theosp.github.io


Installing 0.4
-
jamie f
Hello, sorry if this is a silly question but I can't install 0.4 as it always says the previous version is in use, even after I've quit it. How do I get round this or quit properly?
-
Greg Hurrell
You might have a copy of the synergyd daemon running the background. Have a look in the Activity Monitor (in Applications/Utilities/) if there is any process running with "synergy" in the name.  Got it, thanks! I think I'm running the latest build now, tho when I 'Check for Updates' it still says there is a newer version. Does it only check for stable releases or will the Beta count as an upgrade?
-
Greg Hurrell
I think the current behaviour is to advise of new versions whenever the numeric part of the version number changes; ie. 0.4, 0.5 etc. Merely going from 0.4b1 to 0.4b2, for example, wouldn't result in a notification. I'm not entirely sure of this though as I don't have the code in front of me right now.
The latest version is currently 0.5.1b.
Reply
This topic is now closed.


|
|
Bakers Dozen Donuts regular donuts: chocolate frosted, vanilla frosted, boston cream,
jelly filled, cream filled, glazed, chocolate glazed, marble twist, sugar raised, plain donut,
plain cruller, honey wheat, jelly puff, cream puff, coffee roll.

Top sellers:
Pistachio Pinwheels
Boston Cream delights
Chocolate confetti
Marshmallow Mayhems
French twists
Bulls Horns
|