Agent skill

Iot Sensor Network

by FerroxLabs in FerroxLabs/wayland

Guides design and deployment of mesh sensor networks including data collection, power management, communication protocols, and fleet management Use when the user asks about iot sensor network…

Apache-2.0Auto-check passedDevOps & Cloud

Install Iot Sensor Network

skills CLI
$ npx skills add FerroxLabs/wayland --skill iot-sensor-network -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install FerroxLabs/wayland iot-sensor-network --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/emerging-tech/iot-sensor-network .claude/skills/iot-sensor-network && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
iot-sensor-network
GitHub stars
608
Token cost
~4.5k tokens
SKILL.md length
661 words
Files
1
Skills in repo
1,194
Repo updated
First seen
Licence
Apache-2.0

At a glance

Guides design and deployment of mesh sensor networks including data collection, power management, communication protocols, and fleet management Use when the user asks about iot sensor network…

  • Works in 5 steps: Star Network: Deploy 3 ESP32 sensor… → Power Profiler: Measure actual current… → Adaptive Sampling: Implement edge… → …
  • The user asks about iot sensor network
  • SKILL.md covers When to Use, Network Topology Selection, ESP-NOW Mesh Network and Power Management, plus 8 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Iot Sensor Network is an agent skill from FerroxLabs/wayland. Guides design and deployment of mesh sensor networks including data collection, power management, communication protocols, and fleet management Use when the user asks about iot sensor network, related techniques, best practices, or needs guidance in this domain. Do NOT use when the request is outside the scope of iot sensor network or requires a different specialized skill.

Its SKILL.md is about 4.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud, covering Deployment. It works with ESP32. The repository describes itself as: Wayland - The AI Agent That Perceives. Reasons. Acts. Evolves. The licence is Apache-2.0.

When your agent uses it

  • The user asks about iot sensor network
  • Related techniques
  • Needs guidance in this domain
  • The request is outside the scope of iot sensor network

Example prompts

  • “Use the iot-sensor-network skill to guide design and deployment of mesh sensor networks including data collection, power management, communication…”
  • “/iot-sensor-network”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Star Network: Deploy 3 ESP32 sensor nodes reporting temperature to one gateway node via ESP-NOW, forwarding to serial console
  2. Power Profiler: Measure actual current draw of a sensor node across wake/sleep cycles, compare to calculated budget
  3. Adaptive Sampling: Implement edge processing that increases sample rate when readings change rapidly
  4. Fleet Dashboard: Build a web dashboard showing real-time status, battery levels, and alerts for 5+ simulated nodes
  5. Resilient Pipeline: Add NVS buffering to sensor nodes so data survives gateway outages, with automatic catch-up on reconnection

What it can do on your machine

Read from SKILL.md and the folder at commit 4c030c7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python, c and template).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Iot Sensor Network loads about 4.5k tokens when it runs. Until then it costs about 99 tokens; SKILL.md has 661 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~99
When it runs · the whole SKILL.md, loaded when a task matches
~4.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from FerroxLabs/wayland at commit 4c030c7, republished under its Apache-2.0 licence (© FerroxLabs). 661 words, ~4,539 tokens.

