Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - tonicb

Páginas: [1]
1
Ecowitt y todos los clones Fine Offset / Re:Soporte para Ecowitt Wittboy
« en: 07 de Diciembre del 2024, 14:17:17 pm »
Gracias! Entonces esperaré cuando cambie la valla que si quedará alejada de todo. De momento los datos comparando con otras estaciones son parejos, pero seguramente en verano falseará por la noche la temperatura, ese tipo de ladrillos desprenden mucha calor.

2
Ecowitt y todos los clones Fine Offset / Re:Soporte para Ecowitt Wittboy
« en: 07 de Diciembre del 2024, 12:41:18 pm »
Ese montaje no cumple las más mínimas normas para poder dar de paso una estación, solo sería útil el pluvio, para lo demás está excesivamente cerca del muro.

Un vecino que vive cerca y en el mismo tipo de construcción la tiene montada en la antena, lo que esa antena está anclada a una chimenea, que creo que debe ser la salida del extractor de alguna cocina, o respiradero (del ascensor??). Sería buena ubicación?


3
Gracias!

Weewx era otra opción, pero quería algo lo más simple posible, que solo haga de receptor local y repetidor.

4
Ecowitt y todos los clones Fine Offset / Re:Soporte para Ecowitt Wittboy
« en: 06 de Diciembre del 2024, 23:34:29 pm »
Ese montaje no cumple las más mínimas normas para poder dar de paso una estación, solo sería útil el pluvio, para lo demás está excesivamente cerca del muro.

Ese soporte puede servir para una antena, o para montar la estación sobre un poste de madera, pero no para colocarla así.

Por cierto, los pinchos anti pájaros los has montado al revés.

Si ya he visto los de los pinchos al ver la otra foto.........

No sabía que tenía que ponerla más lejos, buscaré otra ubicación, tengo que montar una valla y ahí si podré colocarla más alta y lejos de muros, ahora complicado, cosas de pisos y comunidades, tengo el poste de antena pero está en una chimenea... En el mismo enlace de amazon había soportes más largos, pero no se si suficientemente largos.

5
Otro software meteorológico / Re:Ecowitt + HomeAssistant
« en: 06 de Diciembre del 2024, 23:28:13 pm »
Hola, si te sirve de ayuda he colgado un script python, que lo que hace es recibir los datos de la estación ecowitt y los reenvía a home assistant y también a meteoclimatic, es como si fuera un duplicador:

https://forum.meteoclimatic.net/index.php/topic,5606.0.html

Llevo desde ayer funcionando y perfecto.

6
Buenas,

Soy nuevo en todo esto, hace poco me compré una Ecowitt Wittboy, la tengo integrada en Homeassistant y quería enviar también los datos a esta plataforma.

Mirando los protocolos veo que localmente solo deja crear un servidor, por lo que gracias a chatgpt y después de varias pruebas he creado un script de python muy simple que lo que hace es recibir los datos directamente de la estación por el protocolo ecowitt y después estos los redirige a mi servidor de homeassistant y también a meteoclimatic, de forma que es como si tuviera configurados dos DIY servers en la estación.

Decir que la idea es tener un server linux para esto, yo tengo todo virtualizado en proxmox, pero una simple raspberry serviría.

Archivo: ecowitt.py:
Código: [Seleccionar]
from flask import Flask, request
import requests
import json
import os
from datetime import datetime

# Configuración inicial
HOME_ASSISTANT_WEBHOOK = "http://server_ha:8123/api/webhook/XXXXXXXXXXXXX"  # Cambia esto si usas otro webhook.
METEOCLIMATIC_API = "http://api.m11c.net/v2/ew/{station_code}/{api_key}"  # Ruta base de Meteoclimatic
STATION_CODE = "ESXXXXXXXXXXXXXX"  # Sustituye por tu código de estación de Meteoclimatic
API_KEY = "XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX"  # Sustituye por tu API key de Meteoclimatic
LOG_FILE = "weather_data.log"  # Archivo para almacenar datos localmente
DEBUG_FILE = "debug.log"  # Archivo para guardar información de debug

# Inicializar servidor Flask
app = Flask(__name__)

@app.route('/api/data', methods=['POST'])
def receive_data():
    try:
        # Recibir datos enviados por la estación Ecowitt
        data = request.form.to_dict() if request.form else request.args.to_dict()
        current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")

        # Guardar datos en un archivo local (opcional)
#        with open(LOG_FILE, "a") as log:
#            log.write(json.dumps(data) + "\n")

        # Debug: Escribir datos recibidos
#        with open(DEBUG_FILE, "a") as debug:
#            debug.write(f"[{current_time}] Datos recibidos: {json.dumps(data)}\n")

        # Enviar datos a Home Assistant como la propia estación
        try:
            ha_response = requests.post(HOME_ASSISTANT_WEBHOOK, data=data)
            ha_status = ha_response.status_code
            with open(DEBUG_FILE, "a") as debug:
                debug.write(f"[{current_time}]: Enviado a Home Assistant. Estado: {ha_status}\n")
        except Exception as e:
            with open(DEBUG_FILE, "a") as debug:
                debug.write(f"[{current_time}]: Error enviando a Home Assistant: {e}\n")
            ha_status = "Error"

        # Enviar datos a Meteoclimatic como la propia estación
        try:
            meteoclimatic_url = METEOCLIMATIC_API.format(station_code=STATION_CODE, api_key=API_KEY)
            mc_response = requests.post(meteoclimatic_url, data=data)
            mc_status = mc_response.status_code
            with open(DEBUG_FILE, "a") as debug:
                debug.write(f"[{current_time}]: Enviado a Meteoclimatic. Estado: {mc_status}\n")
        except Exception as e:
            with open(DEBUG_FILE, "a") as debug:
                debug.write(f"[{current_time}]: Error enviando a Meteoclimatic: {e}\n")
            mc_status = "Error"

        # Respuesta al cliente (estación Ecowitt)
        return "OK", 200

    except Exception as e:
        with open(DEBUG_FILE, "a") as debug:
            current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
            debug.write(f"[{current_time}] Error procesando datos: {e}\n")
        return "Error interno del servidor", 500

if __name__ == "__main__":
    # Ejecutar el servidor Flask
    port = 80  # Cambia si deseas usar otro puerto
    app.run(host="0.0.0.0", port=port)

En los protocolos de Ecowitt hay que configurarlos que apunten a la IP donde ejecutes este script, con path=/api/data, puerto 80 (lo puedes cambiar) y intervalo de 60 segundos.


7
Ecowitt y todos los clones Fine Offset / Re:Soporte para Ecowitt Wittboy
« en: 06 de Diciembre del 2024, 22:30:07 pm »
Hola! Yo la he instalado con un soporte de amazon: https://www.amazon.es/dp/B0CMTYG6YJ?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1

Me ha encajado tal cual.




Páginas: [1]