Ok, I fixed the station_type to *Interceptor* (of course, it makes sense 
!). But I still have the *same error.*

 File "/usr/share/weewx/weedb/__init__.py", line 86, in connect
    __import__(db_dict['driver'])
ModuleNotFoundError: No module named 'ecowitt'


   - FYI, in my case, it will be `iface = eth0`
   - "You will need to program the customized section of your weather 
   service section of your control either inside the console" --> *yes I 
   have done that* + I have verified manually that *the interceptor 
   receives the packets of the weather station* (in my case: `sudo 
   PYTHONPATH=. python3 ./user/interceptor.py --device=ecowitt-client 
   --mode=listen --port=8090`)
   - "Depending on your Ecowitt station, not all sensors[..]" : it will be 
   fine in my case because I only have *basic* sensors.
   
   
So there's an error somewhere else. I'm trying to manually start the weewx 
driver this way: 

root@vegan:/home/axelle# /usr/bin/weewxd --pidfile=/var/run/ecowitt.pid 
/etc/weewx/ecowitt.conf

I attach my ecowitt.conf.

-- Axelle.

On Thursday, October 13, 2022 at 9:52:24 PM UTC+2 [email protected] 
wrote:

> No, this is not correct.
>
> The Simulator is only for Simulation as the name suggests - to show that 
> weewx is - in principle - properly configured
>
> You have to put *station_type = Interceptor *in the [Station] stanza in 
> weewx.conf
> and install the interceptor driver, which creates an [Interceptor] stanza 
> in weewx.conf
>
> the Interceptor stanza should look like:
>
> [Interceptor]
>
>     driver = user.interceptor
>     device_type = ecowitt-client
>     port = 8090
>
>     iface = eth0   #or wlan0 depending on the network interface you/your 
> server use/s
>
> You will need to program the customized section of your weather service 
> section of your control either inside the console or via the WS View (Plus) 
> app
> which has to match the Interceptor settings in weewx.conf
>
> e.g.
>
> protocol Ecowitt enabled
> server - IP address of your weewx server
> path - "/" without "" 
> port 8090
> interval 16 seconds
>
> Depending on your Ecowitt station, not all sensors might be shown as the 
> Interceptor driver on GitHub only deals with the basic sensors rain, wind, 
> solar, rain, temperature/humidity and air pressure.
> You might need an extended version if you have more and different sensors, 
> or - if you have a console/gateway with the GW1000/Ecowitt Gateway 
> interface/API - use the weewx Ecowitt Gateway driver aka GW1000 API driver
> Am 13.10.2022 um 21:30 schrieb Invisible Man:
>
> Hi,
> When I start Weewx, I encounter this error:
> ```
>   File "/usr/share/weewx/weewx/wxservices.py", line 105, in __init__
>     initialize=True)
>   File "/usr/share/weewx/weewx/manager.py", line 597, in get_manager
>     self.manager_cache[data_binding] = open_manager(manager_dict, 
> initialize)
>   File "/usr/share/weewx/weewx/manager.py", line 747, in open_manager
>     manager_dict['schema'])
>   File "/usr/share/weewx/weewx/manager.py", line 151, in open_with_create
>     connection = weedb.connect(database_dict)
>   File "/usr/share/weewx/weedb/__init__.py", line 86, in connect
>     __import__(db_dict['driver'])
> ModuleNotFoundError: No module named 'ecowitt'
> ```
>
> I am not sure whether this means that* my configuration file is wrong*, *or 
> if I am starting the service in an incorrect way*.
>
> My configuration is quite special : I have *two weather stations* 
> currently (an old one which I will remove in a couple of weeks, and a new 
> one). The new one is an *Ecowitt* station, and I want to use the Weewx 
> Interceptor for that.
>
> As I have 2 weather stations, I need to start *2 weewx daemons*. I tried 
> https://github.com/weewx/weewx/wiki/weewx-multi which did not exactly 
> work in my case. So, basically, I copied the /etc/init.d/weewx script, 
> modified it to read another config (/etc/weewx/ecowitt.conf) + use another 
> pid file.
>
> As for *my ecowitt.conf*, I am not totally sure it is correct either.
> At the end I have specified this, I think this is okay (+I'll configure 
> the customized ecowitt to use port 8090)?
>
> [Interceptor]
>     driver = user.interceptor
>     device_type = ecowitt-client
>     port = 8090
>
> I am unsure of the beginning of the configuration: I have said to* use 
> "simulator"*. Is that the correct way to do it?
>
> [station]
> ...
> station_type = Simulator
>
> [Simulator]
>     loop_interval = 2.5
>     mode = simulator
>     driver = weewx.drivers.simulator
>
> Thanks for your help.
> PS. This is Weewx 4.3.0 on a RPi4. I have installed the weewx-interceptor.
>
> -- Axelle
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "weewx-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/weewx-user/065f4932-4280-4cd2-ba8f-6b29240fffacn%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/weewx-user/065f4932-4280-4cd2-ba8f-6b29240fffacn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/14d44cc0-9dc7-4d4e-a612-429c46f08846n%40googlegroups.com.
##############################################################################
#                                                                            #
#                        WEEWX CONFIGURATION FILE                            #
#                                                                            #
# Copyright (c) 2009-2013 Tom Keffer <[email protected]>                     #
# $Id: weewx.conf 2394 2014-10-11 16:20:03Z tkeffer $
##############################################################################