Download SKILL.mdSave it as .claude/skills/iot-sensor-network/SKILL.md (or your agent's skills folder).
name
iot-sensor-network
description
Guides design and deployment of mesh sensor networks including data collection, power management, communication protocols, and fleet management Use when the user asks about iot sensor network, related techniques, best practices, or needs guidance in this domain. Do NOT use when the request is outside the scope of iot sensor network or requires a different specialized skill.
license
Apache-2.0
metadata.author
foundry-skills
metadata.version
1.0.0
metadata.tags
advanced iot budgeting guide python automation networking sleep
metadata.category
emerging-tech
metadata.subcategory
embedded-iot
metadata.disclaimer
none
metadata.difficulty
advanced

IoT Sensor Network

You are an expert IoT sensor network architect. You guide developers through mesh networking topologies, data collection pipelines, power management strategies, communication protocol selection, and scalable fleet management for distributed sensor deployments.

When to Use

Use this skill when:

  • User asks about iot sensor network techniques or best practices
  • User needs guidance on iot sensor network concepts
  • User wants to implement or improve their approach to iot sensor network

Do NOT use when:

  • The request falls outside the scope of iot sensor network
  • User needs a different specialized skill for their specific situation
  • The topic requires professional consultation beyond general guidance

Network Topology Selection

Topology Comparison
TopologyRangeScalabilityPowerComplexityReliabilityBest For
StarShortLow (<20)LowSimpleSingle point failureSmall indoor
MeshExtendedHigh (100+)MediumComplexSelf-healingLarge area
TreeMediumMediumMediumMediumBranch failureHierarchical
Star-of-StarsExtendedHighLow-MedMediumGateway redundancyMulti-room
Protocol Selection Matrix
ProtocolRangeData RatePowerTopologyLicenseNodes
WiFi50m54+ MbpsHighStarISM~32
BLE Mesh30m2 MbpsVery LowMeshISM32K
Zigbee100m250 kbpsLowMesh/StarISM65K
Z-Wave100m100 kbpsLowMeshLicensed232
LoRa15km50 kbpsVery LowStarISM1000s
Thread30m250 kbpsLowMeshISM250+
ESP-NOW200m1 MbpsLowStar/MeshISM20

ESP-NOW Mesh Network

Sensor Node (ESP32)
c
/* sensor_node.c - Battery-powered sensor node using ESP-NOW */

#include <esp_now.h>
#include <esp_wifi.h>
#include <esp_sleep.h>
#include <nvs_flash.h>
#include <string.h>

#define GATEWAY_MAC {0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF}
#define SLEEP_DURATION_US (300 * 1000000ULL)  /* 5 minutes */
#define SENSOR_PIN ADC1_CHANNEL_0
#define BATTERY_PIN ADC1_CHANNEL_3

typedef struct __attribute__((packed)) {
    uint8_t  node_id;
    uint8_t  msg_type;      /* 0=data, 1=heartbeat, 2=alert */
    uint16_t sequence;
    float    temperature;
    float    humidity;
    float    battery_v;
    uint32_t uptime_ms;
} sensor_packet_t;

static uint16_t seq_num = 0;
static uint8_t gateway_mac[] = GATEWAY_MAC;

RTC_DATA_ATTR static uint16_t boot_count = 0;

static void on_data_sent(const uint8_t *mac, esp_now_send_status_t status) {
    if (status != ESP_NOW_SEND_SUCCESS) {
        /* Store in NVS for retry on next wake */
        store_failed_packet();
    }
}

static void init_espnow(void) {
    wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();
    esp_wifi_init(&cfg);
    esp_wifi_set_mode(WIFI_MODE_STA);
    esp_wifi_start();

    esp_now_init();
    esp_now_register_send_cb(on_data_sent);

    esp_now_peer_info_t peer = {
        .channel = 1,
        .encrypt = false
    };
    memcpy(peer.peer_addr, gateway_mac, 6);
    esp_now_add_peer(&peer);
}

static float read_battery_voltage(void) {
    /* Voltage divider: 100K/100K, Vmax = 4.2V -> ADC max ~2.1V */
    int raw = adc1_get_raw(BATTERY_PIN);
    return (raw / 4095.0f) * 3.3f * 2.0f;
}

void app_main(void) {
    boot_count++;
    init_espnow();

    sensor_packet_t pkt = {
        .node_id = CONFIG_NODE_ID,
        .msg_type = 0,
        .sequence = boot_count,
        .temperature = read_temperature_sensor(),
        .humidity = read_humidity_sensor(),
        .battery_v = read_battery_voltage(),
        .uptime_ms = boot_count * (SLEEP_DURATION_US / 1000)
    };

    /* Retry failed packets from NVS first */
    retry_stored_packets();

    esp_now_send(gateway_mac, (uint8_t *)&pkt, sizeof(pkt));
    vTaskDelay(pdMS_TO_TICKS(100));  /* Wait for send callback */

    /* Deep sleep */
    esp_wifi_stop();
    esp_deep_sleep(SLEEP_DURATION_US);
}
Gateway Node
python
#!/usr/bin/env python3
"""Gateway node: collects ESP-NOW data, forwards to MQTT/HTTP."""

import struct
import json
import time
import paho.mqtt.client as mqtt
from collections import deque
from threading import Lock

PACKET_FORMAT = "<BBHfffI"  # matches sensor_packet_t
PACKET_SIZE = struct.calcsize(PACKET_FORMAT)

class SensorGateway:
    def __init__(self, mqtt_broker: str, mqtt_port: int = 1883):
        self.mqtt = mqtt.Client(client_id="sensor-gateway")
        self.mqtt.connect(mqtt_broker, mqtt_port)
        self.mqtt.loop_start()

        self.node_registry = {}
        self.buffer = deque(maxlen=1000)
        self.lock = Lock()
        self.stats = {"received": 0, "forwarded": 0, "errors": 0}

    def process_packet(self, raw_data: bytes, rssi: int):
        """Parse and forward a sensor packet."""
        if len(raw_data) != PACKET_SIZE:
            self.stats["errors"] += 1
            return

        fields = struct.unpack(PACKET_FORMAT, raw_data)
        node_id, msg_type, seq, temp, hum, batt, uptime = fields

        payload = {
            "node_id": node_id,
            "type": ["data", "heartbeat", "alert"][msg_type],
            "sequence": seq,
            "temperature": round(temp, 2),
            "humidity": round(hum, 2),
            "battery_v": round(batt, 2),
            "uptime_ms": uptime,
            "rssi": rssi,
            "gateway_ts": time.time()
        }

        # Update registry
        with self.lock:
            self.node_registry[node_id] = {
                "last_seen": time.time(),
                "battery": batt,
                "rssi": rssi,
                "packets": self.node_registry.get(node_id, {}).get("packets", 0) + 1
            }

        # Publish to MQTT
        topic = f"sensors/node/{node_id}/data"
        self.mqtt.publish(topic, json.dumps(payload), qos=1)
        self.stats["received"] += 1
        self.stats["forwarded"] += 1

        # Battery alert
        if batt < 3.3:
            alert_topic = f"sensors/node/{node_id}/alert"
            self.mqtt.publish(alert_topic, json.dumps({
                "type": "low_battery",
                "voltage": batt,
                "node_id": node_id
            }), qos=1)

    def get_fleet_status(self) -> dict:
        """Return status of all known nodes."""
        now = time.time()
        with self.lock:
            status = {}
            for nid, info in self.node_registry.items():
                age = now - info["last_seen"]
                status[nid] = {
                    **info,
                    "status": "online" if age < 600 else "offline",
                    "last_seen_ago": int(age)
                }
            return status

Power Management

Power Budget Calculator
ComponentActiveSleepDuty CycleAverage
ESP32 (WiFi TX)240 mA10 uA0.1%0.25 mA
BME280 sensor1 mA0.1 uA0.1%0.001 mA
Voltage regulator5 mA5 mA100%5 mA
Total~5.25 mA
18650 (3000mAh)~24 days
Deep Sleep Optimization (ESP32)
c
/* Power-optimized wake cycle */

#include <esp_sleep.h>
#include <esp_pm.h>
#include <driver/rtc_io.h> ./* Use RTC memory to persist across deep sleep */
RTC_DATA_ATTR static int failed_sends = 0;
RTC_DATA_ATTR static float last_temp = 0;

/* Adaptive sleep: longer intervals when data is stable */
static uint64_t calculate_sleep_duration(float current_temp) {
    float delta = fabsf(current_temp - last_temp);
    last_temp = current_temp;

    if (delta > 2.0f) return 60 * 1000000ULL;    /* 1 min if changing fast */
    if (delta > 0.5f) return 300 * 1000000ULL;    /* 5 min if moderate */
    return 900 * 1000000ULL;                        /* 15 min if stable */
}

/* Disable unused peripherals before sleep */
static void prepare_for_sleep(void) {
    esp_wifi_stop();
    adc_power_release();

    /* Hold GPIO states during sleep if needed */
    rtc_gpio_hold_en(GPIO_NUM_25);  /* Keep LED off */

    /* Configure wake sources */
    esp_sleep_enable_timer_wakeup(calculate_sleep_duration(last_temp));
    esp_sleep_enable_ext0_wakeup(GPIO_NUM_33, 0);  /* Wake on button press */

    /* Isolate unused GPIO to prevent leakage */
    esp_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_OFF);
}
Solar Power Sizing
python
def calculate_solar_panel(
    avg_current_ma: float,
    battery_mah: float,
    peak_sun_hours: float = 4.0,
    panel_efficiency: float = 0.7,
    days_autonomy: int = 3
) -> dict:
    """Calculate minimum solar panel wattage for a sensor node."""

    daily_consumption_mah = avg_current_ma * 24
    daily_consumption_wh = daily_consumption_mah * 3.7 / 1000  # Assuming 3.7V LiPo

    # Panel must generate enough for daily use + charge losses
    required_generation_wh = daily_consumption_wh / panel_efficiency
    panel_watts = required_generation_wh / peak_sun_hours

    # Battery must last through autonomy period
    min_battery_mah = daily_consumption_mah * days_autonomy

    return {
        "daily_consumption_mah": round(daily_consumption_mah, 1),
        "daily_consumption_wh": round(daily_consumption_wh, 3),
        "min_panel_watts": round(panel_watts, 2),
        "recommended_panel_watts": round(panel_watts * 1.5, 2),  # 50% margin
        "min_battery_mah": round(min_battery_mah),
        "battery_adequate": battery_mah >= min_battery_mah
    }

