Migrating from from wiringpi to pigpio. This increases the sample rate by a factor of 3 and will allow creation of a board that can monitor over 30 breakers with a single raspberry pi.

This is based on pi4j 2.0 which is in a beta status.  I have fixed a few bugs in a local version of pi4j 2.0 to get it to work but I haven't submitted those changes to pi4j yet.

This change requires a migration to Java 11 and will *NOT* be backwards compatible.  Upgrading to this hub software will require that java 11 and pigpio be installed on the hub.  This can be done from an ssh session with the following commands:

apt-get update
apt-get install openjdk-11-jre-headless
apt-get install pigpio

Alternatively, you can download a new sd image, reflash your sd card, and re-adopt your hub.
This commit is contained in:
Mark Milligan
2022-04-29 14:59:56 -05:00
parent 079206fcd7
commit c8319d6369
50 changed files with 637 additions and 412 deletions

View File

@@ -1,21 +1,21 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lanternsoftware.zwave</groupId>
<artifactId>lantern-datamodel-zwave</artifactId>
<packaging>jar</packaging>
<version>1.0.0</version>
<name>lantern-datamodel-zwave</name>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<parent>
<groupId>com.lanternsoftware.zwave</groupId>
<artifactId>zwave</artifactId>
<version>1.0.0</version>
</parent>
<dependencies>
<dependency>
<groupId>com.lanternsoftware.util</groupId>
<artifactId>lantern-util-dao</artifactId>
<version>1.0.0</version>
<version>${util.version}</version>
</dependency>
</dependencies>
<build>
@@ -41,8 +41,8 @@
<optimize>true</optimize>
<showDeprecation>true</showDeprecation>
<encoding>UTF-8</encoding>
<source>1.8</source>
<target>1.8</target>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>

View File

@@ -1,22 +1,22 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lanternsoftware.thermometer</groupId>
<artifactId>lantern-service-thermometer</artifactId>
<packaging>war</packaging>
<version>1.0.0</version>
<name>lantern-service-thermometer</name>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<parent>
<groupId>com.lanternsoftware.zwave</groupId>
<artifactId>zwave</artifactId>
<version>1.0.0</version>
</parent>
<dependencies>
<dependency>
<groupId>com.lanternsoftware.util</groupId>
<artifactId>lantern-util-servlet</artifactId>
<version>1.0.0</version>
<version>${util.version}</version>
</dependency>
<dependency>
<groupId>javax</groupId>
@@ -69,8 +69,8 @@
<optimize>true</optimize>
<showDeprecation>true</showDeprecation>
<encoding>UTF-8</encoding>
<source>1.8</source>
<target>1.8</target>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>

View File

@@ -1,27 +1,27 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lanternsoftware.zwave</groupId>
<artifactId>lantern-service-zwave</artifactId>
<packaging>war</packaging>
<version>1.0.0</version>
<name>lantern-service-zwave</name>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<parent>
<groupId>com.lanternsoftware.zwave</groupId>
<artifactId>zwave</artifactId>
<version>1.0.0</version>
</parent>
<dependencies>
<dependency>
<groupId>com.lanternsoftware.zwave</groupId>
<artifactId>lantern-datamodel-zwave</artifactId>
<version>1.0.0</version>
<version>${zw.version}</version>
</dependency>
<dependency>
<groupId>com.lanternsoftware.currentmonitor</groupId>
<artifactId>lantern-datamodel-currentmonitor</artifactId>
<version>1.0.0</version>
<version>${cm.version}</version>
</dependency>
<dependency>
<groupId>com.pi4j</groupId>
@@ -31,22 +31,22 @@
<dependency>
<groupId>com.lanternsoftware.zwave</groupId>
<artifactId>lantern-zwave</artifactId>
<version>1.0.0</version>
<version>${zw.version}</version>
</dependency>
<dependency>
<groupId>com.lanternsoftware.rules</groupId>
<artifactId>lantern-datamodel-rules</artifactId>
<version>1.0.0</version>
<version>${rules.version}</version>
</dependency>
<dependency>
<groupId>com.lanternsoftware.util</groupId>
<artifactId>lantern-util-dao-mongo</artifactId>
<version>1.0.0</version>
<version>${util.version}</version>
</dependency>
<dependency>
<groupId>com.lanternsoftware.util</groupId>
<artifactId>lantern-util-http</artifactId>
<version>1.0.0</version>
<version>${util.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
@@ -83,8 +83,8 @@
<optimize>true</optimize>
<showDeprecation>true</showDeprecation>
<encoding>UTF-8</encoding>
<source>1.8</source>
<target>1.8</target>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>

View File

@@ -1,21 +1,21 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lanternsoftware.zwave</groupId>
<artifactId>lantern-uirt</artifactId>
<packaging>jar</packaging>
<version>1.0.0</version>
<name>lantern-uirt</name>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<parent>
<groupId>com.lanternsoftware.zwave</groupId>
<artifactId>zwave</artifactId>
<version>1.0.0</version>
</parent>
<dependencies>
<dependency>
<groupId>com.lanternsoftware.util</groupId>
<artifactId>lantern-util-dao</artifactId>
<version>1.0.0</version>
<version>${util.version}</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
@@ -46,8 +46,8 @@
<optimize>true</optimize>
<showDeprecation>true</showDeprecation>
<encoding>UTF-8</encoding>
<source>1.8</source>
<target>1.8</target>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>

View File

@@ -1,15 +1,15 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lanternsoftware.zwave</groupId>
<artifactId>lantern-zwave</artifactId>
<packaging>jar</packaging>
<version>1.0.0</version>
<name>lantern-zwave</name>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<parent>
<groupId>com.lanternsoftware.zwave</groupId>
<artifactId>zwave</artifactId>
<version>1.0.0</version>
</parent>
<dependencies>
<dependency>
@@ -31,7 +31,7 @@
<dependency>
<groupId>com.lanternsoftware.util</groupId>
<artifactId>lantern-util-dao</artifactId>
<version>1.0.0</version>
<version>${util.version}</version>
</dependency>
</dependencies>
<build>
@@ -57,8 +57,8 @@
<optimize>true</optimize>
<showDeprecation>true</showDeprecation>
<encoding>UTF-8</encoding>
<source>1.8</source>
<target>1.8</target>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>

View File

@@ -19,7 +19,7 @@ public abstract class MessageEngine {
for (Message m : ServiceLoader.load(Message.class)) {
messages.put(m.getKey(), m);
}
for (IMessageSubscriber s : ServiceLoader.load(IMessageSubscriber.class)) {
for (IMessageSubscriber<?> s : ServiceLoader.load(IMessageSubscriber.class)) {
subscribe(s);
}
}
@@ -50,7 +50,7 @@ public abstract class MessageEngine {
return null;
}
try {
Message ret = message.getClass().newInstance();
Message ret = message.getClass().getDeclaredConstructor().newInstance();
ret.fromPayload(_data);
return ret;
} catch (Exception _e) {

View File

@@ -2,14 +2,15 @@
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<groupId>com.lanternsoftware.zwave</groupId>
<artifactId>zwave-reactor</artifactId>
<name>zwave-reactor</name>
<artifactId>zwave</artifactId>
<name>zwave</name>
<version>1.0.0</version>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<parent>
<groupId>com.lanternsoftware</groupId>
<artifactId>LanternPowerMonitor</artifactId>
<version>1.0.0</version>
</parent>
<modules>
<module>lantern-datamodel-zwave</module>