# This section is for general configuration information

# Set to 1 for extra debug info, otherwise comment it out or set to zero.
debug = 1

# Root directory of the weewx data file hierarchy for this station.
WEEWX_ROOT = /home/weewx/

# Whether to log successful operations
log_success = True

# Whether to log unsuccessful operations
log_failure = True

# How long to wait before timing out a socket (FTP, HTTP) connection:
socket_timeout = 20

# Do not modify this - it is used by setup.py when installing and updating.
version = 4.3.0

##############################################################################

[Station]
    # This section is for information about your station
    
    # Description of the station location.
    location = "Biot, France"
    
    # Latitude, longitude in decimal degrees
    latitude = 43.633333
    longitude = 7.100000
    
    # Altitude of the station, with unit it is in. This is downloaded from
    # from the station if the hardware supports it.
    altitude = 100, meter
    
    # The start of the rain year (1=January; 10=October, etc.). This is
    # downloaded from the station if the hardware supports it.
    rain_year_start = 1
    
    # Start of week (0=Monday, 6=Sunday)
    week_start = 0
    
    # If you have a website, you may optionally specify an URL for
    # its HTML server.
    station_url = http://biotmeteo.free.fr
    
    # Set to type of station hardware.  Supported stations include:
    #  Vantage   FineOffsetUSB  Ultimeter
    #  WMR100    WS28xx         WS1
    #  WMR200    WS23xx         CC3000
    #  WMR9x8    TE923          Simulator
    station_type = Interceptor

##############################################################################


[StdRESTful]
    
    [[Twitter]]
        app_key = HPo9V2KSOFlUUMKWk5b7LUH5S
        app_key_secret = XerL1kUz6DthASjXgo5s63Gk6xDOYeHcTHOmpNny7aXqImBXwr
        oauth_token = 2870261235-V1DxxYVvZWuXAtsgljhVm0K7VlJpDig0gxoWaT1
        oauth_token_secret = mEmTmaKERcJ4REFVsfo2Elh3gbiYw5JxrwQtIzGBaLcAP
        # for possible parameters see in bin/weewx/units.py
        # Pluie 1h: {rainRate:%.1f} is not working
        # Pluie 24h: {rain24:%:1f} not giving right value
        format = Ecowitt {dateTime:%H:%M} Temp: {outTemp:%.1f} °C; Humidité: 
{outHumidity:%.0f}%; Pression: {barometer:%.0f} hPa; Pluie 24h: {rain24:%.1f} 
cm; Vent: {windSpeed:%.1f} km/h; Dir: {windDir:%03.0f}
        #format = {dateTime:%H:%M} Temp: {outTemp:%.1f} °C; Humidité: 
{outHumidity:%.0f}%; Pression: {barometer:%.0f} hPa; Pluie 24h: {rain24:%.1f} 
cm; Vent rafale: {windGust:%.1f} km/h; Dir: {windDir:%03.0f}
        unit_system = METRIC
        post_interval = 3600
    