Data Pipeline Architecture

Edge Processing Pattern
python
class EdgeProcessor:
    """Process sensor data locally before transmitting."""

    def __init__(self, window_size: int = 12):
        self.window = []
        self.window_size = window_size
        self.last_sent = None
        self.threshold = 1.0  # Only send if delta > threshold

    def add_reading(self, value: float) -> dict | None:
        """Add reading, return packet only if transmission warranted."""
        self.window.append(value)
        if len(self.window) > self.window_size:
            self.window.pop(0)

        if len(self.window) < self.window_size:
            return None  # Still collecting

        stats = {
            "mean": sum(self.window) / len(self.window),
            "min": min(self.window),
            "max": max(self.window),
            "range": max(self.window) - min(self.window),
            "samples": len(self.window)
        }

        # Only transmit on significant change
        if self.last_sent is not None:
            if abs(stats["mean"] - self.last_sent) < self.threshold:
                return None

        self.last_sent = stats["mean"]
        self.window.clear()
        return stats
Time-Series Storage (InfluxDB Pattern)
python
from influxdb_client import InfluxDBClient, Point, WritePrecision
from datetime import datetime

class SensorStorage:
    def __init__(self, url: str, token: str, org: str, bucket: str):
        self.client = InfluxDBClient(url=url, token=token, org=org)
        self.write_api = self.client.write_api()
        self.query_api = self.client.query_api()
        self.bucket = bucket
        self.org = org

    def store_reading(self, node_id: int, measurement: str,
                      fields: dict, tags: dict = None):
        point = Point(measurement)
        point.tag("node_id", str(node_id))
        if tags:
            for k, v in tags.items():
                point.tag(k, str(v))
        for k, v in fields.items():
            point.field(k, float(v))
        point.time(datetime.utcnow(), WritePrecision.MS)

        self.write_api.write(bucket=self.bucket, record=point)

    def query_node_history(self, node_id: int, hours: int = 24) -> list:
        query = f'''
        from(bucket: "{self.bucket}")
            |> range(start: -{hours}h)
            |> filter(fn: (r) => r["node_id"] == "{node_id}")
            |> aggregateWindow(every: 5m, fn: mean, createEmpty: false)
            |> yield(name: "mean")
        '''
        result = self.query_api.query(query, org=self.org)
        return [
            {"time": record.get_time(), "value": record.get_value()}
            for table in result for record in table.records
        ]

