sapienzaapps / seismocloud-sensor-nodemcu

Source code for NodeMCU seismometers for SeismoCloud project
https://www.seismocloud.com
GNU General Public License v3.0
15 stars 4 forks source link

esphome homeassistant seismocloud mqtt broker #3

Closed riddik14 closed 3 years ago

riddik14 commented 3 years ago

bello il firmware. volevo implementare un sensore sismografo nella mia domotica esp8266+ MPU6050 tramite api di home assistant (esphome firmware) e potrei inviare in contemporanea su server mqtt esterno (il vostro) i dati. che formato vi dovrei inviare i dati? json? topic mqtt?

https://esphome.io/components/sensor/mpu6050.html

grazie

riddik14 commented 3 years ago

esphome:
  name: sismografo
  platform: ESP8266
  board: esp01_1m

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
ota:

wifi:
  networks:
  - ssid: "wlan2"
    password: ""
  - ssid: "D0m0t1c4"
    password: ""
  ap:
    ssid: "sismografo"
    password: ""
#  manual_ip:
#    static_ip: 192.168.2.106
#    gateway: 192.168.2.1
#    subnet: 255.255.255.0

i2c:
  sda: GPIO4
  scl: GPIO5
ota:
switch:
  - platform: restart
    name: "riavvia sismografo"
binary_sensor:
  - platform: status
    name: "stato sismografo"

sensor:
  - platform: uptime
    id: uptime_seconds
  - platform: mpu6050
    address: 0x68
    accel_x:
      name: "MPU6050 Accel X"
    accel_y:
      name: "MPU6050 Accel Y"
    accel_z:
      name: "MPU6050 Accel z"
    gyro_x:
      name: "MPU6050 Gyro X"
    gyro_y:
      name: "MPU6050 Gyro Y"
    gyro_z:
      name: "MPU6050 Gyro z"
    temperature:
      name: "MPU6050 Temperature"
web_server:
  port: 80
text_sensor:
  - platform: template
    name: Uptime
    update_interval: 42s
    icon: mdi:clock-start
    lambda: |-
      int seconds = (id(uptime_seconds).state);
      int days = seconds / (24 * 3600);
      seconds = seconds % (24 * 3600);
      int hours = seconds / 3600;
      seconds = seconds % 3600;
      int minutes = seconds /  60;
      seconds = seconds % 60;
      if ( days ) {
        return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
      } else if ( hours ) {
        return { (String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
      } else if ( minutes ) {
        return { (String(minutes) +"m "+ String(seconds) +"s").c_str() };
      } else {
        return { (String(seconds) +"s").c_str() };
      }
  - platform: wifi_info
    ip_address:
      name: ESP IP Address
    ssid:
      name: ESP Connected SSID
    bssid:
      name: ESP Connected BSSID

mqtt:
  client_id: sismografo
  broker: mqtt.seismocloud.com
  port: 1883
  username: embedded
  password: embedded
  on_message:
      - topic: sismoggrafo/ronchideilegionari
        then:
        - logger.log: MQTT is connected!
Enrico204 commented 3 years ago

Ciao! Lascio anche qui un commento così rimane traccia della nostra conversazione sul gruppo Telegram: per ora ti consiglio di mandare i dati direttamente al nostro server usando il firmware che è qui, prossimamente pubblicheremo della documentazione per accedere alle API (REST e MQTT) così da poter interfacciare eventualmente altri prodotti :-)

riddik14 commented 3 years ago

Ok

Boia11 commented 2 years ago

@riddik14 ma funziona questo codice per EspHome?

riddik14 commented 2 years ago

Il codice è proprio di seismocloud. Io ho fatto una alternativa con esphome

Boia11 commented 2 years ago

Il codice è proprio di seismocloud. Io ho fatto una alternativa con esphome

Perfetto quello che volevo sapere, trovo EspHome molto più comodo e versatile di programmare in Arduino IDE o VSCode. Lo proverò nei prossimi giorni allora

riddik14 commented 2 years ago

Ma con esp home si leggi i dati del sensore ma per inviarlo a seismo cloud non puoi

angelsoflovedj commented 5 months ago

Ciao. Ho realizzato anch'io il sensore e caricato con esphome su HomeAssistant. Chre card hai utilizzato per visualizzare i possibili terremoti? Hai un'automazione che ti avvisa?

riddik14 commented 5 months ago

Io in definitiva ho usato il fw seismocloud poi con miseries mi collego al loro mqtt e scarico i dati attraverso nodered che mi crea le entità . Da lì una automazione che se uno dei sensori supera limite mi avvisa

angelsoflovedj commented 5 months ago

Grazie per avermi risposto. Vorrei contribuire anch'io al progetto ma non mi è ben chiara la procedura che hai utilizzato per inviare i dati con mqtt. Per il momento ho dirottato i dati verso il server mqtt di ha. Saresti cosi gentile da condividere l'automazione con la quale ti arriva l'allert? Il sensore ha più entita e non ho capito quali eventi di quali sensori si devono verificare per identificare un terremoto. Grazie ancora