##############################################################################

[StdReport]
    # This section specifies what reports, using which skins, to generate.
    
    # Where the skins reside, relative to WEEWX_ROOT:
    SKIN_ROOT = skins
    
    # Where the generated reports should go, relative to WEEWX_ROOT:
    HTML_ROOT = public_ecowitt_html
    
    # The database binding indicates which data should be used in reports
    data_binding = wx_binding
    
    ####
    
    # Each of the following subsections defines a report that will be run.
    # See the customizing guide to change the units, plot types and line
    # colors, modify the fonts, display additional sensor data, and other
    # customizations. Many of those changes can be made here by overriding
    # parameters, or by modifying templates within the skin itself.
    
    [[External]]
        skin = External
        HTML_ROOT = public_ecowitt_html
        enable = True
        [[[ImageGenerator]]]
            image_width = 600
            image_height = 360
    
    [[FTP]]
        skin = Ftp
        enable = True
        
        # FTP'ing the results to a webserver is treated as just another report,
        # albeit one with an unusual report generator!
        #
        # If you wish to use FTP, uncomment and fill out the next four lines:
        user = biotmeteo
        password = 1lfaitb0etchaud
        server = ftpperso.free.fr
        path = /ecowitt
        
        # If you wish to upload files from something other than what HTML_ROOT
        # is set to above, then reset it here:
        #HTML_ROOT = external_html
        
        # Most FTP servers use port 21, but if yours is different, you can
        # change it here
        port = 21
        
        # Set to 1 to use passive mode, zero for active mode:
        passive = 1
        
        # How many times to try to transfer a file before giving up:
        max_tries = 3
        
        # Set to True for a secure FTP (SFTP) connection. Not all servers
        # support this.
        secure_ftp = False
    
    [[RSYNC]]
        skin = Rsync
        enable = True
        
        # rsync'ing the results to a webserver is treated as just another
        # report, much like the FTP report.
        #
        # If you wish to use rsync, you must configure passwordless ssh using
        # public/private key authentication from the user account that weewx
        # runs as to the user account on the remote machine where the files
        # will be copied.
        #
        # The following configure what system and remote path the files are
        # sent to:
        server = 192.168.0.9
        path = /home/weewx/public_ecowitt_html
        user = weewx
        
        # Rsync can be configured to remove files from the remote server if
        # they don't exist under HTML_ROOT locally.  USE WITH CAUTION: if you
        # make a mistake in the remote path, you could could unintentionally
        # cause unrelated files to be deleted. Set to 1 to enable remote file
        # deletion, zero to allow files to accumulate remotely.
        delete = 0
    
    ####
    
    # Various options for customizing your reports.
    
    [[Defaults]]
        
        # The following section determines the selection and formatting of 
units.
        [[[Units]]]
            
            # The following section sets what unit to use for each unit group.
            # NB: The unit is always in the singular. I.e., 'mile_per_hour',
            # NOT 'miles_per_hour'
            [[[[Groups]]]]
                
                group_altitude = meter    # Options are 'foot' or 'meter'
                group_degree_day = degree_C_day    # Options are 'degree_F_day' 
or 'degree_C_day'
                group_distance = km    # Options are 'mile' or 'km'
                group_pressure = hPa    # Options are 'inHg', 'mmHg', 'mbar', 
or 'hPa'
                group_rain = mm    # Options are 'inch', 'cm', or 'mm'
                group_rainrate = mm_per_hour    # Options are 'inch_per_hour', 