Fleet Management

Node Health Monitoring
python
import time
from dataclasses import dataclass, field
from typing import Optional

@dataclass
class NodeHealth:
    node_id: int
    last_seen: float = 0
    battery_voltage: float = 0
    rssi: int = 0
    packet_count: int = 0
    error_count: int = 0
    expected_interval: int = 300  # seconds
    firmware_version: str = ""

    @property
    def is_online(self) -> bool:
        return (time.time() - self.last_seen) < (self.expected_interval * 2)

    @property
    def battery_percent(self) -> int:
        # LiPo discharge curve approximation
        if self.battery_voltage >= 4.2: return 100
        if self.battery_voltage <= 3.0: return 0
        return int((self.battery_voltage - 3.0) / 1.2 * 100)

    @property
    def packet_loss_rate(self) -> float:
        if self.packet_count == 0: return 0
        return self.error_count / (self.packet_count + self.error_count)


class FleetManager:
    def __init__(self):
        self.nodes: dict[int, NodeHealth] = {}

    def update_node(self, node_id: int, **kwargs):
        if node_id not in self.nodes:
            self.nodes[node_id] = NodeHealth(node_id=node_id)
        node = self.nodes[node_id]
        for key, value in kwargs.items():
            if hasattr(node, key):
                setattr(node, key, value)
        node.last_seen = time.time()
        node.packet_count += 1

    def get_alerts(self) -> list[dict]:
        alerts = []
        for nid, node in self.nodes.items():
            if not node.is_online:
                alerts.append({"node": nid, "type": "offline",
                             "since": node.last_seen})
            if node.battery_percent < 20:
                alerts.append({"node": nid, "type": "low_battery",
                             "percent": node.battery_percent})
            if node.packet_loss_rate > 0.1:
                alerts.append({"node": nid, "type": "high_packet_loss",
                             "rate": node.packet_loss_rate})
        return alerts

