Comments (1)
What I'm doing:
#include <WiFiUdp.h>
...
IPAddress mcast(239,255,215,74);
WiFiUDP logger;
void setup() [
...
logger.beginMulticast(WiFi.localIP(), mcast, 55114);
}
void sendlog(const char *logmessage) {
logger.beginPacketMulticast(mcast, 55114, WiFi.localIP());
logger.printf("* %s", logmessage);
logger.endPacket();
}
The generated multicast packets can be monitored with
#!/usr/bin/python
# Multicast client
# Adapted from: http://chaos.weblogs.us/archives/164
import socket
ANY = "0.0.0.0"
MCAST_ADDR = "239.255.215.74"
MCAST_PORT = 55114
# Create a UDP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
# Allow multiple sockets to use the same PORT number
sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
# Bind to the port that we know will receive multicast data
sock.bind((ANY,MCAST_PORT))
# Tell the kernel that we want to add ourselves to a multicast group
# The address for the multicast group is the third param
status = sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, socket.inet_aton(MCAST_ADDR) + socket.inet_aton(ANY))
# setblocking(0) is equiv to settimeout(0.0) which means we poll the socket.
# But this will raise an error if recv() or send() can't immediately find or send data.
sock.setblocking(1)
while 1:
try:
data, addr = sock.recvfrom(1024)
except socket.error as e:
pass
else:
print "From: ", addr
print "Data: ", data
Note that this address and port are used by the domotic protocol I'm developing so I can use a single monitor both for protocol messages and logging (the "* " guarantees that log messages cannot be interpreted by protocol decoder).
from hlw8012.
Related Issues (20)
- CSE7759 HOT 1
- Random readings when no load\relay off HOT 10
- Add CSE7759 and CSE7766 HOT 2
- HLW8012 CP1 frequency capping HOT 2
- Connect to non PWM pin
- Multiple HLW8012 HOT 2
- Zero Readings HOT 4
- Voltage and current power formula HOT 2
- Sonoff POW v2 HOT 1
- Some readings contain only 0 values (sonoff POW v2)
- Energy Measurement using BL0937 HOT 1
- Multipliers for Gosund SP1? HOT 9
- HLW8012 board calibration HOT 2
- Multiple instances of HLW8012 class with interrupts? HOT 1
- NO LOAD READINGS ARE FUNNY HOT 3
- Will the interrupts example work on Sonoff POW R2?
- Wrong value for VOLTAGE_RESISTOR_UPSTREAM in examples? HOT 1
- Nothing happens after uploading the code for sonoff pow
- Zero values when using this library for ESP32 HOT 1
- current == active power ? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hlw8012.