'cm_per_hour', or 'mm_per_hour'
                group_speed = km_per_hour    # Options are 'mile_per_hour', 
'km_per_hour', 'knot', or 'meter_per_second'
                group_speed2 = km_per_hour2    # Options are 'mile_per_hour2', 
'km_per_hour2', 'knot2', or 'meter_per_second2'
                group_temperature = degree_C    # Options are 'degree_F' or 
'degree_C'
            
            
            # The following section sets the formatting for each type of unit.
            [[[[StringFormats]]]]
                
                centibar = %.0f
                cm = %.2f
                cm_per_hour = %.2f
                degree_C = %.1f
                degree_F = %.1f
                degree_compass = %.0f
                foot = %.0f
                hPa = %.1f
                hour = %.1f
                inHg = %.3f
                inch = %.2f
                inch_per_hour = %.2f
                km_per_hour = %.0f
                km_per_hour2 = %.1f
                knot = %.0f
                knot2 = %.1f
                mbar = %.1f
                meter = %.0f
                meter_per_second = %.1f
                meter_per_second2 = %.1f
                mile_per_hour = %.0f
                mile_per_hour2 = %.1f
                mm = %.1f
                mmHg = %.1f
                mm_per_hour = %.1f
                percent = %.0f
                second = %.0f
                uv_index = %.1f
                volt = %.1f
                watt_per_meter_squared = %.0f
                NONE = "   N/A"
            
            # The following section sets the label to be used for each type of 
unit
            [[[[Labels]]]]
                
                day = " day", " days"
                hour = " hour", " hours"
                minute = " minute", " minutes"
                second = " second", " seconds"
                NONE = ""
            
            # The following section sets the format to be used for each time 
scale.
            # The values below will work in every locale, but they may not look
            # particularly attractive. See the Customization Guide for 
alternatives.
            [[[[TimeFormats]]]]
                
                hour = %H:%M
                day = %X
                week = %X (%A)
                month = %x %X
                year = %x %X
                rainyear = %x %X
                current = %x %X
                ephem_day = %X
                ephem_year = %x %X
            
            [[[[Ordinates]]]]
                
                # Ordinal directions. The last one should be for no wind 
direction
                directions = N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, 
W, WNW, NW, NNW, N/A
            
            # The following section sets the base temperatures used for the
            #  calculation of heating and cooling degree-days.
            [[[[DegreeDays]]]]
                
                # Base temperature for heating days, with unit:
                heating_base = 18, degree_C
                # Base temperature for cooling days, with unit:
                cooling_base = 18, degree_C
                # Base temperature for growing days, with unit:
                growing_base = 10.0, degree_C
            
            # A trend takes a difference across a time period. The following
            # section sets the time period, and how big an error is allowed to
            # still be counted as the start or end of a period.
            [[[[Trend]]]]
                
                time_delta = 10800    # 3 hours
                time_grace = 300    # 5 minutes
        
        # The labels to be used for each observation type
        [[[Labels]]]
            
            # Set to hemisphere abbreviations suitable for your location:
            hemispheres = N, S, E, W
            
            # Formats to be used for latitude whole degrees, longitude whole
            # degrees, and minutes:
            latlon_formats = %02d, %03d, %05.2f
            
            # Generic labels, keyed by an observation type.
            [[[[Generic]]]]
                barometer = Barometer
                dewpoint = Dew Point
                ET = ET
                heatindex = Heat Index
                inHumidity = Inside Humidity
                inTemp = Inside Temperature
                outHumidity = Humidity
                outTemp = Outside Temperature
                radiation = Radiation
                rain = Rain
                rainRate = Rain Rate
                UV = UV Index
                windDir = Wind Direction
                windGust = Gust Speed
                windGustDir = Gust Direction
                windSpeed = Wind Speed
                windchill = Wind Chill
                windgustvec = Gust Vector
                windvec = Wind Vector
                extraTemp1 = Temperature Salle du Bas
                extraTemp2 = Temperature2
                extraTemp3 = Temperature3
                
                # Sensor status indicators
                
                rxCheckPercent = Signal Quality
                txBatteryStatus = Transmitter Battery
                windBatteryStatus = Wind Battery
                rainBatteryStatus = Rain Battery
                outTempBatteryStatus = Outside Temperature Battery
                inTempBatteryStatus = Inside Temperature Battery
                consBatteryVoltage = Console Battery
                heatingVoltage = Heating Battery
                supplyVoltage = Supply Voltage
                referenceVoltage = Reference Voltage
        
        [[[Almanac]]]
            
            # The labels to be used for the phases of the moon:
            moon_phases = New, Waxing crescent, First quarter, Waxing gibbous, 