Common Pitfalls

MistakeImpactSolution
No packet sequencingUndetected data lossInclude sequence numbers
WiFi for battery nodesDays instead of monthsUse ESP-NOW, BLE, or LoRa
No local bufferingData loss on connectivity gapsNVS/flash ring buffer
Fixed sample ratesWasted power on stable dataAdaptive sampling
No OTA update pathManual firmware updates foreverPlan OTA from day one
Ignoring clock driftMisaligned time-series dataNTP sync at gateway, relative timestamps at nodes
No encryptionData interception, spoofingAES-128 at minimum for ESP-NOW
Show full SKILL.md (277 more words)Show less

Exercises

  1. Star Network: Deploy 3 ESP32 sensor nodes reporting temperature to one gateway node via ESP-NOW, forwarding to serial console
  2. Power Profiler: Measure actual current draw of a sensor node across wake/sleep cycles, compare to calculated budget
  3. Adaptive Sampling: Implement edge processing that increases sample rate when readings change rapidly
  4. Fleet Dashboard: Build a web dashboard showing real-time status, battery levels, and alerts for 5+ simulated nodes
  5. Resilient Pipeline: Add NVS buffering to sensor nodes so data survives gateway outages, with automatic catch-up on reconnection

Process

  1. Gather information. Ask the user clarifying questions to understand their specific situation, goals, and constraints
  2. Analyze context. Review the information provided and identify key factors relevant to iot sensor network
  3. Develop recommendations. Apply domain expertise to create actionable guidance tailored to the user's needs
  4. Present structured output. Deliver findings in the output format below with clear next steps
  5. Address follow-ups. Answer additional questions and refine recommendations based on feedback

Output Format

template
## Iot Sensor Network Analysis

### Assessment
[Key findings and observations]

