Tesla Wall Connector API
IntelliJ add untrusted certificate
Step 1:
Run the standard keytool to import the certificate to JVM
keytool -import -alias
When prompted Enter keystore password:, enter “changeit”
When prompted Trust this certificate? [no]:, enter “yes”
Step 2:
Start IntelliJ
On IntelliJ op goto Setting -> Tools -> Server Certificates
On the box Accepted certificates click the plus icon (+)
Search the certificate filename and click Apply and OK
Install Jenkins native on Raspberry Pi
# Basic installation of Jenkins latest LTS version
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian/jenkins.io-2023.key
echo “deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]” https://pkg.jenkins.io/debian binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update
sudo apt-get install fontconfig openjdk-17-jre
sudo apt-get install jenkins
Now the Jenkins UI is available on port 8080
Answer some extra installation questions and wait for the installation to complete.
# Enable Maven in Jenkins
Goto Jenkins UI
Go to “Manage Jenkins” -> “Plugins” -> “Install Plugins” -> Select “Maven integration plugin”
Go to “Manage Jenkins” -> “Tool” -> “Maven installations”
Press “Add Maven”
Select “Install automatically”
Select “Version”
Press “Save”
# Create Project (Public GitHub REPO)
Goto Jenkins UI
Select “New Item”
Enter Project Name
Select “Maven Project”
Press “Ok”
Select “Source Code Management”
Select “GIT”
Enter by Repository URL the GIT URL
Press “Save”
Press “Build”
Now project will be build and all unit tests are automatic run.
# Create Project (Private GitHub REPO)
Goto GitHub UI
Select “Setting” -> “Developer Settings”
Select “Personal access token” -> “Tokens (classic)”
Press “Generate new Token (Classic)”
Enter Name
Select “No expiration”
Select “all scopes”
Press “Generate Token”
Copy token key to clipboard
Goto Jenkins UI
Select “New Item”
Enter Project Name
Select “Maven Project”
Press “Ok”
Select “Source Code Management”
Select “GIT”
Enter by Repository URL the GIT URL
Select “Credentials” -> “Add” -> “Jenkins”
Select “Username with password”
Enter “Username” -> Its your Github username
Enter “Password” -> Copy token key from clipboard
Select “Threat username as secret”
Press “Save”
Press “Build”
Now project will be build and all unit tests are automatic run.
PlaatDomotica 2.1.0
PlaatSoft has released a new version of PlaatDomotica.
Version 2.1.0 (20-10-2024)
- Optimized backend REST endpoints
- Optimized backend data model
- Added user create date property
- Added daily postgres database dump
- Added liquibase
- Fix graph timestamp sorting
More information click here
PlaatDomotica 2.0.0
PlaatSoft has released a new version of PlaatDomotica.
Version 2.0.0 (13-10-2024)
- Major rewrite – Split frontend and backend logic
- Added table paginating logic
- Switch from H2 to Postgres database
- Upgrade Java to 17
- Upgrade Spring Core to 3.3.4
- Upgrade Spring Thymeleaf WebUI to 3.3.4
- Upgrade Spring Security to 1.3.2
- Upgrade Tomcat to 10.1.30
- Upgrade JSON library to 20240303
- Added Lombok 1.18.34
More information click here
RDF vs Property GRAPH (NoSQL) database
RDF Graph example (Query language: SPARQL)
As a framework for representing the Web, Resource Description Framework (RDF) captures structure using a triple, the basic unit in RDF. A triple is a statement with three elements: two nodes connected by an edge (also known as a relationship). Each triple is identified by a Uniform Resource Identifier (URI) as subject-predicate-object:
– The subject is a resource (node) in the graph;
– The predicate represents an edge (relationship)
– The object is another node or a literal value.
More information:
https://rdf4j.org/documentation/tutorials/getting-started/
Property Graph example (Query Language: Cypher)
Information is organized as nodes, relationships, and properties in a property graph. Nodes are tagged with one or more labels, identifying their role in the network. Nodes can also store any number of properties as key-value pairs. Relationships provide directed, named connections between two nodes. Relationships always have a direction, a type, a start node, and an end node, and they can have properties, just like nodes. Although relationships are always directed, they can be navigated efficiently in either direction.
What is the difference between SPARQL and Cypher Query Language?
– SPARQL is the query language for accessing data in the Resource description Framework (RDF) GRAPH database.
– Cypher is the corresponding language for the data represented in property GRAPH database
More information:
https://neo4j.com/blog/rdf-vs-property-graphs-knowledge-graphs/
Cypher queries examples
INSERT
CREATE (diana:Person {name: “Diana”})
CREATE (melissa:Person {name: “Melissa”, twitter: “@melissa”})
CREATE (xyz:Company {name: “XYZ”})
CREATE (diana)-[:WORKS_FOR]->(xyz)
CREATE (diana)-[:IS_FRIENDS_WITH]->(melissa)
UPDATE
MATCH (p:Person {name: ‘Diana’}) SET p.birthdate = date(‘1980-01-01’)
MATCH (:Person {name: ‘Diana’})-[rel:WORKS_FOR]-(:Company {name: ‘XYZ’}) SET rel.startYear = date({year: 2018})
DELETE
MATCH (j:Person {name: ‘Diana’})-[r:IS_FRIENDS_WITH]->(m:Person{name: ‘Melissa’}) DELETE j,r,m
SELECT
MATCH (p:Product) RETURN p.productName, p.unitPrice ORDER BY p.unitPrice DESC LIMIT 10;
SPARQL examples
INSERT
PREFIX plaat: <http://www.plaatsoft.nl/>
INSERT DATA {
<http://leerling/1> plaat:firstName “Kees”.
<http://leerling/2> plaat:firstName “Jan”.
<http://leerling/3> plaat:firstName “Piet”.
<http://leerling/4> plaat:firstName “Klaas”.
<http://school/1> plaat:name “Bospark”.
<http://school/1> plaat:level “LTS”.
<http://school/1> plaat:city “Alphen aan den Rijn”.
<http://school/2> plaat:name “Lammerschans”.
<http://school/2> plaat:level “MTS”.
<http://school/2> plaat:city “Leiden”.
<http://school/3> plaat:name “Hogeschool van Utrecht”.
<http://school/3> plaat:level “HTS”.
<http://school/3> plaat:city “Utrecht”.
<http://leerling/1> plaat:school <http://school/1>.
<http://leerling/1> plaat:school <http://school/2>.
<http://leerling/1> plaat:school <http://school/3>.
<http://leerling/2> plaat:school <http://school/1>.
<http://leerling/3> plaat:school <http://school/2>.
}
QUERY
# Show all leerlingen of school1
PREFIX plaat: <http://www.plaatsoft.nl/>
SELECT ?x ?firstName
WHERE
{
?x plaat:firstName ?firstName.
?x plaat:school <http://school/1>
}
DELETE
PREFIX plaat: <http://www.plaatsoft.nl/>
DELETE { ?x plaat:firstName ‘Kees’ }
WHERE { ?x plaat:firstName ‘Kees’ }
UPDATE (SPARQL use delete / insert pattern)
PREFIX plaat: <http://www.plaatsoft.nl/>
DELETE { ?x plaat:firstName ‘Kees’ }
INSERT { ?x plaat:firstName ‘William’ }
WHERE { ?x plaat:firstName ‘Kees’ }
Activate GIT SSH key access
Generate ssh key
ssh-keygen -t ed25519 -C “blabla@gmail.com”
Fetch public key content
notepad C:\Users\blabla\.ssh\id_ed25519.pub
Go https://github.com/settings/keys
Press “add public SSH key”
Fill form + public key content
Go to eclipse
Select menu Windows -> Preferences -> General -> Network Connections -> SSH2
Add here your secure key.
The GIT communication is now based on SSH instead op HTTPS.
Install OpenJDK 17 on Raspberry PI
Use below command to install OpenJDK 17 on a Raspberry Pi
sudo apt-get install openjdk-17-jdk
java -version
openjdk version “17.0.11” 2024-04-16
OpenJDK Runtime Environment (build 17.0.11+9-Debian-1deb11u1)
OpenJDK 64-Bit Server VM (build 17.0.11+9-Debian-1deb11u1, mixed mode, sharing)
BassieMusic Android App 2.10
PlaatSoft has released a new version of the BassieMusic Android App in the Google Play Store.
The following changes were made:
– Fix permission issue on Android 13 or higher
– Bump target Android version to Android 14
Click here to download the latest version.
Webserver upgrade
Today i have migrated most of my websites to new hardware:
– Raspberry Pi 4B (2GB) / 32GB SDCard.
I have also upgrade the following software:
– Operating System to Debian Bookworm (kernel 6.1.0-rpi7-rpi-v8)
– WordPress to v6.4.2
– php to v8.2.7
If you detect any problem, please let me known!
Raspberry Pi Bookworm set static ip address
sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager
nmcli -p connection show
sudo nmcli con mod ‘Wired connection 1’ ipv4.addresses 192.168.2.109/24 ipv4.method manual
sudo nmcli con mod ‘Wired connection 1’ ipv4.gateway 192.168.2.254
sudo reboot
PlaatDomitica 1.4.0
PlaatSoft has released a new version of PlaatDomotica.
Version 1.4.0 (04-11-2023)
- Upgrade Spring Core to 2.7.17
- Upgrade JSON library to 20230227
- Upgrade Tomcat to 9.0.82
More information click here
Nice docker containers
ActiveMQ artemis v2.31.0
Docker container name: apache/activemq-artemis
Name: Artemis
CONSOLE Port 8161
OPENWIRE Port 61616
———–
Postgres 16
Docker container name: postgis/postgis
Name: Postgres
Database Port: 5432
Variable 1: POSTGRES_PASSWORD=admin
Variable 2: POSTGRES_HOST_AUTH_METHOD=trust
Access docker console and enter “psql -U postgres -W” to access the commandline of postgres
BassieMusic Android App 2.9
PlaatSoft has released a new version of the BassieMusic Android App in the Google Play Store.
The following changes were made:
– Bump target Android version to Android 13
Click here to download the latest version.
KerkInGouda Android app v1.4.0
PlaatSoft has released a new version of the KerkinGouda Android App in the Google Play Store.
The following change was made:
– Bump target Android version to latest
– Add missing .gitignore file
– Remove unused res/xml files
– Remove unnecessary ConstraintLayout dependency
Click here to download the latest version.
PlaatDomotica 1.3.0
PlaatSoft has released a new version of PlaatDomotica.
Version 1.3.0 (10-04-2023)
– Upgrade Spring Core to 2.7.10
– Upgrade Hibernate to 5.6.15
– Upgrade Embedded Tomcat App. Server to 9.0.73
– Added energy summary table
– Added automatic data sync with PlaatEnergy
– Added gas month page + drill in feature
– Added electricity month page + drill in feature
– Added solar month page + drill in feature
– Move home reports to Report page
More information click here
PlaatDomotica 1.2.0
PlaatSoft has released a new version of PlaatDomotica.
Version 1.2.0 (11-02-2023)
– Second maintenance release
– Added hover button effect
– Disable text select with mouse
– Fix login button not responding issue
– Application activated on third location 🙂
– Reduce log events to file log
More information click here
PlaatDomotica 1.1.0
PlaatSoft has released a new version of PlaatDomotica.
Version 1.1.0 (27-01-2023)
– First maintenance release
– Added custom login page
– Added background image
– Improve performance of energy and gas page
– Improve motion page (now resolution is seconds)
– Improve new version detection
– Improve solar page when there is no data
– Added bplaat native android look feature
More information click here
PlaatDomotica 1.0.0
PlaatSoft has released a new version of PlaatDomotica.
Version 1.0.0 (21-01-2023)
– First version for mass market
– Now all buttons have an icon
– Improve chart navigation + chart subtitle
– Added air quality sensor + air quality page
– Added bplaat styling changes
– Improve database cleanup job
– Added actor overview page
– Added sensor overview page
– Improve data model
More information click here
PlaatDomotica v0.9.0
PlaatSoft has released a new version of PlaatDomotica.
Version 0.9.0 (13-01-2023)
– Added cloud density page
– Alarm trigger event sent now email
– Alarm trigger event is now logged
– Bulb on/off event is now logged
– Resync event is now logged
– Login event is now logged
– Added alarm rule page
– Added alarm event page
– Added alarm bulb page
– Improve data model
More information click here
PlaatDomotica v0.8.0
PlaatSoft has released a new version of PlaatDomotica.
Version 0.8.0 (08-01-2023)
– Added toolkit popups to explain in app features
– Added resync feature with Hue base station configuration
– Added automation page
– Refactor java source code for better maintenance
– Improve solar page (performance)
– Improve gas page (performance)
– Improve electricity page (performance)
– Improve utility report
– Added energySensor
– Improve data model
More information click here
PlaatDomotica v0.7.0
PlaatSoft has released a new version of PlaatDomotica.
Version 0.7.0 (05-01-2023)
– Fix some security issues (URL fishing)
– Improve error page
– Reduce code duplication in html pages
– Added (override) properties file
– Improve page titles
– Home buttons are now visible depending on active sensors
– Added version sensor (Check for new version)
– Added current temperature report
– Added current solar report
– Improve error handling of sensors
More information click here