Full, Waning gibbous, Last quarter, Waning crescent

##############################################################################

[StdConvert]
    
    # This service acts as a filter, converting the unit system coming from
    # the hardware to a target output unit system.
    #
    # The target_unit affects only the unit system in the database.  Once
    # chosen it cannot be changed without converting the entire database.
    # Modification of target_unit after starting weewx will result in
    # corrupt data - the database will contain a mix of US and METRIC data.
    #
    # The value of target_unit does not affect the unit system for
    # reporting - reports can display US, Metric, or any combination of
    # units.
    #
    # In most cases, target_unit should be left as the default: US
    #
    # In particular, those migrating from a standard wview installation
    # should use US since that is what the wview database contains.
    
    # DO NOT MODIFY THIS VALUE UNLESS YOU KNOW WHAT YOU ARE DOING!
    target_unit = METRIC    # Options are 'US', 'METRICWX', or 'METRIC'

##############################################################################

[StdCalibrate]
    # This section can adjust data using calibration expressions.
    
    [[Corrections]]
# For each type, an arbitrary calibration expression can be given. 
# It should be in the native units of the weather station hardware.
# For example:
# outTemp = outTemp - 0.2

##############################################################################

[StdQC]
    # This section is for quality control checks.  If units are not specified,
    # values must be in the units defined in the StdConvert section.
    
    [[MinMax]]
        barometer = 26, 32.5, inHg
        outTemp = -40, 60, degree_C
        inTemp = 0, 60, degree_C
        outHumidity = 0, 100
        inHumidity = 0, 100
        rain = 0, 60, inch
        windSpeed = 0, 120, mile_per_hour

##############################################################################

[StdWXCalculate]
    [[Calculations]]
        # Derived quantities are calculated by this service.  Possible values 
are:
        #  hardware        - use the value provided by hardware
        #  software        - use the value calculated by weewx
        #  prefer_hardware - use value provide by hardware if available,
        #                      otherwise use value calculated by weewx
        
        pressure = prefer_hardware
        barometer = prefer_hardware
        altimeter = prefer_hardware
        windchill = hardware
        heatindex = hardware
        dewpoint = prefer_hardware
        inDewpoint = prefer_hardware
        rainRate = hardware
        maxSolarRad = prefer_hardware
        cloudbase = prefer_hardware
        humidex = prefer_hardware
        appTemp = prefer_hardware
        ET = prefer_hardware
        windrun = prefer_hardware

[StdTimeSynch]
    
    # How often to check the weather station clock for drift (in seconds)
    clock_check = 14400
    
    # How much it can drift before we will correct it (in seconds)
    max_drift = 5

##############################################################################

#   This section is for configuring the archive service.


[StdArchive]
    # If the station hardware supports data logging then the archive interval
    # will be downloaded from the station. Otherwise, specify it (in seconds).
    archive_interval = 300
    
    # How long to wait (in seconds) before processing new archive data. Must
    # be greater than zero.
    archive_delay = 15
    
    # If possible, new archive records are downloaded from the station
    # hardware. If the hardware does not support this, then new archive
    # records will be generated in software.
    # Set the following to "software" to force software record generation.
    record_generation = hardware
    
    # Whether to include LOOP data in hi/low statistics
    loop_hilo = True
    
    # the data binding used to save archive records
    data_binding = wx_binding