### Recommendations
1. [Primary recommendation]
2. [Secondary recommendation]
3. [Additional suggestions]

### Action Items
- [ ] [First action step]
- [ ] [Second action step]
- [ ] [Follow-up task]

Edge Cases

  • Incomplete information: Ask clarifying questions before proceeding with recommendations
  • Conflicting requirements: Prioritize the most critical constraint and note trade-offs
  • Out of scope requests: Redirect to appropriate specialized skill or professional resource
  • Beginner vs advanced: Adjust depth and terminology based on user's experience level

Example

Input: "Help me with iot sensor network for my current situation"

Output:

Based on your situation, here is a structured approach to iot sensor network:

  1. Assessment: Evaluate your current state and identify key areas for improvement
  2. Strategy: Develop a targeted plan based on best practices
  3. Implementation: Execute the plan with specific, measurable steps
  4. Review: Monitor progress and adjust as needed

© FerroxLabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in src/process/resources/skills-library/bodies/skills/emerging-tech/iot-sensor-network of FerroxLabs/wayland.

Open the folder on GitHubat commit 4c030c7

Compare with similar skills

Iot Sensor Network next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Iot Sensor Network compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Iot Sensor Network this skillFerroxLabs/wayland608—~4.5kAutomated safety check: PassApache-2.0
Kubeshark Installerkubeshark/kubeshark12k—~3.6kAutomated safety check: NotesApache-2.0
GreptimeDB Dev Docker ImageGreptimeTeam/greptimedb6.7k—~4kAutomated safety check: NotesApache-2.0
KubeSphere ServiceMesh Managerkubesphere/kubesphere17k—~2.4kAutomated safety check: PassCustom licence
Vercelremotion-dev/remotion62k—~1.2kAutomated safety check: PassCustom licence
AWS Cdk Developmentzxkane/aws-skills3672 repos~2.5kAutomated safety check: PassMIT

Similar skills

  • Kubeshark Installer

    kubeshark/kubeshark

    Installs and configures Kubeshark on a Kubernetes cluster, choosing between the quick CLI path and a Helm install with custom values.

    12k GitHub stars~3.6k tokensUpdated 7 days ago
    DevOps & CloudAuto-check: notes
  • GreptimeDB Dev Docker Image

    GreptimeTeam/greptimedb

    Packages a locally built GreptimeDB debug binary into a development-only Docker image for local-cluster testing, with an optional push to a dev registry.

    6.7k GitHub stars~4k tokensUpdated 2 days ago
    DevOps & CloudAuto-check: notes
  • KubeSphere ServiceMesh Manager

    kubesphere/kubesphere

    Installs, checks and troubleshoots the KubeSphere ServiceMesh extension (Istio, Kiali, Jaeger), including grayscale release, sidecar injection, topology and tracing issues.

    17k GitHub stars~2.4k tokensUpdated 2 mo ago
    DevOps & CloudAuto-check passed
  • Vercel

    remotion-dev/remotion

    Official

    Set up a Codex monitor for Vercel deployments and preview URLs.

    62k GitHub stars~1.2k tokensUpdated today
    DevOps & CloudAuto-check passed
  • AWS Cdk Development

    zxkane/aws-skills

    AWS Cloud Development Kit (CDK) expert for building cloud infrastructure with TypeScript/Python.

    367 GitHub starsUsed in 2 repos~2.5k tokens
    DevOps & CloudAuto-check passed
  • Senior DevOps Toolkit

    maslennikov-ig/claude-code-orchestrator-kit

    Comprehensive DevOps skill for CI/CD, infrastructure automation, containerization, and cloud platforms (AWS, GCP, Azure). Includes pipeline setup…

    259 GitHub starsUsed in 6 repos~1.1k tokens
    DevOps & CloudAuto-check: notes

More from FerroxLabs/wayland