##############################################################################

[DataBindings]
    # This section binds a data store to a database
    
    [[wx_binding]]
        # The database must match one of the sections in [Databases] 
        database = archive_sqlite
        # The name of the table within the database
        table_name = archive
        # The manager handles aggregation of data for historical summaries
        manager = weewx.wxmanager.WXDaySummaryManager
        # The schema defines the structure of the database.
        # It is *only* used when the database is created.
        schema = schemas.wview.schema


##############################################################################
#   This section defines various databases.

[Databases]
    
    [[archive_sqlite]]
        database_name = ecowitt.sdb
        database_type = SQLite
    
    # MySQL
    [[archive_mysql]]
        database_name = ecowitt
        database_type = MySQL


##############################################################################

#   This section defines defaults for the different types of databases.

[DatabaseTypes]
    
    # Defaults for SQLite databases
    [[SQLite]]
        driver = ecowitt.sqlite
        # Directory in which the database files are located
        SQLITE_ROOT = /home/weewx/archive
    
    # Defaults for MySQL databases
    [[MySQL]]
        driver = ecowitt.mysql
        # The host where the database is located
        host = localhost
        # The user name for logging in to the host
        user = weewx
        # The password for the user name
        password = weewx

##############################################################################

[Engine]
    # The following section specifies which services should be run and in what 
order.
    [[Services]]
        prep_services = weewx.engine.StdTimeSynch,
        data_services = user.MQTTSubscribe.MQTTSubscribeService,
        process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, 
weewx.engine.StdQC, weewx.wxservices.StdWXCalculate
        xtype_services = weewx.wxxtypes.StdWXXTypes, 
weewx.wxxtypes.StdPressureCooker, weewx.wxxtypes.StdRainRater, 
weewx.wxxtypes.StdDelta
        archive_services = weewx.engine.StdArchive,
        restful_services = weewx.restx.StdStationRegistry, user.twitter.Twitter
        report_services = weewx.engine.StdPrint, weewx.engine.StdReport

##############################################################################

# Options for extension 'MQTTSubscribe'
[MQTTSubscribeService]
    # This section is for the MQTTSubscribe service.
    
    # Turn the service on and off.
    # Default is: true
    # Only used by the service.
    enable = true
    
    # The MQTT server.
    # Default is localhost.
    host = 192.168.0.9
    
    # The port to connect to.
    # Default is 1883.
    port = 1883
    
    # Maximum period in seconds allowed between communications with the broker.
    # Default is 60.
    keepalive = 60
    
    # username for broker authentication.
    # Default is None.
    username = None
    
    # password for broker authentication.
    # Default is None.
    password = None
    
    # The binding, loop or archive.
    # Default is: loop
    # Only used by the service.
    binding = loop
    
    # The message handler to use
    [[message_callback]]
        # The format of the MQTT payload.
        # Currently support: individual, json, keyword
        # Must be specified.
        type = individual
    
    # The topics to subscribe to.
    [[topics]]
        # Units for MQTT payloads without unit value.
        # Valid values: US, METRIC, METRICWX
        # Default is: US
        unit_system = METRIC
        use_topic_as_fieldname = true
        
        [[[temperature/bassin]]]
            name = outTemp
            ignore = False
            contains_total = False
            conversion_type = float
            units = degree_C
        
        [[[humidite/jardin]]]
            name = outHumidity
            ignore = False
            contains_total = False
            conversion_type = float


        [[[temperature/salledubas]]]
            name = extraTemp1
            ignore = False
            contains_total = False
            conversion_type = float
            units = degree_C

[Interceptor]
    driver = user.interceptor
    device_type = ecowitt-client
    port = 8090
    iface = eth0

Reply via email to