All 1,194 skills in this repo
  • Star Office Helper

    FerroxLabs/wayland

    Install, start, connect, and troubleshoot visualization companion projects for Aion/OpenClaw, with Star-Office-UI as the default recommendation.

    608 GitHub stars~2.2k tokensUpdated yesterday
    Auto-check: notes
  • Openclaw Setup

    FerroxLabs/wayland

    OpenClaw usage expert: Helps you install, deploy, configure, and use OpenClaw personal AI assistant.

    608 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Tvcontrol Setup

    FerroxLabs/wayland

    Set up TVControl end to end: install the connector, start TradingView Desktop with its control port open, load a watchlist export, add the indicators they use, and leave a working chart.

    608 GitHub stars~5.7k tokensUpdated yesterday
    Auto-check passed
  • Ab Testing Specialist

    FerroxLabs/wayland

    End-to-end guide for designing, running, and analyzing A/B tests including experiment design, statistical significance, sample size calculation, common pitfalls, and advanced testing patterns.

    608 GitHub stars~3.7k tokensUpdated yesterday
    Auto-check passed
  • Academic Writer

    FerroxLabs/wayland

    Complete academic writing guide covering thesis and dissertation structure, journal article format using IMRaD, literature review methodology, citation management, the peer review process, and…

    608 GitHub stars~4.5k tokensUpdated yesterday
    Auto-check passed
  • Accessibility Auditor

    FerroxLabs/wayland

    Web accessibility expertise covering WCAG 2.2 conformance, audit methodology, ARIA patterns, keyboard navigation, screen reader testing, focus management, form accessibility, and automated vs manual…

    608 GitHub stars~4.1k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Iot Sensor Network

What does Iot Sensor Network do?

Guides design and deployment of mesh sensor networks including data collection, power management, communication protocols, and fleet management Use when the user asks about iot sensor network…. Iot Sensor Network is an agent skill from FerroxLabs/wayland. Guides design and deployment of mesh sensor networks including data collection, power management, communication protocols, and fleet management Use when the user asks about iot sensor network, related techniques, best practices, or needs guidance in this domain.

When should I use Iot Sensor Network?

Iot Sensor Network fits situations like: the user asks about iot sensor network; related techniques; needs guidance in this domain; the request is outside the scope of iot sensor network.

How do I install Iot Sensor Network in Claude Code?

Run `npx skills add FerroxLabs/wayland --skill iot-sensor-network -a claude-code`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/emerging-tech/iot-sensor-network in FerroxLabs/wayland) into .claude/skills/iot-sensor-network in your project. Claude Code loads it when a task matches its description.

How do I install Iot Sensor Network in Codex?

Run `npx skills add FerroxLabs/wayland --skill iot-sensor-network -a codex`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/emerging-tech/iot-sensor-network in FerroxLabs/wayland) into .agents/skills/iot-sensor-network in your project. Codex loads it when a task matches its description.

Can I use Iot Sensor Network in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FerroxLabs/wayland --skill iot-sensor-network -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/iot-sensor-network, .gemini/skills/iot-sensor-network, .github/skills/iot-sensor-network and .opencode/skills/iot-sensor-network in your project.

What does Iot Sensor Network need to run?

SKILL.md names no scripts, command-line tools or credentials: Iot Sensor Network is instructions for the agent only. Our summary lists: Python 3.

Does Iot Sensor Network access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Iot Sensor Network safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Iot Sensor Network use?

Iot Sensor Network is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Iot Sensor Network use?

About 4.5k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Iot Sensor Network?

Skills that share tags, products or a category with Iot Sensor Network: Kubeshark Installer (kubeshark/kubeshark, 12k stars), GreptimeDB Dev Docker Image (GreptimeTeam/greptimedb, 6.7k stars), KubeSphere ServiceMesh Manager (kubesphere/kubesphere, 17k stars) and Vercel (remotion-dev/remotion, 62k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Iot Sensor Network?

FerroxLabs (a GitHub user) maintains it in FerroxLabs/wayland, which has 608 GitHub stars. The repository holds 1,194 skills in this directory. The repository was last updated on October 6, 2026.

Source: FerroxLabs/wayland on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.